There was an error fetching the job.
rspec unit pg13 single-db 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-1680168213-4aa041ba...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 | 30.24 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_6QY8d45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_6QY8d47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_6QY8d49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_6QY8d52Using 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)710Geo DB won't be set up.711$ setup_db_user_only712CREATE ROLE713GRANT714==> 'setup_db_user_only' succeeded in 0 seconds.715$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes716Dropped database 'gitlabhq_test'717Created database 'gitlabhq_test'718==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 34 seconds.719$ setup_db_praefect720SELECT pg_catalog.set_config('search_path', '', false);721CREATE DATABASE praefect_test ENCODING 'UTF8';722==> 'setup_db_praefect' succeeded in 0 seconds.723$ source ./scripts/rspec_helpers.sh724$ run_timed_command "gem install knapsack --no-document"725$ gem install knapsack --no-document726Successfully installed knapsack-4.0.07271 gem installed728$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"729==> 'gem install knapsack --no-document' succeeded in 1 seconds.833$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"834SKIP_FLAKY_TESTS_AUTOMATICALLY: false835RETRY_FAILED_TESTS_IN_NEW_PROCESS: true836KNAPSACK_GENERATE_REPORT: true837FLAKY_RSPEC_GENERATE_REPORT: true838KNAPSACK_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.rb839KNAPSACK_LOG_LEVEL: debug840KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_single-db_19_28_report.json841FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json842FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_single-db_19_28_report.json843NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_single-db_19_28_report.json844SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_single-db_19_28_report.txt845CRYSTALBALL: 846Knapsack node specs:847spec/scripts/lib/glfm/update_example_snapshots_spec.rb848spec/services/todos/destroy/entity_leave_service_spec.rb849spec/lib/gitlab/redis/multi_store_spec.rb850spec/services/git/branch_push_service_spec.rb851spec/lib/gitlab/import_export/attributes_permitter_spec.rb852spec/lib/object_storage/direct_upload_spec.rb853spec/services/issues/relative_position_rebalancing_service_spec.rb854spec/lib/gitlab/diff/position_spec.rb855spec/models/diff_note_spec.rb856spec/lib/gitlab/database/consistency_checker_spec.rb857spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb858spec/lib/gitlab/project_template_spec.rb859spec/lib/gitlab/pagination/offset_pagination_spec.rb860spec/services/packages/maven/find_or_create_package_service_spec.rb861spec/finders/concerns/packages/finder_helper_spec.rb862spec/presenters/merge_request_presenter_spec.rb863spec/lib/gitlab/database/batch_count_spec.rb864spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb865spec/models/concerns/subscribable_spec.rb866spec/lib/gitlab/ci/status/external/factory_spec.rb867spec/services/ci/play_build_service_spec.rb868spec/lib/gitlab/ci/variables/collection_spec.rb869spec/services/issues/export_csv_service_spec.rb870spec/models/wiki_page/meta_spec.rb871spec/lib/gitlab/ci/ansi2json/style_spec.rb872spec/serializers/diff_file_entity_spec.rb873spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb874spec/lib/gitlab/blob_helper_spec.rb875spec/finders/releases_finder_spec.rb876spec/lib/gitlab/issues/rebalancing/state_spec.rb877spec/lib/gitlab/redis/sessions_spec.rb878spec/lib/banzai/filter/reference_redactor_filter_spec.rb879spec/services/projects/protect_default_branch_service_spec.rb880spec/services/issues/reopen_service_spec.rb881spec/helpers/projects/project_members_helper_spec.rb882spec/bin/audit_event_type_spec.rb883spec/services/todos/destroy/unauthorized_features_service_spec.rb884spec/finders/pending_todos_finder_spec.rb885spec/services/upload_service_spec.rb886spec/presenters/project_clusterable_presenter_spec.rb887spec/services/deployments/older_deployments_drop_service_spec.rb888spec/lib/gitlab/chat/command_spec.rb889spec/workers/prune_old_events_worker_spec.rb890spec/lib/gitlab/template_parser/ast_spec.rb891spec/lib/gitlab/metrics/dashboard/finder_spec.rb892spec/lib/gitlab/gitaly_client/repository_service_spec.rb893spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb894spec/finders/packages/conan/package_finder_spec.rb895spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb896spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb897spec/lib/gitlab/gitaly_client/blob_service_spec.rb898spec/helpers/nav_helper_spec.rb899spec/lib/error_tracking/sentry_client/projects_spec.rb900spec/services/tags/create_service_spec.rb901spec/lib/gitlab/ci/config/entry/trigger_spec.rb902spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb903spec/models/concerns/project_features_compatibility_spec.rb904spec/lib/gitlab/user_access_snippet_spec.rb905spec/services/merge_requests/mergeability/run_checks_service_spec.rb906spec/lib/gitlab/auth/ldap/user_spec.rb907spec/graphql/types/user_merge_request_interaction_type_spec.rb908spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb909spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb910spec/lib/gitlab/git/attributes_parser_spec.rb911spec/models/concerns/ci/has_ref_spec.rb912spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb913spec/finders/user_finder_spec.rb914spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb915spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb916spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb917spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb918spec/serializers/build_action_entity_spec.rb919spec/lib/gitlab/chat/responder/slack_spec.rb920spec/lib/gitlab/ci/components/instance_path_spec.rb921spec/lib/gitlab/ci/build/policy/variables_spec.rb922spec/lib/gitlab/ci/reports/test_report_spec.rb923spec/lib/gitlab/utils/email_spec.rb924spec/lib/gitlab/search/params_spec.rb925spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb926spec/services/ci/create_pipeline_service/rate_limit_spec.rb927spec/lib/gitlab/jira_import/labels_importer_spec.rb928spec/lib/sidebars/projects/menus/project_information_menu_spec.rb929spec/graphql/resolvers/design_management/design_resolver_spec.rb930spec/services/files/base_service_spec.rb931spec/lib/gitlab/auth/ldap/adapter_spec.rb932spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb933spec/lib/gitlab/ci/pipeline/chain/build_spec.rb934spec/models/packages/event_spec.rb935spec/services/spam/akismet_service_spec.rb936spec/graphql/resolvers/paginated_tree_resolver_spec.rb937spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb938spec/models/concerns/sensitive_serializable_hash_spec.rb939spec/models/legacy_diff_discussion_spec.rb940spec/services/packages/cleanup/update_policy_service_spec.rb941spec/models/merge_request/diff_commit_user_spec.rb942spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb943spec/graphql/resolvers/project_pipeline_resolver_spec.rb944spec/rack_servers/puma_spec.rb945spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb946spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb947spec/serializers/deployment_serializer_spec.rb948spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb949spec/graphql/resolvers/board_resolver_spec.rb950spec/services/import/fogbugz_service_spec.rb951spec/services/integrations/propagate_service_spec.rb952spec/workers/gitlab/jira_import/import_issue_worker_spec.rb953spec/services/milestones/create_service_spec.rb954spec/workers/ci/pending_builds/update_group_worker_spec.rb955spec/services/jira_import/server_users_mapper_service_spec.rb956spec/models/aws/role_spec.rb957spec/rubocop/cop/search/namespaced_class_spec.rb958spec/services/projects/lfs_pointers/lfs_import_service_spec.rb959spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb960spec/lib/gitlab/data_builder/wiki_page_spec.rb961spec/policies/terraform/state_version_policy_spec.rb962spec/services/keys/revoke_service_spec.rb963spec/tasks/gitlab/packages/migrate_rake_spec.rb964spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb965spec/lib/api/entities/clusters/agent_authorization_spec.rb966spec/serializers/ci/dag_job_group_entity_spec.rb967spec/lib/gitlab/hook_data/group_builder_spec.rb968spec/tooling/danger/product_intelligence_spec.rb969spec/lib/gitlab/git/repository_cleaner_spec.rb970spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb971spec/services/environments/stop_stale_service_spec.rb972spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb973spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb974spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb975spec/lib/gitlab/diff/parallel_diff_spec.rb976spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb977spec/lib/gitlab/github_import/importer/events/renamed_spec.rb978spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb979spec/lib/gitlab/manifest_import/manifest_spec.rb980spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb981spec/graphql/types/group_invitation_type_spec.rb982spec/models/concerns/ignorable_columns_spec.rb983spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb984spec/lib/banzai/cross_project_reference_spec.rb985spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb986spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb987spec/workers/pages_domain_ssl_renewal_worker_spec.rb988spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb989spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb990spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb991spec/lib/gitlab/import_export/avatar_restorer_spec.rb992spec/services/design_management/copy_design_collection/queue_service_spec.rb993spec/lib/sidebars/groups/menus/observability_menu_spec.rb994spec/services/webauthn/authenticate_service_spec.rb995spec/services/cohorts_service_spec.rb996spec/models/clusters/agents/project_authorization_spec.rb997spec/helpers/gitlab_script_tag_helper_spec.rb998spec/services/packages/go/sync_packages_service_spec.rb999spec/services/packages/remove_tag_service_spec.rb1000spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb1001spec/models/raw_usage_data_spec.rb1002spec/validators/nested_attributes_duplicates_validator_spec.rb1003spec/workers/purge_dependency_proxy_cache_worker_spec.rb1004spec/models/concerns/editable_spec.rb1005spec/services/projects/count_service_spec.rb1006spec/workers/admin_email_worker_spec.rb1007spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb1008spec/lib/gitlab/chat/responder_spec.rb1009spec/helpers/recaptcha_helper_spec.rb1010spec/models/ci/runner_version_spec.rb1011spec/finders/packages/composer/packages_finder_spec.rb1012spec/helpers/startupjs_helper_spec.rb1013spec/lib/peek/views/redis_detailed_spec.rb1014spec/models/user_agent_detail_spec.rb1015spec/graphql/mutations/boards/update_spec.rb1016spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb1017spec/lib/gitlab/ci/build/cache_spec.rb1018spec/lib/gitlab/cycle_analytics/updater_spec.rb1019spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb1020spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb1021spec/lib/gitlab/checks/force_push_spec.rb1022spec/rubocop/cop/code_reuse/service_class_spec.rb1023spec/serializers/integrations/event_entity_spec.rb1024spec/lib/gitlab/kubernetes/ingress_spec.rb1025spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb1026spec/models/concerns/as_cte_spec.rb1027spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb1028spec/graphql/types/container_repository_type_spec.rb1029spec/initializers/google_cloud_profiler_spec.rb1030spec/lib/gitlab/config/entry/configurable_spec.rb1031spec/services/projects/batch_open_merge_requests_count_service_spec.rb1032spec/lib/gitlab/slash_commands/presenters/run_spec.rb1033spec/lib/api/entities/clusters/agent_spec.rb1034spec/lib/gitlab/ci/config/entry/publish_spec.rb1035spec/models/blob_viewer/route_map_spec.rb1036spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1037spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb1038spec/policies/packages/package_policy_spec.rb1039spec/models/container_registry/data_repair_detail_spec.rb1040spec/lib/sidebars/groups/super_sidebar_panel_spec.rb1041spec/lib/bulk_imports/clients/graphql_spec.rb1042spec/workers/disallow_two_factor_for_group_worker_spec.rb1043spec/lib/gitlab/github_import/project_relation_type_spec.rb1044spec/graphql/types/commit_signatures/x509_signature_type_spec.rb1045spec/lib/banzai/filter/image_lazy_load_filter_spec.rb1046spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb1047spec/lib/gitlab/health_checks/gitaly_check_spec.rb1048spec/rubocop/cop/rspec/any_instance_of_spec.rb1049spec/serializers/group_link/group_group_link_serializer_spec.rb1050spec/initializers/sawyer_patch_spec.rb1051spec/helpers/projects/settings/branch_rules_helper_spec.rb1052spec/validators/gitlab/zoom_url_validator_spec.rb1053spec/lib/gitlab/database/async_constraints/validators_spec.rb1054spec/lib/system_check/incoming_email_check_spec.rb1055spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb1056spec/lib/gitlab/import_export/attribute_configuration_spec.rb1057spec/lib/gitlab/phabricator_import/representation/user_spec.rb1058spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb1059spec/graphql/types/packages/pypi/metadatum_type_spec.rb1060spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb1061spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb1062spec/lib/gitlab/kubernetes/pod_cmd_spec.rb1063spec/tooling/docs/deprecation_handling_spec.rb1064spec/models/concerns/blocks_unsafe_serialization_spec.rb1065spec/graphql/types/eventable_type_spec.rb1066spec/models/clusters/group_spec.rb1067spec/lib/service_ping/permit_data_categories_spec.rb1068spec/views/groups/observability/observability.html.haml_spec.rb1069spec/serializers/namespace_serializer_spec.rb1070spec/models/synthetic_note_spec.rb1071spec/services/authorized_project_update/project_access_changed_service_spec.rb1072spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1073spec/graphql/types/packages/conan/metadatum_type_spec.rb1074spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb1075spec/helpers/admin/components_helper_spec.rb1076spec/graphql/types/ci/project_variable_connection_type_spec.rb1077spec/lib/gitlab/database/consistency_spec.rb1078Filter specs:1079Running specs:1080Running all node tests without filter1081spec/scripts/lib/glfm/update_example_snapshots_spec.rb1082spec/services/todos/destroy/entity_leave_service_spec.rb1083spec/lib/gitlab/redis/multi_store_spec.rb1084spec/services/git/branch_push_service_spec.rb1085spec/lib/gitlab/import_export/attributes_permitter_spec.rb1086spec/lib/object_storage/direct_upload_spec.rb1087spec/services/issues/relative_position_rebalancing_service_spec.rb1088spec/lib/gitlab/diff/position_spec.rb1089spec/models/diff_note_spec.rb1090spec/lib/gitlab/database/consistency_checker_spec.rb1091spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb1092spec/lib/gitlab/project_template_spec.rb1093spec/lib/gitlab/pagination/offset_pagination_spec.rb1094spec/services/packages/maven/find_or_create_package_service_spec.rb1095spec/finders/concerns/packages/finder_helper_spec.rb1096spec/presenters/merge_request_presenter_spec.rb1097spec/lib/gitlab/database/batch_count_spec.rb1098spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb1099spec/models/concerns/subscribable_spec.rb1100spec/lib/gitlab/ci/status/external/factory_spec.rb1101spec/services/ci/play_build_service_spec.rb1102spec/lib/gitlab/ci/variables/collection_spec.rb1103spec/services/issues/export_csv_service_spec.rb1104spec/models/wiki_page/meta_spec.rb1105spec/lib/gitlab/ci/ansi2json/style_spec.rb1106spec/serializers/diff_file_entity_spec.rb1107spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb1108spec/lib/gitlab/blob_helper_spec.rb1109spec/finders/releases_finder_spec.rb1110spec/lib/gitlab/issues/rebalancing/state_spec.rb1111spec/lib/gitlab/redis/sessions_spec.rb1112spec/lib/banzai/filter/reference_redactor_filter_spec.rb1113spec/services/projects/protect_default_branch_service_spec.rb1114spec/services/issues/reopen_service_spec.rb1115spec/helpers/projects/project_members_helper_spec.rb1116spec/bin/audit_event_type_spec.rb1117spec/services/todos/destroy/unauthorized_features_service_spec.rb1118spec/finders/pending_todos_finder_spec.rb1119spec/services/upload_service_spec.rb1120spec/presenters/project_clusterable_presenter_spec.rb1121spec/services/deployments/older_deployments_drop_service_spec.rb1122spec/lib/gitlab/chat/command_spec.rb1123spec/workers/prune_old_events_worker_spec.rb1124spec/lib/gitlab/template_parser/ast_spec.rb1125spec/lib/gitlab/metrics/dashboard/finder_spec.rb1126spec/lib/gitlab/gitaly_client/repository_service_spec.rb1127spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb1128spec/finders/packages/conan/package_finder_spec.rb1129spec/lib/gitlab/background_migration/rename_task_system_note_to_checklist_item_spec.rb1130spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb1131spec/lib/gitlab/gitaly_client/blob_service_spec.rb1132spec/helpers/nav_helper_spec.rb1133spec/lib/error_tracking/sentry_client/projects_spec.rb1134spec/services/tags/create_service_spec.rb1135spec/lib/gitlab/ci/config/entry/trigger_spec.rb1136spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb1137spec/models/concerns/project_features_compatibility_spec.rb1138spec/lib/gitlab/user_access_snippet_spec.rb1139spec/services/merge_requests/mergeability/run_checks_service_spec.rb1140spec/lib/gitlab/auth/ldap/user_spec.rb1141spec/graphql/types/user_merge_request_interaction_type_spec.rb1142spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb1143spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb1144spec/lib/gitlab/git/attributes_parser_spec.rb1145spec/models/concerns/ci/has_ref_spec.rb1146spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb1147spec/finders/user_finder_spec.rb1148spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb1149spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb1150spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb1151spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb1152spec/serializers/build_action_entity_spec.rb1153spec/lib/gitlab/chat/responder/slack_spec.rb1154spec/lib/gitlab/ci/components/instance_path_spec.rb1155spec/lib/gitlab/ci/build/policy/variables_spec.rb1156spec/lib/gitlab/ci/reports/test_report_spec.rb1157spec/lib/gitlab/utils/email_spec.rb1158spec/lib/gitlab/search/params_spec.rb1159spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb1160spec/services/ci/create_pipeline_service/rate_limit_spec.rb1161spec/lib/gitlab/jira_import/labels_importer_spec.rb1162spec/lib/sidebars/projects/menus/project_information_menu_spec.rb1163spec/graphql/resolvers/design_management/design_resolver_spec.rb1164spec/services/files/base_service_spec.rb1165spec/lib/gitlab/auth/ldap/adapter_spec.rb1166spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb1167spec/lib/gitlab/ci/pipeline/chain/build_spec.rb1168spec/models/packages/event_spec.rb1169spec/services/spam/akismet_service_spec.rb1170spec/graphql/resolvers/paginated_tree_resolver_spec.rb1171spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb1172spec/models/concerns/sensitive_serializable_hash_spec.rb1173spec/models/legacy_diff_discussion_spec.rb1174spec/services/packages/cleanup/update_policy_service_spec.rb1175spec/models/merge_request/diff_commit_user_spec.rb1176spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb1177spec/graphql/resolvers/project_pipeline_resolver_spec.rb1178spec/rack_servers/puma_spec.rb1179spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb1180spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb1181spec/serializers/deployment_serializer_spec.rb1182spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb1183spec/graphql/resolvers/board_resolver_spec.rb1184spec/services/import/fogbugz_service_spec.rb1185spec/services/integrations/propagate_service_spec.rb1186spec/workers/gitlab/jira_import/import_issue_worker_spec.rb1187spec/services/milestones/create_service_spec.rb1188spec/workers/ci/pending_builds/update_group_worker_spec.rb1189spec/services/jira_import/server_users_mapper_service_spec.rb1190spec/models/aws/role_spec.rb1191spec/rubocop/cop/search/namespaced_class_spec.rb1192spec/services/projects/lfs_pointers/lfs_import_service_spec.rb1193spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb1194spec/lib/gitlab/data_builder/wiki_page_spec.rb1195spec/policies/terraform/state_version_policy_spec.rb1196spec/services/keys/revoke_service_spec.rb1197spec/tasks/gitlab/packages/migrate_rake_spec.rb1198spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb1199spec/lib/api/entities/clusters/agent_authorization_spec.rb1200spec/serializers/ci/dag_job_group_entity_spec.rb1201spec/lib/gitlab/hook_data/group_builder_spec.rb1202spec/tooling/danger/product_intelligence_spec.rb1203spec/lib/gitlab/git/repository_cleaner_spec.rb1204spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb1205spec/services/environments/stop_stale_service_spec.rb1206spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb1207spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb1208spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb1209spec/lib/gitlab/diff/parallel_diff_spec.rb1210spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb1211spec/lib/gitlab/github_import/importer/events/renamed_spec.rb1212spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb1213spec/lib/gitlab/manifest_import/manifest_spec.rb1214spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb1215spec/graphql/types/group_invitation_type_spec.rb1216spec/models/concerns/ignorable_columns_spec.rb1217spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb1218spec/lib/banzai/cross_project_reference_spec.rb1219spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb1220spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb1221spec/workers/pages_domain_ssl_renewal_worker_spec.rb1222spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb1223spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb1224spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb1225spec/lib/gitlab/import_export/avatar_restorer_spec.rb1226spec/services/design_management/copy_design_collection/queue_service_spec.rb1227spec/lib/sidebars/groups/menus/observability_menu_spec.rb1228spec/services/webauthn/authenticate_service_spec.rb1229spec/services/cohorts_service_spec.rb1230spec/models/clusters/agents/project_authorization_spec.rb1231spec/helpers/gitlab_script_tag_helper_spec.rb1232spec/services/packages/go/sync_packages_service_spec.rb1233spec/services/packages/remove_tag_service_spec.rb1234spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb1235spec/models/raw_usage_data_spec.rb1236spec/validators/nested_attributes_duplicates_validator_spec.rb1237spec/workers/purge_dependency_proxy_cache_worker_spec.rb1238spec/models/concerns/editable_spec.rb1239spec/services/projects/count_service_spec.rb1240spec/workers/admin_email_worker_spec.rb1241spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb1242spec/lib/gitlab/chat/responder_spec.rb1243spec/helpers/recaptcha_helper_spec.rb1244spec/models/ci/runner_version_spec.rb1245spec/finders/packages/composer/packages_finder_spec.rb1246spec/helpers/startupjs_helper_spec.rb1247spec/lib/peek/views/redis_detailed_spec.rb1248spec/models/user_agent_detail_spec.rb1249spec/graphql/mutations/boards/update_spec.rb1250spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb1251spec/lib/gitlab/ci/build/cache_spec.rb1252spec/lib/gitlab/cycle_analytics/updater_spec.rb1253spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb1254spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb1255spec/lib/gitlab/checks/force_push_spec.rb1256spec/rubocop/cop/code_reuse/service_class_spec.rb1257spec/serializers/integrations/event_entity_spec.rb1258spec/lib/gitlab/kubernetes/ingress_spec.rb1259spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb1260spec/models/concerns/as_cte_spec.rb1261spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb1262spec/graphql/types/container_repository_type_spec.rb1263spec/initializers/google_cloud_profiler_spec.rb1264spec/lib/gitlab/config/entry/configurable_spec.rb1265spec/services/projects/batch_open_merge_requests_count_service_spec.rb1266spec/lib/gitlab/slash_commands/presenters/run_spec.rb1267spec/lib/api/entities/clusters/agent_spec.rb1268spec/lib/gitlab/ci/config/entry/publish_spec.rb1269spec/models/blob_viewer/route_map_spec.rb1270spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb1271spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb1272spec/policies/packages/package_policy_spec.rb1273spec/models/container_registry/data_repair_detail_spec.rb1274spec/lib/sidebars/groups/super_sidebar_panel_spec.rb1275spec/lib/bulk_imports/clients/graphql_spec.rb1276spec/workers/disallow_two_factor_for_group_worker_spec.rb1277spec/lib/gitlab/github_import/project_relation_type_spec.rb1278spec/graphql/types/commit_signatures/x509_signature_type_spec.rb1279spec/lib/banzai/filter/image_lazy_load_filter_spec.rb1280spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb1281spec/lib/gitlab/health_checks/gitaly_check_spec.rb1282spec/rubocop/cop/rspec/any_instance_of_spec.rb1283spec/serializers/group_link/group_group_link_serializer_spec.rb1284spec/initializers/sawyer_patch_spec.rb1285spec/helpers/projects/settings/branch_rules_helper_spec.rb1286spec/validators/gitlab/zoom_url_validator_spec.rb1287spec/lib/gitlab/database/async_constraints/validators_spec.rb1288spec/lib/system_check/incoming_email_check_spec.rb1289spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb1290spec/lib/gitlab/import_export/attribute_configuration_spec.rb1291spec/lib/gitlab/phabricator_import/representation/user_spec.rb1292spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb1293spec/graphql/types/packages/pypi/metadatum_type_spec.rb1294spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb1295spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb1296spec/lib/gitlab/kubernetes/pod_cmd_spec.rb1297spec/tooling/docs/deprecation_handling_spec.rb1298spec/models/concerns/blocks_unsafe_serialization_spec.rb1299spec/graphql/types/eventable_type_spec.rb1300spec/models/clusters/group_spec.rb1301spec/lib/service_ping/permit_data_categories_spec.rb1302spec/views/groups/observability/observability.html.haml_spec.rb1303spec/serializers/namespace_serializer_spec.rb1304spec/models/synthetic_note_spec.rb1305spec/services/authorized_project_update/project_access_changed_service_spec.rb1306spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1307spec/graphql/types/packages/conan/metadatum_type_spec.rb1308spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb1309spec/helpers/admin/components_helper_spec.rb1310spec/graphql/types/ci/project_variable_connection_type_spec.rb1311spec/lib/gitlab/database/consistency_spec.rb1312Running all node tests without filter1313Running all node tests without filter1314Running 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!1315Run options: exclude {:quarantine=>true, :level=>"background_migration"}1316Test environment set up in 0.63201316 seconds1317Glfm::UpdateExampleSnapshots#process1318 # order random1319 writing markdown.yml1320 writes the correct content1321 with full processing of static and WYSIWYG HTML1322 manually-curated input specification config files1323 can be empty1324 writing html.yml and prosemirror_json.yml1325 writes the correct content1326 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 glfm_example_status.yml1336 when skip_update_example_snapshots entry is truthy1337 still writes the example to examples_index.yml1338 still writes the example to markdown.yml1339 when any other skip_update_example_snapshot_* is also truthy1340 raises an error1341Todos::Destroy::EntityLeaveService1342 #execute1343 updating a Project1344 when project is private1345 when user is not a member of the project1346 removes project todos for the provided user1347 access permissions1348 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1349 behaves like using different access permissions1350 is expected not to change `Todo.count`1351 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1352 behaves like using different access permissions1353 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:44:31.349413769 +0000", updated_at: "2023-03-30 11:44:31.349413769 +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:44:30.352803457 +0000", updated_at: "2023-03-30 11:44:30.352803457 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1354 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1355 behaves like using different access permissions1356 is expected not to change `Todo.count`1357 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1358 behaves like using different access permissions1359 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:44:35.542951852 +0000", updated_at: "2023-03-30 11:44:35.542951852 +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:44:34.595013686 +0000", updated_at: "2023-03-30 11:44:34.595013686 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1360 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1361 behaves like using different access permissions1362 is expected not to change `Todo.count`1363 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1364 behaves like using different access permissions1365 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:44:39.796005410 +0000", updated_at: "2023-03-30 11:44:39.796005410 +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:44:38.853580434 +0000", updated_at: "2023-03-30 11:44:38.853580434 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1366 when project is private in an internal/public group1367 when user is not a member of the project1368 removes project todos for the provided user1369 access permissions1370 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1371 behaves like using different access permissions1372 is expected not to change `Todo.count`1373 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1374 behaves like using different access permissions1375 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:44:47.450663664 +0000", updated_at: "2023-03-30 11:44:47.450663664 +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:44:46.511971697 +0000", updated_at: "2023-03-30 11:44:46.511971697 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1376 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1377 behaves like using different access permissions1378 is expected not to change `Todo.count`1379 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1380 behaves like using different access permissions1381 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:44:52.116710030 +0000", updated_at: "2023-03-30 11:44:52.116710030 +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:44:51.146333376 +0000", updated_at: "2023-03-30 11:44:51.146333376 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1382 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1383 behaves like using different access permissions1384 is expected not to change `Todo.count`1385 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1386 behaves like using different access permissions1387 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:44:56.243769439 +0000", updated_at: "2023-03-30 11:44:56.243769439 +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:44:55.312271311 +0000", updated_at: "2023-03-30 11:44:55.312271311 +0000", note_id: nil, commit_id: nil, group_id: 73, resolved_by_action: nil>1388 when project is not private1389 enqueues the PrivateFeaturesWorker1390 confidential issues1391 when a user is not an author of confidential issue1392 behaves like removes confidential issues and internal notes todos1393 is expected to change `Todo.count` from 7 to 51394 when a user is an author of confidential issue1395 behaves like removes only internal notes todos1396 is expected to change `Todo.count` from 7 to 61397 when a user is an assignee of confidential issue1398 behaves like removes only internal notes todos1399 is expected to change `Todo.count` from 7 to 61400 access permissions1401 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1402 behaves like using different access permissions1403 is expected not to change `Todo.count`1404 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1405 behaves like using different access permissions1406 is expected to change `Todo.count` from 7 to 51407 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1408 behaves like using different access permissions1409 is expected not to change `Todo.count`1410 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1411 behaves like using different access permissions1412 is expected to change `Todo.count` from 7 to 51413 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1414 behaves like using different access permissions1415 is expected not to change `Todo.count`1416 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1417 behaves like using different access permissions1418 is expected to change `Todo.count` from 7 to 51419 feature visibility check1420 when issues are visible only to project members1421 removes only users issue todos1422 updating a Group1423 when group is private1424 when a user leaves a group1425 removes group and subproject todos for the user1426 access permissions1427 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1428 behaves like using different access permissions1429 is expected not to change `Todo.count`1430 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1431 behaves like using different access permissions1432 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:45:30.583376383 +0000", updated_at: "2023-03-30 11:45:30.583376383 +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:45:29.598977609 +0000", updated_at: "2023-03-30 11:45:29.598977609 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1433 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1434 behaves like using different access permissions1435 is expected not to change `Todo.count`1436 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1437 behaves like using different access permissions1438 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:45:34.778946996 +0000", updated_at: "2023-03-30 11:45:34.778946996 +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:45:33.801243742 +0000", updated_at: "2023-03-30 11:45:33.801243742 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1439 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1440 behaves like using different access permissions1441 is expected not to change `Todo.count`1442 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1443 behaves like using different access permissions1444 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:45:39.723939811 +0000", updated_at: "2023-03-30 11:45:39.723939811 +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:45:38.789808753 +0000", updated_at: "2023-03-30 11:45:38.789808753 +0000", note_id: nil, commit_id: nil, group_id: 13, resolved_by_action: nil>1445 with nested groups1446 when the user is not a member of any groups/projects1447 removes todos for the user including subprojects todos1448 when the user is member of a parent group1449 behaves like does not remove any todos1450 is expected not to change `Todo.count`1451 when the user is member of a subgroup1452 does not remove group and subproject todos1453 when the user is member of a child project1454 does not remove subproject and group todos1455 when group is not private1456 enqueues the PrivateFeaturesWorker1457 access permissions1458 group_access: nil, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1459 behaves like using different access permissions1460 is expected to change `Todo.count` from 7 to 51461 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1462 behaves like using different access permissions1463 is expected not to change `Todo.count`1464 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1465 behaves like using different access permissions1466 is expected to change `Todo.count` from 7 to 51467 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1468 behaves like using different access permissions1469 is expected not to change `Todo.count`1470 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1471 behaves like using different access permissions1472 is expected to change `Todo.count` from 7 to 51473 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1474 behaves like using different access permissions1475 is expected not to change `Todo.count`1476 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1477 behaves like using different access permissions1478 is expected to change `Todo.count` from 7 to 51479 when entity type is not valid1480 raises an exception1481 when entity was not found1482 does not remove any todos1483Gitlab::Redis::MultiStore1484 when primary_store is nil1485 fails with exception1486 when secondary_store is nil1487 fails with exception1488 when instance_name is nil1489 fails with exception1490 when primary_store is not a ::Redis instance1491 fails with exception1492 when primary_store is a ::Redis::Namespace instance1493 fails with exception1494 when secondary_store is not a ::Redis instance1495 fails with exception1496 when secondary_store is a ::Redis::Namespace instance1497 fails with exception1498 with READ redis commands1499 execute :get command1500 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteGetCommand1501 when reading from the primary is successful1502 returns the correct value1503 returns the correct value1504 when reading from default instance is raising an exception1505 logs the exception and re-raises the error1506 when reading from empty default instance1507 does not call the fallback store1508 when the command is executed within pipelined block1509 is executed only 1 time on primary and secondary instance1510 with both primary and secondary store using same redis instance1511 behaves like secondary store1512 execute on the secondary instance1513 returns the correct value1514 does not execute on the primary store1515 when use_primary_and_secondary_stores feature flag is disabled1516 when using secondary store as default1517DEPRECATION 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)1518DEPRECATION 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)1519 executes only on secondary redis store1520 when using primary store as default1521DEPRECATION 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)1522 executes only on primary redis store1523 execute :mget command1524 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMgetCommand1525 when reading from the primary is successful1526 returns the correct value1527 returns the correct value1528 when reading from default instance is raising an exception1529 logs the exception and re-raises the error1530 when reading from empty default instance1531 does not call the fallback store1532 when the command is executed within pipelined block1533 is executed only 1 time on primary and secondary instance1534 with both primary and secondary store using same redis instance1535 behaves like secondary store1536 execute on the secondary instance1537 returns the correct value1538 does not execute on the primary store1539 when use_primary_and_secondary_stores feature flag is disabled1540 when using secondary store as default1541DEPRECATION 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)1542DEPRECATION 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)1543 executes only on secondary redis store1544 when using primary store as default1545DEPRECATION 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)1546 executes only on primary redis store1547 execute :mget with block1548 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMgetWithBlock1549 when reading from the primary is successful1550 returns the correct value1551 returns the correct value1552 when reading from default instance is raising an exception1553 logs the exception and re-raises the error1554 when reading from empty default instance1555 does not call the fallback store1556 when the command is executed within pipelined block1557 is executed only 1 time on primary and secondary instance1558 when block is provided1559 only default store yields to the block1560 only default store to execute1561 returns the correct value1562 with both primary and secondary store using same redis instance1563 behaves like secondary store1564 execute on the secondary instance1565 returns the correct value1566 does not execute on the primary store1567 when use_primary_and_secondary_stores feature flag is disabled1568 when using secondary store as default1569DEPRECATION 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)1570DEPRECATION 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)1571 executes only on secondary redis store1572 when using primary store as default1573DEPRECATION 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)1574 executes only on primary redis store1575 execute :smembers command1576 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSmembersCommand1577 when reading from the primary is successful1578 returns the correct value1579 returns the correct value1580 when reading from default instance is raising an exception1581 logs the exception and re-raises the error1582 when reading from empty default instance1583 does not call the fallback store1584 when the command is executed within pipelined block1585 is executed only 1 time on primary and secondary instance1586 with both primary and secondary store using same redis instance1587 behaves like secondary store1588 execute on the secondary instance1589 returns the correct value1590 does not execute on the primary store1591 when use_primary_and_secondary_stores feature flag is disabled1592 when using secondary store as default1593DEPRECATION 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)1594DEPRECATION 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)1595 executes only on secondary redis store1596 when using primary store as default1597DEPRECATION 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)1598 executes only on primary redis store1599 execute :scard command1600 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteScardCommand1601 when reading from the primary is successful1602 returns the correct value1603 returns the correct value1604 when reading from default instance is raising an exception1605 logs the exception and re-raises the error1606 when reading from empty default instance1607 does not call the fallback store1608 when the command is executed within pipelined block1609 is executed only 1 time on primary and secondary instance1610 with both primary and secondary store using same redis instance1611 behaves like secondary store1612 execute on the secondary instance1613 returns the correct value1614 does not execute on the primary store1615 when use_primary_and_secondary_stores feature flag is disabled1616 when using secondary store as default1617DEPRECATION 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)1618DEPRECATION 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)1619 executes only on secondary redis store1620 when using primary store as default1621DEPRECATION 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)1622 executes only on primary redis store1623 execute :sismember command1624 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSismemberCommand1625 when reading from the primary is successful1626 returns the correct value1627 returns the correct value1628 when reading from default instance is raising an exception1629 logs the exception and re-raises the error1630 when reading from empty default instance1631 does not call the fallback store1632 when the command is executed within pipelined block1633 is executed only 1 time on primary and secondary instance1634 with both primary and secondary store using same redis instance1635 behaves like secondary store1636 execute on the secondary instance1637 returns the correct value1638 does not execute on the primary store1639 when use_primary_and_secondary_stores feature flag is disabled1640 when using secondary store as default1641DEPRECATION 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)1642DEPRECATION 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)1643 executes only on secondary redis store1644 when using primary store as default1645DEPRECATION 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)1646 executes only on primary redis store1647 execute :exists command1648 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteExistsCommand1649 when reading from the primary is successful1650 returns the correct value1651 returns the correct value1652 when reading from default instance is raising an exception1653 logs the exception and re-raises the error1654 when reading from empty default instance1655 does not call the fallback store1656 when the command is executed within pipelined block1657 is executed only 1 time on primary and secondary instance1658 with both primary and secondary store using same redis instance1659 behaves like secondary store1660 execute on the secondary instance1661 returns the correct value1662 does not execute on the primary store1663 when use_primary_and_secondary_stores feature flag is disabled1664 when using secondary store as default1665DEPRECATION 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)1666DEPRECATION 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)1667 executes only on secondary redis store1668 when using primary store as default1669DEPRECATION 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)1670 executes only on primary redis store1671 execute :exists? command1672 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteExistsCommand_21673 when reading from the primary is successful1674 returns the correct value1675 returns the correct value1676 when reading from default instance is raising an exception1677 logs the exception and re-raises the error1678 when reading from empty default instance1679 does not call the fallback store1680 when the command is executed within pipelined block1681 is executed only 1 time on primary and secondary instance1682 with both primary and secondary store using same redis instance1683 behaves like secondary store1684 execute on the secondary instance1685 returns the correct value1686 does not execute on the primary store1687 when use_primary_and_secondary_stores feature flag is disabled1688 when using secondary store as default1689DEPRECATION 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)1690DEPRECATION 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)1691 executes only on secondary redis store1692 when using primary store as default1693DEPRECATION 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)1694 executes only on primary redis store1695 execute :hget command1696 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHgetCommand1697 when reading from the primary is successful1698 returns the correct value1699 returns the correct value1700 when reading from default instance is raising an exception1701 logs the exception and re-raises the error1702 when reading from empty default instance1703 does not call the fallback store1704 when the command is executed within pipelined block1705 is executed only 1 time on primary and secondary instance1706 with both primary and secondary store using same redis instance1707 behaves like secondary store1708 execute on the secondary instance1709 returns the correct value1710 does not execute on the primary store1711 when use_primary_and_secondary_stores feature flag is disabled1712 when using secondary store as default1713DEPRECATION 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)1714DEPRECATION 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)1715 executes only on secondary redis store1716 when using primary store as default1717DEPRECATION 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)1718 executes only on primary redis store1719 execute :hlen command1720 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHlenCommand1721 when reading from the primary is successful1722 returns the correct value1723 returns the correct value1724 when reading from default instance is raising an exception1725 logs the exception and re-raises the error1726 when reading from empty default instance1727 does not call the fallback store1728 when the command is executed within pipelined block1729 is executed only 1 time on primary and secondary instance1730 with both primary and secondary store using same redis instance1731 behaves like secondary store1732 execute on the secondary instance1733 returns the correct value1734 does not execute on the primary store1735 when use_primary_and_secondary_stores feature flag is disabled1736 when using secondary store as default1737DEPRECATION 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)1738DEPRECATION 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)1739 executes only on secondary redis store1740 when using primary store as default1741DEPRECATION 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)1742 executes only on primary redis store1743 execute :hgetall command1744 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHgetallCommand1745 when reading from the primary is successful1746 returns the correct value1747 returns the correct value1748 when reading from default instance is raising an exception1749 logs the exception and re-raises the error1750 when reading from empty default instance1751 does not call the fallback store1752 when the command is executed within pipelined block1753 is executed only 1 time on primary and secondary instance1754 with both primary and secondary store using same redis instance1755 behaves like secondary store1756 execute on the secondary instance1757 returns the correct value1758 does not execute on the primary store1759 when use_primary_and_secondary_stores feature flag is disabled1760 when using secondary store as default1761DEPRECATION 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)1762DEPRECATION 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)1763 executes only on secondary redis store1764 when using primary store as default1765DEPRECATION 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)1766 executes only on primary redis store1767 execute :hexists command1768 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHexistsCommand1769 when reading from the primary is successful1770 returns the correct value1771 returns the correct value1772 when reading from default instance is raising an exception1773 logs the exception and re-raises the error1774 when reading from empty default instance1775 does not call the fallback store1776 when the command is executed within pipelined block1777 is executed only 1 time on primary and secondary instance1778 with both primary and secondary store using same redis instance1779 behaves like secondary store1780 execute on the secondary instance1781 returns the correct value1782 does not execute on the primary store1783 when use_primary_and_secondary_stores feature flag is disabled1784 when using secondary store as default1785DEPRECATION 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)1786DEPRECATION 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)1787 executes only on secondary redis store1788 when using primary store as default1789DEPRECATION 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)1790 executes only on primary redis store1791 execute :hmget command1792 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHmgetCommand1793 when reading from the primary is successful1794 returns the correct value1795 returns the correct value1796 when reading from default instance is raising an exception1797 logs the exception and re-raises the error1798 when reading from empty default instance1799 does not call the fallback store1800 when the command is executed within pipelined block1801 is executed only 1 time on primary and secondary instance1802 with both primary and secondary store using same redis instance1803 behaves like secondary store1804 execute on the secondary instance1805 returns the correct value1806 does not execute on the primary store1807 when use_primary_and_secondary_stores feature flag is disabled1808 when using secondary store as default1809DEPRECATION 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)1810DEPRECATION 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)1811 executes only on secondary redis store1812 when using primary store as default1813DEPRECATION 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)1814 executes only on primary redis store1815 execute :mapped_hmget command1816 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteMappedHmgetCommand1817 when reading from the primary is successful1818 returns the correct value1819 returns the correct value1820 when reading from default instance is raising an exception1821 logs the exception and re-raises the error1822 when reading from empty default instance1823 does not call the fallback store1824 when the command is executed within pipelined block1825 is executed only 1 time on primary and secondary instance1826 with both primary and secondary store using same redis instance1827 behaves like secondary store1828 execute on the secondary instance1829 returns the correct value1830 does not execute on the primary store1831 when use_primary_and_secondary_stores feature flag is disabled1832 when using secondary store as default1833DEPRECATION 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)1834DEPRECATION 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)1835 executes only on secondary redis store1836 when using primary store as default1837DEPRECATION 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)1838 executes only on primary redis store1839 execute :sscan command1840 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanCommand1841 when reading from the primary is successful1842 returns the correct value1843 returns the correct value1844 when reading from default instance is raising an exception1845 logs the exception and re-raises the error1846 when reading from empty default instance1847 does not call the fallback store1848 when the command is executed within pipelined block1849 is executed only 1 time on primary and secondary instance1850 with both primary and secondary store using same redis instance1851 behaves like secondary store1852 execute on the secondary instance1853 returns the correct value1854 does not execute on the primary store1855 when use_primary_and_secondary_stores feature flag is disabled1856 when using secondary store as default1857DEPRECATION 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)1858DEPRECATION 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)1859 executes only on secondary redis store1860 when using primary store as default1861DEPRECATION 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)1862 executes only on primary redis store1863 execute :scan_each command1864 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteScanEachCommand1865 when reading from the primary is successful1866 returns the correct value1867 returns the correct value1868 when reading from default instance is raising an exception1869 logs the exception and re-raises the error1870 when reading from empty default instance1871 does not call the fallback store1872 when the command is executed within pipelined block1873 is executed only 1 time on primary and secondary instance1874 with both primary and secondary store using same redis instance1875 behaves like secondary store1876 execute on the secondary instance1877 returns the correct value1878 does not execute on the primary store1879 when use_primary_and_secondary_stores feature flag is disabled1880 when using secondary store as default1881DEPRECATION 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)1882DEPRECATION 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)1883 executes only on secondary redis store1884 when using primary store as default1885DEPRECATION 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)1886 executes only on primary redis store1887 execute :sscan_each command1888 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanEachCommand1889 when reading from the primary is successful1890 returns the correct value1891 returns the correct value1892 when reading from default instance is raising an exception1893 logs the exception and re-raises the error1894 when reading from empty default instance1895 does not call the fallback store1896 when the command is executed within pipelined block1897 is executed only 1 time on primary and secondary instance1898 with both primary and secondary store using same redis instance1899 behaves like secondary store1900 execute on the secondary instance1901 returns the correct value1902 does not execute on the primary store1903 when use_primary_and_secondary_stores feature flag is disabled1904 when using secondary store as default1905DEPRECATION 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)1906DEPRECATION 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)1907 executes only on secondary redis store1908 when using primary store as default1909DEPRECATION 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)1910 executes only on primary redis store1911 execute :sscan_each w block1912 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteSscanEachWBlock1913 when reading from the primary is successful1914 returns the correct value1915 returns the correct value1916 when reading from default instance is raising an exception1917 logs the exception and re-raises the error1918 when reading from empty default instance1919 does not call the fallback store1920 when the command is executed within pipelined block1921 is executed only 1 time on primary and secondary instance1922 with both primary and secondary store using same redis instance1923 behaves like secondary store1924 execute on the secondary instance1925 returns the correct value1926 does not execute on the primary store1927 when use_primary_and_secondary_stores feature flag is disabled1928 when using secondary store as default1929DEPRECATION 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)1930DEPRECATION 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)1931 executes only on secondary redis store1932 when using primary store as default1933DEPRECATION 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)1934 executes only on primary redis store1935 execute :hscan_each command1936 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHscanEachCommand1937 when reading from the primary is successful1938 returns the correct value1939 returns the correct value1940 when reading from default instance is raising an exception1941 logs the exception and re-raises the error1942 when reading from empty default instance1943 does not call the fallback store1944 when the command is executed within pipelined block1945 is executed only 1 time on primary and secondary instance1946 with both primary and secondary store using same redis instance1947 behaves like secondary store1948 execute on the secondary instance1949 returns the correct value1950 does not execute on the primary store1951 when use_primary_and_secondary_stores feature flag is disabled1952 when using secondary store as default1953DEPRECATION 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)1954DEPRECATION 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)1955 executes only on secondary redis store1956 when using primary store as default1957DEPRECATION 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)1958 executes only on primary redis store1959 execute :hscan_each w block1960 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteHscanEachWBlock1961 when reading from the primary is successful1962 returns the correct value1963 returns the correct value1964 when reading from default instance is raising an exception1965 logs the exception and re-raises the error1966 when reading from empty default instance1967 does not call the fallback store1968 when the command is executed within pipelined block1969 is executed only 1 time on primary and secondary instance1970 with both primary and secondary store using same redis instance1971 behaves like secondary store1972 execute on the secondary instance1973 returns the correct value1974 does not execute on the primary store1975 when use_primary_and_secondary_stores feature flag is disabled1976 when using secondary store as default1977DEPRECATION 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)1978DEPRECATION 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)1979 executes only on secondary redis store1980 when using primary store as default1981DEPRECATION 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)1982 executes only on primary redis store1983 execute :zscan_each command1984 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteZscanEachCommand1985 when reading from the primary is successful1986 returns the correct value1987 returns the correct value1988 when reading from default instance is raising an exception1989 logs the exception and re-raises the error1990 when reading from empty default instance1991 does not call the fallback store1992 when the command is executed within pipelined block1993 is executed only 1 time on primary and secondary instance1994 with both primary and secondary store using same redis instance1995 behaves like secondary store1996 execute on the secondary instance1997 returns the correct value1998 does not execute on the primary store1999 when use_primary_and_secondary_stores feature flag is disabled2000 when using secondary store as default2001DEPRECATION 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)2002DEPRECATION 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)2003 executes only on secondary redis store2004 when using primary store as default2005DEPRECATION 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)2006 executes only on primary redis store2007 execute :zscan_each w block2008 RSpec::ExampleGroups::GitlabRedisMultiStore::WithREADRedisCommands::ExecuteZscanEachWBlock2009 when reading from the primary is successful2010 returns the correct value2011 returns the correct value2012 when reading from default instance is raising an exception2013 logs the exception and re-raises the error2014 when reading from empty default instance2015 does not call the fallback store2016 when the command is executed within pipelined block2017 is executed only 1 time on primary and secondary instance2018 with both primary and secondary store using same redis instance2019 behaves like secondary store2020 execute on the secondary instance2021 returns the correct value2022 does not execute on the primary store2023 when use_primary_and_secondary_stores feature flag is disabled2024 when using secondary store as default2025DEPRECATION 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)2026DEPRECATION 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)2027 executes only on secondary redis store2028 when using primary store as default2029DEPRECATION 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)2030 executes only on primary redis store2031 with nested command in block2032 when using both stores2033 when primary instance is default store2034 ensures primary instance is executing the block2035 when secondary instance is default store2036DEPRECATION 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)2037 ensures secondary instance is executing the block2038 when using 1 store only2039 when primary instance is default store2040DEPRECATION 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)2041 ensures only primary instance is executing the block2042 when secondary instance is default store2043DEPRECATION 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)2044DEPRECATION 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)2045 ensures only secondary instance is executing the block2046 with WRITE redis commands2047 execute :set command2048 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetCommand2049 when executing on primary instance is successful2050 executes on both primary and secondary redis store2051 primary_store redis store contains correct values2052 secondary_store redis store contains correct values2053 when use_primary_and_secondary_stores feature flag is disabled2054 when using secondary store as default2055DEPRECATION 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)2056DEPRECATION 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)2057 executes only on secondary redis store2058 when using primary store as default2059DEPRECATION 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)2060 executes only on primary redis store2061 when executing on the primary instance is raising an exception2062 logs the exception and execute on secondary instance2063 secondary_store redis store contains correct values2064 when the command is executed within pipelined block2065 is executed only 1 time on each instance2066 primary_store redis store contains correct values2067 secondary_store redis store contains correct values2068 execute :setnx command2069 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetnxCommand2070 when executing on primary instance is successful2071 executes on both primary and secondary redis store2072 primary_store redis store contains correct values2073 secondary_store redis store contains correct values2074 when use_primary_and_secondary_stores feature flag is disabled2075 when using secondary store as default2076DEPRECATION 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)2077DEPRECATION 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)2078 executes only on secondary redis store2079 when using primary store as default2080DEPRECATION 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)2081 executes only on primary redis store2082 when executing on the primary instance is raising an exception2083 logs the exception and execute on secondary instance2084 secondary_store redis store contains correct values2085 when the command is executed within pipelined block2086 is executed only 1 time on each instance2087 primary_store redis store contains correct values2088 secondary_store redis store contains correct values2089 execute :setex command2090 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSetexCommand2091 when executing on primary instance is successful2092 executes on both primary and secondary redis store2093 primary_store redis store contains correct values2094 secondary_store redis store contains correct values2095 when use_primary_and_secondary_stores feature flag is disabled2096 when using secondary store as default2097DEPRECATION 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)2098DEPRECATION 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)2099 executes only on secondary redis store2100 when using primary store as default2101DEPRECATION 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)2102 executes only on primary redis store2103 when executing on the primary instance is raising an exception2104 logs the exception and execute on secondary instance2105 secondary_store redis store contains correct values2106 when the command is executed within pipelined block2107 is executed only 1 time on each instance2108 primary_store redis store contains correct values2109 secondary_store redis store contains correct values2110 execute :sadd command2111 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSaddCommand2112 when executing on primary instance is successful2113 executes on both primary and secondary redis store2114 primary_store redis store contains correct values2115 secondary_store redis store contains correct values2116 when use_primary_and_secondary_stores feature flag is disabled2117 when using secondary store as default2118DEPRECATION 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)2119DEPRECATION 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)2120 executes only on secondary redis store2121 when using primary store as default2122DEPRECATION 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)2123 executes only on primary redis store2124 when executing on the primary instance is raising an exception2125 logs the exception and execute on secondary instance2126 secondary_store redis store contains correct values2127 when the command is executed within pipelined block2128 is executed only 1 time on each instance2129 primary_store redis store contains correct values2130 secondary_store redis store contains correct values2131 execute :srem command2132 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteSremCommand2133 when executing on primary instance is successful2134 executes on both primary and secondary redis store2135 primary_store redis store contains correct values2136 secondary_store redis store contains correct values2137 when use_primary_and_secondary_stores feature flag is disabled2138 when using secondary store as default2139DEPRECATION 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)2140DEPRECATION 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)2141 executes only on secondary redis store2142 when using primary store as default2143DEPRECATION 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)2144 executes only on primary redis store2145 when executing on the primary instance is raising an exception2146 logs the exception and execute on secondary instance2147 secondary_store redis store contains correct values2148 when the command is executed within pipelined block2149 is executed only 1 time on each instance2150 primary_store redis store contains correct values2151 secondary_store redis store contains correct values2152 execute :del command2153 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteDelCommand2154 when executing on primary instance is successful2155 executes on both primary and secondary redis store2156 primary_store redis store contains correct values2157 secondary_store redis store contains correct values2158 when use_primary_and_secondary_stores feature flag is disabled2159 when using secondary store as default2160DEPRECATION 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)2161DEPRECATION 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)2162 executes only on secondary redis store2163 when using primary store as default2164DEPRECATION 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)2165 executes only on primary redis store2166 when executing on the primary instance is raising an exception2167 logs the exception and execute on secondary instance2168 secondary_store redis store contains correct values2169 when the command is executed within pipelined block2170 is executed only 1 time on each instance2171 primary_store redis store contains correct values2172 secondary_store redis store contains correct values2173 execute :unlink command2174 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteUnlinkCommand2175 when executing on primary instance is successful2176 executes on both primary and secondary redis store2177 primary_store redis store contains correct values2178 secondary_store redis store contains correct values2179 when use_primary_and_secondary_stores feature flag is disabled2180 when using secondary store as default2181DEPRECATION 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)2182DEPRECATION 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)2183 executes only on secondary redis store2184 when using primary store as default2185DEPRECATION 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)2186 executes only on primary redis store2187 when executing on the primary instance is raising an exception2188 logs the exception and execute on secondary instance2189 secondary_store redis store contains correct values2190 when the command is executed within pipelined block2191 is executed only 1 time on each instance2192 primary_store redis store contains correct values2193 secondary_store redis store contains correct values2194 execute :flushdb command2195 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteFlushdbCommand2196 when executing on primary instance is successful2197 executes on both primary and secondary redis store2198 primary_store redis store contains correct values2199 secondary_store redis store contains correct values2200 when use_primary_and_secondary_stores feature flag is disabled2201 when using secondary store as default2202DEPRECATION 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)2203DEPRECATION 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)2204 executes only on secondary redis store2205 when using primary store as default2206DEPRECATION 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)2207 executes only on primary redis store2208 when executing on the primary instance is raising an exception2209 logs the exception and execute on secondary instance2210 secondary_store redis store contains correct values2211 when the command is executed within pipelined block2212 is executed only 1 time on each instance2213 primary_store redis store contains correct values2214 secondary_store redis store contains correct values2215 execute :eval command2216 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteEvalCommand2217 when executing on primary instance is successful2218 executes on both primary and secondary redis store2219 primary_store redis store contains correct values2220 secondary_store redis store contains correct values2221 when use_primary_and_secondary_stores feature flag is disabled2222 when using secondary store as default2223DEPRECATION 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)2224DEPRECATION 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)2225 executes only on secondary redis store2226 when using primary store as default2227DEPRECATION 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)2228 executes only on primary redis store2229 when executing on the primary instance is raising an exception2230 logs the exception and execute on secondary instance2231 secondary_store redis store contains correct values2232 when the command is executed within pipelined block2233 is executed only 1 time on each instance2234 primary_store redis store contains correct values2235 secondary_store redis store contains correct values2236 execute :incr command2237 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteIncrCommand2238 when executing on primary instance is successful2239 executes on both primary and secondary redis store2240 primary_store redis store contains correct values2241 secondary_store redis store contains correct values2242 when use_primary_and_secondary_stores feature flag is disabled2243 when using secondary store as default2244DEPRECATION 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)2245DEPRECATION 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)2246 executes only on secondary redis store2247 when using primary store as default2248DEPRECATION 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)2249 executes only on primary redis store2250 when executing on the primary instance is raising an exception2251 logs the exception and execute on secondary instance2252 secondary_store redis store contains correct values2253 when the command is executed within pipelined block2254 is executed only 1 time on each instance2255 primary_store redis store contains correct values2256 secondary_store redis store contains correct values2257 execute :incrby command2258 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteIncrbyCommand2259 when executing on primary instance is successful2260 executes on both primary and secondary redis store2261 primary_store redis store contains correct values2262 secondary_store redis store contains correct values2263 when use_primary_and_secondary_stores feature flag is disabled2264 when using secondary store as default2265DEPRECATION 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)2266DEPRECATION 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)2267 executes only on secondary redis store2268 when using primary store as default2269DEPRECATION 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)2270 executes only on primary redis store2271 when executing on the primary instance is raising an exception2272 logs the exception and execute on secondary instance2273 secondary_store redis store contains correct values2274 when the command is executed within pipelined block2275 is executed only 1 time on each instance2276 primary_store redis store contains correct values2277 secondary_store redis store contains correct values2278 execute :hset command2279 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteHsetCommand2280 when executing on primary instance is successful2281 executes on both primary and secondary redis store2282 primary_store redis store contains correct values2283 secondary_store redis store contains correct values2284 when use_primary_and_secondary_stores feature flag is disabled2285 when using secondary store as default2286DEPRECATION 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)2287DEPRECATION 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)2288 executes only on secondary redis store2289 when using primary store as default2290DEPRECATION 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)2291 executes only on primary redis store2292 when executing on the primary instance is raising an exception2293 logs the exception and execute on secondary instance2294 secondary_store redis store contains correct values2295 when the command is executed within pipelined block2296 is executed only 1 time on each instance2297 primary_store redis store contains correct values2298 secondary_store redis store contains correct values2299 execute :hdel command2300 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteHdelCommand2301 when executing on primary instance is successful2302 executes on both primary and secondary redis store2303 primary_store redis store contains correct values2304 secondary_store redis store contains correct values2305 when use_primary_and_secondary_stores feature flag is disabled2306 when using secondary store as default2307DEPRECATION 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)2308DEPRECATION 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)2309 executes only on secondary redis store2310 when using primary store as default2311DEPRECATION 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)2312 executes only on primary redis store2313 when executing on the primary instance is raising an exception2314 logs the exception and execute on secondary instance2315 secondary_store redis store contains correct values2316 when the command is executed within pipelined block2317 is executed only 1 time on each instance2318 primary_store redis store contains correct values2319 secondary_store redis store contains correct values2320 execute :expire command2321 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteExpireCommand2322 when executing on primary instance is successful2323 executes on both primary and secondary redis store2324 primary_store redis store contains correct values2325 secondary_store redis store contains correct values2326 when use_primary_and_secondary_stores feature flag is disabled2327 when using secondary store as default2328DEPRECATION 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)2329DEPRECATION 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)2330 executes only on secondary redis store2331 when using primary store as default2332DEPRECATION 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)2333 executes only on primary redis store2334 when executing on the primary instance is raising an exception2335 logs the exception and execute on secondary instance2336 secondary_store redis store contains correct values2337 when the command is executed within pipelined block2338 is executed only 1 time on each instance2339 primary_store redis store contains correct values2340 secondary_store redis store contains correct values2341 execute :mapped_hmset command2342 RSpec::ExampleGroups::GitlabRedisMultiStore::WithWRITERedisCommands::ExecuteMappedHmsetCommand2343 when executing on primary instance is successful2344 executes on both primary and secondary redis store2345 primary_store redis store contains correct values2346 secondary_store redis store contains correct values2347 when use_primary_and_secondary_stores feature flag is disabled2348 when using secondary store as default2349DEPRECATION 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)2350DEPRECATION 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)2351 executes only on secondary redis store2352 when using primary store as default2353DEPRECATION 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)2354 executes only on primary redis store2355 when executing on the primary instance is raising an exception2356 logs the exception and execute on secondary instance2357 secondary_store redis store contains correct values2358 when the command is executed within pipelined block2359 is executed only 1 time on each instance2360 primary_store redis store contains correct values2361 secondary_store redis store contains correct values2362 #multi2363 command execution in a pipelined command2364 when executing on primary instance is successful2365 executes on both primary and secondary redis store2366 primary_store redis store contains correct values2367 secondary_store redis store contains correct values2368 when executing on the primary instance is raising an exception2369 logs the exception and execute on secondary instance2370 secondary_store redis store contains correct values2371 return values from a pipelined command2372 when the value exists on both and are equal2373 returns the value2374 when the value exists on both but differ2375 returns the value from the secondary store, logging an error2376 when the value does not exist on the primary but it does on the secondary2377 returns the value from the secondary store, logging an error2378 when the value does not exist in either2379 returns nil without logging an error2380 when use_primary_and_secondary_stores feature flag is disabled2381 when using secondary store as default2382DEPRECATION 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)2383DEPRECATION 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)2384 executes on secondary store2385 when using primary store as default2386DEPRECATION 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)2387 executes on primary store2388 #pipelined2389 command execution in a pipelined command2390 when executing on primary instance is successful2391 executes on both primary and secondary redis store2392 primary_store redis store contains correct values2393 secondary_store redis store contains correct values2394 when executing on the primary instance is raising an exception2395 logs the exception and execute on secondary instance2396 secondary_store redis store contains correct values2397 return values from a pipelined command2398 when the value exists on both and are equal2399 returns the value2400 when the value exists on both but differ2401 returns the value from the secondary store, logging an error2402 when the value does not exist on the primary but it does on the secondary2403 returns the value from the secondary store, logging an error2404 when the value does not exist in either2405 returns nil without logging an error2406 when use_primary_and_secondary_stores feature flag is disabled2407 when using secondary store as default2408DEPRECATION 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)2409DEPRECATION 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)2410 executes on secondary store2411 when using primary store as default2412DEPRECATION 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)2413 executes on primary store2414 #ping2415 when using both stores2416 without message2417 returns PONG2418 with message2419 returns the same message2420 when primary store returns an error2421 behaves like returns an error2422 returns the error2423 when secondary store returns an error2424 behaves like returns an error2425 returns the error2426 when using only one store2427 when using primary_store as default store2428 behaves like single store as default store2429 when the store retuns success2430 returns response from the respective store2431 when the store returns an error2432 returns the error2433 when using secondary_store as default store2434 behaves like single store as default store2435 when the store retuns success2436 returns response from the respective store2437 when the store returns an error2438 returns the error2439 with unsupported command2440 when in test environment2441 raises error2442 when not in test environment2443 responds to missing method2444 executes method missing2445 when command is not in SKIP_LOG_METHOD_MISSING_FOR_COMMANDS2446 logs MethodMissingError2447 increments method missing counter2448 fallback and executes only on the secondary store2449 when command is in SKIP_LOG_METHOD_MISSING_FOR_COMMANDS2450 does not log MethodMissingError2451 does not increment method missing counter2452 with feature flag :use_primary_store_as_default_for_test_store is enabled2453 fallback and executes only on the secondary store2454 with feature flag :use_primary_store_as_default_for_test_store is disabled2455DEPRECATION 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)2456 fallback and executes only on the secondary store2457 when the command is executed within pipelined block2458 is executed only 1 time on each instance2459 #to_s2460 returns same value as primary_store2461 #is_a?2462 returns true for ::Redis::Store2463 #use_primary_and_secondary_stores?2464 multi store is enabled2465 with empty DB2466 multi store is disabled2467 when FF table guard raises2468 multi store is disabled2469 #use_primary_store_as_default?2470 multi store is disabled2471 with empty DB2472 multi store is disabled2473 when FF table guard raises2474 multi store is disabled2475Git::BranchPushService2476 Push branches2477 new branch2478 is expected to be truthy2479 calls the after_push_commit hook2480 calls the after_create_branch hook2481 existing branch2482 is expected to be truthy2483 calls the after_push_commit hook2484 rm branch2485 is expected to be truthy2486 calls the after_push_commit hook2487 calls the after_remove_branch hook2488 Pipelines2489 creates a pipeline with the right parameters2490 creates a new pipeline2491 when pipeline has errors2492 reports an error2493 with push options2494 sanitizes push options2495 when .gitlab-ci.yml file is invalid2496 persists an error pipeline2497 Updates merge requests2498 when pushing a new branch for the first time2499 Updates git attributes2500 for default branch2501 calls the copy attributes method for changes to the default branch2502 when first push2503 calls the copy attributes method for the first push to the default branch2504 for non-default branch2505 does not call copy attributes method2506 Webhooks2507 when pushing a branch for the first time2508 executes webhooks2509 with default branch protection disabled2510 with default branch protection set to 'developers can push'2511 with an existing branch permission configured2512 with default branch protection set to 'developers can merge'2513 when pushing new commits to existing branch2514 executes webhooks2515 cross-reference notes2516 creates a note if a pushed commit mentions an issue2517 only creates a cross-reference note if one doesn't already exist2518 defaults to the pushing user if the commit's author is not known2519 when first push on a non-default branch2520 finds references2521 issue metrics2522 while saving the 'first_mentioned_in_commit_at' metric for an issue2523 sets the metric for referenced issues2524 does not set the metric for non-referenced issues2525 closing issues from pushed commits containing a closing reference2526 to default branches2527 closes issues2528 adds a note indicating that the issue is now closed2529 doesn't create additional cross-reference notes2530 to non-default branches2531 creates cross-reference notes2532 doesn't close issues2533 for jira issue tracker2534 mentioning an issue2535 initiates one api call to jira server to mention the issue2536 closing an issue2537 using right markdown2538 initiates one api call to jira server to close the issue2539 initiates one api call to jira server to comment on the issue2540 using internal issue reference2541 when internal issues are disabled2542 does not initiates one api call to jira server to close the issue2543 does not initiates one api call to jira server to comment on the issue2544 when internal issues are enabled2545 initiates one api call to jira server to close the jira issue2546 initiates one api call to jira server to comment on the jira issue2547 closes the internal issue2548 adds a note indicating that the issue is now closed2549 empty project2550 push to first branch updates HEAD2551 CI environments2552 create branch2553 does nothing2554 update branch2555 does nothing2556 delete branch2557 stops environments2558 artifacts2559 create branch2560 does nothing2561 update branch2562 does nothing2563 delete branch2564 unlocks artifacts2565 Hooks2566 run on a branch2567 delegates to Git::BranchHooksService2568 run on a tag2569 does nothing2570 Jira Connect hooks2571 with a Jira subscription2572 branch name contains Jira issue key2573 behaves like enqueues Jira sync worker2574 aggregate_failures2575 commit message contains Jira issue key2576 behaves like enqueues Jira sync worker2577 aggregate_failures2578 branch name and commit message does not contain Jira issue key2579 behaves like does not enqueue Jira sync worker2580 is expected not to change `Array#size`2581 without a Jira subscription2582 behaves like does not enqueue Jira sync worker2583 is expected not to change `Array#size`2584 project target platforms detection2585 calls enqueue_record_project_target_platforms on the project2586Gitlab::ImportExport::AttributesPermitter2587 #permitted_attributes2588 builds permitted attributes hash2589 #permit2590 only allows permitted attributes2591 #permitted_attributes_for2592 returns an array of permitted attributes for a relation2593 #permitted_attributes_defined?2594 relation_name: :user, permitted_attributes_defined: true2595 is expected to eq true2596 relation_name: :author, permitted_attributes_defined: false2597 is expected to eq false2598 relation_name: :ci_cd_settings, permitted_attributes_defined: true2599 is expected to eq true2600 relation_name: :metrics_setting, permitted_attributes_defined: true2601 is expected to eq true2602 relation_name: :project_badges, permitted_attributes_defined: true2603 is expected to eq true2604 relation_name: :pipeline_schedules, permitted_attributes_defined: true2605 is expected to eq true2606 relation_name: :error_tracking_setting, permitted_attributes_defined: true2607 is expected to eq true2608 relation_name: :auto_devops, permitted_attributes_defined: true2609 is expected to eq true2610 relation_name: :boards, permitted_attributes_defined: true2611 is expected to eq true2612 relation_name: :custom_attributes, permitted_attributes_defined: true2613 is expected to eq true2614 relation_name: :label, permitted_attributes_defined: true2615 is expected to eq true2616 relation_name: :labels, permitted_attributes_defined: true2617 is expected to eq true2618 relation_name: :protected_branches, permitted_attributes_defined: true2619 is expected to eq true2620 relation_name: :protected_tags, permitted_attributes_defined: true2621 is expected to eq true2622 relation_name: :create_access_levels, permitted_attributes_defined: true2623 is expected to eq true2624 relation_name: :merge_access_levels, permitted_attributes_defined: true2625 is expected to eq true2626 relation_name: :push_access_levels, permitted_attributes_defined: true2627 is expected to eq true2628 relation_name: :releases, permitted_attributes_defined: true2629 is expected to eq true2630 relation_name: :links, permitted_attributes_defined: true2631 is expected to eq true2632 relation_name: :priorities, permitted_attributes_defined: true2633 is expected to eq true2634 relation_name: :milestone, permitted_attributes_defined: true2635 is expected to eq true2636 relation_name: :milestones, permitted_attributes_defined: true2637 is expected to eq true2638 relation_name: :snippets, permitted_attributes_defined: true2639 is expected to eq true2640 relation_name: :project_members, permitted_attributes_defined: true2641 is expected to eq true2642 relation_name: :merge_request, permitted_attributes_defined: true2643 is expected to eq true2644 relation_name: :merge_requests, permitted_attributes_defined: true2645 is expected to eq true2646 relation_name: :award_emoji, permitted_attributes_defined: true2647 is expected to eq true2648 relation_name: :commit_author, permitted_attributes_defined: true2649 is expected to eq true2650 relation_name: :committer, permitted_attributes_defined: true2651 is expected to eq true2652 relation_name: :events, permitted_attributes_defined: true2653 is expected to eq true2654 relation_name: :label_links, permitted_attributes_defined: true2655 is expected to eq true2656 relation_name: :merge_request_diff, permitted_attributes_defined: true2657 is expected to eq true2658 relation_name: :merge_request_diff_commits, permitted_attributes_defined: true2659 is expected to eq true2660 relation_name: :merge_request_diff_files, permitted_attributes_defined: true2661 is expected to eq true2662 relation_name: :metrics, permitted_attributes_defined: true2663 is expected to eq true2664 relation_name: :notes, permitted_attributes_defined: true2665 is expected to eq true2666 relation_name: :push_event_payload, permitted_attributes_defined: true2667 is expected to eq true2668 relation_name: :resource_label_events, permitted_attributes_defined: true2669 is expected to eq true2670 relation_name: :suggestions, permitted_attributes_defined: true2671 is expected to eq true2672 relation_name: :system_note_metadata, permitted_attributes_defined: true2673 is expected to eq true2674 relation_name: :timelogs, permitted_attributes_defined: true2675 is expected to eq true2676 relation_name: :container_expiration_policy, permitted_attributes_defined: true2677 is expected to eq true2678 relation_name: :project_feature, permitted_attributes_defined: true2679 is expected to eq true2680 relation_name: :prometheus_metrics, permitted_attributes_defined: true2681 is expected to eq true2682 relation_name: :service_desk_setting, permitted_attributes_defined: true2683 is expected to eq true2684 relation_name: :external_pull_request, permitted_attributes_defined: true2685 is expected to eq true2686 relation_name: :external_pull_requests, permitted_attributes_defined: true2687 is expected to eq true2688 relation_name: :statuses, permitted_attributes_defined: true2689 is expected to eq true2690 relation_name: :builds, permitted_attributes_defined: true2691 is expected to eq true2692 relation_name: :generic_commit_statuses, permitted_attributes_defined: true2693 is expected to eq true2694 relation_name: :bridges, permitted_attributes_defined: true2695 is expected to eq true2696 relation_name: :ci_pipelines, permitted_attributes_defined: true2697 is expected to eq true2698 relation_name: :stages, permitted_attributes_defined: true2699 is expected to eq true2700 relation_name: :actions, permitted_attributes_defined: true2701 is expected to eq true2702 relation_name: :design, permitted_attributes_defined: true2703 is expected to eq true2704 relation_name: :designs, permitted_attributes_defined: true2705 is expected to eq true2706 relation_name: :design_versions, permitted_attributes_defined: true2707 is expected to eq true2708 relation_name: :issue_assignees, permitted_attributes_defined: true2709 is expected to eq true2710 relation_name: :sentry_issue, permitted_attributes_defined: true2711 is expected to eq true2712 relation_name: :zoom_meetings, permitted_attributes_defined: true2713 is expected to eq true2714 relation_name: :issues, permitted_attributes_defined: true2715 is expected to eq true2716 relation_name: :group_members, permitted_attributes_defined: true2717 is expected to eq true2718 relation_name: :project, permitted_attributes_defined: true2719 is expected to eq true2720 included_attributes for Project2721 for user2722 behaves like a permitted attribute2723 contains only attributes that are defined as permitted in the import/export config2724 does not contain attributes that would be cleaned with AttributeCleaner2725 does not contain prohibited attributes that are not related to given relation2726 for author2727 behaves like a permitted attribute2728 is disabled2729 for approvals2730 behaves like a permitted attribute2731 contains only attributes that are defined as permitted in the import/export config2732 does not contain attributes that would be cleaned with AttributeCleaner2733 does not contain prohibited attributes that are not related to given relation2734 for ci_cd_settings2735 behaves like a permitted attribute2736 contains only attributes that are defined as permitted in the import/export config2737 does not contain attributes that would be cleaned with AttributeCleaner2738 does not contain prohibited attributes that are not related to given relation2739 for metrics_setting2740 behaves like a permitted attribute2741 contains only attributes that are defined as permitted in the import/export config2742 does not contain attributes that would be cleaned with AttributeCleaner2743 does not contain prohibited attributes that are not related to given relation2744 for project_badges2745 behaves like a permitted attribute2746 contains only attributes that are defined as permitted in the import/export config2747 does not contain attributes that would be cleaned with AttributeCleaner2748 does not contain prohibited attributes that are not related to given relation2749 for pipeline_schedules2750 behaves like a permitted attribute2751 contains only attributes that are defined as permitted in the import/export config2752 does not contain attributes that would be cleaned with AttributeCleaner2753 does not contain prohibited attributes that are not related to given relation2754 for error_tracking_setting2755 behaves like a permitted attribute2756 contains only attributes that are defined as permitted in the import/export config2757 does not contain attributes that would be cleaned with AttributeCleaner2758 does not contain prohibited attributes that are not related to given relation2759 for auto_devops2760 behaves like a permitted attribute2761 contains only attributes that are defined as permitted in the import/export config2762 does not contain attributes that would be cleaned with AttributeCleaner2763 does not contain prohibited attributes that are not related to given relation2764 for boards2765 behaves like a permitted attribute2766 contains only attributes that are defined as permitted in the import/export config2767 does not contain attributes that would be cleaned with AttributeCleaner2768 does not contain prohibited attributes that are not related to given relation2769 for lists2770 behaves like a permitted attribute2771 contains only attributes that are defined as permitted in the import/export config2772 does not contain attributes that would be cleaned with AttributeCleaner2773 does not contain prohibited attributes that are not related to given relation2774 for custom_attributes2775 behaves like a permitted attribute2776 contains only attributes that are defined as permitted in the import/export config2777 does not contain attributes that would be cleaned with AttributeCleaner2778 does not contain prohibited attributes that are not related to given relation2779 for label2780 behaves like a permitted attribute2781 contains only attributes that are defined as permitted in the import/export config2782 does not contain attributes that would be cleaned with AttributeCleaner2783 does not contain prohibited attributes that are not related to given relation2784 for labels2785 behaves like a permitted attribute2786 contains only attributes that are defined as permitted in the import/export config2787 does not contain attributes that would be cleaned with AttributeCleaner2788 does not contain prohibited attributes that are not related to given relation2789 for priorities2790 behaves like a permitted attribute2791 contains only attributes that are defined as permitted in the import/export config2792 does not contain attributes that would be cleaned with AttributeCleaner2793 does not contain prohibited attributes that are not related to given relation2794 for milestone2795 behaves like a permitted attribute2796 contains only attributes that are defined as permitted in the import/export config2797 does not contain attributes that would be cleaned with AttributeCleaner2798 does not contain prohibited attributes that are not related to given relation2799 for milestones2800 behaves like a permitted attribute2801 contains only attributes that are defined as permitted in the import/export config2802 does not contain attributes that would be cleaned with AttributeCleaner2803 does not contain prohibited attributes that are not related to given relation2804 for protected_branches2805 behaves like a permitted attribute2806 contains only attributes that are defined as permitted in the import/export config2807 does not contain attributes that would be cleaned with AttributeCleaner2808 does not contain prohibited attributes that are not related to given relation2809 for protected_tags2810 behaves like a permitted attribute2811 contains only attributes that are defined as permitted in the import/export config2812 does not contain attributes that would be cleaned with AttributeCleaner2813 does not contain prohibited attributes that are not related to given relation2814 for create_access_levels2815 behaves like a permitted attribute2816 contains only attributes that are defined as permitted in the import/export config2817 does not contain attributes that would be cleaned with AttributeCleaner2818 does not contain prohibited attributes that are not related to given relation2819 for merge_access_levels2820 behaves like a permitted attribute2821 contains only attributes that are defined as permitted in the import/export config2822 does not contain attributes that would be cleaned with AttributeCleaner2823 does not contain prohibited attributes that are not related to given relation2824 for push_access_levels2825 behaves like a permitted attribute2826 contains only attributes that are defined as permitted in the import/export config2827 does not contain attributes that would be cleaned with AttributeCleaner2828 does not contain prohibited attributes that are not related to given relation2829 for releases2830 behaves like a permitted attribute2831 contains only attributes that are defined as permitted in the import/export config2832 does not contain attributes that would be cleaned with AttributeCleaner2833 does not contain prohibited attributes that are not related to given relation2834 for links2835 behaves like a permitted attribute2836 contains only attributes that are defined as permitted in the import/export config2837 does not contain attributes that would be cleaned with AttributeCleaner2838 does not contain prohibited attributes that are not related to given relation2839 for container_expiration_policy2840 behaves like a permitted attribute2841 contains only attributes that are defined as permitted in the import/export config2842 does not contain attributes that would be cleaned with AttributeCleaner2843 does not contain prohibited attributes that are not related to given relation2844 for project_feature2845 behaves like a permitted attribute2846 contains only attributes that are defined as permitted in the import/export config2847 does not contain attributes that would be cleaned with AttributeCleaner2848 does not contain prohibited attributes that are not related to given relation2849 for prometheus_metrics2850 behaves like a permitted attribute2851 contains only attributes that are defined as permitted in the import/export config2852 does not contain attributes that would be cleaned with AttributeCleaner2853 does not contain prohibited attributes that are not related to given relation2854 for service_desk_setting2855 behaves like a permitted attribute2856 contains only attributes that are defined as permitted in the import/export config2857 does not contain attributes that would be cleaned with AttributeCleaner2858 does not contain prohibited attributes that are not related to given relation2859 for snippets2860 behaves like a permitted attribute2861 contains only attributes that are defined as permitted in the import/export config2862 does not contain attributes that would be cleaned with AttributeCleaner2863 does not contain prohibited attributes that are not related to given relation2864 for project_members2865 behaves like a permitted attribute2866 contains only attributes that are defined as permitted in the import/export config2867 does not contain attributes that would be cleaned with AttributeCleaner2868 does not contain prohibited attributes that are not related to given relation2869 for merge_request2870 behaves like a permitted attribute2871 contains only attributes that are defined as permitted in the import/export config2872 does not contain attributes that would be cleaned with AttributeCleaner2873 does not contain prohibited attributes that are not related to given relation2874 for merge_requests2875 behaves like a permitted attribute2876 contains only attributes that are defined as permitted in the import/export config2877 does not contain attributes that would be cleaned with AttributeCleaner2878 does not contain prohibited attributes that are not related to given relation2879 for award_emoji2880 behaves like a permitted attribute2881 contains only attributes that are defined as permitted in the import/export config2882 does not contain attributes that would be cleaned with AttributeCleaner2883 does not contain prohibited attributes that are not related to given relation2884 for commit_author2885 behaves like a permitted attribute2886 contains only attributes that are defined as permitted in the import/export config2887 does not contain attributes that would be cleaned with AttributeCleaner2888 does not contain prohibited attributes that are not related to given relation2889 for committer2890 behaves like a permitted attribute2891 contains only attributes that are defined as permitted in the import/export config2892 does not contain attributes that would be cleaned with AttributeCleaner2893 does not contain prohibited attributes that are not related to given relation2894 for events2895 behaves like a permitted attribute2896 contains only attributes that are defined as permitted in the import/export config2897 does not contain attributes that would be cleaned with AttributeCleaner2898 does not contain prohibited attributes that are not related to given relation2899 for label_links2900 behaves like a permitted attribute2901 contains only attributes that are defined as permitted in the import/export config2902 does not contain attributes that would be cleaned with AttributeCleaner2903 does not contain prohibited attributes that are not related to given relation2904 for merge_request_diff2905 behaves like a permitted attribute2906 contains only attributes that are defined as permitted in the import/export config2907 does not contain attributes that would be cleaned with AttributeCleaner2908 does not contain prohibited attributes that are not related to given relation2909 for merge_request_diff_commits2910 behaves like a permitted attribute2911 contains only attributes that are defined as permitted in the import/export config2912 does not contain attributes that would be cleaned with AttributeCleaner2913 does not contain prohibited attributes that are not related to given relation2914 for merge_request_diff_files2915 behaves like a permitted attribute2916 contains only attributes that are defined as permitted in the import/export config2917 does not contain attributes that would be cleaned with AttributeCleaner2918 does not contain prohibited attributes that are not related to given relation2919 for metrics2920 behaves like a permitted attribute2921 contains only attributes that are defined as permitted in the import/export config2922 does not contain attributes that would be cleaned with AttributeCleaner2923 does not contain prohibited attributes that are not related to given relation2924 for notes2925 behaves like a permitted attribute2926 contains only attributes that are defined as permitted in the import/export config2927 does not contain attributes that would be cleaned with AttributeCleaner2928 does not contain prohibited attributes that are not related to given relation2929 for push_event_payload2930 behaves like a permitted attribute2931 contains only attributes that are defined as permitted in the import/export config2932 does not contain attributes that would be cleaned with AttributeCleaner2933 does not contain prohibited attributes that are not related to given relation2934 for resource_label_events2935 behaves like a permitted attribute2936 contains only attributes that are defined as permitted in the import/export config2937 does not contain attributes that would be cleaned with AttributeCleaner2938 does not contain prohibited attributes that are not related to given relation2939 for suggestions2940 behaves like a permitted attribute2941 contains only attributes that are defined as permitted in the import/export config2942 does not contain attributes that would be cleaned with AttributeCleaner2943 does not contain prohibited attributes that are not related to given relation2944 for system_note_metadata2945 behaves like a permitted attribute2946 contains only attributes that are defined as permitted in the import/export config2947 does not contain attributes that would be cleaned with AttributeCleaner2948 does not contain prohibited attributes that are not related to given relation2949 for timelogs2950 behaves like a permitted attribute2951 contains only attributes that are defined as permitted in the import/export config2952 does not contain attributes that would be cleaned with AttributeCleaner2953 does not contain prohibited attributes that are not related to given relation2954 for external_pull_request2955 behaves like a permitted attribute2956 contains only attributes that are defined as permitted in the import/export config2957 does not contain attributes that would be cleaned with AttributeCleaner2958 does not contain prohibited attributes that are not related to given relation2959 for external_pull_requests2960 behaves like a permitted attribute2961 contains only attributes that are defined as permitted in the import/export config2962 does not contain attributes that would be cleaned with AttributeCleaner2963 does not contain prohibited attributes that are not related to given relation2964 for statuses2965 behaves like a permitted attribute2966 contains only attributes that are defined as permitted in the import/export config2967 does not contain attributes that would be cleaned with AttributeCleaner2968 does not contain prohibited attributes that are not related to given relation2969 for builds2970 behaves like a permitted attribute2971 contains only attributes that are defined as permitted in the import/export config2972 does not contain attributes that would be cleaned with AttributeCleaner2973 does not contain prohibited attributes that are not related to given relation2974 for generic_commit_statuses2975 behaves like a permitted attribute2976 contains only attributes that are defined as permitted in the import/export config2977 does not contain attributes that would be cleaned with AttributeCleaner2978 does not contain prohibited attributes that are not related to given relation2979 for bridges2980 behaves like a permitted attribute2981 contains only attributes that are defined as permitted in the import/export config2982 does not contain attributes that would be cleaned with AttributeCleaner2983 does not contain prohibited attributes that are not related to given relation2984 for ci_pipelines2985 behaves like a permitted attribute2986 contains only attributes that are defined as permitted in the import/export config2987 does not contain attributes that would be cleaned with AttributeCleaner2988 does not contain prohibited attributes that are not related to given relation2989 for pipeline_metadata2990 behaves like a permitted attribute2991 contains only attributes that are defined as permitted in the import/export config2992 does not contain attributes that would be cleaned with AttributeCleaner2993 does not contain prohibited attributes that are not related to given relation2994 for stages2995 behaves like a permitted attribute2996 contains only attributes that are defined as permitted in the import/export config2997 does not contain attributes that would be cleaned with AttributeCleaner2998 does not contain prohibited attributes that are not related to given relation2999 for actions3000 behaves like a permitted attribute3001 contains only attributes that are defined as permitted in the import/export config3002 does not contain attributes that would be cleaned with AttributeCleaner3003 does not contain prohibited attributes that are not related to given relation3004 for design3005 behaves like a permitted attribute3006 contains only attributes that are defined as permitted in the import/export config3007 does not contain attributes that would be cleaned with AttributeCleaner3008 does not contain prohibited attributes that are not related to given relation3009 for designs3010 behaves like a permitted attribute3011 contains only attributes that are defined as permitted in the import/export config3012 does not contain attributes that would be cleaned with AttributeCleaner3013 does not contain prohibited attributes that are not related to given relation3014 for design_versions3015 behaves like a permitted attribute3016 contains only attributes that are defined as permitted in the import/export config3017 does not contain attributes that would be cleaned with AttributeCleaner3018 does not contain prohibited attributes that are not related to given relation3019 for issue_assignees3020 behaves like a permitted attribute3021 contains only attributes that are defined as permitted in the import/export config3022 does not contain attributes that would be cleaned with AttributeCleaner3023 does not contain prohibited attributes that are not related to given relation3024 for merge_request_assignees3025 behaves like a permitted attribute3026 contains only attributes that are defined as permitted in the import/export config3027 does not contain attributes that would be cleaned with AttributeCleaner3028 does not contain prohibited attributes that are not related to given relation3029 for merge_request_reviewers3030 behaves like a permitted attribute3031 contains only attributes that are defined as permitted in the import/export config3032 does not contain attributes that would be cleaned with AttributeCleaner3033 does not contain prohibited attributes that are not related to given relation3034 for sentry_issue3035 behaves like a permitted attribute3036 contains only attributes that are defined as permitted in the import/export config3037 does not contain attributes that would be cleaned with AttributeCleaner3038 does not contain prohibited attributes that are not related to given relation3039 for zoom_meetings3040 behaves like a permitted attribute3041 contains only attributes that are defined as permitted in the import/export config3042 does not contain attributes that would be cleaned with AttributeCleaner3043 does not contain prohibited attributes that are not related to given relation3044 for issues3045 behaves like a permitted attribute3046 contains only attributes that are defined as permitted in the import/export config3047 does not contain attributes that would be cleaned with AttributeCleaner3048 does not contain prohibited attributes that are not related to given relation3049 for group_members3050 behaves like a permitted attribute3051 contains only attributes that are defined as permitted in the import/export config3052 does not contain attributes that would be cleaned with AttributeCleaner3053 does not contain prohibited attributes that are not related to given relation3054 for project3055 behaves like a permitted attribute3056 contains only attributes that are defined as permitted in the import/export config3057 does not contain attributes that would be cleaned with AttributeCleaner3058 does not contain prohibited attributes that are not related to given relation3059 for resource_milestone_events3060 behaves like a permitted attribute3061 contains only attributes that are defined as permitted in the import/export config3062 does not contain attributes that would be cleaned with AttributeCleaner3063 does not contain prohibited attributes that are not related to given relation3064 for resource_state_events3065 behaves like a permitted attribute3066 contains only attributes that are defined as permitted in the import/export config3067 does not contain attributes that would be cleaned with AttributeCleaner3068 does not contain prohibited attributes that are not related to given relation3069 for issuable_sla3070 behaves like a permitted attribute3071 is disabled3072 for push_rule3073 behaves like a permitted attribute3074 contains only attributes that are defined as permitted in the import/export config3075 does not contain attributes that would be cleaned with AttributeCleaner3076 does not contain prohibited attributes that are not related to given relation3077 for unprotect_access_levels3078 behaves like a permitted attribute3079 contains only attributes that are defined as permitted in the import/export config3080 does not contain attributes that would be cleaned with AttributeCleaner3081 does not contain prohibited attributes that are not related to given relation3082 for deploy_access_levels3083 behaves like a permitted attribute3084 contains only attributes that are defined as permitted in the import/export config3085 does not contain attributes that would be cleaned with AttributeCleaner3086 does not contain prohibited attributes that are not related to given relation3087 for protected_environments3088 behaves like a permitted attribute3089 contains only attributes that are defined as permitted in the import/export config3090 does not contain attributes that would be cleaned with AttributeCleaner3091 does not contain prohibited attributes that are not related to given relation3092 for security_setting3093 behaves like a permitted attribute3094 contains only attributes that are defined as permitted in the import/export config3095 does not contain attributes that would be cleaned with AttributeCleaner3096 does not contain prohibited attributes that are not related to given relation3097 for resource_iteration_events3098 behaves like a permitted attribute3099 contains only attributes that are defined as permitted in the import/export config3100 does not contain attributes that would be cleaned with AttributeCleaner3101 does not contain prohibited attributes that are not related to given relation3102 for iteration3103 behaves like a permitted attribute3104 contains only attributes that are defined as permitted in the import/export config3105 does not contain attributes that would be cleaned with AttributeCleaner3106 does not contain prohibited attributes that are not related to given relation3107 for iterations_cadence3108 behaves like a permitted attribute3109 contains only attributes that are defined as permitted in the import/export config3110 does not contain attributes that would be cleaned with AttributeCleaner3111 does not contain prohibited attributes that are not related to given relation3112ObjectStorage::DirectUpload3113 #has_length3114 is known3115 maximum size is not required3116 is unknown3117 and maximum size is specified3118 does not raise an error3119 and maximum size is not specified3120 raises an error3121 #get_url3122 when AWS is used3123 calls the proper method3124 when Google is used3125 calls the proper method3126 #to_hash3127 when AWS is used3128 when length is known3129 behaves like a valid S3 upload without multipart data3130 behaves like a valid S3 upload3131 sets Workhorse client data3132 behaves like a valid upload3133 returns valid structure3134 with an object with UTF-8 characters3135 returns an escaped path3136 when no region is specified3137 defaults to us-east-13138 when V2 signatures are used3139 does not enable Workhorse client3140 when V4 signatures are used3141 enables the Workhorse client for instance profiles3142 when consolidated settings are used3143 enables the Workhorse client3144 when only server side encryption is used3145 sends server side encryption settings3146 when SSE-KMS is used3147 sends server side encryption settings3148 behaves like a valid upload without multipart data3149 returns valid structure3150 behaves like a valid upload3151 returns valid structure3152 with an object with UTF-8 characters3153 returns an escaped path3154 when path style is true3155 behaves like a valid S3 upload without multipart data3156 behaves like a valid S3 upload3157 sets Workhorse client data3158 behaves like a valid upload3159 returns valid structure3160 with an object with UTF-8 characters3161 returns an escaped path3162 when no region is specified3163 defaults to us-east-13164 when V2 signatures are used3165 does not enable Workhorse client3166 when V4 signatures are used3167 enables the Workhorse client for instance profiles3168 when consolidated settings are used3169 enables the Workhorse client3170 when only server side encryption is used3171 sends server side encryption settings3172 when SSE-KMS is used3173 sends server side encryption settings3174 behaves like a valid upload without multipart data3175 returns valid structure3176 behaves like a valid upload3177 returns valid structure3178 with an object with UTF-8 characters3179 returns an escaped path3180 when IAM profile is true3181 behaves like a valid S3 upload without multipart data3182 behaves like a valid S3 upload3183 sets Workhorse client data3184 behaves like a valid upload3185 returns valid structure3186 with an object with UTF-8 characters3187 returns an escaped path3188 when no region is specified3189 defaults to us-east-13190 when V2 signatures are used3191 does not enable Workhorse client3192 when V4 signatures are used3193 enables the Workhorse client for instance profiles3194 when consolidated settings are used3195 enables the Workhorse client3196 when only server side encryption is used3197 sends server side encryption settings3198 when SSE-KMS is used3199 sends server side encryption settings3200 behaves like a valid upload without multipart data3201 returns valid structure3202 behaves like a valid upload3203 returns valid structure3204 with an object with UTF-8 characters3205 returns an escaped path3206 when IMSDv2 is available3207 behaves like a valid S3 upload without multipart data3208 behaves like a valid S3 upload3209 sets Workhorse client data3210 behaves like a valid upload3211 returns valid structure3212 with an object with UTF-8 characters3213 returns an escaped path3214 when no region is specified3215 defaults to us-east-13216 when V2 signatures are used3217 does not enable Workhorse client3218 when V4 signatures are used3219 enables the Workhorse client for instance profiles3220 when consolidated settings are used3221 enables the Workhorse client3222 when only server side encryption is used3223 sends server side encryption settings3224 when SSE-KMS is used3225 sends server side encryption settings3226 behaves like a valid upload without multipart data3227 returns valid structure3228 behaves like a valid upload3229 returns valid structure3230 with an object with UTF-8 characters3231 returns an escaped path3232 when length is unknown3233 behaves like a valid S3 upload with multipart data3234 behaves like a valid S3 upload3235 sets Workhorse client data3236 behaves like a valid upload3237 returns valid structure3238 with an object with UTF-8 characters3239 returns an escaped path3240 when no region is specified3241 defaults to us-east-13242 when V2 signatures are used3243 does not enable Workhorse client3244 when V4 signatures are used3245 enables the Workhorse client for instance profiles3246 when consolidated settings are used3247 enables the Workhorse client3248 when only server side encryption is used3249 sends server side encryption settings3250 when SSE-KMS is used3251 sends server side encryption settings3252 behaves like a valid upload with multipart data3253 returns valid structure3254 uses only strings in query parameters3255 behaves like a valid upload3256 returns valid structure3257 with an object with UTF-8 characters3258 returns an escaped path3259 when maximum upload size is 03260 returns maximum number of parts3261 part size is minimum, 5MB3262 when maximum upload size is < 5 MB3263 returns only 1 part3264 part size is minimum, 5MB3265 when maximum upload size is 10MB3266 returns only 2 parts3267 part size is minimum, 5MB3268 when maximum upload size is 12MB3269 returns only 3 parts3270 part size is rounded-up to 5MB3271 when maximum upload size is 49GB3272 returns maximum, 100 parts3273 part size is rounded-up to 5MB3274 when Google is used3275 with google_application_default3276 when length is known3277 behaves like a valid Google upload3278 enables the Workhorse client3279 behaves like a valid upload3280 returns valid structure3281 with an object with UTF-8 characters3282 returns an escaped path3283 with workhorse_google_client disabled3284 does not set Workhorse client data3285 behaves like a valid upload without multipart data3286 returns valid structure3287 behaves like a valid upload3288 returns valid structure3289 with an object with UTF-8 characters3290 returns an escaped path3291 when length is unknown3292 behaves like a valid Google upload3293 enables the Workhorse client3294 behaves like a valid upload3295 returns valid structure3296 with an object with UTF-8 characters3297 returns an escaped path3298 with workhorse_google_client disabled3299 does not set Workhorse client data3300 behaves like a valid upload without multipart data3301 returns valid structure3302 behaves like a valid upload3303 returns valid structure3304 with an object with UTF-8 characters3305 returns an escaped path3306 with google_json_key_location3307 when length is known3308 behaves like a valid Google upload3309 enables the Workhorse client3310 behaves like a valid upload3311 returns valid structure3312 with an object with UTF-8 characters3313 returns an escaped path3314 with workhorse_google_client disabled3315 does not set Workhorse client data3316 behaves like a valid upload without multipart data3317 returns valid structure3318 behaves like a valid upload3319 returns valid structure3320 with an object with UTF-8 characters3321 returns an escaped path3322 when length is unknown3323 behaves like a valid Google upload3324 enables the Workhorse client3325 behaves like a valid upload3326 returns valid structure3327 with an object with UTF-8 characters3328 returns an escaped path3329 with workhorse_google_client disabled3330 does not set Workhorse client data3331 behaves like a valid upload without multipart data3332 returns valid structure3333 behaves like a valid upload3334 returns valid structure3335 with an object with UTF-8 characters3336 returns an escaped path3337 with google_json_key_string3338 when length is known3339 behaves like a valid Google upload3340 enables the Workhorse client3341 behaves like a valid upload3342 returns valid structure3343 with an object with UTF-8 characters3344 returns an escaped path3345 with workhorse_google_client disabled3346 does not set Workhorse client data3347 behaves like a valid upload without multipart data3348 returns valid structure3349 behaves like a valid upload3350 returns valid structure3351 with an object with UTF-8 characters3352 returns an escaped path3353 when length is unknown3354 behaves like a valid Google upload3355 enables the Workhorse client3356 behaves like a valid upload3357 returns valid structure3358 with an object with UTF-8 characters3359 returns an escaped path3360 with workhorse_google_client disabled3361 does not set Workhorse client data3362 behaves like a valid upload without multipart data3363 returns valid structure3364 behaves like a valid upload3365 returns valid structure3366 with an object with UTF-8 characters3367 returns an escaped path3368 when AzureRM is used3369 behaves like a valid AzureRM upload3370 enables the Workhorse client3371 behaves like a valid upload3372 returns valid structure3373 with an object with UTF-8 characters3374 returns an escaped path3375 behaves like a valid upload without multipart data3376 returns valid structure3377 behaves like a valid upload3378 returns valid structure3379 with an object with UTF-8 characters3380 returns an escaped path3381 when a custom storage domain is used3382 behaves like a valid AzureRM upload3383 enables the Workhorse client3384 behaves like a valid upload3385 returns valid structure3386 with an object with UTF-8 characters3387 returns an escaped path3388 #use_workhorse_google_client?3389 with consolidated_settings3390 with google_application_default3391 is expected to be truthy3392 with google_json_key_string3393 is expected to be truthy3394 with google_json_key_location3395 is expected to be truthy3396 without any google setting3397 is expected to be falsey3398 without consolidated_settings3399 is expected to be falsey3400Issues::RelativePositionRebalancingService3401 execute3402 re-balances a set of issues with clumps at the end and start3403 is idempotent3404 acts if the flag is enabled for the root namespace3405 acts if the flag is enabled for the group3406 aborts if there are too many rebalances running3407 resumes a started rebalance even if there are already too many rebalances running3408 re-balancing is retried on statement timeout exceptions3409 retries update statement3410 when resuming a stopped rebalance3411 rebalances the other half of issues3412Gitlab::Diff::Position3413 factory3414 produces a complete text position3415 produces a complete image position3416 allows the diff_refs to be passed as a single object3417 position for an added text file3418 is expected to be on text3419 is expected not to be on image3420 #diff_file3421 returns the correct diff file3422 #diff_line3423 returns the correct diff line3424 #line_code3425 returns the correct line code3426 position for an added image file3427 is expected not to be on text3428 is expected to be on image3429 returns the correct diff file3430 position for a changed file3431 position for an added line3432 #diff_file3433 returns the correct diff file3434 different folded positions in the same diff file3435 expands the diff file3436 #diff_line3437 returns the correct diff line3438 #line_code3439 returns the correct line code3440 position for an unchanged line3441 #diff_file3442 returns the correct diff file3443 #diff_line3444 returns the correct diff line3445 #line_code3446 returns the correct line code3447 position for a removed line3448 #diff_file3449 returns the correct diff file3450 #diff_line3451 returns the correct diff line3452 #line_code3453 returns the correct line code3454 position for a renamed file3455 position for an added line3456 #diff_file3457 returns the correct diff file3458 #diff_line3459 returns the correct diff line3460 #line_code3461 returns the correct line code3462 position for an unchanged line3463 #diff_file3464 returns the correct diff file3465 #diff_line3466 returns the correct diff line3467 #line_code3468 returns the correct line code3469 position for a removed line3470 #diff_file3471 returns the correct diff file3472 #diff_line3473 returns the correct diff line3474 #line_code3475 returns the correct line code3476 position for a deleted file3477 #diff_file3478 returns the correct diff file3479 #diff_line3480 returns the correct diff line3481 #line_code3482 returns the correct line code3483 position for a missing ref3484 #diff_file3485 does not raise exception3486 #diff_line3487 does not raise exception3488 #line_code3489 does not raise exception3490 position for a file in the initial commit3491 #diff_file3492 returns the correct diff file3493 #diff_line3494 returns the correct diff line3495 #line_code3496 returns the correct line code3497 position for a file in a straight comparison3498 #diff_file3499 returns the correct diff file3500 #diff_line3501 returns the correct diff line3502 #line_code3503 returns the correct line code3504 #==3505 when positions are equal3506 returns true3507 when positions are equal, except for truncated shas3508 returns true3509 when positions are unequal3510 returns false3511 #as_json3512 for text position3513 behaves like diff position json3514 returns the position as JSON3515 for image position3516 behaves like diff position json3517 returns the position as JSON3518 #to_json3519 for text position3520 behaves like diff position json3521 returns the position as JSON3522 works when nested under another hash3523 for image position3524 behaves like diff position json3525 returns the position as JSON3526 works when nested under another hash3527 #file_hash3528 returns SHA1 representation of the file_path3529 #multiline?3530 when the position type is text3531 when the start lines equal the end lines3532 returns true3533 when the start lines do not equal the end lines3534 returns true3535 when the position type is not text3536 returns false3537DiffNote3538 validations3539 is not valid when noteable is empty3540 behaves like a valid diff positionable note3541 for commit3542 position diff refs matches commit diff refs3543 is valid3544 position diff refs does not match commit diff refs3545 is invalid3546 commit does not exist3547 is invalid3548 original_position=3549 doesn't accept non-hash JSON passed as a string3550 does accept a position hash as a string3551 doesn't accept an array3552 does accept a hash3553 position=3554 doesn't accept non-hash JSON passed as a string3555 does accept a position hash as a string3556 doesn't accept an array3557 does accept a hash3558 change_position=3559 doesn't accept non-hash JSON passed as a string3560 does accept a position hash as a string3561 doesn't accept an array3562 does accept a hash3563 schema validation3564 position_attrs: {:old_path=>"WKKvkLwOSj9f0MwCZs0GPNcKuvLYNF4gIPa8HYRYQnwZtmre1EJZRUxSXs27OJQe1zUMW1aoEcGeZDoRwa4RaSmGovVsv3b3fQoWBphAqvvijw2igAKZzaYbROzrNxU7lP2rJqNmuGU9VIx89cB3D0ruKTdKayXV7udZJq1dVzhPaVRPPaBkU0IHHoHniUURkjGWSwmI9kDxsQFsW7p6HxqDZ3Wptv1bJTMG8usF8eGo4wBbpe2cOU3GASB9XZY29FCATlq2xWPx13o2sdr029bzqkMBj6UZ5toPg6DQIkyOjmKMvfWNmv1vupKq9xSZiaq3tLXAkYee7SAAW4sa7MTbzIbnccMLD63clKRC7GWpj7VJ4hZSaaVW6ZJGRzNMzeukced7q9pC8IRSBcEjUvNnV0TJf65H8lBl3IMgUFZ6afMs6md3v3ic2H5fH3IAx2wbvoXsgRdd54IgUSa0ExymP5LtzcvuW9MgQk3RFAVrI8iZHT3cqsUAtkRtrAQaY7nNgSi8cpnf7wmB1mPGZZW6wKbTHJqJ6yIDvTcLxlfFAWkHaM1SGmyrmGVaqdZqApPciF38GQ0D8PsVLXQVKDA0W8F7wnCGP5wYWszSjnSx2k4xz7KH5WXWQi7BxVkHQ3WppuxDWlmSowdJadHt3UMd3urhJhQk6EypME1J3mJS8L3O7TrrfjYeKmWtGFZadq4quJjNlgcaTrSsSRRxp0xUgFkSWDmvbmkC322N7NB9WoS8AFKjimtHzrqs7Bvp6YZ8z5Fam0MBCYV7Rho1cjO9QUkpi2rcOCKiEbkwtRojVnmZHVSn9eEazQm7n5yohYbSN6P3Ag6DBFl1gf2D2bqkaLwRriztBKQ5bQT45eOwbRhTTkCEsQDB5UzWwgleRW2wO8kgs4ykt20iK2P5XAMlyc8kl2nqYjYARc98ZuAY9P5GpyZEYD1a0QooXW0PZ2Xfh92LoBEwtVJgz1dLI6DCWnmvLjJze2TrQdv0V"}3565 is expected to be invalid3566 position_attrs: {:new_path=>"DDCfqtxWJcNzkyxG7llpvRgeQ4uUHs6Uw3Qav1aOgSsVUjwSI1lCz689ezhXmxJe7UZHiXIvJO83EhllfhJbdsnh9PjawLyudYMWuRLG2J4Dydbdtd7ghIBoCXQTNZ4La0lYp4s9hAoPo5mnZMLoNT0X3rnUCVDYjS0AzQMyQuqJ8uXgV8P6TKHrvE6Tc6DrERuGLTkBEWcvH700i76tBuwAfXPF5brNxd0lMYGWzHQAUAqDRy41SbrNVt3zFhU4lMIbBx8am6ylz5pdk1lFZHS8G2pXEJdlZyOSP3IeMOzaEc5zTbqhKv9fuKOskeNJTidkNk4a6fcHCuQjCsHAGUIocyyp6hxLHWoUvOzAMpWFIfX4Kkjd3wD2NJSk7ROol6sNKyzp2knvysjOEmWZOb42dPHRvZl11vgDFulrhcOqPpw9XuyHzSXbGH79fxsYzMvUoDIpna0mkbJLPOpvONbJNw8PgNwLHG2MDsPrbf1kyo0Q2I0JQUg3vT2fV33b8bk2DSk92zTMDzncJwmMNpkqMYcq3XlF0BXqrKhBvVX5AaRH5ufKJUnbnroNkJ8jOKKjhdRQfW96zspp75uy493Zw0Qdata3D8MjHrWerLJlrBG2WJmx8QFEQCC93AEULcF0WrId2D7K1C1m3n724WAoRrJLbrcJVuY1lvYdXS3w51RfRarDlJX6aAwNxX4bQn4ipil9dTCgr1trRe4Fgq5wtazDS54K09taVqsCnNa0SgYFJY7xrDifJav9q2GoC6jGE89GyNGjUbSktzgwyRbY2JO2wHsoYnOAUOryKbDIgO7ZwJ25TJZF4eMhR1MOtknIHrv5znF63cM8YWF4CN9se82vBUNVC0qlainkjm5FwMlw6bEALe2xQQZG3a3ZcGuJbv24wJjGrwl1vn5dTij18mkXgkdfI1PdNTXarJyzXsixeUCIrcVeHllOY8gieD97D6hHPR18jBPnFHUWPaXJ1iKHhEz7bpZbEX98T"}3567 is expected to be invalid3568 position_attrs: {:old_line=>"foo"}3569 is expected to be invalid3570 position_attrs: {:new_line=>"foo"}3571 is expected to be invalid3572 position_attrs: {:line_range=>{:foo=>"bar"}}3573 is expected to be invalid3574 position_attrs: {:line_range=>{:line_code=>"FTbUUL7EP6H3QbZxVzjrHMv7h91zTJfUJq9a4RNt8ZNLTLtmdkPppZsOqB1FUAkIsYEYiHzT5ZasloaeXzNCpoIMCrFTWxJaCAjkw"}}3575 is expected to be invalid3576 position_attrs: {:line_range=>{:type=>"0NoL0eZiFQSjQEk0qp9MWevGRhUM2w66aAUQMNSzpRCKR2Szf9UMAk3a8HEQivTba3dt9GRU5bD1ykoajPJ9yXKlpIGn70fXyzfH7"}}3577 is expected to be invalid3578 position_attrs: {:line_range=>{:old_line=>"foo"}}3579 is expected to be invalid3580 position_attrs: {:line_range=>{:new_line=>"foo"}}3581 is expected to be invalid3582 when importing3583 does not check if it's supported3584 #position=3585 when provided a string3586 sets the position3587 when provided a hash3588 sets the position3589 when provided a position object3590 sets the position3591 #original_position=3592 when provided a string3593 sets the original position3594 when provided a hash3595 sets the original position3596 when provided a position object3597 sets the original position3598 #create_diff_file callback3599 merge request3600 does not create diff note file if it is a reply3601 when diffs are already created3602 when diff_file is found in persisted diffs3603 when importing3604 when diff_line is found in persisted diff_file3605 creates a diff note file3606 when diff_line is not found in persisted diff_file3607 behaves like a valid diff note with after commit callback3608 when diff file is fetched from repository3609 when diff_line is not found3610 raises an error3611 when diff_line is found3612 fallback to fetch file from repository3613 creates a diff note file3614 when diff file is not found in repository3615 raises an error3616 when not importing3617 when diff_line is not found3618 raises an error3619 when diff_line is found3620 creates a diff note file3621 when diff file is not found in persisted diffs3622 behaves like a valid diff note with after commit callback3623 when diff file is fetched from repository3624 when diff_line is not found3625 raises an error3626 when diff_line is found3627 fallback to fetch file from repository3628 creates a diff note file3629 when diff file is not found in repository3630 raises an error3631 when diffs are not already created3632 behaves like a valid diff note with after commit callback3633 when diff file is fetched from repository3634 when diff_line is not found3635 raises an error3636 when diff_line is found3637 fallback to fetch file from repository3638 creates a diff note file3639 when diff file is not found in repository3640 raises an error3641 commit3642 creates a diff note file3643 does not create diff note file if it is a reply3644 #diff_file3645 when note_diff_file association exists3646 returns persisted diff file data3647 when the discussion was created in the diff3648 returns correct diff file3649 when discussion is outdated or not created in the diff3650 returns the correct diff file3651 note diff file creation enqueuing3652 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion3653 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion3654 when noteable is a Design3655 does not return a diff file3656 #latest_diff_file3657 when noteable is a Design3658 does not return a diff file3659 #diff_line3660 returns the correct diff line3661 #line_code3662 returns the correct line code3663 #active?3664 when noteable is a commit3665 returns true3666 when noteable is a merge request3667 when the merge request's diff refs match that of the diff note3668 returns true3669 when the merge request's diff refs don't match that of the diff note3670 returns false3671 creation3672 updating of position3673 when noteable is a commit3674 doesn't update the position3675 when noteable is a merge request3676 when the note is active3677 doesn't update the position3678 when the note is outdated3679 updates the position3680 #discussion_id3681 when it is newly created3682 has a discussion id3683 when it didn't store a discussion id before3684 has a discussion id3685 #created_at_diff?3686 when noteable is a commit3687 returns true3688 when noteable is a merge request3689 when the diff refs match the original one of the diff note3690 returns true3691 when the diff refs don't match the original one of the diff note3692 returns false3693 #supports_suggestion?3694 when noteable does not exist3695 returns false3696 when noteable does not support suggestions3697 returns false3698 when line is not suggestible3699 returns false3700 #banzai_render_context3701 includes expected context3702 image diff notes3703 returns true for on_image?3704 validations3705 is expected not to validate that :line_code cannot be empty/falsy3706 does not validate diff line3707 does not update the position3708 #to_ability_name3709 is expected to eq "note"3710 #shas3711 returns list of SHAs based on original_position3712 when position changes3713 includes the new position SHAs3714Gitlab::Database::ConsistencyChecker3715 #over_time_limit?3716 returns true only if the running time has exceeded MAX_RUNTIME3717 #execute3718 when empty tables3719 returns an empty response3720 when the tables contain matching items3721 does not process more than MAX_BATCHES3722 doesn not exceed the MAX_RUNTIME3723 returns the correct number of matches and batches checked3724 returns the min_id as the next_start_id if the check reaches the last element3725 when some items are missing from the first table3726 reports the missing elements3727 when some items are missing from the second table3728 reports the missing elements3729 when elements are different between the two tables3730 reports the difference between the two tables3731Gitlab::CycleAnalytics::StageSummary3732 #identifier3733 returns identifiers for each metric3734 #new_issues3735 doesn't find issues from other projects3736 when from date is given3737 finds the number of issues created after the 'from date'3738 returns the localized title3739 when `to` parameter is given3740 doesn't find any record3741 finds records created between `from` and `to` range3742 #commits3743 doesn't find commits from other projects3744 finds a large (> 100) number of commits if present3745 when from date is given3746 finds the number of commits created after the 'from date'3747 returns the localized title3748 when `to` parameter is given3749 doesn't find any record3750 finds records created between `from` and `to` range3751 when a guest user is signed in3752 does not include commit stats3753 behaves like deployment metrics examples3754 #deploys3755 doesn't find commits from other projects3756 when from date is given3757 finds the number of deploys made created after the 'from date'3758 returns the localized title3759 when `to` parameter is given3760 doesn't find any record3761 finds records created between `from` and `to` range3762 #deployment_frequency3763 includes the unit: `/day`3764 returns 0.0 when there were deploys but the frequency was too low3765 returns `-` when there were no deploys3766 when `to` is nil3767 includes range until now3768 when `to` is given3769 finds records created between `from` and `to` range3770 when `from` and `to` are within a day3771 returns the number of deployments made on that day3772Gitlab::ProjectTemplate3773 .all3774 returns all templates3775 #project_host3776 when `preview` is valid3777 is expected to eq "https://gitlab.com"3778 when `preview` is `nil`3779 is expected to eq nil3780 #project_path3781 is expected to eq "some/project/path"3782 #uri_encoded_project_path3783 is expected to eq "some%2Fproject%2Fpath"3784 .find3785 when there is a match3786 is expected to be a kind of Gitlab::ProjectTemplate3787 when there is no match3788 is expected to equal nil3789 .archive_directory3790 is expected to be a kind of Pathname3791 instance methods3792 is expected to respond to [:logo, :file, :archive_path]3793 validate all templates3794 rails has a valid archive3795 spring has a valid archive3796 express has a valid archive3797 iosswift has a valid archive3798 dotnetcore has a valid archive3799 android has a valid archive3800 gomicro has a valid archive3801 bridgetown has a valid archive3802 gatsby has a valid archive3803 hugo has a valid archive3804 pelican has a valid archive3805 jekyll has a valid archive3806 plainhtml has a valid archive3807 gitbook has a valid archive3808 hexo has a valid archive3809 middleman has a valid archive3810 gitpod_spring_petclinic has a valid archive3811 nfhugo has a valid archive3812 nfjekyll has a valid archive3813 nfplainhtml has a valid archive3814 nfgitbook has a valid archive3815 nfhexo has a valid archive3816 salesforcedx has a valid archive3817 serverless_framework has a valid archive3818 tencent_serverless_framework has a valid archive3819 jsonnet has a valid archive3820 cluster_management has a valid archive3821 kotlin_native_linux has a valid archive3822 typo3_distribution has a valid archive3823 with valid parameters3824 can be imported3825 with valid parameters3826 can be imported3827 with valid parameters3828 can be imported3829 with valid parameters3830 can be imported3831 with valid parameters3832 can be imported3833 with valid parameters3834 can be imported3835 with valid parameters3836 can be imported3837 with valid parameters3838 can be imported3839 with valid parameters3840 can be imported3841 with valid parameters3842 can be imported3843 with valid parameters3844 can be imported3845 with valid parameters3846 can be imported3847 with valid parameters3848 can be imported3849 with valid parameters3850 can be imported3851 with valid parameters3852 can be imported3853 with valid parameters3854 can be imported3855 with valid parameters3856 can be imported3857 with valid parameters3858 can be imported3859 with valid parameters3860 can be imported3861 with valid parameters3862 can be imported3863 with valid parameters3864 can be imported3865 with valid parameters3866 can be imported3867 with valid parameters3868 can be imported3869 with valid parameters3870 can be imported3871 with valid parameters3872 can be imported3873 with valid parameters3874 can be imported3875 with valid parameters3876 can be imported3877 with valid parameters3878 can be imported3879 with valid parameters3880 can be imported3881Gitlab::Pagination::OffsetPagination3882 #paginate3883 when resource can be paginated3884 first page3885 does not return the total headers when excluding them3886 when resources count is less than MAX_COUNT_LIMIT3887 behaves like paginated response3888 returns appropriate amount of resources3889 executes only one SELECT COUNT query3890 behaves like response with pagination headers3891 adds appropriate headers3892 when resources count is more than MAX_COUNT_LIMIT3893 does not return the X-Total and X-Total-Pages headers3894 behaves like paginated response3895 returns appropriate amount of resources3896 executes only one SELECT COUNT query3897 when without_count is true3898 does not return the X-Total and X-Total-Pages headers3899 behaves like paginated response3900 returns appropriate amount of resources3901 executes only one SELECT COUNT query3902 when resource already paginated3903 when per_page param is specified3904 returns appropriate amount of resources based on per_page param3905 when page and per page params are strings3906 returns appropriate amount of resources3907 when per_page param is blank3908 returns appropriate amount of resources3909 when page param is blank3910 returns appropriate amount of resources based on resource per(N)3911 when resource does not respond to limit_value3912 when page param is blank3913 returns appropriate amount of resources3914 when per_page param is blank3915 returns appropriate amount of resources with default per page value3916 when resource is a paginatable array3917 only returns the requested resources3918 does not return total headers when excluding them3919 behaves like response with pagination headers3920 adds appropriate headers3921 second page3922 returns appropriate amount of resources3923 adds appropriate headers3924 if order3925 is not present it adds default order(:id) if no order is present3926 is present it does not add anything3927 when resource empty3928 first page3929 returns appropriate amount of resources3930 adds appropriate headers3931Packages::Maven::FindOrCreatePackageService3932 #execute3933 path with version3934 package_exist: true, file_type: :jar, snapshot_version: false, shared_example_name: "reuse existing package"3935 behaves like reuse existing package3936 is expected not to change `Packages::Package.count`3937 returns the existing package3938 package_exist: false, file_type: :jar, snapshot_version: false, shared_example_name: "create package"3939 behaves like create package3940 is expected to change `Packages::Package.count` by 13941 sets the proper name and version3942 with optional attributes3943 behaves like assigns build to package3944 with build info3945 assigns the pipeline to the package3946 behaves like assigns status to package3947 with status param3948 assigns the status to the package3949 package_exist: true, file_type: :jar, snapshot_version: true, shared_example_name: "reuse existing package"3950 behaves like reuse existing package3951 is expected not to change `Packages::Package.count`3952 returns the existing package3953 package_exist: false, file_type: :jar, snapshot_version: true, shared_example_name: "create package"3954 behaves like create package3955 is expected to change `Packages::Package.count` by 13956 sets the proper name and version3957 with optional attributes3958 behaves like assigns build to package3959 with build info3960 assigns the pipeline to the package3961 behaves like assigns status to package3962 with status param3963 assigns the status to the package3964 package_exist: true, file_type: :maven_xml, snapshot_version: true, shared_example_name: "reuse existing package"3965 behaves like reuse existing package3966 is expected not to change `Packages::Package.count`3967 returns the existing package3968 package_exist: false, file_type: :maven_xml, snapshot_version: true, shared_example_name: "create package"3969 behaves like create package3970 is expected to change `Packages::Package.count` by 13971 sets the proper name and version3972 with optional attributes3973 behaves like assigns build to package3974 with build info3975 assigns the pipeline to the package3976 behaves like assigns status to package3977 with status param3978 assigns the status to the package3979 path without version3980 maven-metadata.xml file3981 with existing package3982 behaves like reuse existing package3983 is expected not to change `Packages::Package.count`3984 returns the existing package3985 marked as pending_destruction3986 behaves like create package3987 is expected to change `Packages::Package.count` by 13988 sets the proper name and version3989 with optional attributes3990 behaves like assigns build to package3991 with build info3992 assigns the pipeline to the package3993 behaves like assigns status to package3994 with status param3995 assigns the status to the package3996 without existing package3997 behaves like create package3998 is expected to change `Packages::Package.count` by 13999 sets the proper name and version4000 with optional attributes4001 behaves like assigns build to package4002 with build info4003 assigns the pipeline to the package4004 behaves like assigns status to package4005 with status param4006 assigns the status to the package4007 with a build4008 creates a build_info4009 with multiple files for the same package and the same pipeline4010 creates a single build info4011 when package duplicates are not allowed4012 behaves like returning an error4013 is expected not to change `project.package_files.count`4014 returns an error4015 for a SNAPSHOT version4016 behaves like returning an error4017 is expected not to change `project.package_files.count`4018 returns an error4019 when uploading to the versionless package which contains metadata about all versions4020 behaves like reuse existing package4021 is expected not to change `Packages::Package.count`4022 returns the existing package4023 when uploading different non-duplicate files to the same package4024 behaves like reuse existing package4025 is expected not to change `Packages::Package.count`4026 returns the existing package4027 when the package name matches the exception regex4028 behaves like reuse existing package4029 is expected not to change `Packages::Package.count`4030 returns the existing package4031 when the package version matches the exception regex4032 behaves like reuse existing package4033 is expected not to change `Packages::Package.count`4034 returns the existing package4035 when uploading a similar package file name with a classifier4036 behaves like reuse existing package4037 is expected not to change `Packages::Package.count`4038 returns the existing package4039 for a SNAPSHOT version4040 behaves like reuse existing package4041 is expected not to change `Packages::Package.count`4042 returns the existing package4043 with a very large file name4044 behaves like returning an error4045 is expected not to change `project.package_files.count`4046 returns an error4047Packages::FinderHelper4048 #packages_for_project4049 is expected to eq [#<Packages::Package id: 79, project_id: 476, created_at: "2023-03-30 11:53:20.142831361 +0000", updated_at: "2023-03-30 11:53:20.142831361 +0000", name: "my/company/app/my-app", version: "1.29-SNAPSHOT", package_type: "maven", creator_id: 877, status: "default", last_downloaded_at: nil>]4050 #packages_visible_to_user4051 with a user4052 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both packages"4053 behaves like returning both packages4054 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4055 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both packages"4056 behaves like returning both packages4057 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4058 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both packages"4059 behaves like returning both packages4060 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4061 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both packages"4062 behaves like returning both packages4063 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4064 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4065 behaves like returning both packages4066 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4067 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4068 behaves like returning both packages4069 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4070 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"4071 behaves like returning package14072 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4073 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"4074 behaves like returning package14075 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4076 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4077 behaves like returning both packages4078 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4079 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4080 behaves like returning both packages4081 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4082 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"4083 behaves like returning package14084 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4085 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"4086 behaves like returning package14087 is expected to eq [#<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +0000", name: "my/company/app/my-app", version: "1.32-SNAPSHOT", package_type: "maven", creator_id: 879, status: "default", last_downloaded_at: nil>]4088 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"4089 behaves like returning both packages4090 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4091 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"4092 behaves like returning both packages4093 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4094 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no packages"4095 behaves like returning no packages4096 is expected to be empty4097 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no packages"4098 behaves like returning no packages4099 is expected to be empty4100 with a group deploy token4101 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both packages"4102 behaves like returning both packages4103 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4104 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4105 behaves like returning both packages4106 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4107 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4108 behaves like returning both packages4109 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4110 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"4111 behaves like returning both packages4112 is expected to contain exactly #<Packages::Package id: 82, project_id: 478, created_at: "2023-03-30 11:53:20.668806611 +0000", updated_at: "2023-03-30 11:53:20.668806611 +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:53:20.916583826 +0000", updated_at: "2023-03-30 11:53:20.916583826 +0000", name: "my/company/app/my-app", version: "1.33-SNAPSHOT", package_type: "maven", creator_id: 880, status: "default", last_downloaded_at: nil>4113 #projects_visible_to_user4114 with a user4115 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both projects"4116 behaves like returning both projects4117 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4118 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both projects"4119 behaves like returning both projects4120 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4121 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both projects"4122 behaves like returning both projects4123 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4124 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both projects"4125 behaves like returning both projects4126 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4127 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4128 behaves like returning both projects4129 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4130 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4131 behaves like returning both projects4132 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4133 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"4134 behaves like returning project14135 is expected to eq [#<Project id:480 group30/project451>>]4136 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"4137 behaves like returning project14138 is expected to eq [#<Project id:480 group30/project451>>]4139 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4140 behaves like returning both projects4141 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4142 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4143 behaves like returning both projects4144 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4145 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"4146 behaves like returning project14147 is expected to eq [#<Project id:480 group30/project451>>]4148 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"4149 behaves like returning project14150 is expected to eq [#<Project id:480 group30/project451>>]4151 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"4152 behaves like returning both projects4153 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4154 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"4155 behaves like returning both projects4156 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4157 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no project"4158 behaves like returning no project4159 is expected to be empty4160 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no project"4161 behaves like returning no project4162 is expected to be empty4163 with a group deploy token4164 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both projects"4165 behaves like returning both projects4166 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4167 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4168 behaves like returning both projects4169 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4170 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4171 behaves like returning both projects4172 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4173 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"4174 behaves like returning both projects4175 is expected to contain exactly #<Project id:480 group30/project451>> and #<Project id:481 group30/group31/project452>>4176MergeRequestPresenter4177 #mergeable_discussions_state4178 returns the mergeable_discussions_state4179 #ci_status4180 when no head pipeline4181 return status from Ci integration4182 when head pipeline present4183 success with warnings4184 returns "success-with-warnings"4185 pipeline HAS status AND its not success with warnings4186 returns pipeline status4187 pipeline has NO status AND its not success with warnings4188 returns "preparing"4189 #conflict_resolution_path4190 when MR cannot be resolved in UI4191 does not return conflict resolution path4192 when conflicts cannot be resolved by user4193 does not return conflict resolution path4194 when able to access conflict resolution UI4195 does return conflict resolution path4196 issues links4197 #closing_issues_links4198 presents closing issues links4199 does not present related issues links4200 appends status when closing issue is already closed4201 #mentioned_issues_links4202 presents related issues links4203 does not present closing issues links4204 appends status when mentioned issue is already closed4205 #assign_to_closing_issues_path4206 is expected to match "user82/project457/-/merge_requests/1/assign_related_issues"4207 #assign_to_closing_issues_count4208 single closing issue4209 returns correct count4210 multiple closing issues4211 returns correct count4212 no closing issue4213 returns correct count4214 #cancel_auto_merge_path4215 when can cancel mwps4216 returns path4217 when cannot cancel mwps4218 returns nil4219 #merge_path4220 when can be merged by user4221 returns path4222 when cannot be merged by user4223 returns nil4224 #create_issue_to_resolve_discussions_path4225 when can create issue and issues enabled4226 returns path4227 when cannot create issue4228 returns nil4229 when issues disabled4230 returns nil4231 #remove_wip_path4232 when merge request enabled and has permission4233 has remove_wip_path4234 when has no permission4235 returns nil4236 #target_branch_commits_path4237 when target branch exists4238 returns path4239 when target branch does not exist4240 returns nil4241 #source_branch_commits_path4242 when source branch exists4243 returns path4244 when source branch does not exist4245 returns nil4246 #target_branch_tree_path4247 when target branch exists4248 returns path4249 when target branch does not exist4250 returns nil4251 #source_branch_path4252 when source branch exists4253 returns path4254 when source branch does not exist4255 returns nil4256 #target_branch_path4257 when target branch exists4258 returns path4259 when target branch does not exist4260 returns nil4261 #source_branch_link4262 when source branch exists4263 returns link4264 when source branch does not exist4265 returns text4266 #target_branch_link4267 when target branch exists4268 returns link4269 when target branch does not exist4270 returns text4271 #source_branch_with_namespace_link4272 returns link4273 escapes html, when source_branch does not exist4274 #rebase_path4275 when can rebase4276 returns path4277 when cannot rebase4278 when rebase in progress4279 returns nil4280 when user cannot merge4281 returns nil4282 should not be rebased4283 returns nil4284 #can_push_to_source_branch4285 when source branch exists AND user can push to source branch4286 returns true4287 when source branch does not exists4288 returns false4289 when user cannot push to source branch4290 returns false4291 #api_approvals_path4292 is expected to eq "/api/v4/projects/482/merge_requests/1/approvals"4293 #api_approve_path4294 is expected to eq "/api/v4/projects/482/merge_requests/1/approve"4295 #api_unapprove_path4296 is expected to eq "/api/v4/projects/482/merge_requests/1/unapprove"4297 #pipeline_coverage_delta4298 when merge request has pipeline coverage delta4299 formats coverage into 2 decimal points4300 when merge request does not have pipeline coverage delta4301 returns nil4302Gitlab::Database::BatchCount4303 #batch_count4304 counts table4305 counts with :id field4306 counts with "id" field4307 counts with table.id field4308 counts with Arel column4309 counts table with batch_size 50K4310 will not count table with a batch size less than allowed4311 produces the same result with different batch sizes4312 counts with a start and finish4313 stops counting when finish value is reached4314 defaults the batch size to 1000004315 does not use BETWEEN to define the range4316 behaves like when a transaction is open4317 raises an error4318 behaves like when batch fetch query is canceled4319 reduces batch size by half and retry fetch4320 when all retries fail4321 logs failing query4322 disallowed_configurations4323 returns fallback if start is bigger than finish4324 returns fallback if loops more than allowed4325 returns fallback if batch size is less than min required4326 raises an error if distinct count is requested4327 when a relation is grouped4328 count by default column4329 counts grouped records4330 #batch_count_with_timeout4331 counts table4332 counts with :id field4333 counts with "id" field4334 counts with table.id field4335 counts with Arel column4336 counts table with batch_size 50K4337 will not count table with a batch size less than allowed4338 produces the same result with different batch sizes4339 counts with a start and finish4340 stops counting when finish value is reached4341 returns a partial count when timeout elapses4342 starts counting from a given partial result4343 behaves like when a transaction is open4344 raises an error4345 behaves like when batch fetch query is canceled4346 reduces batch size by half and retry fetch4347 when all retries fail4348 logs failing query4349 disallowed_configurations4350 returns fallback if start is bigger than finish4351 returns fallback if loops more than allowed4352 returns fallback if batch size is less than min required4353 raises an error if distinct count is requested4354 when a relation is grouped4355 count by default column4356 counts grouped records4357 #batch_distinct_count4358 counts with column field4359 counts with "id" field4360 counts with table.column field4361 counts with Arel column4362 counts with :column field with batch_size of 50K4363 will not count table with a batch size less than allowed4364 produces the same result with different batch sizes4365 counts with a start and finish4366 stops counting when finish value is reached4367 counts with User min and max as start and finish4368 defaults the batch size to 100004369 behaves like when a transaction is open4370 raises an error4371 disallowed configurations4372 returns fallback if start is bigger than finish4373 returns fallback if loops more than allowed4374 returns fallback if batch size is less than min required4375 will raise an error if distinct count with the :id column is requested4376 when a relation is grouped4377 distinct count by non-unique column4378 counts grouped records4379 behaves like when batch fetch query is canceled4380 reduces batch size by half and retry fetch4381 when all retries fail4382 logs failing query4383 #batch_sum4384 returns the sum of values in the given column4385 works when given an Arel column4386 works with a batch size of 50K4387 works with start and finish provided4388 returns the same result regardless of batch size4389 defaults the batch size to 10004390 behaves like when a transaction is open4391 raises an error4392 behaves like disallowed configurations4393 returns fallback if start is bigger than finish4394 returns fallback if loops more than allowed4395 returns fallback if batch size is less than min required4396 behaves like when batch fetch query is canceled4397 reduces batch size by half and retry fetch4398 when all retries fail4399 logs failing query4400 #batch_average4401 calls BatchAverageCounter4402MergeRequests::AddTodoWhenBuildFailsService4403 #execute4404 commit status with ref4405 notifies the todo service4406 commit status with non-HEAD ref4407 does not notify the todo service4408 commit status without ref4409 does not notify the todo service4410 when commit status is a build allowed to fail4411 does not create todo4412 when build belongs to a merge request pipeline4413 notifies the todo service4414 #close4415 commit status with ref4416 notifies the todo service4417 commit status with non-HEAD ref4418 does not notify the todo service4419 commit status without ref4420 does not notify the todo service4421 when build belongs to a merge request pipeline4422 notifies the todo service4423 #close_all4424 when using pipeline that belongs to merge request4425 resolves todos about failed builds for pipeline4426 when pipeline is not related to merge request4427 does not resolve any todos about failed builds4428Subscribable Subscribable4429 #subscribed?4430 behaves like returns expected values4431 without user4432 returns false4433 without project4434 returns false when no subscription exists4435 returns true when a subscription exists and subscribed is true4436 returns false when a subscription exists and subscribed is false4437 with project4438 returns false when no subscription exists4439 returns true when a subscription exists and subscribed is true4440 returns false when a subscription exists and subscribed is false4441 #subscribers4442 returns [] when no subcribers exists4443 returns the subscribed users4444 #toggle_subscription4445 without project4446 toggles the current subscription state for the given user4447 with project4448 toggles the current subscription state for the given user4449 #subscribe4450 without project4451 subscribes the given user4452 with project4453 subscribes the given user4454 #unsubscribe4455 without project4456 unsubscribes the given current user4457 with project4458 unsubscribes the given current user4459 #set_subscription4460 without project4461 behaves like setting subscriptions4462 when desired_state is set to true4463 when a user is subscribed to the resource4464 keeps the user subscribed4465 when a user is not subscribed to the resource4466 subscribes the user to the resource4467 when desired_state is set to false4468 when a user is subscribed to the resource4469 unsubscribes the user from the resource4470 when a user is not subscribed to the resource4471 keeps the user unsubscribed4472 with project4473 behaves like setting subscriptions4474 when desired_state is set to true4475 when a user is subscribed to the resource4476 keeps the user subscribed4477 when a user is not subscribed to the resource4478 subscribes the user to the resource4479 when desired_state is set to false4480 when a user is subscribed to the resource4481 unsubscribes the user from the resource4482 when a user is not subscribed to the resource4483 keeps the user unsubscribed4484 #lazy_subscription4485 executes only one SQL query4486 with work items4487 loads correct subscribable type4488 matches existing subscription type4489Gitlab::Ci::Status::External::Factory4490 when external status has a simple core status4491 when core status is created4492 fabricates a core status created4493 extends core status with common methods4494 when core status is waiting_for_resource4495 fabricates a core status waiting_for_resource4496 extends core status with common methods4497 when core status is preparing4498 fabricates a core status preparing4499 extends core status with common methods4500 when core status is pending4501 fabricates a core status pending4502 extends core status with common methods4503 when core status is running4504 fabricates a core status running4505 extends core status with common methods4506 when core status is success4507 fabricates a core status success4508 extends core status with common methods4509 when core status is failed4510 fabricates a core status failed4511 extends core status with common methods4512 when core status is canceled4513 fabricates a core status canceled4514 extends core status with common methods4515 when core status is skipped4516 fabricates a core status skipped4517 extends core status with common methods4518 when core status is manual4519 fabricates a core status manual4520 extends core status with common methods4521 when core status is scheduled4522 fabricates a core status scheduled4523 extends core status with common methods4524Ci::PlayBuildService#execute4525 when project does not have repository yet4526 allows user to play build if protected branch rules are met4527 does not allow user with developer role to play build4528 when project has repository4529 allows user with developer role to play a build4530 prevents a blocked developer from playing a build4531 when build is a playable manual action4532 enqueues the build4533 reassignes build user correctly4534 when a subsequent job is skipped4535 marks the subsequent job as processable4536 when variables are supplied4537 assigns the variables to the build4538 and variables are invalid4539 resets the attributes of the build4540 when user defined variables are restricted4541 when user is maintainer4542 assigns the variables to the build4543 when user is developer4544 raises an error4545 when build is not a playable manual action4546 duplicates the build4547 assigns users correctly4548 and is not retryable4549 does not duplicate the build4550 does not enqueue the build4551 when build is not action4552 raises an error4553 when user does not have ability to trigger action4554 raises an error4555Gitlab::Ci::Variables::Collection4556 .new4557 can be initialized with an array4558 can be initialized without an argument4559 #append4560 appends a hash4561 appends a Ci::Variable4562 appends an internal resource4563 returns self4564 #compact4565 returns a new Collection instance4566 rejects pair that has nil value4567 #concat4568 appends all elements from an array4569 appends all elements from other collection4570 does not concatenate resource if it undefined4571 returns self4572 #+4573 makes it possible to combine with an array4574 makes it possible to combine with another collection4575 #[]4576 with variable key with single entry4577 behaves like an array access operator4578 for a non-existent variable name4579 returns nil4580 for an existent variable name4581 returns the last Item4582 with variable key with multiple entries4583 behaves like an array access operator4584 for a non-existent variable name4585 returns nil4586 for an existent variable name4587 returns the last Item4588 #all4589 with variable key with single entry4590 behaves like a method returning all known variables or nil4591 for a non-existent variable name4592 returns nil4593 for an existing variable name4594 returns all expected Items4595 with variable key with multiple entries4596 behaves like a method returning all known variables or nil4597 for a non-existent variable name4598 returns nil4599 for an existing variable name4600 returns all expected Items4601 #size4602 returns zero for empty collection4603 returns 2 for collection with 2 variables4604 returns 3 for collection with 2 duplicate variables4605 #to_runner_variables4606 creates an array of hashes in a runner-compatible format4607 #to_hash4608 returns regular hash in valid order without duplicates4609 #reject4610 returns a Collection instance4611 returns correctly filtered Collection4612 #sort_and_expand_all4613 table tests4614 empty array4615 returns Collection4616 expands variables4617 preserves raw attribute4618 empty string4619 returns Collection4620 expands variables4621 preserves raw attribute4622 simple expansions4623 returns Collection4624 expands variables4625 preserves raw attribute4626 complex expansion4627 returns Collection4628 expands variables4629 preserves raw attribute4630 unused variables4631 returns Collection4632 expands variables4633 preserves raw attribute4634 complex expansions4635 returns Collection4636 expands variables4637 preserves raw attribute4638 escaped characters in complex expansions keeping undefined are kept intact4639 returns Collection4640 expands variables4641 preserves raw attribute4642 escaped characters in complex expansions discarding undefined are kept intact4643 returns Collection4644 expands variables4645 preserves raw attribute4646 out-of-order expansion4647 returns Collection4648 expands variables4649 preserves raw attribute4650 out-of-order complex expansion4651 returns Collection4652 expands variables4653 preserves raw attribute4654 missing variable discarding original4655 returns Collection4656 expands variables4657 preserves raw attribute4658 missing variable keeping original4659 returns Collection4660 expands variables4661 preserves raw attribute4662 complex expansions with missing variable keeping original4663 returns Collection4664 expands variables4665 preserves raw attribute4666 complex expansions with raw variable with expand_raw_refs: true (default)4667 returns Collection4668 expands variables4669 preserves raw attribute4670 complex expansions with raw variable with expand_raw_refs: false4671 returns Collection4672 expands variables4673 preserves raw attribute4674 variable value referencing password with special characters4675 returns Collection4676 expands variables4677 preserves raw attribute4678 cyclic dependency causes original array to be returned4679 returns Collection4680 expands variables4681 preserves raw attribute4682 file variables with expand_file_refs: true4683 returns Collection4684 expands variables4685 preserves raw attribute4686 file variables with expand_file_refs: false4687 returns Collection4688 expands variables4689 preserves raw attribute4690 #to_s4691 is expected to eq "[\"VAR\", \"VAR2\"], @errors='circular variable reference detected'"4692Issues::ExportCsvService4693 renders csv to string4694 #email4695 emails csv4696 renders with a target filesize4697 includes4698 with export_csv_preload_in_batches feature flag disabled4699 behaves like exports CSVs for issues4700 includes the columns required for import4701 returns two issues4702 iid4703 url4704 title4705 state4706 description4707 author name4708 author username4709 assignee name4710 assignee username4711 confidential4712 milestone4713 labels4714 due_date4715 created_at4716 updated_at4717 closed_at4718 discussion_locked4719 weight4720 time estimate4721 time spent4722 with issues filtered by labels and project4723 returns only filtered objects4724 with label links4725 does not run a query for each label link4726 returns the labels in sorted order4727 with export_csv_preload_in_batches feature flag enabled4728 behaves like exports CSVs for issues4729 includes the columns required for import4730 returns two issues4731 iid4732 url4733 title4734 state4735 description4736 author name4737 author username4738 assignee name4739 assignee username4740 confidential4741 milestone4742 labels4743 due_date4744 created_at4745 updated_at4746 closed_at4747 discussion_locked4748 weight4749 time estimate4750 time spent4751 with issues filtered by labels and project4752 returns only filtered objects4753 with label links4754 does not run a query for each label link4755 returns the labels in sorted order4756 with minimal details4757 renders labels as nil4758WikiPage::Meta4759 Associations4760 is expected to belong to project required: false4761 is expected to have many slugs4762 is expected to have many events4763 can find slugs4764 Validations4765 is expected to validate that :project_id cannot be empty/falsy4766 is expected to validate that the length of :title is at most 2554767 is expected not to allow :title to be ‹nil›4768 is forbidden to have two records for the same project with the same canonical_slug4769 #canonical_slug4770 can be set on initialization4771 there are no slugs4772 is expected to have attributes {:canonical_slug => (be nil)}4773 we have some non-canonical slugs4774 is expected to have attributes {:canonical_slug => (be nil)}4775 issues at most one query4776 issues no queries if we already know the slug4777 we have a canonical slug4778 has the correct value4779 canonical_slug=4780 the slug is not known to us4781 changes it to the correct value4782 ensures the slug is in the db4783 issues at most N queries4784 issues fewer queries if we already know the current slug4785 the slug is already in the DB (but not canonical)4786 changes it to the correct value4787 ensures the slug is in the db4788 issues at most N queries4789 issues fewer queries if we already know the current slug4790 the slug is already in the DB (and canonical)4791 changes it to the correct value4792 ensures the slug is in the db4793 issues at most N queries4794 issues fewer queries if we already know the current slug4795 the slug is up to date and in the DB4796 changes it to the correct value4797 ensures the slug is in the db4798 issues at most N queries4799 issues fewer queries if we already know the current slug4800 .find_or_create4801 there are problems4802 the slug is too long4803 raises an error4804 a conflicting record exists4805 raises an error4806 the wiki page is not valid4807 raises an error4808 no existing record exists4809 establishes the correct state4810 makes a reasonable number of DB queries4811 the commit happened a day ago4812 establishes the correct state4813 makes a reasonable number of DB queries4814 the last_known_slug is the same as the current slug, as on creation4815 establishes the correct state4816 makes a reasonable number of DB queries4817 a record exists in the DB in the correct state4818 establishes the correct state4819 makes a reasonable number of DB queries4820 a record exists in the DB, but we need to update timestamps4821 establishes the correct state4822 makes a reasonable number of DB queries4823 we need to update the slug, but not the title4824 establishes the correct state4825 makes a reasonable number of DB queries4826 we need to update the title, but not the slug4827 establishes the correct state4828 makes a reasonable number of DB queries4829 we want to change the slug back to a previous version4830 establishes the correct state4831 makes a reasonable number of DB queries4832 we want to change the slug a bunch of times4833 establishes the correct state4834 makes a reasonable number of DB queries4835 we need to update the title and the slug4836 establishes the correct state4837 makes a reasonable number of DB queries4838Gitlab::Ci::Ansi2json::Style4839 #set?4840 when fg color is set4841 is expected to be truthy4842 when bg color is set4843 is expected to be truthy4844 when mask is set4845 is expected to be truthy4846 nothing is set4847 is expected to be falsey4848 #reset!4849 set the style params to default4850 update formats to mimic terminals4851 when fg color present4852 when mask is set to bold4853 changes the fg color to a lighter version4854 when mask set to another format4855 does not change the fg color4856 when mask is not set4857 does not change the fg color4858 #update4859 initial_state: [], ansi_commands: ["0"], result: "", description: "does not set any style"4860 change the style4861 initial_state: [], ansi_commands: ["1"], result: "term-bold", description: "enables format bold"4862 change the style4863 initial_state: [], ansi_commands: ["3"], result: "term-italic", description: "enables format italic"4864 change the style4865 initial_state: [], ansi_commands: ["4"], result: "term-underline", description: "enables format underline"4866 change the style4867 initial_state: [], ansi_commands: ["8"], result: "term-conceal", description: "enables format conceal"4868 change the style4869 initial_state: [], ansi_commands: ["9"], result: "term-cross", description: "enables format cross"4870 change the style4871 initial_state: ["1"], ansi_commands: ["21"], result: "", description: "disables format bold"4872 change the style4873 initial_state: ["1", "3"], ansi_commands: ["21"], result: "term-italic", description: "disables format bold and leaves italic"4874 change the style4875 initial_state: ["1"], ansi_commands: ["22"], result: "", description: "disables format bold using command 22"4876 change the style4877 initial_state: ["1", "3"], ansi_commands: ["22"], result: "term-italic", description: "disables format bold and leaves italic using command 22"4878 change the style4879 initial_state: ["3"], ansi_commands: ["23"], result: "", description: "disables format italic"4880 change the style4881 initial_state: ["1", "3"], ansi_commands: ["23"], result: "term-bold", description: "disables format italic and leaves bold"4882 change the style4883 initial_state: ["4"], ansi_commands: ["24"], result: "", description: "disables format underline"4884 change the style4885 initial_state: ["1", "4"], ansi_commands: ["24"], result: "term-bold", description: "disables format underline and leaves bold"4886 change the style4887 initial_state: ["8"], ansi_commands: ["28"], result: "", description: "disables format conceal"4888 change the style4889 initial_state: ["1", "8"], ansi_commands: ["28"], result: "term-bold", description: "disables format conceal and leaves bold"4890 change the style4891 initial_state: ["9"], ansi_commands: ["29"], result: "", description: "disables format cross"4892 change the style4893 initial_state: ["1", "9"], ansi_commands: ["29"], result: "term-bold", description: "disables format cross and leaves bold"4894 change the style4895 initial_state: [], ansi_commands: ["30"], result: "term-fg-black", description: "sets fg color black"4896 change the style4897 initial_state: [], ansi_commands: ["31"], result: "term-fg-red", description: "sets fg color red"4898 change the style4899 initial_state: [], ansi_commands: ["32"], result: "term-fg-green", description: "sets fg color green"4900 change the style4901 initial_state: [], ansi_commands: ["33"], result: "term-fg-yellow", description: "sets fg color yellow"4902 change the style4903 initial_state: [], ansi_commands: ["34"], result: "term-fg-blue", description: "sets fg color blue"4904 change the style4905 initial_state: [], ansi_commands: ["35"], result: "term-fg-magenta", description: "sets fg color magenta"4906 change the style4907 initial_state: [], ansi_commands: ["36"], result: "term-fg-cyan", description: "sets fg color cyan"4908 change the style4909 initial_state: [], ansi_commands: ["37"], result: "term-fg-white", description: "sets fg color white"4910 change the style4911 initial_state: [], ansi_commands: ["38", "5", "1"], result: "xterm-fg-1", description: "sets xterm fg color 1"4912 change the style4913 initial_state: [], ansi_commands: ["38", "5", "2"], result: "xterm-fg-2", description: "sets xterm fg color 2"4914 change the style4915 initial_state: [], ansi_commands: ["38", "1"], result: "term-bold", description: "ignores 38 command if not followed by 5 and sets format bold"4916 change the style4917 initial_state: [], ansi_commands: ["40"], result: "term-bg-black", description: "sets bg color black"4918 change the style4919 initial_state: [], ansi_commands: ["41"], result: "term-bg-red", description: "sets bg color red"4920 change the style4921 initial_state: [], ansi_commands: ["42"], result: "term-bg-green", description: "sets bg color green"4922 change the style4923 initial_state: [], ansi_commands: ["43"], result: "term-bg-yellow", description: "sets bg color yellow"4924 change the style4925 initial_state: [], ansi_commands: ["44"], result: "term-bg-blue", description: "sets bg color blue"4926 change the style4927 initial_state: [], ansi_commands: ["45"], result: "term-bg-magenta", description: "sets bg color magenta"4928 change the style4929 initial_state: [], ansi_commands: ["46"], result: "term-bg-cyan", description: "sets bg color cyan"4930 change the style4931 initial_state: [], ansi_commands: ["47"], result: "term-bg-white", description: "sets bg color white"4932 change the style4933 initial_state: [], ansi_commands: ["48", "5", "1"], result: "xterm-bg-1", description: "sets xterm bg color 1"4934 change the style4935 initial_state: [], ansi_commands: ["48", "5", "2"], result: "xterm-bg-2", description: "sets xterm bg color 2"4936 change the style4937 initial_state: [], ansi_commands: ["48", "1"], result: "term-bold", description: "ignores 48 command if not followed by 5 and sets format bold"4938 change the style4939 initial_state: [], ansi_commands: ["90"], result: "term-fg-l-black", description: "sets fg color light black"4940 change the style4941 initial_state: [], ansi_commands: ["91"], result: "term-fg-l-red", description: "sets fg color light red"4942 change the style4943 initial_state: [], ansi_commands: ["92"], result: "term-fg-l-green", description: "sets fg color light green"4944 change the style4945 initial_state: [], ansi_commands: ["93"], result: "term-fg-l-yellow", description: "sets fg color light yellow"4946 change the style4947 initial_state: [], ansi_commands: ["94"], result: "term-fg-l-blue", description: "sets fg color light blue"4948 change the style4949 initial_state: [], ansi_commands: ["95"], result: "term-fg-l-magenta", description: "sets fg color light magenta"4950 change the style4951 initial_state: [], ansi_commands: ["96"], result: "term-fg-l-cyan", description: "sets fg color light cyan"4952 change the style4953 initial_state: [], ansi_commands: ["97"], result: "term-fg-l-white", description: "sets fg color light white"4954 change the style4955 initial_state: [], ansi_commands: ["100"], result: "term-bg-l-black", description: "sets bg color light black"4956 change the style4957 initial_state: [], ansi_commands: ["101"], result: "term-bg-l-red", description: "sets bg color light red"4958 change the style4959 initial_state: [], ansi_commands: ["102"], result: "term-bg-l-green", description: "sets bg color light green"4960 change the style4961 initial_state: [], ansi_commands: ["103"], result: "term-bg-l-yellow", description: "sets bg color light yellow"4962 change the style4963 initial_state: [], ansi_commands: ["104"], result: "term-bg-l-blue", description: "sets bg color light blue"4964 change the style4965 initial_state: [], ansi_commands: ["105"], result: "term-bg-l-magenta", description: "sets bg color light magenta"4966 change the style4967 initial_state: [], ansi_commands: ["106"], result: "term-bg-l-cyan", description: "sets bg color light cyan"4968 change the style4969 initial_state: [], ansi_commands: ["107"], result: "term-bg-l-white", description: "sets bg color light white"4970 change the style4971 initial_state: ["1"], ansi_commands: [], result: "", description: "resets style from format bold"4972 change the style4973 initial_state: ["1"], ansi_commands: ["0"], result: "", description: "resets style from format bold"4974 change the style4975 initial_state: ["1", "3"], ansi_commands: ["0"], result: "", description: "resets style from format bold and italic"4976 change the style4977 initial_state: ["1", "3", "term-fg-l-red", "term-bg-yellow"], ansi_commands: ["0"], result: "", description: "resets all formats and colors"4978 change the style4979 initial_state: ["31", "42"], ansi_commands: ["39"], result: "term-bg-green", description: "set foreground from red to default leaving background unchanged"4980 change the style4981 initial_state: ["31", "42"], ansi_commands: ["49"], result: "term-fg-red", description: "set background from green to default leaving foreground unchanged"4982 change the style4983 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"4984 change the style4985 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"4986 change the style4987DiffFileEntity4988 when there is no merge request4989 behaves like diff file entity4990 exposes correct attributes4991 behaves like diff file base entity4992 exposes essential attributes4993 when diff file does not have a blob and content sha4994 exposes some attributes as nil4995 when a viewer4996 matches the schema4997 when it is a whitespace only change4998 has whitespace_only true4999 when the highlighted lines arent shown5000 has whitespace_only nil5001 when it is a new file5002 has whitespace_only false5003 when it is a collapsed file5004 has whitespace_only false5005 diff files5006 when diff_view is parallel5007 contains only the parallel diff lines5008 when diff_view is parallel5009 contains only the inline diff lines5010 when there is a merge request5011 exposes additional attributes5012 points all urls to merge request target project5013 exposes load_collapsed_diff_url if the file viewer is collapsed5014 behaves like diff file entity5015 exposes correct attributes5016 behaves like diff file base entity5017 exposes essential attributes5018 when diff file does not have a blob and content sha5019 exposes some attributes as nil5020 when a viewer5021 matches the schema5022 when it is a whitespace only change5023 has whitespace_only true5024 when the highlighted lines arent shown5025 has whitespace_only nil5026 when it is a new file5027 has whitespace_only false5028 when it is a collapsed file5029 has whitespace_only false5030 diff files5031 when diff_view is parallel5032 contains only the parallel diff lines5033 when diff_view is parallel5034 contains only the inline diff lines5035 when diff_view is unknown5036 hides highlighted_diff_lines and parallel_diff_lines5037 #parallel_diff_lines5038 exposes parallel diff lines correctly5039 #highlighted_diff_lines5040 calls diff_lines_for_serializer on diff_file5041 behaves like diff file with conflict_type5042 #conflict_type5043 returns nil by default5044 when there is matching conflict file5045 returns false5046Gitlab::BlobHelper5047 #extname5048 returns the extension5049 #known_extension?5050 returns true5051 #viewable5052 returns true5053 returns false5054 #large?5055 returns false5056 returns true5057 #binary?5058 returns true5059 returns false5060 #text?5061 returns true5062 returns false5063 #image?5064 with a .txt file5065 returns false5066 with a .webp file5067 returns true5068 #mime_type5069 returns text/plain5070 returns application/pdf5071 #binary_mime_type?5072 returns false5073 #lines5074 returns the payload in an Array5075 #content_type5076 returns text/plain5077 returns text/plain5078 #encoded_newlines_re5079 returns a regular expression5080 #ruby_encoding5081 returns UTF-85082 #encoding5083 returns UTF-85084 #empty?5085 returns false5086ReleasesFinder5087 when parent is a project5088 behaves like when the user is not part of the project5089 returns no releases5090 when the user is a project guest5091 sorts by release date5092 with sorting parameters5093 by default is released_at in descending order5094 is expected to eq [#<Release id: 6, tag: "v1.1.0", description: [FILTERED], project_id: 615, created_at: "2023-03-27 11:56:11.191567674 +0000", updated_at: "2023-03-30 11:56:11.192082904 +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:56:10.947316948 +0000">, #<Release id: 5, tag: "v1.0.0", description: [FILTERED], project_id: 615, created_at: "2023-03-30 11:56:10.778026528 +0000", updated_at: "2023-03-30 11:56:10.805122867 +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:56:10.804473427 +0000">]5095 released_at in ascending order5096 is expected to eq [#<Release id: 7, tag: "v1.0.0", description: [FILTERED], project_id: 616, created_at: "2023-03-30 11:56:12.348649877 +0000", updated_at: "2023-03-30 11:56:12.377298296 +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:56:12.376737526 +0000">, #<Release id: 8, tag: "v1.1.0", description: [FILTERED], project_id: 616, created_at: "2023-03-27 11:56:12.752590834 +0000", updated_at: "2023-03-30 11:56:12.753536314 +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:56:12.503966249 +0000">]5097 order by created_at in descending order5098 is expected to eq [#<Release id: 9, tag: "v1.0.0", description: [FILTERED], project_id: 617, created_at: "2023-03-30 11:56:13.851448841 +0000", updated_at: "2023-03-30 11:56:13.878642909 +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:56:13.878028289 +0000">, #<Release id: 10, tag: "v1.1.0", description: [FILTERED], project_id: 617, created_at: "2023-03-27 11:56:14.248924128 +0000", updated_at: "2023-03-30 11:56:14.249675378 +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:56:14.017621471 +0000">]5099 order by created_at in ascending order5100 is expected to eq [#<Release id: 12, tag: "v1.1.0", description: [FILTERED], project_id: 618, created_at: "2023-03-27 11:56:15.807689988 +0000", updated_at: "2023-03-30 11:56:15.808164578 +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:56:15.544070723 +0000">, #<Release id: 11, tag: "v1.0.0", description: [FILTERED], project_id: 618, created_at: "2023-03-30 11:56:15.398999941 +0000", updated_at: "2023-03-30 11:56:15.421796310 +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:56:15.421326120 +0000">]5101 behaves like preload5102 preloads associations5103 when preload is false5104 does not preload associations5105 behaves like when a tag parameter is passed5106 only returns the release with the matching tag5107Gitlab::Issues::Rebalancing::State5108 rebalancing issues in namespace5109 is expected to eq 15110 behaves like issues rebalance caching5111 #track_new_running_rebalance5112 caches a project id to track caching in progress5113 #set and get current_index5114 returns zero as current index when index not cached5115 returns cached current index5116 #set and get current_project5117 returns nil if there is no project_id cached5118 returns cached current project_id5119 #rebalance_in_progress?5120 return zero if no re-balances are running5121 return false if no re-balances are running5122 return true a re-balance for given project/namespace is running5123 caching issue ids5124 with no issue ids cached5125 returns zero when there are no cached issue ids5126 returns empty array when there are no cached issue ids5127 with cached issue ids5128 returns count of cached issue ids5129 returns array of issue ids5130 limits returned values5131 when caching duplicate issue_ids5132 does not cache duplicate issues5133 returns cached issues with latest scores5134 when setting expiration5135 when tracking new rebalance5136 returns as expired for non existent key5137 has expiration set5138 when setting current index5139 returns as expiring for non existent key5140 has expiration set5141 when setting current project id5142 returns as expired for non existent key5143 has expiration set5144 when setting cached issue ids5145 returns as expired for non existent key5146 has expiration set5147 cleanup cache5148 removes cache keys5149 .fetch_rebalancing_groups_and_projects5150 caches recently finished rebalance key5151 rebalancing issues in a project5152 is expected to eq 25153 behaves like issues rebalance caching5154 #track_new_running_rebalance5155 caches a project id to track caching in progress5156 #set and get current_index5157 returns zero as current index when index not cached5158 returns cached current index5159 #set and get current_project5160 returns nil if there is no project_id cached5161 returns cached current project_id5162 #rebalance_in_progress?5163 return zero if no re-balances are running5164 return false if no re-balances are running5165 return true a re-balance for given project/namespace is running5166 caching issue ids5167 with no issue ids cached5168 returns zero when there are no cached issue ids5169 returns empty array when there are no cached issue ids5170 with cached issue ids5171 returns count of cached issue ids5172 returns array of issue ids5173 limits returned values5174 when caching duplicate issue_ids5175 does not cache duplicate issues5176 returns cached issues with latest scores5177 when setting expiration5178 when tracking new rebalance5179 returns as expired for non existent key5180 has expiration set5181 when setting current index5182 returns as expiring for non existent key5183 has expiration set5184 when setting current project id5185 returns as expired for non existent key5186 has expiration set5187 when setting cached issue ids5188 returns as expired for non existent key5189 has expiration set5190 cleanup cache5191 removes cache keys5192 .fetch_rebalancing_groups_and_projects5193 caches recently finished rebalance key5194Gitlab::Redis::Sessions5195 behaves like redis_new_instance_shared_examples5196 behaves like redis_shared_examples5197 .config_file_name5198 when there is no config file anywhere5199 is expected to be nil5200 and there is a global env override5201 is expected to eq "global override"5202 and there is an instance specific config file5203 is expected to eq "/tmp/d20230330-358-1x6970/config/redis.sessions.yml"5204 returns a path that exists5205 and there is a specific env override5206 is expected to eq "instance specific override"5207 .store5208 with old format5209 behaves like redis store5210 instantiates Redis::Store5211 with the namespace5212 uses specified namespace5213 with new format5214 behaves like redis store5215 instantiates Redis::Store5216 with the namespace5217 uses specified namespace5218 .params5219 withstands mutation5220 when url contains unix socket reference5221 with old format5222 returns path key instead5223 with new format5224 returns path key instead5225 when url is host based5226 with old format5227 returns hash with host, port, db, and password5228 with new format5229 rails_env: "development", host: "development-host"5230 returns hash with host, port, db, and password5231 rails_env: "test", host: "test-host"5232 returns hash with host, port, db, and password5233 rails_env: "production", host: "production-host"5234 returns hash with host, port, db, and password5235 with redis cluster format5236 rails_env: "development", host: "development-master"5237 returns hash with cluster and password5238 rails_env: "test", host: "test-master"5239 returns hash with cluster and password5240 rails_env: "production", host: "production-master"5241 returns hash with cluster and password5242 .url5243 withstands mutation5244 when yml file with env variable5245 reads redis url from env variable5246 .version5247 returns a version5248 .with5249 when running on single-threaded runtime5250 instantiates a connection pool with size 55251 when running on multi-threaded runtime5252 instantiates a connection pool with a size based on the concurrency of the worker5253 when there is no config at all5254 can run an empty block5255 #db5256 with old format5257 returns the correct db5258 with new format5259 returns the correct db5260 with cluster-mode5261 returns the correct db5262 #sentinels5263 when sentinels are defined5264 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5265 returns an array of hashes with host and port keys5266 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5267 returns an array of hashes with host and port keys5268 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5269 returns an array of hashes with host and port keys5270 when sentinels are not defined5271 returns nil5272 when cluster is defined5273 returns nil5274 #sentinels?5275 when sentinels are defined5276 returns true5277 when sentinels are not defined5278 is expected to eq nil5279 when cluster is defined5280 returns false5281 #raw_config_hash5282 returns old-style single url config in a hash5283 returns cluster config without url key in a hash5284 #fetch_config5285 raises an exception when the config file contains invalid yaml5286 has a value for the legacy default URL5287 when redis.yml exists5288 uses config/redis.yml5289 when no config file exsits5290 returns nil5291 but resque.yml exists5292 returns the config from resque.yml5293 .config_file_name5294 and there is a global env override5295 is expected to eq "global override"5296 and SharedState has a different config file5297 is expected to eq "fallback config file"5298 #fetch_config5299 when redis.yml exists5300 when the fallback has a redis.yml entry5301 is expected to eq {"fallback redis.yml"=>123}5302 and an instance config file exists5303 is expected to eq {"instance specific file"=>456}5304 and the instance has a redis.yml entry5305 is expected to eq {"instance redis.yml"=>789}5306 when no redis config file exsits5307 returns nil5308 when resque.yml exists5309 returns the config from resque.yml5310 redis instance used in connection pool5311 uses ::Redis instance5312 #store5313 instantiates an instance of Redis::Store5314Banzai::Filter::ReferenceRedactorFilter5315 ignores non-GFM links5316 skips when the skip_redaction flag is set5317 with data-project5318 valid projects5319 allows permitted Project references5320 invalid projects5321 removes unpermitted references5322 handles invalid references5323 with data-issue5324 allows references for non confidential issues5325 for confidential issues5326 removes references for non project members5327 removes references for project members with guest role5328 allows references for author5329 allows references for assignee5330 allows references for project members5331 for admin5332 when admin mode is enabled5333 allows references5334 when admin mode is disabled5335 removes references5336 when a confidential issue is moved from a public project to a private one5337 removes references for author5338 removes references for assignee5339 allows references for project members5340 for user references5341 with data-group5342 removes unpermitted Group references5343 allows permitted Group references5344 handles invalid Group references5345 with data-user5346 allows any User reference5347Projects::ProtectDefaultBranchService5348 #execute5349 without a default branch5350 does nothing5351 with a default branch5352 protects the default branch5353 #protect_default_branch5354 when branch protection is needed5355 changes the HEAD of the project5356 protects the default branch5357 when branch protection is not needed5358 changes the HEAD of the project5359 does not protect the default branch5360 when protected branch does not exist5361 changes the HEAD of the project5362 protects the default branch5363 when protected branch already exists5364 changes the HEAD of the project5365 does not protect the default branch5366 #create_protected_branch5367 creates the protected branch5368 #protect_branch?5369 when default branch protection is disabled5370 returns false5371 when default branch protection is enabled5372 returns false if the branch is already protected5373 returns true if the branch is not yet protected5374 #protected_branch_exists?5375 when feature flag `group_protected_branches` disabled5376 return false5377 when feature flag `group_protected_branches` enabled5378 return true5379 #default_branch5380 returns the default branch of the project5381 #push_access_level5382 when developers can push5383 returns the DEVELOPER access level5384 when developers can not push5385 returns the MAINTAINER access level5386 #merge_access_level5387 when developers can merge5388 returns the DEVELOPER access level5389 when developers can not merge5390 returns the MAINTAINER access level5391Issues::ReopenService5392 #execute5393 when user is not authorized to reopen issue5394 does not reopen the issue5395 when skip_authorization is true5396 does close the issue even if user is not authorized5397 when user is authorized to reopen issue5398 invalidates counter cache for assignees5399 refreshes the number of opened issues5400 deletes milestone issue counters cache5401 does not create timeline event5402 issue is incident type5403 creates a timeline event5404 behaves like an incident management tracked event5405 .track_event5406 tracks the event using redis5407 behaves like Snowplow event tracking with RedisHLL context5408 behaves like Snowplow event tracking5409 is emitted5410 when issue is not confidential5411 executes issue hooks5412 when issue is confidential5413 executes confidential issue hooks5414Projects::ProjectMembersHelper5415 project members5416 #project_members_app_data_json5417 returns expected json5418 sets `members` property that matches json schema5419 sets `member_path` property5420 when pagination is not available5421 sets `pagination` attribute to expected json5422 when pagination is available5423 sets `pagination` attribute to expected json5424 group links5425 sets `group.members` property that matches json schema5426 sets `member_path` property5427 inherited5428 include_relations: [:inherited, :direct], result: lazy { [group_link_7, group_link_4, group_link_9, group_link_5, group_link_3].map(&:id) }5429 returns correct group links5430 include_relations: [:inherited], result: lazy { [group_link_1, group_link_4, group_link_5, group_link_3].map(&:id) }5431 returns correct group links5432 include_relations: [:direct], result: lazy { [group_link_7, group_link_8, group_link_9].map(&:id) }5433 returns correct group links5434 #project_member_header_subtext5435 when user can admin project members5436 contains expected text5437 when user cannot admin project members5438 contains expected text5439bin/audit-event-type5440 # order random5441 AuditEventTypeOptionParser5442 .parse5443 raises an error when name of the audit event type is missing5444 parses -h5445 param: :name, argv: ["foo"], result: "foo"5446 is expected to eq "foo"5447 param: :amend, argv: ["foo", "--amend"], result: true5448 is expected to eq true5449 param: :force, argv: ["foo", "-f"], result: true5450 is expected to eq true5451 param: :force, argv: ["foo", "--force"], result: true5452 is expected to eq true5453 param: :description, argv: ["foo", "-d", "desc"], result: "desc"5454 is expected to eq "desc"5455 param: :description, argv: ["foo", "--description", "desc"], result: "desc"5456 is expected to eq "desc"5457 param: :feature_category, argv: ["foo", "-c", "audit_events"], result: "audit_events"5458 is expected to eq "audit_events"5459 param: :feature_category, argv: ["foo", "--feature-category", "audit_events"], result: "audit_events"5460 is expected to eq "audit_events"5461 param: :milestone, argv: ["foo", "-M", "15.6"], result: "15.6"5462 is expected to eq "15.6"5463 param: :milestone, argv: ["foo", "--milestone", "15.6"], result: "15.6"5464 is expected to eq "15.6"5465 param: :saved_to_database, argv: ["foo", "-s"], result: true5466 is expected to eq true5467 param: :saved_to_database, argv: ["foo", "--saved-to-database"], result: true5468 is expected to eq true5469 param: :saved_to_database, argv: ["foo", "--no-saved-to-database"], result: false5470 is expected to eq false5471 param: :streamed, argv: ["foo", "-t"], result: true5472 is expected to eq true5473 param: :streamed, argv: ["foo", "--streamed"], result: true5474 is expected to eq true5475 param: :streamed, argv: ["foo", "--no-streamed"], result: false5476 is expected to eq false5477 param: :dry_run, argv: ["foo", "-n"], result: true5478 is expected to eq true5479 param: :dry_run, argv: ["foo", "--dry-run"], result: true5480 is expected to eq true5481 param: :ee, argv: ["foo", "-e"], result: true5482 is expected to eq true5483 param: :ee, argv: ["foo", "--ee"], result: true5484 is expected to eq true5485 param: :jh, argv: ["foo", "-j"], result: true5486 is expected to eq true5487 param: :jh, argv: ["foo", "--jh"], result: true5488 is expected to eq true5489 param: :introduced_by_mr, argv: ["foo", "-m", "https://url"], result: "https://url"5490 is expected to eq "https://url"5491 param: :introduced_by_mr, argv: ["foo", "--introduced-by-mr", "https://url"], result: "https://url"5492 is expected to eq "https://url"5493 param: :introduced_by_issue, argv: ["foo", "-i", "https://url"], result: "https://url"5494 is expected to eq "https://url"5495 param: :introduced_by_issue, argv: ["foo", "--introduced-by-issue", "https://url"], result: "https://url"5496 is expected to eq "https://url"5497 .read_description5498 reads description from stdin5499 when description is empty5500 shows error message and retries5501 .read_feature_category5502 reads feature_category from stdin5503 when feature category is empty5504 shows error message and retries5505 .read_saved_to_database5506 reads saved_to_database from stdin5507 when saved_to_database is invalid5508 shows error message and retries5509 .read_streamed5510 reads streamed from stdin5511 when streamed is invalid5512 shows error message and retries5513 .read_introduced_by_mr5514 reads introduced_by_mr from stdin5515 when URL is empty5516 does not raise an error5517 when URL is invalid5518 shows error message and retries5519 .read_introduced_by_issue5520 reads type from stdin5521 when URL is invalid5522 shows error message and retries5523 .read_milestone5524 returns the correct milestone from the VERSION file5525 AuditEventTypeCreator5526 properly creates an audit event type5527 when running on master5528 requires feature branch5529 with invalid audit event type names5530 argv: [".invalid.audit.type"], ex: /Provide a name for the audit event type that is/5531 is expected to raise /Provide a name for the audit event type that is/5532 argv: ["existing_audit_event_type"], ex: /already exists!/5533 is expected to raise /already exists!/5534Todos::Destroy::UnauthorizedFeaturesService5535 when user_id is provided5536 when all features have same visibility as the project5537 removes only user issue todos5538 when issues are visible only to project members but the user is a member5539 does not remove any todos5540 when issues are visible only to project members5541 removes only user issue todos5542 when mrs, builds and repository are visible only to project members5543 removes only user mr and commit todos5544 when mrs are visible only to project members5545 removes only user merge request todo5546 when mrs and issues are visible only to project members5547 removes only user merge request and issue todos5548 when user_id is not provided5549 when all features have same visibility as the project5550 does not remove any todos5551 when issues are visible only to project members5552 removes only non members issue todos5553 when mrs, builds and repository are visible only to project members5554 removes only non members mr and commit todos5555 when mrs are visible only to project members5556 removes only non members merge request todos5557 when mrs and issues are visible only to project members5558 removes only non members merge request and issue todos5559PendingTodosFinder5560 #execute5561 returns only pending todos5562 supports retrieving of todos for a specific project5563 supports retrieving of todos for a specific todo target5564 supports retrieving of todos for a specific target type5565 supports retrieving of todos for a specific commit ID5566 supports retrieving of todos for specific discussion5567 supports retrieving of todos for a specific action5568UploadService5569 File service5570 for valid gif file5571 is expected to have key :alt5572 is expected to have key :url5573 is expected to have value "banana_sample"5574 is expected to match "banana_sample.gif"5575 for valid png file5576 is expected to have key :alt5577 is expected to have key :url5578 is expected to have value "dk"5579 is expected to match "dk.png"5580 for valid jpg file5581 is expected to have key :alt5582 is expected to have key :url5583 is expected to have value "rails_sample"5584 is expected to match "rails_sample.jpg"5585 for txt file5586 is expected to have key :alt5587 is expected to have key :url5588 is expected to have value "doc_sample.txt"5589 is expected to match "doc_sample.txt"5590 for too large a file5591 is expected to eq {}5592 #override_max_attachment_size5593 allows the upload5594 disallows the upload5595ProjectClusterablePresenter5596 #can_create_cluster?5597 when user can create5598 is expected to be truthy5599 when user cannot create5600 is expected to be falsey5601 #index_path5602 is expected to eq "/namespace1030/project705/-/clusters"5603 #connect_path5604 is expected to eq "/namespace1031/project706/-/clusters/connect"5605 #new_cluster_docs_path5606 is expected to eq "/namespace1032/project707/-/clusters/new_cluster_docs"5607 #create_user_clusters_path5608 is expected to eq "/namespace1033/project708/-/clusters/create_user"5609 #cluster_status_cluster_path5610 is expected to eq "/namespace1034/project709/-/clusters/3/cluster_status"5611 #clear_cluster_cache_path5612 is expected to eq "/namespace1035/project710/-/clusters/6/clear_cache"5613 #cluster_path5614 is expected to eq "/namespace1036/project711/-/clusters/9"5615 #metrics_dashboard_path5616 is expected to eq "/namespace1037/project712/-/clusters/12/metrics_dashboard"5617 #learn_more_link5618 is expected to include "user/project/clusters/index"5619Deployments::OlderDeploymentsDropService5620 #execute5621 when deployment is nil5622 behaves like it does not drop any build5623 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5624 when a deployment is passed in5625 and there is no active deployment for the related environment5626 behaves like it does not drop any build5627 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5628 and there are active deployment for the related environment5629 and there is no older deployment than "deployment"5630 behaves like it does not drop any build5631 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5632 and there is an older deployment than "deployment"5633 drops that older deployment5634 when older deployable is a manual job5635 does not drop any builds nor track the exception5636 when deployable.drop raises RuntimeError5637 does not drop an older deployment and tracks the exception5638 when ActiveRecord::StaleObjectError is raised5639 resets the object via Gitlab::OptimisticLocking5640 and there is no deployable for that older deployment5641 behaves like it does not drop any build5642 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5643Gitlab::Chat::Command5644 #try_create_pipeline5645 returns nil when the command is not valid5646 tries to create the pipeline when a command is valid5647 #create_pipeline5648 creates the pipeline5649 creates the chat data for the pipeline5650 stores the chat name ID in the chat data5651 stores the response URL in the chat data5652 creates the environment variables for the pipeline5653PruneOldEventsWorker5654 #perform5655 prunes events older than 3 years5656 leaves fresh events5657 leaves events from 13 months ago5658 leaves events from 3 years ago5659 with ops_prune_old_events FF disabled5660 does not delete5661Gitlab::TemplateParser::AST::Identifier5662 #evaluate5663 evaluates a selector5664 returns nil if the key is not set5665 returns nil if the input is not a Hash5666 returns the current data when using the special identifier "it"5667Gitlab::TemplateParser::AST::Integer5668 #evaluate5669 evaluates a selector5670 returns nil if the index is not set5671 returns nil if the input is not an Array5672Gitlab::TemplateParser::AST::Selector5673 #evaluate5674 evaluates a selector5675 evaluates a selector that returns nil5676Gitlab::TemplateParser::AST::Variable5677 #evaluate5678 evaluates a variable5679 evaluates an undefined variable5680 evaluates the special variable "it"5681Gitlab::TemplateParser::AST::Expressions5682 #evaluate5683 evaluates all expressions5684Gitlab::TemplateParser::AST::Text5685 #evaluate5686 returns the text5687Gitlab::TemplateParser::AST::If5688 #evaluate5689 evaluates a truthy if expression without an else clause5690 evaluates a falsy if expression without an else clause5691 evaluates a falsy if expression with an else clause5692 #truthy?5693 returns true for a non-empty String5694 returns true for a non-empty Array5695 returns true for a Boolean true5696 returns false for an empty String5697 returns true for an empty Array5698 returns false for a Boolean false5699Gitlab::TemplateParser::AST::Each5700 #evaluate5701 evaluates the expression5702 returns an empty string when the input is not a collection5703 disallows too many nested loops5704Gitlab::Metrics::Dashboard::Finder5705 .find5706 behaves like misconfigured dashboard service response5707 returns an appropriate message and status code5708 when the dashboard exists5709 behaves like valid dashboard service response5710 behaves like valid dashboard service response for schema5711 returns a json representation of the dashboard5712 when the dashboard is configured incorrectly5713 behaves like misconfigured dashboard service response5714 returns an appropriate message and status code5715 when the dashboard contains a metric without a query5716 behaves like misconfigured dashboard service response5717 returns an appropriate message and status code5718 when the system dashboard is specified5719 behaves like valid dashboard service response5720 behaves like valid dashboard service response for schema5721 returns a json representation of the dashboard5722 when the self-monitoring dashboard is specified5723 behaves like valid dashboard service response5724 behaves like valid dashboard service response for schema5725 returns a json representation of the dashboard5726 when no dashboard is specified5727 behaves like valid dashboard service response5728 behaves like valid dashboard service response for schema5729 returns a json representation of the dashboard5730 when the dashboard is expected to be embedded5731 behaves like valid embedded dashboard service response5732 behaves like valid dashboard service response for schema5733 returns a json representation of the dashboard5734 when params are incomplete5735 behaves like valid embedded dashboard service response5736 behaves like valid dashboard service response for schema5737 returns a json representation of the dashboard5738 when the panel is specified5739 as a custom metric5740 behaves like misconfigured dashboard service response5741 returns an appropriate message and status code5742 when the metric exists5743 behaves like valid embedded dashboard service response5744 behaves like valid dashboard service response for schema5745 returns a json representation of the dashboard5746 as a project-defined panel5747 behaves like misconfigured dashboard service response5748 returns an appropriate message and status code5749 when the metric exists5750 behaves like valid embedded dashboard service response5751 behaves like valid dashboard service response for schema5752 returns a json representation of the dashboard5753 .find_raw5754 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}5755 when the system dashboard is specified5756 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}5757 when an existing project dashboard is specified5758 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"}}}5759 .find_all_paths5760 includes OOTB dashboards by default5761 when the project contains dashboards5762 includes OOTB and project dashboards5763 when the project is self-monitoring5764 includes self-monitoring and project dashboards5765Gitlab::GitalyClient::RepositoryService5766 #exists?5767 sends a repository_exists message5768 #optimize_repository5769 with default parameter5770 behaves like a repository optimization5771 sends a optimize_repository message5772 with heuristical housekeeping strategy5773 behaves like a repository optimization5774 sends a optimize_repository message5775 with eager housekeeping strategy5776 behaves like a repository optimization5777 sends a optimize_repository message5778 #prune_unreachable_objects5779 sends a prune_unreachable_objects message5780 #repository_size5781 sends a repository_size message5782 #get_object_directory_size5783 sends a get_object_directory_size message5784 #apply_gitattributes5785 sends an apply_gitattributes message5786 #info_attributes5787 reads the info attributes5788 #has_local_branches?5789 sends a has_local_branches message5790 #import_repository5791 sends a create_repository_from_url message5792 when http_host is provided5793 sends a create_repository_from_url message with http_host provided in the request5794 #fetch_remote5795 sends a fetch_remote_request message5796 with resolved address5797 sends a fetch_remote_request message5798 SSH auth5799 ssh_mirror_url: false, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5800 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385801 ssh_mirror_url: false, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5802 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385803 ssh_mirror_url: true, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5804 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385805 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"}5806 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385807 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: nil, expected_params: {:ssh_key=>"key"}5808 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385809 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5810 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385811 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: nil, expected_params: {}5812 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385813 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "", ssh_known_hosts: "", expected_params: {}5814 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385815 #calculate_checksum5816 sends a calculate_checksum message5817 #create_repository5818 sends a create_repository message without arguments5819 sends a create_repository message with default branch5820 sends a create_repository message with default branch containing non ascii chars5821 #create_from_snapshot5822 sends a create_repository_from_snapshot message5823 #raw_changes_between5824 sends a create_repository_from_snapshot message5825 #search_files_by_regexp5826 with ASCII ref5827 behaves like a search for files by regexp5828 sends a search_files_by_name message and returns a flatten array5829 with non-ASCII ref5830 behaves like a search for files by regexp5831 sends a search_files_by_name message and returns a flatten array5832 #disconnect_alternates5833 sends a disconnect_git_alternates message5834 #rename5835 sends a rename_repository message5836 #remove5837 sends a remove_repository message5838 #replicate5839 sends a replicate_repository message5840 #set_full_path5841 sends a set_full_path message5842 #full_path5843 sends a full_path message5844 #find_license5845 sends a find_license request with medium timeout5846Gitlab::Ci::Reports::TestSuiteSummary5847 #name5848 when test suite summary has several build report results5849 returns the suite name5850 #build_ids5851 when test suite summary has several build report results5852 returns the build ids5853 #total_time5854 when test suite summary has several build report results5855 returns the total time5856 #success_count5857 when test suite summary has several build report results5858 returns the total success5859 #failed_count5860 when test suite summary has several build report results5861 returns the total failed5862 #error_count5863 when test suite summary has several build report results5864 returns the total errored5865 #skipped_count5866 when test suite summary has several build report results5867 returns the total skipped5868 #total_count5869 when test suite summary has several build report results5870 returns the total count5871 #suite_error5872 when there are no build report results with suite errors5873 is expected to be nil5874 when there are build report results with suite errors5875 includes the first suite error from the collection of build report results5876 #to_h5877 when test suite summary has several build report results5878 returns the total as a hash5879Packages::Conan::PackageFinder5880 #execute5881 visibility: :private, role: :maintainer, packages_visible: true5882 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5883 visibility: :private, role: :developer, packages_visible: true5884 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5885 visibility: :private, role: :reporter, packages_visible: true5886 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5887 visibility: :private, role: :guest, packages_visible: false5888 is expected to eq []5889 visibility: :private, role: :anonymous, packages_visible: false5890 is expected to eq []5891 visibility: :internal, role: :maintainer, packages_visible: true5892 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5893 visibility: :internal, role: :developer, packages_visible: true5894 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5895 visibility: :internal, role: :reporter, packages_visible: true5896 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5897 visibility: :internal, role: :guest, packages_visible: true5898 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5899 visibility: :internal, role: :anonymous, packages_visible: false5900 is expected to eq []5901 visibility: :public, role: :maintainer, packages_visible: true5902 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5903 visibility: :public, role: :developer, packages_visible: true5904 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5905 visibility: :public, role: :reporter, packages_visible: true5906 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5907 visibility: :public, role: :guest, packages_visible: true5908 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5909 visibility: :public, role: :anonymous, packages_visible: true5910 is expected to eq [#<Packages::Package id: 86, project_id: 803, created_at: "2023-03-30 11:58:27.223319264 +0000", updated_at: "2023-03-30 11:58:27.223319264 +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:58:27.630652450 +0000", updated_at: "2023-03-30 11:58:27.630652450 +0000", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 1441, status: "default", last_downloaded_at: nil>]5911Mutations::DependencyProxy::ImageTtlGroupPolicy::Update5912 is expected to require graphql authorizations :admin_dependency_proxy5913 #resolve5914 with existing dependency proxy image ttl policy5915 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"5916 behaves like updating the dependency proxy image ttl policy5917 behaves like updating the dependency proxy image ttl policy attributes5918 updates the dependency proxy image ttl policy5919 behaves like not creating the dependency proxy image ttl policy5920 doesn't create the dependency proxy image ttl policy5921 behaves like returning a success5922 returns the dependency proxy image ttl group policy with no errors5923 with invalid params5924 doesn't create the dependency proxy image ttl policy5925 does not update5926 returns an error5927 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"5928 behaves like denying access to dependency proxy image ttl policy5929 raises Gitlab::Graphql::Errors::ResourceNotAvailable5930 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5931 behaves like denying access to dependency proxy image ttl policy5932 raises Gitlab::Graphql::Errors::ResourceNotAvailable5933 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5934 behaves like denying access to dependency proxy image ttl policy5935 raises Gitlab::Graphql::Errors::ResourceNotAvailable5936 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5937 behaves like denying access to dependency proxy image ttl policy5938 raises Gitlab::Graphql::Errors::ResourceNotAvailable5939 without existing dependency proxy image ttl policy5940 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"5941 behaves like creating the dependency proxy image ttl policy5942 creates a new package setting5943 saves the settings5944 behaves like returning a success5945 returns the dependency proxy image ttl group policy with no errors5946 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"5947 behaves like denying access to dependency proxy image ttl policy5948 raises Gitlab::Graphql::Errors::ResourceNotAvailable5949 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5950 behaves like denying access to dependency proxy image ttl policy5951 raises Gitlab::Graphql::Errors::ResourceNotAvailable5952 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5953 behaves like denying access to dependency proxy image ttl policy5954 raises Gitlab::Graphql::Errors::ResourceNotAvailable5955 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5956 behaves like denying access to dependency proxy image ttl policy5957 raises Gitlab::Graphql::Errors::ResourceNotAvailable5958Gitlab::GitalyClient::BlobService5959 #get_new_lfs_pointers5960 sends a get_new_lfs_pointers message5961 with not_in = :all5962 sends the correct message5963 with hook environment5964 sends a list_all_lfs_pointers message5965 #get_all_lfs_pointers5966 sends a get_all_lfs_pointers message5967 #list_blobs5968 with a single revision5969 sends a list_blobs message5970 with multiple revisions5971 sends a list_blobs message5972 with multiple revisions and limits5973 sends a list_blobs message5974 with paths5975 sends a list_blobs message5976 with split contents5977 sends a list_blobs message5978NavHelper5979 #header_links5980 when the user is logged in5981 has all the expected links by default5982 contains the impersonation link while impersonating5983 as admin5984 application setting :admin_mode is enabled5985 does not contain the admin mode link by default5986 with admin mode enabled5987 contains the admin mode link5988 application setting :admin_mode is disabled5989 does not contain the admin mode link5990 with admin mode enabled5991 has no effect on header links5992 when the user cannot read cross project5993 does not contain cross project elements when the user cannot read cross project5994 shows the search box when the user cannot read cross project and they are visiting a project5995 when the user is not logged in5996 returns only the sign in and search when the user is not logged in5997 .admin_monitoring_nav_links5998 is expected to all be a kind of String5999 #page_has_markdown?6000 path: "projects/merge_requests#show"6001 is expected to eq true6002 path: "projects/merge_requests/conflicts#show"6003 is expected to eq true6004 path: "issues#show"6005 is expected to eq true6006 path: "milestones#show"6007 is expected to eq true6008 path: "issues#designs"6009 is expected to eq true6010 #show_super_sidebar?6011 returns false by default6012 when used is signed-in6013 with feature flag off6014 when user has new nav disabled6015 behaves like #show_super_sidebar returns false6016 returns false6017 when user has new nav enabled6018 behaves like #show_super_sidebar returns false6019 returns false6020 with feature flag on6021 when user has new nav disabled6022 behaves like #show_super_sidebar returns false6023 returns false6024 when user has new nav enabled6025 returns true6026ErrorTracking::SentryClient::Projects6027 # order random6028 #projects6029 behaves like calls sentry api6030 calls sentry api6031 behaves like has correct return type6032 returns objects of type Gitlab::ErrorTracking::Project6033 behaves like has correct length6034 is expected to eq 26035 behaves like Sentry API response size limit6036 raises an exception when response is too large6037 essential keys missing in API response6038 raises exception6039 optional keys missing in sentry response6040 behaves like calls sentry api6041 calls sentry api6042 behaves like has correct return type6043 returns objects of type Gitlab::ErrorTracking::Project6044 behaves like has correct length6045 is expected to eq 16046 error object created from sentry response6047 sentry_project_object: :id, sentry_response: :id6048 is expected to eq "2"6049 sentry_project_object: :name, sentry_response: :name6050 is expected to eq "sentry-example"6051 sentry_project_object: :status, sentry_response: :status6052 is expected to eq "active"6053 sentry_project_object: :slug, sentry_response: :slug6054 is expected to eq "sentry-example"6055 sentry_project_object: :organization_name, sentry_response: [:organization, :name]6056 is expected to eq "Sentry"6057 sentry_project_object: :organization_id, sentry_response: [:organization, :id]6058 is expected to eq "1"6059 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]6060 is expected to eq "sentry"6061 redirects6062 behaves like no Sentry redirects6063 does not follow redirects6064 when exception is raised6065 behaves like maps Sentry exceptions6066 HTTParty::Error6067 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6068 Net::OpenTimeout6069 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6070 SocketError6071 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6072 OpenSSL::SSL::SSLError6073 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6074 Errno::ECONNREFUSED6075 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6076 StandardError6077 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6078Tags::CreateService6079 #execute6080 creates the tag and returns success6081 when target is invalid6082 returns an error6083 when tag_name is empty6084 returns an error6085 when target is empty6086 returns an error6087 when tag already exists6088 returns an error6089 when tag name is invalid6090 returns an error6091 when pre-receive hook fails6092 returns an error6093Gitlab::Ci::Config::Entry::Trigger6094 when trigger config is a non-empty string6095 #valid?6096 is expected to be valid6097 #value6098 returns a trigger configuration hash6099 when trigger config an empty string6100 #valid?6101 is expected not to be valid6102 #errors6103 returns an error about an empty config6104 when trigger is a hash - cross-project6105 when project is a string6106 when project is a non-empty string6107 is valid6108 when project is an empty string6109 returns error6110 when project is not a string6111 when project is an array6112 returns error6113 when project is a boolean6114 returns error6115 when branch is provided6116 #valid?6117 is expected to be valid6118 #value6119 returns a trigger configuration hash6120 when strategy is provided6121 when strategy is depend6122 #valid?6123 is expected to be valid6124 #value6125 returns a trigger configuration hash6126 when strategy is invalid6127 #valid?6128 is expected not to be valid6129 #errors6130 returns an error about unknown config key6131 when config contains unknown keys6132 #valid?6133 is expected not to be valid6134 #errors6135 returns an error about unknown config key6136 with forward6137 is expected to be valid6138 returns a trigger configuration hash6139 when trigger is a hash - parent-child6140 with simple include6141 is expected to be valid6142 returns a trigger configuration hash6143 with project6144 is expected not to be valid6145 returns an error6146 with branch6147 is expected not to be valid6148 returns an error6149 with forward6150 is expected to be valid6151 returns a trigger configuration hash6152 when trigger configuration is not valid6153 when branch is not provided6154 #valid?6155 is expected not to be valid6156 #errors6157 returns an error message6158Gitlab::DatabaseImporters::InstanceAdministrators::CreateGroup6159 #execute6160 without application_settings6161 returns error6162 without admin users6163 returns error6164 with application settings and admin users6165 returns correct keys6166 tracks successful install6167 creates group6168 adds all admins as maintainers6169 saves the group id6170 returns error when saving group ID fails6171 when group already exists6172 returns success6173 when group cannot be created6174 returns error6175 when user cannot be added to group6176 returns error6177ProjectFeaturesCompatibility6178 converts fields from 'true' to ProjectFeature::ENABLED6179 converts fields from 'false' to ProjectFeature::DISABLED6180 converts fields from true to ProjectFeature::ENABLED6181 converts fields from false to ProjectFeature::DISABLED6182 access levels6183 access_level: "disabled", expected_result: 06184 accepts access level6185 access_level: "private", expected_result: 106186 accepts access level6187 access_level: "enabled", expected_result: 206188 accepts access level6189 access_level: "public", expected_result: 306190 accepts access level6191Gitlab::UserAccessSnippet6192 #can_do_action?6193 when can access_git6194 calls Ability#allowed? and returns its result6195 when can not access_git6196 disallows access6197 when user is nil6198 disallows access6199 when user is migration bot6200 allows access6201 #can_push_to_branch?6202 anonymous6203 when can access_git6204 respects accessibility6205 when can not access_git6206 disallows access6207 non_member6208 when can access_git6209 respects accessibility6210 when can not access_git6211 disallows access6212 guest6213 when can access_git6214 respects accessibility6215 when can not access_git6216 disallows access6217 reporter6218 when can access_git6219 respects accessibility6220 when can not access_git6221 disallows access6222 maintainer6223 when can access_git6224 respects accessibility6225 when can not access_git6226 disallows access6227 admin6228 when can access_git6229 respects accessibility6230 when can not access_git6231 disallows access6232 author6233 when can access_git6234 respects accessibility6235 when can not access_git6236 disallows access6237 when user is migration bot6238 allows access6239 when snippet is nil6240 disallows access6241 when user is migration bot6242 disallows access6243 #can_create_tag?6244 returns false6245 when user is migration bot6246 returns false6247 #can_delete_branch?6248 returns false6249 when user is migration bot6250 returns false6251 #can_merge_to_branch?6252 returns false6253 when user is migration bot6254 returns false6255MergeRequests::Mergeability::RunChecksService6256 #execute6257 when every check is skipped6258 is still a success6259 when a check is skipped6260 does not execute the check6261 when a check is not skipped6262 when the check is cacheable6263 when the check is cached6264 returns the cached result6265 when the check is not cached6266 writes and returns the result6267 when check is not cacheable6268 does not call the results store6269 #success?6270 when the execute method has been executed6271 when all the checks succeed6272 returns true6273 when one check fails6274 returns false6275 when execute has not been exectued6276 raises an error6277 #failure_reason6278 when the execute method has been executed6279 when all the checks succeed6280 returns nil6281 when one check fails6282 returns the open reason6283 when execute has not been exectued6284 raises an error6285Gitlab::Auth::Ldap::User6286 #should_save?6287 marks existing ldap user as changed6288 marks existing non-ldap user if the email matches as changed6289 does not mark existing ldap user as changed6290 #valid_sign_in?6291 returns true6292 returns false if the GitLab user is not valid6293 find or create6294 finds the user if already existing6295 connects to existing non-ldap user if the email matches6296 connects to existing ldap user if the extern_uid changes6297 connects to existing ldap user if the extern_uid changes and email address has upper case characters6298 maintains an identity per provider6299 creates a new user if not found6300 when signup is disabled6301 creates the user6302 when user confirmation email is enabled6303 creates and confirms the user anyway6304 when the current minimum password length is different from the default minimum password length6305 creates the user6306 updating email6307 when LDAP sets an email6308 has a real email6309 has email set as synced6310 has email set as read-only6311 has synced attributes provider set to ldapmain6312 when LDAP doesn't set an email6313 has a temp email6314 has email set as not synced6315 does not have email set as read-only6316 blocking6317 signup6318 dont block on create6319 is expected not to be blocked6320 block on create6321 is expected to be blocked6322 sign-in6323 dont block on create6324 is expected not to be blocked6325 block on create6326 is expected not to be blocked6327Types::UserMergeRequestInteractionType6328 is expected to require graphql authorizations :read_merge_request6329 has the expected fields6330 #can_merge6331 when the user cannot merge6332 is expected to equal false6333 when the user can merge6334 is expected to equal true6335 #can_update6336 when the user cannot update the MR6337 is expected to equal false6338 when the user can update the MR6339 is expected to equal true6340 #review_state6341 when the user has not been asked to review the MR6342 is expected to be nil6343 implies not reviewed6344 when the user has been asked to review the MR6345 implies not reviewed6346 when the user has provided a review6347 is expected to eq "reviewed"6348 implies reviewed6349 #approved6350 when the user has not approved the MR6351 is expected to equal false6352 when the user has approved the MR6353 is expected to equal true6354GoogleCloud::SetupCloudsqlInstanceService6355 when unauthorized user triggers worker6356 raises unauthorized error6357 when authorized user triggers worker6358 when instance is not RUNNABLE6359 raises error6360 when instance is RUNNABLE6361 when database creation fails6362 raises error6363 when user creation fails6364 raises error6365 when database and user already exist6366 does not try to create a database or user6367 when database already exists6368 does not try to create a database6369 when user already exists6370 does not try to create a user6371 when database and user creation succeeds6372 stores project CI vars6373 when the ci variable already exists6374 overwrites existing GCP_PROJECT_ID var6375Mutations::AlertManagement::Alerts::SetAssignees6376 is expected to require graphql authorizations :update_alert_management_alert6377 #resolve6378 when operation mode is not specified6379 behaves like successful resolution6380 successfully resolves6381 behaves like an incident management tracked event6382 .track_event6383 tracks the event using redis6384 behaves like Snowplow event tracking with RedisHLL context6385 behaves like Snowplow event tracking6386 is emitted6387 when user does not have permission to update alerts6388 raises an error if the resource is not accessible to the user6389 for APPEND operation6390 when a different user is already assigned6391 behaves like noop6392 makes no changes6393 when no users are specified6394 behaves like noop6395 makes no changes6396 when a user is specified and no user is assigned6397 behaves like successful resolution6398 successfully resolves6399 when the specified user is already assigned to the alert6400 behaves like noop6401 makes no changes6402 for REPLACE operation6403 when a different user is already assigned6404 behaves like successful resolution6405 successfully resolves6406 when no users are specified6407 behaves like successful resolution6408 successfully resolves6409 when a user is specified and no user is assigned6410 behaves like successful resolution6411 successfully resolves6412 when the specified user is already assigned to the alert6413 behaves like noop6414 makes no changes6415 when multiple users are specified6416 behaves like successful resolution6417 successfully resolves6418 for REMOVE operation6419 when a different user is already assigned6420 behaves like noop6421 makes no changes6422 when no users are specified6423 behaves like noop6424 makes no changes6425 when a user is specified and no user is assigned6426 behaves like noop6427 makes no changes6428 when the specified user is already assigned to the alert6429 behaves like successful resolution6430 successfully resolves6431Gitlab::Git::AttributesParser6432 #attributes6433 using a path with attributes6434 returns the attributes as a Hash6435 returns a Hash containing multiple attributes6436 returns a Hash containing attributes for a file with multiple extensions6437 returns a Hash containing attributes for a file in a directory6438 returns a Hash containing attributes with query string parameters6439 returns a Hash containing the attributes for an absolute path6440 returns a Hash containing the attributes when a pattern is defined using an absolute path6441 returns an empty Hash for a defined path without attributes6442 when the "binary" option is set for a path6443 returns true for the "binary" option6444 returns false for the "diff" option6445 using a path without any attributes6446 returns an empty Hash6447 when attributes data is nil6448 returns an empty Hash6449 when attributes data has binary data6450 returns an empty Hash6451 #patterns6452 parses a file with entries6453 parses an entry that uses a tab to separate the pattern and attributes6454 stores patterns in reverse order6455 ignores any comments and empty lines6456 #parse_attributes6457 parses a boolean attribute6458 parses a negated boolean attribute6459 parses a key-value pair6460 parses multiple attributes6461 parses attributes with query string parameters6462 #each_line6463 iterates over every line in the attributes file6464 unsupported encoding6465 does not yield6466Ci::HasRef6467 #branch?6468 is not a tag6469 return true when tag is set to false6470 when it was triggered by merge request6471 returns false6472 is not a tag6473 return false when tag is set to true6474 #git_ref6475 when tag is true6476 returns a tag ref6477 when tag is false6478 returns a branch ref6479 when tag is nil6480 returns a branch ref6481 when it is triggered by a merge request6482 returns nil6483Gitlab::Database::LoadBalancing::SidekiqClientMiddleware6484 #call6485 when worker cannot be constantized6486 does not pass database locations6487 sets job data consistency6488 when worker class does not include ApplicationWorker6489 does not pass database locations6490 sets job data consistency6491 database wal location was already provided6492 when write was performed6493 does not set database locations again6494 when write was not performed6495 does not set database locations again6496 when worker data consistency is :always6497 does not pass database locations6498 sets job data consistency6499 when worker data consistency is :delayed6500 when write was not performed6501 sets job data consistency6502 when replica hosts are available6503 passes database_replica_location6504 when no replica hosts are available6505 passes primary_write_location6506 when write was performed6507 passes primary write location6508 sets job data consistency6509 when worker data consistency is :sticky6510 when write was not performed6511 sets job data consistency6512 when replica hosts are available6513 passes database_replica_location6514 when no replica hosts are available6515 passes primary_write_location6516 when write was performed6517 passes primary write location6518 sets job data consistency6519UserFinder6520 #find_by_id6521 when the user exists6522 returns the user6523 when the user exists (id as string)6524 returns the user6525 when the user does not exist6526 returns nil6527 #find_by_username6528 when the user exists6529 returns the user6530 when the user does not exist6531 returns nil6532 #find_by_id_or_username6533 when the user exists (id)6534 returns the user6535 when the user exists (id as string)6536 returns the user6537 when the user exists (username)6538 returns the user6539 when the user does not exist (username)6540 returns nil6541 when the user does not exist6542 returns nil6543 #find_by_id!6544 when the user exists6545 returns the user6546 when the user exists (id as string)6547 returns the user6548 when the user does not exist6549 raises ActiveRecord::RecordNotFound6550 #find_by_username!6551 when the user exists6552 returns the user6553 when the user does not exist6554 raises ActiveRecord::RecordNotFound6555 #find_by_id_or_username!6556 when the user exists (id)6557 returns the user6558 when the user exists (id as string)6559 returns the user6560 when the user exists (username)6561 returns the user6562 when the user does not exist (username)6563 raises ActiveRecord::RecordNotFound6564 when the user does not exist6565 raises ActiveRecord::RecordNotFound6566Gitlab::Ci::Badge::Coverage::Metadata6567 behaves like badge metadata6568 #to_html6569 points to link6570 contains clickable image6571 #to_markdown6572 is expected to include "http://localhost/namespace1182/project857/badges/feature/coverage.svg"6573 is expected to include "http://localhost/namespace1183/project858/-/commits/feature"6574 #to_asciidoc6575 is expected to include "http://localhost/namespace1184/project859/badges/feature/coverage.svg"6576 is expected to include "http://localhost/namespace1185/project860/-/commits/feature"6577 is expected to include "image:"6578 is expected to include "link="6579 is expected to include "title="6580 #title6581 returns coverage report title6582 #image_url6583 returns valid url6584 #link_url6585 returns valid link6586Gitlab::GithubImport::Importer::CollaboratorImporter6587 # order random6588 #execute6589 behaves like role mapping6590 creates expected member6591 behaves like role mapping6592 creates expected member6593 behaves like role mapping6594 creates expected member6595 behaves like role mapping6596 creates expected member6597 behaves like role mapping6598 creates expected member6599 when role name is unknown (custom role)6600 raises expected error6601 when user has lower role in a project group6602 behaves like role mapping6603 creates expected member6604 when user has higher role in a project group6605 skips creating member for the project6606Gitlab::Export::PruneProjectExportJobsWorker6607 # order random6608 #perform6609 is labeled as idempotent6610 performs multiple times sequentially without raising an exception6611 prunes jobs and associations older than 7 days6612 leaves fresh jobs and associations6613Gitlab::Kubernetes::Helm::V3::PatchCommand6614 behaves like helm command generator6615 #generate_script6616 returns appropriate command6617 when rbac is true6618 behaves like helm command generator6619 #generate_script6620 returns appropriate command6621 when there is no version6622 is expected to raise ArgumentError with "version is required"6623 #pod_name6624 is expected to eq "install-app-name"6625 behaves like helm command6626 HELM_VERSION6627 is expected to match /\d+\.\d+\.\d+/6628 #env6629 is expected to be a kind of Hash6630 #rbac?6631 rbac is enabled6632 is expected to be truthy6633 rbac is not enabled6634 is expected to be falsey6635 #pod_resource6636 rbac is enabled6637 is expected to be an instance of Kubeclient::Resource6638 generates a pod that uses the tiller serviceAccountName6639 rbac is not enabled6640 is expected to be an instance of Kubeclient::Resource6641 generates a pod that uses the default serviceAccountName6642 #config_map_resource6643 returns a KubeClient resource with config map content for the application6644 #service_account_resource6645 rbac is enabled6646 generates a Kubeclient resource for the tiller ServiceAccount6647 rbac is not enabled6648 generates nothing6649 #cluster_role_binding_resource6650 rbac is enabled6651 generates a Kubeclient resource for the ClusterRoleBinding for tiller6652 binds the account in #service_account_resource6653 rbac is not enabled6654 generates nothing6655BuildActionEntity6656 #as_json6657 contains original job name6658 contains path to the action play6659 contains whether it is playable6660 when job is scheduled6661 returns scheduled6662 returns scheduled_at6663 returns unschedule path6664Gitlab::Chat::Responder::Slack6665 #send_response6666 sends a response back to Slack6667 #success6668 returns the output for a successful build6669 limits the output to a fixed size6670 does not send a response if the output is empty6671 #failure6672 returns the output for a failed build6673 #scheduled_output6674 returns the output for a scheduled build6675Gitlab::Ci::Components::InstancePath6676 # order random6677 FQDN path6678 when project exists6679 provides the expected attributes6680 when content exists6681 when user has permissions to read code6682 fetches the content6683 when user does not have permissions to download code6684 raises an error when fetching the content6685 when project path is nested under a subgroup6686 provides the expected attributes6687 when current GitLab instance is installed on a relative URL6688 provides the expected attributes6689 when version does not exist6690 provides the expected attributes6691 returns nil when fetching the content6692 when project does not exist6693 provides the expected attributes6694 returns nil when fetching the content6695Gitlab::Ci::Build::Policy::Variables6696 #satisfied_by?6697 is satisfied by at least one matching statement6698 is satisfied by a matching pipeline variable6699 is not satisfied by an overridden empty variable6700 is satisfied by a truthy pipeline expression6701 is not satisfied by a falsy pipeline expression6702 is satisfied by a truthy expression using undefined variable6703 is not satisfied by a falsy expression using undefined variable6704 allows to evaluate regular CI variables6705 does not persist neither pipeline nor build6706 when a bridge job is used6707 is satisfied by a matching expression for a bridge job6708 when using project ci variables in environment scope6709 is satisfied by scoped variable match6710 is not satisfied when matching against overridden variable6711Gitlab::Ci::Reports::TestReport6712 #get_suite6713 when suite name is rspec6714 is expected to eq "rspec"6715 initializes a new test suite and returns it6716 when suite name is already allocated6717 does not initialize a new test suite6718 #total_time6719 returns the total time6720 #total_count6721 returns the total count6722 #total_status6723 when all test cases succeeded6724 returns correct total status6725 when there is a failed test case6726 returns correct total status6727 when there is a skipped test case6728 returns correct total status6729 when there is an error test case6730 returns correct total status6731 #with_attachment6732 when test suites do not contain an attachment6733 returns empty test suites6734 when test suites contain an attachment6735 returns test suites with attachment6736 #suite_errors6737 when a suite has normal spec errors or failures6738 is expected to be empty6739 when there is an error test case6740 is expected to eq {"junit"=>"Existential parsing error"}6741 #error_count6742 when error test case exists6743 returns the count6744 when error test case do not exist6745 returns nothing6746 #failed_count6747 when failed test case exists6748 returns the count6749 when failed test case do not exist6750 returns nothing6751 #success_count6752 when success test case exists6753 returns the count6754 when success test case do not exist6755 returns nothing6756 #skipped_count6757 when skipped test case exists6758 returns the count6759 when skipped test case do not exist6760 returns nothing6761Gitlab::Utils::Email6762 # order random6763 .obfuscated_email6764 input: "alex@gitlab.com", output: "al**@g*****.com"6765 is expected to eq "al**@g*****.com"6766 input: "alex@gl.co.uk", output: "al**@g****.uk"6767 is expected to eq "al**@g****.uk"6768 input: "a@b.c", output: "a@b.c"6769 is expected to eq "a@b.c"6770 input: "q@example.com", output: "q@e******.com"6771 is expected to eq "q@e******.com"6772 input: "q@w.", output: "q@w."6773 is expected to eq "q@w."6774 input: "a@b", output: "a@b"6775 is expected to eq "a@b"6776 input: "no mail", output: "no mail"6777 is expected to eq "no mail"6778 when deform is active6779 input: "alex@gitlab.com", output: "al*****@g*****.c**"6780 is expected to eq "al*****@g*****.c**"6781 input: "alex@gl.co.uk", output: "al*****@g*****.u**"6782 is expected to eq "al*****@g*****.u**"6783 input: "a@b.c", output: "aa*****@b*****.c**"6784 is expected to eq "aa*****@b*****.c**"6785 input: "qqwweerrttyy@example.com", output: "qq*****@e*****.c**"6786 is expected to eq "qq*****@e*****.c**"6787 input: "getsuperfancysupport@paywhatyouwant.accounting", output: "ge*****@p*****.a**"6788 is expected to eq "ge*****@p*****.a**"6789 input: "q@example.com", output: "qq*****@e*****.c**"6790 is expected to eq "qq*****@e*****.c**"6791 input: "q@w.", output: "q@w."6792 is expected to eq "q@w."6793 input: "a@b", output: "a@b"6794 is expected to eq "a@b"6795 input: "no mail", output: "no mail"6796 is expected to eq "no mail"6797Gitlab::Search::Params6798 detect_abuse conditional6799 does not call AbuseDetection6800 uses AbuseDetection by default6801 #[]6802 feels like regular params6803 has indifferent access6804 also works on attr_reader attributes6805 #query_string6806 uses 'search' parameter6807 uses 'term' parameter6808 prioritizes 'search' over 'term'6809 strips surrounding whitespace from query string6810 #validate6811 validates AbuseDetector on validation6812 when detect_abuse is disabled6813 does NOT validate AbuseDetector6814 #valid?6815 validates AbuseDetector on validation6816 when detect_abuse is disabled6817 does NOT validate AbuseDetector6818 abuse detection6819 when there are abuse validation errors6820 is considered abusive6821 when there are NOT any abuse validation errors6822 and there are other validation errors6823 is NOT considered abusive6824 and there are NO other validation errors6825 is NOT considered abusive6826 #email_lookup?6827 is true if at least 1 word in search is an email6828Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter6829 .track_work_item_created_action6830 behaves like work item unique counter6831 when track_work_items_activity FF is enabled6832 tracks a unique event only once6833 when author is nil6834 behaves like counter that does not track the event6835 does not track the event6836 when track_work_items_activity FF is disabled6837 behaves like counter that does not track the event6838 does not track the event6839 .track_work_item_title_changed_action6840 behaves like work item unique counter6841 when track_work_items_activity FF is enabled6842 tracks a unique event only once6843 when author is nil6844 behaves like counter that does not track the event6845 does not track the event6846 when track_work_items_activity FF is disabled6847 behaves like counter that does not track the event6848 does not track the event6849 .track_work_item_date_changed_action6850 behaves like work item unique counter6851 when track_work_items_activity FF is enabled6852 tracks a unique event only once6853 when author is nil6854 behaves like counter that does not track the event6855 does not track the event6856 when track_work_items_activity FF is disabled6857 behaves like counter that does not track the event6858 does not track the event6859 .track_work_item_labels_changed_action6860 behaves like work item unique counter6861 when track_work_items_activity FF is enabled6862 tracks a unique event only once6863 when author is nil6864 behaves like counter that does not track the event6865 does not track the event6866 when track_work_items_activity FF is disabled6867 behaves like counter that does not track the event6868 does not track the event6869 .track_work_item_milestone_changed_action6870 behaves like work item unique counter6871 when track_work_items_activity FF is enabled6872 tracks a unique event only once6873 when author is nil6874 behaves like counter that does not track the event6875 does not track the event6876 when track_work_items_activity FF is disabled6877 behaves like counter that does not track the event6878 does not track the event6879Ci::CreatePipelineService6880 rate limiting6881 when user is under the limit6882 allows pipeline creation6883 when user is over the limit6884 blocks pipeline creation6885 with different users6886 allows other members to create pipelines6887 with different commits6888 allows user to create pipeline6889 with different projects6890 allows user to create pipeline6891Gitlab::JiraImport::LabelsImporter6892 #execute6893 when label is missing from jira import6894 raises error6895 when jira import label exists6896 when labels are returned from jira6897 caches import label6898 calls Gitlab::JiraImport::HandleLabelsService6899 when there are no labels to be handled6900 when the labels field is empty6901 behaves like no labels handling6902 does not call Gitlab::JiraImport::HandleLabelsService6903 when the labels field is missing6904 behaves like no labels handling6905 does not call Gitlab::JiraImport::HandleLabelsService6906 when the isLast argument is missing6907 behaves like no labels handling6908 does not call Gitlab::JiraImport::HandleLabelsService6909Sidebars::Projects::Menus::ProjectInformationMenu6910 behaves like not serializable as super_sidebar_menu_args6911 returns nil6912 #container_html_options6913 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007f06aa9d4948 @expected={:class=>"shortcuts-project-information has-sub-items"}>6914 Menu Items6915 Labels6916 is expected not to be nil6917 when merge requests are disabled6918 is expected not to be nil6919 when issues are disabled6920 is expected not to be nil6921 when merge requests and issues are disabled6922 is expected to be nil6923 Members6924 is expected not to be nil6925 when the user does not have access6926 is expected to be nil6927Resolvers::DesignManagement::DesignResolver6928 is expected to have nullable GraphQL type Design6929 #resolve6930 when the user cannot see designs6931 returns nothing6932 when no argument has been passed6933 generates an error6934 when both arguments have been passed6935 generates an error6936 by ID6937 returns the specified design6938 the ID belongs to a design on another issue6939 returns nothing6940 by filename6941 returns the specified design6942 the filename belongs to a design on another issue6943 returns nothing6944Files::BaseService6945 # order random6946 with a group namespace_commit_email6947 sets @author_email to the group namespace_commit_email6948 with no namespace_commit_emails6949 sets @author_email to user default email6950 with a project and group namespace_commit_email6951 sets @author_email to the project namespace_commit_email6952 with an author_email in params and namespace_commit_email6953 gives precedence to the parameter value for @author_email6954 with a project namespace_commit_email6955 sets @author_email to the project namespace_commit_email6956Gitlab::Auth::Ldap::Adapter6957 #users6958 searches with the proper options when searching by uid6959 searches with the proper options when searching by dn6960 searches with the proper options when searching with a limit6961 returns an LDAP::Person if search returns a result6962 returns empty array if search entry does not respond to uid6963 uses the right uid attribute when non-default6964 #dn_matches_filter?6965 when the search result is non-empty6966 is expected to be truthy6967 when the search result is empty6968 is expected to be falsey6969 #ldap_search6970 when the search is successful6971 and the result is non-empty6972 is expected to eq [:foo]6973 and the result is empty6974 is expected to eq []6975 when returned with expected code6976 behaves like connection retry6977 retries the operation6978 as many times as MAX_SEARCH_RETRIES6979 when no more retries6980 raises the exception6981 logs the error6982 when the search encounters an error6983 is expected to eq []6984 when the search raises an LDAP exception6985 retries the operation6986 behaves like connection retry6987 retries the operation6988 as many times as MAX_SEARCH_RETRIES6989 when no more retries6990 raises the exception6991 logs the error6992Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern6993 #initialize6994 when the value is a valid regular expression6995 initializes the pattern6996 when the value is a valid regular expression with escaped slashes6997 initializes the pattern6998 when the value is not a valid regular expression6999 raises an error7000 .build7001 creates a new instance of the token7002 raises an error if pattern is invalid7003 .build_and_evaluate7004 when the value is a valid regular expression7005 returns the value as a Gitlab::UntrustedRegexp7006 when the value is a Gitlab::UntrustedRegexp7007 returns the value itself7008 when the value is not a valid regular expression7009 returns the value itself7010 .type7011 is a value lexeme7012 .scan7013 correctly identifies a pattern token7014 does not allow to use an empty pattern7015 support single flag7016 support multiple flags7017 ignores unsupported flags7018 is an eager scanner for regexp boundaries7019 does not match on escaped regexp boundaries7020 recognizes \ as an escape character for /7021 does not recognize \ as an escape character for $7022 #evaluate7023 returns a regular expression7024 raises error if evaluated regexp is not valid7025Gitlab::Ci::Pipeline::Chain::Build7026 does not break the chain7027 builds a pipeline with the expected attributes7028 returns a valid pipeline7029 does not persist a pipeline7030 when pipeline is running for a tag7031 correctly indicated that this is a tagged pipeline7032 when origin_ref is branch but tag ref with the same name exists7033 correctly indicated that a pipeline is not tagged7034 when pipeline is running for a merge request7035 correctly indicated that this is a merge request pipeline7036 correctly sets souce sha and target sha to pipeline7037 when pipeline is running for an external pull request7038 correctly indicated that this is an external pull request pipeline7039 correctly sets source sha and target sha to pipeline7040 when keep_latest_artifact is set7041 keep_latest_artifact: true, locking_result: "artifacts_locked"7042 builds a pipeline with appropriate locked value7043 keep_latest_artifact: false, locking_result: "unlocked"7044 builds a pipeline with appropriate locked value7045Packages::Event7046 # order random7047 .event_allowed?7048 is expected to eq true7049 behaves like handle forbidden event type7050 is expected to eq false7051 .counters_for7052 is expected to contain exactly "i_package_push_package", "i_package_push_package_by_deploy_token", and "i_package_npm_push_package"7053 behaves like handle forbidden event type7054 is expected to eq []7055 .unique_counters_for7056 is expected to contain exactly "i_package_npm_deploy_token"7057 behaves like handle forbidden event type7058 is expected to eq []7059 when an originator type is quest7060 is expected to eq []7061Spam::AkismetService7062 #spam?7063 behaves like no activity if Akismet is not enabled7064 is automatically false7065 performs no check7066 if Akismet is enabled7067 correctly transforms options for the akismet client, including spelling of referrer key7068 the text is spam7069 is expected to be truthy7070 the text is blatant spam7071 is expected to be truthy7072 the text is not spam7073 is expected to be falsey7074 error handling7075 StandardError other than ArgumentError is raised7076 is expected to be falsey7077 logs an error7078 ArgumentError is raised in dev7079 raises original error7080 #submit_ham7081 behaves like no activity if Akismet is not enabled7082 is automatically false7083 performs no check7084 behaves like false if Akismet is not available7085 if Akismet is not available7086 is expected to be falsey7087 logs an error7088 if Akismet is available7089 is expected to be truthy7090 #submit_spam7091 behaves like no activity if Akismet is not enabled7092 is automatically false7093 performs no check7094 behaves like false if Akismet is not available7095 if Akismet is not available7096 is expected to be falsey7097 logs an error7098 if Akismet is available7099 is expected to be truthy7100Resolvers::PaginatedTreeResolver7101 is expected to have nullable GraphQL type TreeConnection7102 #resolve7103 resolves to a collection with a tree object7104 with recursive option7105 resolve to a recursive tree7106 with limited max_page_size7107 resolves to a pagination collection with a tree object7108 when repository does not exist7109 returns nil7110 Cursor pagination7111 returns all tree entries during cursor pagination7112 when cursor is invalid7113 generates an error7114 Custom error handling7115 when gitaly is not available7116 generates an unavailable error7117Gitlab::DependencyLinker::PackageJsonLinker7118 .support?7119 supports package.json7120 does not support other files7121 #link7122 does not link the module name7123 links the homepage7124 links the repository URL7125 links the license7126 links dependencies7127 links dependencies to URL detected on value7128 does not link to NPM when invalid git URL7129 links GitHub repos7130 links Git repos7131 does not link scripts with the same key as a package7132SensitiveSerializableHash7133 .prevent_from_serialization7134 does not include the field in serializable_hash7135 does not change parent class attributes_exempt_from_serializable_hash7136 #serializable_hash7137 for a web hook7138 behaves like attr_encrypted attribute7139 WebHook#token7140 has a attr_encrypted_attributes field7141 does not include the attribute in serializable_hash7142 behaves like attr_encrypted attribute7143 WebHook#url7144 has a attr_encrypted_attributes field7145 does not include the attribute in serializable_hash7146 behaves like attr_encrypted attribute7147 WebHook#url_variables7148 has a attr_encrypted_attributes field7149 does not include the attribute in serializable_hash7150 behaves like attr_encrypted attribute7151 Ci::InstanceVariable#value7152 has a attr_encrypted_attributes field7153 does not include the attribute in serializable_hash7154 behaves like add_authentication_token_field attribute7155 does not include token_expires_at in serializable_hash7156 Ci::Runner#token7157 has a add_authentication_token_field field7158 does not include the attribute in serializable_hash7159 behaves like add_authentication_token_field attribute7160 ApplicationSetting#health_check_access_token7161 has a add_authentication_token_field field7162 does not include the attribute in serializable_hash7163 behaves like add_authentication_token_field attribute7164 PersonalAccessToken#token7165 has a add_authentication_token_field field7166 does not include the attribute in serializable_hash7167LegacyDiffDiscussion7168 #reply_attributes7169 includes line_code7170 #merge_request_version_params7171 when the discussion is active7172 returns an empty hash, which will end up showing the latest version7173 when the discussion is outdated7174 returns nil7175Packages::Cleanup::UpdatePolicyService7176 #execute7177 with existing container expiration policy7178 user_role: :maintainer, shared_examples_name: "updating the policy"7179 behaves like updating the policy7180 updates the existing one7181 with invalid parameters7182 does not update one7183 user_role: :developer, shared_examples_name: "denying access"7184 behaves like denying access7185 returns an error7186 user_role: :reporter, shared_examples_name: "denying access"7187 behaves like denying access7188 returns an error7189 user_role: :guest, shared_examples_name: "denying access"7190 behaves like denying access7191 returns an error7192 user_role: :anonymous, shared_examples_name: "denying access"7193 behaves like denying access7194 returns an error7195 without existing container expiration policy7196 user_role: :maintainer, shared_examples_name: "creating the policy"7197 behaves like creating the policy7198 creates a new one7199 with invalid parameters7200 does not create one7201 user_role: :developer, shared_examples_name: "denying access"7202 behaves like denying access7203 returns an error7204 user_role: :reporter, shared_examples_name: "denying access"7205 behaves like denying access7206 returns an error7207 user_role: :guest, shared_examples_name: "denying access"7208 behaves like denying access7209 returns an error7210 user_role: :anonymous, shared_examples_name: "denying access"7211 behaves like denying access7212 returns an error7213MergeRequest::DiffCommitUser7214 validations7215 requires that names are less than 512 characters long7216 requires that Emails are less than 512 characters long7217 requires either a name or Email7218 allows setting of just a name7219 allows setting of just an Email7220 allows setting of both a name and Email7221 .prepare7222 trims a value to at most 512 characters7223 returns nil if the value is an empty string7224 .find_or_create7225 creates a new row if none exist7226 returns an existing row if one exists7227 handles concurrent inserts7228 .bulk_find_or_create7229 bulk creates missing rows and reuses existing rows7230 does not insert any data when all users exist7231 handles concurrently inserted rows7232Gitlab::JiraImport::StuckJiraImportJobsWorker7233 with scheduled Jira import7234 behaves like stuck import job detection7235 when the job has completed7236 when the import status was already updated7237 does not mark the import as failed7238 when the import status was not updated7239 marks the import as failed7240 when the job is still in Sidekiq7241 does not mark the import as failed7242 with started jira import7243 behaves like stuck import job detection7244 when the job has completed7245 when the import status was already updated7246 does not mark the import as failed7247 when the import status was not updated7248 marks the import as failed7249 when the job is still in Sidekiq7250 does not mark the import as failed7251 with failed jira import7252 detects no stuck jobs7253Resolvers::ProjectPipelineResolver7254 is expected to have nullable GraphQL type Pipeline7255 resolves pipeline for the passed iid7256 resolves pipeline for the passed sha7257 keeps the queries under the threshold for iid7258 keeps the queries under the threshold for sha7259 does not resolve a pipeline outside the project7260 errors when no iid or sha is passed7261 errors when both iid and sha are passed7262 when the pipeline is a dangling pipeline7263 resolves pipeline for the passed iid7264Puma7265{"timestamp":"2023-03-30T12:00:47.606Z","pid":9851,"message":"Puma starting in cluster mode..."}7266{"timestamp":"2023-03-30T12:00:47.606Z","pid":9851,"message":"* Puma version: 5.6.5 (ruby 3.0.5-p211) (\"Birdie's Version\")"}7267{"timestamp":"2023-03-30T12:00:47.606Z","pid":9851,"message":"* Min threads: 1"}7268{"timestamp":"2023-03-30T12:00:47.606Z","pid":9851,"message":"* Max threads: 4"}7269{"timestamp":"2023-03-30T12:00:47.606Z","pid":9851,"message":"* Environment: test"}7270{"timestamp":"2023-03-30T12:00:47.607Z","pid":9851,"message":"* Master PID: 9851"}7271{"timestamp":"2023-03-30T12:00:47.607Z","pid":9851,"message":"* Workers: 1"}7272{"timestamp":"2023-03-30T12:00:47.607Z","pid":9851,"message":"* Restarts: (✔) hot (✖) phased"}7273{"timestamp":"2023-03-30T12:00:47.607Z","pid":9851,"message":"* Preloading application"}7274{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"* Listening on unix:///builds/gitlab-org/gitlab/tmp/tests/puma.socket"}7275{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"Use Ctrl-C to stop"}7276{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"! WARNING: Detected running cluster mode with 1 worker."}7277{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"! Running Puma in cluster mode with a single worker is often a misconfiguration."}7278{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead."}7279{"timestamp":"2023-03-30T12:00:47.621Z","pid":9851,"message":"! Set the `silence_single_worker_warning` option to silence this warning message."}7280{"timestamp":"2023-03-30T12:00:47.623Z","pid":9851,"message":"! Promoting existing objects to old generation..."}7281{"timestamp":"2023-03-30T12:00:47.633Z","pid":9851,"message":"! Compacting..."}7282{"timestamp":"2023-03-30T12:00:47.669Z","pid":9851,"message":"! Friendly fork preparation complete."}7283{"timestamp":"2023-03-30T12:00:47.671Z","pid":9851,"message":"- Worker 0 (PID: 9852) booted in 0.0s, phase: 0"}7284{"timestamp":"2023-03-30T12:00:48.805Z","pid":9851,"message":"- Worker 0 (PID: 9859) booted in 0.0s, phase: 0"}7285 has a worker that self-terminates on signal SIGQUIT7286{"timestamp":"2023-03-30T12:00:49.639Z","pid":9851,"message":"- Worker 0 (PID: 9866) booted in 0.0s, phase: 0"}7287 has a worker that self-terminates on signal SIGTERM7288{"timestamp":"2023-03-30T12:00:50.674Z","pid":9851,"message":"- Worker 0 (PID: 9873) booted in 0.0s, phase: 0"}7289 has a worker that self-terminates on signal SIGKILL7290{"timestamp":"2023-03-30T12:00:50.678Z","pid":9851,"message":"=== puma shutdown: 2023-03-30 12:00:50 +0000 ==="}7291{"timestamp":"2023-03-30T12:00:50.678Z","pid":9851,"message":"- Goodbye!"}7292{"timestamp":"2023-03-30T12:00:50.678Z","pid":9851,"message":"- Gracefully shutting down workers..."}7293notify/change_in_merge_request_draft_status_email.html.haml7294 shows user added draft status on email7295 shows user removed draft status on email7296 renders the email correctly7297Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged7298 behaves like value stream analytics event7299 is expected to be a kind of String7300 is expected to be a kind of Symbol7301 is expected to include ApplicationRecord(abstract)7302 is expected to respond to #timestamp_projection7303 is expected to respond to #html_description7304 is expected to be a kind of Array7305 #apply_query_customization7306 expects an ActiveRecord::Relation object as argument and returns a modified version of it7307 #hash_code7308 returns a hash that uniquely identifies an event7309 does not differ when the same object is built with the same params7310 behaves like LEFT JOIN-able value stream analytics event7311 can use the event as LEFT JOIN7312 when looking at the record with data7313 contains the timestamp expression7314 when looking at the record without data7315 returns nil for the timestamp expression7316DeploymentSerializer7317 #represent7318 behaves like json schema7319 matches deployment entity schema7320 #represent_concise7321 behaves like json schema7322 matches deployment entity schema7323Resolvers::ProjectPipelineSchedulesResolver7324 # order random7325 With filters7326 shows active pipeline schedules7327 shows the inactive pipeline schedules7328Resolvers::BaseResolver.single7329 #resolve7330 when there is no parent7331 returns nil if parent is nil7332 when project boards7333 behaves like group and project boards resolver7334 does not create a default board7335 calls Boards::BoardsFinder7336 requires an ID7337 when querying for a single board7338 returns specified board7339 returns nil if board not found7340 when group boards7341 behaves like group and project boards resolver7342 does not create a default board7343 calls Boards::BoardsFinder7344 requires an ID7345 when querying for a single board7346 returns specified board7347 returns nil if board not found7348Import::FogbugzService7349 returns error for unknown error causes7350 when no repo is found7351 returns an error7352 when import source is disabled7353 returns forbidden7354 when user is unauthorized7355 returns an error7356 verify url7357 when host is localhost7358 does not allow requests7359 when host is on local network7360 does not allow requests7361 when host is ftp protocol7362 does not allow requests7363 when import starts succesfully7364 returns success7365 when import fails to start7366 returns error7367Integrations::PropagateService7368 .propagate7369 with inherited integration7370 calls to PropagateIntegrationProjectWorker7371 with a project without integration7372 calls to PropagateIntegrationProjectWorker7373 with a group without integration7374 calls to PropagateIntegrationProjectWorker7375 for a group-level integration7376 with a project without integration7377 calls to PropagateIntegrationProjectWorker7378 with a subgroup without integration7379 calls to PropagateIntegrationGroupWorker7380 with a subgroup with integration7381 calls to PropagateIntegrationInheritDescendantWorker7382Gitlab::JiraImport::ImportIssueWorker7383 modules7384 is expected to includes the ApplicationWorker module7385 is expected to includes the Gitlab::NotifyUponDeath module7386 is expected to includes the Gitlab::JiraImport::QueueOptions module7387 is expected to includes the Gitlab::Import::DatabaseHelpers module7388 #perform7389 when any exception raised while inserting to DB7390 record a failed to import issue7391 when record is successfully inserted7392 when import label does not exist7393 does not record import failure7394 when import label exists7395 does not record import failure7396 creates an issue with the correct attributes7397 when assignee_ids is nil7398 creates an issue without assignee7399 when assignee_ids is an empty array7400 creates an issue without assignee7401Milestones::CreateService7402 #execute7403 valid params7404 is expected to be valid7405 is expected to eq "v2.1.9"7406Ci::PendingBuilds::UpdateGroupWorker7407 #perform7408 when a group is not provided7409 does not call the service7410 when everything is ok7411 calls the service7412 is labeled as idempotent7413 performs multiple times sequentially without raising an exception7414 updates the pending builds7415JiraImport::ServerUsersMapperService7416 #execute7417 behaves like mapping jira users7418 jira_users is nil7419 returns an empty array7420 when jira_users is present7421 returns users mapped to Gitlab7422 runs only 4 queries7423Aws::Role7424 is expected to belong to user required: false7425 is expected to validate that the length of :role_external_id is between 1 and 647426 custom validations7427 :role_arn7428 length is zero7429 is expected to be falsey7430 length is longer than 20487431 is expected to be falsey7432 ARN is valid7433 is expected to be truthy7434 ARN is nil7435 is expected to be truthy7436 callbacks7437 #ensure_role_external_id!7438 for a new record7439 calls #ensure_role_external_id!7440 for an existing record7441 does not call #ensure_role_external_id!7442 #ensure_role_external_id!7443 role_external_id is blank7444 generates an external ID and assigns it to the record7445 role_external_id is already set7446 does not change the existing external id7447RuboCop::Cop::Search::NamespacedClass7448 # order random7449 when Search root namespace is used7450 does not flag a class definition with Search as root namespace module7451 does not a flag a class definition with Search as root namespace inline7452 does not a flag a class definition with Search as root namespace in EE7453 when Search root namespace is used7454 does not flag a class definition with Search as root namespace module7455 does not a flag a class definition with Search as root namespace inline7456 does not a flag a class definition with Search as root namespace in EE7457 when Search root namespace is not used7458 flags a class definition without Search namespace7459 flags a class definition with Zoekt in root namespace module7460 flags a module in EE module7461 when Search root namespace is not used7462 flags a class definition without Search namespace7463 flags a class definition with Elastic in root namespace module7464 flags a module in EE module7465 when Search root namespace is used7466 does not flag a class definition with Search as root namespace module7467 does not a flag a class definition with Search as root namespace inline7468 does not a flag a class definition with Search as root namespace in EE7469 when Search root namespace is not used7470 flags a class definition without Search namespace7471 flags a class definition with Search in root namespace module7472 flags a module in EE module7473Projects::LfsPointers::LfsImportService7474 when lfs is enabled for the project7475 downloads lfs objects7476 when no downloadable lfs object links7477 does not call LfsDownloadService7478 when an exception is raised7479 returns error7480 when lfs is not enabled for the project7481 does not download lfs objects7482Mutations::Security::CiConfiguration::ConfigureSastIac7483 is expected to require graphql authorizations :push_code7484 #resolve7485 generates an error if the resource is not accessible to the user7486 when user does not have enough permissions7487 generates an error7488 when user is a maintainer of a different project7489 generates an error7490 when the user does not have permission to create a new branch7491 returns an array of errors7492 when the user can create a merge request7493 when service successfully generates a path to create a new merge request7494 returns a success path7495 when service can not generate any path to create a new merge request7496 returns an array of errors7497Gitlab::DataBuilder::WikiPage7498 .build7499 is expected to be a kind of Hash7500 is expected to eq "wiki_page"7501 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"}7502 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"}7503 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"}7504 is expected to include {:slug => "Page-54", :title => "Page 54", :content => "Content for wiki page", :format => :markdown, :message => nil, "content" => "Content for wiki page"}7505 is expected to include {:url => "http://localhost/namespace1283/project963/-/wikis/Page-54"}7506 is expected to include {:action => "create"}7507 is expected to include {:diff_url => "http://localhost/namespace1283/project963/-/wikis/Page-54/diff?version_id=0c07b25e58cb63f06368360cf341a5e8e1e6a9e7"}7508Terraform::StateVersionPolicy7509 rules7510 no access7511 is expected to be disallowed :read_terraform_state7512 is expected to be disallowed :admin_terraform_state7513 developer7514 is expected to be allowed :read_terraform_state7515 is expected to be disallowed :admin_terraform_state7516 maintainer7517 is expected to be allowed :read_terraform_state7518 is expected to be allowed :admin_terraform_state7519Keys::RevokeService7520 # order random7521 destroys a key7522 unverifies associated signatures7523 does not unverifies signatures if destroy fails7524gitlab:packages namespace rake task7525 migrate7526 object storage disabled7527 doesn't migrate files7528 object storage enabled7529 migrates local file to object storage7530BulkImports::Projects::Pipelines::SnippetsPipeline7531 #run7532 imports snippet into destination project7533 with award_emoji7534 restores the award_emoji7535 with notes7536 restores the notes7537API::Entities::Clusters::AgentAuthorization7538 project authorization7539 includes shared fields7540 group authorization7541 includes shared fields7542 implicit authorization7543 includes shared fields7544Ci::DagJobGroupEntity7545 #as_json7546 when group contains 1 job7547 exposes a name7548 exposes the size7549 exposes the jobs7550 matches schema7551 when group contains multiple parallel jobs7552 exposes a name7553 exposes the size7554 exposes the jobs7555 matches schema7556Gitlab::HookData::GroupBuilder7557 #build7558 data7559 on create7560 is expected to eq "group_create"7561 behaves like includes the required attributes7562 includes the required attributes7563 behaves like does not include old path attributes7564 does not include old path attributes7565 on destroy7566 is expected to eq "group_destroy"7567 behaves like includes the required attributes7568 includes the required attributes7569 behaves like does not include old path attributes7570 does not include old path attributes7571 on rename7572 is expected to eq "group_rename"7573 includes old path details7574 behaves like includes the required attributes7575 includes the required attributes7576Tooling::Danger::ProductIntelligence7577 #check!7578 with growth experiment label7579 doesn't add new labels7580 doesn't add new warnings7581 without growth experiment label7582 with approved label7583 doesn't add new labels7584 doesn't add new warnings7585 without approved label7586For 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 recommended7587Please 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/).7588For 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).7589markdown formatted list7590 adds new labels7591 warns with proper message7592 with product intelligence::review pending label7593For 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 recommended7594Please 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/).7595For 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).7596markdown formatted list7597 doesn't add new labels7598 with product intelligence::approved label7599 doesn't add new labels7600 with the product intelligence label7601 with ci? false7602For 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 recommended7603Please 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/).7604For 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).7605markdown formatted list7606 doesn't add new labels7607 with ci? true7608For 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 recommended7609Please 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/).7610For 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).7611markdown formatted list7612 adds new labels7613 #check_affected_scopes!7614 when a model was modified7615 when a scope is changed7616 and a metrics uses the affected scope7617 producing warning7618 when no metrics using the affected scope7619 doesnt do anything7620 when an unrelated model with matching scope was modified7621 doesnt do anything7622 when models arent modified7623 doesnt do anything7624 #check_usage_data_insertions!7625 when usage_data.rb is modified7626 and has insertions7627 produces warning7628 and changes are not insertions7629 doesnt do anything7630 when usage_data.rb is not modified7631 and another file has insertions7632 doesnt do anything7633Gitlab::Git::RepositoryCleaner7634 #apply_bfg_object_map_stream (from StringIO)7635 removes internal references7636 #apply_bfg_object_map_stream (from Gitlab::HttpIO)7637 removes internal references7638Gitlab::Database::Type::IndifferentJsonb7639 # order random7640 when used by a model7641 is expected to match {:key=>"value"}7642 is expected to match {"key"=>"value"}7643 ignores changes to other attributes7644 tracks changes to options7645 #deserialize7646 json: nil, value: nil7647 is expected to match nil7648 is expected to match nil7649 json: "{\"key\":\"value\"}", value: {:key=>"value"}7650 is expected to match {:key=>"value"}7651 is expected to match {"key"=>"value"}7652 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}7653 is expected to match {:key=>[1, 2, 3]}7654 is expected to match {"key"=>[1, 2, 3]}7655 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}7656 is expected to match {:key=>{:subkey=>"value"}}7657 is expected to match {"key"=>{"subkey"=>"value"}}7658 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7659 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}7660 is expected to match {"key"=>{"a"=>[{"b"=>"c"}, {"d"=>"e"}]}}7661Environments::StopStaleService7662 # order random7663 #execute7664 only stops stale environments7665Gitlab::Database::QueryAnalyzers::QueryRecorder7666 # order random7667 .log_file7668 when in CI7669 is expected to include "query_recorder/test-job-1.ndjson"7670 is expected not to include "query_recorder/rspec.ndjson"7671 when not in CI7672 is expected to include "query_recorder/rspec.ndjson"7673 is expected not to include "query_recorder/test-job-1.ndjson"7674 with query analyzer7675 on default branch7676 behaves like an enabled query recorder7677 list_parameter: "$2, $3", bind_parameters: [1, 2, 3]7678 logs normalized queries to a file7679 list_parameter: "$2, $3, $4", bind_parameters: [1, 2, 3, 4]7680 logs normalized queries to a file7681 list_parameter: "$2 ,$3 ,$4 ,$5", bind_parameters: [1, 2, 3, 4, 5]7682 logs normalized queries to a file7683 list_parameter: "$2 , $3 , $4 , $5, $6", bind_parameters: [1, 2, 3, 4, 5, 6]7684 logs normalized queries to a file7685 list_parameter: "$2, $3 ,$4 , $5,$6,$7", bind_parameters: [1, 2, 3, 4, 5, 6, 7]7686 logs normalized queries to a file7687 list_parameter: "$2,$3,$4,$5,$6,$7,$8", bind_parameters: [1, 2, 3, 4, 5, 6, 7, 8]7688 logs normalized queries to a file7689 on database merge requests7690 behaves like an enabled query recorder7691 list_parameter: "$2, $3", bind_parameters: [1, 2, 3]7692 logs normalized queries to a file7693 list_parameter: "$2, $3, $4", bind_parameters: [1, 2, 3, 4]7694 logs normalized queries to a file7695 list_parameter: "$2 ,$3 ,$4 ,$5", bind_parameters: [1, 2, 3, 4, 5]7696 logs normalized queries to a file7697 list_parameter: "$2 , $3 , $4 , $5, $6", bind_parameters: [1, 2, 3, 4, 5, 6]7698 logs normalized queries to a file7699 list_parameter: "$2, $3 ,$4 , $5,$6,$7", bind_parameters: [1, 2, 3, 4, 5, 6, 7]7700 logs normalized queries to a file7701 list_parameter: "$2,$3,$4,$5,$6,$7,$8", bind_parameters: [1, 2, 3, 4, 5, 6, 7, 8]7702 logs normalized queries to a file7703Metrics::Dashboard::ClusterDashboardService7704 .valid_params?7705 is expected to be truthy7706 with matching dashboard_path7707 is expected to be truthy7708 missing cluster without dashboard_path7709 is expected to be falsey7710 #get_dashboard7711 behaves like valid dashboard service response7712 behaves like valid dashboard service response for schema7713 returns a json representation of the dashboard7714 behaves like caches the unprocessed dashboard for subsequent calls7715 is expected to receive load_raw!(*(any args)) 1 time7716 behaves like refreshes cache when dashboard_version is changed7717 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/cluster_metrics.yml>) 2 times7718 behaves like dashboard_version contains SHA256 hash of dashboard file content7719 is expected to eq "e1a4f8cc2c044cf32273af2cd775eb484729baac0995db687d81d92686bf588e"7720 when called with a non-system dashboard7721 behaves like valid dashboard service response7722 behaves like valid dashboard service response for schema7723 returns a json representation of the dashboard7724Gitlab::Ci::Status::Processable::WaitingForResource7725 #illustration7726 is expected to include :image, :size, and :title7727 .matches?7728 when processable is waiting for resource7729 is a correct match7730 when processable is not waiting for resource7731 does not match7732Gitlab::Diff::ParallelDiff7733 #parallelize7734 returns an array of arrays containing the parsed diff7735Resolvers::Ci::TestReportSummaryResolver7736 #resolve7737 when pipeline has build report results7738 returns test report summary data7739 when pipeline does not have build report results7740 renders test report summary data7741Gitlab::GithubImport::Importer::Events::Renamed7742 #execute7743 with Issue7744 behaves like import renamed event7745 creates expected note7746 creates expected system note metadata7747 with MergeRequest7748 behaves like import renamed event7749 creates expected note7750 creates expected system note metadata7751Mutations::DependencyProxy::GroupSettings::Update7752 is expected to require graphql authorizations :admin_dependency_proxy7753 #resolve7754 user_role: :maintainer, shared_examples_name: "updating the dependency proxy group settings"7755 behaves like updating the dependency proxy group settings7756 returns the dependency proxy settings no errors7757 behaves like updating the dependency proxy group settings attributes7758 updates the dependency proxy settings7759 user_role: :developer, shared_examples_name: "denying access to dependency proxy group settings"7760 behaves like denying access to dependency proxy group settings7761 raises Gitlab::Graphql::Errors::ResourceNotAvailable7762 user_role: :reporter, shared_examples_name: "denying access to dependency proxy group settings"7763 behaves like denying access to dependency proxy group settings7764 raises Gitlab::Graphql::Errors::ResourceNotAvailable7765 user_role: :guest, shared_examples_name: "denying access to dependency proxy group settings"7766 behaves like denying access to dependency proxy group settings7767 raises Gitlab::Graphql::Errors::ResourceNotAvailable7768 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy group settings"7769 behaves like denying access to dependency proxy group settings7770 raises Gitlab::Graphql::Errors::ResourceNotAvailable7771Gitlab::ManifestImport::Manifest7772 #valid?7773 valid file7774 is expected to equal true7775 missing or invalid attributes7776 is expected to equal false7777 errors7778 is expected to include "Make sure a <remote> tag is present and is valid."7779 is expected to include "Make sure every <project> tag has name and path attributes."7780 #projects7781 is expected to eq 6607782 is expected to eq "platform/build"7783 is expected to eq "build/make"7784 is expected to eq "https://android-review.googlesource.com/platform/build"7785Sidebars::UserSettings::Menus::PreferencesMenu7786 # order random7787 behaves like User settings menu7788 does not contain any sub menu7789 renders the correct link7790 renders the correct title7791 renders the correct icon7792 defines correct active route7793 behaves like User settings menu #render? method7794 #render?7795 when user is logged in7796 renders7797 when user is not logged in7798 does not render7799Types::GroupInvitationType7800 is expected to expose permissions using Types::PermissionTypes::Group7801 is expected to eq "GroupInvitation"7802 is expected to require graphql authorizations :admin_group7803 has the expected fields7804IgnorableColumns7805 adds columns to ignored_columns7806 adds columns to ignored_columns (array version)7807 requires remove_after attribute to be set7808 requires remove_after attribute to be set7809 requires remove_with attribute to be set7810 .ignored_columns_details7811 defaults to empty Hash7812 with single column7813 behaves like storing removal information7814 storing removal information7815 with array column7816 behaves like storing removal information7817 storing removal information7818 when called on a subclass without setting the ignored columns7819 does not raise Deadlock error7820 IgnorableColumns::ColumnIgnore7821 #safe_to_remove?7822 after remove_after date has passed7823 returns true (safe to remove)7824 before remove_after date has passed7825 returns false (not safe to remove)7826projects/generic_commit_statuses/_generic_commit_status.html.haml7827 won't include a column with a link to its pipeline by default7828 can include a column with a link to its pipeline7829Banzai::CrossProjectReference7830 #parent_from_ref7831 when no project was referenced7832 returns the project from context7833 when no project was referenced in group context7834 returns the group from context7835 when referenced project does not exist7836 returns nil7837 when referenced project exists7838 returns the referenced project7839 when reference cache is loaded7840 pulls from the reference cache7841Gitlab::GithubImport::Stage::ImportNotesWorker7842 #import7843 imports all the notes7844 #importers7845 when settings single_endpoint_notes_import is enabled7846 includes single endpoint mr and issue notes importers7847 when settings single_endpoint_notes_import is disabled7848 includes default notes importer7849Gitlab::MergeRequests::Mergeability::CheckResult7850 .default_payload7851 returns the expected defaults7852 .success7853 creates a success result7854 uses the default payload7855 when given a payload7856 uses the payload passed7857 .failed7858 creates a failure result7859 uses the default payload7860 when given a payload7861 uses the payload passed7862 .from_hash7863 returns the expected status and payload7864 #to_hash7865 returns the expected hash7866 #failed?7867 when it has failed7868 returns true7869 when it has succeeded7870 returns false7871 #success?7872 when it has failed7873 returns false7874 when it has succeeded7875 returns true7876PagesDomainSslRenewalWorker7877 #perform7878 delegates to ObtainLetsEncryptCertificateService7879 when domain was deleted7880 does nothing7881 when domain is disabled7882 does nothing7883Gitlab::Ci::Pipeline::Expression::Lexeme::String7884 .build7885 creates a new instance of the token7886 .type7887 is a value lexeme7888 .scan7889 when using double quotes7890 correctly identifies string token7891 when using single quotes7892 correctly identifies string token7893 when there are mixed quotes in the string7894 is a greedy scanner for double quotes7895 is a greedy scanner for single quotes7896 allows to use single quotes inside double quotes7897 allow to use double quotes inside single quotes7898 allows to use an empty string inside single quotes7899 allow to use an empty string inside double quotes7900 #evaluate7901 returns string value if it is present7902 returns an empty string if it is empty7903RuboCop::Cop::API::GrapeArrayMissingCoerce7904 # order random7905 adds an offense with an optional parameter7906 adds an offense with a required parameter7907 does not add an offense7908 does not add an offense for unrelated classes7909Ci::CreatePipelineService7910 .pre/.post stages7911 when pipeline contains a build except .pre/.post7912 creates a pipeline7913 when pipeline does not contain any other build except .pre/.post7914 does not create a pipeline7915Gitlab::ImportExport::AvatarRestorer7916 does not break if there is just a directory7917 with avatar7918 restores a project avatar7919 saves the avatar into the project7920DesignManagement::CopyDesignCollection::QueueService7921 returns an error if user does not have permission7922 when user has permission7923 returns an error if design collection copy_state is not queuable7924 sets the design collection copy state7925 queues a DesignManagement::CopyDesignCollectionWorker7926 returns success7927Sidebars::Groups::Menus::ObservabilityMenu7928 # order random7929 Menu items7930 Explore7931 behaves like observability menu entry7932 when action is allowed7933 the menu item is added to list of menu items7934 when action is not allowed7935 the menu item is added to list of menu items7936 Datasources7937 behaves like observability menu entry7938 when action is allowed7939 the menu item is added to list of menu items7940 when action is not allowed7941 the menu item is added to list of menu items7942 #render?7943 when observability#explore is allowed7944 returns true7945 when observability#explore is not allowed7946 returns false7947Webauthn::AuthenticateService7948 #execute7949 returns true if the response is valid and a matching stored credential is present7950 when response is valid but no matching stored credential is present7951 returns false7952 when device response includes invalid json7953 returns false7954CohortsService7955 #execute7956 returns a list of user cohorts7957Clusters::Agents::ProjectAuthorization7958 is expected to belong to agent class_name => Clusters::Agent required: true7959 is expected to belong to project class_name => Project required: true7960 is expected to validate jsonb schema "config"7961 #config_project7962 is expected to eq #<Project id:998 namespace1324/project1004>>7963GitlabScriptTagHelper7964 external script tag7965DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7966Falling back to an asset that may be in the public folder.7967This behavior is deprecated and will be removed.7968To bypass the asset pipeline and preserve this behavior,7969use the `skip_pipeline: true` option.7970 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7971 returns a script tag with defer=true and a nonce7972DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7973Falling back to an asset that may be in the public folder.7974This behavior is deprecated and will be removed.7975To bypass the asset pipeline and preserve this behavior,7976use the `skip_pipeline: true` option.7977 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7978 returns a script tag with defer=false and a nonce7979DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7980Falling back to an asset that may be in the public folder.7981This behavior is deprecated and will be removed.7982To bypass the asset pipeline and preserve this behavior,7983use the `skip_pipeline: true` option.7984 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7985 returns a script tag with a nonce even nonce is set to nil7986 inline script tag7987 returns a script tag with a nonce using block syntax7988 returns a script tag with a nonce using block syntax with options7989 returns a script tag with a nonce using argument syntax7990 returns a script tag with a nonce using argument syntax with options7991 returns a script tag with a nonce using argument and block syntax with options7992 #preload_link_tag7993 returns a link tag with a nonce7994Packages::Go::SyncPackagesService7995 #execute_async7996 schedules a package refresh7997 #initialize7998 without a project7999 raises an error8000 without a ref8001 raises an error8002 with an invalid ref8003 raises an error8004Packages::RemoveTagService8005 #execute8006 with existing tag8007 is expected to change `Packages::Tag.count` by -18008 with nil8009 is expected to raise ArgumentError8010Terraform/Base.gitlab-ci.yml8011 the created pipeline8012 does not create any jobs8013RawUsageData8014 scopes8015 .for_current_reporting_cycle8016 returns nil where no records match filter criteria8017 with records matching filtering criteria8018 return records within reporting cycle time range ordered by creation time8019 validations8020 is expected to validate that :payload cannot be empty/falsy8021 is expected to validate that :recorded_at cannot be empty/falsy8022 uniqueness validation8023 is expected to validate that :recorded_at is case-sensitively unique8024 #update_version_metadata!8025 updates sent_at8026 updates version_usage_data_id_value8027NestedAttributesDuplicatesValidator8028 #validate_each8029 with no scope8030 does not have any errors8031 with duplicates8032 has a duplicate key error8033 with a scope attribute8034 does not have any errors8035 with duplicates8036 has a duplicate key error8037 with a child attribute8038 does not have any errors8039 when name is duplicated8040 has a duplicate error8041 when url is duplicated8042 has a duplicate error8043PurgeDependencyProxyCacheWorker8044 #perform8045 an admin user8046 when admin mode is enabled8047 is labeled as idempotent8048 performs multiple times sequentially without raising an exception8049 marks the blobs as pending_destruction and returns ok8050 when admin mode is disabled8051 behaves like not expiring blobs and manifests8052 does not expire blobs and manifests8053 a non-admin user8054 behaves like not expiring blobs and manifests8055 does not expire blobs and manifests8056 an invalid user id8057 behaves like not expiring blobs and manifests8058 does not expire blobs and manifests8059 an invalid group8060 behaves like not expiring blobs and manifests8061 does not expire blobs and manifests8062Editable8063 #edited?8064 is expected to eq false8065 is expected to eq true8066Projects::CountService8067 .query8068 raises NotImplementedError8069 #relation_for_count8070 calls the class method query with the project id8071 #count8072 returns the number of rows8073 caches the number of rows8074 #refresh_cache8075 refreshes the cache8076 #delete_cache8077 removes the cache8078 #cache_key_name8079 raises NotImplementedError8080 #cache_key8081 returns the cache key as an Array8082AdminEmailWorker8083 .perform8084 does not attempt to send repository check mail when they are disabled8085 repository_checks enabled8086 checks if repository check mail should be sent8087 does not send mail when there are no failed repos8088 send mail when there is a failed repo8089Resolvers::Metrics::Dashboards::AnnotationResolver8090 #resolve8091 user with developer access8092 with annotation records8093 loads annotations with usage of finder class8094 dashboard is missing8095 returns empty array8096 there are no annotations records8097 returns empty array8098Gitlab::Chat::Responder8099 .responder_for8100 using a regular build8101 returns nil8102 using a chat build8103 when response_url starts with 'https://hooks.slack.com/'8104 is expected to be an instance of Gitlab::Chat::Responder::Slack8105 when response_url does not start with 'https://hooks.slack.com/'8106 is expected to be an instance of Gitlab::Chat::Responder::Mattermost8107RecaptchaHelper8108 .show_recaptcha_sign_up?8109 is expected to eq true8110 when setting is disabled8111 is expected to eq false8112 when it is a QA request8113 is expected to eq false8114 .recaptcha_enabled_on_login?8115 is expected to eq true8116 when setting is disabled8117 is expected to eq false8118 when it is a QA request8119 is expected to eq false8120Ci::RunnerVersion8121 is expected to have many runner_machines8122 behaves like having unique enum values8123 has unique values in "status"8124 .unavailable8125 is expected to contain exactly #<Ci::RunnerVersion version: "abc123", status: "unavailable">8126 .potentially_outdated8127 contains any valid or unprocessed runner version that is not already recommended8128 validation8129 is expected to validate that the length of :version is at most 20488130 #status8131 when is not processed8132 behaves like having enum with nil value8133 has enum with nil value8134Packages::Composer::PackagesFinder8135 #execute8136 is expected to contain exactly #<Packages::Package id: 97, project_id: 1010, created_at: "2023-03-30 12:02:34.918288270 +0000", updated_at: "2023-03-30 12:02:34.918288270 +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:02:34.928788999 +0000", updated_at: "2023-03-30 12:02:34.928788999 +0000", name: "composer-package-2", version: "1.0.2", package_type: "composer", creator_id: 1832, status: "default", last_downloaded_at: nil>8137StartupjsHelper8138 #page_startup_graphql_calls8139 returns an array containing GraphQL Page Startup Calls8140 #page_startup_graphql_headers8141 csrf_token: "abc", feature_category: "web_ide", expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>"web_ide"}8142 returns hash of headers for GraphQL requests8143 csrf_token: "", feature_category: "", expected: {"X-CSRF-Token"=>"", "x-gitlab-feature-category"=>""}8144 returns hash of headers for GraphQL requests8145 csrf_token: "abc", feature_category: nil, expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>""}8146 returns hash of headers for GraphQL requests8147 csrf_token: "something", feature_category: " ", expected: {"X-CSRF-Token"=>"something", "x-gitlab-feature-category"=>""}8148 returns hash of headers for GraphQL requests8149Peek::Views::RedisDetailed8150 returns aggregated results8151 commands: [[:auth, "test"]], expected: "auth <redacted>"8152 scrubs Redis commands8153 commands: [[:set, "key", "value"]], expected: "set key <redacted>"8154 scrubs Redis commands8155 commands: [[:set, "bad"]], expected: "set bad"8156 scrubs Redis commands8157 commands: [[:hmset, "key1", "value1", "key2", "value2"]], expected: "hmset key1 <redacted>"8158 scrubs Redis commands8159 commands: [[:get, "key"]], expected: "get key"8160 scrubs Redis commands8161 commands: [[:get, "key1"], [:get, "key2"]], expected: "get key1, get key2"8162 scrubs Redis commands8163 commands: [[:set, "key1", "value"], [:set, "key2", "value"]], expected: "set key1 <redacted>, set key2 <redacted>"8164 scrubs Redis commands8165UserAgentDetail8166 .submittable?8167 is submittable when not already submitted8168 is not submittable when already submitted8169 .valid?8170 is valid with a subject8171 is invalid without a subject8172Mutations::Boards::Update8173 is expected to require graphql authorizations :admin_issue_board8174 #resolve8175 when the user cannot admin the board8176 raises an error8177 when user can update board8178 updates board with correct values8179Gitlab::Auth::Otp::Strategies::FortiTokenCloud8180 access token is created successfully8181 otp verification is successful8182 returns success8183 otp verification is not successful8184 returns error8185 access token creation fails8186 returns error8187 SSL Verification8188 with `Gitlab::HTTP`8189 does not use a `verify` argument,thereby always performing SSL verification while making API calls8190Gitlab::Ci::Build::Cache8191 .initialize8192 when the cache is an array8193 instantiates an array of cache seeds8194 when the cache is a hash8195 instantiates a cache seed8196 #cache_attributes8197 when there are no caches8198 returns an empty hash8199 when there are caches8200 returns the structured attributes for the caches8201Gitlab::CycleAnalytics::Updater8202 updates authors8203 maps the correct user8204 updates builds8205 maps the correct build8206Gitlab::Usage::Metrics::Instrumentations::AggregatedMetric8207 # order random8208 data_source: "redis_hll", time_frame: "28d", operator: "OR", expected_value: 38209 has correct value8210 data_source: "database", time_frame: "7d", operator: "OR", expected_value: 3.08211 has correct value8212 data_source: "redis_hll", time_frame: "28d", operator: "AND", expected_value: 28213 has correct value8214 data_source: "database", time_frame: "7d", operator: "AND", expected_value: 1.08215 has correct value8216 data_source: "redis_hll", time_frame: "7d", operator: "OR", expected_value: 28217 has correct value8218 data_source: "redis_hll", time_frame: "7d", operator: "AND", expected_value: 18219 has correct value8220Sidebars::UserSettings::Menus::EmailsMenu8221 # order random8222 behaves like User settings menu #render? method8223 #render?8224 when user is logged in8225 renders8226 when user is not logged in8227 does not render8228 behaves like User settings menu8229 does not contain any sub menu8230 renders the correct link8231 renders the correct title8232 renders the correct icon8233 defines correct active route8234Gitlab::Checks::ForcePush8235 .force_push?8236 returns false if the repo is empty8237 checks if old rev is an anchestor8238RuboCop::Cop::CodeReuse::ServiceClass8239 # order random8240 flags the use of a Service class in a Finder8241 flags the use of a Service class in a Serializer8242 flags the use of a Service class in a model8243 flags the use of a Service class in a Presenter8244 does not flag the use of a Service class in a regular class8245Integrations::EventEntity8246 #as_json8247 with integration without fields8248 exposes correct attributes8249 with integration with fields8250 exposes correct attributes8251Gitlab::Kubernetes::Ingress8252 #canary?8253 with canary ingress parameters8254 is expected to be truthy8255 with stable ingress parameters8256 is expected to be falsey8257 #canary_weight8258 with canary ingress parameters8259 is expected to eq 508260 with stable ingress parameters8261 is expected to be nil8262 #name8263 is expected to eq "production-auto-deploy"8264Banzai::Filter::TimeoutHtmlPipelineFilter8265 # order random8266 raises NotImplementedError8267 behaves like filter timeout8268 when rendering takes too long8269 times out8270AsCte8271 .as_cte8272 is expected to be a kind of Gitlab::SQL::CTE8273 is expected to eq #<ActiveRecord::Relation []>8274 is expected to eq "klass_cte"8275 with materialized parameter8276 as true8277 is expected to match /MATERIALIZE/8278 as false8279 is expected not to match /MATERIALIZE/8280Gitlab::Ci::Build::Artifacts::Adapters::GzipStream8281 #initialize8282 when stream is passed8283 initialized8284 when stream is not passed8285 raises an error8286 #each_blob8287 when stream is gzip file8288 when gzip file contains one file8289 iterates content and file_name8290 when gzip file contains three files8291 iterates content and file_name8292 when stream is zip file8293 raises an error8294Types::ContainerRepositoryType8295 is expected to eq "ContainerRepository"8296 is expected to eq "A container repository"8297 is expected to require graphql authorizations :read_container_image8298 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_count8299 status field8300 returns status enum8301 expiration_policy_cleanup_status field8302 returns cleanup status enum8303google cloud profiler8304 # order random8305 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to false8306 is expected not to receive new(*(any args)) 0 times8307 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is not set8308 is expected not to receive new(*(any args)) 0 times8309 when GITLAB_GOOGLE_CLOUD_PROFILER_ENABLED is set to true8310 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is not set8311 is expected not to receive new(*(any args)) 0 times8312 when GITLAB_GOOGLE_CLOUD_PROFILER_PROJECT_ID is set8313 when run in Puma context8314 calls the agent8315 when run in Sidekiq context8316 is expected not to receive new(*(any args)) 0 times8317 when run in another context8318 is expected not to receive new(*(any args)) 0 times8319Gitlab::Config::Entry::Configurable8320 validations8321 when entry is a hash8322 correctly validates an instance8323 when entry is not a hash8324 invalidates the instance8325 configured entries8326 .nodes8327 has valid nodes8328 creates a node factory8329 returns a duplicated factory object8330 .reserved_node_names8331 returns all nodes with reserved: true8332Projects::BatchOpenMergeRequestsCountService8333 # order random8334 #refresh_cache_and_retrieve_data8335 refreshes cache keys correctly when cache is clean8336Gitlab::SlashCommands::Presenters::Run8337 #present8338 when no builds are present8339 returns an error8340 when a responder could be found8341 returns the output for a scheduled pipeline8342 when a responder could not be found8343 returns an error8344 #unsupported_chat_service8345 returns an ephemeral response8346 #failed_to_schedule8347 returns an ephemeral response8348API::Entities::Clusters::Agent8349 includes basic fields8350Gitlab::Ci::Config::Entry::Publish8351 # order random8352 .default8353 returns the default value8354 validations8355 when publish config value is correct8356 #config8357 returns the publish directory8358 #valid?8359 is valid8360 when the value has a wrong type8361 reports an error8362BlobViewer::RouteMap8363 #validation_message8364 calls prepare! on the viewer8365 when the configuration is valid8366 returns nil8367 when the configuration is invalid8368 returns the error message8369Gitlab::GithubImport::ImportDiffNoteWorker8370 #import8371 imports a diff note8372Gitlab::Email::Message::InProductMarketing::Create8373 public methods8374 series: 08375 returns value for series8376 series: 18377 returns value for series8378 series: 28379 returns value for series8380Packages::PackagePolicy8381 when the user is part of the project8382 allows read_package8383 when the user is not part of the project8384 disallows read_package for any Package8385ContainerRegistry::DataRepairDetail8386 # order random8387 is expected to belong to project required: true8388Sidebars::Groups::SuperSidebarPanel8389 # order random8390 implements #super_sidebar_context_header8391 #renderable_menus8392 is exposed as a renderable menu8393BulkImports::Clients::Graphql8394 #execute8395 source instance validation8396 when source instance is compatible8397 marks source instance as compatible8398 when source instance is incompatible8399 raises an error8400 network errors8401 when response cannot be parsed8402 raises network error8403 when response is unsuccessful8404 raises network error8405DisallowTwoFactorForGroupWorker8406 updates group8407 updates group members8408Gitlab::GithubImport::ProjectRelationType8409 # order random8410 #for8411 when it's user owned repo8412 is expected to eq "owned"8413 when it's organization repo8414 is expected to eq "organization"8415 when it's user collaborated repo8416 is expected to eq "collaborated"8417 with cache8418 calls client only once during 5 minutes timeframe8419Types::CommitSignatures::X509SignatureType8420 # order random8421 is expected to include Types::CommitSignatureInterface8422 contains attributes related to X.509 signatures8423 is expected to require graphql authorizations :download_code8424 is expected to eq "X509Signature"8425Banzai::Filter::ImageLazyLoadFilter8426 adds a class attribute8427 appends to the current class attribute8428 adds a async decoding attribute8429 transforms the image src to a data-src8430 works with external images8431Banzai::Pipeline::PreProcessPipeline8432 pre-processes the source text8433 truncates the text if requested8434 when multiline blockquote8435 data-sourcepos references correct line in source markdown8436Gitlab::HealthChecks::GitalyCheck8437 #readiness8438 Gitaly server is up8439 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=true, message=nil, labels={:shard=>"default"}>]8440 Gitaly server is down8441 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=false, message="Connection refused", labels={:shard=>"default"}>]8442 #metrics8443 Gitaly server is up8444 provides metrics8445 Gitaly server is down8446 provides metrics8447RuboCop::Cop::RSpec::AnyInstanceOf8448 # order random8449 when calling allow_any_instance_of8450 registers an offense and corrects8451 when calling expect_any_instance_of8452 registers an offense and corrects8453GroupLink::GroupGroupLinkSerializer8454 matches json schema8455sawyer_patch8456 # order random8457 raises error when acessing a method that expects an argument8458 raises error when acessing Sawyer Resource dynamic methods8459Projects::Settings::BranchRulesHelper8460 # order random8461 #branch_rules_data8462 returns branch rules data8463Gitlab::ZoomUrlValidator8464 validations8465 when zoom link starts with https8466 passes validation8467 when zoom link does not start with https8468 fails validation8469 when zoom link does not start with a scheme8470 fails validation8471Gitlab::Database::AsyncConstraints::Validators8472 # order random8473 .for8474 with foreign keys validations8475 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::ForeignKey8476 with check constraint validations8477 is expected to be a kind of Gitlab::Database::AsyncConstraints::Validators::CheckConstraint8478SystemCheck::IncomingEmailCheck8479 #multi_check8480 when incoming e-mail is disabled8481Reply by email is disabled in config/gitlab.yml8482 does not run any checks8483 when incoming e-mail is enabled for IMAP8484 runs IMAP and mailroom checks8485 when incoming e-mail is enabled for Microsoft Graph8486 runs mailroom checks8487Gitlab::Database::Migrations::Observers::QueryStatistics8488 #before8489 with pgss available8490 resets pg_stat_statements8491 without pgss available8492 executes nothing8493 #record8494 with pgss available8495 fetches data from pg_stat_statements and stores on the observation8496 without pgss available8497 executes nothing8498Import/Export attribute configuration8499 has no new columns8500Gitlab::PhabricatorImport::Representation::User8501 #phabricator_id8502 returns the phabricator id8503 #username8504 returns the username8505Types::Packages::Conan::MetadatumFileTypeEnum8506 uses all possible options from model8507Types::Packages::Pypi::MetadatumType8508 includes pypi metadatum fields8509SecurityReportsMrWidgetPromptExperiment8510 defines a control and candidate8511Gitlab::SidekiqMiddleware::SizeLimiter::Server8512 yields block8513 calls the Compressor8514Gitlab::Kubernetes::PodCmd8515 .retry_command8516 constructs string properly8517Docs::DeprecationHandling8518 sorts entries and milestones8519BlocksUnsafeSerialization8520 behaves like blocks unsafe serialization8521 blocks as_json8522 blocks to_json8523Types::EventableType8524 exposes events field8525Clusters::Group8526 is expected to belong to cluster required: false8527 is expected to belong to group required: false8528ServicePing::PermitDataCategories8529 #execute8530 when usage ping setting is set to true8531 returns all categories8532 when usage ping setting is set to false8533 returns all categories8534groups/observability/observability.html.haml8535 # order random8536 renders as expected8537NamespaceSerializer8538 represents NamespaceBasicEntity entities8539SyntheticNote8540 #to_ability_name8541 is expected to eq "note"8542AuthorizedProjectUpdate::ProjectAccessChangedService8543 #execute8544 executes projects_authorizations refresh8545RuboCop::Cop::Gitlab::FinderWithFindBy8546 # order random8547 when calling execute.find8548 registers an offense and corrects8549 when called within the `FinderMethods` module8550 does not register an offense8551Types::Packages::Conan::MetadatumType8552 includes conan metadatum fields8553Gitlab::Database::SchemaValidation::Validators::ExtraTriggers8554 # order random8555 returns trigger inconsistencies8556Admin::ComponentsHelper8557 # order random8558 #database_versions8559 returns expected database data8560#<Class:0x00007f06c947f410>8561 # order random8562 has the expected fields8563Gitlab::Database::Consistency8564 .with_read_consistency8565 sticks to primary database8566Knapsack report was generated. Preview:8567{8568 "spec/scripts/lib/glfm/update_example_snapshots_spec.rb": 268.23538116099917,8569 "spec/services/todos/destroy/entity_leave_service_spec.rb": 132.49166574599985,8570 "spec/lib/gitlab/redis/multi_store_spec.rb": 22.160263822999696,8571 "spec/services/git/branch_push_service_spec.rb": 78.7093117559998,8572 "spec/lib/gitlab/import_export/attributes_permitter_spec.rb": 10.042819068001336,8573 "spec/lib/object_storage/direct_upload_spec.rb": 29.58180027600065,8574 "spec/services/issues/relative_position_rebalancing_service_spec.rb": 59.78307926600064,8575 "spec/lib/gitlab/diff/position_spec.rb": 35.83985091899922,8576 "spec/models/diff_note_spec.rb": 37.45416674599983,8577 "spec/lib/gitlab/database/consistency_checker_spec.rb": 40.05933189499956,8578 "spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb": 35.02422433600077,8579 "spec/lib/gitlab/project_template_spec.rb": 14.710828970000875,8580 "spec/lib/gitlab/pagination/offset_pagination_spec.rb": 24.239088770000308,8581 "spec/services/packages/maven/find_or_create_package_service_spec.rb": 18.033404668000003,8582 "spec/finders/concerns/packages/finder_helper_spec.rb": 25.766800460000013,8583 "spec/presenters/merge_request_presenter_spec.rb": 19.647479502998976,8584 "spec/lib/gitlab/database/batch_count_spec.rb": 9.574422718000278,8585 "spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb": 25.62205859900132,8586 "spec/models/concerns/subscribable_spec.rb": 16.55717180300053,8587 "spec/lib/gitlab/ci/status/external/factory_spec.rb": 15.28544890699959,8588 "spec/services/ci/play_build_service_spec.rb": 14.53723403999902,8589 "spec/lib/gitlab/ci/variables/collection_spec.rb": 4.641309141999955,8590 "spec/services/issues/export_csv_service_spec.rb": 7.753042172000278,8591 "spec/models/wiki_page/meta_spec.rb": 8.007353367998803,8592 "spec/lib/gitlab/ci/ansi2json/style_spec.rb": 3.6968965169999137,8593 "spec/serializers/diff_file_entity_spec.rb": 7.106322618999911,8594 "spec/lib/gitlab/blob_helper_spec.rb": 8.777852012999574,8595 "spec/finders/releases_finder_spec.rb": 13.830985221000446,8596 "spec/lib/gitlab/issues/rebalancing/state_spec.rb": 2.733700212000258,8597 "spec/lib/gitlab/redis/sessions_spec.rb": 1.9320753979991423,8598 "spec/lib/banzai/filter/reference_redactor_filter_spec.rb": 10.400420358999327,8599 "spec/services/projects/protect_default_branch_service_spec.rb": 8.113363570999354,8600 "spec/services/issues/reopen_service_spec.rb": 9.178923659999782,8601 "spec/helpers/projects/project_members_helper_spec.rb": 10.878427471001487,8602 "spec/bin/audit_event_type_spec.rb": 1.9716166759990301,8603 "spec/services/todos/destroy/unauthorized_features_service_spec.rb": 9.198335919001693,8604 "spec/finders/pending_todos_finder_spec.rb": 10.540146841000023,8605 "spec/services/upload_service_spec.rb": 7.2122531839995645,8606 "spec/presenters/project_clusterable_presenter_spec.rb": 6.815262655998595,8607 "spec/services/deployments/older_deployments_drop_service_spec.rb": 8.41640294300123,8608 "spec/lib/gitlab/chat/command_spec.rb": 7.80365534900011,8609 "spec/workers/prune_old_events_worker_spec.rb": 8.149693499000932,8610 "spec/lib/gitlab/template_parser/ast_spec.rb": 4.432571506002205,8611 "spec/lib/gitlab/metrics/dashboard/finder_spec.rb": 7.063628421999965,8612 "spec/lib/gitlab/gitaly_client/repository_service_spec.rb": 4.471464782000112,8613 "spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb": 6.37669962200016,8614 "spec/finders/packages/conan/package_finder_spec.rb": 4.9860825820014725,8615 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 3.8673763059996418,8616 "spec/lib/gitlab/gitaly_client/blob_service_spec.rb": 7.729599883999981,8617 "spec/helpers/nav_helper_spec.rb": 2.939948410999932,8618 "spec/lib/error_tracking/sentry_client/projects_spec.rb": 1.8733764009994047,8619 "spec/services/tags/create_service_spec.rb": 6.9060994510000455,8620 "spec/lib/gitlab/ci/config/entry/trigger_spec.rb": 1.5272997120009677,8621 "spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb": 5.9165737079983955,8622 "spec/models/concerns/project_features_compatibility_spec.rb": 5.401460017999852,8623 "spec/lib/gitlab/user_access_snippet_spec.rb": 4.360899557999801,8624 "spec/services/merge_requests/mergeability/run_checks_service_spec.rb": 4.2167335559988715,8625 "spec/lib/gitlab/auth/ldap/user_spec.rb": 3.84332885799995,8626 "spec/graphql/types/user_merge_request_interaction_type_spec.rb": 2.77928897899983,8627 "spec/services/google_cloud/setup_cloudsql_instance_service_spec.rb": 4.77844976400047,8628 "spec/graphql/mutations/alert_management/alerts/set_assignees_spec.rb": 3.8777459259999887,8629 "spec/lib/gitlab/git/attributes_parser_spec.rb": 1.4259746380012075,8630 "spec/models/concerns/ci/has_ref_spec.rb": 5.1646451219985465,8631 "spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb": 1.0340054000007513,8632 "spec/finders/user_finder_spec.rb": 1.440108736998809,8633 "spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb": 5.014590570001019,8634 "spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb": 3.0129076360008185,8635 "spec/workers/gitlab/export/prune_project_export_jobs_worker_spec.rb": 3.270595580999725,8636 "spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb": 0.9069063379993167,8637 "spec/serializers/build_action_entity_spec.rb": 3.631628830999034,8638 "spec/lib/gitlab/chat/responder/slack_spec.rb": 3.6862366670011397,8639 "spec/lib/gitlab/ci/components/instance_path_spec.rb": 3.0640908329987724,8640 "spec/lib/gitlab/ci/build/policy/variables_spec.rb": 2.0182016830003704,8641 "spec/lib/gitlab/ci/reports/test_report_spec.rb": 2.020408413000041,8642 "spec/lib/gitlab/utils/email_spec.rb": 0.798475244000656,8643 "spec/lib/gitlab/search/params_spec.rb": 0.9815877529999852,8644 "spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb": 1.0085594920001313,8645 "spec/services/ci/create_pipeline_service/rate_limit_spec.rb": 5.339405732000159,8646 "spec/lib/gitlab/jira_import/labels_importer_spec.rb": 1.4283587569989322,8647 "spec/lib/sidebars/projects/menus/project_information_menu_spec.rb": 1.5052167029989505,8648 "spec/graphql/resolvers/design_management/design_resolver_spec.rb": 2.8254619269991963,8649 "spec/services/files/base_service_spec.rb": 2.3301068849996227,8650 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 0.9061023670001305,8651 "spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb": 1.1212628759985819,8652 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 2.059059230999992,8653 "spec/models/packages/event_spec.rb": 0.5119991999999911,8654 "spec/services/spam/akismet_service_spec.rb": 1.208939370000735,8655 "spec/graphql/resolvers/paginated_tree_resolver_spec.rb": 1.3742373609984497,8656 "spec/lib/gitlab/dependency_linker/package_json_linker_spec.rb": 0.9253339259994391,8657 "spec/models/concerns/sensitive_serializable_hash_spec.rb": 1.4459585470012826,8658 "spec/models/legacy_diff_discussion_spec.rb": 3.7571829540011095,8659 "spec/services/packages/cleanup/update_policy_service_spec.rb": 2.2939353170004324,8660 "spec/models/merge_request/diff_commit_user_spec.rb": 1.0473299199984467,8661 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 3.287149870000576,8662 "spec/graphql/resolvers/project_pipeline_resolver_spec.rb": 3.22450929399929,8663 "spec/rack_servers/puma_spec.rb": 4.8784483979998186,8664 "spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb": 4.251584105000802,8665 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_merged_spec.rb": 2.8818234730006225,8666 "spec/serializers/deployment_serializer_spec.rb": 3.5241799260002153,8667 "spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb": 1.5582802400003857,8668 "spec/graphql/resolvers/board_resolver_spec.rb": 3.1428836380000575,8669 "spec/services/import/fogbugz_service_spec.rb": 1.6539339350001683,8670 "spec/services/integrations/propagate_service_spec.rb": 3.051706343998376,8671 "spec/workers/gitlab/jira_import/import_issue_worker_spec.rb": 1.2935588159998588,8672 "spec/services/milestones/create_service_spec.rb": 1.4832916340001248,8673 "spec/workers/ci/pending_builds/update_group_worker_spec.rb": 2.905179851999492,8674 "spec/services/jira_import/server_users_mapper_service_spec.rb": 3.3716625750003004,8675 "spec/models/aws/role_spec.rb": 0.9225285770007758,8676 "spec/rubocop/cop/search/namespaced_class_spec.rb": 1.0793630969983496,8677 "spec/services/projects/lfs_pointers/lfs_import_service_spec.rb": 1.7078121509985067,8678 "spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb": 2.441114758999902,8679 "spec/lib/gitlab/data_builder/wiki_page_spec.rb": 1.7239610500000708,8680 "spec/policies/terraform/state_version_policy_spec.rb": 2.4175478400011343,8681 "spec/services/keys/revoke_service_spec.rb": 1.4023679789988819,8682 "spec/tasks/gitlab/packages/migrate_rake_spec.rb": 1.8109450860010838,8683 "spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb": 2.0993751880014315,8684 "spec/lib/api/entities/clusters/agent_authorization_spec.rb": 3.5479429949991754,8685 "spec/serializers/ci/dag_job_group_entity_spec.rb": 1.2668182569996134,8686 "spec/lib/gitlab/hook_data/group_builder_spec.rb": 0.9182354770000529,8687 "spec/tooling/danger/product_intelligence_spec.rb": 1.0518900490005763,8688 "spec/lib/gitlab/git/repository_cleaner_spec.rb": 2.2931637180008693,8689 "spec/lib/gitlab/database/type/indifferent_jsonb_spec.rb": 1.0167124709987547,8690 "spec/services/environments/stop_stale_service_spec.rb": 2.04560470099932,8691 "spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb": 0.973607453999648,8692 "spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb": 1.8351644039994426,8693 "spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb": 2.0889077199990425,8694 "spec/lib/gitlab/diff/parallel_diff_spec.rb": 1.2799877560009918,8695 "spec/graphql/resolvers/ci/test_report_summary_resolver_spec.rb": 2.735526172000391,8696 "spec/lib/gitlab/github_import/importer/events/renamed_spec.rb": 2.217206162000366,8697 "spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb": 1.891979560999971,8698 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 0.5441229790012585,8699 "spec/lib/sidebars/user_settings/menus/preferences_menu_spec.rb": 0.9111845679999533,8700 "spec/graphql/types/group_invitation_type_spec.rb": 0.5709793960013485,8701 "spec/models/concerns/ignorable_columns_spec.rb": 0.6920722600007139,8702 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.4905316770000354,8703 "spec/lib/banzai/cross_project_reference_spec.rb": 0.5205223100001604,8704 "spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb": 1.4214487469998858,8705 "spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb": 0.7811488749994169,8706 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 1.122078384998531,8707 "spec/lib/gitlab/ci/pipeline/expression/lexeme/string_spec.rb": 0.6336581539999315,8708 "spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb": 0.5217545499999687,8709 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 1.8073222450002504,8710 "spec/lib/gitlab/import_export/avatar_restorer_spec.rb": 1.5452677809989837,8711 "spec/services/design_management/copy_design_collection/queue_service_spec.rb": 1.4274920669995481,8712 "spec/lib/sidebars/groups/menus/observability_menu_spec.rb": 0.8412278220002918,8713 "spec/services/webauthn/authenticate_service_spec.rb": 0.8874901780000073,8714 "spec/services/cohorts_service_spec.rb": 1.652447944999949,8715 "spec/models/clusters/agents/project_authorization_spec.rb": 1.2390110989999812,8716 "spec/helpers/gitlab_script_tag_helper_spec.rb": 0.6524686520006071,8717 "spec/services/packages/go/sync_packages_service_spec.rb": 1.632597016001455,8718 "spec/services/packages/remove_tag_service_spec.rb": 1.187339690999579,8719 "spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb": 1.2017790209993109,8720 "spec/models/raw_usage_data_spec.rb": 0.6366648730017914,8721 "spec/validators/nested_attributes_duplicates_validator_spec.rb": 0.5508410980000917,8722 "spec/workers/purge_dependency_proxy_cache_worker_spec.rb": 0.9583367949999229,8723 "spec/models/concerns/editable_spec.rb": 1.2206324189992301,8724 "spec/services/projects/count_service_spec.rb": 0.7911237249991245,8725 "spec/workers/admin_email_worker_spec.rb": 0.7691899250003189,8726 "spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb": 1.247085197999695,8727 "spec/lib/gitlab/chat/responder_spec.rb": 1.3374325129989302,8728 "spec/helpers/recaptcha_helper_spec.rb": 0.6021232350012724,8729 "spec/models/ci/runner_version_spec.rb": 0.8185089329999755,8730 "spec/finders/packages/composer/packages_finder_spec.rb": 1.311140065001382,8731 "spec/helpers/startupjs_helper_spec.rb": 0.5191887890014186,8732 "spec/lib/peek/views/redis_detailed_spec.rb": 0.7580535159995634,8733 "spec/models/user_agent_detail_spec.rb": 0.8553265500013367,8734 "spec/graphql/mutations/boards/update_spec.rb": 0.8760037299998658,8735 "spec/lib/gitlab/auth/otp/strategies/forti_token_cloud_spec.rb": 0.6252368629993725,8736 "spec/lib/gitlab/ci/build/cache_spec.rb": 0.5138170299997,8737 "spec/lib/gitlab/cycle_analytics/updater_spec.rb": 1.0701485480003612,8738 "spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb": 0.7702178149993415,8739 "spec/lib/sidebars/user_settings/menus/emails_menu_spec.rb": 0.60169835600027,8740 "spec/lib/gitlab/checks/force_push_spec.rb": 1.1953488310009561,8741 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.6130933950007602,8742 "spec/serializers/integrations/event_entity_spec.rb": 1.0712849379997351,8743 "spec/lib/gitlab/kubernetes/ingress_spec.rb": 0.7270285280010285,8744 "spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb": 0.757384896000076,8745 "spec/models/concerns/as_cte_spec.rb": 0.6151085649999004,8746 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.43443274600031145,8747 "spec/graphql/types/container_repository_type_spec.rb": 0.48060880199955136,8748 "spec/initializers/google_cloud_profiler_spec.rb": 0.673557930998868,8749 "spec/lib/gitlab/config/entry/configurable_spec.rb": 0.4921228909988713,8750 "spec/services/projects/batch_open_merge_requests_count_service_spec.rb": 1.109977666001214,8751 "spec/lib/gitlab/slash_commands/presenters/run_spec.rb": 0.4680757430014637,8752 "spec/lib/api/entities/clusters/agent_spec.rb": 0.8598341000015353,8753 "spec/lib/gitlab/ci/config/entry/publish_spec.rb": 0.43967212499956076,8754 "spec/models/blob_viewer/route_map_spec.rb": 0.5123406399998203,8755 "spec/workers/gitlab/github_import/import_diff_note_worker_spec.rb": 0.7538267469990387,8756 "spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb": 0.5284647600001335,8757 "spec/policies/packages/package_policy_spec.rb": 0.8499305009991076,8758 "spec/models/container_registry/data_repair_detail_spec.rb": 0.6752417510015221,8759 "spec/lib/sidebars/groups/super_sidebar_panel_spec.rb": 0.6786470609986281,8760 "spec/lib/bulk_imports/clients/graphql_spec.rb": 0.5796909759992559,8761 "spec/workers/disallow_two_factor_for_group_worker_spec.rb": 0.7645875260004686,8762 "spec/lib/gitlab/github_import/project_relation_type_spec.rb": 0.43547777499952645,8763 "spec/graphql/types/commit_signatures/x509_signature_type_spec.rb": 0.5387406789996021,8764 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.6319042429986439,8765 "spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb": 0.4031247570001142,8766 "spec/lib/gitlab/health_checks/gitaly_check_spec.rb": 0.5240228490001755,8767 "spec/rubocop/cop/rspec/any_instance_of_spec.rb": 0.4562799930008623,8768 "spec/serializers/group_link/group_group_link_serializer_spec.rb": 0.508379540999158,8769 "spec/initializers/sawyer_patch_spec.rb": 0.3736817090011755,8770 "spec/helpers/projects/settings/branch_rules_helper_spec.rb": 0.3314207709991024,8771 "spec/validators/gitlab/zoom_url_validator_spec.rb": 0.4156636460011214,8772 "spec/lib/gitlab/database/async_constraints/validators_spec.rb": 0.3521266089992423,8773 "spec/lib/system_check/incoming_email_check_spec.rb": 0.42569242600075086,8774 "spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb": 0.36251150900170614,8775 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 1.3549260920008237,8776 "spec/lib/gitlab/phabricator_import/representation/user_spec.rb": 0.5368022490001749,8777 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.3958737769989966,8778 "spec/graphql/types/packages/pypi/metadatum_type_spec.rb": 0.3681457679995219,8779 "spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb": 0.49076448200139566,8780 "spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb": 0.413850115999594,8781 "spec/lib/gitlab/kubernetes/pod_cmd_spec.rb": 0.32207113100048446,8782 "spec/tooling/docs/deprecation_handling_spec.rb": 0.4932854819999193,8783 "spec/models/concerns/blocks_unsafe_serialization_spec.rb": 0.33877283000038005,8784 "spec/graphql/types/eventable_type_spec.rb": 0.2894899240000086,8785 "spec/models/clusters/group_spec.rb": 0.3309463109999342,8786 "spec/lib/service_ping/permit_data_categories_spec.rb": 0.6160845539998263,8787 "spec/views/groups/observability/observability.html.haml_spec.rb": 0.40127584599940747,8788 "spec/serializers/namespace_serializer_spec.rb": 0.32219413200073177,8789 "spec/models/synthetic_note_spec.rb": 0.5222458890002599,8790 "spec/services/authorized_project_update/project_access_changed_service_spec.rb": 0.3953631269996549,8791 "spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb": 0.37919035800041456,8792 "spec/graphql/types/packages/conan/metadatum_type_spec.rb": 0.4076453159996163,8793 "spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb": 0.3764032479994057,8794 "spec/helpers/admin/components_helper_spec.rb": 0.37419151900030556,8795 "spec/graphql/types/ci/project_variable_connection_type_spec.rb": 0.3232283519992052,8796 "spec/lib/gitlab/database/consistency_spec.rb": 0.28432374399926638797}8798Knapsack global time execution for tests: 23m 19s8799Finished in 23 minutes 21 seconds (files took 44.26 seconds to load)88003454 examples, 0 failures8801Randomized with seed 91618802[TEST PROF INFO] Time spent in factories: 10:42.395 (45.63% of total time)8803RSpec exited with 0.8804No examples to retry, congrats!8806Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8807Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8809Uploading artifacts...8810coverage/: found 5 matching artifact files and directories 8811crystalball/: found 2 matching artifact files and directories 8812deprecations/: found 7 matching artifact files and directories 8813knapsack/: found 3 matching artifact files and directories 8814WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8815rspec/: found 14 matching artifact files and directories 8816WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8817log/*.log: found 16 matching artifact files and directories 8818WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138461/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8819WARNING: Retrying... context=artifacts-uploader error=request redirected8820Uploading artifacts as "archive" to coordinator... 201 Created id=4031138461 responseStatus=201 Created token=64_6QY8d8821Uploading artifacts...8822rspec/junit_rspec.xml: found 1 matching artifact files and directories 8823WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138461/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8824WARNING: Retrying... context=artifacts-uploader error=request redirected8825Uploading artifacts as "junit" to coordinator... 201 Created id=4031138461 responseStatus=201 Created token=64_6QY8d8827Job succeeded