There was an error fetching the job.
rspec unit pg13 single-db-ci-connection 19/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org GaSD-S1F, system ID: s_5651e5b5643b3 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.18-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:dd421ca1f7f13d81c5c145d77d97d8d84cd0e6f1e045936ee506ce0f50ee397a for postgres:13 with digest postgres@sha256:00f455399f30cc3f2fe4185476601438b7a4959c74653665582d7c313a783d51 ...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:edddbcad5a41d58df2f142d68439922f1860ea902903d016257337c3342f30fc ...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.18-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:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-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.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...18Running on runner-gasd-s1f-project-278964-concurrent-0 via runner-gasd-s1f-private-1680168211-2babd1e9...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: 135903, done. 25remote: Counting objects: 100% (135903/135903), done. 26remote: Compressing objects: 100% (88560/88560), done. 27remote: Total 135903 (delta 58315), reused 94618 (delta 42152), pack-reused 0 28Receiving objects: 100% (135903/135903), 121.35 MiB | 29.74 MiB/s, done.29Resolving deltas: 100% (58315/58315), done.31 * [new ref] refs/pipelines/822866544 -> refs/pipelines/82286654432Checking out 523abdde as detached HEAD (ref is refs/merge-requests/116270/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (4031138198)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138198 responseStatus=200 OK token=64_8zz7F45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_8zz7F47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_8zz7F49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_8zz7F52Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-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.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...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.sh709Using decomposed database config (config/database.yml.postgresql)710Enabling ci connection (database_tasks: false) in config/database.yml711Geo DB won't be set up.712$ setup_db_user_only713CREATE ROLE714GRANT715==> 'setup_db_user_only' succeeded in 0 seconds.716$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes717Dropped database 'gitlabhq_test'718Created database 'gitlabhq_test'719==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 35 seconds.720$ setup_db_praefect721SELECT pg_catalog.set_config('search_path', '', false);722CREATE DATABASE praefect_test ENCODING 'UTF8';723==> 'setup_db_praefect' succeeded in 0 seconds.724$ source ./scripts/rspec_helpers.sh725$ run_timed_command "gem install knapsack --no-document"726$ gem install knapsack --no-document727Successfully installed knapsack-4.0.07281 gem installed729==> 'gem install knapsack --no-document' succeeded in 1 seconds.730$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"834$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"835SKIP_FLAKY_TESTS_AUTOMATICALLY: false836RETRY_FAILED_TESTS_IN_NEW_PROCESS: true837KNAPSACK_GENERATE_REPORT: true838FLAKY_RSPEC_GENERATE_REPORT: true839KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb840KNAPSACK_LOG_LEVEL: debug841KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_single-db-ci-connection_19_28_report.json842FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json843FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_single-db-ci-connection_19_28_report.json844NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_single-db-ci-connection_19_28_report.json845SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_single-db-ci-connection_19_28_report.txt846CRYSTALBALL: 847Knapsack node specs:848spec/scripts/lib/glfm/update_example_snapshots_spec.rb849spec/services/todos/destroy/entity_leave_service_spec.rb850spec/lib/gitlab/redis/multi_store_spec.rb851spec/services/git/branch_push_service_spec.rb852spec/lib/gitlab/import_export/attributes_permitter_spec.rb853spec/lib/object_storage/direct_upload_spec.rb854spec/services/issues/relative_position_rebalancing_service_spec.rb855spec/lib/gitlab/diff/position_spec.rb856spec/models/diff_note_spec.rb857spec/lib/gitlab/database/consistency_checker_spec.rb858spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb859spec/lib/gitlab/project_template_spec.rb860spec/lib/gitlab/pagination/offset_pagination_spec.rb861spec/services/packages/maven/find_or_create_package_service_spec.rb862spec/finders/concerns/packages/finder_helper_spec.rb863spec/presenters/merge_request_presenter_spec.rb864spec/lib/gitlab/database/batch_count_spec.rb865spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb866spec/models/concerns/subscribable_spec.rb867spec/lib/gitlab/ci/status/external/factory_spec.rb868spec/services/ci/play_build_service_spec.rb869spec/lib/gitlab/ci/variables/collection_spec.rb870spec/services/issues/export_csv_service_spec.rb871spec/models/wiki_page/meta_spec.rb872spec/lib/gitlab/ci/ansi2json/style_spec.rb873spec/serializers/diff_file_entity_spec.rb874spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb875spec/lib/gitlab/blob_helper_spec.rb876spec/finders/releases_finder_spec.rb877spec/lib/gitlab/issues/rebalancing/state_spec.rb878spec/lib/gitlab/redis/sessions_spec.rb879spec/lib/banzai/filter/reference_redactor_filter_spec.rb880spec/services/projects/protect_default_branch_service_spec.rb881spec/services/issues/reopen_service_spec.rb882spec/helpers/projects/project_members_helper_spec.rb883spec/bin/audit_event_type_spec.rb884spec/services/todos/destroy/unauthorized_features_service_spec.rb885spec/finders/pending_todos_finder_spec.rb886spec/services/upload_service_spec.rb887spec/presenters/project_clusterable_presenter_spec.rb888spec/services/deployments/older_deployments_drop_service_spec.rb889spec/lib/gitlab/chat/command_spec.rb890spec/workers/prune_old_events_worker_spec.rb891spec/lib/gitlab/template_parser/ast_spec.rb892spec/lib/gitlab/metrics/dashboard/finder_spec.rb893spec/lib/gitlab/gitaly_client/repository_service_spec.rb894spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb895spec/finders/packages/conan/package_finder_spec.rb896spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb897spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb898spec/lib/gitlab/gitaly_client/blob_service_spec.rb899spec/helpers/nav_helper_spec.rb900spec/lib/error_tracking/sentry_client/projects_spec.rb901spec/services/tags/create_service_spec.rb902spec/lib/gitlab/ci/config/entry/trigger_spec.rb903spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb904spec/models/concerns/project_features_compatibility_spec.rb905spec/lib/gitlab/user_access_snippet_spec.rb906spec/services/merge_requests/mergeability/run_checks_service_spec.rb907spec/lib/gitlab/auth/ldap/user_spec.rb908spec/graphql/types/user_merge_request_interaction_type_spec.rb909spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb910spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb911spec/lib/gitlab/git/attributes_parser_spec.rb912spec/models/concerns/ci/has_ref_spec.rb913spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb914spec/finders/user_finder_spec.rb915spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb916spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb917spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb918spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb919spec/serializers/build_action_entity_spec.rb920spec/lib/gitlab/chat/responder/slack_spec.rb921spec/lib/gitlab/ci/components/instance_path_spec.rb922spec/lib/gitlab/ci/build/policy/variables_spec.rb923spec/lib/gitlab/ci/reports/test_report_spec.rb924spec/lib/gitlab/utils/email_spec.rb925spec/lib/gitlab/search/params_spec.rb926spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb927spec/services/ci/create_pipeline_service/rate_limit_spec.rb928spec/lib/gitlab/jira_import/labels_importer_spec.rb929spec/lib/sidebars/projects/menus/project_information_menu_spec.rb930spec/graphql/resolvers/design_management/design_resolver_spec.rb931spec/services/files/base_service_spec.rb932spec/lib/gitlab/auth/ldap/adapter_spec.rb933spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb934spec/lib/gitlab/ci/pipeline/chain/build_spec.rb935spec/models/packages/event_spec.rb936spec/services/spam/akismet_service_spec.rb937spec/graphql/resolvers/paginated_tree_resolver_spec.rb938spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb939spec/models/concerns/sensitive_serializable_hash_spec.rb940spec/models/legacy_diff_discussion_spec.rb941spec/services/packages/cleanup/update_policy_service_spec.rb942spec/models/merge_request/diff_commit_user_spec.rb943spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb944spec/graphql/resolvers/project_pipeline_resolver_spec.rb945spec/rack_servers/puma_spec.rb946spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb947spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb948spec/serializers/deployment_serializer_spec.rb949spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb950spec/graphql/resolvers/board_resolver_spec.rb951spec/services/import/fogbugz_service_spec.rb952spec/services/integrations/propagate_service_spec.rb953spec/workers/gitlab/jira_import/import_issue_worker_spec.rb954spec/services/milestones/create_service_spec.rb955spec/workers/ci/pending_builds/update_group_worker_spec.rb956spec/services/jira_import/server_users_mapper_service_spec.rb957spec/models/aws/role_spec.rb958spec/rubocop/cop/search/namespaced_class_spec.rb959spec/services/projects/lfs_pointers/lfs_import_service_spec.rb960spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb961spec/lib/gitlab/data_builder/wiki_page_spec.rb962spec/policies/terraform/state_version_policy_spec.rb963spec/services/keys/revoke_service_spec.rb964spec/tasks/gitlab/packages/migrate_rake_spec.rb965spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb966spec/lib/api/entities/clusters/agent_authorization_spec.rb967spec/serializers/ci/dag_job_group_entity_spec.rb968spec/lib/gitlab/hook_data/group_builder_spec.rb969spec/tooling/danger/product_intelligence_spec.rb970spec/lib/gitlab/git/repository_cleaner_spec.rb971spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb972spec/services/environments/stop_stale_service_spec.rb973spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb974spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb975spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb976spec/lib/gitlab/diff/parallel_diff_spec.rb977spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb978spec/lib/gitlab/github_import/importer/events/renamed_spec.rb979spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb980spec/lib/gitlab/manifest_import/manifest_spec.rb981spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb982spec/graphql/types/group_invitation_type_spec.rb983spec/models/concerns/ignorable_columns_spec.rb984spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb985spec/lib/banzai/cross_project_reference_spec.rb986spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb987spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb988spec/workers/pages_domain_ssl_renewal_worker_spec.rb989spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb990spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb991spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb992spec/lib/gitlab/import_export/avatar_restorer_spec.rb993spec/services/design_management/copy_design_collection/queue_service_spec.rb994spec/lib/sidebars/groups/menus/observability_menu_spec.rb995spec/services/webauthn/authenticate_service_spec.rb996spec/services/cohorts_service_spec.rb997spec/models/clusters/agents/project_authorization_spec.rb998spec/helpers/gitlab_script_tag_helper_spec.rb999spec/services/packages/go/sync_packages_service_spec.rb1000spec/services/packages/remove_tag_service_spec.rb1001spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb1002spec/models/raw_usage_data_spec.rb1003spec/validators/nested_attributes_duplicates_validator_spec.rb1004spec/workers/purge_dependency_proxy_cache_worker_spec.rb1005spec/models/concerns/editable_spec.rb1006spec/services/projects/count_service_spec.rb1007spec/workers/admin_email_worker_spec.rb1008spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb1009spec/lib/gitlab/chat/responder_spec.rb1010spec/helpers/recaptcha_helper_spec.rb1011spec/models/ci/runner_version_spec.rb1012spec/finders/packages/composer/packages_finder_spec.rb1013spec/helpers/startupjs_helper_spec.rb1014spec/lib/peek/views/redis_detailed_spec.rb1015spec/models/user_agent_detail_spec.rb1016spec/graphql/mutations/boards/update_spec.rb1017spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb1018spec/lib/gitlab/ci/build/cache_spec.rb1019spec/lib/gitlab/cycle_analytics/updater_spec.rb1020spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb1021spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb1022spec/lib/gitlab/checks/force_push_spec.rb1023spec/rubocop/cop/code_reuse/service_class_spec.rb1024spec/serializers/integrations/event_entity_spec.rb1025spec/lib/gitlab/kubernetes/ingress_spec.rb1026spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb1027spec/models/concerns/as_cte_spec.rb1028spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb1029spec/graphql/types/container_repository_type_spec.rb1030spec/initializers/google_cloud_profiler_spec.rb1031spec/lib/gitlab/config/entry/configurable_spec.rb1032spec/services/projects/batch_open_merge_requests_count_service_spec.rb1033spec/lib/gitlab/slash_commands/presenters/run_spec.rb1034spec/lib/api/entities/clusters/agent_spec.rb1035spec/lib/gitlab/ci/config/entry/publish_spec.rb1036spec/models/blob_viewer/route_map_spec.rb1037spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1038spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb1039spec/policies/packages/package_policy_spec.rb1040spec/models/container_registry/data_repair_detail_spec.rb1041spec/lib/sidebars/groups/super_sidebar_panel_spec.rb1042spec/lib/bulk_imports/clients/graphql_spec.rb1043spec/workers/disallow_two_factor_for_group_worker_spec.rb1044spec/lib/gitlab/github_import/project_relation_type_spec.rb1045spec/graphql/types/commit_signatures/x509_signature_type_spec.rb1046spec/lib/banzai/filter/image_lazy_load_filter_spec.rb1047spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb1048spec/lib/gitlab/health_checks/gitaly_check_spec.rb1049spec/rubocop/cop/rspec/any_instance_of_spec.rb1050spec/serializers/group_link/group_group_link_serializer_spec.rb1051spec/initializers/sawyer_patch_spec.rb1052spec/helpers/projects/settings/branch_rules_helper_spec.rb1053spec/validators/gitlab/zoom_url_validator_spec.rb1054spec/lib/gitlab/database/async_constraints/validators_spec.rb1055spec/lib/system_check/incoming_email_check_spec.rb1056spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb1057spec/lib/gitlab/import_export/attribute_configuration_spec.rb1058spec/lib/gitlab/phabricator_import/representation/user_spec.rb1059spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb1060spec/graphql/types/packages/pypi/metadatum_type_spec.rb1061spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb1062spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb1063spec/lib/gitlab/kubernetes/pod_cmd_spec.rb1064spec/tooling/docs/deprecation_handling_spec.rb1065spec/models/concerns/blocks_unsafe_serialization_spec.rb1066spec/graphql/types/eventable_type_spec.rb1067spec/models/clusters/group_spec.rb1068spec/lib/service_ping/permit_data_categories_spec.rb1069spec/views/groups/observability/observability.html.haml_spec.rb1070spec/serializers/namespace_serializer_spec.rb1071spec/models/synthetic_note_spec.rb1072spec/services/authorized_project_update/project_access_changed_service_spec.rb1073spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1074spec/graphql/types/packages/conan/metadatum_type_spec.rb1075spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb1076spec/helpers/admin/components_helper_spec.rb1077spec/graphql/types/ci/project_variable_connection_type_spec.rb1078spec/lib/gitlab/database/consistency_spec.rb1079Filter specs:1080Running specs:1081Running all node tests without filter1082spec/scripts/lib/glfm/update_example_snapshots_spec.rb1083spec/services/todos/destroy/entity_leave_service_spec.rb1084spec/lib/gitlab/redis/multi_store_spec.rb1085spec/services/git/branch_push_service_spec.rb1086spec/lib/gitlab/import_export/attributes_permitter_spec.rb1087spec/lib/object_storage/direct_upload_spec.rb1088spec/services/issues/relative_position_rebalancing_service_spec.rb1089spec/lib/gitlab/diff/position_spec.rb1090spec/models/diff_note_spec.rb1091spec/lib/gitlab/database/consistency_checker_spec.rb1092spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb1093spec/lib/gitlab/project_template_spec.rb1094spec/lib/gitlab/pagination/offset_pagination_spec.rb1095spec/services/packages/maven/find_or_create_package_service_spec.rb1096spec/finders/concerns/packages/finder_helper_spec.rb1097spec/presenters/merge_request_presenter_spec.rb1098spec/lib/gitlab/database/batch_count_spec.rb1099spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb1100spec/models/concerns/subscribable_spec.rb1101spec/lib/gitlab/ci/status/external/factory_spec.rb1102spec/services/ci/play_build_service_spec.rb1103spec/lib/gitlab/ci/variables/collection_spec.rb1104spec/services/issues/export_csv_service_spec.rb1105spec/models/wiki_page/meta_spec.rb1106spec/lib/gitlab/ci/ansi2json/style_spec.rb1107spec/serializers/diff_file_entity_spec.rb1108spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb1109spec/lib/gitlab/blob_helper_spec.rb1110spec/finders/releases_finder_spec.rb1111spec/lib/gitlab/issues/rebalancing/state_spec.rb1112spec/lib/gitlab/redis/sessions_spec.rb1113spec/lib/banzai/filter/reference_redactor_filter_spec.rb1114spec/services/projects/protect_default_branch_service_spec.rb1115spec/services/issues/reopen_service_spec.rb1116spec/helpers/projects/project_members_helper_spec.rb1117spec/bin/audit_event_type_spec.rb1118spec/services/todos/destroy/unauthorized_features_service_spec.rb1119spec/finders/pending_todos_finder_spec.rb1120spec/services/upload_service_spec.rb1121spec/presenters/project_clusterable_presenter_spec.rb1122spec/services/deployments/older_deployments_drop_service_spec.rb1123spec/lib/gitlab/chat/command_spec.rb1124spec/workers/prune_old_events_worker_spec.rb1125spec/lib/gitlab/template_parser/ast_spec.rb1126spec/lib/gitlab/metrics/dashboard/finder_spec.rb1127spec/lib/gitlab/gitaly_client/repository_service_spec.rb1128spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb1129spec/finders/packages/conan/package_finder_spec.rb1130spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb1131spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb1132spec/lib/gitlab/gitaly_client/blob_service_spec.rb1133spec/helpers/nav_helper_spec.rb1134spec/lib/error_tracking/sentry_client/projects_spec.rb1135spec/services/tags/create_service_spec.rb1136spec/lib/gitlab/ci/config/entry/trigger_spec.rb1137spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb1138spec/models/concerns/project_features_compatibility_spec.rb1139spec/lib/gitlab/user_access_snippet_spec.rb1140spec/services/merge_requests/mergeability/run_checks_service_spec.rb1141spec/lib/gitlab/auth/ldap/user_spec.rb1142spec/graphql/types/user_merge_request_interaction_type_spec.rb1143spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb1144spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb1145spec/lib/gitlab/git/attributes_parser_spec.rb1146spec/models/concerns/ci/has_ref_spec.rb1147spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb1148spec/finders/user_finder_spec.rb1149spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb1150spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb1151spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb1152spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb1153spec/serializers/build_action_entity_spec.rb1154spec/lib/gitlab/chat/responder/slack_spec.rb1155spec/lib/gitlab/ci/components/instance_path_spec.rb1156spec/lib/gitlab/ci/build/policy/variables_spec.rb1157spec/lib/gitlab/ci/reports/test_report_spec.rb1158spec/lib/gitlab/utils/email_spec.rb1159spec/lib/gitlab/search/params_spec.rb1160spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb1161spec/services/ci/create_pipeline_service/rate_limit_spec.rb1162spec/lib/gitlab/jira_import/labels_importer_spec.rb1163spec/lib/sidebars/projects/menus/project_information_menu_spec.rb1164spec/graphql/resolvers/design_management/design_resolver_spec.rb1165spec/services/files/base_service_spec.rb1166spec/lib/gitlab/auth/ldap/adapter_spec.rb1167spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb1168spec/lib/gitlab/ci/pipeline/chain/build_spec.rb1169spec/models/packages/event_spec.rb1170spec/services/spam/akismet_service_spec.rb1171spec/graphql/resolvers/paginated_tree_resolver_spec.rb1172spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb1173spec/models/concerns/sensitive_serializable_hash_spec.rb1174spec/models/legacy_diff_discussion_spec.rb1175spec/services/packages/cleanup/update_policy_service_spec.rb1176spec/models/merge_request/diff_commit_user_spec.rb1177spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb1178spec/graphql/resolvers/project_pipeline_resolver_spec.rb1179spec/rack_servers/puma_spec.rb1180spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb1181spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb1182spec/serializers/deployment_serializer_spec.rb1183spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb1184spec/graphql/resolvers/board_resolver_spec.rb1185spec/services/import/fogbugz_service_spec.rb1186spec/services/integrations/propagate_service_spec.rb1187spec/workers/gitlab/jira_import/import_issue_worker_spec.rb1188spec/services/milestones/create_service_spec.rb1189spec/workers/ci/pending_builds/update_group_worker_spec.rb1190spec/services/jira_import/server_users_mapper_service_spec.rb1191spec/models/aws/role_spec.rb1192spec/rubocop/cop/search/namespaced_class_spec.rb1193spec/services/projects/lfs_pointers/lfs_import_service_spec.rb1194spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb1195spec/lib/gitlab/data_builder/wiki_page_spec.rb1196spec/policies/terraform/state_version_policy_spec.rb1197spec/services/keys/revoke_service_spec.rb1198spec/tasks/gitlab/packages/migrate_rake_spec.rb1199spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb1200spec/lib/api/entities/clusters/agent_authorization_spec.rb1201spec/serializers/ci/dag_job_group_entity_spec.rb1202spec/lib/gitlab/hook_data/group_builder_spec.rb1203spec/tooling/danger/product_intelligence_spec.rb1204spec/lib/gitlab/git/repository_cleaner_spec.rb1205spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb1206spec/services/environments/stop_stale_service_spec.rb1207spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb1208spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb1209spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb1210spec/lib/gitlab/diff/parallel_diff_spec.rb1211spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb1212spec/lib/gitlab/github_import/importer/events/renamed_spec.rb1213spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb1214spec/lib/gitlab/manifest_import/manifest_spec.rb1215spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb1216spec/graphql/types/group_invitation_type_spec.rb1217spec/models/concerns/ignorable_columns_spec.rb1218spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb1219spec/lib/banzai/cross_project_reference_spec.rb1220spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb1221spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb1222spec/workers/pages_domain_ssl_renewal_worker_spec.rb1223spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb1224spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb1225spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb1226spec/lib/gitlab/import_export/avatar_restorer_spec.rb1227spec/services/design_management/copy_design_collection/queue_service_spec.rb1228spec/lib/sidebars/groups/menus/observability_menu_spec.rb1229spec/services/webauthn/authenticate_service_spec.rb1230spec/services/cohorts_service_spec.rb1231spec/models/clusters/agents/project_authorization_spec.rb1232spec/helpers/gitlab_script_tag_helper_spec.rb1233spec/services/packages/go/sync_packages_service_spec.rb1234spec/services/packages/remove_tag_service_spec.rb1235spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb1236spec/models/raw_usage_data_spec.rb1237spec/validators/nested_attributes_duplicates_validator_spec.rb1238spec/workers/purge_dependency_proxy_cache_worker_spec.rb1239spec/models/concerns/editable_spec.rb1240spec/services/projects/count_service_spec.rb1241spec/workers/admin_email_worker_spec.rb1242spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb1243spec/lib/gitlab/chat/responder_spec.rb1244spec/helpers/recaptcha_helper_spec.rb1245spec/models/ci/runner_version_spec.rb1246spec/finders/packages/composer/packages_finder_spec.rb1247spec/helpers/startupjs_helper_spec.rb1248spec/lib/peek/views/redis_detailed_spec.rb1249spec/models/user_agent_detail_spec.rb1250spec/graphql/mutations/boards/update_spec.rb1251spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb1252spec/lib/gitlab/ci/build/cache_spec.rb1253spec/lib/gitlab/cycle_analytics/updater_spec.rb1254spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb1255spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb1256spec/lib/gitlab/checks/force_push_spec.rb1257spec/rubocop/cop/code_reuse/service_class_spec.rb1258spec/serializers/integrations/event_entity_spec.rb1259spec/lib/gitlab/kubernetes/ingress_spec.rb1260spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb1261spec/models/concerns/as_cte_spec.rb1262spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb1263spec/graphql/types/container_repository_type_spec.rb1264spec/initializers/google_cloud_profiler_spec.rb1265spec/lib/gitlab/config/entry/configurable_spec.rb1266spec/services/projects/batch_open_merge_requests_count_service_spec.rb1267spec/lib/gitlab/slash_commands/presenters/run_spec.rb1268spec/lib/api/entities/clusters/agent_spec.rb1269spec/lib/gitlab/ci/config/entry/publish_spec.rb1270spec/models/blob_viewer/route_map_spec.rb1271spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1272spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb1273spec/policies/packages/package_policy_spec.rb1274spec/models/container_registry/data_repair_detail_spec.rb1275spec/lib/sidebars/groups/super_sidebar_panel_spec.rb1276spec/lib/bulk_imports/clients/graphql_spec.rb1277spec/workers/disallow_two_factor_for_group_worker_spec.rb1278spec/lib/gitlab/github_import/project_relation_type_spec.rb1279spec/graphql/types/commit_signatures/x509_signature_type_spec.rb1280spec/lib/banzai/filter/image_lazy_load_filter_spec.rb1281spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb1282spec/lib/gitlab/health_checks/gitaly_check_spec.rb1283spec/rubocop/cop/rspec/any_instance_of_spec.rb1284spec/serializers/group_link/group_group_link_serializer_spec.rb1285spec/initializers/sawyer_patch_spec.rb1286spec/helpers/projects/settings/branch_rules_helper_spec.rb1287spec/validators/gitlab/zoom_url_validator_spec.rb1288spec/lib/gitlab/database/async_constraints/validators_spec.rb1289spec/lib/system_check/incoming_email_check_spec.rb1290spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb1291spec/lib/gitlab/import_export/attribute_configuration_spec.rb1292spec/lib/gitlab/phabricator_import/representation/user_spec.rb1293spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb1294spec/graphql/types/packages/pypi/metadatum_type_spec.rb1295spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb1296spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb1297spec/lib/gitlab/kubernetes/pod_cmd_spec.rb1298spec/tooling/docs/deprecation_handling_spec.rb1299spec/models/concerns/blocks_unsafe_serialization_spec.rb1300spec/graphql/types/eventable_type_spec.rb1301spec/models/clusters/group_spec.rb1302spec/lib/service_ping/permit_data_categories_spec.rb1303spec/views/groups/observability/observability.html.haml_spec.rb1304spec/serializers/namespace_serializer_spec.rb1305spec/models/synthetic_note_spec.rb1306spec/services/authorized_project_update/project_access_changed_service_spec.rb1307spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1308spec/graphql/types/packages/conan/metadatum_type_spec.rb1309spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb1310spec/helpers/admin/components_helper_spec.rb1311spec/graphql/types/ci/project_variable_connection_type_spec.rb1312spec/lib/gitlab/database/consistency_spec.rb1313Running all node tests without filter1314Running all node tests without filter1315Running 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/scripts/lib/glfm/update_example_snapshots_spec.rb spec/services/todos/destroy/entity_leave_service_spec.rb spec/lib/gitlab/redis/multi_store_spec.rb spec/services/git/branch_push_service_spec.rb spec/lib/gitlab/import_export/attributes_permitter_spec.rb spec/lib/object_storage/direct_upload_spec.rb spec/services/issues/relative_position_rebalancing_service_spec.rb spec/lib/gitlab/diff/position_spec.rb spec/models/diff_note_spec.rb spec/lib/gitlab/database/consistency_checker_spec.rb spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb spec/lib/gitlab/project_template_spec.rb spec/lib/gitlab/pagination/offset_pagination_spec.rb spec/services/packages/maven/find_or_create_package_service_spec.rb spec/finders/concerns/packages/finder_helper_spec.rb spec/presenters/merge_request_presenter_spec.rb spec/lib/gitlab/database/batch_count_spec.rb spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb spec/models/concerns/subscribable_spec.rb spec/lib/gitlab/ci/status/external/factory_spec.rb spec/services/ci/play_build_service_spec.rb spec/lib/gitlab/ci/variables/collection_spec.rb spec/services/issues/export_csv_service_spec.rb spec/models/wiki_page/meta_spec.rb spec/lib/gitlab/ci/ansi2json/style_spec.rb spec/serializers/diff_file_entity_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb spec/lib/gitlab/blob_helper_spec.rb spec/finders/releases_finder_spec.rb spec/lib/gitlab/issues/rebalancing/state_spec.rb spec/lib/gitlab/redis/sessions_spec.rb spec/lib/banzai/filter/reference_redactor_filter_spec.rb spec/services/projects/protect_default_branch_service_spec.rb spec/services/issues/reopen_service_spec.rb spec/helpers/projects/project_members_helper_spec.rb spec/bin/audit_event_type_spec.rb spec/services/todos/destroy/unauthorized_features_service_spec.rb spec/finders/pending_todos_finder_spec.rb spec/services/upload_service_spec.rb spec/presenters/project_clusterable_presenter_spec.rb spec/services/deployments/older_deployments_drop_service_spec.rb spec/lib/gitlab/chat/command_spec.rb spec/workers/prune_old_events_worker_spec.rb spec/lib/gitlab/template_parser/ast_spec.rb spec/lib/gitlab/metrics/dashboard/finder_spec.rb spec/lib/gitlab/gitaly_client/repository_service_spec.rb spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb spec/finders/packages/conan/package_finder_spec.rb spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb spec/lib/gitlab/gitaly_client/blob_service_spec.rb spec/helpers/nav_helper_spec.rb spec/lib/error_tracking/sentry_client/projects_spec.rb spec/services/tags/create_service_spec.rb spec/lib/gitlab/ci/config/entry/trigger_spec.rb spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb spec/models/concerns/project_features_compatibility_spec.rb spec/lib/gitlab/user_access_snippet_spec.rb spec/services/merge_requests/mergeability/run_checks_service_spec.rb spec/lib/gitlab/auth/ldap/user_spec.rb spec/graphql/types/user_merge_request_interaction_type_spec.rb spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb spec/lib/gitlab/git/attributes_parser_spec.rb spec/models/concerns/ci/has_ref_spec.rb spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb spec/finders/user_finder_spec.rb spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb spec/serializers/build_action_entity_spec.rb spec/lib/gitlab/chat/responder/slack_spec.rb spec/lib/gitlab/ci/components/instance_path_spec.rb spec/lib/gitlab/ci/build/policy/variables_spec.rb spec/lib/gitlab/ci/reports/test_report_spec.rb spec/lib/gitlab/utils/email_spec.rb spec/lib/gitlab/search/params_spec.rb spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb spec/services/ci/create_pipeline_service/rate_limit_spec.rb spec/lib/gitlab/jira_import/labels_importer_spec.rb spec/lib/sidebars/projects/menus/project_information_menu_spec.rb spec/graphql/resolvers/design_management/design_resolver_spec.rb spec/services/files/base_service_spec.rb spec/lib/gitlab/auth/ldap/adapter_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb spec/lib/gitlab/ci/pipeline/chain/build_spec.rb spec/models/packages/event_spec.rb spec/services/spam/akismet_service_spec.rb spec/graphql/resolvers/paginated_tree_resolver_spec.rb spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb spec/models/concerns/sensitive_serializable_hash_spec.rb spec/models/legacy_diff_discussion_spec.rb spec/services/packages/cleanup/update_policy_service_spec.rb spec/models/merge_request/diff_commit_user_spec.rb spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb spec/graphql/resolvers/project_pipeline_resolver_spec.rb spec/rack_servers/puma_spec.rb spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb spec/serializers/deployment_serializer_spec.rb spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb spec/graphql/resolvers/board_resolver_spec.rb spec/services/import/fogbugz_service_spec.rb spec/services/integrations/propagate_service_spec.rb spec/workers/gitlab/jira_import/import_issue_worker_spec.rb spec/services/milestones/create_service_spec.rb spec/workers/ci/pending_builds/update_group_worker_spec.rb spec/services/jira_import/server_users_mapper_service_spec.rb spec/models/aws/role_spec.rb spec/rubocop/cop/search/namespaced_class_spec.rb spec/services/projects/lfs_pointers/lfs_import_service_spec.rb spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb spec/lib/gitlab/data_builder/wiki_page_spec.rb spec/policies/terraform/state_version_policy_spec.rb spec/services/keys/revoke_service_spec.rb spec/tasks/gitlab/packages/migrate_rake_spec.rb spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb spec/lib/api/entities/clusters/agent_authorization_spec.rb spec/serializers/ci/dag_job_group_entity_spec.rb spec/lib/gitlab/hook_data/group_builder_spec.rb spec/tooling/danger/product_intelligence_spec.rb spec/lib/gitlab/git/repository_cleaner_spec.rb spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb spec/services/environments/stop_stale_service_spec.rb spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb spec/lib/gitlab/diff/parallel_diff_spec.rb spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb spec/lib/gitlab/github_import/importer/events/renamed_spec.rb spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb spec/lib/gitlab/manifest_import/manifest_spec.rb spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb spec/graphql/types/group_invitation_type_spec.rb spec/models/concerns/ignorable_columns_spec.rb spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb spec/lib/banzai/cross_project_reference_spec.rb spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb spec/workers/pages_domain_ssl_renewal_worker_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb spec/lib/gitlab/import_export/avatar_restorer_spec.rb spec/services/design_management/copy_design_collection/queue_service_spec.rb spec/lib/sidebars/groups/menus/observability_menu_spec.rb spec/services/webauthn/authenticate_service_spec.rb spec/services/cohorts_service_spec.rb spec/models/clusters/agents/project_authorization_spec.rb spec/helpers/gitlab_script_tag_helper_spec.rb spec/services/packages/go/sync_packages_service_spec.rb spec/services/packages/remove_tag_service_spec.rb spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb spec/models/raw_usage_data_spec.rb spec/validators/nested_attributes_duplicates_validator_spec.rb spec/workers/purge_dependency_proxy_cache_worker_spec.rb spec/models/concerns/editable_spec.rb spec/services/projects/count_service_spec.rb spec/workers/admin_email_worker_spec.rb spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb spec/lib/gitlab/chat/responder_spec.rb spec/helpers/recaptcha_helper_spec.rb spec/models/ci/runner_version_spec.rb spec/finders/packages/composer/packages_finder_spec.rb spec/helpers/startupjs_helper_spec.rb spec/lib/peek/views/redis_detailed_spec.rb spec/models/user_agent_detail_spec.rb spec/graphql/mutations/boards/update_spec.rb spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb spec/lib/gitlab/ci/build/cache_spec.rb spec/lib/gitlab/cycle_analytics/updater_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb spec/lib/gitlab/checks/force_push_spec.rb spec/rubocop/cop/code_reuse/service_class_spec.rb spec/serializers/integrations/event_entity_spec.rb spec/lib/gitlab/kubernetes/ingress_spec.rb spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb spec/models/concerns/as_cte_spec.rb spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb spec/graphql/types/container_repository_type_spec.rb spec/initializers/google_cloud_profiler_spec.rb spec/lib/gitlab/config/entry/configurable_spec.rb spec/services/projects/batch_open_merge_requests_count_service_spec.rb spec/lib/gitlab/slash_commands/presenters/run_spec.rb spec/lib/api/entities/clusters/agent_spec.rb spec/lib/gitlab/ci/config/entry/publish_spec.rb spec/models/blob_viewer/route_map_spec.rb spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb spec/policies/packages/package_policy_spec.rb spec/models/container_registry/data_repair_detail_spec.rb spec/lib/sidebars/groups/super_sidebar_panel_spec.rb spec/lib/bulk_imports/clients/graphql_spec.rb spec/workers/disallow_two_factor_for_group_worker_spec.rb spec/lib/gitlab/github_import/project_relation_type_spec.rb spec/graphql/types/commit_signatures/x509_signature_type_spec.rb spec/lib/banzai/filter/image_lazy_load_filter_spec.rb spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb spec/lib/gitlab/health_checks/gitaly_check_spec.rb spec/rubocop/cop/rspec/any_instance_of_spec.rb spec/serializers/group_link/group_group_link_serializer_spec.rb spec/initializers/sawyer_patch_spec.rb spec/helpers/projects/settings/branch_rules_helper_spec.rb spec/validators/gitlab/zoom_url_validator_spec.rb spec/lib/gitlab/database/async_constraints/validators_spec.rb spec/lib/system_check/incoming_email_check_spec.rb spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb spec/lib/gitlab/import_export/attribute_configuration_spec.rb spec/lib/gitlab/phabricator_import/representation/user_spec.rb spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb spec/graphql/types/packages/pypi/metadatum_type_spec.rb spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb spec/lib/gitlab/kubernetes/pod_cmd_spec.rb spec/tooling/docs/deprecation_handling_spec.rb spec/models/concerns/blocks_unsafe_serialization_spec.rb spec/graphql/types/eventable_type_spec.rb spec/models/clusters/group_spec.rb spec/lib/service_ping/permit_data_categories_spec.rb spec/views/groups/observability/observability.html.haml_spec.rb spec/serializers/namespace_serializer_spec.rb spec/models/synthetic_note_spec.rb spec/services/authorized_project_update/project_access_changed_service_spec.rb spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb spec/graphql/types/packages/conan/metadatum_type_spec.rb spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb spec/helpers/admin/components_helper_spec.rb spec/graphql/types/ci/project_variable_connection_type_spec.rb spec/lib/gitlab/database/consistency_spec.rbKnapsack report generator started!1316Run options: exclude {:quarantine=>true, :level=>"background_migration"}1317Test environment set up in 0.62752356 seconds1318Glfm::UpdateExampleSnapshots#process1319 # order random1320 glfm_example_status.yml1321 when skip_update_example_snapshots entry is truthy1322 still writes the example to examples_index.yml1323 still writes the example to markdown.yml1324 when any other skip_update_example_snapshot_* is also truthy1325 raises an error1326 error handling when manually-curated input specification config files contain invalid example names:1327 for glfm_example_status.yml1328 raises error1329 for glfm_example_metadata.yml1330 raises error1331 for glfm_example_normalizations.yml1332 raises error1333 writing examples_index.yml1334 writes the correct content1335 with full processing of static and WYSIWYG HTML1336 manually-curated input specification config files1337 can be empty1338 writing html.yml and prosemirror_json.yml1339 writes the correct content1340 writing markdown.yml1341 writes the correct content1342Todos::Destroy::EntityLeaveService1343 #execute1344 updating a Project1345 when project is private1346 when user is not a member of the project1347 removes project todos for the provided user1348 access permissions1349 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1350 behaves like using different access permissions1351 is expected not to change `Todo.count`1352 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1353 behaves like using different access permissions1354 is expected to contain exactly #<Todo id: 18, user_id: 7, project_id: 1, target_id: 11, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:45:01.465078982 +0000", updated_at: "2023-03-30 11:45:01.465078982 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 15, user_id: 7, project_id: 10, target_id: 9, target_type: "Issue", author_id: 19, action: 1, state: "pending", created_at: "2023-03-30 11:45:00.416104460 +0000", updated_at: "2023-03-30 11:45:00.416104460 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1355 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1356 behaves like using different access permissions1357 is expected not to change `Todo.count`1358 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1359 behaves like using different access permissions1360 is expected to contain exactly #<Todo id: 32, user_id: 7, project_id: 1, target_id: 19, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:45:08.380229297 +0000", updated_at: "2023-03-30 11:45:08.380229297 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 29, user_id: 7, project_id: 18, target_id: 17, target_type: "Issue", author_id: 27, action: 1, state: "pending", created_at: "2023-03-30 11:45:07.370520512 +0000", updated_at: "2023-03-30 11:45:07.370520512 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1361 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1362 behaves like using different access permissions1363 is expected not to change `Todo.count`1364 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1365 behaves like using different access permissions1366 is expected to contain exactly #<Todo id: 46, user_id: 7, project_id: 1, target_id: 27, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:45:13.045212447 +0000", updated_at: "2023-03-30 11:45:13.045212447 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 43, user_id: 7, project_id: 26, target_id: 25, target_type: "Issue", author_id: 35, action: 1, state: "pending", created_at: "2023-03-30 11:45:11.984186515 +0000", updated_at: "2023-03-30 11:45:11.984186515 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1367 when project is private in an internal/public group1368 when user is not a member of the project1369 removes project todos for the provided user1370 access permissions1371 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1372 behaves like using different access permissions1373 is expected not to change `Todo.count`1374 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1375 behaves like using different access permissions1376 is expected to contain exactly #<Todo id: 67, user_id: 7, project_id: 30, target_id: 39, target_type: "Issue", author_id: 40, action: 1, state: "pending", created_at: "2023-03-30 11:45:20.134519491 +0000", updated_at: "2023-03-30 11:45:20.134519491 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 64, user_id: 7, project_id: 39, target_id: 37, target_type: "Issue", author_id: 49, action: 1, state: "pending", created_at: "2023-03-30 11:45:19.048825691 +0000", updated_at: "2023-03-30 11:45:19.048825691 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1377 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1378 behaves like using different access permissions1379 is expected not to change `Todo.count`1380 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1381 behaves like using different access permissions1382 is expected to contain exactly #<Todo id: 81, user_id: 7, project_id: 30, target_id: 47, target_type: "Issue", author_id: 40, action: 1, state: "pending", created_at: "2023-03-30 11:45:25.362328915 +0000", updated_at: "2023-03-30 11:45:25.362328915 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 78, user_id: 7, project_id: 47, target_id: 45, target_type: "Issue", author_id: 57, action: 1, state: "pending", created_at: "2023-03-30 11:45:24.064802188 +0000", updated_at: "2023-03-30 11:45:24.064802188 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1383 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1384 behaves like using different access permissions1385 is expected not to change `Todo.count`1386 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1387 behaves like using different access permissions1388 is expected to contain exactly #<Todo id: 95, user_id: 7, project_id: 30, target_id: 55, target_type: "Issue", author_id: 40, action: 1, state: "pending", created_at: "2023-03-30 11:45:30.378920722 +0000", updated_at: "2023-03-30 11:45:30.378920722 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 92, user_id: 7, project_id: 55, target_id: 53, target_type: "Issue", author_id: 65, action: 1, state: "pending", created_at: "2023-03-30 11:45:29.458489632 +0000", updated_at: "2023-03-30 11:45:29.458489632 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1389 when project is not private1390 enqueues the PrivateFeaturesWorker1391 confidential issues1392 when a user is not an author of confidential issue1393 behaves like removes confidential issues and internal notes todos1394 is expected to change `Todo.count` from 7 to 51395 when a user is an author of confidential issue1396 behaves like removes only internal notes todos1397 is expected to change `Todo.count` from 7 to 61398 when a user is an assignee of confidential issue1399 behaves like removes only internal notes todos1400 is expected to change `Todo.count` from 7 to 61401 access permissions1402 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1403 behaves like using different access permissions1404 is expected not to change `Todo.count`1405 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1406 behaves like using different access permissions1407 is expected to change `Todo.count` from 7 to 51408 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1409 behaves like using different access permissions1410 is expected not to change `Todo.count`1411 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1412 behaves like using different access permissions1413 is expected to change `Todo.count` from 7 to 51414 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1415 behaves like using different access permissions1416 is expected not to change `Todo.count`1417 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1418 behaves like using different access permissions1419 is expected to change `Todo.count` from 7 to 51420 feature visibility check1421 when issues are visible only to project members1422 removes only users issue todos1423 updating a Group1424 when group is private1425 when a user leaves a group1426 removes group and subproject todos for the user1427 access permissions1428 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1429 behaves like using different access permissions1430 is expected not to change `Todo.count`1431 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1432 behaves like using different access permissions1433 is expected to contain exactly #<Todo id: 193, user_id: 7, project_id: 1, target_id: 111, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:46:08.025972431 +0000", updated_at: "2023-03-30 11:46:08.025972431 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 190, user_id: 7, project_id: 122, target_id: 109, target_type: "Issue", author_id: 143, action: 1, state: "pending", created_at: "2023-03-30 11:46:06.991194917 +0000", updated_at: "2023-03-30 11:46:06.991194917 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1434 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1435 behaves like using different access permissions1436 is expected not to change `Todo.count`1437 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1438 behaves like using different access permissions1439 is expected to contain exactly #<Todo id: 207, user_id: 7, project_id: 1, target_id: 119, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:46:12.871998709 +0000", updated_at: "2023-03-30 11:46:12.871998709 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 204, user_id: 7, project_id: 130, target_id: 117, target_type: "Issue", author_id: 151, action: 1, state: "pending", created_at: "2023-03-30 11:46:11.763926410 +0000", updated_at: "2023-03-30 11:46:11.763926410 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1440 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1441 behaves like using different access permissions1442 is expected not to change `Todo.count`1443 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1444 behaves like using different access permissions1445 is expected to contain exactly #<Todo id: 221, user_id: 7, project_id: 1, target_id: 127, target_type: "Issue", author_id: 10, action: 1, state: "pending", created_at: "2023-03-30 11:46:18.673997936 +0000", updated_at: "2023-03-30 11:46:18.673997936 +0000", note_id: nil, commit_id: nil, group_id: nil, resolved_by_action: nil> and #<Todo id: 218, user_id: 7, project_id: 138, target_id: 125, target_type: "Issue", author_id: 159, action: 1, state: "pending", created_at: "2023-03-30 11:46:17.616523794 +0000", updated_at: "2023-03-30 11:46:17.616523794 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1446 with nested groups1447 when the user is not a member of any groups/projects1448 removes todos for the user including subprojects todos1449 when the user is member of a parent group1450 behaves like does not remove any todos1451 is expected not to change `Todo.count`1452 when the user is member of a subgroup1453 does not remove group and subproject todos1454 when the user is member of a child project1455 does not remove subproject and group todos1456 when group is not private1457 enqueues the PrivateFeaturesWorker1458 access permissions1459 group_access: nil, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1460 behaves like using different access permissions1461 is expected to change `Todo.count` from 7 to 51462 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1463 behaves like using different access permissions1464 is expected not to change `Todo.count`1465 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1466 behaves like using different access permissions1467 is expected to change `Todo.count` from 7 to 51468 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1469 behaves like using different access permissions1470 is expected not to change `Todo.count`1471 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1472 behaves like using different access permissions1473 is expected to change `Todo.count` from 7 to 51474 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1475 behaves like using different access permissions1476 is expected not to change `Todo.count`1477 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1478 behaves like using different access permissions1479 is expected to change `Todo.count` from 7 to 51480 when entity type is not valid1481 raises an exception1482 when entity was not found1483 does not remove any todos1484Gitlab::Redis::MultiStore1485 when primary_store is nil1486 fails with exception1487 when secondary_store is nil1488 fails with exception1489 when instance_name is nil1490 fails with exception1491 when primary_store is not a ::Redis instance1492 fails with exception1493 when primary_store is a ::Redis::Namespace instance1494 fails with exception1495 when secondary_store is not a ::Redis instance1496 fails with exception1497 when secondary_store is a ::Redis::Namespace instance1498 fails with exception1499 with READ redis commands1500 execute :get command1501 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteGetCommand1502 when reading from the primary is successful1503 returns the correct value1504 returns the correct value1505 when reading from default instance is raising an exception1506 logs the exception and re-raises the error1507 when reading from empty default instance1508 does not call the fallback store1509 when the command is executed within pipelined block1510 is executed only 1 time on primary and secondary instance1511 with both primary and secondary store using same redis instance1512 behaves like secondary store1513 execute on the secondary instance1514 returns the correct value1515 does not execute on the primary store1516 when use_primary_and_secondary_stores feature flag is disabled1517 when using secondary store as default1518DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1519DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1520 executes only on secondary redis store1521 when using primary store as default1522DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1523 executes only on primary redis store1524 execute :mget command1525 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMgetCommand1526 when reading from the primary is successful1527 returns the correct value1528 returns the correct value1529 when reading from default instance is raising an exception1530 logs the exception and re-raises the error1531 when reading from empty default instance1532 does not call the fallback store1533 when the command is executed within pipelined block1534 is executed only 1 time on primary and secondary instance1535 with both primary and secondary store using same redis instance1536 behaves like secondary store1537 execute on the secondary instance1538 returns the correct value1539 does not execute on the primary store1540 when use_primary_and_secondary_stores feature flag is disabled1541 when using secondary store as default1542DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1543DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1544 executes only on secondary redis store1545 when using primary store as default1546DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1547 executes only on primary redis store1548 execute :mget with block1549 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMgetWithBlock1550 when reading from the primary is successful1551 returns the correct value1552 returns the correct value1553 when reading from default instance is raising an exception1554 logs the exception and re-raises the error1555 when reading from empty default instance1556 does not call the fallback store1557 when the command is executed within pipelined block1558 is executed only 1 time on primary and secondary instance1559 when block is provided1560 only default store yields to the block1561 only default store to execute1562 returns the correct value1563 with both primary and secondary store using same redis instance1564 behaves like secondary store1565 execute on the secondary instance1566 returns the correct value1567 does not execute on the primary store1568 when use_primary_and_secondary_stores feature flag is disabled1569 when using secondary store as default1570DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1571DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1572 executes only on secondary redis store1573 when using primary store as default1574DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1575 executes only on primary redis store1576 execute :smembers command1577 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSmembersCommand1578 when reading from the primary is successful1579 returns the correct value1580 returns the correct value1581 when reading from default instance is raising an exception1582 logs the exception and re-raises the error1583 when reading from empty default instance1584 does not call the fallback store1585 when the command is executed within pipelined block1586 is executed only 1 time on primary and secondary instance1587 with both primary and secondary store using same redis instance1588 behaves like secondary store1589 execute on the secondary instance1590 returns the correct value1591 does not execute on the primary store1592 when use_primary_and_secondary_stores feature flag is disabled1593 when using secondary store as default1594DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1595DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1596 executes only on secondary redis store1597 when using primary store as default1598DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1599 executes only on primary redis store1600 execute :scard command1601 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteScardCommand1602 when reading from the primary is successful1603 returns the correct value1604 returns the correct value1605 when reading from default instance is raising an exception1606 logs the exception and re-raises the error1607 when reading from empty default instance1608 does not call the fallback store1609 when the command is executed within pipelined block1610 is executed only 1 time on primary and secondary instance1611 with both primary and secondary store using same redis instance1612 behaves like secondary store1613 execute on the secondary instance1614 returns the correct value1615 does not execute on the primary store1616 when use_primary_and_secondary_stores feature flag is disabled1617 when using secondary store as default1618DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1619DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1620 executes only on secondary redis store1621 when using primary store as default1622DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1623 executes only on primary redis store1624 execute :sismember command1625 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSismemberCommand1626 when reading from the primary is successful1627 returns the correct value1628 returns the correct value1629 when reading from default instance is raising an exception1630 logs the exception and re-raises the error1631 when reading from empty default instance1632 does not call the fallback store1633 when the command is executed within pipelined block1634 is executed only 1 time on primary and secondary instance1635 with both primary and secondary store using same redis instance1636 behaves like secondary store1637 execute on the secondary instance1638 returns the correct value1639 does not execute on the primary store1640 when use_primary_and_secondary_stores feature flag is disabled1641 when using secondary store as default1642DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1643DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1644 executes only on secondary redis store1645 when using primary store as default1646DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1647 executes only on primary redis store1648 execute :exists command1649 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteExistsCommand1650 when reading from the primary is successful1651 returns the correct value1652 returns the correct value1653 when reading from default instance is raising an exception1654 logs the exception and re-raises the error1655 when reading from empty default instance1656 does not call the fallback store1657 when the command is executed within pipelined block1658 is executed only 1 time on primary and secondary instance1659 with both primary and secondary store using same redis instance1660 behaves like secondary store1661 execute on the secondary instance1662 returns the correct value1663 does not execute on the primary store1664 when use_primary_and_secondary_stores feature flag is disabled1665 when using secondary store as default1666DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1667DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1668 executes only on secondary redis store1669 when using primary store as default1670DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1671 executes only on primary redis store1672 execute :exists? command1673 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteExistsCommand_21674 when reading from the primary is successful1675 returns the correct value1676 returns the correct value1677 when reading from default instance is raising an exception1678 logs the exception and re-raises the error1679 when reading from empty default instance1680 does not call the fallback store1681 when the command is executed within pipelined block1682 is executed only 1 time on primary and secondary instance1683 with both primary and secondary store using same redis instance1684 behaves like secondary store1685 execute on the secondary instance1686 returns the correct value1687 does not execute on the primary store1688 when use_primary_and_secondary_stores feature flag is disabled1689 when using secondary store as default1690DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1691DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1692 executes only on secondary redis store1693 when using primary store as default1694DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1695 executes only on primary redis store1696 execute :hget command1697 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHgetCommand1698 when reading from the primary is successful1699 returns the correct value1700 returns the correct value1701 when reading from default instance is raising an exception1702 logs the exception and re-raises the error1703 when reading from empty default instance1704 does not call the fallback store1705 when the command is executed within pipelined block1706 is executed only 1 time on primary and secondary instance1707 with both primary and secondary store using same redis instance1708 behaves like secondary store1709 execute on the secondary instance1710 returns the correct value1711 does not execute on the primary store1712 when use_primary_and_secondary_stores feature flag is disabled1713 when using secondary store as default1714DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1715DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1716 executes only on secondary redis store1717 when using primary store as default1718DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1719 executes only on primary redis store1720 execute :hlen command1721 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHlenCommand1722 when reading from the primary is successful1723 returns the correct value1724 returns the correct value1725 when reading from default instance is raising an exception1726 logs the exception and re-raises the error1727 when reading from empty default instance1728 does not call the fallback store1729 when the command is executed within pipelined block1730 is executed only 1 time on primary and secondary instance1731 with both primary and secondary store using same redis instance1732 behaves like secondary store1733 execute on the secondary instance1734 returns the correct value1735 does not execute on the primary store1736 when use_primary_and_secondary_stores feature flag is disabled1737 when using secondary store as default1738DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1739DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1740 executes only on secondary redis store1741 when using primary store as default1742DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1743 executes only on primary redis store1744 execute :hgetall command1745 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHgetallCommand1746 when reading from the primary is successful1747 returns the correct value1748 returns the correct value1749 when reading from default instance is raising an exception1750 logs the exception and re-raises the error1751 when reading from empty default instance1752 does not call the fallback store1753 when the command is executed within pipelined block1754 is executed only 1 time on primary and secondary instance1755 with both primary and secondary store using same redis instance1756 behaves like secondary store1757 execute on the secondary instance1758 returns the correct value1759 does not execute on the primary store1760 when use_primary_and_secondary_stores feature flag is disabled1761 when using secondary store as default1762DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1763DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1764 executes only on secondary redis store1765 when using primary store as default1766DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1767 executes only on primary redis store1768 execute :hexists command1769 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHexistsCommand1770 when reading from the primary is successful1771 returns the correct value1772 returns the correct value1773 when reading from default instance is raising an exception1774 logs the exception and re-raises the error1775 when reading from empty default instance1776 does not call the fallback store1777 when the command is executed within pipelined block1778 is executed only 1 time on primary and secondary instance1779 with both primary and secondary store using same redis instance1780 behaves like secondary store1781 execute on the secondary instance1782 returns the correct value1783 does not execute on the primary store1784 when use_primary_and_secondary_stores feature flag is disabled1785 when using secondary store as default1786DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1787DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1788 executes only on secondary redis store1789 when using primary store as default1790DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1791 executes only on primary redis store1792 execute :hmget command1793 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHmgetCommand1794 when reading from the primary is successful1795 returns the correct value1796 returns the correct value1797 when reading from default instance is raising an exception1798 logs the exception and re-raises the error1799 when reading from empty default instance1800 does not call the fallback store1801 when the command is executed within pipelined block1802 is executed only 1 time on primary and secondary instance1803 with both primary and secondary store using same redis instance1804 behaves like secondary store1805 execute on the secondary instance1806 returns the correct value1807 does not execute on the primary store1808 when use_primary_and_secondary_stores feature flag is disabled1809 when using secondary store as default1810DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1811DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1812 executes only on secondary redis store1813 when using primary store as default1814DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1815 executes only on primary redis store1816 execute :mapped_hmget command1817 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMappedHmgetCommand1818 when reading from the primary is successful1819 returns the correct value1820 returns the correct value1821 when reading from default instance is raising an exception1822 logs the exception and re-raises the error1823 when reading from empty default instance1824 does not call the fallback store1825 when the command is executed within pipelined block1826 is executed only 1 time on primary and secondary instance1827 with both primary and secondary store using same redis instance1828 behaves like secondary store1829 execute on the secondary instance1830 returns the correct value1831 does not execute on the primary store1832 when use_primary_and_secondary_stores feature flag is disabled1833 when using secondary store as default1834DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1835DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1836 executes only on secondary redis store1837 when using primary store as default1838DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1839 executes only on primary redis store1840 execute :sscan command1841 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanCommand1842 when reading from the primary is successful1843 returns the correct value1844 returns the correct value1845 when reading from default instance is raising an exception1846 logs the exception and re-raises the error1847 when reading from empty default instance1848 does not call the fallback store1849 when the command is executed within pipelined block1850 is executed only 1 time on primary and secondary instance1851 with both primary and secondary store using same redis instance1852 behaves like secondary store1853 execute on the secondary instance1854 returns the correct value1855 does not execute on the primary store1856 when use_primary_and_secondary_stores feature flag is disabled1857 when using secondary store as default1858DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1859DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1860 executes only on secondary redis store1861 when using primary store as default1862DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1863 executes only on primary redis store1864 execute :scan_each command1865 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteScanEachCommand1866 when reading from the primary is successful1867 returns the correct value1868 returns the correct value1869 when reading from default instance is raising an exception1870 logs the exception and re-raises the error1871 when reading from empty default instance1872 does not call the fallback store1873 when the command is executed within pipelined block1874 is executed only 1 time on primary and secondary instance1875 with both primary and secondary store using same redis instance1876 behaves like secondary store1877 execute on the secondary instance1878 returns the correct value1879 does not execute on the primary store1880 when use_primary_and_secondary_stores feature flag is disabled1881 when using secondary store as default1882DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1883DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1884 executes only on secondary redis store1885 when using primary store as default1886DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1887 executes only on primary redis store1888 execute :sscan_each command1889 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanEachCommand1890 when reading from the primary is successful1891 returns the correct value1892 returns the correct value1893 when reading from default instance is raising an exception1894 logs the exception and re-raises the error1895 when reading from empty default instance1896 does not call the fallback store1897 when the command is executed within pipelined block1898 is executed only 1 time on primary and secondary instance1899 with both primary and secondary store using same redis instance1900 behaves like secondary store1901 execute on the secondary instance1902 returns the correct value1903 does not execute on the primary store1904 when use_primary_and_secondary_stores feature flag is disabled1905 when using secondary store as default1906DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1907DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1908 executes only on secondary redis store1909 when using primary store as default1910DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1911 executes only on primary redis store1912 execute :sscan_each w block1913 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanEachWBlock1914 when reading from the primary is successful1915 returns the correct value1916 returns the correct value1917 when reading from default instance is raising an exception1918 logs the exception and re-raises the error1919 when reading from empty default instance1920 does not call the fallback store1921 when the command is executed within pipelined block1922 is executed only 1 time on primary and secondary instance1923 with both primary and secondary store using same redis instance1924 behaves like secondary store1925 execute on the secondary instance1926 returns the correct value1927 does not execute on the primary store1928 when use_primary_and_secondary_stores feature flag is disabled1929 when using secondary store as default1930DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1931DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1932 executes only on secondary redis store1933 when using primary store as default1934DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1935 executes only on primary redis store1936 execute :hscan_each command1937 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHscanEachCommand1938 when reading from the primary is successful1939 returns the correct value1940 returns the correct value1941 when reading from default instance is raising an exception1942 logs the exception and re-raises the error1943 when reading from empty default instance1944 does not call the fallback store1945 when the command is executed within pipelined block1946 is executed only 1 time on primary and secondary instance1947 with both primary and secondary store using same redis instance1948 behaves like secondary store1949 execute on the secondary instance1950 returns the correct value1951 does not execute on the primary store1952 when use_primary_and_secondary_stores feature flag is disabled1953 when using secondary store as default1954DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1955DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1956 executes only on secondary redis store1957 when using primary store as default1958DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1959 executes only on primary redis store1960 execute :hscan_each w block1961 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHscanEachWBlock1962 when reading from the primary is successful1963 returns the correct value1964 returns the correct value1965 when reading from default instance is raising an exception1966 logs the exception and re-raises the error1967 when reading from empty default instance1968 does not call the fallback store1969 when the command is executed within pipelined block1970 is executed only 1 time on primary and secondary instance1971 with both primary and secondary store using same redis instance1972 behaves like secondary store1973 execute on the secondary instance1974 returns the correct value1975 does not execute on the primary store1976 when use_primary_and_secondary_stores feature flag is disabled1977 when using secondary store as default1978DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1979DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1980 executes only on secondary redis store1981 when using primary store as default1982DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)1983 executes only on primary redis store1984 execute :zscan_each command1985 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteZscanEachCommand1986 when reading from the primary is successful1987 returns the correct value1988 returns the correct value1989 when reading from default instance is raising an exception1990 logs the exception and re-raises the error1991 when reading from empty default instance1992 does not call the fallback store1993 when the command is executed within pipelined block1994 is executed only 1 time on primary and secondary instance1995 with both primary and secondary store using same redis instance1996 behaves like secondary store1997 execute on the secondary instance1998 returns the correct value1999 does not execute on the primary store2000 when use_primary_and_secondary_stores feature flag is disabled2001 when using secondary store as default2002DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2003DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2004 executes only on secondary redis store2005 when using primary store as default2006DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2007 executes only on primary redis store2008 execute :zscan_each w block2009 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteZscanEachWBlock2010 when reading from the primary is successful2011 returns the correct value2012 returns the correct value2013 when reading from default instance is raising an exception2014 logs the exception and re-raises the error2015 when reading from empty default instance2016 does not call the fallback store2017 when the command is executed within pipelined block2018 is executed only 1 time on primary and secondary instance2019 with both primary and secondary store using same redis instance2020 behaves like secondary store2021 execute on the secondary instance2022 returns the correct value2023 does not execute on the primary store2024 when use_primary_and_secondary_stores feature flag is disabled2025 when using secondary store as default2026DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2027DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2028 executes only on secondary redis store2029 when using primary store as default2030DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2031 executes only on primary redis store2032 with nested command in block2033 when using both stores2034 when primary instance is default store2035 ensures primary instance is executing the block2036 when secondary instance is default store2037DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2038 ensures secondary instance is executing the block2039 when using 1 store only2040 when primary instance is default store2041DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2042 ensures only primary instance is executing the block2043 when secondary instance is default store2044DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2045DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2046 ensures only secondary instance is executing the block2047 with WRITE redis commands2048 execute :set command2049 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetCommand2050 when executing on primary instance is successful2051 executes on both primary and secondary redis store2052 primary_store redis store contains correct values2053 secondary_store redis store contains correct values2054 when use_primary_and_secondary_stores feature flag is disabled2055 when using secondary store as default2056DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2057DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2058 executes only on secondary redis store2059 when using primary store as default2060DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2061 executes only on primary redis store2062 when executing on the primary instance is raising an exception2063 logs the exception and execute on secondary instance2064 secondary_store redis store contains correct values2065 when the command is executed within pipelined block2066 is executed only 1 time on each instance2067 primary_store redis store contains correct values2068 secondary_store redis store contains correct values2069 execute :setnx command2070 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetnxCommand2071 when executing on primary instance is successful2072 executes on both primary and secondary redis store2073 primary_store redis store contains correct values2074 secondary_store redis store contains correct values2075 when use_primary_and_secondary_stores feature flag is disabled2076 when using secondary store as default2077DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2078DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2079 executes only on secondary redis store2080 when using primary store as default2081DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2082 executes only on primary redis store2083 when executing on the primary instance is raising an exception2084 logs the exception and execute on secondary instance2085 secondary_store redis store contains correct values2086 when the command is executed within pipelined block2087 is executed only 1 time on each instance2088 primary_store redis store contains correct values2089 secondary_store redis store contains correct values2090 execute :setex command2091 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetexCommand2092 when executing on primary instance is successful2093 executes on both primary and secondary redis store2094 primary_store redis store contains correct values2095 secondary_store redis store contains correct values2096 when use_primary_and_secondary_stores feature flag is disabled2097 when using secondary store as default2098DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2099DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2100 executes only on secondary redis store2101 when using primary store as default2102DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2103 executes only on primary redis store2104 when executing on the primary instance is raising an exception2105 logs the exception and execute on secondary instance2106 secondary_store redis store contains correct values2107 when the command is executed within pipelined block2108 is executed only 1 time on each instance2109 primary_store redis store contains correct values2110 secondary_store redis store contains correct values2111 execute :sadd command2112 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSaddCommand2113 when executing on primary instance is successful2114 executes on both primary and secondary redis store2115 primary_store redis store contains correct values2116 secondary_store redis store contains correct values2117 when use_primary_and_secondary_stores feature flag is disabled2118 when using secondary store as default2119DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2120DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2121 executes only on secondary redis store2122 when using primary store as default2123DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2124 executes only on primary redis store2125 when executing on the primary instance is raising an exception2126 logs the exception and execute on secondary instance2127 secondary_store redis store contains correct values2128 when the command is executed within pipelined block2129 is executed only 1 time on each instance2130 primary_store redis store contains correct values2131 secondary_store redis store contains correct values2132 execute :srem command2133 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSremCommand2134 when executing on primary instance is successful2135 executes on both primary and secondary redis store2136 primary_store redis store contains correct values2137 secondary_store redis store contains correct values2138 when use_primary_and_secondary_stores feature flag is disabled2139 when using secondary store as default2140DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2141DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2142 executes only on secondary redis store2143 when using primary store as default2144DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2145 executes only on primary redis store2146 when executing on the primary instance is raising an exception2147 logs the exception and execute on secondary instance2148 secondary_store redis store contains correct values2149 when the command is executed within pipelined block2150 is executed only 1 time on each instance2151 primary_store redis store contains correct values2152 secondary_store redis store contains correct values2153 execute :del command2154 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteDelCommand2155 when executing on primary instance is successful2156 executes on both primary and secondary redis store2157 primary_store redis store contains correct values2158 secondary_store redis store contains correct values2159 when use_primary_and_secondary_stores feature flag is disabled2160 when using secondary store as default2161DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2162DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2163 executes only on secondary redis store2164 when using primary store as default2165DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2166 executes only on primary redis store2167 when executing on the primary instance is raising an exception2168 logs the exception and execute on secondary instance2169 secondary_store redis store contains correct values2170 when the command is executed within pipelined block2171 is executed only 1 time on each instance2172 primary_store redis store contains correct values2173 secondary_store redis store contains correct values2174 execute :unlink command2175 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteUnlinkCommand2176 when executing on primary instance is successful2177 executes on both primary and secondary redis store2178 primary_store redis store contains correct values2179 secondary_store redis store contains correct values2180 when use_primary_and_secondary_stores feature flag is disabled2181 when using secondary store as default2182DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2183DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2184 executes only on secondary redis store2185 when using primary store as default2186DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2187 executes only on primary redis store2188 when executing on the primary instance is raising an exception2189 logs the exception and execute on secondary instance2190 secondary_store redis store contains correct values2191 when the command is executed within pipelined block2192 is executed only 1 time on each instance2193 primary_store redis store contains correct values2194 secondary_store redis store contains correct values2195 execute :flushdb command2196 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteFlushdbCommand2197 when executing on primary instance is successful2198 executes on both primary and secondary redis store2199 primary_store redis store contains correct values2200 secondary_store redis store contains correct values2201 when use_primary_and_secondary_stores feature flag is disabled2202 when using secondary store as default2203DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2204DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2205 executes only on secondary redis store2206 when using primary store as default2207DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2208 executes only on primary redis store2209 when executing on the primary instance is raising an exception2210 logs the exception and execute on secondary instance2211 secondary_store redis store contains correct values2212 when the command is executed within pipelined block2213 is executed only 1 time on each instance2214 primary_store redis store contains correct values2215 secondary_store redis store contains correct values2216 execute :eval command2217 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteEvalCommand2218 when executing on primary instance is successful2219 executes on both primary and secondary redis store2220 primary_store redis store contains correct values2221 secondary_store redis store contains correct values2222 when use_primary_and_secondary_stores feature flag is disabled2223 when using secondary store as default2224DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2225DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2226 executes only on secondary redis store2227 when using primary store as default2228DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2229 executes only on primary redis store2230 when executing on the primary instance is raising an exception2231 logs the exception and execute on secondary instance2232 secondary_store redis store contains correct values2233 when the command is executed within pipelined block2234 is executed only 1 time on each instance2235 primary_store redis store contains correct values2236 secondary_store redis store contains correct values2237 execute :incr command2238 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteIncrCommand2239 when executing on primary instance is successful2240 executes on both primary and secondary redis store2241 primary_store redis store contains correct values2242 secondary_store redis store contains correct values2243 when use_primary_and_secondary_stores feature flag is disabled2244 when using secondary store as default2245DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2246DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2247 executes only on secondary redis store2248 when using primary store as default2249DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2250 executes only on primary redis store2251 when executing on the primary instance is raising an exception2252 logs the exception and execute on secondary instance2253 secondary_store redis store contains correct values2254 when the command is executed within pipelined block2255 is executed only 1 time on each instance2256 primary_store redis store contains correct values2257 secondary_store redis store contains correct values2258 execute :incrby command2259 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteIncrbyCommand2260 when executing on primary instance is successful2261 executes on both primary and secondary redis store2262 primary_store redis store contains correct values2263 secondary_store redis store contains correct values2264 when use_primary_and_secondary_stores feature flag is disabled2265 when using secondary store as default2266DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2267DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2268 executes only on secondary redis store2269 when using primary store as default2270DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2271 executes only on primary redis store2272 when executing on the primary instance is raising an exception2273 logs the exception and execute on secondary instance2274 secondary_store redis store contains correct values2275 when the command is executed within pipelined block2276 is executed only 1 time on each instance2277 primary_store redis store contains correct values2278 secondary_store redis store contains correct values2279 execute :hset command2280 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteHsetCommand2281 when executing on primary instance is successful2282 executes on both primary and secondary redis store2283 primary_store redis store contains correct values2284 secondary_store redis store contains correct values2285 when use_primary_and_secondary_stores feature flag is disabled2286 when using secondary store as default2287DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2288DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2289 executes only on secondary redis store2290 when using primary store as default2291DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2292 executes only on primary redis store2293 when executing on the primary instance is raising an exception2294 logs the exception and execute on secondary instance2295 secondary_store redis store contains correct values2296 when the command is executed within pipelined block2297 is executed only 1 time on each instance2298 primary_store redis store contains correct values2299 secondary_store redis store contains correct values2300 execute :hdel command2301 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteHdelCommand2302 when executing on primary instance is successful2303 executes on both primary and secondary redis store2304 primary_store redis store contains correct values2305 secondary_store redis store contains correct values2306 when use_primary_and_secondary_stores feature flag is disabled2307 when using secondary store as default2308DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2309DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2310 executes only on secondary redis store2311 when using primary store as default2312DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2313 executes only on primary redis store2314 when executing on the primary instance is raising an exception2315 logs the exception and execute on secondary instance2316 secondary_store redis store contains correct values2317 when the command is executed within pipelined block2318 is executed only 1 time on each instance2319 primary_store redis store contains correct values2320 secondary_store redis store contains correct values2321 execute :expire command2322 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteExpireCommand2323 when executing on primary instance is successful2324 executes on both primary and secondary redis store2325 primary_store redis store contains correct values2326 secondary_store redis store contains correct values2327 when use_primary_and_secondary_stores feature flag is disabled2328 when using secondary store as default2329DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2330DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2331 executes only on secondary redis store2332 when using primary store as default2333DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2334 executes only on primary redis store2335 when executing on the primary instance is raising an exception2336 logs the exception and execute on secondary instance2337 secondary_store redis store contains correct values2338 when the command is executed within pipelined block2339 is executed only 1 time on each instance2340 primary_store redis store contains correct values2341 secondary_store redis store contains correct values2342 execute :mapped_hmset command2343 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteMappedHmsetCommand2344 when executing on primary instance is successful2345 executes on both primary and secondary redis store2346 primary_store redis store contains correct values2347 secondary_store redis store contains correct values2348 when use_primary_and_secondary_stores feature flag is disabled2349 when using secondary store as default2350DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2351DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2352 executes only on secondary redis store2353 when using primary store as default2354DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2355 executes only on primary redis store2356 when executing on the primary instance is raising an exception2357 logs the exception and execute on secondary instance2358 secondary_store redis store contains correct values2359 when the command is executed within pipelined block2360 is executed only 1 time on each instance2361 primary_store redis store contains correct values2362 secondary_store redis store contains correct values2363 #multi2364 command execution in a pipelined command2365 when executing on primary instance is successful2366 executes on both primary and secondary redis store2367 primary_store redis store contains correct values2368 secondary_store redis store contains correct values2369 when executing on the primary instance is raising an exception2370 logs the exception and execute on secondary instance2371 secondary_store redis store contains correct values2372 return values from a pipelined command2373 when the value exists on both and are equal2374 returns the value2375 when the value exists on both but differ2376 returns the value from the secondary store, logging an error2377 when the value does not exist on the primary but it does on the secondary2378 returns the value from the secondary store, logging an error2379 when the value does not exist in either2380 returns nil without logging an error2381 when use_primary_and_secondary_stores feature flag is disabled2382 when using secondary store as default2383DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2384DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2385 executes on secondary store2386 when using primary store as default2387DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2388 executes on primary store2389 #pipelined2390 command execution in a pipelined command2391 when executing on primary instance is successful2392 executes on both primary and secondary redis store2393 primary_store redis store contains correct values2394 secondary_store redis store contains correct values2395 when executing on the primary instance is raising an exception2396 logs the exception and execute on secondary instance2397 secondary_store redis store contains correct values2398 return values from a pipelined command2399 when the value exists on both and are equal2400 returns the value2401 when the value exists on both but differ2402 returns the value from the secondary store, logging an error2403 when the value does not exist on the primary but it does on the secondary2404 returns the value from the secondary store, logging an error2405 when the value does not exist in either2406 returns nil without logging an error2407 when use_primary_and_secondary_stores feature flag is disabled2408 when using secondary store as default2409DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2410DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2411 executes on secondary store2412 when using primary store as default2413DEPRECATION WARNING: Invalid Feature Flag use_primary_and_secondary_stores_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2414 executes on primary store2415 #ping2416 when using both stores2417 without message2418 returns PONG2419 with message2420 returns the same message2421 when primary store returns an error2422 behaves like returns an error2423 returns the error2424 when secondary store returns an error2425 behaves like returns an error2426 returns the error2427 when using only one store2428 when using primary_store as default store2429 behaves like single store as default store2430 when the store retuns success2431 returns response from the respective store2432 when the store returns an error2433 returns the error2434 when using secondary_store as default store2435 behaves like single store as default store2436 when the store retuns success2437 returns response from the respective store2438 when the store returns an error2439 returns the error2440 with unsupported command2441 when in test environment2442 raises error2443 when not in test environment2444 responds to missing method2445 executes method missing2446 when command is not in SKIP_LOG_METHOD_MISSING_FOR_COMMANDS2447 logs MethodMissingError2448 increments method missing counter2449 fallback and executes only on the secondary store2450 when command is in SKIP_LOG_METHOD_MISSING_FOR_COMMANDS2451 does not log MethodMissingError2452 does not increment method missing counter2453 with feature flag :use_primary_store_as_default_for_test_store is enabled2454 fallback and executes only on the secondary store2455 with feature flag :use_primary_store_as_default_for_test_store is disabled2456DEPRECATION WARNING: Invalid Feature Flag use_primary_store_as_default_for_test_store stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)2457 fallback and executes only on the secondary store2458 when the command is executed within pipelined block2459 is executed only 1 time on each instance2460 #to_s2461 returns same value as primary_store2462 #is_a?2463 returns true for ::Redis::Store2464 #use_primary_and_secondary_stores?2465 multi store is enabled2466 with empty DB2467 multi store is disabled2468 when FF table guard raises2469 multi store is disabled2470 #use_primary_store_as_default?2471 multi store is disabled2472 with empty DB2473 multi store is disabled2474 when FF table guard raises2475 multi store is disabled2476Git::BranchPushService2477 Push branches2478 new branch2479 is expected to be truthy2480 calls the after_push_commit hook2481 calls the after_create_branch hook2482 existing branch2483 is expected to be truthy2484 calls the after_push_commit hook2485 rm branch2486 is expected to be truthy2487 calls the after_push_commit hook2488 calls the after_remove_branch hook2489 Pipelines2490 creates a pipeline with the right parameters2491 creates a new pipeline2492 when pipeline has errors2493 reports an error2494 with push options2495 sanitizes push options2496 when .gitlab-ci.yml file is invalid2497 persists an error pipeline2498 Updates merge requests2499 when pushing a new branch for the first time2500 Updates git attributes2501 for default branch2502 calls the copy attributes method for changes to the default branch2503 when first push2504 calls the copy attributes method for the first push to the default branch2505 for non-default branch2506 does not call copy attributes method2507 Webhooks2508 when pushing a branch for the first time2509 executes webhooks2510 with default branch protection disabled2511 with default branch protection set to 'developers can push'2512 with an existing branch permission configured2513 with default branch protection set to 'developers can merge'2514 when pushing new commits to existing branch2515 executes webhooks2516 cross-reference notes2517 creates a note if a pushed commit mentions an issue2518 only creates a cross-reference note if one doesn't already exist2519 defaults to the pushing user if the commit's author is not known2520 when first push on a non-default branch2521 finds references2522 issue metrics2523 while saving the 'first_mentioned_in_commit_at' metric for an issue2524 sets the metric for referenced issues2525 does not set the metric for non-referenced issues2526 closing issues from pushed commits containing a closing reference2527 to default branches2528 closes issues2529 adds a note indicating that the issue is now closed2530 doesn't create additional cross-reference notes2531 to non-default branches2532 creates cross-reference notes2533 doesn't close issues2534 for jira issue tracker2535 mentioning an issue2536 initiates one api call to jira server to mention the issue2537 closing an issue2538 using right markdown2539 initiates one api call to jira server to close the issue2540 initiates one api call to jira server to comment on the issue2541 using internal issue reference2542 when internal issues are disabled2543 does not initiates one api call to jira server to close the issue2544 does not initiates one api call to jira server to comment on the issue2545 when internal issues are enabled2546 initiates one api call to jira server to close the jira issue2547 initiates one api call to jira server to comment on the jira issue2548 closes the internal issue2549 adds a note indicating that the issue is now closed2550 empty project2551 push to first branch updates HEAD2552 CI environments2553 create branch2554 does nothing2555 update branch2556 does nothing2557 delete branch2558 stops environments2559 artifacts2560 create branch2561 does nothing2562 update branch2563 does nothing2564 delete branch2565 unlocks artifacts2566 Hooks2567 run on a branch2568 delegates to Git::BranchHooksService2569 run on a tag2570 does nothing2571 Jira Connect hooks2572 with a Jira subscription2573 branch name contains Jira issue key2574 behaves like enqueues Jira sync worker2575 aggregate_failures2576 commit message contains Jira issue key2577 behaves like enqueues Jira sync worker2578 aggregate_failures2579 branch name and commit message does not contain Jira issue key2580 behaves like does not enqueue Jira sync worker2581 is expected not to change `Array#size`2582 without a Jira subscription2583 behaves like does not enqueue Jira sync worker2584 is expected not to change `Array#size`2585 project target platforms detection2586 calls enqueue_record_project_target_platforms on the project2587Gitlab::ImportExport::AttributesPermitter2588 #permitted_attributes2589 builds permitted attributes hash2590 #permit2591 only allows permitted attributes2592 #permitted_attributes_for2593 returns an array of permitted attributes for a relation2594 #permitted_attributes_defined?2595 relation_name: :user, permitted_attributes_defined: true2596 is expected to eq true2597 relation_name: :author, permitted_attributes_defined: false2598 is expected to eq false2599 relation_name: :ci_cd_settings, permitted_attributes_defined: true2600 is expected to eq true2601 relation_name: :metrics_setting, permitted_attributes_defined: true2602 is expected to eq true2603 relation_name: :project_badges, permitted_attributes_defined: true2604 is expected to eq true2605 relation_name: :pipeline_schedules, permitted_attributes_defined: true2606 is expected to eq true2607 relation_name: :error_tracking_setting, permitted_attributes_defined: true2608 is expected to eq true2609 relation_name: :auto_devops, permitted_attributes_defined: true2610 is expected to eq true2611 relation_name: :boards, permitted_attributes_defined: true2612 is expected to eq true2613 relation_name: :custom_attributes, permitted_attributes_defined: true2614 is expected to eq true2615 relation_name: :label, permitted_attributes_defined: true2616 is expected to eq true2617 relation_name: :labels, permitted_attributes_defined: true2618 is expected to eq true2619 relation_name: :protected_branches, permitted_attributes_defined: true2620 is expected to eq true2621 relation_name: :protected_tags, permitted_attributes_defined: true2622 is expected to eq true2623 relation_name: :create_access_levels, permitted_attributes_defined: true2624 is expected to eq true2625 relation_name: :merge_access_levels, permitted_attributes_defined: true2626 is expected to eq true2627 relation_name: :push_access_levels, permitted_attributes_defined: true2628 is expected to eq true2629 relation_name: :releases, permitted_attributes_defined: true2630 is expected to eq true2631 relation_name: :links, permitted_attributes_defined: true2632 is expected to eq true2633 relation_name: :priorities, permitted_attributes_defined: true2634 is expected to eq true2635 relation_name: :milestone, permitted_attributes_defined: true2636 is expected to eq true2637 relation_name: :milestones, permitted_attributes_defined: true2638 is expected to eq true2639 relation_name: :snippets, permitted_attributes_defined: true2640 is expected to eq true2641 relation_name: :project_members, permitted_attributes_defined: true2642 is expected to eq true2643 relation_name: :merge_request, permitted_attributes_defined: true2644 is expected to eq true2645 relation_name: :merge_requests, permitted_attributes_defined: true2646 is expected to eq true2647 relation_name: :award_emoji, permitted_attributes_defined: true2648 is expected to eq true2649 relation_name: :commit_author, permitted_attributes_defined: true2650 is expected to eq true2651 relation_name: :committer, permitted_attributes_defined: true2652 is expected to eq true2653 relation_name: :events, permitted_attributes_defined: true2654 is expected to eq true2655 relation_name: :label_links, permitted_attributes_defined: true2656 is expected to eq true2657 relation_name: :merge_request_diff, permitted_attributes_defined: true2658 is expected to eq true2659 relation_name: :merge_request_diff_commits, permitted_attributes_defined: true2660 is expected to eq true2661 relation_name: :merge_request_diff_files, permitted_attributes_defined: true2662 is expected to eq true2663 relation_name: :metrics, permitted_attributes_defined: true2664 is expected to eq true2665 relation_name: :notes, permitted_attributes_defined: true2666 is expected to eq true2667 relation_name: :push_event_payload, permitted_attributes_defined: true2668 is expected to eq true2669 relation_name: :resource_label_events, permitted_attributes_defined: true2670 is expected to eq true2671 relation_name: :suggestions, permitted_attributes_defined: true2672 is expected to eq true2673 relation_name: :system_note_metadata, permitted_attributes_defined: true2674 is expected to eq true2675 relation_name: :timelogs, permitted_attributes_defined: true2676 is expected to eq true2677 relation_name: :container_expiration_policy, permitted_attributes_defined: true2678 is expected to eq true2679 relation_name: :project_feature, permitted_attributes_defined: true2680 is expected to eq true2681 relation_name: :prometheus_metrics, permitted_attributes_defined: true2682 is expected to eq true2683 relation_name: :service_desk_setting, permitted_attributes_defined: true2684 is expected to eq true2685 relation_name: :external_pull_request, permitted_attributes_defined: true2686 is expected to eq true2687 relation_name: :external_pull_requests, permitted_attributes_defined: true2688 is expected to eq true2689 relation_name: :statuses, permitted_attributes_defined: true2690 is expected to eq true2691 relation_name: :builds, permitted_attributes_defined: true2692 is expected to eq true2693 relation_name: :generic_commit_statuses, permitted_attributes_defined: true2694 is expected to eq true2695 relation_name: :bridges, permitted_attributes_defined: true2696 is expected to eq true2697 relation_name: :ci_pipelines, permitted_attributes_defined: true2698 is expected to eq true2699 relation_name: :stages, permitted_attributes_defined: true2700 is expected to eq true2701 relation_name: :actions, permitted_attributes_defined: true2702 is expected to eq true2703 relation_name: :design, permitted_attributes_defined: true2704 is expected to eq true2705 relation_name: :designs, permitted_attributes_defined: true2706 is expected to eq true2707 relation_name: :design_versions, permitted_attributes_defined: true2708 is expected to eq true2709 relation_name: :issue_assignees, permitted_attributes_defined: true2710 is expected to eq true2711 relation_name: :sentry_issue, permitted_attributes_defined: true2712 is expected to eq true2713 relation_name: :zoom_meetings, permitted_attributes_defined: true2714 is expected to eq true2715 relation_name: :issues, permitted_attributes_defined: true2716 is expected to eq true2717 relation_name: :group_members, permitted_attributes_defined: true2718 is expected to eq true2719 relation_name: :project, permitted_attributes_defined: true2720 is expected to eq true2721 included_attributes for Project2722 for user2723 behaves like a permitted attribute2724 contains only attributes that are defined as permitted in the import/export config2725 does not contain attributes that would be cleaned with AttributeCleaner2726 does not contain prohibited attributes that are not related to given relation2727 for author2728 behaves like a permitted attribute2729 is disabled2730 for approvals2731 behaves like a permitted attribute2732 contains only attributes that are defined as permitted in the import/export config2733 does not contain attributes that would be cleaned with AttributeCleaner2734 does not contain prohibited attributes that are not related to given relation2735 for ci_cd_settings2736 behaves like a permitted attribute2737 contains only attributes that are defined as permitted in the import/export config2738 does not contain attributes that would be cleaned with AttributeCleaner2739 does not contain prohibited attributes that are not related to given relation2740 for metrics_setting2741 behaves like a permitted attribute2742 contains only attributes that are defined as permitted in the import/export config2743 does not contain attributes that would be cleaned with AttributeCleaner2744 does not contain prohibited attributes that are not related to given relation2745 for project_badges2746 behaves like a permitted attribute2747 contains only attributes that are defined as permitted in the import/export config2748 does not contain attributes that would be cleaned with AttributeCleaner2749 does not contain prohibited attributes that are not related to given relation2750 for pipeline_schedules2751 behaves like a permitted attribute2752 contains only attributes that are defined as permitted in the import/export config2753 does not contain attributes that would be cleaned with AttributeCleaner2754 does not contain prohibited attributes that are not related to given relation2755 for error_tracking_setting2756 behaves like a permitted attribute2757 contains only attributes that are defined as permitted in the import/export config2758 does not contain attributes that would be cleaned with AttributeCleaner2759 does not contain prohibited attributes that are not related to given relation2760 for auto_devops2761 behaves like a permitted attribute2762 contains only attributes that are defined as permitted in the import/export config2763 does not contain attributes that would be cleaned with AttributeCleaner2764 does not contain prohibited attributes that are not related to given relation2765 for boards2766 behaves like a permitted attribute2767 contains only attributes that are defined as permitted in the import/export config2768 does not contain attributes that would be cleaned with AttributeCleaner2769 does not contain prohibited attributes that are not related to given relation2770 for lists2771 behaves like a permitted attribute2772 contains only attributes that are defined as permitted in the import/export config2773 does not contain attributes that would be cleaned with AttributeCleaner2774 does not contain prohibited attributes that are not related to given relation2775 for custom_attributes2776 behaves like a permitted attribute2777 contains only attributes that are defined as permitted in the import/export config2778 does not contain attributes that would be cleaned with AttributeCleaner2779 does not contain prohibited attributes that are not related to given relation2780 for label2781 behaves like a permitted attribute2782 contains only attributes that are defined as permitted in the import/export config2783 does not contain attributes that would be cleaned with AttributeCleaner2784 does not contain prohibited attributes that are not related to given relation2785 for labels2786 behaves like a permitted attribute2787 contains only attributes that are defined as permitted in the import/export config2788 does not contain attributes that would be cleaned with AttributeCleaner2789 does not contain prohibited attributes that are not related to given relation2790 for priorities2791 behaves like a permitted attribute2792 contains only attributes that are defined as permitted in the import/export config2793 does not contain attributes that would be cleaned with AttributeCleaner2794 does not contain prohibited attributes that are not related to given relation2795 for milestone2796 behaves like a permitted attribute2797 contains only attributes that are defined as permitted in the import/export config2798 does not contain attributes that would be cleaned with AttributeCleaner2799 does not contain prohibited attributes that are not related to given relation2800 for milestones2801 behaves like a permitted attribute2802 contains only attributes that are defined as permitted in the import/export config2803 does not contain attributes that would be cleaned with AttributeCleaner2804 does not contain prohibited attributes that are not related to given relation2805 for protected_branches2806 behaves like a permitted attribute2807 contains only attributes that are defined as permitted in the import/export config2808 does not contain attributes that would be cleaned with AttributeCleaner2809 does not contain prohibited attributes that are not related to given relation2810 for protected_tags2811 behaves like a permitted attribute2812 contains only attributes that are defined as permitted in the import/export config2813 does not contain attributes that would be cleaned with AttributeCleaner2814 does not contain prohibited attributes that are not related to given relation2815 for create_access_levels2816 behaves like a permitted attribute2817 contains only attributes that are defined as permitted in the import/export config2818 does not contain attributes that would be cleaned with AttributeCleaner2819 does not contain prohibited attributes that are not related to given relation2820 for merge_access_levels2821 behaves like a permitted attribute2822 contains only attributes that are defined as permitted in the import/export config2823 does not contain attributes that would be cleaned with AttributeCleaner2824 does not contain prohibited attributes that are not related to given relation2825 for push_access_levels2826 behaves like a permitted attribute2827 contains only attributes that are defined as permitted in the import/export config2828 does not contain attributes that would be cleaned with AttributeCleaner2829 does not contain prohibited attributes that are not related to given relation2830 for releases2831 behaves like a permitted attribute2832 contains only attributes that are defined as permitted in the import/export config2833 does not contain attributes that would be cleaned with AttributeCleaner2834 does not contain prohibited attributes that are not related to given relation2835 for links2836 behaves like a permitted attribute2837 contains only attributes that are defined as permitted in the import/export config2838 does not contain attributes that would be cleaned with AttributeCleaner2839 does not contain prohibited attributes that are not related to given relation2840 for container_expiration_policy2841 behaves like a permitted attribute2842 contains only attributes that are defined as permitted in the import/export config2843 does not contain attributes that would be cleaned with AttributeCleaner2844 does not contain prohibited attributes that are not related to given relation2845 for project_feature2846 behaves like a permitted attribute2847 contains only attributes that are defined as permitted in the import/export config2848 does not contain attributes that would be cleaned with AttributeCleaner2849 does not contain prohibited attributes that are not related to given relation2850 for prometheus_metrics2851 behaves like a permitted attribute2852 contains only attributes that are defined as permitted in the import/export config2853 does not contain attributes that would be cleaned with AttributeCleaner2854 does not contain prohibited attributes that are not related to given relation2855 for service_desk_setting2856 behaves like a permitted attribute2857 contains only attributes that are defined as permitted in the import/export config2858 does not contain attributes that would be cleaned with AttributeCleaner2859 does not contain prohibited attributes that are not related to given relation2860 for snippets2861 behaves like a permitted attribute2862 contains only attributes that are defined as permitted in the import/export config2863 does not contain attributes that would be cleaned with AttributeCleaner2864 does not contain prohibited attributes that are not related to given relation2865 for project_members2866 behaves like a permitted attribute2867 contains only attributes that are defined as permitted in the import/export config2868 does not contain attributes that would be cleaned with AttributeCleaner2869 does not contain prohibited attributes that are not related to given relation2870 for merge_request2871 behaves like a permitted attribute2872 contains only attributes that are defined as permitted in the import/export config2873 does not contain attributes that would be cleaned with AttributeCleaner2874 does not contain prohibited attributes that are not related to given relation2875 for merge_requests2876 behaves like a permitted attribute2877 contains only attributes that are defined as permitted in the import/export config2878 does not contain attributes that would be cleaned with AttributeCleaner2879 does not contain prohibited attributes that are not related to given relation2880 for award_emoji2881 behaves like a permitted attribute2882 contains only attributes that are defined as permitted in the import/export config2883 does not contain attributes that would be cleaned with AttributeCleaner2884 does not contain prohibited attributes that are not related to given relation2885 for commit_author2886 behaves like a permitted attribute2887 contains only attributes that are defined as permitted in the import/export config2888 does not contain attributes that would be cleaned with AttributeCleaner2889 does not contain prohibited attributes that are not related to given relation2890 for committer2891 behaves like a permitted attribute2892 contains only attributes that are defined as permitted in the import/export config2893 does not contain attributes that would be cleaned with AttributeCleaner2894 does not contain prohibited attributes that are not related to given relation2895 for events2896 behaves like a permitted attribute2897 contains only attributes that are defined as permitted in the import/export config2898 does not contain attributes that would be cleaned with AttributeCleaner2899 does not contain prohibited attributes that are not related to given relation2900 for label_links2901 behaves like a permitted attribute2902 contains only attributes that are defined as permitted in the import/export config2903 does not contain attributes that would be cleaned with AttributeCleaner2904 does not contain prohibited attributes that are not related to given relation2905 for merge_request_diff2906 behaves like a permitted attribute2907 contains only attributes that are defined as permitted in the import/export config2908 does not contain attributes that would be cleaned with AttributeCleaner2909 does not contain prohibited attributes that are not related to given relation2910 for merge_request_diff_commits2911 behaves like a permitted attribute2912 contains only attributes that are defined as permitted in the import/export config2913 does not contain attributes that would be cleaned with AttributeCleaner2914 does not contain prohibited attributes that are not related to given relation2915 for merge_request_diff_files2916 behaves like a permitted attribute2917 contains only attributes that are defined as permitted in the import/export config2918 does not contain attributes that would be cleaned with AttributeCleaner2919 does not contain prohibited attributes that are not related to given relation2920 for metrics2921 behaves like a permitted attribute2922 contains only attributes that are defined as permitted in the import/export config2923 does not contain attributes that would be cleaned with AttributeCleaner2924 does not contain prohibited attributes that are not related to given relation2925 for notes2926 behaves like a permitted attribute2927 contains only attributes that are defined as permitted in the import/export config2928 does not contain attributes that would be cleaned with AttributeCleaner2929 does not contain prohibited attributes that are not related to given relation2930 for push_event_payload2931 behaves like a permitted attribute2932 contains only attributes that are defined as permitted in the import/export config2933 does not contain attributes that would be cleaned with AttributeCleaner2934 does not contain prohibited attributes that are not related to given relation2935 for resource_label_events2936 behaves like a permitted attribute2937 contains only attributes that are defined as permitted in the import/export config2938 does not contain attributes that would be cleaned with AttributeCleaner2939 does not contain prohibited attributes that are not related to given relation2940 for suggestions2941 behaves like a permitted attribute2942 contains only attributes that are defined as permitted in the import/export config2943 does not contain attributes that would be cleaned with AttributeCleaner2944 does not contain prohibited attributes that are not related to given relation2945 for system_note_metadata2946 behaves like a permitted attribute2947 contains only attributes that are defined as permitted in the import/export config2948 does not contain attributes that would be cleaned with AttributeCleaner2949 does not contain prohibited attributes that are not related to given relation2950 for timelogs2951 behaves like a permitted attribute2952 contains only attributes that are defined as permitted in the import/export config2953 does not contain attributes that would be cleaned with AttributeCleaner2954 does not contain prohibited attributes that are not related to given relation2955 for external_pull_request2956 behaves like a permitted attribute2957 contains only attributes that are defined as permitted in the import/export config2958 does not contain attributes that would be cleaned with AttributeCleaner2959 does not contain prohibited attributes that are not related to given relation2960 for external_pull_requests2961 behaves like a permitted attribute2962 contains only attributes that are defined as permitted in the import/export config2963 does not contain attributes that would be cleaned with AttributeCleaner2964 does not contain prohibited attributes that are not related to given relation2965 for statuses2966 behaves like a permitted attribute2967 contains only attributes that are defined as permitted in the import/export config2968 does not contain attributes that would be cleaned with AttributeCleaner2969 does not contain prohibited attributes that are not related to given relation2970 for builds2971 behaves like a permitted attribute2972 contains only attributes that are defined as permitted in the import/export config2973 does not contain attributes that would be cleaned with AttributeCleaner2974 does not contain prohibited attributes that are not related to given relation2975 for generic_commit_statuses2976 behaves like a permitted attribute2977 contains only attributes that are defined as permitted in the import/export config2978 does not contain attributes that would be cleaned with AttributeCleaner2979 does not contain prohibited attributes that are not related to given relation2980 for bridges2981 behaves like a permitted attribute2982 contains only attributes that are defined as permitted in the import/export config2983 does not contain attributes that would be cleaned with AttributeCleaner2984 does not contain prohibited attributes that are not related to given relation2985 for ci_pipelines2986 behaves like a permitted attribute2987 contains only attributes that are defined as permitted in the import/export config2988 does not contain attributes that would be cleaned with AttributeCleaner2989 does not contain prohibited attributes that are not related to given relation2990 for pipeline_metadata2991 behaves like a permitted attribute2992 contains only attributes that are defined as permitted in the import/export config2993 does not contain attributes that would be cleaned with AttributeCleaner2994 does not contain prohibited attributes that are not related to given relation2995 for stages2996 behaves like a permitted attribute2997 contains only attributes that are defined as permitted in the import/export config2998 does not contain attributes that would be cleaned with AttributeCleaner2999 does not contain prohibited attributes that are not related to given relation3000 for actions3001 behaves like a permitted attribute3002 contains only attributes that are defined as permitted in the import/export config3003 does not contain attributes that would be cleaned with AttributeCleaner3004 does not contain prohibited attributes that are not related to given relation3005 for design3006 behaves like a permitted attribute3007 contains only attributes that are defined as permitted in the import/export config3008 does not contain attributes that would be cleaned with AttributeCleaner3009 does not contain prohibited attributes that are not related to given relation3010 for designs3011 behaves like a permitted attribute3012 contains only attributes that are defined as permitted in the import/export config3013 does not contain attributes that would be cleaned with AttributeCleaner3014 does not contain prohibited attributes that are not related to given relation3015 for design_versions3016 behaves like a permitted attribute3017 contains only attributes that are defined as permitted in the import/export config3018 does not contain attributes that would be cleaned with AttributeCleaner3019 does not contain prohibited attributes that are not related to given relation3020 for issue_assignees3021 behaves like a permitted attribute3022 contains only attributes that are defined as permitted in the import/export config3023 does not contain attributes that would be cleaned with AttributeCleaner3024 does not contain prohibited attributes that are not related to given relation3025 for merge_request_assignees3026 behaves like a permitted attribute3027 contains only attributes that are defined as permitted in the import/export config3028 does not contain attributes that would be cleaned with AttributeCleaner3029 does not contain prohibited attributes that are not related to given relation3030 for merge_request_reviewers3031 behaves like a permitted attribute3032 contains only attributes that are defined as permitted in the import/export config3033 does not contain attributes that would be cleaned with AttributeCleaner3034 does not contain prohibited attributes that are not related to given relation3035 for sentry_issue3036 behaves like a permitted attribute3037 contains only attributes that are defined as permitted in the import/export config3038 does not contain attributes that would be cleaned with AttributeCleaner3039 does not contain prohibited attributes that are not related to given relation3040 for zoom_meetings3041 behaves like a permitted attribute3042 contains only attributes that are defined as permitted in the import/export config3043 does not contain attributes that would be cleaned with AttributeCleaner3044 does not contain prohibited attributes that are not related to given relation3045 for issues3046 behaves like a permitted attribute3047 contains only attributes that are defined as permitted in the import/export config3048 does not contain attributes that would be cleaned with AttributeCleaner3049 does not contain prohibited attributes that are not related to given relation3050 for group_members3051 behaves like a permitted attribute3052 contains only attributes that are defined as permitted in the import/export config3053 does not contain attributes that would be cleaned with AttributeCleaner3054 does not contain prohibited attributes that are not related to given relation3055 for project3056 behaves like a permitted attribute3057 contains only attributes that are defined as permitted in the import/export config3058 does not contain attributes that would be cleaned with AttributeCleaner3059 does not contain prohibited attributes that are not related to given relation3060 for resource_milestone_events3061 behaves like a permitted attribute3062 contains only attributes that are defined as permitted in the import/export config3063 does not contain attributes that would be cleaned with AttributeCleaner3064 does not contain prohibited attributes that are not related to given relation3065 for resource_state_events3066 behaves like a permitted attribute3067 contains only attributes that are defined as permitted in the import/export config3068 does not contain attributes that would be cleaned with AttributeCleaner3069 does not contain prohibited attributes that are not related to given relation3070 for issuable_sla3071 behaves like a permitted attribute3072 is disabled3073 for push_rule3074 behaves like a permitted attribute3075 contains only attributes that are defined as permitted in the import/export config3076 does not contain attributes that would be cleaned with AttributeCleaner3077 does not contain prohibited attributes that are not related to given relation3078 for unprotect_access_levels3079 behaves like a permitted attribute3080 contains only attributes that are defined as permitted in the import/export config3081 does not contain attributes that would be cleaned with AttributeCleaner3082 does not contain prohibited attributes that are not related to given relation3083 for deploy_access_levels3084 behaves like a permitted attribute3085 contains only attributes that are defined as permitted in the import/export config3086 does not contain attributes that would be cleaned with AttributeCleaner3087 does not contain prohibited attributes that are not related to given relation3088 for protected_environments3089 behaves like a permitted attribute3090 contains only attributes that are defined as permitted in the import/export config3091 does not contain attributes that would be cleaned with AttributeCleaner3092 does not contain prohibited attributes that are not related to given relation3093 for security_setting3094 behaves like a permitted attribute3095 contains only attributes that are defined as permitted in the import/export config3096 does not contain attributes that would be cleaned with AttributeCleaner3097 does not contain prohibited attributes that are not related to given relation3098 for resource_iteration_events3099 behaves like a permitted attribute3100 contains only attributes that are defined as permitted in the import/export config3101 does not contain attributes that would be cleaned with AttributeCleaner3102 does not contain prohibited attributes that are not related to given relation3103 for iteration3104 behaves like a permitted attribute3105 contains only attributes that are defined as permitted in the import/export config3106 does not contain attributes that would be cleaned with AttributeCleaner3107 does not contain prohibited attributes that are not related to given relation3108 for iterations_cadence3109 behaves like a permitted attribute3110 contains only attributes that are defined as permitted in the import/export config3111 does not contain attributes that would be cleaned with AttributeCleaner3112 does not contain prohibited attributes that are not related to given relation3113ObjectStorage::DirectUpload3114 #has_length3115 is known3116 maximum size is not required3117 is unknown3118 and maximum size is specified3119 does not raise an error3120 and maximum size is not specified3121 raises an error3122 #get_url3123 when AWS is used3124 calls the proper method3125 when Google is used3126 calls the proper method3127 #to_hash3128 when AWS is used3129 when length is known3130 behaves like a valid S3 upload without multipart data3131 behaves like a valid S3 upload3132 sets Workhorse client data3133 behaves like a valid upload3134 returns valid structure3135 with an object with UTF-8 characters3136 returns an escaped path3137 when no region is specified3138 defaults to us-east-13139 when V2 signatures are used3140 does not enable Workhorse client3141 when V4 signatures are used3142 enables the Workhorse client for instance profiles3143 when consolidated settings are used3144 enables the Workhorse client3145 when only server side encryption is used3146 sends server side encryption settings3147 when SSE-KMS is used3148 sends server side encryption settings3149 behaves like a valid upload without multipart data3150 returns valid structure3151 behaves like a valid upload3152 returns valid structure3153 with an object with UTF-8 characters3154 returns an escaped path3155 when path style is true3156 behaves like a valid S3 upload without multipart data3157 behaves like a valid S3 upload3158 sets Workhorse client data3159 behaves like a valid upload3160 returns valid structure3161 with an object with UTF-8 characters3162 returns an escaped path3163 when no region is specified3164 defaults to us-east-13165 when V2 signatures are used3166 does not enable Workhorse client3167 when V4 signatures are used3168 enables the Workhorse client for instance profiles3169 when consolidated settings are used3170 enables the Workhorse client3171 when only server side encryption is used3172 sends server side encryption settings3173 when SSE-KMS is used3174 sends server side encryption settings3175 behaves like a valid upload without multipart data3176 returns valid structure3177 behaves like a valid upload3178 returns valid structure3179 with an object with UTF-8 characters3180 returns an escaped path3181 when IAM profile is true3182 behaves like a valid S3 upload without multipart data3183 behaves like a valid S3 upload3184 sets Workhorse client data3185 behaves like a valid upload3186 returns valid structure3187 with an object with UTF-8 characters3188 returns an escaped path3189 when no region is specified3190 defaults to us-east-13191 when V2 signatures are used3192 does not enable Workhorse client3193 when V4 signatures are used3194 enables the Workhorse client for instance profiles3195 when consolidated settings are used3196 enables the Workhorse client3197 when only server side encryption is used3198 sends server side encryption settings3199 when SSE-KMS is used3200 sends server side encryption settings3201 behaves like a valid upload without multipart data3202 returns valid structure3203 behaves like a valid upload3204 returns valid structure3205 with an object with UTF-8 characters3206 returns an escaped path3207 when IMSDv2 is available3208 behaves like a valid S3 upload without multipart data3209 behaves like a valid S3 upload3210 sets Workhorse client data3211 behaves like a valid upload3212 returns valid structure3213 with an object with UTF-8 characters3214 returns an escaped path3215 when no region is specified3216 defaults to us-east-13217 when V2 signatures are used3218 does not enable Workhorse client3219 when V4 signatures are used3220 enables the Workhorse client for instance profiles3221 when consolidated settings are used3222 enables the Workhorse client3223 when only server side encryption is used3224 sends server side encryption settings3225 when SSE-KMS is used3226 sends server side encryption settings3227 behaves like a valid upload without multipart data3228 returns valid structure3229 behaves like a valid upload3230 returns valid structure3231 with an object with UTF-8 characters3232 returns an escaped path3233 when length is unknown3234 behaves like a valid S3 upload with multipart data3235 behaves like a valid S3 upload3236 sets Workhorse client data3237 behaves like a valid upload3238 returns valid structure3239 with an object with UTF-8 characters3240 returns an escaped path3241 when no region is specified3242 defaults to us-east-13243 when V2 signatures are used3244 does not enable Workhorse client3245 when V4 signatures are used3246 enables the Workhorse client for instance profiles3247 when consolidated settings are used3248 enables the Workhorse client3249 when only server side encryption is used3250 sends server side encryption settings3251 when SSE-KMS is used3252 sends server side encryption settings3253 behaves like a valid upload with multipart data3254 returns valid structure3255 uses only strings in query parameters3256 behaves like a valid upload3257 returns valid structure3258 with an object with UTF-8 characters3259 returns an escaped path3260 when maximum upload size is 03261 returns maximum number of parts3262 part size is minimum, 5MB3263 when maximum upload size is < 5 MB3264 returns only 1 part3265 part size is minimum, 5MB3266 when maximum upload size is 10MB3267 returns only 2 parts3268 part size is minimum, 5MB3269 when maximum upload size is 12MB3270 returns only 3 parts3271 part size is rounded-up to 5MB3272 when maximum upload size is 49GB3273 returns maximum, 100 parts3274 part size is rounded-up to 5MB3275 when Google is used3276 with google_application_default3277 when length is known3278 behaves like a valid Google upload3279 enables the Workhorse client3280 behaves like a valid upload3281 returns valid structure3282 with an object with UTF-8 characters3283 returns an escaped path3284 with workhorse_google_client disabled3285 does not set Workhorse client data3286 behaves like a valid upload without multipart data3287 returns valid structure3288 behaves like a valid upload3289 returns valid structure3290 with an object with UTF-8 characters3291 returns an escaped path3292 when length is unknown3293 behaves like a valid Google upload3294 enables the Workhorse client3295 behaves like a valid upload3296 returns valid structure3297 with an object with UTF-8 characters3298 returns an escaped path3299 with workhorse_google_client disabled3300 does not set Workhorse client data3301 behaves like a valid upload without multipart data3302 returns valid structure3303 behaves like a valid upload3304 returns valid structure3305 with an object with UTF-8 characters3306 returns an escaped path3307 with google_json_key_location3308 when length is known3309 behaves like a valid Google upload3310 enables the Workhorse client3311 behaves like a valid upload3312 returns valid structure3313 with an object with UTF-8 characters3314 returns an escaped path3315 with workhorse_google_client disabled3316 does not set Workhorse client data3317 behaves like a valid upload without multipart data3318 returns valid structure3319 behaves like a valid upload3320 returns valid structure3321 with an object with UTF-8 characters3322 returns an escaped path3323 when length is unknown3324 behaves like a valid Google upload3325 enables the Workhorse client3326 behaves like a valid upload3327 returns valid structure3328 with an object with UTF-8 characters3329 returns an escaped path3330 with workhorse_google_client disabled3331 does not set Workhorse client data3332 behaves like a valid upload without multipart data3333 returns valid structure3334 behaves like a valid upload3335 returns valid structure3336 with an object with UTF-8 characters3337 returns an escaped path3338 with google_json_key_string3339 when length is known3340 behaves like a valid Google upload3341 enables the Workhorse client3342 behaves like a valid upload3343 returns valid structure3344 with an object with UTF-8 characters3345 returns an escaped path3346 with workhorse_google_client disabled3347 does not set Workhorse client data3348 behaves like a valid upload without multipart data3349 returns valid structure3350 behaves like a valid upload3351 returns valid structure3352 with an object with UTF-8 characters3353 returns an escaped path3354 when length is unknown3355 behaves like a valid Google upload3356 enables the Workhorse client3357 behaves like a valid upload3358 returns valid structure3359 with an object with UTF-8 characters3360 returns an escaped path3361 with workhorse_google_client disabled3362 does not set Workhorse client data3363 behaves like a valid upload without multipart data3364 returns valid structure3365 behaves like a valid upload3366 returns valid structure3367 with an object with UTF-8 characters3368 returns an escaped path3369 when AzureRM is used3370 behaves like a valid AzureRM upload3371 enables the Workhorse client3372 behaves like a valid upload3373 returns valid structure3374 with an object with UTF-8 characters3375 returns an escaped path3376 behaves like a valid upload without multipart data3377 returns valid structure3378 behaves like a valid upload3379 returns valid structure3380 with an object with UTF-8 characters3381 returns an escaped path3382 when a custom storage domain is used3383 behaves like a valid AzureRM upload3384 enables the Workhorse client3385 behaves like a valid upload3386 returns valid structure3387 with an object with UTF-8 characters3388 returns an escaped path3389 #use_workhorse_google_client?3390 with consolidated_settings3391 with google_application_default3392 is expected to be truthy3393 with google_json_key_string3394 is expected to be truthy3395 with google_json_key_location3396 is expected to be truthy3397 without any google setting3398 is expected to be falsey3399 without consolidated_settings3400 is expected to be falsey3401Issues::RelativePositionRebalancingService3402 execute3403 re-balances a set of issues with clumps at the end and start3404 is idempotent3405 acts if the flag is enabled for the root namespace3406 acts if the flag is enabled for the group3407 aborts if there are too many rebalances running3408 resumes a started rebalance even if there are already too many rebalances running3409 re-balancing is retried on statement timeout exceptions3410 retries update statement3411 when resuming a stopped rebalance3412 rebalances the other half of issues3413Gitlab::Diff::Position3414 factory3415 produces a complete text position3416 produces a complete image position3417 allows the diff_refs to be passed as a single object3418 position for an added text file3419 is expected to be on text3420 is expected not to be on image3421 #diff_file3422 returns the correct diff file3423 #diff_line3424 returns the correct diff line3425 #line_code3426 returns the correct line code3427 position for an added image file3428 is expected not to be on text3429 is expected to be on image3430 returns the correct diff file3431 position for a changed file3432 position for an added line3433 #diff_file3434 returns the correct diff file3435 different folded positions in the same diff file3436 expands the diff file3437 #diff_line3438 returns the correct diff line3439 #line_code3440 returns the correct line code3441 position for an unchanged line3442 #diff_file3443 returns the correct diff file3444 #diff_line3445 returns the correct diff line3446 #line_code3447 returns the correct line code3448 position for a removed line3449 #diff_file3450 returns the correct diff file3451 #diff_line3452 returns the correct diff line3453 #line_code3454 returns the correct line code3455 position for a renamed file3456 position for an added line3457 #diff_file3458 returns the correct diff file3459 #diff_line3460 returns the correct diff line3461 #line_code3462 returns the correct line code3463 position for an unchanged line3464 #diff_file3465 returns the correct diff file3466 #diff_line3467 returns the correct diff line3468 #line_code3469 returns the correct line code3470 position for a removed line3471 #diff_file3472 returns the correct diff file3473 #diff_line3474 returns the correct diff line3475 #line_code3476 returns the correct line code3477 position for a deleted file3478 #diff_file3479 returns the correct diff file3480 #diff_line3481 returns the correct diff line3482 #line_code3483 returns the correct line code3484 position for a missing ref3485 #diff_file3486 does not raise exception3487 #diff_line3488 does not raise exception3489 #line_code3490 does not raise exception3491 position for a file in the initial commit3492 #diff_file3493 returns the correct diff file3494 #diff_line3495 returns the correct diff line3496 #line_code3497 returns the correct line code3498 position for a file in a straight comparison3499 #diff_file3500 returns the correct diff file3501 #diff_line3502 returns the correct diff line3503 #line_code3504 returns the correct line code3505 #==3506 when positions are equal3507 returns true3508 when positions are equal, except for truncated shas3509 returns true3510 when positions are unequal3511 returns false3512 #as_json3513 for text position3514 behaves like diff position json3515 returns the position as JSON3516 for image position3517 behaves like diff position json3518 returns the position as JSON3519 #to_json3520 for text position3521 behaves like diff position json3522 returns the position as JSON3523 works when nested under another hash3524 for image position3525 behaves like diff position json3526 returns the position as JSON3527 works when nested under another hash3528 #file_hash3529 returns SHA1 representation of the file_path3530 #multiline?3531 when the position type is text3532 when the start lines equal the end lines3533 returns true3534 when the start lines do not equal the end lines3535 returns true3536 when the position type is not text3537 returns false3538DiffNote3539 validations3540 is not valid when noteable is empty3541 behaves like a valid diff positionable note3542 for commit3543 position diff refs matches commit diff refs3544 is valid3545 position diff refs does not match commit diff refs3546 is invalid3547 commit does not exist3548 is invalid3549 original_position=3550 doesn't accept non-hash JSON passed as a string3551 does accept a position hash as a string3552 doesn't accept an array3553 does accept a hash3554 position=3555 doesn't accept non-hash JSON passed as a string3556 does accept a position hash as a string3557 doesn't accept an array3558 does accept a hash3559 change_position=3560 doesn't accept non-hash JSON passed as a string3561 does accept a position hash as a string3562 doesn't accept an array3563 does accept a hash3564 schema validation3565 position_attrs: {:old_path=>"WgNixO8uxXEw7s5m15D6D6W6OzWZMOQWe3Bvaq5OKlZah0QH4eIKGRQhSwg5Qta99iwBQvMDsA1hremQrbUmme6UbUjgIs0ukpc54H8n8GX9tgojVLqfBadC275cZssZsfoZGmHEOeVwWNb4zaqbT73l4lXRgQP4olUnu8n52oTNvO8dNI9sPG9QhdxxZnznUwSH51rOMsEdOFhmA89nevupf9bbORlfPB2syhOqmaYVgmaw2s0ByajCPOuyYygy6KKNgut4u7juKcNMcZtLU28eHWW8wdS1xXqWZwnsuTLu13mTdgUug5TA7ib8OQIDvigpttPxBVncyAY5mQb5QA0YUEfuS5uOT4DzIZPLkQ2asRG8Pqm78WaYmJsuXBq36WLDlPIJPJFGmiXr7N6IoR4rc8BjTZATpOjGumCzPWA9QwiDD0i1AUhhWLQNctYNf6AD7mtdjH9HWWj6dJzL8BvCzKIAd0nCnMeqRk2RqM5I3p1k3AuhQQ6kG5Rq3LthJjAmsGVVVVmw1YSSSeFcVOsVGnKMIUGC9GVwfFigHHGv79349lxzdasDbIC2Cwg8o7Q7UO4Tj5VfQtC8o9BZgVZcEcLU1CIwx057M8yNnxIwUutkUwhmOMeyiVGdhmVZdiw6ZGQMU8zg5rWJBFIujymMlkhXO340DMZ2qSWVwGHbCciMy3ehaZd4PPq5gz6hFkbxXwowFE1sDuVUrkWVK41ICZXOiJhgTgoSPhTn0hdA2wIfoioxapFD43OIWy09shyTSpDR4MQsF2TZtUCQiewsEVOulTgLE6WvLjBst34GfZsQZC4JFmRojoVFn4sN8isob9CSeniYFtJQLzA26Idx4wTq7LInLE6bzknF0G2iVLD0zex5wUDomcRG9DOje0eqBe4zmJriMlvmJIpTyUEU3OJUtNR19cAFzs8UtBqvyQeePPVygvDFpA9DrXoMClQknPXXDdaUKCcMJhqN69XDFDDn0hLoye9JqzXWe"}3566 is expected to be invalid3567 position_attrs: {:new_path=>"RIxCTXkhviOkBcOjraTvJgHEtJeqsRUpWNjJ9PYtAykNqg2huAkOZRInX8jBJx2P1AkLqC9CjFAJKfN6k1gukM6NGdrxDXmH1FYjRniH6BzbSxzHeWrPzamvHQ9mPonzfIdl06CyVQLbDmYPhZNGEtGOpufMH9Vqx3PrbYozfADlEWUNQeQNTQIjA4w7STy8MKtRCpHwgdWlCvOmKwmkiYTMPKf2yngrDldAonovKN73F8NCPadgQkC9Hpf3ejuLJRZ3q0CYG7RjJlgEHxzbf1SaptkTh0foMW72ZsVuHLDZ8jr2fFzSpnAmvbClCJ8OaAnSisNV0OxDGcW1YaueZLoZhTrxuJgu7SUeEIFXjoBYhE0qUISFrUMqT8XQZcSVwYwRpCMzJn94PdO9VWhTkzlDawtfhYvQFMcfJ13PIlb3SmPTdmp2iPdJ3qH1q1GSQ2pBgri57GVJHZQqa4AGU06oozSR73RPnFjIwlGIXx1CAxq1cryiwd9uXNW33WiNZiZmUgiuf3u8tgxYTVRGwaFw6yZXgtzDZHj4dUPNbNkjPSZi2zyrwRUQQRt53UTwFq4ATbwhd4h3DJLPAEyhtcRX1mEBf1jps2RDtM5J3pMFHves0weWaCAo3IB4LOCKgYzEMgQbpCJTuM0tQTjkqolD7NkzeEgFGTGTRB6xfcUxTPHIZNNY0RkQOXrw0mrT6HwU59fRL27XczfRkInDdV3aRxWazSbghdzg3Hrs9zhXUTmnMNmrmItukAWR1Y6RiLr5OmoqLZMXNtXz1piaBIgH2fYSXRN9QEs41jNZuZaDbuoANSN5gLm1x8xckkO1NT1Ldagg0ogvimu1RhlI3djEBGwCl0gD6c6U6nvepiQvqwsGMwptPPhRYpHcU2SU5zDtgDj1nb1PPWf5FIxETtLub0Gekcn4PgjtD6mSmVLHmJ1PPh0Rew4GMvwWYHPzqmIwF4sU4hpXTGwI1UC8DmOYcM93TU4JqZoivgi4f"}3568 is expected to be invalid3569 position_attrs: {:old_line=>"foo"}3570 is expected to be invalid3571 position_attrs: {:new_line=>"foo"}3572 is expected to be invalid3573 position_attrs: {:line_range=>{:foo=>"bar"}}3574 is expected to be invalid3575 position_attrs: {:line_range=>{:line_code=>"BgNI3EgXVtI9itZckpkf4P20Co9tZwa539MUKPqb5VAj6fJPzzdkW1eAJ5Wp2MgQBu06F1C22AXq90IkWNVdJG9gIpA5ZemH4RjfT"}}3576 is expected to be invalid3577 position_attrs: {:line_range=>{:type=>"NRc7aIJDrqFII52dsSkqFFUjRv3hXNlBOUvoh917UYPKPdcbVov7TXCs8OZJeBiz2SUvFQsfJPTnD20J52XpZqBOCnxBew3NYMzhS"}}3578 is expected to be invalid3579 position_attrs: {:line_range=>{:old_line=>"foo"}}3580 is expected to be invalid3581 position_attrs: {:line_range=>{:new_line=>"foo"}}3582 is expected to be invalid3583 when importing3584 does not check if it's supported3585 #position=3586 when provided a string3587 sets the position3588 when provided a hash3589 sets the position3590 when provided a position object3591 sets the position3592 #original_position=3593 when provided a string3594 sets the original position3595 when provided a hash3596 sets the original position3597 when provided a position object3598 sets the original position3599 #create_diff_file callback3600 merge request3601 does not create diff note file if it is a reply3602 when diffs are already created3603 when diff_file is found in persisted diffs3604 when importing3605 when diff_line is found in persisted diff_file3606 creates a diff note file3607 when diff_line is not found in persisted diff_file3608 behaves like a valid diff note with after commit callback3609 when diff file is fetched from repository3610 when diff_line is not found3611 raises an error3612 when diff_line is found3613 fallback to fetch file from repository3614 creates a diff note file3615 when diff file is not found in repository3616 raises an error3617 when not importing3618 when diff_line is not found3619 raises an error3620 when diff_line is found3621 creates a diff note file3622 when diff file is not found in persisted diffs3623 behaves like a valid diff note with after commit callback3624 when diff file is fetched from repository3625 when diff_line is not found3626 raises an error3627 when diff_line is found3628 fallback to fetch file from repository3629 creates a diff note file3630 when diff file is not found in repository3631 raises an error3632 when diffs are not already created3633 behaves like a valid diff note with after commit callback3634 when diff file is fetched from repository3635 when diff_line is not found3636 raises an error3637 when diff_line is found3638 fallback to fetch file from repository3639 creates a diff note file3640 when diff file is not found in repository3641 raises an error3642 commit3643 creates a diff note file3644 does not create diff note file if it is a reply3645 #diff_file3646 when note_diff_file association exists3647 returns persisted diff file data3648 when the discussion was created in the diff3649 returns correct diff file3650 when discussion is outdated or not created in the diff3651 returns the correct diff file3652 note diff file creation enqueuing3653 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion3654 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion3655 when noteable is a Design3656 does not return a diff file3657 #latest_diff_file3658 when noteable is a Design3659 does not return a diff file3660 #diff_line3661 returns the correct diff line3662 #line_code3663 returns the correct line code3664 #active?3665 when noteable is a commit3666 returns true3667 when noteable is a merge request3668 when the merge request's diff refs match that of the diff note3669 returns true3670 when the merge request's diff refs don't match that of the diff note3671 returns false3672 creation3673 updating of position3674 when noteable is a commit3675 doesn't update the position3676 when noteable is a merge request3677 when the note is active3678 doesn't update the position3679 when the note is outdated3680 updates the position3681 #discussion_id3682 when it is newly created3683 has a discussion id3684 when it didn't store a discussion id before3685 has a discussion id3686 #created_at_diff?3687 when noteable is a commit3688 returns true3689 when noteable is a merge request3690 when the diff refs match the original one of the diff note3691 returns true3692 when the diff refs don't match the original one of the diff note3693 returns false3694 #supports_suggestion?3695 when noteable does not exist3696 returns false3697 when noteable does not support suggestions3698 returns false3699 when line is not suggestible3700 returns false3701 #banzai_render_context3702 includes expected context3703 image diff notes3704 returns true for on_image?3705 validations3706 is expected not to validate that :line_code cannot be empty/falsy3707 does not validate diff line3708 does not update the position3709 #to_ability_name3710 is expected to eq "note"3711 #shas3712 returns list of SHAs based on original_position3713 when position changes3714 includes the new position SHAs3715Gitlab::Database::ConsistencyChecker3716 #over_time_limit?3717 returns true only if the running time has exceeded MAX_RUNTIME3718 #execute3719 when empty tables3720 returns an empty response3721 when the tables contain matching items3722 does not process more than MAX_BATCHES3723 doesn not exceed the MAX_RUNTIME3724 returns the correct number of matches and batches checked3725 returns the min_id as the next_start_id if the check reaches the last element3726 when some items are missing from the first table3727 reports the missing elements3728 when some items are missing from the second table3729 reports the missing elements3730 when elements are different between the two tables3731 reports the difference between the two tables3732Gitlab::CycleAnalytics::StageSummary3733 #identifier3734 returns identifiers for each metric3735 #new_issues3736 doesn't find issues from other projects3737 when from date is given3738 finds the number of issues created after the 'from date'3739 returns the localized title3740 when `to` parameter is given3741 doesn't find any record3742 finds records created between `from` and `to` range3743 #commits3744 doesn't find commits from other projects3745 finds a large (> 100) number of commits if present3746 when from date is given3747 finds the number of commits created after the 'from date'3748 returns the localized title3749 when `to` parameter is given3750 doesn't find any record3751 finds records created between `from` and `to` range3752 when a guest user is signed in3753 does not include commit stats3754 behaves like deployment metrics examples3755 #deploys3756 doesn't find commits from other projects3757 when from date is given3758 finds the number of deploys made created after the 'from date'3759 returns the localized title3760 when `to` parameter is given3761 doesn't find any record3762 finds records created between `from` and `to` range3763 #deployment_frequency3764 includes the unit: `/day`3765 returns 0.0 when there were deploys but the frequency was too low3766 returns `-` when there were no deploys3767 when `to` is nil3768 includes range until now3769 when `to` is given3770 finds records created between `from` and `to` range3771 when `from` and `to` are within a day3772 returns the number of deployments made on that day3773Gitlab::ProjectTemplate3774 .all3775 returns all templates3776 #project_host3777 when `preview` is valid3778 is expected to eq "https://gitlab.com"3779 when `preview` is `nil`3780 is expected to eq nil3781 #project_path3782 is expected to eq "some/project/path"3783 #uri_encoded_project_path3784 is expected to eq "some%2Fproject%2Fpath"3785 .find3786 when there is a match3787 is expected to be a kind of Gitlab::ProjectTemplate3788 when there is no match3789 is expected to equal nil3790 .archive_directory3791 is expected to be a kind of Pathname3792 instance methods3793 is expected to respond to [:logo, :file, :archive_path]3794 validate all templates3795 rails has a valid archive3796 spring has a valid archive3797 express has a valid archive3798 iosswift has a valid archive3799 dotnetcore has a valid archive3800 android has a valid archive3801 gomicro has a valid archive3802 bridgetown has a valid archive3803 gatsby has a valid archive3804 hugo has a valid archive3805 pelican has a valid archive3806 jekyll has a valid archive3807 plainhtml has a valid archive3808 gitbook has a valid archive3809 hexo has a valid archive3810 middleman has a valid archive3811 gitpod_spring_petclinic has a valid archive3812 nfhugo has a valid archive3813 nfjekyll has a valid archive3814 nfplainhtml has a valid archive3815 nfgitbook has a valid archive3816 nfhexo has a valid archive3817 salesforcedx has a valid archive3818 serverless_framework has a valid archive3819 tencent_serverless_framework has a valid archive3820 jsonnet has a valid archive3821 cluster_management has a valid archive3822 kotlin_native_linux has a valid archive3823 typo3_distribution has a valid archive3824 with valid parameters3825 can be imported3826 with valid parameters3827 can be imported3828 with valid parameters3829 can be imported3830 with valid parameters3831 can be imported3832 with valid parameters3833 can be imported3834 with valid parameters3835 can be imported3836 with valid parameters3837 can be imported3838 with valid parameters3839 can be imported3840 with valid parameters3841 can be imported3842 with valid parameters3843 can be imported3844 with valid parameters3845 can be imported3846 with valid parameters3847 can be imported3848 with valid parameters3849 can be imported3850 with valid parameters3851 can be imported3852 with valid parameters3853 can be imported3854 with valid parameters3855 can be imported3856 with valid parameters3857 can be imported3858 with valid parameters3859 can be imported3860 with valid parameters3861 can be imported3862 with valid parameters3863 can be imported3864 with valid parameters3865 can be imported3866 with valid parameters3867 can be imported3868 with valid parameters3869 can be imported3870 with valid parameters3871 can be imported3872 with valid parameters3873 can be imported3874 with valid parameters3875 can be imported3876 with valid parameters3877 can be imported3878 with valid parameters3879 can be imported3880 with valid parameters3881 can be imported3882Gitlab::Pagination::OffsetPagination3883 #paginate3884 when resource can be paginated3885 first page3886 does not return the total headers when excluding them3887 when resources count is less than MAX_COUNT_LIMIT3888 behaves like paginated response3889 returns appropriate amount of resources3890 executes only one SELECT COUNT query3891 behaves like response with pagination headers3892 adds appropriate headers3893 when resources count is more than MAX_COUNT_LIMIT3894 does not return the X-Total and X-Total-Pages headers3895 behaves like paginated response3896 returns appropriate amount of resources3897 executes only one SELECT COUNT query3898 when without_count is true3899 does not return the X-Total and X-Total-Pages headers3900 behaves like paginated response3901 returns appropriate amount of resources3902 executes only one SELECT COUNT query3903 when resource already paginated3904 when per_page param is specified3905 returns appropriate amount of resources based on per_page param3906 when page and per page params are strings3907 returns appropriate amount of resources3908 when per_page param is blank3909 returns appropriate amount of resources3910 when page param is blank3911 returns appropriate amount of resources based on resource per(N)3912 when resource does not respond to limit_value3913 when page param is blank3914 returns appropriate amount of resources3915 when per_page param is blank3916 returns appropriate amount of resources with default per page value3917 when resource is a paginatable array3918 only returns the requested resources3919 does not return total headers when excluding them3920 behaves like response with pagination headers3921 adds appropriate headers3922 second page3923 returns appropriate amount of resources3924 adds appropriate headers3925 if order3926 is not present it adds default order(:id) if no order is present3927 is present it does not add anything3928 when resource empty3929 first page3930 returns appropriate amount of resources3931 adds appropriate headers3932Packages::Maven::FindOrCreatePackageService3933 #execute3934 path with version3935 package_exist: true, file_type: :jar, snapshot_version: false, shared_example_name: "reuse existing package"3936 behaves like reuse existing package3937 is expected not to change `Packages::Package.count`3938 returns the existing package3939 package_exist: false, file_type: :jar, snapshot_version: false, shared_example_name: "create package"3940 behaves like create package3941 is expected to change `Packages::Package.count` by 13942 sets the proper name and version3943 with optional attributes3944 behaves like assigns build to package3945 with build info3946 assigns the pipeline to the package3947 behaves like assigns status to package3948 with status param3949 assigns the status to the package3950 package_exist: true, file_type: :jar, snapshot_version: true, shared_example_name: "reuse existing package"3951 behaves like reuse existing package3952 is expected not to change `Packages::Package.count`3953 returns the existing package3954 package_exist: false, file_type: :jar, snapshot_version: true, shared_example_name: "create package"3955 behaves like create package3956 is expected to change `Packages::Package.count` by 13957 sets the proper name and version3958 with optional attributes3959 behaves like assigns build to package3960 with build info3961 assigns the pipeline to the package3962 behaves like assigns status to package3963 with status param3964 assigns the status to the package3965 package_exist: true, file_type: :maven_xml, snapshot_version: true, shared_example_name: "reuse existing package"3966 behaves like reuse existing package3967 is expected not to change `Packages::Package.count`3968 returns the existing package3969 package_exist: false, file_type: :maven_xml, snapshot_version: true, shared_example_name: "create package"3970 behaves like create package3971 is expected to change `Packages::Package.count` by 13972 sets the proper name and version3973 with optional attributes3974 behaves like assigns build to package3975 with build info3976 assigns the pipeline to the package3977 behaves like assigns status to package3978 with status param3979 assigns the status to the package3980 path without version3981 maven-metadata.xml file3982 with existing package3983 behaves like reuse existing package3984 is expected not to change `Packages::Package.count`3985 returns the existing package3986 marked as pending_destruction3987 behaves like create package3988 is expected to change `Packages::Package.count` by 13989 sets the proper name and version3990 with optional attributes3991 behaves like assigns build to package3992 with build info3993 assigns the pipeline to the package3994 behaves like assigns status to package3995 with status param3996 assigns the status to the package3997 without existing package3998 behaves like create package3999 is expected to change `Packages::Package.count` by 14000 sets the proper name and version4001 with optional attributes4002 behaves like assigns build to package4003 with build info4004 assigns the pipeline to the package4005 behaves like assigns status to package4006 with status param4007 assigns the status to the package4008 with a build4009 creates a build_info4010 with multiple files for the same package and the same pipeline4011 creates a single build info4012 when package duplicates are not allowed4013 behaves like returning an error4014 is expected not to change `project.package_files.count`4015 returns an error4016 for a SNAPSHOT version4017 behaves like returning an error4018 is expected not to change `project.package_files.count`4019 returns an error4020 when uploading to the versionless package which contains metadata about all versions4021 behaves like reuse existing package4022 is expected not to change `Packages::Package.count`4023 returns the existing package4024 when uploading different non-duplicate files to the same package4025 behaves like reuse existing package4026 is expected not to change `Packages::Package.count`4027 returns the existing package4028 when the package name matches the exception regex4029 behaves like reuse existing package4030 is expected not to change `Packages::Package.count`4031 returns the existing package4032 when the package version matches the exception regex4033 behaves like reuse existing package4034 is expected not to change `Packages::Package.count`4035 returns the existing package4036 when uploading a similar package file name with a classifier4037 behaves like reuse existing package4038 is expected not to change `Packages::Package.count`4039 returns the existing package4040 for a SNAPSHOT version4041 behaves like reuse existing package4042 is expected not to change `Packages::Package.count`4043 returns the existing package4044 with a very large file name4045 behaves like returning an error4046 is expected not to change `project.package_files.count`4047 returns an error4048Packages::FinderHelper4049 #packages_for_project4050 is expected to eq [#<Packages::Package id: 79, project_id: 476, created_at: "2023-03-30 11:54:26.117298930 +0000", updated_at: "2023-03-30 11:54:26.117298930 +0000", name: "my/company/app/my-app", version: "1.29-SNAPSHOT", package_type: "maven", creator_id: 877, status: "default", last_downloaded_at: nil>]4051 #packages_visible_to_user4052 with a user4053 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both packages"4054 behaves like returning both packages4055 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4056 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both packages"4057 behaves like returning both packages4058 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4059 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both packages"4060 behaves like returning both packages4061 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4062 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both packages"4063 behaves like returning both packages4064 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4065 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4066 behaves like returning both packages4067 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4068 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4069 behaves like returning both packages4070 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4071 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"4072 behaves like returning package14073 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4074 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"4075 behaves like returning package14076 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4077 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4078 behaves like returning both packages4079 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4080 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4081 behaves like returning both packages4082 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4083 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"4084 behaves like returning package14085 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4086 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"4087 behaves like returning package14088 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4089 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4090 behaves like returning both packages4091 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4092 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4093 behaves like returning both packages4094 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4095 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no packages"4096 behaves like returning no packages4097 is expected to be empty4098 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no packages"4099 behaves like returning no packages4100 is expected to be empty4101 with a group deploy token4102 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both packages"4103 behaves like returning both packages4104 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4105 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4106 behaves like returning both packages4107 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4108 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4109 behaves like returning both packages4110 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4111 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4112 behaves like returning both packages4113 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:54:26.779500121 +0000", updated_at: "2023-03-30 11:54:26.779500121 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 83, project_id: 479, created_at: "2023-03-30 11:54:27.025073929 +0000", updated_at: "2023-03-30 11:54:27.025073929 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4114 #projects_visible_to_user4115 with a user4116 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both projects"4117 behaves like returning both projects4118 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4119 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both projects"4120 behaves like returning both projects4121 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4122 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both projects"4123 behaves like returning both projects4124 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4125 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both projects"4126 behaves like returning both projects4127 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4128 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4129 behaves like returning both projects4130 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4131 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4132 behaves like returning both projects4133 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4134 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"4135 behaves like returning project14136 is expected to eq [#<Project id:480 group30/project451>>]4137 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"4138 behaves like returning project14139 is expected to eq [#<Project id:480 group30/project451>>]4140 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4141 behaves like returning both projects4142 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4143 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4144 behaves like returning both projects4145 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4146 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"4147 behaves like returning project14148 is expected to eq [#<Project id:480 group30/project451>>]4149 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"4150 behaves like returning project14151 is expected to eq [#<Project id:480 group30/project451>>]4152 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4153 behaves like returning both projects4154 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4155 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4156 behaves like returning both projects4157 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4158 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no project"4159 behaves like returning no project4160 is expected to be empty4161 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no project"4162 behaves like returning no project4163 is expected to be empty4164 with a group deploy token4165 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both projects"4166 behaves like returning both projects4167 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4168 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4169 behaves like returning both projects4170 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4171 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4172 behaves like returning both projects4173 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4174 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4175 behaves like returning both projects4176 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4177MergeRequestPresenter4178 #mergeable_discussions_state4179 returns the mergeable_discussions_state4180 #ci_status4181 when no head pipeline4182 return status from Ci integration4183 when head pipeline present4184 success with warnings4185 returns "success-with-warnings"4186 pipeline HAS status AND its not success with warnings4187 returns pipeline status4188 pipeline has NO status AND its not success with warnings4189 returns "preparing"4190 #conflict_resolution_path4191 when MR cannot be resolved in UI4192 does not return conflict resolution path4193 when conflicts cannot be resolved by user4194 does not return conflict resolution path4195 when able to access conflict resolution UI4196 does return conflict resolution path4197 issues links4198 #closing_issues_links4199 presents closing issues links4200 does not present related issues links4201 appends status when closing issue is already closed4202 #mentioned_issues_links4203 presents related issues links4204 does not present closing issues links4205 appends status when mentioned issue is already closed4206 #assign_to_closing_issues_path4207 is expected to match "user82/project457/-/merge_requests/1/assign_related_issues"4208 #assign_to_closing_issues_count4209 single closing issue4210 returns correct count4211 multiple closing issues4212 returns correct count4213 no closing issue4214 returns correct count4215 #cancel_auto_merge_path4216 when can cancel mwps4217 returns path4218 when cannot cancel mwps4219 returns nil4220 #merge_path4221 when can be merged by user4222 returns path4223 when cannot be merged by user4224 returns nil4225 #create_issue_to_resolve_discussions_path4226 when can create issue and issues enabled4227 returns path4228 when cannot create issue4229 returns nil4230 when issues disabled4231 returns nil4232 #remove_wip_path4233 when merge request enabled and has permission4234 has remove_wip_path4235 when has no permission4236 returns nil4237 #target_branch_commits_path4238 when target branch exists4239 returns path4240 when target branch does not exist4241 returns nil4242 #source_branch_commits_path4243 when source branch exists4244 returns path4245 when source branch does not exist4246 returns nil4247 #target_branch_tree_path4248 when target branch exists4249 returns path4250 when target branch does not exist4251 returns nil4252 #source_branch_path4253 when source branch exists4254 returns path4255 when source branch does not exist4256 returns nil4257 #target_branch_path4258 when target branch exists4259 returns path4260 when target branch does not exist4261 returns nil4262 #source_branch_link4263 when source branch exists4264 returns link4265 when source branch does not exist4266 returns text4267 #target_branch_link4268 when target branch exists4269 returns link4270 when target branch does not exist4271 returns text4272 #source_branch_with_namespace_link4273 returns link4274 escapes html, when source_branch does not exist4275 #rebase_path4276 when can rebase4277 returns path4278 when cannot rebase4279 when rebase in progress4280 returns nil4281 when user cannot merge4282 returns nil4283 should not be rebased4284 returns nil4285 #can_push_to_source_branch4286 when source branch exists AND user can push to source branch4287 returns true4288 when source branch does not exists4289 returns false4290 when user cannot push to source branch4291 returns false4292 #api_approvals_path4293 is expected to eq "/api/v4/projects/482/merge_requests/1/approvals"4294 #api_approve_path4295 is expected to eq "/api/v4/projects/482/merge_requests/1/approve"4296 #api_unapprove_path4297 is expected to eq "/api/v4/projects/482/merge_requests/1/unapprove"4298 #pipeline_coverage_delta4299 when merge request has pipeline coverage delta4300 formats coverage into 2 decimal points4301 when merge request does not have pipeline coverage delta4302 returns nil4303Gitlab::Database::BatchCount4304 #batch_count4305 counts table4306 counts with :id field4307 counts with "id" field4308 counts with table.id field4309 counts with Arel column4310 counts table with batch_size 50K4311 will not count table with a batch size less than allowed4312 produces the same result with different batch sizes4313 counts with a start and finish4314 stops counting when finish value is reached4315 defaults the batch size to 1000004316 does not use BETWEEN to define the range4317 behaves like when a transaction is open4318 raises an error4319 behaves like when batch fetch query is canceled4320 reduces batch size by half and retry fetch4321 when all retries fail4322 logs failing query4323 disallowed_configurations4324 returns fallback if start is bigger than finish4325 returns fallback if loops more than allowed4326 returns fallback if batch size is less than min required4327 raises an error if distinct count is requested4328 when a relation is grouped4329 count by default column4330 counts grouped records4331 #batch_count_with_timeout4332 counts table4333 counts with :id field4334 counts with "id" field4335 counts with table.id field4336 counts with Arel column4337 counts table with batch_size 50K4338 will not count table with a batch size less than allowed4339 produces the same result with different batch sizes4340 counts with a start and finish4341 stops counting when finish value is reached4342 returns a partial count when timeout elapses4343 starts counting from a given partial result4344 behaves like when a transaction is open4345 raises an error4346 behaves like when batch fetch query is canceled4347 reduces batch size by half and retry fetch4348 when all retries fail4349 logs failing query4350 disallowed_configurations4351 returns fallback if start is bigger than finish4352 returns fallback if loops more than allowed4353 returns fallback if batch size is less than min required4354 raises an error if distinct count is requested4355 when a relation is grouped4356 count by default column4357 counts grouped records4358 #batch_distinct_count4359 counts with column field4360 counts with "id" field4361 counts with table.column field4362 counts with Arel column4363 counts with :column field with batch_size of 50K4364 will not count table with a batch size less than allowed4365 produces the same result with different batch sizes4366 counts with a start and finish4367 stops counting when finish value is reached4368 counts with User min and max as start and finish4369 defaults the batch size to 100004370 behaves like when a transaction is open4371 raises an error4372 disallowed configurations4373 returns fallback if start is bigger than finish4374 returns fallback if loops more than allowed4375 returns fallback if batch size is less than min required4376 will raise an error if distinct count with the :id column is requested4377 when a relation is grouped4378 distinct count by non-unique column4379 counts grouped records4380 behaves like when batch fetch query is canceled4381 reduces batch size by half and retry fetch4382 when all retries fail4383 logs failing query4384 #batch_sum4385 returns the sum of values in the given column4386 works when given an Arel column4387 works with a batch size of 50K4388 works with start and finish provided4389 returns the same result regardless of batch size4390 defaults the batch size to 10004391 behaves like when a transaction is open4392 raises an error4393 behaves like disallowed configurations4394 returns fallback if start is bigger than finish4395 returns fallback if loops more than allowed4396 returns fallback if batch size is less than min required4397 behaves like when batch fetch query is canceled4398 reduces batch size by half and retry fetch4399 when all retries fail4400 logs failing query4401 #batch_average4402 calls BatchAverageCounter4403MergeRequests::AddTodoWhenBuildFailsService4404 #execute4405 commit status with ref4406 notifies the todo service4407 commit status with non-HEAD ref4408 does not notify the todo service4409 commit status without ref4410 does not notify the todo service4411 when commit status is a build allowed to fail4412 does not create todo4413 when build belongs to a merge request pipeline4414 notifies the todo service4415 #close4416 commit status with ref4417 notifies the todo service4418 commit status with non-HEAD ref4419 does not notify the todo service4420 commit status without ref4421 does not notify the todo service4422 when build belongs to a merge request pipeline4423 notifies the todo service4424 #close_all4425 when using pipeline that belongs to merge request4426 resolves todos about failed builds for pipeline4427 when pipeline is not related to merge request4428 does not resolve any todos about failed builds4429Subscribable Subscribable4430 #subscribed?4431 behaves like returns expected values4432 without user4433 returns false4434 without project4435 returns false when no subscription exists4436 returns true when a subscription exists and subscribed is true4437 returns false when a subscription exists and subscribed is false4438 with project4439 returns false when no subscription exists4440 returns true when a subscription exists and subscribed is true4441 returns false when a subscription exists and subscribed is false4442 #subscribers4443 returns [] when no subcribers exists4444 returns the subscribed users4445 #toggle_subscription4446 without project4447 toggles the current subscription state for the given user4448 with project4449 toggles the current subscription state for the given user4450 #subscribe4451 without project4452 subscribes the given user4453 with project4454 subscribes the given user4455 #unsubscribe4456 without project4457 unsubscribes the given current user4458 with project4459 unsubscribes the given current user4460 #set_subscription4461 without project4462 behaves like setting subscriptions4463 when desired_state is set to true4464 when a user is subscribed to the resource4465 keeps the user subscribed4466 when a user is not subscribed to the resource4467 subscribes the user to the resource4468 when desired_state is set to false4469 when a user is subscribed to the resource4470 unsubscribes the user from the resource4471 when a user is not subscribed to the resource4472 keeps the user unsubscribed4473 with project4474 behaves like setting subscriptions4475 when desired_state is set to true4476 when a user is subscribed to the resource4477 keeps the user subscribed4478 when a user is not subscribed to the resource4479 subscribes the user to the resource4480 when desired_state is set to false4481 when a user is subscribed to the resource4482 unsubscribes the user from the resource4483 when a user is not subscribed to the resource4484 keeps the user unsubscribed4485 #lazy_subscription4486 executes only one SQL query4487 with work items4488 loads correct subscribable type4489 matches existing subscription type4490Gitlab::Ci::Status::External::Factory4491 when external status has a simple core status4492 when core status is created4493 fabricates a core status created4494 extends core status with common methods4495 when core status is waiting_for_resource4496 fabricates a core status waiting_for_resource4497 extends core status with common methods4498 when core status is preparing4499 fabricates a core status preparing4500 extends core status with common methods4501 when core status is pending4502 fabricates a core status pending4503 extends core status with common methods4504 when core status is running4505 fabricates a core status running4506 extends core status with common methods4507 when core status is success4508 fabricates a core status success4509 extends core status with common methods4510 when core status is failed4511 fabricates a core status failed4512 extends core status with common methods4513 when core status is canceled4514 fabricates a core status canceled4515 extends core status with common methods4516 when core status is skipped4517 fabricates a core status skipped4518 extends core status with common methods4519 when core status is manual4520 fabricates a core status manual4521 extends core status with common methods4522 when core status is scheduled4523 fabricates a core status scheduled4524 extends core status with common methods4525Ci::PlayBuildService#execute4526 when project does not have repository yet4527 allows user to play build if protected branch rules are met4528 does not allow user with developer role to play build4529 when project has repository4530 allows user with developer role to play a build4531 prevents a blocked developer from playing a build4532 when build is a playable manual action4533 enqueues the build4534 reassignes build user correctly4535 when a subsequent job is skipped4536 marks the subsequent job as processable4537 when variables are supplied4538 assigns the variables to the build4539 and variables are invalid4540 resets the attributes of the build4541 when user defined variables are restricted4542 when user is maintainer4543 assigns the variables to the build4544 when user is developer4545 raises an error4546 when build is not a playable manual action4547 duplicates the build4548 assigns users correctly4549 and is not retryable4550 does not duplicate the build4551 does not enqueue the build4552 when build is not action4553 raises an error4554 when user does not have ability to trigger action4555 raises an error4556Gitlab::Ci::Variables::Collection4557 .new4558 can be initialized with an array4559 can be initialized without an argument4560 #append4561 appends a hash4562 appends a Ci::Variable4563 appends an internal resource4564 returns self4565 #compact4566 returns a new Collection instance4567 rejects pair that has nil value4568 #concat4569 appends all elements from an array4570 appends all elements from other collection4571 does not concatenate resource if it undefined4572 returns self4573 #+4574 makes it possible to combine with an array4575 makes it possible to combine with another collection4576 #[]4577 with variable key with single entry4578 behaves like an array access operator4579 for a non-existent variable name4580 returns nil4581 for an existent variable name4582 returns the last Item4583 with variable key with multiple entries4584 behaves like an array access operator4585 for a non-existent variable name4586 returns nil4587 for an existent variable name4588 returns the last Item4589 #all4590 with variable key with single entry4591 behaves like a method returning all known variables or nil4592 for a non-existent variable name4593 returns nil4594 for an existing variable name4595 returns all expected Items4596 with variable key with multiple entries4597 behaves like a method returning all known variables or nil4598 for a non-existent variable name4599 returns nil4600 for an existing variable name4601 returns all expected Items4602 #size4603 returns zero for empty collection4604 returns 2 for collection with 2 variables4605 returns 3 for collection with 2 duplicate variables4606 #to_runner_variables4607 creates an array of hashes in a runner-compatible format4608 #to_hash4609 returns regular hash in valid order without duplicates4610 #reject4611 returns a Collection instance4612 returns correctly filtered Collection4613 #sort_and_expand_all4614 table tests4615 empty array4616 returns Collection4617 expands variables4618 preserves raw attribute4619 empty string4620 returns Collection4621 expands variables4622 preserves raw attribute4623 simple expansions4624 returns Collection4625 expands variables4626 preserves raw attribute4627 complex expansion4628 returns Collection4629 expands variables4630 preserves raw attribute4631 unused variables4632 returns Collection4633 expands variables4634 preserves raw attribute4635 complex expansions4636 returns Collection4637 expands variables4638 preserves raw attribute4639 escaped characters in complex expansions keeping undefined are kept intact4640 returns Collection4641 expands variables4642 preserves raw attribute4643 escaped characters in complex expansions discarding undefined are kept intact4644 returns Collection4645 expands variables4646 preserves raw attribute4647 out-of-order expansion4648 returns Collection4649 expands variables4650 preserves raw attribute4651 out-of-order complex expansion4652 returns Collection4653 expands variables4654 preserves raw attribute4655 missing variable discarding original4656 returns Collection4657 expands variables4658 preserves raw attribute4659 missing variable keeping original4660 returns Collection4661 expands variables4662 preserves raw attribute4663 complex expansions with missing variable keeping original4664 returns Collection4665 expands variables4666 preserves raw attribute4667 complex expansions with raw variable with expand_raw_refs: true (default)4668 returns Collection4669 expands variables4670 preserves raw attribute4671 complex expansions with raw variable with expand_raw_refs: false4672 returns Collection4673 expands variables4674 preserves raw attribute4675 variable value referencing password with special characters4676 returns Collection4677 expands variables4678 preserves raw attribute4679 cyclic dependency causes original array to be returned4680 returns Collection4681 expands variables4682 preserves raw attribute4683 file variables with expand_file_refs: true4684 returns Collection4685 expands variables4686 preserves raw attribute4687 file variables with expand_file_refs: false4688 returns Collection4689 expands variables4690 preserves raw attribute4691 #to_s4692 is expected to eq "[\"VAR\", \"VAR2\"], @errors='circular variable reference detected'"4693Issues::ExportCsvService4694 renders csv to string4695 #email4696 emails csv4697 renders with a target filesize4698 includes4699 with export_csv_preload_in_batches feature flag disabled4700 behaves like exports CSVs for issues4701 includes the columns required for import4702 returns two issues4703 iid4704 url4705 title4706 state4707 description4708 author name4709 author username4710 assignee name4711 assignee username4712 confidential4713 milestone4714 labels4715 due_date4716 created_at4717 updated_at4718 closed_at4719 discussion_locked4720 weight4721 time estimate4722 time spent4723 with issues filtered by labels and project4724 returns only filtered objects4725 with label links4726 does not run a query for each label link4727 returns the labels in sorted order4728 with export_csv_preload_in_batches feature flag enabled4729 behaves like exports CSVs for issues4730 includes the columns required for import4731 returns two issues4732 iid4733 url4734 title4735 state4736 description4737 author name4738 author username4739 assignee name4740 assignee username4741 confidential4742 milestone4743 labels4744 due_date4745 created_at4746 updated_at4747 closed_at4748 discussion_locked4749 weight4750 time estimate4751 time spent4752 with issues filtered by labels and project4753 returns only filtered objects4754 with label links4755 does not run a query for each label link4756 returns the labels in sorted order4757 with minimal details4758 renders labels as nil4759WikiPage::Meta4760 Associations4761 is expected to belong to project required: false4762 is expected to have many slugs4763 is expected to have many events4764 can find slugs4765 Validations4766 is expected to validate that :project_id cannot be empty/falsy4767 is expected to validate that the length of :title is at most 2554768 is expected not to allow :title to be ‹nil›4769 is forbidden to have two records for the same project with the same canonical_slug4770 #canonical_slug4771 can be set on initialization4772 there are no slugs4773 is expected to have attributes {:canonical_slug => (be nil)}4774 we have some non-canonical slugs4775 is expected to have attributes {:canonical_slug => (be nil)}4776 issues at most one query4777 issues no queries if we already know the slug4778 we have a canonical slug4779 has the correct value4780 canonical_slug=4781 the slug is not known to us4782 changes it to the correct value4783 ensures the slug is in the db4784 issues at most N queries4785 issues fewer queries if we already know the current slug4786 the slug is already in the DB (but not canonical)4787 changes it to the correct value4788 ensures the slug is in the db4789 issues at most N queries4790 issues fewer queries if we already know the current slug4791 the slug is already in the DB (and canonical)4792 changes it to the correct value4793 ensures the slug is in the db4794 issues at most N queries4795 issues fewer queries if we already know the current slug4796 the slug is up to date and in the DB4797 changes it to the correct value4798 ensures the slug is in the db4799 issues at most N queries4800 issues fewer queries if we already know the current slug4801 .find_or_create4802 there are problems4803 the slug is too long4804 raises an error4805 a conflicting record exists4806 raises an error4807 the wiki page is not valid4808 raises an error4809 no existing record exists4810 establishes the correct state4811 makes a reasonable number of DB queries4812 the commit happened a day ago4813 establishes the correct state4814 makes a reasonable number of DB queries4815 the last_known_slug is the same as the current slug, as on creation4816 establishes the correct state4817 makes a reasonable number of DB queries4818 a record exists in the DB in the correct state4819 establishes the correct state4820 makes a reasonable number of DB queries4821 a record exists in the DB, but we need to update timestamps4822 establishes the correct state4823 makes a reasonable number of DB queries4824 we need to update the slug, but not the title4825 establishes the correct state4826 makes a reasonable number of DB queries4827 we need to update the title, but not the slug4828 establishes the correct state4829 makes a reasonable number of DB queries4830 we want to change the slug back to a previous version4831 establishes the correct state4832 makes a reasonable number of DB queries4833 we want to change the slug a bunch of times4834 establishes the correct state4835 makes a reasonable number of DB queries4836 we need to update the title and the slug4837 establishes the correct state4838 makes a reasonable number of DB queries4839Gitlab::Ci::Ansi2json::Style4840 #set?4841 when fg color is set4842 is expected to be truthy4843 when bg color is set4844 is expected to be truthy4845 when mask is set4846 is expected to be truthy4847 nothing is set4848 is expected to be falsey4849 #reset!4850 set the style params to default4851 update formats to mimic terminals4852 when fg color present4853 when mask is set to bold4854 changes the fg color to a lighter version4855 when mask set to another format4856 does not change the fg color4857 when mask is not set4858 does not change the fg color4859 #update4860 initial_state: [], ansi_commands: ["0"], result: "", description: "does not set any style"4861 change the style4862 initial_state: [], ansi_commands: ["1"], result: "term-bold", description: "enables format bold"4863 change the style4864 initial_state: [], ansi_commands: ["3"], result: "term-italic", description: "enables format italic"4865 change the style4866 initial_state: [], ansi_commands: ["4"], result: "term-underline", description: "enables format underline"4867 change the style4868 initial_state: [], ansi_commands: ["8"], result: "term-conceal", description: "enables format conceal"4869 change the style4870 initial_state: [], ansi_commands: ["9"], result: "term-cross", description: "enables format cross"4871 change the style4872 initial_state: ["1"], ansi_commands: ["21"], result: "", description: "disables format bold"4873 change the style4874 initial_state: ["1", "3"], ansi_commands: ["21"], result: "term-italic", description: "disables format bold and leaves italic"4875 change the style4876 initial_state: ["1"], ansi_commands: ["22"], result: "", description: "disables format bold using command 22"4877 change the style4878 initial_state: ["1", "3"], ansi_commands: ["22"], result: "term-italic", description: "disables format bold and leaves italic using command 22"4879 change the style4880 initial_state: ["3"], ansi_commands: ["23"], result: "", description: "disables format italic"4881 change the style4882 initial_state: ["1", "3"], ansi_commands: ["23"], result: "term-bold", description: "disables format italic and leaves bold"4883 change the style4884 initial_state: ["4"], ansi_commands: ["24"], result: "", description: "disables format underline"4885 change the style4886 initial_state: ["1", "4"], ansi_commands: ["24"], result: "term-bold", description: "disables format underline and leaves bold"4887 change the style4888 initial_state: ["8"], ansi_commands: ["28"], result: "", description: "disables format conceal"4889 change the style4890 initial_state: ["1", "8"], ansi_commands: ["28"], result: "term-bold", description: "disables format conceal and leaves bold"4891 change the style4892 initial_state: ["9"], ansi_commands: ["29"], result: "", description: "disables format cross"4893 change the style4894 initial_state: ["1", "9"], ansi_commands: ["29"], result: "term-bold", description: "disables format cross and leaves bold"4895 change the style4896 initial_state: [], ansi_commands: ["30"], result: "term-fg-black", description: "sets fg color black"4897 change the style4898 initial_state: [], ansi_commands: ["31"], result: "term-fg-red", description: "sets fg color red"4899 change the style4900 initial_state: [], ansi_commands: ["32"], result: "term-fg-green", description: "sets fg color green"4901 change the style4902 initial_state: [], ansi_commands: ["33"], result: "term-fg-yellow", description: "sets fg color yellow"4903 change the style4904 initial_state: [], ansi_commands: ["34"], result: "term-fg-blue", description: "sets fg color blue"4905 change the style4906 initial_state: [], ansi_commands: ["35"], result: "term-fg-magenta", description: "sets fg color magenta"4907 change the style4908 initial_state: [], ansi_commands: ["36"], result: "term-fg-cyan", description: "sets fg color cyan"4909 change the style4910 initial_state: [], ansi_commands: ["37"], result: "term-fg-white", description: "sets fg color white"4911 change the style4912 initial_state: [], ansi_commands: ["38", "5", "1"], result: "xterm-fg-1", description: "sets xterm fg color 1"4913 change the style4914 initial_state: [], ansi_commands: ["38", "5", "2"], result: "xterm-fg-2", description: "sets xterm fg color 2"4915 change the style4916 initial_state: [], ansi_commands: ["38", "1"], result: "term-bold", description: "ignores 38 command if not followed by 5 and sets format bold"4917 change the style4918 initial_state: [], ansi_commands: ["40"], result: "term-bg-black", description: "sets bg color black"4919 change the style4920 initial_state: [], ansi_commands: ["41"], result: "term-bg-red", description: "sets bg color red"4921 change the style4922 initial_state: [], ansi_commands: ["42"], result: "term-bg-green", description: "sets bg color green"4923 change the style4924 initial_state: [], ansi_commands: ["43"], result: "term-bg-yellow", description: "sets bg color yellow"4925 change the style4926 initial_state: [], ansi_commands: ["44"], result: "term-bg-blue", description: "sets bg color blue"4927 change the style4928 initial_state: [], ansi_commands: ["45"], result: "term-bg-magenta", description: "sets bg color magenta"4929 change the style4930 initial_state: [], ansi_commands: ["46"], result: "term-bg-cyan", description: "sets bg color cyan"4931 change the style4932 initial_state: [], ansi_commands: ["47"], result: "term-bg-white", description: "sets bg color white"4933 change the style4934 initial_state: [], ansi_commands: ["48", "5", "1"], result: "xterm-bg-1", description: "sets xterm bg color 1"4935 change the style4936 initial_state: [], ansi_commands: ["48", "5", "2"], result: "xterm-bg-2", description: "sets xterm bg color 2"4937 change the style4938 initial_state: [], ansi_commands: ["48", "1"], result: "term-bold", description: "ignores 48 command if not followed by 5 and sets format bold"4939 change the style4940 initial_state: [], ansi_commands: ["90"], result: "term-fg-l-black", description: "sets fg color light black"4941 change the style4942 initial_state: [], ansi_commands: ["91"], result: "term-fg-l-red", description: "sets fg color light red"4943 change the style4944 initial_state: [], ansi_commands: ["92"], result: "term-fg-l-green", description: "sets fg color light green"4945 change the style4946 initial_state: [], ansi_commands: ["93"], result: "term-fg-l-yellow", description: "sets fg color light yellow"4947 change the style4948 initial_state: [], ansi_commands: ["94"], result: "term-fg-l-blue", description: "sets fg color light blue"4949 change the style4950 initial_state: [], ansi_commands: ["95"], result: "term-fg-l-magenta", description: "sets fg color light magenta"4951 change the style4952 initial_state: [], ansi_commands: ["96"], result: "term-fg-l-cyan", description: "sets fg color light cyan"4953 change the style4954 initial_state: [], ansi_commands: ["97"], result: "term-fg-l-white", description: "sets fg color light white"4955 change the style4956 initial_state: [], ansi_commands: ["100"], result: "term-bg-l-black", description: "sets bg color light black"4957 change the style4958 initial_state: [], ansi_commands: ["101"], result: "term-bg-l-red", description: "sets bg color light red"4959 change the style4960 initial_state: [], ansi_commands: ["102"], result: "term-bg-l-green", description: "sets bg color light green"4961 change the style4962 initial_state: [], ansi_commands: ["103"], result: "term-bg-l-yellow", description: "sets bg color light yellow"4963 change the style4964 initial_state: [], ansi_commands: ["104"], result: "term-bg-l-blue", description: "sets bg color light blue"4965 change the style4966 initial_state: [], ansi_commands: ["105"], result: "term-bg-l-magenta", description: "sets bg color light magenta"4967 change the style4968 initial_state: [], ansi_commands: ["106"], result: "term-bg-l-cyan", description: "sets bg color light cyan"4969 change the style4970 initial_state: [], ansi_commands: ["107"], result: "term-bg-l-white", description: "sets bg color light white"4971 change the style4972 initial_state: ["1"], ansi_commands: [], result: "", description: "resets style from format bold"4973 change the style4974 initial_state: ["1"], ansi_commands: ["0"], result: "", description: "resets style from format bold"4975 change the style4976 initial_state: ["1", "3"], ansi_commands: ["0"], result: "", description: "resets style from format bold and italic"4977 change the style4978 initial_state: ["1", "3", "term-fg-l-red", "term-bg-yellow"], ansi_commands: ["0"], result: "", description: "resets all formats and colors"4979 change the style4980 initial_state: ["31", "42"], ansi_commands: ["39"], result: "term-bg-green", description: "set foreground from red to default leaving background unchanged"4981 change the style4982 initial_state: ["31", "42"], ansi_commands: ["49"], result: "term-fg-red", description: "set background from green to default leaving foreground unchanged"4983 change the style4984 initial_state: [], ansi_commands: ["1", "30", "42", "3"], result: "term-fg-l-black term-bg-green term-bold term-italic", description: "adds fg color, bg color and formats from no style"4985 change the style4986 initial_state: ["3", "31"], ansi_commands: ["23", "1", "43"], result: "term-fg-l-red term-bg-yellow term-bold", description: "replaces format italic with bold and adds a yellow background"4987 change the style4988DiffFileEntity4989 when there is no merge request4990 behaves like diff file entity4991 exposes correct attributes4992 behaves like diff file base entity4993 exposes essential attributes4994 when diff file does not have a blob and content sha4995 exposes some attributes as nil4996 when a viewer4997 matches the schema4998 when it is a whitespace only change4999 has whitespace_only true5000 when the highlighted lines arent shown5001 has whitespace_only nil5002 when it is a new file5003 has whitespace_only false5004 when it is a collapsed file5005 has whitespace_only false5006 diff files5007 when diff_view is parallel5008 contains only the parallel diff lines5009 when diff_view is parallel5010 contains only the inline diff lines5011 when there is a merge request5012 exposes additional attributes5013 points all urls to merge request target project5014 exposes load_collapsed_diff_url if the file viewer is collapsed5015 behaves like diff file entity5016 exposes correct attributes5017 behaves like diff file base entity5018 exposes essential attributes5019 when diff file does not have a blob and content sha5020 exposes some attributes as nil5021 when a viewer5022 matches the schema5023 when it is a whitespace only change5024 has whitespace_only true5025 when the highlighted lines arent shown5026 has whitespace_only nil5027 when it is a new file5028 has whitespace_only false5029 when it is a collapsed file5030 has whitespace_only false5031 diff files5032 when diff_view is parallel5033 contains only the parallel diff lines5034 when diff_view is parallel5035 contains only the inline diff lines5036 when diff_view is unknown5037 hides highlighted_diff_lines and parallel_diff_lines5038 #parallel_diff_lines5039 exposes parallel diff lines correctly5040 #highlighted_diff_lines5041 calls diff_lines_for_serializer on diff_file5042 behaves like diff file with conflict_type5043 #conflict_type5044 returns nil by default5045 when there is matching conflict file5046 returns false5047Gitlab::BlobHelper5048 #extname5049 returns the extension5050 #known_extension?5051 returns true5052 #viewable5053 returns true5054 returns false5055 #large?5056 returns false5057 returns true5058 #binary?5059 returns true5060 returns false5061 #text?5062 returns true5063 returns false5064 #image?5065 with a .txt file5066 returns false5067 with a .webp file5068 returns true5069 #mime_type5070 returns text/plain5071 returns application/pdf5072 #binary_mime_type?5073 returns false5074 #lines5075 returns the payload in an Array5076 #content_type5077 returns text/plain5078 returns text/plain5079 #encoded_newlines_re5080 returns a regular expression5081 #ruby_encoding5082 returns UTF-85083 #encoding5084 returns UTF-85085 #empty?5086 returns false5087ReleasesFinder5088 when parent is a project5089 behaves like when the user is not part of the project5090 returns no releases5091 when the user is a project guest5092 sorts by release date5093 with sorting parameters5094 by default is released_at in descending order5095 is expected to eq [#<Release id: 6, tag: "v1.1.0", description: [FILTERED], project_id: 615, created_at: "2023-03-27 11:57:18.160260442 +0000", updated_at: "2023-03-30 11:57:18.161004071 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1125, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-29 11:57:17.904799184 +0000">, #<Release id: 5, tag: "v1.0.0", description: [FILTERED], project_id: 615, created_at: "2023-03-30 11:57:17.753296378 +0000", updated_at: "2023-03-30 11:57:17.780330336 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1124, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-28 11:57:17.779804785 +0000">]5096 released_at in ascending order5097 is expected to eq [#<Release id: 7, tag: "v1.0.0", description: [FILTERED], project_id: 616, created_at: "2023-03-30 11:57:19.283796821 +0000", updated_at: "2023-03-30 11:57:19.308336259 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1129, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-28 11:57:19.307787199 +0000">, #<Release id: 8, tag: "v1.1.0", description: [FILTERED], project_id: 616, created_at: "2023-03-27 11:57:19.662221697 +0000", updated_at: "2023-03-30 11:57:19.663052797 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1130, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-29 11:57:19.430652378 +0000">]5098 order by created_at in descending order5099 is expected to eq [#<Release id: 9, tag: "v1.0.0", description: [FILTERED], project_id: 617, created_at: "2023-03-30 11:57:20.770540728 +0000", updated_at: "2023-03-30 11:57:20.797869936 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1134, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-28 11:57:20.797221006 +0000">, #<Release id: 10, tag: "v1.1.0", description: [FILTERED], project_id: 617, created_at: "2023-03-27 11:57:21.248155616 +0000", updated_at: "2023-03-30 11:57:21.249093325 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1135, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-29 11:57:20.936508043 +0000">]5100 order by created_at in ascending order5101 is expected to eq [#<Release id: 12, tag: "v1.1.0", description: [FILTERED], project_id: 618, created_at: "2023-03-27 11:57:22.735157043 +0000", updated_at: "2023-03-30 11:57:22.735729283 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1140, name: "v1.1.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-29 11:57:22.518775142 +0000">, #<Release id: 11, tag: "v1.0.0", description: [FILTERED], project_id: 618, created_at: "2023-03-30 11:57:22.375735895 +0000", updated_at: "2023-03-30 11:57:22.399164693 +0000", description_html: "<p data-sourcepos=\"1:1-1:15\" dir=\"auto\">Awesome re...", cached_markdown_version: 2097152, author_id: 1139, name: "v1.0.0", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-03-28 11:57:22.398658093 +0000">]5102 behaves like preload5103 preloads associations5104 when preload is false5105 does not preload associations5106 behaves like when a tag parameter is passed5107 only returns the release with the matching tag5108Gitlab::Issues::Rebalancing::State5109 rebalancing issues in namespace5110 is expected to eq 15111 behaves like issues rebalance caching5112 #track_new_running_rebalance5113 caches a project id to track caching in progress5114 #set and get current_index5115 returns zero as current index when index not cached5116 returns cached current index5117 #set and get current_project5118 returns nil if there is no project_id cached5119 returns cached current project_id5120 #rebalance_in_progress?5121 return zero if no re-balances are running5122 return false if no re-balances are running5123 return true a re-balance for given project/namespace is running5124 caching issue ids5125 with no issue ids cached5126 returns zero when there are no cached issue ids5127 returns empty array when there are no cached issue ids5128 with cached issue ids5129 returns count of cached issue ids5130 returns array of issue ids5131 limits returned values5132 when caching duplicate issue_ids5133 does not cache duplicate issues5134 returns cached issues with latest scores5135 when setting expiration5136 when tracking new rebalance5137 returns as expired for non existent key5138 has expiration set5139 when setting current index5140 returns as expiring for non existent key5141 has expiration set5142 when setting current project id5143 returns as expired for non existent key5144 has expiration set5145 when setting cached issue ids5146 returns as expired for non existent key5147 has expiration set5148 cleanup cache5149 removes cache keys5150 .fetch_rebalancing_groups_and_projects5151 caches recently finished rebalance key5152 rebalancing issues in a project5153 is expected to eq 25154 behaves like issues rebalance caching5155 #track_new_running_rebalance5156 caches a project id to track caching in progress5157 #set and get current_index5158 returns zero as current index when index not cached5159 returns cached current index5160 #set and get current_project5161 returns nil if there is no project_id cached5162 returns cached current project_id5163 #rebalance_in_progress?5164 return zero if no re-balances are running5165 return false if no re-balances are running5166 return true a re-balance for given project/namespace is running5167 caching issue ids5168 with no issue ids cached5169 returns zero when there are no cached issue ids5170 returns empty array when there are no cached issue ids5171 with cached issue ids5172 returns count of cached issue ids5173 returns array of issue ids5174 limits returned values5175 when caching duplicate issue_ids5176 does not cache duplicate issues5177 returns cached issues with latest scores5178 when setting expiration5179 when tracking new rebalance5180 returns as expired for non existent key5181 has expiration set5182 when setting current index5183 returns as expiring for non existent key5184 has expiration set5185 when setting current project id5186 returns as expired for non existent key5187 has expiration set5188 when setting cached issue ids5189 returns as expired for non existent key5190 has expiration set5191 cleanup cache5192 removes cache keys5193 .fetch_rebalancing_groups_and_projects5194 caches recently finished rebalance key5195Gitlab::Redis::Sessions5196 behaves like redis_new_instance_shared_examples5197 behaves like redis_shared_examples5198 .config_file_name5199 when there is no config file anywhere5200 is expected to be nil5201 and there is a global env override5202 is expected to eq "global override"5203 and there is an instance specific config file5204 is expected to eq "/tmp/d20230330-358-46v10q/config/redis.sessions.yml"5205 returns a path that exists5206 and there is a specific env override5207 is expected to eq "instance specific override"5208 .store5209 with old format5210 behaves like redis store5211 instantiates Redis::Store5212 with the namespace5213 uses specified namespace5214 with new format5215 behaves like redis store5216 instantiates Redis::Store5217 with the namespace5218 uses specified namespace5219 .params5220 withstands mutation5221 when url contains unix socket reference5222 with old format5223 returns path key instead5224 with new format5225 returns path key instead5226 when url is host based5227 with old format5228 returns hash with host, port, db, and password5229 with new format5230 rails_env: "development", host: "development-host"5231 returns hash with host, port, db, and password5232 rails_env: "test", host: "test-host"5233 returns hash with host, port, db, and password5234 rails_env: "production", host: "production-host"5235 returns hash with host, port, db, and password5236 with redis cluster format5237 rails_env: "development", host: "development-master"5238 returns hash with cluster and password5239 rails_env: "test", host: "test-master"5240 returns hash with cluster and password5241 rails_env: "production", host: "production-master"5242 returns hash with cluster and password5243 .url5244 withstands mutation5245 when yml file with env variable5246 reads redis url from env variable5247 .version5248 returns a version5249 .with5250 when running on single-threaded runtime5251 instantiates a connection pool with size 55252 when running on multi-threaded runtime5253 instantiates a connection pool with a size based on the concurrency of the worker5254 when there is no config at all5255 can run an empty block5256 #db5257 with old format5258 returns the correct db5259 with new format5260 returns the correct db5261 with cluster-mode5262 returns the correct db5263 #sentinels5264 when sentinels are defined5265 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5266 returns an array of hashes with host and port keys5267 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5268 returns an array of hashes with host and port keys5269 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5270 returns an array of hashes with host and port keys5271 when sentinels are not defined5272 returns nil5273 when cluster is defined5274 returns nil5275 #sentinels?5276 when sentinels are defined5277 returns true5278 when sentinels are not defined5279 is expected to eq nil5280 when cluster is defined5281 returns false5282 #raw_config_hash5283 returns old-style single url config in a hash5284 returns cluster config without url key in a hash5285 #fetch_config5286 raises an exception when the config file contains invalid yaml5287 has a value for the legacy default URL5288 when redis.yml exists5289 uses config/redis.yml5290 when no config file exsits5291 returns nil5292 but resque.yml exists5293 returns the config from resque.yml5294 .config_file_name5295 and there is a global env override5296 is expected to eq "global override"5297 and SharedState has a different config file5298 is expected to eq "fallback config file"5299 #fetch_config5300 when redis.yml exists5301 when the fallback has a redis.yml entry5302 is expected to eq {"fallback redis.yml"=>123}5303 and an instance config file exists5304 is expected to eq {"instance specific file"=>456}5305 and the instance has a redis.yml entry5306 is expected to eq {"instance redis.yml"=>789}5307 when no redis config file exsits5308 returns nil5309 when resque.yml exists5310 returns the config from resque.yml5311 redis instance used in connection pool5312 uses ::Redis instance5313 #store5314 instantiates an instance of Redis::Store5315Banzai::Filter::ReferenceRedactorFilter5316 ignores non-GFM links5317 skips when the skip_redaction flag is set5318 with data-project5319 valid projects5320 allows permitted Project references5321 invalid projects5322 removes unpermitted references5323 handles invalid references5324 with data-issue5325 allows references for non confidential issues5326 for confidential issues5327 removes references for non project members5328 removes references for project members with guest role5329 allows references for author5330 allows references for assignee5331 allows references for project members5332 for admin5333 when admin mode is enabled5334 allows references5335 when admin mode is disabled5336 removes references5337 when a confidential issue is moved from a public project to a private one5338 removes references for author5339 removes references for assignee5340 allows references for project members5341 for user references5342 with data-group5343 removes unpermitted Group references5344 allows permitted Group references5345 handles invalid Group references5346 with data-user5347 allows any User reference5348Projects::ProtectDefaultBranchService5349 #execute5350 without a default branch5351 does nothing5352 with a default branch5353 protects the default branch5354 #protect_default_branch5355 when branch protection is needed5356 changes the HEAD of the project5357 protects the default branch5358 when branch protection is not needed5359 changes the HEAD of the project5360 does not protect the default branch5361 when protected branch does not exist5362 changes the HEAD of the project5363 protects the default branch5364 when protected branch already exists5365 changes the HEAD of the project5366 does not protect the default branch5367 #create_protected_branch5368 creates the protected branch5369 #protect_branch?5370 when default branch protection is disabled5371 returns false5372 when default branch protection is enabled5373 returns false if the branch is already protected5374 returns true if the branch is not yet protected5375 #protected_branch_exists?5376 when feature flag `group_protected_branches` disabled5377 return false5378 when feature flag `group_protected_branches` enabled5379 return true5380 #default_branch5381 returns the default branch of the project5382 #push_access_level5383 when developers can push5384 returns the DEVELOPER access level5385 when developers can not push5386 returns the MAINTAINER access level5387 #merge_access_level5388 when developers can merge5389 returns the DEVELOPER access level5390 when developers can not merge5391 returns the MAINTAINER access level5392Issues::ReopenService5393 #execute5394 when user is not authorized to reopen issue5395 does not reopen the issue5396 when skip_authorization is true5397 does close the issue even if user is not authorized5398 when user is authorized to reopen issue5399 invalidates counter cache for assignees5400 refreshes the number of opened issues5401 deletes milestone issue counters cache5402 does not create timeline event5403 issue is incident type5404 creates a timeline event5405 behaves like an incident management tracked event5406 .track_event5407 tracks the event using redis5408 behaves like Snowplow event tracking with RedisHLL context5409 behaves like Snowplow event tracking5410 is emitted5411 when issue is not confidential5412 executes issue hooks5413 when issue is confidential5414 executes confidential issue hooks5415Projects::ProjectMembersHelper5416 project members5417 #project_members_app_data_json5418 returns expected json5419 sets `members` property that matches json schema5420 sets `member_path` property5421 when pagination is not available5422 sets `pagination` attribute to expected json5423 when pagination is available5424 sets `pagination` attribute to expected json5425 group links5426 sets `group.members` property that matches json schema5427 sets `member_path` property5428 inherited5429 include_relations: [:inherited, :direct], result: lazy { [group_link_7, group_link_4, group_link_9, group_link_5, group_link_3].map(&:id) }5430 returns correct group links5431 include_relations: [:inherited], result: lazy { [group_link_1, group_link_4, group_link_5, group_link_3].map(&:id) }5432 returns correct group links5433 include_relations: [:direct], result: lazy { [group_link_7, group_link_8, group_link_9].map(&:id) }5434 returns correct group links5435 #project_member_header_subtext5436 when user can admin project members5437 contains expected text5438 when user cannot admin project members5439 contains expected text5440bin/audit-event-type5441 # order random5442 AuditEventTypeOptionParser5443 .parse5444 raises an error when name of the audit event type is missing5445 parses -h5446 param: :name, argv: ["foo"], result: "foo"5447 is expected to eq "foo"5448 param: :amend, argv: ["foo", "--amend"], result: true5449 is expected to eq true5450 param: :force, argv: ["foo", "-f"], result: true5451 is expected to eq true5452 param: :force, argv: ["foo", "--force"], result: true5453 is expected to eq true5454 param: :description, argv: ["foo", "-d", "desc"], result: "desc"5455 is expected to eq "desc"5456 param: :description, argv: ["foo", "--description", "desc"], result: "desc"5457 is expected to eq "desc"5458 param: :feature_category, argv: ["foo", "-c", "audit_events"], result: "audit_events"5459 is expected to eq "audit_events"5460 param: :feature_category, argv: ["foo", "--feature-category", "audit_events"], result: "audit_events"5461 is expected to eq "audit_events"5462 param: :milestone, argv: ["foo", "-M", "15.6"], result: "15.6"5463 is expected to eq "15.6"5464 param: :milestone, argv: ["foo", "--milestone", "15.6"], result: "15.6"5465 is expected to eq "15.6"5466 param: :saved_to_database, argv: ["foo", "-s"], result: true5467 is expected to eq true5468 param: :saved_to_database, argv: ["foo", "--saved-to-database"], result: true5469 is expected to eq true5470 param: :saved_to_database, argv: ["foo", "--no-saved-to-database"], result: false5471 is expected to eq false5472 param: :streamed, argv: ["foo", "-t"], result: true5473 is expected to eq true5474 param: :streamed, argv: ["foo", "--streamed"], result: true5475 is expected to eq true5476 param: :streamed, argv: ["foo", "--no-streamed"], result: false5477 is expected to eq false5478 param: :dry_run, argv: ["foo", "-n"], result: true5479 is expected to eq true5480 param: :dry_run, argv: ["foo", "--dry-run"], result: true5481 is expected to eq true5482 param: :ee, argv: ["foo", "-e"], result: true5483 is expected to eq true5484 param: :ee, argv: ["foo", "--ee"], result: true5485 is expected to eq true5486 param: :jh, argv: ["foo", "-j"], result: true5487 is expected to eq true5488 param: :jh, argv: ["foo", "--jh"], result: true5489 is expected to eq true5490 param: :introduced_by_mr, argv: ["foo", "-m", "https://url"], result: "https://url"5491 is expected to eq "https://url"5492 param: :introduced_by_mr, argv: ["foo", "--introduced-by-mr", "https://url"], result: "https://url"5493 is expected to eq "https://url"5494 param: :introduced_by_issue, argv: ["foo", "-i", "https://url"], result: "https://url"5495 is expected to eq "https://url"5496 param: :introduced_by_issue, argv: ["foo", "--introduced-by-issue", "https://url"], result: "https://url"5497 is expected to eq "https://url"5498 .read_description5499 reads description from stdin5500 when description is empty5501 shows error message and retries5502 .read_feature_category5503 reads feature_category from stdin5504 when feature category is empty5505 shows error message and retries5506 .read_saved_to_database5507 reads saved_to_database from stdin5508 when saved_to_database is invalid5509 shows error message and retries5510 .read_streamed5511 reads streamed from stdin5512 when streamed is invalid5513 shows error message and retries5514 .read_introduced_by_mr5515 reads introduced_by_mr from stdin5516 when URL is empty5517 does not raise an error5518 when URL is invalid5519 shows error message and retries5520 .read_introduced_by_issue5521 reads type from stdin5522 when URL is invalid5523 shows error message and retries5524 .read_milestone5525 returns the correct milestone from the VERSION file5526 AuditEventTypeCreator5527 properly creates an audit event type5528 when running on master5529 requires feature branch5530 with invalid audit event type names5531 argv: [".invalid.audit.type"], ex: /Provide a name for the audit event type that is/5532 is expected to raise /Provide a name for the audit event type that is/5533 argv: ["existing_audit_event_type"], ex: /already exists!/5534 is expected to raise /already exists!/5535Todos::Destroy::UnauthorizedFeaturesService5536 when user_id is provided5537 when all features have same visibility as the project5538 removes only user issue todos5539 when issues are visible only to project members but the user is a member5540 does not remove any todos5541 when issues are visible only to project members5542 removes only user issue todos5543 when mrs, builds and repository are visible only to project members5544 removes only user mr and commit todos5545 when mrs are visible only to project members5546 removes only user merge request todo5547 when mrs and issues are visible only to project members5548 removes only user merge request and issue todos5549 when user_id is not provided5550 when all features have same visibility as the project5551 does not remove any todos5552 when issues are visible only to project members5553 removes only non members issue todos5554 when mrs, builds and repository are visible only to project members5555 removes only non members mr and commit todos5556 when mrs are visible only to project members5557 removes only non members merge request todos5558 when mrs and issues are visible only to project members5559 removes only non members merge request and issue todos5560PendingTodosFinder5561 #execute5562 returns only pending todos5563 supports retrieving of todos for a specific project5564 supports retrieving of todos for a specific todo target5565 supports retrieving of todos for a specific target type5566 supports retrieving of todos for a specific commit ID5567 supports retrieving of todos for specific discussion5568 supports retrieving of todos for a specific action5569UploadService5570 File service5571 for valid gif file5572 is expected to have key :alt5573 is expected to have key :url5574 is expected to have value "banana_sample"5575 is expected to match "banana_sample.gif"5576 for valid png file5577 is expected to have key :alt5578 is expected to have key :url5579 is expected to have value "dk"5580 is expected to match "dk.png"5581 for valid jpg file5582 is expected to have key :alt5583 is expected to have key :url5584 is expected to have value "rails_sample"5585 is expected to match "rails_sample.jpg"5586 for txt file5587 is expected to have key :alt5588 is expected to have key :url5589 is expected to have value "doc_sample.txt"5590 is expected to match "doc_sample.txt"5591 for too large a file5592 is expected to eq {}5593 #override_max_attachment_size5594 allows the upload5595 disallows the upload5596ProjectClusterablePresenter5597 #can_create_cluster?5598 when user can create5599 is expected to be truthy5600 when user cannot create5601 is expected to be falsey5602 #index_path5603 is expected to eq "/namespace1030/project705/-/clusters"5604 #connect_path5605 is expected to eq "/namespace1031/project706/-/clusters/connect"5606 #new_cluster_docs_path5607 is expected to eq "/namespace1032/project707/-/clusters/new_cluster_docs"5608 #create_user_clusters_path5609 is expected to eq "/namespace1033/project708/-/clusters/create_user"5610 #cluster_status_cluster_path5611 is expected to eq "/namespace1034/project709/-/clusters/3/cluster_status"5612 #clear_cluster_cache_path5613 is expected to eq "/namespace1035/project710/-/clusters/6/clear_cache"5614 #cluster_path5615 is expected to eq "/namespace1036/project711/-/clusters/9"5616 #metrics_dashboard_path5617 is expected to eq "/namespace1037/project712/-/clusters/12/metrics_dashboard"5618 #learn_more_link5619 is expected to include "user/project/clusters/index"5620Deployments::OlderDeploymentsDropService5621 #execute5622 when deployment is nil5623 behaves like it does not drop any build5624 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5625 when a deployment is passed in5626 and there is no active deployment for the related environment5627 behaves like it does not drop any build5628 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5629 and there are active deployment for the related environment5630 and there is no older deployment than "deployment"5631 behaves like it does not drop any build5632 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5633 and there is an older deployment than "deployment"5634 drops that older deployment5635 when older deployable is a manual job5636 does not drop any builds nor track the exception5637 when deployable.drop raises RuntimeError5638 does not drop an older deployment and tracks the exception5639 when ActiveRecord::StaleObjectError is raised5640 resets the object via Gitlab::OptimisticLocking5641 and there is no deployable for that older deployment5642 behaves like it does not drop any build5643 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5644Gitlab::Chat::Command5645 #try_create_pipeline5646 returns nil when the command is not valid5647 tries to create the pipeline when a command is valid5648 #create_pipeline5649 creates the pipeline5650 creates the chat data for the pipeline5651 stores the chat name ID in the chat data5652 stores the response URL in the chat data5653 creates the environment variables for the pipeline5654PruneOldEventsWorker5655 #perform5656 prunes events older than 3 years5657 leaves fresh events5658 leaves events from 13 months ago5659 leaves events from 3 years ago5660 with ops_prune_old_events FF disabled5661 does not delete5662Gitlab::TemplateParser::AST::Identifier5663 #evaluate5664 evaluates a selector5665 returns nil if the key is not set5666 returns nil if the input is not a Hash5667 returns the current data when using the special identifier "it"5668Gitlab::TemplateParser::AST::Integer5669 #evaluate5670 evaluates a selector5671 returns nil if the index is not set5672 returns nil if the input is not an Array5673Gitlab::TemplateParser::AST::Selector5674 #evaluate5675 evaluates a selector5676 evaluates a selector that returns nil5677Gitlab::TemplateParser::AST::Variable5678 #evaluate5679 evaluates a variable5680 evaluates an undefined variable5681 evaluates the special variable "it"5682Gitlab::TemplateParser::AST::Expressions5683 #evaluate5684 evaluates all expressions5685Gitlab::TemplateParser::AST::Text5686 #evaluate5687 returns the text5688Gitlab::TemplateParser::AST::If5689 #evaluate5690 evaluates a truthy if expression without an else clause5691 evaluates a falsy if expression without an else clause5692 evaluates a falsy if expression with an else clause5693 #truthy?5694 returns true for a non-empty String5695 returns true for a non-empty Array5696 returns true for a Boolean true5697 returns false for an empty String5698 returns true for an empty Array5699 returns false for a Boolean false5700Gitlab::TemplateParser::AST::Each5701 #evaluate5702 evaluates the expression5703 returns an empty string when the input is not a collection5704 disallows too many nested loops5705Gitlab::Metrics::Dashboard::Finder5706 .find5707 behaves like misconfigured dashboard service response5708 returns an appropriate message and status code5709 when the dashboard exists5710 behaves like valid dashboard service response5711 behaves like valid dashboard service response for schema5712 returns a json representation of the dashboard5713 when the dashboard is configured incorrectly5714 behaves like misconfigured dashboard service response5715 returns an appropriate message and status code5716 when the dashboard contains a metric without a query5717 behaves like misconfigured dashboard service response5718 returns an appropriate message and status code5719 when the system dashboard is specified5720 behaves like valid dashboard service response5721 behaves like valid dashboard service response for schema5722 returns a json representation of the dashboard5723 when the self-monitoring dashboard is specified5724 behaves like valid dashboard service response5725 behaves like valid dashboard service response for schema5726 returns a json representation of the dashboard5727 when no dashboard is specified5728 behaves like valid dashboard service response5729 behaves like valid dashboard service response for schema5730 returns a json representation of the dashboard5731 when the dashboard is expected to be embedded5732 behaves like valid embedded dashboard service response5733 behaves like valid dashboard service response for schema5734 returns a json representation of the dashboard5735 when params are incomplete5736 behaves like valid embedded dashboard service response5737 behaves like valid dashboard service response for schema5738 returns a json representation of the dashboard5739 when the panel is specified5740 as a custom metric5741 behaves like misconfigured dashboard service response5742 returns an appropriate message and status code5743 when the metric exists5744 behaves like valid embedded dashboard service response5745 behaves like valid dashboard service response for schema5746 returns a json representation of the dashboard5747 as a project-defined panel5748 behaves like misconfigured dashboard service response5749 returns an appropriate message and status code5750 when the metric exists5751 behaves like valid embedded dashboard service response5752 behaves like valid dashboard service response for schema5753 returns a json representation of the dashboard5754 .find_raw5755 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panels"=>[{"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_total", "label"=>"Total (GB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) /1024/1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) /1024/1024/1024", "unit"=>"GB"}], "title"=>"Memory Usage (Total)", "type"=>"area-chart", "y_label"=>"Total Memory Used (GB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_cores_total", "label"=>"Total (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job)", "unit"=>"cores"}], "title"=>"Core Usage (Total)", "type"=>"area-chart", "y_label"=>"Total Cores"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_average", "label"=>"Pod average (MB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024", "unit"=>"MB"}], "title"=>"Memory Usage (Pod average)", "type"=>"line-chart", "y_label"=>"Memory Used per Pod (MB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_average_canary", "label"=>"Pod average (MB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024", "track"=>"canary", "unit"=>"MB"}], "title"=>"Canary: Memory Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Memory Used per Pod (MB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_core_usage", "label"=>"Pod average (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod)) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod_name))", "unit"=>"cores"}], "title"=>"Core Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Cores per Pod"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_core_usage_canary", "label"=>"Pod average (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod)) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod_name))", "track"=>"canary", "unit"=>"cores"}], "title"=>"Canary: Core Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Cores per Pod"}, {"metrics"=>[{"id"=>"system_metrics_knative_function_invocation_count", "label"=>"invocations / minute", "query_range"=>"sum(ceil(rate(istio_requests_total{destination_service_namespace=\"{{kube_namespace}}\", destination_service=~\"{{function_name}}.*\"}[1m])*60))", "unit"=>"requests"}], "title"=>"Knative function invocations", "type"=>"area-chart", "y_label"=>"Invocations"}]}, {"group"=>"Response metrics (NGINX Ingress VTS)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_ingress_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(nginx_upstream_responses_total{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) by (status_code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_latency_pod_average", "label"=>"Pod average (ms)", "query_range"=>"avg(nginx_upstream_response_msecs_avg{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"})", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_axis"=>{"format"=>"milliseconds"}, "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_http_error_rate", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_upstream_responses_total{status_code=\"5xx\", upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) / sum(rate(nginx_upstream_responses_total{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_axis"=>{"format"=>"percentHundred"}, "y_label"=>"HTTP Errors (%)"}]}, {"group"=>"Response metrics (NGINX Ingress)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(label_replace(rate(nginx_ingress_controller_requests{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m]), \"status_code\", \"${1}xx\", \"status\", \"(.)..\")) by (status_code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_latency_pod_average", "label"=>"Pod average (ms)", "query_range"=>"sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_sum{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) / sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_count{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) * 1000", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_http_error_rate", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_ingress_controller_requests{status=~\"5.*\",namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}, {"group"=>"Response metrics (HA Proxy)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_ha_proxy_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(haproxy_frontend_http_requests_total{ {{environment_filter}} }[2m])) by (code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_ha_proxy_http_error_rate", "label"=>"HTTP Errors (%)", "query_range"=>"sum(rate(haproxy_frontend_http_responses_total{code=\"5xx\",{{environment_filter}} }[2m])) / sum(rate(haproxy_frontend_http_responses_total{ {{environment_filter}} }[2m]))", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"Error Rate (%)"}]}, {"group"=>"Response metrics (AWS ELB)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_aws_elb_throughput_requests", "label"=>"Total (req/sec)", "query_range"=>"sum(aws_elb_request_count_sum{ {{environment_filter}} }) / 60", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_aws_elb_latency_average", "label"=>"Average (ms)", "query_range"=>"avg(aws_elb_latency_average{ {{environment_filter}} }) * 1000", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_aws_elb_http_error_rate", "label"=>"HTTP Errors (%)", "query_range"=>"sum(aws_elb_httpcode_backend_5_xx_sum{ {{environment_filter}} }) / sum(aws_elb_request_count_sum{ {{environment_filter}} })", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"Error Rate (%)"}]}, {"group"=>"Response metrics (NGINX)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(nginx_server_requests{server_zone!=\"*\", server_zone!=\"_\", {{environment_filter}} }[2m])) by (code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_latency", "label"=>"Upstream (ms)", "query_range"=>"avg(nginx_server_requestMsec{ {{environment_filter}} })", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_http_error_rate", "label"=>"HTTP Errors", "query_range"=>"sum(rate(nginx_server_requests{code=\"5xx\", {{environment_filter}} }[2m]))", "unit"=>"errors / sec"}], "title"=>"HTTP Error Rate (Errors / Sec)", "type"=>"area-chart", "y_axis"=>{"precision"=>0}, "y_label"=>"HTTP 500 Errors / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_http_error_percentage", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_server_requests{code=~\"5.*\", host=\"*\", {{environment_filter}} }[2m])) / sum(rate(nginx_server_requests{code=\"total\", host=\"*\", {{environment_filter}} }[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}5756 when the system dashboard is specified5757 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panels"=>[{"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_total", "label"=>"Total (GB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) /1024/1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) /1024/1024/1024", "unit"=>"GB"}], "title"=>"Memory Usage (Total)", "type"=>"area-chart", "y_label"=>"Total Memory Used (GB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_cores_total", "label"=>"Total (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job)", "unit"=>"cores"}], "title"=>"Core Usage (Total)", "type"=>"area-chart", "y_label"=>"Total Cores"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_average", "label"=>"Pod average (MB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024", "unit"=>"MB"}], "title"=>"Memory Usage (Pod average)", "type"=>"line-chart", "y_label"=>"Memory Used per Pod (MB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_memory_average_canary", "label"=>"Pod average (MB)", "query_range"=>"avg(sum(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024 OR avg(sum(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) by (job)) without (job) / count(avg(container_memory_usage_bytes{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}) without (job)) /1024/1024", "track"=>"canary", "unit"=>"MB"}], "title"=>"Canary: Memory Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Memory Used per Pod (MB)"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_core_usage", "label"=>"Pod average (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod)) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-([^c].*|c([^a]|a([^n]|n([^a]|a([^r]|r[^y])))).*|)-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod_name))", "unit"=>"cores"}], "title"=>"Core Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Cores per Pod"}, {"metrics"=>[{"id"=>"system_metrics_kubernetes_container_core_usage_canary", "label"=>"Pod average (cores)", "query_range"=>"avg(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container!=\"POD\",pod=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod)) OR avg(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (job)) without (job) / count(sum(rate(container_cpu_usage_seconds_total{container_name!=\"POD\",pod_name=~\"^{{ci_environment_slug}}-canary-(.*)\",namespace=\"{{kube_namespace}}\"}[15m])) by (pod_name))", "track"=>"canary", "unit"=>"cores"}], "title"=>"Canary: Core Usage (Pod Average)", "type"=>"line-chart", "y_label"=>"Cores per Pod"}, {"metrics"=>[{"id"=>"system_metrics_knative_function_invocation_count", "label"=>"invocations / minute", "query_range"=>"sum(ceil(rate(istio_requests_total{destination_service_namespace=\"{{kube_namespace}}\", destination_service=~\"{{function_name}}.*\"}[1m])*60))", "unit"=>"requests"}], "title"=>"Knative function invocations", "type"=>"area-chart", "y_label"=>"Invocations"}]}, {"group"=>"Response metrics (NGINX Ingress VTS)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_ingress_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(nginx_upstream_responses_total{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) by (status_code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_latency_pod_average", "label"=>"Pod average (ms)", "query_range"=>"avg(nginx_upstream_response_msecs_avg{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"})", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_axis"=>{"format"=>"milliseconds"}, "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_http_error_rate", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_upstream_responses_total{status_code=\"5xx\", upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) / sum(rate(nginx_upstream_responses_total{upstream=~\"{{kube_namespace}}-{{ci_environment_slug}}-.*\"}[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_axis"=>{"format"=>"percentHundred"}, "y_label"=>"HTTP Errors (%)"}]}, {"group"=>"Response metrics (NGINX Ingress)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(label_replace(rate(nginx_ingress_controller_requests{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m]), \"status_code\", \"${1}xx\", \"status\", \"(.)..\")) by (status_code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_latency_pod_average", "label"=>"Pod average (ms)", "query_range"=>"sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_sum{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) / sum(rate(nginx_ingress_controller_ingress_upstream_latency_seconds_count{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) * 1000", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_ingress_16_http_error_rate", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_ingress_controller_requests{status=~\"5.*\",namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) / sum(rate(nginx_ingress_controller_requests{namespace=\"{{kube_namespace}}\",ingress=~\".*{{ci_environment_slug}}.*\"}[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}, {"group"=>"Response metrics (HA Proxy)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_ha_proxy_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(haproxy_frontend_http_requests_total{ {{environment_filter}} }[2m])) by (code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_ha_proxy_http_error_rate", "label"=>"HTTP Errors (%)", "query_range"=>"sum(rate(haproxy_frontend_http_responses_total{code=\"5xx\",{{environment_filter}} }[2m])) / sum(rate(haproxy_frontend_http_responses_total{ {{environment_filter}} }[2m]))", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"Error Rate (%)"}]}, {"group"=>"Response metrics (AWS ELB)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_aws_elb_throughput_requests", "label"=>"Total (req/sec)", "query_range"=>"sum(aws_elb_request_count_sum{ {{environment_filter}} }) / 60", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_aws_elb_latency_average", "label"=>"Average (ms)", "query_range"=>"avg(aws_elb_latency_average{ {{environment_filter}} }) * 1000", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_aws_elb_http_error_rate", "label"=>"HTTP Errors (%)", "query_range"=>"sum(aws_elb_httpcode_backend_5_xx_sum{ {{environment_filter}} }) / sum(aws_elb_request_count_sum{ {{environment_filter}} })", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"Error Rate (%)"}]}, {"group"=>"Response metrics (NGINX)", "panels"=>[{"metrics"=>[{"id"=>"response_metrics_nginx_throughput_status_code", "label"=>"Status Code", "query_range"=>"sum(rate(nginx_server_requests{server_zone!=\"*\", server_zone!=\"_\", {{environment_filter}} }[2m])) by (code)", "unit"=>"req / sec"}], "title"=>"Throughput", "type"=>"area-chart", "y_label"=>"Requests / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_latency", "label"=>"Upstream (ms)", "query_range"=>"avg(nginx_server_requestMsec{ {{environment_filter}} })", "unit"=>"ms"}], "title"=>"Latency", "type"=>"area-chart", "y_label"=>"Latency (ms)"}, {"metrics"=>[{"id"=>"response_metrics_nginx_http_error_rate", "label"=>"HTTP Errors", "query_range"=>"sum(rate(nginx_server_requests{code=\"5xx\", {{environment_filter}} }[2m]))", "unit"=>"errors / sec"}], "title"=>"HTTP Error Rate (Errors / Sec)", "type"=>"area-chart", "y_axis"=>{"precision"=>0}, "y_label"=>"HTTP 500 Errors / Sec"}, {"metrics"=>[{"id"=>"response_metrics_nginx_http_error_percentage", "label"=>"5xx Errors (%)", "query_range"=>"sum(rate(nginx_server_requests{code=~\"5.*\", host=\"*\", {{environment_filter}} }[2m])) / sum(rate(nginx_server_requests{code=\"total\", host=\"*\", {{environment_filter}} }[2m])) * 100", "unit"=>"%"}], "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}5758 when an existing project dashboard is specified5759 is expected to eq {"dashboard"=>"Test Dashboard", "links"=>[{"title"=>"Link 1", "url"=>"https://gitlab.com"}, {"title"=>"Link 2", "url"=>"https://docs.gitlab.com"}], "panel_groups"=>[{"group"=>"Group B", "panels"=>[{"metrics"=>[{"id"=>"metric_b", "label"=>"Legend Label", "query_range"=>"query", "unit"=>"unit"}], "title"=>"Super Chart B", "type"=>"area-chart", "y_label"=>"y_label"}]}, {"group"=>"Group A", "panels"=>[{"metrics"=>[{"id"=>"metric_a2", "label"=>"Legend Label", "query_range"=>2000, "unit"=>"unit"}], "title"=>"Super Chart A2", "type"=>"area-chart", "y_label"=>"y_label"}, {"max_value"=>1, "metrics"=>[{"id"=>"metric_a1", "label"=>"Legend Label", "query_range"=>"avg(\n sum(\n container_memory_usage_bytes{\n container_name!=\"POD\",\n pod_name=~\"^{{ci_environment_slug}}-(.*)\",\n namespace=\"{{kube_namespace}}\"\n }\n ) by (job)\n) without (job)\n/1024/1024/1024\n", "unit"=>"unit"}], "title"=>"Super Chart A1", "type"=>"area-chart", "y_label"=>"y_label"}]}], "priority"=>1, "templating"=>{"variables"=>{"custom_variable_full_syntax"=>{"label"=>"Variable 2", "options"=>{"values"=>[{"text"=>"Option 1", "value"=>"value option 1"}, {"default"=>true, "text"=>"Option 2", "value"=>"value_option_2"}]}, "type"=>"custom"}, "custom_variable_simple_syntax"=>["value1", "value2", "value3"], "metric_label_values_variable"=>{"label"=>"Variable 3", "options"=>{"label"=>"backend", "series_selector"=>"backend:haproxy_backend_availability:ratio{env=\"{{env}}\"}"}, "type"=>"metric_label_values"}, "text_variable_full_syntax"=>{"label"=>"Variable 1", "options"=>{"default_value"=>"default"}, "type"=>"text"}, "text_variable_simple_syntax"=>"default value"}}}5760 .find_all_paths5761 includes OOTB dashboards by default5762 when the project contains dashboards5763 includes OOTB and project dashboards5764 when the project is self-monitoring5765 includes self-monitoring and project dashboards5766Gitlab::GitalyClient::RepositoryService5767 #exists?5768 sends a repository_exists message5769 #optimize_repository5770 with default parameter5771 behaves like a repository optimization5772 sends a optimize_repository message5773 with heuristical housekeeping strategy5774 behaves like a repository optimization5775 sends a optimize_repository message5776 with eager housekeeping strategy5777 behaves like a repository optimization5778 sends a optimize_repository message5779 #prune_unreachable_objects5780 sends a prune_unreachable_objects message5781 #repository_size5782 sends a repository_size message5783 #get_object_directory_size5784 sends a get_object_directory_size message5785 #apply_gitattributes5786 sends an apply_gitattributes message5787 #info_attributes5788 reads the info attributes5789 #has_local_branches?5790 sends a has_local_branches message5791 #import_repository5792 sends a create_repository_from_url message5793 when http_host is provided5794 sends a create_repository_from_url message with http_host provided in the request5795 #fetch_remote5796 sends a fetch_remote_request message5797 with resolved address5798 sends a fetch_remote_request message5799 SSH auth5800 ssh_mirror_url: false, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5801 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385802 ssh_mirror_url: false, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5803 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385804 ssh_mirror_url: true, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5805 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385806 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"}5807 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385808 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: nil, expected_params: {:ssh_key=>"key"}5809 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385810 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5811 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385812 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: nil, expected_params: {}5813 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385814 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "", ssh_known_hosts: "", expected_params: {}5815 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385816 #calculate_checksum5817 sends a calculate_checksum message5818 #create_repository5819 sends a create_repository message without arguments5820 sends a create_repository message with default branch5821 sends a create_repository message with default branch containing non ascii chars5822 #create_from_snapshot5823 sends a create_repository_from_snapshot message5824 #raw_changes_between5825 sends a create_repository_from_snapshot message5826 #search_files_by_regexp5827 with ASCII ref5828 behaves like a search for files by regexp5829 sends a search_files_by_name message and returns a flatten array5830 with non-ASCII ref5831 behaves like a search for files by regexp5832 sends a search_files_by_name message and returns a flatten array5833 #disconnect_alternates5834 sends a disconnect_git_alternates message5835 #rename5836 sends a rename_repository message5837 #remove5838 sends a remove_repository message5839 #replicate5840 sends a replicate_repository message5841 #set_full_path5842 sends a set_full_path message5843 #full_path5844 sends a full_path message5845 #find_license5846 sends a find_license request with medium timeout5847Gitlab::Ci::Reports::TestSuiteSummary5848 #name5849 when test suite summary has several build report results5850 returns the suite name5851 #build_ids5852 when test suite summary has several build report results5853 returns the build ids5854 #total_time5855 when test suite summary has several build report results5856 returns the total time5857 #success_count5858 when test suite summary has several build report results5859 returns the total success5860 #failed_count5861 when test suite summary has several build report results5862 returns the total failed5863 #error_count5864 when test suite summary has several build report results5865 returns the total errored5866 #skipped_count5867 when test suite summary has several build report results5868 returns the total skipped5869 #total_count5870 when test suite summary has several build report results5871 returns the total count5872 #suite_error5873 when there are no build report results with suite errors5874 is expected to be nil5875 when there are build report results with suite errors5876 includes the first suite error from the collection of build report results5877 #to_h5878 when test suite summary has several build report results5879 returns the total as a hash5880Packages::Conan::PackageFinder5881 #execute5882 visibility: :private, role: :maintainer, packages_visible: true5883 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5884 visibility: :private, role: :developer, packages_visible: true5885 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5886 visibility: :private, role: :reporter, packages_visible: true5887 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5888 visibility: :private, role: :guest, packages_visible: false5889 is expected to eq []5890 visibility: :private, role: :anonymous, packages_visible: false5891 is expected to eq []5892 visibility: :internal, role: :maintainer, packages_visible: true5893 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5894 visibility: :internal, role: :developer, packages_visible: true5895 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5896 visibility: :internal, role: :reporter, packages_visible: true5897 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5898 visibility: :internal, role: :guest, packages_visible: true5899 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5900 visibility: :internal, role: :anonymous, packages_visible: false5901 is expected to eq []5902 visibility: :public, role: :maintainer, packages_visible: true5903 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5904 visibility: :public, role: :developer, packages_visible: true5905 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5906 visibility: :public, role: :reporter, packages_visible: true5907 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5908 visibility: :public, role: :guest, packages_visible: true5909 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5910 visibility: :public, role: :anonymous, packages_visible: true5911 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:59:33.911400132 +0000", updated_at: "2023-03-30 11:59:33.911400132 +0000", name: "package-1", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 88, project_id: 803, created_at: "2023-03-30 11:59:34.310107827 +0000", updated_at: "2023-03-30 11:59:34.310107827 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5912Mutations::DependencyProxy::ImageTtlGroupPolicy::Update5913 is expected to require graphql authorizations :admin_dependency_proxy5914 #resolve5915 with existing dependency proxy image ttl policy5916 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"5917 behaves like updating the dependency proxy image ttl policy5918 behaves like updating the dependency proxy image ttl policy attributes5919 updates the dependency proxy image ttl policy5920 behaves like not creating the dependency proxy image ttl policy5921 doesn't create the dependency proxy image ttl policy5922 behaves like returning a success5923 returns the dependency proxy image ttl group policy with no errors5924 with invalid params5925 doesn't create the dependency proxy image ttl policy5926 does not update5927 returns an error5928 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"5929 behaves like denying access to dependency proxy image ttl policy5930 raises Gitlab::Graphql::Errors::ResourceNotAvailable5931 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5932 behaves like denying access to dependency proxy image ttl policy5933 raises Gitlab::Graphql::Errors::ResourceNotAvailable5934 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5935 behaves like denying access to dependency proxy image ttl policy5936 raises Gitlab::Graphql::Errors::ResourceNotAvailable5937 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5938 behaves like denying access to dependency proxy image ttl policy5939 raises Gitlab::Graphql::Errors::ResourceNotAvailable5940 without existing dependency proxy image ttl policy5941 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"5942 behaves like creating the dependency proxy image ttl policy5943 creates a new package setting5944 saves the settings5945 behaves like returning a success5946 returns the dependency proxy image ttl group policy with no errors5947 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"5948 behaves like denying access to dependency proxy image ttl policy5949 raises Gitlab::Graphql::Errors::ResourceNotAvailable5950 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5951 behaves like denying access to dependency proxy image ttl policy5952 raises Gitlab::Graphql::Errors::ResourceNotAvailable5953 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5954 behaves like denying access to dependency proxy image ttl policy5955 raises Gitlab::Graphql::Errors::ResourceNotAvailable5956 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5957 behaves like denying access to dependency proxy image ttl policy5958 raises Gitlab::Graphql::Errors::ResourceNotAvailable5959Gitlab::GitalyClient::BlobService5960 #get_new_lfs_pointers5961 sends a get_new_lfs_pointers message5962 with not_in = :all5963 sends the correct message5964 with hook environment5965 sends a list_all_lfs_pointers message5966 #get_all_lfs_pointers5967 sends a get_all_lfs_pointers message5968 #list_blobs5969 with a single revision5970 sends a list_blobs message5971 with multiple revisions5972 sends a list_blobs message5973 with multiple revisions and limits5974 sends a list_blobs message5975 with paths5976 sends a list_blobs message5977 with split contents5978 sends a list_blobs message5979NavHelper5980 #header_links5981 when the user is logged in5982 has all the expected links by default5983 contains the impersonation link while impersonating5984 as admin5985 application setting :admin_mode is enabled5986 does not contain the admin mode link by default5987 with admin mode enabled5988 contains the admin mode link5989 application setting :admin_mode is disabled5990 does not contain the admin mode link5991 with admin mode enabled5992 has no effect on header links5993 when the user cannot read cross project5994 does not contain cross project elements when the user cannot read cross project5995 shows the search box when the user cannot read cross project and they are visiting a project5996 when the user is not logged in5997 returns only the sign in and search when the user is not logged in5998 .admin_monitoring_nav_links5999 is expected to all be a kind of String6000 #page_has_markdown?6001 path: "projects/merge_requests#show"6002 is expected to eq true6003 path: "projects/merge_requests/conflicts#show"6004 is expected to eq true6005 path: "issues#show"6006 is expected to eq true6007 path: "milestones#show"6008 is expected to eq true6009 path: "issues#designs"6010 is expected to eq true6011 #show_super_sidebar?6012 returns false by default6013 when used is signed-in6014 with feature flag off6015 when user has new nav disabled6016 behaves like #show_super_sidebar returns false6017 returns false6018 when user has new nav enabled6019 behaves like #show_super_sidebar returns false6020 returns false6021 with feature flag on6022 when user has new nav disabled6023 behaves like #show_super_sidebar returns false6024 returns false6025 when user has new nav enabled6026 returns true6027ErrorTracking::SentryClient::Projects6028 # order random6029 #projects6030 behaves like calls sentry api6031 calls sentry api6032 behaves like has correct return type6033 returns objects of type Gitlab::ErrorTracking::Project6034 behaves like has correct length6035 is expected to eq 26036 behaves like Sentry API response size limit6037 raises an exception when response is too large6038 essential keys missing in API response6039 raises exception6040 optional keys missing in sentry response6041 behaves like calls sentry api6042 calls sentry api6043 behaves like has correct return type6044 returns objects of type Gitlab::ErrorTracking::Project6045 behaves like has correct length6046 is expected to eq 16047 error object created from sentry response6048 sentry_project_object: :id, sentry_response: :id6049 is expected to eq "2"6050 sentry_project_object: :name, sentry_response: :name6051 is expected to eq "sentry-example"6052 sentry_project_object: :status, sentry_response: :status6053 is expected to eq "active"6054 sentry_project_object: :slug, sentry_response: :slug6055 is expected to eq "sentry-example"6056 sentry_project_object: :organization_name, sentry_response: [:organization, :name]6057 is expected to eq "Sentry"6058 sentry_project_object: :organization_id, sentry_response: [:organization, :id]6059 is expected to eq "1"6060 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]6061 is expected to eq "sentry"6062 redirects6063 behaves like no Sentry redirects6064 does not follow redirects6065 when exception is raised6066 behaves like maps Sentry exceptions6067 HTTParty::Error6068 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6069 Net::OpenTimeout6070 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6071 SocketError6072 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6073 OpenSSL::SSL::SSLError6074 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6075 Errno::ECONNREFUSED6076 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6077 StandardError6078 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6079Tags::CreateService6080 #execute6081 creates the tag and returns success6082 when target is invalid6083 returns an error6084 when tag_name is empty6085 returns an error6086 when target is empty6087 returns an error6088 when tag already exists6089 returns an error6090 when tag name is invalid6091 returns an error6092 when pre-receive hook fails6093 returns an error6094Gitlab::Ci::Config::Entry::Trigger6095 when trigger config is a non-empty string6096 #valid?6097 is expected to be valid6098 #value6099 returns a trigger configuration hash6100 when trigger config an empty string6101 #valid?6102 is expected not to be valid6103 #errors6104 returns an error about an empty config6105 when trigger is a hash - cross-project6106 when project is a string6107 when project is a non-empty string6108 is valid6109 when project is an empty string6110 returns error6111 when project is not a string6112 when project is an array6113 returns error6114 when project is a boolean6115 returns error6116 when branch is provided6117 #valid?6118 is expected to be valid6119 #value6120 returns a trigger configuration hash6121 when strategy is provided6122 when strategy is depend6123 #valid?6124 is expected to be valid6125 #value6126 returns a trigger configuration hash6127 when strategy is invalid6128 #valid?6129 is expected not to be valid6130 #errors6131 returns an error about unknown config key6132 when config contains unknown keys6133 #valid?6134 is expected not to be valid6135 #errors6136 returns an error about unknown config key6137 with forward6138 is expected to be valid6139 returns a trigger configuration hash6140 when trigger is a hash - parent-child6141 with simple include6142 is expected to be valid6143 returns a trigger configuration hash6144 with project6145 is expected not to be valid6146 returns an error6147 with branch6148 is expected not to be valid6149 returns an error6150 with forward6151 is expected to be valid6152 returns a trigger configuration hash6153 when trigger configuration is not valid6154 when branch is not provided6155 #valid?6156 is expected not to be valid6157 #errors6158 returns an error message6159Gitlab::DatabaseImporters::InstanceAdministrators::CreateGroup6160 #execute6161 without application_settings6162 returns error6163 without admin users6164 returns error6165 with application settings and admin users6166 returns correct keys6167 tracks successful install6168 creates group6169 adds all admins as maintainers6170 saves the group id6171 returns error when saving group ID fails6172 when group already exists6173 returns success6174 when group cannot be created6175 returns error6176 when user cannot be added to group6177 returns error6178ProjectFeaturesCompatibility6179 converts fields from 'true' to ProjectFeature::ENABLED6180 converts fields from 'false' to ProjectFeature::DISABLED6181 converts fields from true to ProjectFeature::ENABLED6182 converts fields from false to ProjectFeature::DISABLED6183 access levels6184 access_level: "disabled", expected_result: 06185 accepts access level6186 access_level: "private", expected_result: 106187 accepts access level6188 access_level: "enabled", expected_result: 206189 accepts access level6190 access_level: "public", expected_result: 306191 accepts access level6192Gitlab::UserAccessSnippet6193 #can_do_action?6194 when can access_git6195 calls Ability#allowed? and returns its result6196 when can not access_git6197 disallows access6198 when user is nil6199 disallows access6200 when user is migration bot6201 allows access6202 #can_push_to_branch?6203 anonymous6204 when can access_git6205 respects accessibility6206 when can not access_git6207 disallows access6208 non_member6209 when can access_git6210 respects accessibility6211 when can not access_git6212 disallows access6213 guest6214 when can access_git6215 respects accessibility6216 when can not access_git6217 disallows access6218 reporter6219 when can access_git6220 respects accessibility6221 when can not access_git6222 disallows access6223 maintainer6224 when can access_git6225 respects accessibility6226 when can not access_git6227 disallows access6228 admin6229 when can access_git6230 respects accessibility6231 when can not access_git6232 disallows access6233 author6234 when can access_git6235 respects accessibility6236 when can not access_git6237 disallows access6238 when user is migration bot6239 allows access6240 when snippet is nil6241 disallows access6242 when user is migration bot6243 disallows access6244 #can_create_tag?6245 returns false6246 when user is migration bot6247 returns false6248 #can_delete_branch?6249 returns false6250 when user is migration bot6251 returns false6252 #can_merge_to_branch?6253 returns false6254 when user is migration bot6255 returns false6256MergeRequests::Mergeability::RunChecksService6257 #execute6258 when every check is skipped6259 is still a success6260 when a check is skipped6261 does not execute the check6262 when a check is not skipped6263 when the check is cacheable6264 when the check is cached6265 returns the cached result6266 when the check is not cached6267 writes and returns the result6268 when check is not cacheable6269 does not call the results store6270 #success?6271 when the execute method has been executed6272 when all the checks succeed6273 returns true6274 when one check fails6275 returns false6276 when execute has not been exectued6277 raises an error6278 #failure_reason6279 when the execute method has been executed6280 when all the checks succeed6281 returns nil6282 when one check fails6283 returns the open reason6284 when execute has not been exectued6285 raises an error6286Gitlab::Auth::Ldap::User6287 #should_save?6288 marks existing ldap user as changed6289 marks existing non-ldap user if the email matches as changed6290 does not mark existing ldap user as changed6291 #valid_sign_in?6292 returns true6293 returns false if the GitLab user is not valid6294 find or create6295 finds the user if already existing6296 connects to existing non-ldap user if the email matches6297 connects to existing ldap user if the extern_uid changes6298 connects to existing ldap user if the extern_uid changes and email address has upper case characters6299 maintains an identity per provider6300 creates a new user if not found6301 when signup is disabled6302 creates the user6303 when user confirmation email is enabled6304 creates and confirms the user anyway6305 when the current minimum password length is different from the default minimum password length6306 creates the user6307 updating email6308 when LDAP sets an email6309 has a real email6310 has email set as synced6311 has email set as read-only6312 has synced attributes provider set to ldapmain6313 when LDAP doesn't set an email6314 has a temp email6315 has email set as not synced6316 does not have email set as read-only6317 blocking6318 signup6319 dont block on create6320 is expected not to be blocked6321 block on create6322 is expected to be blocked6323 sign-in6324 dont block on create6325 is expected not to be blocked6326 block on create6327 is expected not to be blocked6328Types::UserMergeRequestInteractionType6329 is expected to require graphql authorizations :read_merge_request6330 has the expected fields6331 #can_merge6332 when the user cannot merge6333 is expected to equal false6334 when the user can merge6335 is expected to equal true6336 #can_update6337 when the user cannot update the MR6338 is expected to equal false6339 when the user can update the MR6340 is expected to equal true6341 #review_state6342 when the user has not been asked to review the MR6343 is expected to be nil6344 implies not reviewed6345 when the user has been asked to review the MR6346 implies not reviewed6347 when the user has provided a review6348 is expected to eq "reviewed"6349 implies reviewed6350 #approved6351 when the user has not approved the MR6352 is expected to equal false6353 when the user has approved the MR6354 is expected to equal true6355GoogleCloud::SetupCloudsqlInstanceService6356 when unauthorized user triggers worker6357 raises unauthorized error6358 when authorized user triggers worker6359 when instance is not RUNNABLE6360 raises error6361 when instance is RUNNABLE6362 when database creation fails6363 raises error6364 when user creation fails6365 raises error6366 when database and user already exist6367 does not try to create a database or user6368 when database already exists6369 does not try to create a database6370 when user already exists6371 does not try to create a user6372 when database and user creation succeeds6373 stores project CI vars6374 when the ci variable already exists6375 overwrites existing GCP_PROJECT_ID var6376Mutations::AlertManagement::Alerts::SetAssignees6377 is expected to require graphql authorizations :update_alert_management_alert6378 #resolve6379 when operation mode is not specified6380 behaves like successful resolution6381 successfully resolves6382 behaves like an incident management tracked event6383 .track_event6384 tracks the event using redis6385 behaves like Snowplow event tracking with RedisHLL context6386 behaves like Snowplow event tracking6387 is emitted6388 when user does not have permission to update alerts6389 raises an error if the resource is not accessible to the user6390 for APPEND operation6391 when a different user is already assigned6392 behaves like noop6393 makes no changes6394 when no users are specified6395 behaves like noop6396 makes no changes6397 when a user is specified and no user is assigned6398 behaves like successful resolution6399 successfully resolves6400 when the specified user is already assigned to the alert6401 behaves like noop6402 makes no changes6403 for REPLACE operation6404 when a different user is already assigned6405 behaves like successful resolution6406 successfully resolves6407 when no users are specified6408 behaves like successful resolution6409 successfully resolves6410 when a user is specified and no user is assigned6411 behaves like successful resolution6412 successfully resolves6413 when the specified user is already assigned to the alert6414 behaves like noop6415 makes no changes6416 when multiple users are specified6417 behaves like successful resolution6418 successfully resolves6419 for REMOVE operation6420 when a different user is already assigned6421 behaves like noop6422 makes no changes6423 when no users are specified6424 behaves like noop6425 makes no changes6426 when a user is specified and no user is assigned6427 behaves like noop6428 makes no changes6429 when the specified user is already assigned to the alert6430 behaves like successful resolution6431 successfully resolves6432Gitlab::Git::AttributesParser6433 #attributes6434 using a path with attributes6435 returns the attributes as a Hash6436 returns a Hash containing multiple attributes6437 returns a Hash containing attributes for a file with multiple extensions6438 returns a Hash containing attributes for a file in a directory6439 returns a Hash containing attributes with query string parameters6440 returns a Hash containing the attributes for an absolute path6441 returns a Hash containing the attributes when a pattern is defined using an absolute path6442 returns an empty Hash for a defined path without attributes6443 when the "binary" option is set for a path6444 returns true for the "binary" option6445 returns false for the "diff" option6446 using a path without any attributes6447 returns an empty Hash6448 when attributes data is nil6449 returns an empty Hash6450 when attributes data has binary data6451 returns an empty Hash6452 #patterns6453 parses a file with entries6454 parses an entry that uses a tab to separate the pattern and attributes6455 stores patterns in reverse order6456 ignores any comments and empty lines6457 #parse_attributes6458 parses a boolean attribute6459 parses a negated boolean attribute6460 parses a key-value pair6461 parses multiple attributes6462 parses attributes with query string parameters6463 #each_line6464 iterates over every line in the attributes file6465 unsupported encoding6466 does not yield6467Ci::HasRef6468 #branch?6469 is not a tag6470 return true when tag is set to false6471 when it was triggered by merge request6472 returns false6473 is not a tag6474 return false when tag is set to true6475 #git_ref6476 when tag is true6477 returns a tag ref6478 when tag is false6479 returns a branch ref6480 when tag is nil6481 returns a branch ref6482 when it is triggered by a merge request6483 returns nil6484Gitlab::Database::LoadBalancing::SidekiqClientMiddleware6485 #call6486 when worker cannot be constantized6487 does not pass database locations6488 sets job data consistency6489 when worker class does not include ApplicationWorker6490 does not pass database locations6491 sets job data consistency6492 database wal location was already provided6493 when write was performed6494 does not set database locations again6495 when write was not performed6496 does not set database locations again6497 when worker data consistency is :always6498 does not pass database locations6499 sets job data consistency6500 when worker data consistency is :delayed6501 when write was not performed6502 sets job data consistency6503 when replica hosts are available6504 passes database_replica_location6505 when no replica hosts are available6506 passes primary_write_location6507 when write was performed6508 passes primary write location6509 sets job data consistency6510 when worker data consistency is :sticky6511 when write was not performed6512 sets job data consistency6513 when replica hosts are available6514 passes database_replica_location6515 when no replica hosts are available6516 passes primary_write_location6517 when write was performed6518 passes primary write location6519 sets job data consistency6520UserFinder6521 #find_by_id6522 when the user exists6523 returns the user6524 when the user exists (id as string)6525 returns the user6526 when the user does not exist6527 returns nil6528 #find_by_username6529 when the user exists6530 returns the user6531 when the user does not exist6532 returns nil6533 #find_by_id_or_username6534 when the user exists (id)6535 returns the user6536 when the user exists (id as string)6537 returns the user6538 when the user exists (username)6539 returns the user6540 when the user does not exist (username)6541 returns nil6542 when the user does not exist6543 returns nil6544 #find_by_id!6545 when the user exists6546 returns the user6547 when the user exists (id as string)6548 returns the user6549 when the user does not exist6550 raises ActiveRecord::RecordNotFound6551 #find_by_username!6552 when the user exists6553 returns the user6554 when the user does not exist6555 raises ActiveRecord::RecordNotFound6556 #find_by_id_or_username!6557 when the user exists (id)6558 returns the user6559 when the user exists (id as string)6560 returns the user6561 when the user exists (username)6562 returns the user6563 when the user does not exist (username)6564 raises ActiveRecord::RecordNotFound6565 when the user does not exist6566 raises ActiveRecord::RecordNotFound6567Gitlab::Ci::Badge::Coverage::Metadata6568 behaves like badge metadata6569 #to_html6570 points to link6571 contains clickable image6572 #to_markdown6573 is expected to include "http://localhost/namespace1182/project857/badges/feature/coverage.svg"6574 is expected to include "http://localhost/namespace1183/project858/-/commits/feature"6575 #to_asciidoc6576 is expected to include "http://localhost/namespace1184/project859/badges/feature/coverage.svg"6577 is expected to include "http://localhost/namespace1185/project860/-/commits/feature"6578 is expected to include "image:"6579 is expected to include "link="6580 is expected to include "title="6581 #title6582 returns coverage report title6583 #image_url6584 returns valid url6585 #link_url6586 returns valid link6587Gitlab::GithubImport::Importer::CollaboratorImporter6588 # order random6589 #execute6590 behaves like role mapping6591 creates expected member6592 behaves like role mapping6593 creates expected member6594 behaves like role mapping6595 creates expected member6596 behaves like role mapping6597 creates expected member6598 behaves like role mapping6599 creates expected member6600 when role name is unknown (custom role)6601 raises expected error6602 when user has lower role in a project group6603 behaves like role mapping6604 creates expected member6605 when user has higher role in a project group6606 skips creating member for the project6607Gitlab::Export::PruneProjectExportJobsWorker6608 # order random6609 #perform6610 is labeled as idempotent6611 performs multiple times sequentially without raising an exception6612 prunes jobs and associations older than 7 days6613 leaves fresh jobs and associations6614Gitlab::Kubernetes::Helm::V3::PatchCommand6615 behaves like helm command generator6616 #generate_script6617 returns appropriate command6618 when rbac is true6619 behaves like helm command generator6620 #generate_script6621 returns appropriate command6622 when there is no version6623 is expected to raise ArgumentError with "version is required"6624 #pod_name6625 is expected to eq "install-app-name"6626 behaves like helm command6627 HELM_VERSION6628 is expected to match /\d+\.\d+\.\d+/6629 #env6630 is expected to be a kind of Hash6631 #rbac?6632 rbac is enabled6633 is expected to be truthy6634 rbac is not enabled6635 is expected to be falsey6636 #pod_resource6637 rbac is enabled6638 is expected to be an instance of Kubeclient::Resource6639 generates a pod that uses the tiller serviceAccountName6640 rbac is not enabled6641 is expected to be an instance of Kubeclient::Resource6642 generates a pod that uses the default serviceAccountName6643 #config_map_resource6644 returns a KubeClient resource with config map content for the application6645 #service_account_resource6646 rbac is enabled6647 generates a Kubeclient resource for the tiller ServiceAccount6648 rbac is not enabled6649 generates nothing6650 #cluster_role_binding_resource6651 rbac is enabled6652 generates a Kubeclient resource for the ClusterRoleBinding for tiller6653 binds the account in #service_account_resource6654 rbac is not enabled6655 generates nothing6656BuildActionEntity6657 #as_json6658 contains original job name6659 contains path to the action play6660 contains whether it is playable6661 when job is scheduled6662 returns scheduled6663 returns scheduled_at6664 returns unschedule path6665Gitlab::Chat::Responder::Slack6666 #send_response6667 sends a response back to Slack6668 #success6669 returns the output for a successful build6670 limits the output to a fixed size6671 does not send a response if the output is empty6672 #failure6673 returns the output for a failed build6674 #scheduled_output6675 returns the output for a scheduled build6676Gitlab::Ci::Components::InstancePath6677 # order random6678 FQDN path6679 when project exists6680 provides the expected attributes6681 when content exists6682 when user has permissions to read code6683 fetches the content6684 when user does not have permissions to download code6685 raises an error when fetching the content6686 when project path is nested under a subgroup6687 provides the expected attributes6688 when current GitLab instance is installed on a relative URL6689 provides the expected attributes6690 when version does not exist6691 provides the expected attributes6692 returns nil when fetching the content6693 when project does not exist6694 provides the expected attributes6695 returns nil when fetching the content6696Gitlab::Ci::Build::Policy::Variables6697 #satisfied_by?6698 is satisfied by at least one matching statement6699 is satisfied by a matching pipeline variable6700 is not satisfied by an overridden empty variable6701 is satisfied by a truthy pipeline expression6702 is not satisfied by a falsy pipeline expression6703 is satisfied by a truthy expression using undefined variable6704 is not satisfied by a falsy expression using undefined variable6705 allows to evaluate regular CI variables6706 does not persist neither pipeline nor build6707 when a bridge job is used6708 is satisfied by a matching expression for a bridge job6709 when using project ci variables in environment scope6710 is satisfied by scoped variable match6711 is not satisfied when matching against overridden variable6712Gitlab::Ci::Reports::TestReport6713 #get_suite6714 when suite name is rspec6715 is expected to eq "rspec"6716 initializes a new test suite and returns it6717 when suite name is already allocated6718 does not initialize a new test suite6719 #total_time6720 returns the total time6721 #total_count6722 returns the total count6723 #total_status6724 when all test cases succeeded6725 returns correct total status6726 when there is a failed test case6727 returns correct total status6728 when there is a skipped test case6729 returns correct total status6730 when there is an error test case6731 returns correct total status6732 #with_attachment6733 when test suites do not contain an attachment6734 returns empty test suites6735 when test suites contain an attachment6736 returns test suites with attachment6737 #suite_errors6738 when a suite has normal spec errors or failures6739 is expected to be empty6740 when there is an error test case6741 is expected to eq {"junit"=>"Existential parsing error"}6742 #error_count6743 when error test case exists6744 returns the count6745 when error test case do not exist6746 returns nothing6747 #failed_count6748 when failed test case exists6749 returns the count6750 when failed test case do not exist6751 returns nothing6752 #success_count6753 when success test case exists6754 returns the count6755 when success test case do not exist6756 returns nothing6757 #skipped_count6758 when skipped test case exists6759 returns the count6760 when skipped test case do not exist6761 returns nothing6762Gitlab::Utils::Email6763 # order random6764 .obfuscated_email6765 input: "alex@gitlab.com", output: "al**@g*****.com"6766 is expected to eq "al**@g*****.com"6767 input: "alex@gl.co.uk", output: "al**@g****.uk"6768 is expected to eq "al**@g****.uk"6769 input: "a@b.c", output: "a@b.c"6770 is expected to eq "a@b.c"6771 input: "q@example.com", output: "q@e******.com"6772 is expected to eq "q@e******.com"6773 input: "q@w.", output: "q@w."6774 is expected to eq "q@w."6775 input: "a@b", output: "a@b"6776 is expected to eq "a@b"6777 input: "no mail", output: "no mail"6778 is expected to eq "no mail"6779 when deform is active6780 input: "alex@gitlab.com", output: "al*****@g*****.c**"6781 is expected to eq "al*****@g*****.c**"6782 input: "alex@gl.co.uk", output: "al*****@g*****.u**"6783 is expected to eq "al*****@g*****.u**"6784 input: "a@b.c", output: "aa*****@b*****.c**"6785 is expected to eq "aa*****@b*****.c**"6786 input: "qqwweerrttyy@example.com", output: "qq*****@e*****.c**"6787 is expected to eq "qq*****@e*****.c**"6788 input: "getsuperfancysupport@paywhatyouwant.accounting", output: "ge*****@p*****.a**"6789 is expected to eq "ge*****@p*****.a**"6790 input: "q@example.com", output: "qq*****@e*****.c**"6791 is expected to eq "qq*****@e*****.c**"6792 input: "q@w.", output: "q@w."6793 is expected to eq "q@w."6794 input: "a@b", output: "a@b"6795 is expected to eq "a@b"6796 input: "no mail", output: "no mail"6797 is expected to eq "no mail"6798Gitlab::Search::Params6799 detect_abuse conditional6800 does not call AbuseDetection6801 uses AbuseDetection by default6802 #[]6803 feels like regular params6804 has indifferent access6805 also works on attr_reader attributes6806 #query_string6807 uses 'search' parameter6808 uses 'term' parameter6809 prioritizes 'search' over 'term'6810 strips surrounding whitespace from query string6811 #validate6812 validates AbuseDetector on validation6813 when detect_abuse is disabled6814 does NOT validate AbuseDetector6815 #valid?6816 validates AbuseDetector on validation6817 when detect_abuse is disabled6818 does NOT validate AbuseDetector6819 abuse detection6820 when there are abuse validation errors6821 is considered abusive6822 when there are NOT any abuse validation errors6823 and there are other validation errors6824 is NOT considered abusive6825 and there are NO other validation errors6826 is NOT considered abusive6827 #email_lookup?6828 is true if at least 1 word in search is an email6829Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter6830 .track_work_item_created_action6831 behaves like work item unique counter6832 when track_work_items_activity FF is enabled6833 tracks a unique event only once6834 when author is nil6835 behaves like counter that does not track the event6836 does not track the event6837 when track_work_items_activity FF is disabled6838 behaves like counter that does not track the event6839 does not track the event6840 .track_work_item_title_changed_action6841 behaves like work item unique counter6842 when track_work_items_activity FF is enabled6843 tracks a unique event only once6844 when author is nil6845 behaves like counter that does not track the event6846 does not track the event6847 when track_work_items_activity FF is disabled6848 behaves like counter that does not track the event6849 does not track the event6850 .track_work_item_date_changed_action6851 behaves like work item unique counter6852 when track_work_items_activity FF is enabled6853 tracks a unique event only once6854 when author is nil6855 behaves like counter that does not track the event6856 does not track the event6857 when track_work_items_activity FF is disabled6858 behaves like counter that does not track the event6859 does not track the event6860 .track_work_item_labels_changed_action6861 behaves like work item unique counter6862 when track_work_items_activity FF is enabled6863 tracks a unique event only once6864 when author is nil6865 behaves like counter that does not track the event6866 does not track the event6867 when track_work_items_activity FF is disabled6868 behaves like counter that does not track the event6869 does not track the event6870 .track_work_item_milestone_changed_action6871 behaves like work item unique counter6872 when track_work_items_activity FF is enabled6873 tracks a unique event only once6874 when author is nil6875 behaves like counter that does not track the event6876 does not track the event6877 when track_work_items_activity FF is disabled6878 behaves like counter that does not track the event6879 does not track the event6880Ci::CreatePipelineService6881 rate limiting6882 when user is under the limit6883 allows pipeline creation6884 when user is over the limit6885 blocks pipeline creation6886 with different users6887 allows other members to create pipelines6888 with different commits6889 allows user to create pipeline6890 with different projects6891 allows user to create pipeline6892Gitlab::JiraImport::LabelsImporter6893 #execute6894 when label is missing from jira import6895 raises error6896 when jira import label exists6897 when labels are returned from jira6898 caches import label6899 calls Gitlab::JiraImport::HandleLabelsService6900 when there are no labels to be handled6901 when the labels field is empty6902 behaves like no labels handling6903 does not call Gitlab::JiraImport::HandleLabelsService6904 when the labels field is missing6905 behaves like no labels handling6906 does not call Gitlab::JiraImport::HandleLabelsService6907 when the isLast argument is missing6908 behaves like no labels handling6909 does not call Gitlab::JiraImport::HandleLabelsService6910Sidebars::Projects::Menus::ProjectInformationMenu6911 behaves like not serializable as super_sidebar_menu_args6912 returns nil6913 #container_html_options6914 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007efe4d229ac8 @expected={:class=>"shortcuts-project-information has-sub-items"}>6915 Menu Items6916 Labels6917 is expected not to be nil6918 when merge requests are disabled6919 is expected not to be nil6920 when issues are disabled6921 is expected not to be nil6922 when merge requests and issues are disabled6923 is expected to be nil6924 Members6925 is expected not to be nil6926 when the user does not have access6927 is expected to be nil6928Resolvers::DesignManagement::DesignResolver6929 is expected to have nullable GraphQL type Design6930 #resolve6931 when the user cannot see designs6932 returns nothing6933 when no argument has been passed6934 generates an error6935 when both arguments have been passed6936 generates an error6937 by ID6938 returns the specified design6939 the ID belongs to a design on another issue6940 returns nothing6941 by filename6942 returns the specified design6943 the filename belongs to a design on another issue6944 returns nothing6945Files::BaseService6946 # order random6947 with a project and group namespace_commit_email6948 sets @author_email to the project namespace_commit_email6949 with a project namespace_commit_email6950 sets @author_email to the project namespace_commit_email6951 with no namespace_commit_emails6952 sets @author_email to user default email6953 with an author_email in params and namespace_commit_email6954 gives precedence to the parameter value for @author_email6955 with a group namespace_commit_email6956 sets @author_email to the group namespace_commit_email6957Gitlab::Auth::Ldap::Adapter6958 #users6959 searches with the proper options when searching by uid6960 searches with the proper options when searching by dn6961 searches with the proper options when searching with a limit6962 returns an LDAP::Person if search returns a result6963 returns empty array if search entry does not respond to uid6964 uses the right uid attribute when non-default6965 #dn_matches_filter?6966 when the search result is non-empty6967 is expected to be truthy6968 when the search result is empty6969 is expected to be falsey6970 #ldap_search6971 when the search is successful6972 and the result is non-empty6973 is expected to eq [:foo]6974 and the result is empty6975 is expected to eq []6976 when returned with expected code6977 behaves like connection retry6978 retries the operation6979 as many times as MAX_SEARCH_RETRIES6980 when no more retries6981 raises the exception6982 logs the error6983 when the search encounters an error6984 is expected to eq []6985 when the search raises an LDAP exception6986 retries the operation6987 behaves like connection retry6988 retries the operation6989 as many times as MAX_SEARCH_RETRIES6990 when no more retries6991 raises the exception6992 logs the error6993Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern6994 #initialize6995 when the value is a valid regular expression6996 initializes the pattern6997 when the value is a valid regular expression with escaped slashes6998 initializes the pattern6999 when the value is not a valid regular expression7000 raises an error7001 .build7002 creates a new instance of the token7003 raises an error if pattern is invalid7004 .build_and_evaluate7005 when the value is a valid regular expression7006 returns the value as a Gitlab::UntrustedRegexp7007 when the value is a Gitlab::UntrustedRegexp7008 returns the value itself7009 when the value is not a valid regular expression7010 returns the value itself7011 .type7012 is a value lexeme7013 .scan7014 correctly identifies a pattern token7015 does not allow to use an empty pattern7016 support single flag7017 support multiple flags7018 ignores unsupported flags7019 is an eager scanner for regexp boundaries7020 does not match on escaped regexp boundaries7021 recognizes \ as an escape character for /7022 does not recognize \ as an escape character for $7023 #evaluate7024 returns a regular expression7025 raises error if evaluated regexp is not valid7026Gitlab::Ci::Pipeline::Chain::Build7027 does not break the chain7028 builds a pipeline with the expected attributes7029 returns a valid pipeline7030 does not persist a pipeline7031 when pipeline is running for a tag7032 correctly indicated that this is a tagged pipeline7033 when origin_ref is branch but tag ref with the same name exists7034 correctly indicated that a pipeline is not tagged7035 when pipeline is running for a merge request7036 correctly indicated that this is a merge request pipeline7037 correctly sets souce sha and target sha to pipeline7038 when pipeline is running for an external pull request7039 correctly indicated that this is an external pull request pipeline7040 correctly sets source sha and target sha to pipeline7041 when keep_latest_artifact is set7042 keep_latest_artifact: true, locking_result: "artifacts_locked"7043 builds a pipeline with appropriate locked value7044 keep_latest_artifact: false, locking_result: "unlocked"7045 builds a pipeline with appropriate locked value7046Packages::Event7047 # order random7048 .unique_counters_for7049 is expected to contain exactly "i_package_npm_deploy_token"7050 behaves like handle forbidden event type7051 is expected to eq []7052 when an originator type is quest7053 is expected to eq []7054 .event_allowed?7055 is expected to eq true7056 behaves like handle forbidden event type7057 is expected to eq false7058 .counters_for7059 is expected to contain exactly "i_package_push_package", "i_package_push_package_by_deploy_token", and "i_package_npm_push_package"7060 behaves like handle forbidden event type7061 is expected to eq []7062Spam::AkismetService7063 #spam?7064 behaves like no activity if Akismet is not enabled7065 is automatically false7066 performs no check7067 if Akismet is enabled7068 correctly transforms options for the akismet client, including spelling of referrer key7069 the text is spam7070 is expected to be truthy7071 the text is blatant spam7072 is expected to be truthy7073 the text is not spam7074 is expected to be falsey7075 error handling7076 StandardError other than ArgumentError is raised7077 is expected to be falsey7078 logs an error7079 ArgumentError is raised in dev7080 raises original error7081 #submit_ham7082 behaves like no activity if Akismet is not enabled7083 is automatically false7084 performs no check7085 behaves like false if Akismet is not available7086 if Akismet is not available7087 is expected to be falsey7088 logs an error7089 if Akismet is available7090 is expected to be truthy7091 #submit_spam7092 behaves like no activity if Akismet is not enabled7093 is automatically false7094 performs no check7095 behaves like false if Akismet is not available7096 if Akismet is not available7097 is expected to be falsey7098 logs an error7099 if Akismet is available7100 is expected to be truthy7101Resolvers::PaginatedTreeResolver7102 is expected to have nullable GraphQL type TreeConnection7103 #resolve7104 resolves to a collection with a tree object7105 with recursive option7106 resolve to a recursive tree7107 with limited max_page_size7108 resolves to a pagination collection with a tree object7109 when repository does not exist7110 returns nil7111 Cursor pagination7112 returns all tree entries during cursor pagination7113 when cursor is invalid7114 generates an error7115 Custom error handling7116 when gitaly is not available7117 generates an unavailable error7118Gitlab::DependencyLinker::PackageJsonLinker7119 .support?7120 supports package.json7121 does not support other files7122 #link7123 does not link the module name7124 links the homepage7125 links the repository URL7126 links the license7127 links dependencies7128 links dependencies to URL detected on value7129 does not link to NPM when invalid git URL7130 links GitHub repos7131 links Git repos7132 does not link scripts with the same key as a package7133SensitiveSerializableHash7134 .prevent_from_serialization7135 does not include the field in serializable_hash7136 does not change parent class attributes_exempt_from_serializable_hash7137 #serializable_hash7138 for a web hook7139 behaves like attr_encrypted attribute7140 WebHook#token7141 has a attr_encrypted_attributes field7142 does not include the attribute in serializable_hash7143 behaves like attr_encrypted attribute7144 WebHook#url7145 has a attr_encrypted_attributes field7146 does not include the attribute in serializable_hash7147 behaves like attr_encrypted attribute7148 WebHook#url_variables7149 has a attr_encrypted_attributes field7150 does not include the attribute in serializable_hash7151 behaves like attr_encrypted attribute7152 Ci::InstanceVariable#value7153 has a attr_encrypted_attributes field7154 does not include the attribute in serializable_hash7155 behaves like add_authentication_token_field attribute7156 does not include token_expires_at in serializable_hash7157 Ci::Runner#token7158 has a add_authentication_token_field field7159 does not include the attribute in serializable_hash7160 behaves like add_authentication_token_field attribute7161 ApplicationSetting#health_check_access_token7162 has a add_authentication_token_field field7163 does not include the attribute in serializable_hash7164 behaves like add_authentication_token_field attribute7165 PersonalAccessToken#token7166 has a add_authentication_token_field field7167 does not include the attribute in serializable_hash7168LegacyDiffDiscussion7169 #reply_attributes7170 includes line_code7171 #merge_request_version_params7172 when the discussion is active7173 returns an empty hash, which will end up showing the latest version7174 when the discussion is outdated7175 returns nil7176Packages::Cleanup::UpdatePolicyService7177 #execute7178 with existing container expiration policy7179 user_role: :maintainer, shared_examples_name: "updating the policy"7180 behaves like updating the policy7181 updates the existing one7182 with invalid parameters7183 does not update one7184 user_role: :developer, shared_examples_name: "denying access"7185 behaves like denying access7186 returns an error7187 user_role: :reporter, shared_examples_name: "denying access"7188 behaves like denying access7189 returns an error7190 user_role: :guest, shared_examples_name: "denying access"7191 behaves like denying access7192 returns an error7193 user_role: :anonymous, shared_examples_name: "denying access"7194 behaves like denying access7195 returns an error7196 without existing container expiration policy7197 user_role: :maintainer, shared_examples_name: "creating the policy"7198 behaves like creating the policy7199 creates a new one7200 with invalid parameters7201 does not create one7202 user_role: :developer, shared_examples_name: "denying access"7203 behaves like denying access7204 returns an error7205 user_role: :reporter, shared_examples_name: "denying access"7206 behaves like denying access7207 returns an error7208 user_role: :guest, shared_examples_name: "denying access"7209 behaves like denying access7210 returns an error7211 user_role: :anonymous, shared_examples_name: "denying access"7212 behaves like denying access7213 returns an error7214MergeRequest::DiffCommitUser7215 validations7216 requires that names are less than 512 characters long7217 requires that Emails are less than 512 characters long7218 requires either a name or Email7219 allows setting of just a name7220 allows setting of just an Email7221 allows setting of both a name and Email7222 .prepare7223 trims a value to at most 512 characters7224 returns nil if the value is an empty string7225 .find_or_create7226 creates a new row if none exist7227 returns an existing row if one exists7228 handles concurrent inserts7229 .bulk_find_or_create7230 bulk creates missing rows and reuses existing rows7231 does not insert any data when all users exist7232 handles concurrently inserted rows7233Gitlab::JiraImport::StuckJiraImportJobsWorker7234 with scheduled Jira import7235 behaves like stuck import job detection7236 when the job has completed7237 when the import status was already updated7238 does not mark the import as failed7239 when the import status was not updated7240 marks the import as failed7241 when the job is still in Sidekiq7242 does not mark the import as failed7243 with started jira import7244 behaves like stuck import job detection7245 when the job has completed7246 when the import status was already updated7247 does not mark the import as failed7248 when the import status was not updated7249 marks the import as failed7250 when the job is still in Sidekiq7251 does not mark the import as failed7252 with failed jira import7253 detects no stuck jobs7254Resolvers::ProjectPipelineResolver7255 is expected to have nullable GraphQL type Pipeline7256 resolves pipeline for the passed iid7257 resolves pipeline for the passed sha7258 keeps the queries under the threshold for iid7259 keeps the queries under the threshold for sha7260 does not resolve a pipeline outside the project7261 errors when no iid or sha is passed7262 errors when both iid and sha are passed7263 when the pipeline is a dangling pipeline7264 resolves pipeline for the passed iid7265Puma7266{"timestamp":"2023-03-30T12:01:57.320Z","pid":9869,"message":"Puma starting in cluster mode..."}7267{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Puma version: 5.6.5 (ruby 3.0.5-p211) (\"Birdie's Version\")"}7268{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Min threads: 1"}7269{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Max threads: 4"}7270{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Environment: test"}7271{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Master PID: 9869"}7272{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Workers: 1"}7273{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Restarts: (✔) hot (✖) phased"}7274{"timestamp":"2023-03-30T12:01:57.321Z","pid":9869,"message":"* Preloading application"}7275{"timestamp":"2023-03-30T12:01:57.336Z","pid":9869,"message":"* Listening on unix:///builds/gitlab-org/gitlab/tmp/tests/puma.socket"}7276{"timestamp":"2023-03-30T12:01:57.336Z","pid":9869,"message":"Use Ctrl-C to stop"}7277{"timestamp":"2023-03-30T12:01:57.336Z","pid":9869,"message":"! WARNING: Detected running cluster mode with 1 worker."}7278{"timestamp":"2023-03-30T12:01:57.336Z","pid":9869,"message":"! Running Puma in cluster mode with a single worker is often a misconfiguration."}7279{"timestamp":"2023-03-30T12:01:57.337Z","pid":9869,"message":"! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead."}7280{"timestamp":"2023-03-30T12:01:57.337Z","pid":9869,"message":"! Set the `silence_single_worker_warning` option to silence this warning message."}7281{"timestamp":"2023-03-30T12:01:57.338Z","pid":9869,"message":"! Promoting existing objects to old generation..."}7282{"timestamp":"2023-03-30T12:01:57.346Z","pid":9869,"message":"! Compacting..."}7283{"timestamp":"2023-03-30T12:01:57.378Z","pid":9869,"message":"! Friendly fork preparation complete."}7284{"timestamp":"2023-03-30T12:01:57.380Z","pid":9869,"message":"- Worker 0 (PID: 9870) booted in 0.0s, phase: 0"}7285{"timestamp":"2023-03-30T12:01:57.759Z","pid":9869,"message":"- Worker 0 (PID: 9877) booted in 0.0s, phase: 0"}7286 has a worker that self-terminates on signal SIGQUIT7287{"timestamp":"2023-03-30T12:01:58.598Z","pid":9869,"message":"- Worker 0 (PID: 9884) booted in 0.0s, phase: 0"}7288 has a worker that self-terminates on signal SIGTERM7289{"timestamp":"2023-03-30T12:01:59.638Z","pid":9869,"message":"- Worker 0 (PID: 9891) booted in 0.0s, phase: 0"}7290 has a worker that self-terminates on signal SIGKILL7291{"timestamp":"2023-03-30T12:01:59.643Z","pid":9869,"message":"=== puma shutdown: 2023-03-30 12:01:59 +0000 ==="}7292{"timestamp":"2023-03-30T12:01:59.644Z","pid":9869,"message":"- Goodbye!"}7293{"timestamp":"2023-03-30T12:01:59.644Z","pid":9869,"message":"- Gracefully shutting down workers..."}7294notify/change_in_merge_request_draft_status_email.html.haml7295 shows user added draft status on email7296 shows user removed draft status on email7297 renders the email correctly7298Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged7299 behaves like value stream analytics event7300 is expected to be a kind of String7301 is expected to be a kind of Symbol7302 is expected to include ApplicationRecord(abstract)7303 is expected to respond to #timestamp_projection7304 is expected to respond to #html_description7305 is expected to be a kind of Array7306 #apply_query_customization7307 expects an ActiveRecord::Relation object as argument and returns a modified version of it7308 #hash_code7309 returns a hash that uniquely identifies an event7310 does not differ when the same object is built with the same params7311 behaves like LEFT JOIN-able value stream analytics event7312 can use the event as LEFT JOIN7313 when looking at the record with data7314 contains the timestamp expression7315 when looking at the record without data7316 returns nil for the timestamp expression7317DeploymentSerializer7318 #represent7319 behaves like json schema7320 matches deployment entity schema7321 #represent_concise7322 behaves like json schema7323 matches deployment entity schema7324Resolvers::ProjectPipelineSchedulesResolver7325 # order random7326 With filters7327 shows active pipeline schedules7328 shows the inactive pipeline schedules7329Resolvers::BaseResolver.single7330 #resolve7331 when there is no parent7332 returns nil if parent is nil7333 when project boards7334 behaves like group and project boards resolver7335 does not create a default board7336 calls Boards::BoardsFinder7337 requires an ID7338 when querying for a single board7339 returns specified board7340 returns nil if board not found7341 when group boards7342 behaves like group and project boards resolver7343 does not create a default board7344 calls Boards::BoardsFinder7345 requires an ID7346 when querying for a single board7347 returns specified board7348 returns nil if board not found7349Import::FogbugzService7350 returns error for unknown error causes7351 when no repo is found7352 returns an error7353 when import source is disabled7354 returns forbidden7355 when user is unauthorized7356 returns an error7357 verify url7358 when host is localhost7359 does not allow requests7360 when host is on local network7361 does not allow requests7362 when host is ftp protocol7363 does not allow requests7364 when import starts succesfully7365 returns success7366 when import fails to start7367 returns error7368Integrations::PropagateService7369 .propagate7370 with inherited integration7371 calls to PropagateIntegrationProjectWorker7372 with a project without integration7373 calls to PropagateIntegrationProjectWorker7374 with a group without integration7375 calls to PropagateIntegrationProjectWorker7376 for a group-level integration7377 with a project without integration7378 calls to PropagateIntegrationProjectWorker7379 with a subgroup without integration7380 calls to PropagateIntegrationGroupWorker7381 with a subgroup with integration7382 calls to PropagateIntegrationInheritDescendantWorker7383Gitlab::JiraImport::ImportIssueWorker7384 modules7385 is expected to includes the ApplicationWorker module7386 is expected to includes the Gitlab::NotifyUponDeath module7387 is expected to includes the Gitlab::JiraImport::QueueOptions module7388 is expected to includes the Gitlab::Import::DatabaseHelpers module7389 #perform7390 when any exception raised while inserting to DB7391 record a failed to import issue7392 when record is successfully inserted7393 when import label does not exist7394 does not record import failure7395 when import label exists7396 does not record import failure7397 creates an issue with the correct attributes7398 when assignee_ids is nil7399 creates an issue without assignee7400 when assignee_ids is an empty array7401 creates an issue without assignee7402Milestones::CreateService7403 #execute7404 valid params7405 is expected to be valid7406 is expected to eq "v2.1.9"7407Ci::PendingBuilds::UpdateGroupWorker7408 #perform7409 when a group is not provided7410 does not call the service7411 when everything is ok7412 calls the service7413 is labeled as idempotent7414 performs multiple times sequentially without raising an exception7415 updates the pending builds7416JiraImport::ServerUsersMapperService7417 #execute7418 behaves like mapping jira users7419 jira_users is nil7420 returns an empty array7421 when jira_users is present7422 returns users mapped to Gitlab7423 runs only 4 queries7424Aws::Role7425 is expected to belong to user required: false7426 is expected to validate that the length of :role_external_id is between 1 and 647427 custom validations7428 :role_arn7429 length is zero7430 is expected to be falsey7431 length is longer than 20487432 is expected to be falsey7433 ARN is valid7434 is expected to be truthy7435 ARN is nil7436 is expected to be truthy7437 callbacks7438 #ensure_role_external_id!7439 for a new record7440 calls #ensure_role_external_id!7441 for an existing record7442 does not call #ensure_role_external_id!7443 #ensure_role_external_id!7444 role_external_id is blank7445 generates an external ID and assigns it to the record7446 role_external_id is already set7447 does not change the existing external id7448RuboCop::Cop::Search::NamespacedClass7449 # order random7450 when Search root namespace is used7451 does not flag a class definition with Search as root namespace module7452 does not a flag a class definition with Search as root namespace inline7453 does not a flag a class definition with Search as root namespace in EE7454 when Search root namespace is not used7455 flags a class definition without Search namespace7456 flags a class definition with Elastic in root namespace module7457 flags a module in EE module7458 when Search root namespace is not used7459 flags a class definition without Search namespace7460 flags a class definition with Search in root namespace module7461 flags a module in EE module7462 when Search root namespace is not used7463 flags a class definition without Search namespace7464 flags a class definition with Zoekt in root namespace module7465 flags a module in EE module7466 when Search root namespace is used7467 does not flag a class definition with Search as root namespace module7468 does not a flag a class definition with Search as root namespace inline7469 does not a flag a class definition with Search as root namespace in EE7470 when Search root namespace is used7471 does not flag a class definition with Search as root namespace module7472 does not a flag a class definition with Search as root namespace inline7473 does not a flag a class definition with Search as root namespace in EE7474Projects::LfsPointers::LfsImportService7475 when lfs is enabled for the project7476 downloads lfs objects7477 when no downloadable lfs object links7478 does not call LfsDownloadService7479 when an exception is raised7480 returns error7481 when lfs is not enabled for the project7482 does not download lfs objects7483Mutations::Security::CiConfiguration::ConfigureSastIac7484 is expected to require graphql authorizations :push_code7485 #resolve7486 generates an error if the resource is not accessible to the user7487 when user does not have enough permissions7488 generates an error7489 when user is a maintainer of a different project7490 generates an error7491 when the user does not have permission to create a new branch7492 returns an array of errors7493 when the user can create a merge request7494 when service successfully generates a path to create a new merge request7495 returns a success path7496 when service can not generate any path to create a new merge request7497 returns an array of errors7498Gitlab::DataBuilder::WikiPage7499 .build7500 is expected to be a kind of Hash7501 is expected to eq "wiki_page"7502 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/5ff9b045f6cfaea608a5c1a8e48892a2?s=80&d=identicon", :email=>"[REDACTED]", :id=>1729, :name=>"Sidney Jones1891", :username=>"user493"}7503 is expected to eq {:avatar_url=>nil, :ci_config_path=>nil, :default_branch=>"master", :description=>nil, :git_http_url=>"http://localhost/namespace1283/project963.git", :git_ssh_url=>"git@localhost:namespace1283/project963.git", :homepage=>"http://localhost/namespace1283/project963", :http_url=>"http://localhost/namespace1283/project963.git", :id=>957, :name=>"project963", :namespace=>"Sidney Jones1890", :path_with_namespace=>"namespace1283/project963", :ssh_url=>"git@localhost:namespace1283/project963.git", :url=>"git@localhost:namespace1283/project963.git", :visibility_level=>0, :web_url=>"http://localhost/namespace1283/project963"}7504 is expected to eq {:default_branch=>"master", :git_http_url=>"http://localhost/namespace1283/project963.wiki.git", :git_ssh_url=>"git@localhost:namespace1283/project963.wiki.git", :path_with_namespace=>"namespace1283/project963.wiki", :web_url=>"http://localhost/namespace1283/project963/-/wikis/home"}7505 is expected to include {:slug => "Page-54", :title => "Page 54", :content => "Content for wiki page", :format => :markdown, :message => nil, "content" => "Content for wiki page"}7506 is expected to include {:url => "http://localhost/namespace1283/project963/-/wikis/Page-54"}7507 is expected to include {:action => "create"}7508 is expected to include {:diff_url => "http://localhost/namespace1283/project963/-/wikis/Page-54/diff?version_id=aea267bb9e5180ec9cb797a417fbeff3c7dda95b"}7509Terraform::StateVersionPolicy7510 rules7511 no access7512 is expected to be disallowed :read_terraform_state7513 is expected to be disallowed :admin_terraform_state7514 developer7515 is expected to be allowed :read_terraform_state7516 is expected to be disallowed :admin_terraform_state7517 maintainer7518 is expected to be allowed :read_terraform_state7519 is expected to be allowed :admin_terraform_state7520Keys::RevokeService7521 # order random7522 destroys a key7523 does not unverifies signatures if destroy fails7524 unverifies associated signatures7525gitlab:packages namespace rake task7526 migrate7527 object storage disabled7528 doesn't migrate files7529 object storage enabled7530 migrates local file to object storage7531BulkImports::Projects::Pipelines::SnippetsPipeline7532 #run7533 imports snippet into destination project7534 with award_emoji7535 restores the award_emoji7536 with notes7537 restores the notes7538API::Entities::Clusters::AgentAuthorization7539 project authorization7540 includes shared fields7541 group authorization7542 includes shared fields7543 implicit authorization7544 includes shared fields7545Ci::DagJobGroupEntity7546 #as_json7547 when group contains 1 job7548 exposes a name7549 exposes the size7550 exposes the jobs7551 matches schema7552 when group contains multiple parallel jobs7553 exposes a name7554 exposes the size7555 exposes the jobs7556 matches schema7557Gitlab::HookData::GroupBuilder7558 #build7559 data7560 on create7561 is expected to eq "group_create"7562 behaves like includes the required attributes7563 includes the required attributes7564 behaves like does not include old path attributes7565 does not include old path attributes7566 on destroy7567 is expected to eq "group_destroy"7568 behaves like includes the required attributes7569 includes the required attributes7570 behaves like does not include old path attributes7571 does not include old path attributes7572 on rename7573 is expected to eq "group_rename"7574 includes old path details7575 behaves like includes the required attributes7576 includes the required attributes7577Tooling::Danger::ProductIntelligence7578 #check!7579 with growth experiment label7580 doesn't add new labels7581 doesn't add new warnings7582 without growth experiment label7583 with approved label7584 doesn't add new labels7585 doesn't add new warnings7586 without approved label7587For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended7588Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).7589For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).7590markdown formatted list7591 adds new labels7592 warns with proper message7593 with product intelligence::review pending label7594For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended7595Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).7596For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).7597markdown formatted list7598 doesn't add new labels7599 with product intelligence::approved label7600 doesn't add new labels7601 with the product intelligence label7602 with ci? false7603For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended7604Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).7605For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).7606markdown formatted list7607 doesn't add new labels7608 with ci? true7609For the following files, a review from the [Data team and Product Intelligence team](https://gitlab.com/groups/gitlab-org/analytics-section/product-intelligence/engineers/-/group_members?with_inherited_permissions=exclude) is recommended7610Please check the ~"product intelligence" [Service Ping guide](https://docs.gitlab.com/ee/development/service_ping/) or the [Snowplow guide](https://docs.gitlab.com/ee/development/snowplow/).7611For MR review guidelines, see the [Service Ping review guidelines](https://docs.gitlab.com/ee/development/service_ping/review_guidelines.html) or the [Snowplow review guidelines](https://docs.gitlab.com/ee/development/snowplow/review_guidelines.html).7612markdown formatted list7613 adds new labels7614 #check_affected_scopes!7615 when a model was modified7616 when a scope is changed7617 and a metrics uses the affected scope7618 producing warning7619 when no metrics using the affected scope7620 doesnt do anything7621 when an unrelated model with matching scope was modified7622 doesnt do anything7623 when models arent modified7624 doesnt do anything7625 #check_usage_data_insertions!7626 when usage_data.rb is modified7627 and has insertions7628 produces warning7629 and changes are not insertions7630 doesnt do anything7631 when usage_data.rb is not modified7632 and another file has insertions7633 doesnt do anything7634Gitlab::Git::RepositoryCleaner7635 #apply_bfg_object_map_stream (from StringIO)7636 removes internal references7637 #apply_bfg_object_map_stream (from Gitlab::HttpIO)7638 removes internal references7639Gitlab::Database::Type::IndifferentJsonb7640 # order random7641 when used by a model7642 is expected to match {:key=>"value"}7643 is expected to match {"key"=>"value"}7644 ignores changes to other attributes7645 tracks changes to options7646 #deserialize7647 json: nil, value: nil7648 is expected to match nil7649 is expected to match nil7650 json: "{\"key\":\"value\"}", value: {:key=>"value"}7651 is expected to match {:key=>"value"}7652 is expected to match {"key"=>"value"}7653 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}7654 is expected to match {:key=>[1, 2, 3]}7655 is expected to match {"key"=>[1, 2, 3]}7656 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}7657 is expected to match {:key=>{:subkey=>"value"}}7658 is expected to match {"key"=>{"subkey"=>"value"}}7659 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7660 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7661 is expected to match {"key"=>{"a"=>[{"b"=>"c"}, {"d"=>"e"}]}}7662Environments::StopStaleService7663 # order random7664 #execute7665 only stops stale environments7666Gitlab::Database::QueryAnalyzers::QueryRecorder7667 # order random7668 with query analyzer7669 on default branch7670 behaves like an enabled query recorder7671 list_parameter: "$2, $3", bind_parameters: [1, 2, 3]7672 logs normalized queries to a file7673 list_parameter: "$2, $3, $4", bind_parameters: [1, 2, 3, 4]7674 logs normalized queries to a file7675 list_parameter: "$2 ,$3 ,$4 ,$5", bind_parameters: [1, 2, 3, 4, 5]7676 logs normalized queries to a file7677 list_parameter: "$2 , $3 , $4 , $5, $6", bind_parameters: [1, 2, 3, 4, 5, 6]7678 logs normalized queries to a file7679 list_parameter: "$2, $3 ,$4 , $5,$6,$7", bind_parameters: [1, 2, 3, 4, 5, 6, 7]7680 logs normalized queries to a file7681 list_parameter: "$2,$3,$4,$5,$6,$7,$8", bind_parameters: [1, 2, 3, 4, 5, 6, 7, 8]7682 logs normalized queries to a file7683 on database merge requests7684 behaves like an enabled query recorder7685 list_parameter: "$2, $3", bind_parameters: [1, 2, 3]7686 logs normalized queries to a file7687 list_parameter: "$2, $3, $4", bind_parameters: [1, 2, 3, 4]7688 logs normalized queries to a file7689 list_parameter: "$2 ,$3 ,$4 ,$5", bind_parameters: [1, 2, 3, 4, 5]7690 logs normalized queries to a file7691 list_parameter: "$2 , $3 , $4 , $5, $6", bind_parameters: [1, 2, 3, 4, 5, 6]7692 logs normalized queries to a file7693 list_parameter: "$2, $3 ,$4 , $5,$6,$7", bind_parameters: [1, 2, 3, 4, 5, 6, 7]7694 logs normalized queries to a file7695 list_parameter: "$2,$3,$4,$5,$6,$7,$8", bind_parameters: [1, 2, 3, 4, 5, 6, 7, 8]7696 logs normalized queries to a file7697 .log_file7698 when in CI7699 is expected to include "query_recorder/test-job-1.ndjson"7700 is expected not to include "query_recorder/rspec.ndjson"7701 when not in CI7702 is expected to include "query_recorder/rspec.ndjson"7703 is expected not to include "query_recorder/test-job-1.ndjson"7704Metrics::Dashboard::ClusterDashboardService7705 .valid_params?7706 is expected to be truthy7707 with matching dashboard_path7708 is expected to be truthy7709 missing cluster without dashboard_path7710 is expected to be falsey7711 #get_dashboard7712 behaves like valid dashboard service response7713 behaves like valid dashboard service response for schema7714 returns a json representation of the dashboard7715 behaves like caches the unprocessed dashboard for subsequent calls7716 is expected to receive load_raw!(*(any args)) 1 time7717 behaves like refreshes cache when dashboard_version is changed7718 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/cluster_metrics.yml>) 2 times7719 behaves like dashboard_version contains SHA256 hash of dashboard file content7720 is expected to eq "e1a4f8cc2c044cf32273af2cd775eb484729baac0995db687d81d92686bf588e"7721 when called with a non-system dashboard7722 behaves like valid dashboard service response7723 behaves like valid dashboard service response for schema7724 returns a json representation of the dashboard7725Gitlab::Ci::Status::Processable::WaitingForResource7726 #illustration7727 is expected to include :image, :size, and :title7728 .matches?7729 when processable is waiting for resource7730 is a correct match7731 when processable is not waiting for resource7732 does not match7733Gitlab::Diff::ParallelDiff7734 #parallelize7735 returns an array of arrays containing the parsed diff7736Resolvers::Ci::TestReportSummaryResolver7737 #resolve7738 when pipeline has build report results7739 returns test report summary data7740 when pipeline does not have build report results7741 renders test report summary data7742Gitlab::GithubImport::Importer::Events::Renamed7743 #execute7744 with Issue7745 behaves like import renamed event7746 creates expected note7747 creates expected system note metadata7748 with MergeRequest7749 behaves like import renamed event7750 creates expected note7751 creates expected system note metadata7752Mutations::DependencyProxy::GroupSettings::Update7753 is expected to require graphql authorizations :admin_dependency_proxy7754 #resolve7755 user_role: :maintainer, shared_examples_name: "updating the dependency proxy group settings"7756 behaves like updating the dependency proxy group settings7757 returns the dependency proxy settings no errors7758 behaves like updating the dependency proxy group settings attributes7759 updates the dependency proxy settings7760 user_role: :developer, shared_examples_name: "denying access to dependency proxy group settings"7761 behaves like denying access to dependency proxy group settings7762 raises Gitlab::Graphql::Errors::ResourceNotAvailable7763 user_role: :reporter, shared_examples_name: "denying access to dependency proxy group settings"7764 behaves like denying access to dependency proxy group settings7765 raises Gitlab::Graphql::Errors::ResourceNotAvailable7766 user_role: :guest, shared_examples_name: "denying access to dependency proxy group settings"7767 behaves like denying access to dependency proxy group settings7768 raises Gitlab::Graphql::Errors::ResourceNotAvailable7769 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy group settings"7770 behaves like denying access to dependency proxy group settings7771 raises Gitlab::Graphql::Errors::ResourceNotAvailable7772Gitlab::ManifestImport::Manifest7773 #valid?7774 valid file7775 is expected to equal true7776 missing or invalid attributes7777 is expected to equal false7778 errors7779 is expected to include "Make sure a <remote> tag is present and is valid."7780 is expected to include "Make sure every <project> tag has name and path attributes."7781 #projects7782 is expected to eq 6607783 is expected to eq "platform/build"7784 is expected to eq "build/make"7785 is expected to eq "https://android-review.googlesource.com/platform/build"7786Sidebars::UserSettings::Menus::PreferencesMenu7787 # order random7788 behaves like User settings menu7789 does not contain any sub menu7790 renders the correct link7791 renders the correct title7792 renders the correct icon7793 defines correct active route7794 behaves like User settings menu #render? method7795 #render?7796 when user is logged in7797 renders7798 when user is not logged in7799 does not render7800Types::GroupInvitationType7801 is expected to expose permissions using Types::PermissionTypes::Group7802 is expected to eq "GroupInvitation"7803 is expected to require graphql authorizations :admin_group7804 has the expected fields7805IgnorableColumns7806 adds columns to ignored_columns7807 adds columns to ignored_columns (array version)7808 requires remove_after attribute to be set7809 requires remove_after attribute to be set7810 requires remove_with attribute to be set7811 .ignored_columns_details7812 defaults to empty Hash7813 with single column7814 behaves like storing removal information7815 storing removal information7816 with array column7817 behaves like storing removal information7818 storing removal information7819 when called on a subclass without setting the ignored columns7820 does not raise Deadlock error7821 IgnorableColumns::ColumnIgnore7822 #safe_to_remove?7823 after remove_after date has passed7824 returns true (safe to remove)7825 before remove_after date has passed7826 returns false (not safe to remove)7827projects/generic_commit_statuses/_generic_commit_status.html.haml7828 won't include a column with a link to its pipeline by default7829 can include a column with a link to its pipeline7830Banzai::CrossProjectReference7831 #parent_from_ref7832 when no project was referenced7833 returns the project from context7834 when no project was referenced in group context7835 returns the group from context7836 when referenced project does not exist7837 returns nil7838 when referenced project exists7839 returns the referenced project7840 when reference cache is loaded7841 pulls from the reference cache7842Gitlab::GithubImport::Stage::ImportNotesWorker7843 #import7844 imports all the notes7845 #importers7846 when settings single_endpoint_notes_import is enabled7847 includes single endpoint mr and issue notes importers7848 when settings single_endpoint_notes_import is disabled7849 includes default notes importer7850Gitlab::MergeRequests::Mergeability::CheckResult7851 .default_payload7852 returns the expected defaults7853 .success7854 creates a success result7855 uses the default payload7856 when given a payload7857 uses the payload passed7858 .failed7859 creates a failure result7860 uses the default payload7861 when given a payload7862 uses the payload passed7863 .from_hash7864 returns the expected status and payload7865 #to_hash7866 returns the expected hash7867 #failed?7868 when it has failed7869 returns true7870 when it has succeeded7871 returns false7872 #success?7873 when it has failed7874 returns false7875 when it has succeeded7876 returns true7877PagesDomainSslRenewalWorker7878 #perform7879 delegates to ObtainLetsEncryptCertificateService7880 when domain was deleted7881 does nothing7882 when domain is disabled7883 does nothing7884Gitlab::Ci::Pipeline::Expression::Lexeme::String7885 .build7886 creates a new instance of the token7887 .type7888 is a value lexeme7889 .scan7890 when using double quotes7891 correctly identifies string token7892 when using single quotes7893 correctly identifies string token7894 when there are mixed quotes in the string7895 is a greedy scanner for double quotes7896 is a greedy scanner for single quotes7897 allows to use single quotes inside double quotes7898 allow to use double quotes inside single quotes7899 allows to use an empty string inside single quotes7900 allow to use an empty string inside double quotes7901 #evaluate7902 returns string value if it is present7903 returns an empty string if it is empty7904RuboCop::Cop::API::GrapeArrayMissingCoerce7905 # order random7906 adds an offense with an optional parameter7907 does not add an offense7908 adds an offense with a required parameter7909 does not add an offense for unrelated classes7910Ci::CreatePipelineService7911 .pre/.post stages7912 when pipeline contains a build except .pre/.post7913 creates a pipeline7914 when pipeline does not contain any other build except .pre/.post7915 does not create a pipeline7916Gitlab::ImportExport::AvatarRestorer7917 does not break if there is just a directory7918 with avatar7919 restores a project avatar7920 saves the avatar into the project7921DesignManagement::CopyDesignCollection::QueueService7922 returns an error if user does not have permission7923 when user has permission7924 returns an error if design collection copy_state is not queuable7925 sets the design collection copy state7926 queues a DesignManagement::CopyDesignCollectionWorker7927 returns success7928Sidebars::Groups::Menus::ObservabilityMenu7929 # order random7930 Menu items7931 Explore7932 behaves like observability menu entry7933 when action is allowed7934 the menu item is added to list of menu items7935 when action is not allowed7936 the menu item is added to list of menu items7937 Datasources7938 behaves like observability menu entry7939 when action is allowed7940 the menu item is added to list of menu items7941 when action is not allowed7942 the menu item is added to list of menu items7943 #render?7944 when observability#explore is allowed7945 returns true7946 when observability#explore is not allowed7947 returns false7948Webauthn::AuthenticateService7949 #execute7950 returns true if the response is valid and a matching stored credential is present7951 when response is valid but no matching stored credential is present7952 returns false7953 when device response includes invalid json7954 returns false7955CohortsService7956 #execute7957 returns a list of user cohorts7958Clusters::Agents::ProjectAuthorization7959 is expected to belong to agent class_name => Clusters::Agent required: true7960 is expected to belong to project class_name => Project required: true7961 is expected to validate jsonb schema "config"7962 #config_project7963 is expected to eq #<Project id:998 namespace1324/project1004>>7964GitlabScriptTagHelper7965 external script tag7966DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7967Falling back to an asset that may be in the public folder.7968This behavior is deprecated and will be removed.7969To bypass the asset pipeline and preserve this behavior,7970use the `skip_pipeline: true` option.7971 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7972 returns a script tag with defer=true and a nonce7973DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7974Falling back to an asset that may be in the public folder.7975This behavior is deprecated and will be removed.7976To bypass the asset pipeline and preserve this behavior,7977use the `skip_pipeline: true` option.7978 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7979 returns a script tag with defer=false and a nonce7980DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7981Falling back to an asset that may be in the public folder.7982This behavior is deprecated and will be removed.7983To bypass the asset pipeline and preserve this behavior,7984use the `skip_pipeline: true` option.7985 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7986 returns a script tag with a nonce even nonce is set to nil7987 inline script tag7988 returns a script tag with a nonce using block syntax7989 returns a script tag with a nonce using block syntax with options7990 returns a script tag with a nonce using argument syntax7991 returns a script tag with a nonce using argument syntax with options7992 returns a script tag with a nonce using argument and block syntax with options7993 #preload_link_tag7994 returns a link tag with a nonce7995Packages::Go::SyncPackagesService7996 #execute_async7997 schedules a package refresh7998 #initialize7999 without a project8000 raises an error8001 without a ref8002 raises an error8003 with an invalid ref8004 raises an error8005Packages::RemoveTagService8006 #execute8007 with existing tag8008 is expected to change `Packages::Tag.count` by -18009 with nil8010 is expected to raise ArgumentError8011Terraform/Base.gitlab-ci.yml8012 the created pipeline8013 does not create any jobs8014RawUsageData8015 scopes8016 .for_current_reporting_cycle8017 returns nil where no records match filter criteria8018 with records matching filtering criteria8019 return records within reporting cycle time range ordered by creation time8020 validations8021 is expected to validate that :payload cannot be empty/falsy8022 is expected to validate that :recorded_at cannot be empty/falsy8023 uniqueness validation8024 is expected to validate that :recorded_at is case-sensitively unique8025 #update_version_metadata!8026 updates sent_at8027 updates version_usage_data_id_value8028NestedAttributesDuplicatesValidator8029 #validate_each8030 with no scope8031 does not have any errors8032 with duplicates8033 has a duplicate key error8034 with a scope attribute8035 does not have any errors8036 with duplicates8037 has a duplicate key error8038 with a child attribute8039 does not have any errors8040 when name is duplicated8041 has a duplicate error8042 when url is duplicated8043 has a duplicate error8044PurgeDependencyProxyCacheWorker8045 #perform8046 an admin user8047 when admin mode is enabled8048 is labeled as idempotent8049 performs multiple times sequentially without raising an exception8050 marks the blobs as pending_destruction and returns ok8051 when admin mode is disabled8052 behaves like not expiring blobs and manifests8053 does not expire blobs and manifests8054 a non-admin user8055 behaves like not expiring blobs and manifests8056 does not expire blobs and manifests8057 an invalid user id8058 behaves like not expiring blobs and manifests8059 does not expire blobs and manifests8060 an invalid group8061 behaves like not expiring blobs and manifests8062 does not expire blobs and manifests8063Editable8064 #edited?8065 is expected to eq false8066 is expected to eq true8067Projects::CountService8068 .query8069 raises NotImplementedError8070 #relation_for_count8071 calls the class method query with the project id8072 #count8073 returns the number of rows8074 caches the number of rows8075 #refresh_cache8076 refreshes the cache8077 #delete_cache8078 removes the cache8079 #cache_key_name8080 raises NotImplementedError8081 #cache_key8082 returns the cache key as an Array8083AdminEmailWorker8084 .perform8085 does not attempt to send repository check mail when they are disabled8086 repository_checks enabled8087 checks if repository check mail should be sent8088 does not send mail when there are no failed repos8089 send mail when there is a failed repo8090Resolvers::Metrics::Dashboards::AnnotationResolver8091 #resolve8092 user with developer access8093 with annotation records8094 loads annotations with usage of finder class8095 dashboard is missing8096 returns empty array8097 there are no annotations records8098 returns empty array8099Gitlab::Chat::Responder8100 .responder_for8101 using a regular build8102 returns nil8103 using a chat build8104 when response_url starts with 'https://hooks.slack.com/'8105 is expected to be an instance of Gitlab::Chat::Responder::Slack8106 when response_url does not start with 'https://hooks.slack.com/'8107 is expected to be an instance of Gitlab::Chat::Responder::Mattermost8108RecaptchaHelper8109 .show_recaptcha_sign_up?8110 is expected to eq true8111 when setting is disabled8112 is expected to eq false8113 when it is a QA request8114 is expected to eq false8115 .recaptcha_enabled_on_login?8116 is expected to eq true8117 when setting is disabled8118 is expected to eq false8119 when it is a QA request8120 is expected to eq false8121Ci::RunnerVersion8122 is expected to have many runner_machines8123 behaves like having unique enum values8124 has unique values in "status"8125 .unavailable8126 is expected to contain exactly #<Ci::RunnerVersion version: "abc123", status: "unavailable">8127 .potentially_outdated8128 contains any valid or unprocessed runner version that is not already recommended8129 validation8130 is expected to validate that the length of :version is at most 20488131 #status8132 when is not processed8133 behaves like having enum with nil value8134 has enum with nil value8135Packages::Composer::PackagesFinder8136 #execute8137 is expected to contain exactly #<Packages::Package id: 97, project_id: 1010, created_at: "2023-03-30 12:03:44.676673337 +0000", updated_at: "2023-03-30 12:03:44.676673337 +0000", name: "composer-package-1", version: "1.0.1", package_type: "composer", creator_id: 1832, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 98, project_id: 1010, created_at: "2023-03-30 12:03:44.684441947 +0000", updated_at: "2023-03-30 12:03:44.684441947 +0000", name: "composer-package-2", version: "1.0.2", package_type: "composer", creator_id: 1832, status: "default", last_downloaded_at: nil>8138StartupjsHelper8139 #page_startup_graphql_calls8140 returns an array containing GraphQL Page Startup Calls8141 #page_startup_graphql_headers8142 csrf_token: "abc", feature_category: "web_ide", expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>"web_ide"}8143 returns hash of headers for GraphQL requests8144 csrf_token: "", feature_category: "", expected: {"X-CSRF-Token"=>"", "x-gitlab-feature-category"=>""}8145 returns hash of headers for GraphQL requests8146 csrf_token: "abc", feature_category: nil, expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>""}8147 returns hash of headers for GraphQL requests8148 csrf_token: "something", feature_category: " ", expected: {"X-CSRF-Token"=>"something", "x-gitlab-feature-category"=>""}8149 returns hash of headers for GraphQL requests8150Peek::Views::RedisDetailed8151 returns aggregated results8152 commands: [[:auth, "test"]], expected: "auth <redacted>"8153 scrubs Redis commands8154 commands: [[:set, "key", "value"]], expected: "set key <redacted>"8155 scrubs Redis commands8156 commands: [[:set, "bad"]], expected: "set bad"8157 scrubs Redis commands8158 commands: [[:hmset, "key1", "value1", "key2", "value2"]], expected: "hmset key1 <redacted>"8159 scrubs Redis commands8160 commands: [[:get, "key"]], expected: "get key"8161 scrubs Redis commands8162 commands: [[:get, "key1"], [:get, "key2"]], expected: "get key1, get key2"8163 scrubs Redis commands8164 commands: [[:set, "key1", "value"], [:set, "key2", "value"]], expected: "set key1 <redacted>, set key2 <redacted>"8165 scrubs Redis commands8166UserAgentDetail8167 .submittable?8168 is submittable when not already submitted8169 is not submittable when already submitted8170 .valid?8171 is valid with a subject8172 is invalid without a subject8173Mutations::Boards::Update8174 is expected to require graphql authorizations :admin_issue_board8175 #resolve8176 when the user cannot admin the board8177 raises an error8178 when user can update board8179 updates board with correct values8180Gitlab::Auth::Otp::Strategies::FortiTokenCloud8181 access token is created successfully8182 otp verification is successful8183 returns success8184 otp verification is not successful8185 returns error8186 access token creation fails8187 returns error8188 SSL Verification8189 with `Gitlab::HTTP`8190 does not use a `verify` argument,thereby always performing SSL verification while making API calls8191Gitlab::Ci::Build::Cache8192 .initialize8193 when the cache is an array8194 instantiates an array of cache seeds8195 when the cache is a hash8196 instantiates a cache seed8197 #cache_attributes8198 when there are no caches8199 returns an empty hash8200 when there are caches8201 returns the structured attributes for the caches8202Gitlab::CycleAnalytics::Updater8203 updates authors8204 maps the correct user8205 updates builds8206 maps the correct build8207Gitlab::Usage::Metrics::Instrumentations::AggregatedMetric8208 # order random8209 data_source: "redis_hll", time_frame: "7d", operator: "AND", expected_value: 18210 has correct value8211 data_source: "redis_hll", time_frame: "28d", operator: "OR", expected_value: 38212 has correct value8213 data_source: "database", time_frame: "7d", operator: "AND", expected_value: 1.08214 has correct value8215 data_source: "database", time_frame: "7d", operator: "OR", expected_value: 3.08216 has correct value8217 data_source: "redis_hll", time_frame: "7d", operator: "OR", expected_value: 28218 has correct value8219 data_source: "redis_hll", time_frame: "28d", operator: "AND", expected_value: 28220 has correct value8221Sidebars::UserSettings::Menus::EmailsMenu8222 # order random8223 behaves like User settings menu #render? method8224 #render?8225 when user is logged in8226 renders8227 when user is not logged in8228 does not render8229 behaves like User settings menu8230 does not contain any sub menu8231 renders the correct link8232 renders the correct title8233 renders the correct icon8234 defines correct active route8235Gitlab::Checks::ForcePush8236 .force_push?8237 returns false if the repo is empty8238 checks if old rev is an anchestor8239RuboCop::Cop::CodeReuse::ServiceClass8240 # order random8241 does not flag the use of a Service class in a regular class8242 flags the use of a Service class in a Finder8243 flags the use of a Service class in a Presenter8244 flags the use of a Service class in a Serializer8245 flags the use of a Service class in a model8246Integrations::EventEntity8247 #as_json8248 with integration without fields8249 exposes correct attributes8250 with integration with fields8251 exposes correct attributes8252Gitlab::Kubernetes::Ingress8253 #canary?8254 with canary ingress parameters8255 is expected to be truthy8256 with stable ingress parameters8257 is expected to be falsey8258 #canary_weight8259 with canary ingress parameters8260 is expected to eq 508261 with stable ingress parameters8262 is expected to be nil8263 #name8264 is expected to eq "production-auto-deploy"8265Banzai::Filter::TimeoutHtmlPipelineFilter8266 # order random8267 raises NotImplementedError8268 behaves like filter timeout8269 when rendering takes too long8270 times out8271AsCte8272 .as_cte8273 is expected to be a kind of Gitlab::SQL::CTE8274 is expected to eq #<ActiveRecord::Relation []>8275 is expected to eq "klass_cte"8276 with materialized parameter8277 as true8278 is expected to match /MATERIALIZE/8279 as false8280 is expected not to match /MATERIALIZE/8281Gitlab::Ci::Build::Artifacts::Adapters::GzipStream8282 #initialize8283 when stream is passed8284 initialized8285 when stream is not passed8286 raises an error8287 #each_blob8288 when stream is gzip file8289 when gzip file contains one file8290 iterates content and file_name8291 when gzip file contains three files8292 iterates content and file_name8293 when stream is zip file8294 raises an error8295Types::ContainerRepositoryType8296 is expected to eq "ContainerRepository"8297 is expected to eq "A container repository"8298 is expected to require graphql authorizations :read_container_image8299 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :project, :migration_state, and :last_cleanup_deleted_tags_count8300 status field8301 returns status enum8302 expiration_policy_cleanup_status field8303 returns cleanup status enum8304google cloud profiler8305 # order random8306 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to true8307 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is not set8308 is expected not to receive new(*(any args)) 0 times8309 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is set8310 when run in Puma context8311 calls the agent8312 when run in Sidekiq context8313 is expected not to receive new(*(any args)) 0 times8314 when run in another context8315 is expected not to receive new(*(any args)) 0 times8316 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is not set8317 is expected not to receive new(*(any args)) 0 times8318 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to false8319 is expected not to receive new(*(any args)) 0 times8320Gitlab::Config::Entry::Configurable8321 validations8322 when entry is a hash8323 correctly validates an instance8324 when entry is not a hash8325 invalidates the instance8326 configured entries8327 .nodes8328 has valid nodes8329 creates a node factory8330 returns a duplicated factory object8331 .reserved_node_names8332 returns all nodes with reserved: true8333Projects::BatchOpenMergeRequestsCountService8334 # order random8335 #refresh_cache_and_retrieve_data8336 refreshes cache keys correctly when cache is clean8337Gitlab::SlashCommands::Presenters::Run8338 #present8339 when no builds are present8340 returns an error8341 when a responder could be found8342 returns the output for a scheduled pipeline8343 when a responder could not be found8344 returns an error8345 #unsupported_chat_service8346 returns an ephemeral response8347 #failed_to_schedule8348 returns an ephemeral response8349API::Entities::Clusters::Agent8350 includes basic fields8351Gitlab::Ci::Config::Entry::Publish8352 # order random8353 .default8354 returns the default value8355 validations8356 when publish config value is correct8357 #config8358 returns the publish directory8359 #valid?8360 is valid8361 when the value has a wrong type8362 reports an error8363BlobViewer::RouteMap8364 #validation_message8365 calls prepare! on the viewer8366 when the configuration is valid8367 returns nil8368 when the configuration is invalid8369 returns the error message8370Gitlab::GithubImport::ImportDiffNoteWorker8371 #import8372 imports a diff note8373Gitlab::Email::Message::InProductMarketing::Create8374 public methods8375 series: 08376 returns value for series8377 series: 18378 returns value for series8379 series: 28380 returns value for series8381Packages::PackagePolicy8382 when the user is part of the project8383 allows read_package8384 when the user is not part of the project8385 disallows read_package for any Package8386ContainerRegistry::DataRepairDetail8387 # order random8388 is expected to belong to project required: true8389Sidebars::Groups::SuperSidebarPanel8390 # order random8391 implements #super_sidebar_context_header8392 #renderable_menus8393 is exposed as a renderable menu8394BulkImports::Clients::Graphql8395 #execute8396 source instance validation8397 when source instance is compatible8398 marks source instance as compatible8399 when source instance is incompatible8400 raises an error8401 network errors8402 when response cannot be parsed8403 raises network error8404 when response is unsuccessful8405 raises network error8406DisallowTwoFactorForGroupWorker8407 updates group8408 updates group members8409Gitlab::GithubImport::ProjectRelationType8410 # order random8411 #for8412 when it's user owned repo8413 is expected to eq "owned"8414 when it's organization repo8415 is expected to eq "organization"8416 when it's user collaborated repo8417 is expected to eq "collaborated"8418 with cache8419 calls client only once during 5 minutes timeframe8420Types::CommitSignatures::X509SignatureType8421 # order random8422 is expected to eq "X509Signature"8423 contains attributes related to X.509 signatures8424 is expected to include Types::CommitSignatureInterface8425 is expected to require graphql authorizations :download_code8426Banzai::Filter::ImageLazyLoadFilter8427 adds a class attribute8428 appends to the current class attribute8429 adds a async decoding attribute8430 transforms the image src to a data-src8431 works with external images8432Banzai::Pipeline::PreProcessPipeline8433 pre-processes the source text8434 truncates the text if requested8435 when multiline blockquote8436 data-sourcepos references correct line in source markdown8437Gitlab::HealthChecks::GitalyCheck8438 #readiness8439 Gitaly server is up8440 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=true, message=nil, labels={:shard=>"default"}>]8441 Gitaly server is down8442 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=false, message="Connection refused", labels={:shard=>"default"}>]8443 #metrics8444 Gitaly server is up8445 provides metrics8446 Gitaly server is down8447 provides metrics8448RuboCop::Cop::RSpec::AnyInstanceOf8449 # order random8450 when calling expect_any_instance_of8451 registers an offense and corrects8452 when calling allow_any_instance_of8453 registers an offense and corrects8454GroupLink::GroupGroupLinkSerializer8455 matches json schema8456sawyer_patch8457 # order random8458 raises error when acessing a method that expects an argument8459 raises error when acessing Sawyer Resource dynamic methods8460Projects::Settings::BranchRulesHelper8461 # order random8462 #branch_rules_data8463 returns branch rules data8464Gitlab::ZoomUrlValidator8465 validations8466 when zoom link starts with https8467 passes validation8468 when zoom link does not start with https8469 fails validation8470 when zoom link does not start with a scheme8471 fails validation8472Gitlab::Database::AsyncConstraints::Validators8473 # order random8474 .for8475 with foreign keys validations8476 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::ForeignKey8477 with check constraint validations8478 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::CheckConstraint8479SystemCheck::IncomingEmailCheck8480 #multi_check8481 when incoming e-mail is disabled8482Reply by email is disabled in config/gitlab.yml8483 does not run any checks8484 when incoming e-mail is enabled for IMAP8485 runs IMAP and mailroom checks8486 when incoming e-mail is enabled for Microsoft Graph8487 runs mailroom checks8488Gitlab::Database::Migrations::Observers::QueryStatistics8489 #before8490 with pgss available8491 resets pg_stat_statements8492 without pgss available8493 executes nothing8494 #record8495 with pgss available8496 fetches data from pg_stat_statements and stores on the observation8497 without pgss available8498 executes nothing8499Import/Export attribute configuration8500 has no new columns8501Gitlab::PhabricatorImport::Representation::User8502 #phabricator_id8503 returns the phabricator id8504 #username8505 returns the username8506Types::Packages::Conan::MetadatumFileTypeEnum8507 uses all possible options from model8508Types::Packages::Pypi::MetadatumType8509 includes pypi metadatum fields8510SecurityReportsMrWidgetPromptExperiment8511 defines a control and candidate8512Gitlab::SidekiqMiddleware::SizeLimiter::Server8513 yields block8514 calls the Compressor8515Gitlab::Kubernetes::PodCmd8516 .retry_command8517 constructs string properly8518Docs::DeprecationHandling8519 sorts entries and milestones8520BlocksUnsafeSerialization8521 behaves like blocks unsafe serialization8522 blocks as_json8523 blocks to_json8524Types::EventableType8525 exposes events field8526Clusters::Group8527 is expected to belong to cluster required: false8528 is expected to belong to group required: false8529ServicePing::PermitDataCategories8530 #execute8531 when usage ping setting is set to true8532 returns all categories8533 when usage ping setting is set to false8534 returns all categories8535groups/observability/observability.html.haml8536 # order random8537 renders as expected8538NamespaceSerializer8539 represents NamespaceBasicEntity entities8540SyntheticNote8541 #to_ability_name8542 is expected to eq "note"8543AuthorizedProjectUpdate::ProjectAccessChangedService8544 #execute8545 executes projects_authorizations refresh8546RuboCop::Cop::Gitlab::FinderWithFindBy8547 # order random8548 when calling execute.find8549 registers an offense and corrects8550 when called within the `FinderMethods` module8551 does not register an offense8552Types::Packages::Conan::MetadatumType8553 includes conan metadatum fields8554Gitlab::Database::SchemaValidation::Validators::ExtraTriggers8555 # order random8556 returns trigger inconsistencies8557Admin::ComponentsHelper8558 # order random8559 #database_versions8560 returns expected database data8561#<Class:0x00007efe6a918f60>8562 # order random8563 has the expected fields8564Gitlab::Database::Consistency8565 .with_read_consistency8566 sticks to primary database8567Knapsack report was generated. Preview:8568{8569 "spec/scripts/lib/glfm/update_example_snapshots_spec.rb": 291.5125512120003,8570 "spec/services/todos/destroy/entity_leave_service_spec.rb": 145.8816514859991,8571 "spec/lib/gitlab/redis/multi_store_spec.rb": 23.982752687001266,8572 "spec/services/git/branch_push_service_spec.rb": 86.69764987400049,8573 "spec/lib/gitlab/import_export/attributes_permitter_spec.rb": 11.833824738001567,8574 "spec/lib/object_storage/direct_upload_spec.rb": 30.419656862999545,8575 "spec/services/issues/relative_position_rebalancing_service_spec.rb": 62.473600712000916,8576 "spec/lib/gitlab/diff/position_spec.rb": 35.98203307499898,8577 "spec/models/diff_note_spec.rb": 38.67247212300026,8578 "spec/lib/gitlab/database/consistency_checker_spec.rb": 43.64262708100068,8579 "spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb": 36.46275684200009,8580 "spec/lib/gitlab/project_template_spec.rb": 14.76441732100102,8581 "spec/lib/gitlab/pagination/offset_pagination_spec.rb": 24.77700203600034,8582 "spec/services/packages/maven/find_or_create_package_service_spec.rb": 18.38481286700153,8583 "spec/finders/concerns/packages/finder_helper_spec.rb": 24.53052777799894,8584 "spec/presenters/merge_request_presenter_spec.rb": 19.125496908998684,8585 "spec/lib/gitlab/database/batch_count_spec.rb": 9.915006971999901,8586 "spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb": 25.609976969000854,8587 "spec/models/concerns/subscribable_spec.rb": 16.992817791999187,8588 "spec/lib/gitlab/ci/status/external/factory_spec.rb": 14.82098928599953,8589 "spec/services/ci/play_build_service_spec.rb": 14.56386344800012,8590 "spec/lib/gitlab/ci/variables/collection_spec.rb": 4.750507754999489,8591 "spec/services/issues/export_csv_service_spec.rb": 8.469782963000398,8592 "spec/models/wiki_page/meta_spec.rb": 8.375369362000129,8593 "spec/lib/gitlab/ci/ansi2json/style_spec.rb": 3.958915425999294,8594 "spec/serializers/diff_file_entity_spec.rb": 7.315211017001275,8595 "spec/lib/gitlab/blob_helper_spec.rb": 9.538935996999498,8596 "spec/finders/releases_finder_spec.rb": 13.811608336000063,8597 "spec/lib/gitlab/issues/rebalancing/state_spec.rb": 3.4171356650003872,8598 "spec/lib/gitlab/redis/sessions_spec.rb": 2.0995737419998477,8599 "spec/lib/banzai/filter/reference_redactor_filter_spec.rb": 10.237424045000807,8600 "spec/services/projects/protect_default_branch_service_spec.rb": 7.516583897999226,8601 "spec/services/issues/reopen_service_spec.rb": 8.014102013999945,8602 "spec/helpers/projects/project_members_helper_spec.rb": 10.228575335999267,8603 "spec/bin/audit_event_type_spec.rb": 2.225847091000105,8604 "spec/services/todos/destroy/unauthorized_features_service_spec.rb": 9.750644048999675,8605 "spec/finders/pending_todos_finder_spec.rb": 11.625041110999518,8606 "spec/services/upload_service_spec.rb": 7.83733618000042,8607 "spec/presenters/project_clusterable_presenter_spec.rb": 7.245043203000023,8608 "spec/services/deployments/older_deployments_drop_service_spec.rb": 8.745564408000064,8609 "spec/lib/gitlab/chat/command_spec.rb": 8.073948649000158,8610 "spec/workers/prune_old_events_worker_spec.rb": 7.872676457000125,8611 "spec/lib/gitlab/template_parser/ast_spec.rb": 4.307661786999233,8612 "spec/lib/gitlab/metrics/dashboard/finder_spec.rb": 6.911120351998761,8613 "spec/lib/gitlab/gitaly_client/repository_service_spec.rb": 2.793043620999015,8614 "spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb": 6.31017917600002,8615 "spec/finders/packages/conan/package_finder_spec.rb": 4.843822707000072,8616 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 4.280799456999375,8617 "spec/lib/gitlab/gitaly_client/blob_service_spec.rb": 9.494328662000044,8618 "spec/helpers/nav_helper_spec.rb": 2.97434737399999,8619 "spec/lib/error_tracking/sentry_client/projects_spec.rb": 1.9795158930010075,8620 "spec/services/tags/create_service_spec.rb": 6.980676576999031,8621 "spec/lib/gitlab/ci/config/entry/trigger_spec.rb": 1.5924271580006462,8622 "spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb": 5.987830895001025,8623 "spec/models/concerns/project_features_compatibility_spec.rb": 5.426106364999214,8624 "spec/lib/gitlab/user_access_snippet_spec.rb": 4.582496651000838,8625 "spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 4.536709714999233,8626 "spec/lib/gitlab/auth/ldap/user_spec.rb": 4.095823404999464,8627 "spec/graphql/types/user_merge_request_interaction_type_spec.rb": 2.466377029000796,8628 "spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb": 4.632068625998727,8629 "spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb": 3.7130711380013963,8630 "spec/lib/gitlab/git/attributes_parser_spec.rb": 1.1071914909989573,8631 "spec/models/concerns/ci/has_ref_spec.rb": 4.925255059999472,8632 "spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb": 1.2290507110010367,8633 "spec/finders/user_finder_spec.rb": 1.1514478970002529,8634 "spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb": 4.861035394998908,8635 "spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb": 3.082723014998919,8636 "spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb": 3.328077571999529,8637 "spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb": 0.8594956440010719,8638 "spec/serializers/build_action_entity_spec.rb": 3.683639189999667,8639 "spec/lib/gitlab/chat/responder/slack_spec.rb": 3.889757422999537,8640 "spec/lib/gitlab/ci/components/instance_path_spec.rb": 2.7367124449992843,8641 "spec/lib/gitlab/ci/build/policy/variables_spec.rb": 2.105287681999471,8642 "spec/lib/gitlab/ci/reports/test_report_spec.rb": 3.391417136999735,8643 "spec/lib/gitlab/utils/email_spec.rb": 0.9235862170007749,8644 "spec/lib/gitlab/search/params_spec.rb": 0.9685824440002762,8645 "spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb": 1.1178246700001182,8646 "spec/services/ci/create_pipeline_service/rate_limit_spec.rb": 4.989823833999253,8647 "spec/lib/gitlab/jira_import/labels_importer_spec.rb": 1.6393159729996114,8648 "spec/lib/sidebars/projects/menus/project_information_menu_spec.rb": 1.4949555670009431,8649 "spec/graphql/resolvers/design_management/design_resolver_spec.rb": 2.777521441999852,8650 "spec/services/files/base_service_spec.rb": 2.0569662260004407,8651 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 0.9633732040001632,8652 "spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb": 0.9704188029991201,8653 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 2.350718900001084,8654 "spec/models/packages/event_spec.rb": 0.5697642390005058,8655 "spec/services/spam/akismet_service_spec.rb": 1.2108231420006632,8656 "spec/graphql/resolvers/paginated_tree_resolver_spec.rb": 1.6422314530009317,8657 "spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb": 0.9966807009986951,8658 "spec/models/concerns/sensitive_serializable_hash_spec.rb": 1.5108367150005506,8659 "spec/models/legacy_diff_discussion_spec.rb": 3.7079492789998767,8660 "spec/services/packages/cleanup/update_policy_service_spec.rb": 2.4016906149990973,8661 "spec/models/merge_request/diff_commit_user_spec.rb": 0.8523755839996738,8662 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 3.1593334570006846,8663 "spec/graphql/resolvers/project_pipeline_resolver_spec.rb": 3.2484017400001903,8664 "spec/rack_servers/puma_spec.rb": 3.8077816999993956,8665 "spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb": 4.1925037349992635,8666 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 2.7380521449995285,8667 "spec/serializers/deployment_serializer_spec.rb": 3.263602988999992,8668 "spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb": 1.4994582859999355,8669 "spec/graphql/resolvers/board_resolver_spec.rb": 2.835526775999824,8670 "spec/services/import/fogbugz_service_spec.rb": 1.6507763030003844,8671 "spec/services/integrations/propagate_service_spec.rb": 3.141588939999565,8672 "spec/workers/gitlab/jira_import/import_issue_worker_spec.rb": 1.3759017970005516,8673 "spec/services/milestones/create_service_spec.rb": 1.5874063979990751,8674 "spec/workers/ci/pending_builds/update_group_worker_spec.rb": 3.154065937998894,8675 "spec/services/jira_import/server_users_mapper_service_spec.rb": 3.3733501890001207,8676 "spec/models/aws/role_spec.rb": 0.8145984570001019,8677 "spec/rubocop/cop/search/namespaced_class_spec.rb": 1.5547382709992235,8678 "spec/services/projects/lfs_pointers/lfs_import_service_spec.rb": 1.8025157989995932,8679 "spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb": 2.5449476419998973,8680 "spec/lib/gitlab/data_builder/wiki_page_spec.rb": 2.9438419970010727,8681 "spec/policies/terraform/state_version_policy_spec.rb": 2.5534770819995174,8682 "spec/services/keys/revoke_service_spec.rb": 1.477718197998911,8683 "spec/tasks/gitlab/packages/migrate_rake_spec.rb": 2.8446660159988824,8684 "spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb": 2.20435339299911,8685 "spec/lib/api/entities/clusters/agent_authorization_spec.rb": 2.2515691989992774,8686 "spec/serializers/ci/dag_job_group_entity_spec.rb": 1.4178681939993112,8687 "spec/lib/gitlab/hook_data/group_builder_spec.rb": 1.1375546679992112,8688 "spec/tooling/danger/product_intelligence_spec.rb": 1.0359341269995639,8689 "spec/lib/gitlab/git/repository_cleaner_spec.rb": 2.2197256609997567,8690 "spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb": 1.1966778529986186,8691 "spec/services/environments/stop_stale_service_spec.rb": 2.0804913740012125,8692 "spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb": 0.8495129350012576,8693 "spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb": 1.7852545599998848,8694 "spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb": 2.0457480370005214,8695 "spec/lib/gitlab/diff/parallel_diff_spec.rb": 1.2802044059990294,8696 "spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb": 2.5262045140007103,8697 "spec/lib/gitlab/github_import/importer/events/renamed_spec.rb": 2.2819259259995306,8698 "spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 1.5606072709997534,8699 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 0.6311288230008358,8700 "spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb": 0.7669673620002868,8701 "spec/graphql/types/group_invitation_type_spec.rb": 0.7776517900001636,8702 "spec/models/concerns/ignorable_columns_spec.rb": 0.8591549030006718,8703 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.305444263998652,8704 "spec/lib/banzai/cross_project_reference_spec.rb": 0.46711314899948775,8705 "spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb": 1.2137101619991881,8706 "spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb": 0.6959968179999123,8707 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 1.129006508999737,8708 "spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb": 0.908115498999905,8709 "spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb": 0.47630703700087906,8710 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 1.5863383579999208,8711 "spec/lib/gitlab/import_export/avatar_restorer_spec.rb": 1.7003015080008481,8712 "spec/services/design_management/copy_design_collection/queue_service_spec.rb": 1.3608010789994296,8713 "spec/lib/sidebars/groups/menus/observability_menu_spec.rb": 0.7379931240011501,8714 "spec/services/webauthn/authenticate_service_spec.rb": 0.9445358450011554,8715 "spec/services/cohorts_service_spec.rb": 1.5388461129987263,8716 "spec/models/clusters/agents/project_authorization_spec.rb": 1.1747740149985475,8717 "spec/helpers/gitlab_script_tag_helper_spec.rb": 0.7453887930005294,8718 "spec/services/packages/go/sync_packages_service_spec.rb": 1.7930702600006043,8719 "spec/services/packages/remove_tag_service_spec.rb": 0.9810887120002008,8720 "spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb": 1.17468335599915,8721 "spec/models/raw_usage_data_spec.rb": 0.601247806000174,8722 "spec/validators/nested_attributes_duplicates_validator_spec.rb": 1.0166522189992975,8723 "spec/workers/purge_dependency_proxy_cache_worker_spec.rb": 1.0940064919996075,8724 "spec/models/concerns/editable_spec.rb": 1.1975542630007112,8725 "spec/services/projects/count_service_spec.rb": 0.6167744450012833,8726 "spec/workers/admin_email_worker_spec.rb": 0.7405823539993435,8727 "spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb": 1.134808888000407,8728 "spec/lib/gitlab/chat/responder_spec.rb": 1.201450582999314,8729 "spec/helpers/recaptcha_helper_spec.rb": 0.7338820339991798,8730 "spec/models/ci/runner_version_spec.rb": 0.5296695230008481,8731 "spec/finders/packages/composer/packages_finder_spec.rb": 1.0983162020002055,8732 "spec/helpers/startupjs_helper_spec.rb": 0.5572488799989515,8733 "spec/lib/peek/views/redis_detailed_spec.rb": 0.7107895070002996,8734 "spec/models/user_agent_detail_spec.rb": 0.7318786650012044,8735 "spec/graphql/mutations/boards/update_spec.rb": 0.8672011329999805,8736 "spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb": 0.8084701879997738,8737 "spec/lib/gitlab/ci/build/cache_spec.rb": 0.44269284999973024,8738 "spec/lib/gitlab/cycle_analytics/updater_spec.rb": 0.8768850819997169,8739 "spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb": 0.6298300239996024,8740 "spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb": 0.6077848759996414,8741 "spec/lib/gitlab/checks/force_push_spec.rb": 1.036803457998758,8742 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.4830814970009669,8743 "spec/serializers/integrations/event_entity_spec.rb": 0.9890006620007625,8744 "spec/lib/gitlab/kubernetes/ingress_spec.rb": 0.6268594140001369,8745 "spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb": 0.9912424819995067,8746 "spec/models/concerns/as_cte_spec.rb": 0.45417343899862317,8747 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.4738135180014069,8748 "spec/graphql/types/container_repository_type_spec.rb": 0.7046638970005006,8749 "spec/initializers/google_cloud_profiler_spec.rb": 1.0856577230006224,8750 "spec/lib/gitlab/config/entry/configurable_spec.rb": 0.6726244199999201,8751 "spec/services/projects/batch_open_merge_requests_count_service_spec.rb": 1.0021267699994496,8752 "spec/lib/gitlab/slash_commands/presenters/run_spec.rb": 0.45505966000018816,8753 "spec/lib/api/entities/clusters/agent_spec.rb": 0.5941026670006977,8754 "spec/lib/gitlab/ci/config/entry/publish_spec.rb": 0.3920781150009134,8755 "spec/models/blob_viewer/route_map_spec.rb": 0.5340228829991247,8756 "spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb": 0.6782275789992127,8757 "spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb": 0.4419721700014634,8758 "spec/policies/packages/package_policy_spec.rb": 0.9047755299998244,8759 "spec/models/container_registry/data_repair_detail_spec.rb": 0.5775586190011381,8760 "spec/lib/sidebars/groups/super_sidebar_panel_spec.rb": 0.6082473460010078,8761 "spec/lib/bulk_imports/clients/graphql_spec.rb": 0.6983366479998949,8762 "spec/workers/disallow_two_factor_for_group_worker_spec.rb": 0.776988841000275,8763 "spec/lib/gitlab/github_import/project_relation_type_spec.rb": 0.49654095500045514,8764 "spec/graphql/types/commit_signatures/x509_signature_type_spec.rb": 0.46465775900105655,8765 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.47094881900011387,8766 "spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb": 0.5321435120004026,8767 "spec/lib/gitlab/health_checks/gitaly_check_spec.rb": 0.5297449429999688,8768 "spec/rubocop/cop/rspec/any_instance_of_spec.rb": 0.4963718359995255,8769 "spec/serializers/group_link/group_group_link_serializer_spec.rb": 0.4249976119990606,8770 "spec/initializers/sawyer_patch_spec.rb": 0.3391868999988219,8771 "spec/helpers/projects/settings/branch_rules_helper_spec.rb": 0.40824395299932803,8772 "spec/validators/gitlab/zoom_url_validator_spec.rb": 0.7233042560001195,8773 "spec/lib/gitlab/database/async_constraints/validators_spec.rb": 0.3286830300003203,8774 "spec/lib/system_check/incoming_email_check_spec.rb": 0.5206621640008962,8775 "spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb": 0.42189102200063644,8776 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 1.1053464310007257,8777 "spec/lib/gitlab/phabricator_import/representation/user_spec.rb": 0.3859548159998667,8778 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.3590825480005151,8779 "spec/graphql/types/packages/pypi/metadatum_type_spec.rb": 0.3916321849992528,8780 "spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb": 0.36083572800089314,8781 "spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb": 0.3479041589998815,8782 "spec/lib/gitlab/kubernetes/pod_cmd_spec.rb": 0.32873032099996635,8783 "spec/tooling/docs/deprecation_handling_spec.rb": 0.5592482900010509,8784 "spec/models/concerns/blocks_unsafe_serialization_spec.rb": 0.3473456489991804,8785 "spec/graphql/types/eventable_type_spec.rb": 0.5146868140000151,8786 "spec/models/clusters/group_spec.rb": 0.3912409749991639,8787 "spec/lib/service_ping/permit_data_categories_spec.rb": 0.46032538899999054,8788 "spec/views/groups/observability/observability.html.haml_spec.rb": 0.3157761809998192,8789 "spec/serializers/namespace_serializer_spec.rb": 0.2763771460013231,8790 "spec/models/synthetic_note_spec.rb": 0.2899280439996801,8791 "spec/services/authorized_project_update/project_access_changed_service_spec.rb": 0.42192487200009055,8792 "spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb": 0.41803950299981807,8793 "spec/graphql/types/packages/conan/metadatum_type_spec.rb": 0.413671231999615,8794 "spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb": 0.351954358000512,8795 "spec/helpers/admin/components_helper_spec.rb": 0.3741865070005588,8796 "spec/graphql/types/ci/project_variable_connection_type_spec.rb": 0.3080611020013748,8797 "spec/lib/gitlab/database/consistency_spec.rb": 0.70266503699895118798}8799Knapsack global time execution for tests: 24m 21s8800Finished in 24 minutes 25 seconds (files took 46.09 seconds to load)88013454 examples, 0 failures8802Randomized with seed 509118803[TEST PROF INFO] Time spent in factories: 10:59.476 (44.8% of total time)8804RSpec exited with 0.8805No examples to retry, congrats!8807Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8808Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8810Uploading artifacts...8811coverage/: found 5 matching artifact files and directories 8812crystalball/: found 2 matching artifact files and directories 8813deprecations/: found 7 matching artifact files and directories 8814knapsack/: found 3 matching artifact files and directories 8815WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8816rspec/: found 14 matching artifact files and directories 8817WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8818log/*.log: found 16 matching artifact files and directories 8819WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138501/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8820WARNING: Retrying... context=artifacts-uploader error=request redirected8821Uploading artifacts as "archive" to coordinator... 201 Created id=4031138501 responseStatus=201 Created token=64_8zz7F8822Uploading artifacts...8823rspec/junit_rspec.xml: found 1 matching artifact files and directories 8824WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138501/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8825WARNING: Retrying... context=artifacts-uploader error=request redirected8826Uploading artifacts as "junit" to coordinator... 201 Created id=4031138501 responseStatus=201 Created token=64_8zz7F8828Job succeeded