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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 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-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1680167573-db80a87c...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 | 32.74 MiB/s, done.29Resolving deltas: 100% (58315/58315), done.31 * [new ref] refs/pipelines/822866544 -> refs/pipelines/82286654432Checking out 523abdde as detached HEAD (ref is refs/merge-requests/116270/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets as-if-foss (4031138200)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138200 responseStatus=200 OK token=64_Uxqqc45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_Uxqqc47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_Uxqqc49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_Uxqqc52Using 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_ONLY54155$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb56$ export GOPATH=$CI_PROJECT_DIR/.go57$ mkdir -p $GOPATH58$ source scripts/utils.sh59$ source scripts/prepare_build.sh710Using decomposed database config (config/database.yml.postgresql)711Enabling ci connection (database_tasks: false) in config/database.yml712Geo DB won't be set up.713$ setup_db_user_only714CREATE ROLE715GRANT716==> 'setup_db_user_only' succeeded in 0 seconds.717$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes718Dropped database 'gitlabhq_test'719Created database 'gitlabhq_test'720==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 34 seconds.721$ setup_db_praefect722SELECT pg_catalog.set_config('search_path', '', false);723CREATE DATABASE praefect_test ENCODING 'UTF8';724==> 'setup_db_praefect' succeeded in 0 seconds.725$ source ./scripts/rspec_helpers.sh726$ run_timed_command "gem install knapsack --no-document"727$ gem install knapsack --no-document728Successfully installed knapsack-4.0.07291 gem installed730==> 'gem install knapsack --no-document' succeeded in 0 seconds.731$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"835$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"836SKIP_FLAKY_TESTS_AUTOMATICALLY: false837RETRY_FAILED_TESTS_IN_NEW_PROCESS: true838KNAPSACK_GENERATE_REPORT: 839FLAKY_RSPEC_GENERATE_REPORT: 840KNAPSACK_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.rb841KNAPSACK_LOG_LEVEL: debug842KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13-as-if-foss_single-db-ci-connection_4_28_report.json843FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json844FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db-ci-connection_4_28_report.json845NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db-ci-connection_4_28_report.json846SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_4_28_report.txt847CRYSTALBALL: 848Knapsack node specs:849spec/finders/merge_requests_finder_spec.rb850spec/finders/snippets_finder_spec.rb851spec/finders/issues_finder_spec.rb852spec/policies/ci/build_policy_spec.rb853spec/services/boards/issues/move_service_spec.rb854spec/services/notes/quick_actions_service_spec.rb855spec/uploaders/file_uploader_spec.rb856spec/tasks/gitlab/seed/group_seed_rake_spec.rb857spec/workers/packages/maven/metadata/sync_worker_spec.rb858spec/serializers/ci/job_entity_spec.rb859spec/models/alert_management/alert_spec.rb860spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb861spec/uploaders/avatar_uploader_spec.rb862spec/lib/backup/repositories_spec.rb863spec/models/ability_spec.rb864spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb865spec/models/operations/feature_flag_spec.rb866spec/services/todos/destroy/group_private_service_spec.rb867spec/policies/issuable_policy_spec.rb868spec/models/projects/build_artifacts_size_refresh_spec.rb869spec/lib/gitlab/database/background_migration/batched_job_spec.rb870spec/models/namespace/root_storage_statistics_spec.rb871spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb872spec/lib/gitlab/repository_cache_adapter_spec.rb873spec/lib/gitlab/gfm/uploads_rewriter_spec.rb874spec/lib/banzai/reference_parser/user_parser_spec.rb875spec/services/ci/update_build_state_service_spec.rb876spec/services/preview_markdown_service_spec.rb877spec/lib/gitlab/search/abuse_detection_spec.rb878spec/models/ci/trigger_spec.rb879spec/models/dev_ops_report/metric_spec.rb880spec/services/ci/reset_skipped_jobs_service_spec.rb881spec/models/personal_access_token_spec.rb882spec/lib/gitlab/redis/trace_chunks_spec.rb883spec/lib/gitlab/git/object_pool_spec.rb884spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb885spec/lib/gitlab/diff/diff_refs_spec.rb886spec/services/projects/operations/update_service_spec.rb887spec/lib/gitlab/data_builder/pipeline_spec.rb888spec/models/ci/build_trace_chunks/fog_spec.rb889spec/services/issues/resolve_discussions_spec.rb890spec/lib/gitlab/doctor/secrets_spec.rb891spec/workers/merge_requests/update_head_pipeline_worker_spec.rb892spec/presenters/snippet_blob_presenter_spec.rb893spec/lib/gitlab/deploy_key_access_spec.rb894spec/models/ci/variable_spec.rb895spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb896spec/models/customer_relations/issue_contact_spec.rb897spec/lib/gitlab/quick_actions/extractor_spec.rb898spec/models/alert_management/http_integration_spec.rb899spec/finders/concerns/finder_with_group_hierarchy_spec.rb900spec/services/notification_recipients/builder/default_spec.rb901spec/serializers/ci/dag_job_entity_spec.rb902spec/models/uploads/fog_spec.rb903spec/finders/groups/accepting_group_transfers_finder_spec.rb904spec/finders/crm/contacts_finder_spec.rb905spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb906spec/models/integrations/emails_on_push_spec.rb907spec/lib/gitlab/git/push_spec.rb908spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb909spec/lib/gitlab/ci/ansi2json_spec.rb910spec/lib/gitlab/x509/certificate_spec.rb911spec/finders/joined_groups_finder_spec.rb912spec/uploaders/packages/composer/cache_uploader_spec.rb913spec/lib/gitlab/jwt_authenticatable_spec.rb914spec/models/namespace_statistics_spec.rb915spec/graphql/mutations/alert_management/create_alert_issue_spec.rb916spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb917spec/lib/gitlab/instrumentation_helper_spec.rb918spec/models/packages/nuget/metadatum_spec.rb919spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb920spec/services/ci/create_pipeline_service/parameter_content_spec.rb921spec/workers/bulk_imports/export_request_worker_spec.rb922spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb923spec/graphql/resolvers/base_resolver_spec.rb924spec/tasks/gitlab/background_migrations_rake_spec.rb925spec/models/project_ci_cd_setting_spec.rb926spec/services/users/dismiss_group_callout_service_spec.rb927spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb928spec/services/projects/move_project_group_links_service_spec.rb929spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb930spec/uploaders/object_storage/cdn/google_cdn_spec.rb931spec/lib/gitlab/database_importers/work_items/base_type_importer_spec.rb932spec/lib/gitlab/ci/badge/coverage/template_spec.rb933spec/lib/sidebars/projects/menus/repository_menu_spec.rb934spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb935spec/services/personal_access_tokens/revoke_service_spec.rb936spec/services/ci/find_exposed_artifacts_service_spec.rb937spec/tasks/gitlab/refresh_project_statistics_build_artifacts_size_rake_spec.rb938spec/lib/api/helpers/members_helpers_spec.rb939spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb940spec/validators/qualified_domain_array_validator_spec.rb941spec/models/legacy_diff_note_spec.rb942spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb943spec/graphql/mutations/todos/create_spec.rb944spec/lib/gitlab/hook_data/group_member_builder_spec.rb945spec/lib/csv_builder_spec.rb946spec/services/ci/compare_codequality_reports_service_spec.rb947spec/lib/security/ci_configuration/sast_build_action_spec.rb948spec/models/packages/debian/group_component_spec.rb949spec/lib/safe_zip/entry_spec.rb950spec/workers/gitlab_shell_worker_spec.rb951spec/lib/generators/gitlab/usage_metric_generator_spec.rb952spec/services/users/signup_service_spec.rb953spec/lib/gitlab/ci/status/stage/play_manual_spec.rb954spec/graphql/types/incident_management/escalation_status_enum_spec.rb955spec/services/error_tracking/issue_latest_event_service_spec.rb956spec/models/bulk_import_spec.rb957spec/models/label_priority_spec.rb958spec/rubocop/cop/gitlab/service_response_spec.rb959spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb960spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb961spec/policies/incident_management/timeline_event_policy_spec.rb962spec/graphql/mutations/issues/move_spec.rb963spec/services/ci/runners/process_runner_version_update_service_spec.rb964spec/graphql/types/ci/pipeline_counts_type_spec.rb965spec/models/users/banned_user_spec.rb966spec/models/preloaders/merge_request_diff_preloader_spec.rb967spec/models/concerns/redis_cacheable_spec.rb968spec/policies/resource_milestone_event_policy_spec.rb969spec/lib/gitlab/phabricator_import/conduit/response_spec.rb970spec/views/profiles/show.html.haml_spec.rb971spec/services/discussions/unresolve_service_spec.rb972spec/lib/gitlab/usage/metrics/query_spec.rb973spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb974spec/helpers/graph_helper_spec.rb975spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb976spec/services/ci/pipeline_schedule_service_spec.rb977spec/graphql/resolvers/recent_boards_resolver_spec.rb978spec/policies/group_deploy_keys_group_policy_spec.rb979spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb980spec/lib/gitlab/hook_data/project_builder_spec.rb981spec/lib/gitlab/config/entry/composable_hash_spec.rb982spec/helpers/explore_helper_spec.rb983spec/lib/gitlab/database/partitioning/ci_sliding_list_strategy_spec.rb984spec/lib/declarative_enum_spec.rb985spec/policies/clusters/agent_policy_spec.rb986spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb987spec/services/todos/destroy/destroyed_issuable_service_spec.rb988spec/lib/gitlab/search/query_spec.rb989spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb990spec/policies/protected_branch_access_policy_spec.rb991spec/lib/gitlab/external_authorization/client_spec.rb992spec/services/system_notes/zoom_service_spec.rb993spec/lib/gitlab/lets_encrypt_spec.rb994spec/lib/gitlab/phabricator_import/importer_spec.rb995spec/serializers/issue_board_entity_spec.rb996spec/models/operations/feature_flags_client_spec.rb997spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb998spec/graphql/types/design_management/design_at_version_type_spec.rb999spec/presenters/pages_domain_presenter_spec.rb1000spec/workers/import_issues_csv_worker_spec.rb1001spec/rubocop/cop/migration/datetime_spec.rb1002spec/services/customer_relations/contacts/update_service_spec.rb1003spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb1004spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb1005spec/helpers/time_helper_spec.rb1006spec/graphql/resolvers/environments/nested_environments_resolver_spec.rb1007spec/graphql/resolvers/work_items/types_resolver_spec.rb1008spec/models/list_user_preference_spec.rb1009spec/lib/gitlab/pagination/keyset_spec.rb1010spec/lib/gitlab/middleware/memory_report_spec.rb1011spec/services/feature_flags/hook_service_spec.rb1012spec/lib/atlassian/jira_connect_spec.rb1013spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb1014spec/lib/banzai/commit_renderer_spec.rb1015spec/lib/gitlab/mailgun/webhook_processors/failure_logger_spec.rb1016spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb1017spec/services/packages/rubygems/create_dependencies_service_spec.rb1018spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb1019spec/models/exported_protected_branch_spec.rb1020spec/rubocop/cop/graphql/enum_values_spec.rb1021spec/rubocop/cop/migration/versioned_migration_class_spec.rb1022spec/serializers/project_access_token_serializer_spec.rb1023spec/initializers/validate_database_config_spec.rb1024spec/tooling/lib/tooling/helpers/file_handler_spec.rb1025spec/lib/gitlab/utils/uniquify_spec.rb1026spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb1027spec/models/data_list_spec.rb1028spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb1029spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb1030spec/lib/gitlab/exception_log_formatter_spec.rb1031spec/lib/gitlab/string_range_marker_spec.rb1032spec/lib/gitlab/etag_caching/router/graphql_spec.rb1033spec/uploaders/content_type_whitelist_spec.rb1034spec/models/performance_monitoring/prometheus_panel_group_spec.rb1035spec/graphql/types/namespace/package_settings_type_spec.rb1036spec/services/groups/deploy_tokens/destroy_service_spec.rb1037spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb1038spec/workers/issues/reschedule_stuck_issue_rebalances_worker_spec.rb1039spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb1040spec/views/admin/application_settings/repository.html.haml_spec.rb1041spec/lib/bitbucket/page_spec.rb1042spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb1043spec/graphql/types/ci/config/group_type_spec.rb1044spec/presenters/releases/link_presenter_spec.rb1045spec/helpers/projects/cluster_agents_helper_spec.rb1046spec/serializers/analytics_merge_request_serializer_spec.rb1047spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb1048spec/graphql/types/kas/agent_connection_type_spec.rb1049spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb1050spec/graphql/types/metrics/dashboards/annotation_type_spec.rb1051spec/services/protected_tags/destroy_service_spec.rb1052spec/workers/users/create_statistics_worker_spec.rb1053spec/lib/gitlab/ci/reports/security/link_spec.rb1054spec/lib/gitlab/middleware/request_context_spec.rb1055spec/tooling/danger/config_files_spec.rb1056spec/workers/groups/update_statistics_worker_spec.rb1057spec/services/base_container_service_spec.rb1058spec/services/ci/job_artifacts/delete_project_artifacts_service_spec.rb1059spec/lib/gitlab/database/postgres_hll/buckets_spec.rb1060spec/serializers/prometheus_alert_entity_spec.rb1061spec/services/users/banned_user_base_service_spec.rb1062spec/lib/gitlab/ci/ansi2json/result_spec.rb1063spec/lib/gitlab/metrics/exporter/gc_request_middleware_spec.rb1064spec/graphql/types/ci/job_artifact_type_spec.rb1065spec/lib/omni_auth/strategies/bitbucket_spec.rb1066spec/db/development/add_security_training_providers_spec.rb1067spec/lib/gitlab/import_export/model_configuration_spec.rb1068spec/lib/gitlab/audit/deploy_key_author_spec.rb1069spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb1070spec/graphql/types/permission_types/ci/runner_spec.rb1071spec/lib/gitlab/utils/merge_hash_spec.rb1072spec/workers/database/drop_detached_partitions_worker_spec.rb1073spec/helpers/routing/packages_helper_spec.rb1074spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb1075spec/workers/todos_destroyer/private_features_worker_spec.rb1076spec/graphql/types/ci/freeze_period_status_enum_spec.rb1077spec/lib/gitlab/usage/metrics/instrumentations/gitlab_dedicated_metric_spec.rb1078spec/graphql/types/packages/package_group_sort_enum_spec.rb1079spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rb1080Filter specs:1081Running specs:1082Running all node tests without filter1083spec/finders/merge_requests_finder_spec.rb1084spec/finders/snippets_finder_spec.rb1085spec/finders/issues_finder_spec.rb1086spec/policies/ci/build_policy_spec.rb1087spec/services/boards/issues/move_service_spec.rb1088spec/services/notes/quick_actions_service_spec.rb1089spec/uploaders/file_uploader_spec.rb1090spec/tasks/gitlab/seed/group_seed_rake_spec.rb1091spec/workers/packages/maven/metadata/sync_worker_spec.rb1092spec/serializers/ci/job_entity_spec.rb1093spec/models/alert_management/alert_spec.rb1094spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb1095spec/uploaders/avatar_uploader_spec.rb1096spec/lib/backup/repositories_spec.rb1097spec/models/ability_spec.rb1098spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb1099spec/models/operations/feature_flag_spec.rb1100spec/services/todos/destroy/group_private_service_spec.rb1101spec/policies/issuable_policy_spec.rb1102spec/models/projects/build_artifacts_size_refresh_spec.rb1103spec/lib/gitlab/database/background_migration/batched_job_spec.rb1104spec/models/namespace/root_storage_statistics_spec.rb1105spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb1106spec/lib/gitlab/repository_cache_adapter_spec.rb1107spec/lib/gitlab/gfm/uploads_rewriter_spec.rb1108spec/lib/banzai/reference_parser/user_parser_spec.rb1109spec/services/ci/update_build_state_service_spec.rb1110spec/services/preview_markdown_service_spec.rb1111spec/lib/gitlab/search/abuse_detection_spec.rb1112spec/models/ci/trigger_spec.rb1113spec/models/dev_ops_report/metric_spec.rb1114spec/services/ci/reset_skipped_jobs_service_spec.rb1115spec/models/personal_access_token_spec.rb1116spec/lib/gitlab/redis/trace_chunks_spec.rb1117spec/lib/gitlab/git/object_pool_spec.rb1118spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb1119spec/lib/gitlab/diff/diff_refs_spec.rb1120spec/services/projects/operations/update_service_spec.rb1121spec/lib/gitlab/data_builder/pipeline_spec.rb1122spec/models/ci/build_trace_chunks/fog_spec.rb1123spec/services/issues/resolve_discussions_spec.rb1124spec/lib/gitlab/doctor/secrets_spec.rb1125spec/workers/merge_requests/update_head_pipeline_worker_spec.rb1126spec/presenters/snippet_blob_presenter_spec.rb1127spec/lib/gitlab/deploy_key_access_spec.rb1128spec/models/ci/variable_spec.rb1129spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb1130spec/models/customer_relations/issue_contact_spec.rb1131spec/lib/gitlab/quick_actions/extractor_spec.rb1132spec/models/alert_management/http_integration_spec.rb1133spec/finders/concerns/finder_with_group_hierarchy_spec.rb1134spec/services/notification_recipients/builder/default_spec.rb1135spec/serializers/ci/dag_job_entity_spec.rb1136spec/models/uploads/fog_spec.rb1137spec/finders/groups/accepting_group_transfers_finder_spec.rb1138spec/finders/crm/contacts_finder_spec.rb1139spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb1140spec/models/integrations/emails_on_push_spec.rb1141spec/lib/gitlab/git/push_spec.rb1142spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb1143spec/lib/gitlab/ci/ansi2json_spec.rb1144spec/lib/gitlab/x509/certificate_spec.rb1145spec/finders/joined_groups_finder_spec.rb1146spec/uploaders/packages/composer/cache_uploader_spec.rb1147spec/lib/gitlab/jwt_authenticatable_spec.rb1148spec/models/namespace_statistics_spec.rb1149spec/graphql/mutations/alert_management/create_alert_issue_spec.rb1150spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb1151spec/lib/gitlab/instrumentation_helper_spec.rb1152spec/models/packages/nuget/metadatum_spec.rb1153spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb1154spec/services/ci/create_pipeline_service/parameter_content_spec.rb1155spec/workers/bulk_imports/export_request_worker_spec.rb1156spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb1157spec/graphql/resolvers/base_resolver_spec.rb1158spec/tasks/gitlab/background_migrations_rake_spec.rb1159spec/models/project_ci_cd_setting_spec.rb1160spec/services/users/dismiss_group_callout_service_spec.rb1161spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb1162spec/services/projects/move_project_group_links_service_spec.rb1163spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb1164spec/uploaders/object_storage/cdn/google_cdn_spec.rb1165spec/lib/gitlab/database_importers/work_items/base_type_importer_spec.rb1166spec/lib/gitlab/ci/badge/coverage/template_spec.rb1167spec/lib/sidebars/projects/menus/repository_menu_spec.rb1168spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb1169spec/services/personal_access_tokens/revoke_service_spec.rb1170spec/services/ci/find_exposed_artifacts_service_spec.rb1171spec/tasks/gitlab/refresh_project_statistics_build_artifacts_size_rake_spec.rb1172spec/lib/api/helpers/members_helpers_spec.rb1173spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb1174spec/validators/qualified_domain_array_validator_spec.rb1175spec/models/legacy_diff_note_spec.rb1176spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb1177spec/graphql/mutations/todos/create_spec.rb1178spec/lib/gitlab/hook_data/group_member_builder_spec.rb1179spec/lib/csv_builder_spec.rb1180spec/services/ci/compare_codequality_reports_service_spec.rb1181spec/lib/security/ci_configuration/sast_build_action_spec.rb1182spec/models/packages/debian/group_component_spec.rb1183spec/lib/safe_zip/entry_spec.rb1184spec/workers/gitlab_shell_worker_spec.rb1185spec/lib/generators/gitlab/usage_metric_generator_spec.rb1186spec/services/users/signup_service_spec.rb1187spec/lib/gitlab/ci/status/stage/play_manual_spec.rb1188spec/graphql/types/incident_management/escalation_status_enum_spec.rb1189spec/services/error_tracking/issue_latest_event_service_spec.rb1190spec/models/bulk_import_spec.rb1191spec/models/label_priority_spec.rb1192spec/rubocop/cop/gitlab/service_response_spec.rb1193spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb1194spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb1195spec/policies/incident_management/timeline_event_policy_spec.rb1196spec/graphql/mutations/issues/move_spec.rb1197spec/services/ci/runners/process_runner_version_update_service_spec.rb1198spec/graphql/types/ci/pipeline_counts_type_spec.rb1199spec/models/users/banned_user_spec.rb1200spec/models/preloaders/merge_request_diff_preloader_spec.rb1201spec/models/concerns/redis_cacheable_spec.rb1202spec/policies/resource_milestone_event_policy_spec.rb1203spec/lib/gitlab/phabricator_import/conduit/response_spec.rb1204spec/views/profiles/show.html.haml_spec.rb1205spec/services/discussions/unresolve_service_spec.rb1206spec/lib/gitlab/usage/metrics/query_spec.rb1207spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb1208spec/helpers/graph_helper_spec.rb1209spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb1210spec/services/ci/pipeline_schedule_service_spec.rb1211spec/graphql/resolvers/recent_boards_resolver_spec.rb1212spec/policies/group_deploy_keys_group_policy_spec.rb1213spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb1214spec/lib/gitlab/hook_data/project_builder_spec.rb1215spec/lib/gitlab/config/entry/composable_hash_spec.rb1216spec/helpers/explore_helper_spec.rb1217spec/lib/gitlab/database/partitioning/ci_sliding_list_strategy_spec.rb1218spec/lib/declarative_enum_spec.rb1219spec/policies/clusters/agent_policy_spec.rb1220spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb1221spec/services/todos/destroy/destroyed_issuable_service_spec.rb1222spec/lib/gitlab/search/query_spec.rb1223spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb1224spec/policies/protected_branch_access_policy_spec.rb1225spec/lib/gitlab/external_authorization/client_spec.rb1226spec/services/system_notes/zoom_service_spec.rb1227spec/lib/gitlab/lets_encrypt_spec.rb1228spec/lib/gitlab/phabricator_import/importer_spec.rb1229spec/serializers/issue_board_entity_spec.rb1230spec/models/operations/feature_flags_client_spec.rb1231spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb1232spec/graphql/types/design_management/design_at_version_type_spec.rb1233spec/presenters/pages_domain_presenter_spec.rb1234spec/workers/import_issues_csv_worker_spec.rb1235spec/rubocop/cop/migration/datetime_spec.rb1236spec/services/customer_relations/contacts/update_service_spec.rb1237spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb1238spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb1239spec/helpers/time_helper_spec.rb1240spec/graphql/resolvers/environments/nested_environments_resolver_spec.rb1241spec/graphql/resolvers/work_items/types_resolver_spec.rb1242spec/models/list_user_preference_spec.rb1243spec/lib/gitlab/pagination/keyset_spec.rb1244spec/lib/gitlab/middleware/memory_report_spec.rb1245spec/services/feature_flags/hook_service_spec.rb1246spec/lib/atlassian/jira_connect_spec.rb1247spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb1248spec/lib/banzai/commit_renderer_spec.rb1249spec/lib/gitlab/mailgun/webhook_processors/failure_logger_spec.rb1250spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb1251spec/services/packages/rubygems/create_dependencies_service_spec.rb1252spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb1253spec/models/exported_protected_branch_spec.rb1254spec/rubocop/cop/graphql/enum_values_spec.rb1255spec/rubocop/cop/migration/versioned_migration_class_spec.rb1256spec/serializers/project_access_token_serializer_spec.rb1257spec/initializers/validate_database_config_spec.rb1258spec/tooling/lib/tooling/helpers/file_handler_spec.rb1259spec/lib/gitlab/utils/uniquify_spec.rb1260spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb1261spec/models/data_list_spec.rb1262spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb1263spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb1264spec/lib/gitlab/exception_log_formatter_spec.rb1265spec/lib/gitlab/string_range_marker_spec.rb1266spec/lib/gitlab/etag_caching/router/graphql_spec.rb1267spec/uploaders/content_type_whitelist_spec.rb1268spec/models/performance_monitoring/prometheus_panel_group_spec.rb1269spec/graphql/types/namespace/package_settings_type_spec.rb1270spec/services/groups/deploy_tokens/destroy_service_spec.rb1271spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb1272spec/workers/issues/reschedule_stuck_issue_rebalances_worker_spec.rb1273spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb1274spec/views/admin/application_settings/repository.html.haml_spec.rb1275spec/lib/bitbucket/page_spec.rb1276spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb1277spec/graphql/types/ci/config/group_type_spec.rb1278spec/presenters/releases/link_presenter_spec.rb1279spec/helpers/projects/cluster_agents_helper_spec.rb1280spec/serializers/analytics_merge_request_serializer_spec.rb1281spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb1282spec/graphql/types/kas/agent_connection_type_spec.rb1283spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb1284spec/graphql/types/metrics/dashboards/annotation_type_spec.rb1285spec/services/protected_tags/destroy_service_spec.rb1286spec/workers/users/create_statistics_worker_spec.rb1287spec/lib/gitlab/ci/reports/security/link_spec.rb1288spec/lib/gitlab/middleware/request_context_spec.rb1289spec/tooling/danger/config_files_spec.rb1290spec/workers/groups/update_statistics_worker_spec.rb1291spec/services/base_container_service_spec.rb1292spec/services/ci/job_artifacts/delete_project_artifacts_service_spec.rb1293spec/lib/gitlab/database/postgres_hll/buckets_spec.rb1294spec/serializers/prometheus_alert_entity_spec.rb1295spec/services/users/banned_user_base_service_spec.rb1296spec/lib/gitlab/ci/ansi2json/result_spec.rb1297spec/lib/gitlab/metrics/exporter/gc_request_middleware_spec.rb1298spec/graphql/types/ci/job_artifact_type_spec.rb1299spec/lib/omni_auth/strategies/bitbucket_spec.rb1300spec/db/development/add_security_training_providers_spec.rb1301spec/lib/gitlab/import_export/model_configuration_spec.rb1302spec/lib/gitlab/audit/deploy_key_author_spec.rb1303spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb1304spec/graphql/types/permission_types/ci/runner_spec.rb1305spec/lib/gitlab/utils/merge_hash_spec.rb1306spec/workers/database/drop_detached_partitions_worker_spec.rb1307spec/helpers/routing/packages_helper_spec.rb1308spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb1309spec/workers/todos_destroyer/private_features_worker_spec.rb1310spec/graphql/types/ci/freeze_period_status_enum_spec.rb1311spec/lib/gitlab/usage/metrics/instrumentations/gitlab_dedicated_metric_spec.rb1312spec/graphql/types/packages/package_group_sort_enum_spec.rb1313spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rb1314Running all node tests without filter1315Running all node tests without filter1316Running 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/finders/merge_requests_finder_spec.rb spec/finders/snippets_finder_spec.rb spec/finders/issues_finder_spec.rb spec/policies/ci/build_policy_spec.rb spec/services/boards/issues/move_service_spec.rb spec/services/notes/quick_actions_service_spec.rb spec/uploaders/file_uploader_spec.rb spec/tasks/gitlab/seed/group_seed_rake_spec.rb spec/workers/packages/maven/metadata/sync_worker_spec.rb spec/serializers/ci/job_entity_spec.rb spec/models/alert_management/alert_spec.rb spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb spec/uploaders/avatar_uploader_spec.rb spec/lib/backup/repositories_spec.rb spec/models/ability_spec.rb spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb spec/models/operations/feature_flag_spec.rb spec/services/todos/destroy/group_private_service_spec.rb spec/policies/issuable_policy_spec.rb spec/models/projects/build_artifacts_size_refresh_spec.rb spec/lib/gitlab/database/background_migration/batched_job_spec.rb spec/models/namespace/root_storage_statistics_spec.rb spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb spec/lib/gitlab/repository_cache_adapter_spec.rb spec/lib/gitlab/gfm/uploads_rewriter_spec.rb spec/lib/banzai/reference_parser/user_parser_spec.rb spec/services/ci/update_build_state_service_spec.rb spec/services/preview_markdown_service_spec.rb spec/lib/gitlab/search/abuse_detection_spec.rb spec/models/ci/trigger_spec.rb spec/models/dev_ops_report/metric_spec.rb spec/services/ci/reset_skipped_jobs_service_spec.rb spec/models/personal_access_token_spec.rb spec/lib/gitlab/redis/trace_chunks_spec.rb spec/lib/gitlab/git/object_pool_spec.rb spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb spec/lib/gitlab/diff/diff_refs_spec.rb spec/services/projects/operations/update_service_spec.rb spec/lib/gitlab/data_builder/pipeline_spec.rb spec/models/ci/build_trace_chunks/fog_spec.rb spec/services/issues/resolve_discussions_spec.rb spec/lib/gitlab/doctor/secrets_spec.rb spec/workers/merge_requests/update_head_pipeline_worker_spec.rb spec/presenters/snippet_blob_presenter_spec.rb spec/lib/gitlab/deploy_key_access_spec.rb spec/models/ci/variable_spec.rb spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb spec/models/customer_relations/issue_contact_spec.rb spec/lib/gitlab/quick_actions/extractor_spec.rb spec/models/alert_management/http_integration_spec.rb spec/finders/concerns/finder_with_group_hierarchy_spec.rb spec/services/notification_recipients/builder/default_spec.rb spec/serializers/ci/dag_job_entity_spec.rb spec/models/uploads/fog_spec.rb spec/finders/groups/accepting_group_transfers_finder_spec.rb spec/finders/crm/contacts_finder_spec.rb spec/lib/gitlab/instrumentation/redis_cluster_validator_spec.rb spec/models/integrations/emails_on_push_spec.rb spec/lib/gitlab/git/push_spec.rb spec/tooling/lib/tooling/mappings/view_to_js_mappings_spec.rb spec/lib/gitlab/ci/ansi2json_spec.rb spec/lib/gitlab/x509/certificate_spec.rb spec/finders/joined_groups_finder_spec.rb spec/uploaders/packages/composer/cache_uploader_spec.rb spec/lib/gitlab/jwt_authenticatable_spec.rb spec/models/namespace_statistics_spec.rb spec/graphql/mutations/alert_management/create_alert_issue_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb spec/lib/gitlab/instrumentation_helper_spec.rb spec/models/packages/nuget/metadatum_spec.rb spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb spec/services/ci/create_pipeline_service/parameter_content_spec.rb spec/workers/bulk_imports/export_request_worker_spec.rb spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb spec/graphql/resolvers/base_resolver_spec.rb spec/tasks/gitlab/background_migrations_rake_spec.rb spec/models/project_ci_cd_setting_spec.rb spec/services/users/dismiss_group_callout_service_spec.rb spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb spec/services/projects/move_project_group_links_service_spec.rb spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb spec/uploaders/object_storage/cdn/google_cdn_spec.rb spec/lib/gitlab/database_importers/work_items/base_type_importer_spec.rb spec/lib/gitlab/ci/badge/coverage/template_spec.rb spec/lib/sidebars/projects/menus/repository_menu_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/generic_metric_spec.rb spec/services/personal_access_tokens/revoke_service_spec.rb spec/services/ci/find_exposed_artifacts_service_spec.rb spec/tasks/gitlab/refresh_project_statistics_build_artifacts_size_rake_spec.rb spec/lib/api/helpers/members_helpers_spec.rb spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb spec/validators/qualified_domain_array_validator_spec.rb spec/models/legacy_diff_note_spec.rb spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb spec/graphql/mutations/todos/create_spec.rb spec/lib/gitlab/hook_data/group_member_builder_spec.rb spec/lib/csv_builder_spec.rb spec/services/ci/compare_codequality_reports_service_spec.rb spec/lib/security/ci_configuration/sast_build_action_spec.rb spec/models/packages/debian/group_component_spec.rb spec/lib/safe_zip/entry_spec.rb spec/workers/gitlab_shell_worker_spec.rb spec/lib/generators/gitlab/usage_metric_generator_spec.rb spec/services/users/signup_service_spec.rb spec/lib/gitlab/ci/status/stage/play_manual_spec.rb spec/graphql/types/incident_management/escalation_status_enum_spec.rb spec/services/error_tracking/issue_latest_event_service_spec.rb spec/models/bulk_import_spec.rb spec/models/label_priority_spec.rb spec/rubocop/cop/gitlab/service_response_spec.rb spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb spec/policies/incident_management/timeline_event_policy_spec.rb spec/graphql/mutations/issues/move_spec.rb spec/services/ci/runners/process_runner_version_update_service_spec.rb spec/graphql/types/ci/pipeline_counts_type_spec.rb spec/models/users/banned_user_spec.rb spec/models/preloaders/merge_request_diff_preloader_spec.rb spec/models/concerns/redis_cacheable_spec.rb spec/policies/resource_milestone_event_policy_spec.rb spec/lib/gitlab/phabricator_import/conduit/response_spec.rb spec/views/profiles/show.html.haml_spec.rb spec/services/discussions/unresolve_service_spec.rb spec/lib/gitlab/usage/metrics/query_spec.rb spec/lib/gitlab/database/postgres_hll/batch_distinct_counter_spec.rb spec/helpers/graph_helper_spec.rb spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb spec/services/ci/pipeline_schedule_service_spec.rb spec/graphql/resolvers/recent_boards_resolver_spec.rb spec/policies/group_deploy_keys_group_policy_spec.rb spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb spec/lib/gitlab/hook_data/project_builder_spec.rb spec/lib/gitlab/config/entry/composable_hash_spec.rb spec/helpers/explore_helper_spec.rb spec/lib/gitlab/database/partitioning/ci_sliding_list_strategy_spec.rb spec/lib/declarative_enum_spec.rb spec/policies/clusters/agent_policy_spec.rb spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb spec/services/todos/destroy/destroyed_issuable_service_spec.rb spec/lib/gitlab/search/query_spec.rb spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb spec/policies/protected_branch_access_policy_spec.rb spec/lib/gitlab/external_authorization/client_spec.rb spec/services/system_notes/zoom_service_spec.rb spec/lib/gitlab/lets_encrypt_spec.rb spec/lib/gitlab/phabricator_import/importer_spec.rb spec/serializers/issue_board_entity_spec.rb spec/models/operations/feature_flags_client_spec.rb spec/lib/gitlab/bitbucket_import/wiki_formatter_spec.rb spec/graphql/types/design_management/design_at_version_type_spec.rb spec/presenters/pages_domain_presenter_spec.rb spec/workers/import_issues_csv_worker_spec.rb spec/rubocop/cop/migration/datetime_spec.rb spec/services/customer_relations/contacts/update_service_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb spec/helpers/time_helper_spec.rb spec/graphql/resolvers/environments/nested_environments_resolver_spec.rb spec/graphql/resolvers/work_items/types_resolver_spec.rb spec/models/list_user_preference_spec.rb spec/lib/gitlab/pagination/keyset_spec.rb spec/lib/gitlab/middleware/memory_report_spec.rb spec/services/feature_flags/hook_service_spec.rb spec/lib/atlassian/jira_connect_spec.rb spec/lib/sidebars/user_settings/menus/authentication_log_menu_spec.rb spec/lib/banzai/commit_renderer_spec.rb spec/lib/gitlab/mailgun/webhook_processors/failure_logger_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb spec/services/packages/rubygems/create_dependencies_service_spec.rb spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb spec/models/exported_protected_branch_spec.rb spec/rubocop/cop/graphql/enum_values_spec.rb spec/rubocop/cop/migration/versioned_migration_class_spec.rb spec/serializers/project_access_token_serializer_spec.rb spec/initializers/validate_database_config_spec.rb spec/tooling/lib/tooling/helpers/file_handler_spec.rb spec/lib/gitlab/utils/uniquify_spec.rb spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb spec/models/data_list_spec.rb spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb spec/lib/gitlab/exception_log_formatter_spec.rb spec/lib/gitlab/string_range_marker_spec.rb spec/lib/gitlab/etag_caching/router/graphql_spec.rb spec/uploaders/content_type_whitelist_spec.rb spec/models/performance_monitoring/prometheus_panel_group_spec.rb spec/graphql/types/namespace/package_settings_type_spec.rb spec/services/groups/deploy_tokens/destroy_service_spec.rb spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb spec/workers/issues/reschedule_stuck_issue_rebalances_worker_spec.rb spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb spec/views/admin/application_settings/repository.html.haml_spec.rb spec/lib/bitbucket/page_spec.rb spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb spec/graphql/types/ci/config/group_type_spec.rb spec/presenters/releases/link_presenter_spec.rb spec/helpers/projects/cluster_agents_helper_spec.rb spec/serializers/analytics_merge_request_serializer_spec.rb spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb spec/graphql/types/kas/agent_connection_type_spec.rb spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb spec/graphql/types/metrics/dashboards/annotation_type_spec.rb spec/services/protected_tags/destroy_service_spec.rb spec/workers/users/create_statistics_worker_spec.rb spec/lib/gitlab/ci/reports/security/link_spec.rb spec/lib/gitlab/middleware/request_context_spec.rb spec/tooling/danger/config_files_spec.rb spec/workers/groups/update_statistics_worker_spec.rb spec/services/base_container_service_spec.rb spec/services/ci/job_artifacts/delete_project_artifacts_service_spec.rb spec/lib/gitlab/database/postgres_hll/buckets_spec.rb spec/serializers/prometheus_alert_entity_spec.rb spec/services/users/banned_user_base_service_spec.rb spec/lib/gitlab/ci/ansi2json/result_spec.rb spec/lib/gitlab/metrics/exporter/gc_request_middleware_spec.rb spec/graphql/types/ci/job_artifact_type_spec.rb spec/lib/omni_auth/strategies/bitbucket_spec.rb spec/db/development/add_security_training_providers_spec.rb spec/lib/gitlab/import_export/model_configuration_spec.rb spec/lib/gitlab/audit/deploy_key_author_spec.rb spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb spec/graphql/types/permission_types/ci/runner_spec.rb spec/lib/gitlab/utils/merge_hash_spec.rb spec/workers/database/drop_detached_partitions_worker_spec.rb spec/helpers/routing/packages_helper_spec.rb spec/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker_spec.rb spec/workers/todos_destroyer/private_features_worker_spec.rb spec/graphql/types/ci/freeze_period_status_enum_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/gitlab_dedicated_metric_spec.rb spec/graphql/types/packages/package_group_sort_enum_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rbRun options: exclude {:quarantine=>true, :level=>"background_migration"}1317Test environment set up in 0.752248506 seconds1318MergeRequestsFinder1319 multiple projects with merge requests1320 #execute1321 filters by scope1322 filters by project_id1323 filters by projects1324 filters by non_archived1325 filters by source project id1326 filters by state1327 does not raise any exception with complex filters1328 filtering by author1329 using OR1330 returns merge requests created by any of the given users1331 when feature flag is disabled1332 does not add any filter1333 with nonexistent author ID and MR term using CTE for search1334 returns no results1335 filtering by not author ID1336 returns merge requests not created by that user1337 filters by commit sha1338 when commit belongs to the merge request1339 filters by commit sha1340 when commit is a squash commit1341 filters by commit sha1342 when commit is a merge commit1343 filters by commit sha1344 filters by merged_at date1345 merged_after1346 is expected to eq [#<MergeRequest id:58 group1/project1!1>]1347 merged_before1348 is expected to eq [#<MergeRequest id:63 group1/project1!2>]1349 when both merged_after and merged_before is given1350 is expected to eq [#<MergeRequest id:67 group1/project1!2>]1351 when project_id is given1352 is expected to eq [#<MergeRequest id:71 group1/project1!2>]1353 queries merge_request_metrics.target_project_id table1354 filtering by group1355 includes all merge requests when user has access excluding merge requests from projects the user does not have access to1356 filters by group including subgroups1357 filters by group projects including subgroups1358 :iid parameter1359 behaves like scalar or array parameter1360 takes scalar values1361 takes array values1362 source_branch parameter1363 behaves like scalar or array parameter1364 takes scalar values1365 takes array values1366 target_branch parameter1367 behaves like scalar or array parameter1368 takes scalar values1369 takes array values1370 :label_name parameter1371 accepts a single label1372 accepts an array of labels, all of which must match1373 draft state1374 returns all items if no valid wip param exists1375 returns all items if no valid draft param exists1376 behaves like draft MRs filtering1377 filters by wip => 11378 behaves like draft MRs filtering1379 filters by wip => 11380 behaves like draft MRs filtering1381 filters by wip => true1382 behaves like draft MRs filtering1383 filters by wip => true1384 behaves like draft MRs filtering1385 filters by wip => yes1386 behaves like draft MRs filtering1387 filters by wip => 01388 behaves like draft MRs filtering1389 filters by wip => 01390 behaves like draft MRs filtering1391 filters by wip => false1392 behaves like draft MRs filtering1393 filters by wip => false1394 behaves like draft MRs filtering1395 filters by wip => no1396 behaves like draft MRs filtering1397 filters by wip => 11398 behaves like draft MRs filtering1399 filters by wip => 11400 behaves like draft MRs filtering1401 filters by wip => true1402 behaves like draft MRs filtering1403 filters by wip => true1404 behaves like draft MRs filtering1405 filters by wip => yes1406 behaves like draft MRs filtering1407 filters by wip => 01408 behaves like draft MRs filtering1409 filters by wip => 01410 behaves like draft MRs filtering1411 filters by wip => false1412 behaves like draft MRs filtering1413 filters by wip => false1414 behaves like draft MRs filtering1415 filters by wip => no1416 behaves like draft MRs filtering1417 filters by wip => 11418 behaves like draft MRs filtering1419 filters by wip => 11420 behaves like draft MRs filtering1421 filters by wip => true1422 behaves like draft MRs filtering1423 filters by wip => true1424 behaves like draft MRs filtering1425 filters by wip => yes1426 behaves like draft MRs filtering1427 filters by wip => 01428 behaves like draft MRs filtering1429 filters by wip => 01430 behaves like draft MRs filtering1431 filters by wip => false1432 behaves like draft MRs filtering1433 filters by wip => false1434 behaves like draft MRs filtering1435 filters by wip => no1436 behaves like draft MRs filtering1437 filters by draft => 11438 behaves like draft MRs filtering1439 filters by draft => 11440 behaves like draft MRs filtering1441 filters by draft => true1442 behaves like draft MRs filtering1443 filters by draft => true1444 behaves like draft MRs filtering1445 filters by draft => yes1446 behaves like draft MRs filtering1447 filters by draft => 01448 behaves like draft MRs filtering1449 filters by draft => 01450 behaves like draft MRs filtering1451 filters by draft => false1452 behaves like draft MRs filtering1453 filters by draft => false1454 behaves like draft MRs filtering1455 filters by draft => no1456 behaves like draft MRs filtering1457 filters by draft => 11458 behaves like draft MRs filtering1459 filters by draft => 11460 behaves like draft MRs filtering1461 filters by draft => true1462 behaves like draft MRs filtering1463 filters by draft => true1464 behaves like draft MRs filtering1465 filters by draft => yes1466 behaves like draft MRs filtering1467 filters by draft => 01468 behaves like draft MRs filtering1469 filters by draft => 01470 behaves like draft MRs filtering1471 filters by draft => false1472 behaves like draft MRs filtering1473 filters by draft => false1474 behaves like draft MRs filtering1475 filters by draft => no1476 behaves like draft MRs filtering1477 filters by draft => 11478 behaves like draft MRs filtering1479 filters by draft => 11480 behaves like draft MRs filtering1481 filters by draft => true1482 behaves like draft MRs filtering1483 filters by draft => true1484 behaves like draft MRs filtering1485 filters by draft => yes1486 behaves like draft MRs filtering1487 filters by draft => 01488 behaves like draft MRs filtering1489 filters by draft => 01490 behaves like draft MRs filtering1491 filters by draft => false1492 behaves like draft MRs filtering1493 filters by draft => false1494 behaves like draft MRs filtering1495 filters by draft => no1496 behaves like draft MRs filtering1497 filters by draft => 11498 behaves like draft MRs filtering1499 filters by draft => 11500 behaves like draft MRs filtering1501 filters by draft => true1502 behaves like draft MRs filtering1503 filters by draft => true1504 behaves like draft MRs filtering1505 filters by draft => yes1506 behaves like draft MRs filtering1507 filters by draft => 01508 behaves like draft MRs filtering1509 filters by draft => 01510 behaves like draft MRs filtering1511 filters by draft => false1512 behaves like draft MRs filtering1513 filters by draft => false1514 behaves like draft MRs filtering1515 filters by draft => no1516 filter by deployment1517 returns the relevant merge requests1518 when a deployment does not contain any merge requests1519 returns an empty result1520 .scalar_params1521 contains scalar params related to merge requests1522 assignee filtering1523 behaves like assignee ID filter1524 returns issuables assigned to that user1525 behaves like assignee NOT ID filter1526 returns issuables not assigned to that user1527 behaves like assignee username filter1528 returns issuables assigned to those users1529 behaves like assignee NOT username filter1530 returns issuables not assigned to those users1531 behaves like no assignee filter1532 returns issuables not assigned to any assignee1533 returns issuables not assigned to any assignee1534 behaves like any assignee filter1536 returns issuables assigned to any assignee1537 returns issuables assigned to any assignee1538 reviewer filtering1539 by reviewer_id1540 is expected to contain exactly #<MergeRequest id:466 group1/project1!1> and #<MergeRequest id:467 group1/project1!2>1541 by NOT reviewer_id1542 is expected to contain exactly #<MergeRequest id:472 group231/project244!1>, #<MergeRequest id:473 group232/project245!1>, and #<MergeRequest id:1 group1/group2/project2!1>1543 by reviewer_username1544 is expected to contain exactly #<MergeRequest id:474 group1/project1!1> and #<MergeRequest id:475 group1/project1!2>1545 by NOT reviewer_username1546 is expected to contain exactly #<MergeRequest id:480 group235/project248!1>, #<MergeRequest id:481 group236/project249!1>, and #<MergeRequest id:1 group1/group2/project2!1>1547 by reviewer_id=None1548 is expected to contain exactly #<MergeRequest id:485 group238/project251!1> and #<MergeRequest id:1 group1/group2/project2!1>1549 by reviewer_id=Any1550 is expected to contain exactly #<MergeRequest id:486 group1/project1!1>, #<MergeRequest id:487 group1/project1!2>, and #<MergeRequest id:488 group239/project252!1>1551 by reviewer_id with unknown user1552 is expected to be empty1553 by NOT reviewer_id with unknown user1554 is expected to be empty1555 filtering by group milestone1556 returns merge requests assigned to that group milestone1557 using NOT1558 returns MRs not assigned to that group milestone1559 filtering by approved1560 for approved1561 for not approved1562 filtering by approved by username1563 sort: nil1564 returns merge requests approved by that user1565 sort: "milestone"1566 returns merge requests approved by that user1567 sort: "merged_at"1568 returns merge requests approved by that user1569 sort: "merged_at_desc"1570 returns merge requests approved by that user1571 sort: "closed_at"1572 returns merge requests approved by that user1573 sort: "closed_at_desc"1574 returns merge requests approved by that user1575 not filter1576 returns merge requests not approved by that user1577 when filtering by author and not approved by1578 returns merge requests authored by user and not approved by user21579 filtering by approved by user ID1580 returns merge requests approved by that user1581 with sorting by milestone1582 returns merge requests approved by that user1583 filtering by created_at/updated_at1584 filters by created_after1585 filters by created_before1586 filters by created_after and created_before1587 filters by updated_after1588 filters by updated_before1589 filters by updated_after and updated_before1590 filtering by the merge request deployments1591 filters merge requests deployed to a given environment1592 filters merge requests deployed before a given date1593 filters merge requests ignoring empty deployed_before1594 filters merge requests ignoring invalid deployed_before1595 filters merge requests deployed after a given date1596 filters merge requests ignoring empty deployed_after1597 filters merge requests ignoring invalid deployed_after1598 filtering by search text1599 returns matching merge requests1600 #row_count1601 returns the number of rows for the default state1602 returns the number of rows for a given state1603 returns -1 if the query times out1604 external authorization1605 behaves like a finder with external authorization service1606 finds the subject1607 with an external authorization service1608 does not include the subject when no project was given1609 includes the subject when a project id was given1610 when projects require different access levels for merge requests1611 with admin user1612 when admin mode is enabled1613 returns all merge requests1614 when admin mode is disabled1615 returns public and internal merge requests1616 when project restricts merge requests1617 returns nothing to to non members1618 with external user1619 returns only public merge requests1620 with authenticated user1621 returns public and internal merge requests1622 being added to the private project1623 as a guest1624 does not return merge requests from the private project1625 as a developer1626 returns merge requests from the private project1627 being added to the public project with private repo access1628 as a guest1629 returns merge requests from the project1630 as a reporter1631 returns merge requests from the project1632 being added to the internal project with private repo access1633 as a guest1634 returns merge requests from the project1635 as a reporter1636 returns merge requests from the project1637 #count_by_state1638 when filtering by multiple labels1639 returns the correnct counts1640 when filtering by approved_by_usernames1641 returns the correnct counts1642 when the author of a merge request is banned1643 is expected not to include #<MergeRequest id:722 namespace27/project337!1>1644 when the user is an admin1645 is expected to include #<MergeRequest id:722 namespace27/project337!1>1646 when the `hide_merge_requests_from_banned_users` feature flag is disabled1647 is expected to include #<MergeRequest id:722 namespace27/project337!1>1648SnippetsFinder1649 #initialize1650 raises ArgumentError when a project and author are given1651 #execute1652 filter by scope1653 returns all snippets for 'all' scope1654 returns all snippets for 'are_private' scope1655 returns all snippets for 'are_internal' scope1656 returns all snippets for 'are_public' scope1657 filter by author1658 returns internal snippets1659 returns private snippets1660 returns public snippets1661 returns all snippets1662 returns only public snippets if unauthenticated user1663 returns all snippets for an admin in admin mode1664 returns all public and internal snippets for an admin without admin mode1665 when the author is a User object1666 returns all public and internal snippets1667 when the author is the User id1668 returns all public and internal snippets1669 when author is not valid1670 returns quickly1671 filter by project1672 returns public and internal snippets for non project members1673 returns public snippets for non project members1674 returns internal snippets for non project members1675 does not return private snippets for non project members1676 returns all snippets for project members1677 returns private snippets for project members1678 returns all snippets for an admin in admin mode1679 returns public and internal snippets for an admin without admin mode1680 when project is a Project object1681 returns public personal and project snippets for unauthorized user1682 when project is a Project id1683 returns public personal and project snippets for unauthorized user1684 filter by author1685 returns all snippets for project members1686 when project is not valid1687 returns quickly1688 filter by snippet type1689 when filtering by only_personal snippet1690 returns all personal snippets for the admin1691 returns only personal snippets visible by user1692 returns only internal or public personal snippets for user without snippets1693 filtering by ids1694 returns only personal snippet1695 explore snippets1696 returns only public personal snippets for unauthenticated users1697 also returns internal personal snippets for authenticated users1698 returns all personal snippets for admins when in admin mode1699 also returns internal personal snippets for admins without admin mode1700 when the user cannot read cross project1701 returns only personal snippets when the user cannot read cross project1702 when only project snippets are required1703 returns no records1704 when project snippets are disabled1705 returns quickly1706 no sort param is provided1707 returns snippets sorted by id1708 sort param is provided1709 returns snippets sorted by sort param1710 behaves like snippet visibility1711 For project snippets1712 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: true1713 For project and unauthenticated users1714 returns proper outcome1715 Without a given project and unauthenticated users1716 returns proper outcome1717 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1718 For project and unauthenticated users1719 returns proper outcome1720 Without a given project and unauthenticated users1721 returns proper outcome1722 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1723 For project and unauthenticated users1724 returns proper outcome1725 Without a given project and unauthenticated users1726 returns proper outcome1727 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true1728 For project and external users1729 returns proper outcome1730 Without a given project and external users1731 returns proper outcome1732 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false1733 For project and external users1734 returns proper outcome1735 Without a given project and external users1736 returns proper outcome1737 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false1738 For project and external users1739 returns proper outcome1740 Without a given project and external users1741 returns proper outcome1742 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true1743 For project and non_member users1744 returns proper outcome1745 Without a given project and non_member users1746 returns proper outcome1747 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true1748 For project and non_member users1749 returns proper outcome1750 Without a given project and non_member users1751 returns proper outcome1752 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false1753 For project and non_member users1754 returns proper outcome1755 Without a given project and non_member users1756 returns proper outcome1757 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true1758 For project and member users1759 returns proper outcome1760 Without a given project and member users1761 returns proper outcome1762 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true1763 For project and member users1764 returns proper outcome1765 Without a given project and member users1766 returns proper outcome1767 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true1768 For project and member users1769 returns proper outcome1770 Without a given project and member users1771 returns proper outcome1772 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true1773 For project and author users1774 returns proper outcome1775 Without a given project and author users1776 returns proper outcome1777 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true1778 For project and author users1779 returns proper outcome1780 Without a given project and author users1781 returns proper outcome1782 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true1783 For project and author users1784 returns proper outcome1785 Without a given project and author users1786 returns proper outcome1787 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1788 For project and unauthenticated users1789 returns proper outcome1790 Without a given project and unauthenticated users1791 returns proper outcome1792 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1793 For project and unauthenticated users1794 returns proper outcome1795 Without a given project and unauthenticated users1796 returns proper outcome1797 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1798 For project and unauthenticated users1799 returns proper outcome1800 Without a given project and unauthenticated users1801 returns proper outcome1802 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false1803 For project and external users1804 returns proper outcome1805 Without a given project and external users1806 returns proper outcome1807 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false1808 For project and external users1809 returns proper outcome1810 Without a given project and external users1811 returns proper outcome1812 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false1813 For project and external users1814 returns proper outcome1815 Without a given project and external users1816 returns proper outcome1817 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false1818 For project and non_member users1819 returns proper outcome1820 Without a given project and non_member users1821 returns proper outcome1822 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false1823 For project and non_member users1824 returns proper outcome1825 Without a given project and non_member users1826 returns proper outcome1827 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false1828 For project and non_member users1829 returns proper outcome1830 Without a given project and non_member users1831 returns proper outcome1832 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true1833 For project and member users1834 returns proper outcome1835 Without a given project and member users1836 returns proper outcome1837 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true1838 For project and member users1839 returns proper outcome1840 Without a given project and member users1841 returns proper outcome1842 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true1843 For project and member users1844 returns proper outcome1845 Without a given project and member users1846 returns proper outcome1847 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true1848 For project and author users1849 returns proper outcome1850 Without a given project and author users1851 returns proper outcome1852 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true1853 For project and author users1854 returns proper outcome1855 Without a given project and author users1856 returns proper outcome1857 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true1858 For project and author users1859 returns proper outcome1860 Without a given project and author users1861 returns proper outcome1862 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1863 For project and unauthenticated users1864 returns proper outcome1865 Without a given project and unauthenticated users1866 returns proper outcome1867 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1868 For project and unauthenticated users1869 returns proper outcome1870 Without a given project and unauthenticated users1871 returns proper outcome1872 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1873 For project and unauthenticated users1874 returns proper outcome1875 Without a given project and unauthenticated users1876 returns proper outcome1877 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false1878 For project and external users1879 returns proper outcome1880 Without a given project and external users1881 returns proper outcome1882 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false1883 For project and external users1884 returns proper outcome1885 Without a given project and external users1886 returns proper outcome1887 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false1888 For project and external users1889 returns proper outcome1890 Without a given project and external users1891 returns proper outcome1892 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false1893 For project and non_member users1894 returns proper outcome1895 Without a given project and non_member users1896 returns proper outcome1897 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false1898 For project and non_member users1899 returns proper outcome1900 Without a given project and non_member users1901 returns proper outcome1902 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false1903 For project and non_member users1904 returns proper outcome1905 Without a given project and non_member users1906 returns proper outcome1907 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false1908 For project and member users1909 returns proper outcome1910 Without a given project and member users1911 returns proper outcome1912 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false1913 For project and member users1914 returns proper outcome1915 Without a given project and member users1916 returns proper outcome1917 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false1918 For project and member users1919 returns proper outcome1920 Without a given project and member users1921 returns proper outcome1922 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false1923 For project and author users1924 returns proper outcome1925 Without a given project and author users1926 returns proper outcome1927 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false1928 For project and author users1929 returns proper outcome1930 Without a given project and author users1931 returns proper outcome1932 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false1933 For project and author users1934 returns proper outcome1935 Without a given project and author users1936 returns proper outcome1937 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1938 For project and unauthenticated users1939 returns proper outcome1940 Without a given project and unauthenticated users1941 returns proper outcome1942 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1943 For project and unauthenticated users1944 returns proper outcome1945 Without a given project and unauthenticated users1946 returns proper outcome1947 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1948 For project and unauthenticated users1949 returns proper outcome1950 Without a given project and unauthenticated users1951 returns proper outcome1952 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: false1953 For project and external users1954 returns proper outcome1955 Without a given project and external users1956 returns proper outcome1957 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false1958 For project and external users1959 returns proper outcome1960 Without a given project and external users1961 returns proper outcome1962 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false1963 For project and external users1964 returns proper outcome1965 Without a given project and external users1966 returns proper outcome1967 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true1968 For project and non_member users1969 returns proper outcome1970 Without a given project and non_member users1971 returns proper outcome1972 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true1973 For project and non_member users1974 returns proper outcome1975 Without a given project and non_member users1976 returns proper outcome1977 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false1978 For project and non_member users1979 returns proper outcome1980 Without a given project and non_member users1981 returns proper outcome1982 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true1983 For project and member users1984 returns proper outcome1985 Without a given project and member users1986 returns proper outcome1987 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true1988 For project and member users1989 returns proper outcome1990 Without a given project and member users1991 returns proper outcome1992 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true1993 For project and member users1994 returns proper outcome1995 Without a given project and member users1996 returns proper outcome1997 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true1998 For project and author users1999 returns proper outcome2000 Without a given project and author users2001 returns proper outcome2002 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true2003 For project and author users2004 returns proper outcome2005 Without a given project and author users2006 returns proper outcome2007 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true2008 For project and author users2009 returns proper outcome2010 Without a given project and author users2011 returns proper outcome2012 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2013 For project and unauthenticated users2014 returns proper outcome2015 Without a given project and unauthenticated users2016 returns proper outcome2017 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2018 For project and unauthenticated users2019 returns proper outcome2020 Without a given project and unauthenticated users2021 returns proper outcome2022 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2023 For project and unauthenticated users2024 returns proper outcome2025 Without a given project and unauthenticated users2026 returns proper outcome2027 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false2028 For project and external users2029 returns proper outcome2030 Without a given project and external users2031 returns proper outcome2032 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false2033 For project and external users2034 returns proper outcome2035 Without a given project and external users2036 returns proper outcome2037 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false2038 For project and external users2039 returns proper outcome2040 Without a given project and external users2041 returns proper outcome2042 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false2043 For project and non_member users2044 returns proper outcome2045 Without a given project and non_member users2046 returns proper outcome2047 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false2048 For project and non_member users2049 returns proper outcome2050 Without a given project and non_member users2051 returns proper outcome2052 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false2053 For project and non_member users2054 returns proper outcome2055 Without a given project and non_member users2056 returns proper outcome2057 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true2058 For project and member users2059 returns proper outcome2060 Without a given project and member users2061 returns proper outcome2062 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true2063 For project and member users2064 returns proper outcome2065 Without a given project and member users2066 returns proper outcome2067 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true2068 For project and member users2069 returns proper outcome2070 Without a given project and member users2071 returns proper outcome2072 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true2073 For project and author users2074 returns proper outcome2075 Without a given project and author users2076 returns proper outcome2077 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true2078 For project and author users2079 returns proper outcome2080 Without a given project and author users2081 returns proper outcome2082 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true2083 For project and author users2084 returns proper outcome2085 Without a given project and author users2086 returns proper outcome2087 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2088 For project and unauthenticated users2089 returns proper outcome2090 Without a given project and unauthenticated users2091 returns proper outcome2092 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2093 For project and unauthenticated users2094 returns proper outcome2095 Without a given project and unauthenticated users2096 returns proper outcome2097 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2098 For project and unauthenticated users2099 returns proper outcome2100 Without a given project and unauthenticated users2101 returns proper outcome2102 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false2103 For project and external users2104 returns proper outcome2105 Without a given project and external users2106 returns proper outcome2107 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false2108 For project and external users2109 returns proper outcome2110 Without a given project and external users2111 returns proper outcome2112 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2113 For project and external users2114 returns proper outcome2115 Without a given project and external users2116 returns proper outcome2117 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2118 For project and non_member users2119 returns proper outcome2120 Without a given project and non_member users2121 returns proper outcome2122 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2123 For project and non_member users2124 returns proper outcome2125 Without a given project and non_member users2126 returns proper outcome2127 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2128 For project and non_member users2129 returns proper outcome2130 Without a given project and non_member users2131 returns proper outcome2132 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2133 For project and member users2134 returns proper outcome2135 Without a given project and member users2136 returns proper outcome2137 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2138 For project and member users2139 returns proper outcome2140 Without a given project and member users2141 returns proper outcome2142 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2143 For project and member users2144 returns proper outcome2145 Without a given project and member users2146 returns proper outcome2147 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2148 For project and author users2149 returns proper outcome2150 Without a given project and author users2151 returns proper outcome2152 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2153 For project and author users2154 returns proper outcome2155 Without a given project and author users2156 returns proper outcome2157 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2158 For project and author users2159 returns proper outcome2160 Without a given project and author users2161 returns proper outcome2162 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2163 For project and unauthenticated users2164 returns proper outcome2165 Without a given project and unauthenticated users2166 returns proper outcome2167 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2168 For project and unauthenticated users2169 returns proper outcome2170 Without a given project and unauthenticated users2171 returns proper outcome2172 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2173 For project and unauthenticated users2174 returns proper outcome2175 Without a given project and unauthenticated users2176 returns proper outcome2177 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true2178 For project and external users2179 returns proper outcome2180 Without a given project and external users2181 returns proper outcome2182 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: true2183 For project and external users2184 returns proper outcome2185 Without a given project and external users2186 returns proper outcome2187 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: true2188 For project and external users2189 returns proper outcome2190 Without a given project and external users2191 returns proper outcome2192 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: false2193 For project and non_member users2194 returns proper outcome2195 Without a given project and non_member users2196 returns proper outcome2197 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2198 For project and non_member users2199 returns proper outcome2200 Without a given project and non_member users2201 returns proper outcome2202 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false2203 For project and non_member users2204 returns proper outcome2205 Without a given project and non_member users2206 returns proper outcome2207 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true2208 For project and member users2209 returns proper outcome2210 Without a given project and member users2211 returns proper outcome2212 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true2213 For project and member users2214 returns proper outcome2215 Without a given project and member users2216 returns proper outcome2217 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true2218 For project and member users2219 returns proper outcome2220 Without a given project and member users2221 returns proper outcome2222 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true2223 For project and author users2224 returns proper outcome2225 Without a given project and author users2226 returns proper outcome2227 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true2228 For project and author users2229 returns proper outcome2230 Without a given project and author users2231 returns proper outcome2232 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true2233 For project and author users2234 returns proper outcome2235 Without a given project and author users2236 returns proper outcome2237 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2238 For project and unauthenticated users2239 returns proper outcome2240 Without a given project and unauthenticated users2241 returns proper outcome2242 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2243 For project and unauthenticated users2244 returns proper outcome2245 Without a given project and unauthenticated users2246 returns proper outcome2247 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2248 For project and unauthenticated users2249 returns proper outcome2250 Without a given project and unauthenticated users2251 returns proper outcome2252 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: true2253 For project and external users2254 returns proper outcome2255 Without a given project and external users2256 returns proper outcome2257 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: true2258 For project and external users2259 returns proper outcome2260 Without a given project and external users2261 returns proper outcome2262 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: true2263 For project and external users2264 returns proper outcome2265 Without a given project and external users2266 returns proper outcome2267 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false2268 For project and non_member users2269 returns proper outcome2270 Without a given project and non_member users2271 returns proper outcome2272 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false2273 For project and non_member users2274 returns proper outcome2275 Without a given project and non_member users2276 returns proper outcome2277 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false2278 For project and non_member users2279 returns proper outcome2280 Without a given project and non_member users2281 returns proper outcome2282 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true2283 For project and member users2284 returns proper outcome2285 Without a given project and member users2286 returns proper outcome2287 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true2288 For project and member users2289 returns proper outcome2290 Without a given project and member users2291 returns proper outcome2292 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true2293 For project and member users2294 returns proper outcome2295 Without a given project and member users2296 returns proper outcome2297 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true2298 For project and author users2299 returns proper outcome2300 Without a given project and author users2301 returns proper outcome2302 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true2303 For project and author users2304 returns proper outcome2305 Without a given project and author users2306 returns proper outcome2307 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true2308 For project and author users2309 returns proper outcome2310 Without a given project and author users2311 returns proper outcome2312 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2313 For project and unauthenticated users2314 returns proper outcome2315 Without a given project and unauthenticated users2316 returns proper outcome2317 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2318 For project and unauthenticated users2319 returns proper outcome2320 Without a given project and unauthenticated users2321 returns proper outcome2322 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2323 For project and unauthenticated users2324 returns proper outcome2325 Without a given project and unauthenticated users2326 returns proper outcome2327 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false2328 For project and external users2329 returns proper outcome2330 Without a given project and external users2331 returns proper outcome2332 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false2333 For project and external users2334 returns proper outcome2335 Without a given project and external users2336 returns proper outcome2337 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2338 For project and external users2339 returns proper outcome2340 Without a given project and external users2341 returns proper outcome2342 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2343 For project and non_member users2344 returns proper outcome2345 Without a given project and non_member users2346 returns proper outcome2347 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2348 For project and non_member users2349 returns proper outcome2350 Without a given project and non_member users2351 returns proper outcome2352 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2353 For project and non_member users2354 returns proper outcome2355 Without a given project and non_member users2356 returns proper outcome2357 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2358 For project and member users2359 returns proper outcome2360 Without a given project and member users2361 returns proper outcome2362 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2363 For project and member users2364 returns proper outcome2365 Without a given project and member users2366 returns proper outcome2367 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2368 For project and member users2369 returns proper outcome2370 Without a given project and member users2371 returns proper outcome2372 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2373 For project and author users2374 returns proper outcome2375 Without a given project and author users2376 returns proper outcome2377 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2378 For project and author users2379 returns proper outcome2380 Without a given project and author users2381 returns proper outcome2382 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2383 For project and author users2384 returns proper outcome2385 Without a given project and author users2386 returns proper outcome2387 For personal snippets2388 snippet_visibility: :public, user_type: :unauthenticated, outcome: true2389 For personal and public snippets with unauthenticated user2390 returns proper outcome2391 snippet_visibility: :public, user_type: :external, outcome: true2392 For personal and public snippets with external user2393 returns proper outcome2394 snippet_visibility: :public, user_type: :non_member, outcome: true2395 For personal and public snippets with non_member user2396 returns proper outcome2397 snippet_visibility: :public, user_type: :author, outcome: true2398 For personal and public snippets with author user2399 returns proper outcome2400 snippet_visibility: :internal, user_type: :unauthenticated, outcome: false2401 For personal and internal snippets with unauthenticated user2402 returns proper outcome2403 snippet_visibility: :internal, user_type: :external, outcome: false2404 For personal and internal snippets with external user2405 returns proper outcome2406 snippet_visibility: :internal, user_type: :non_member, outcome: true2407 For personal and internal snippets with non_member user2408 returns proper outcome2409 snippet_visibility: :internal, user_type: :author, outcome: true2410 For personal and internal snippets with author user2411 returns proper outcome2412 snippet_visibility: :private, user_type: :unauthenticated, outcome: false2413 For personal and private snippets with unauthenticated user2414 returns proper outcome2415 snippet_visibility: :private, user_type: :external, outcome: false2416 For personal and private snippets with external user2417 returns proper outcome2418 snippet_visibility: :private, user_type: :non_member, outcome: false2419 For personal and private snippets with non_member user2420 returns proper outcome2421 snippet_visibility: :private, user_type: :author, outcome: true2422 For personal and private snippets with author user2423 returns proper outcome2424 when the user cannot read cross project2425 returns only personal snippets2426 external authorization2427 includes the result if the external service allows access2428 does not include any results if the external service denies access2429 behaves like a finder with external authorization service2430 finds the subject2431 with an external authorization service2432 does not include the subject when no project was given2433 includes the subject when a project id was given2434IssuesFinder2435 behaves like issues or work items finder2436 #execute2437 scope: all2438 returns all items2439 finds items user can access due to group2440 user does not have read permissions2441 when filtering by project id2442 returns no items2443 when filtering by group id2444 returns no items2445 assignee filtering2446 behaves like assignee ID filter2447 returns issuables assigned to that user2448 behaves like assignee NOT ID filter2449 returns issuables not assigned to that user2450 behaves like assignee OR filter2451 returns issuables assigned to the given users2452 when assignee_id does not exist2453 behaves like assignee NOT ID filter2454 returns issuables not assigned to that user2455 filter by username2456 behaves like assignee username filter2457 returns issuables assigned to those users2458 behaves like assignee NOT username filter2459 returns issuables not assigned to those users2460 behaves like assignee OR filter2461 returns issuables assigned to the given users2462 when assignee_username does not exist2463 behaves like assignee NOT username filter2464 returns issuables not assigned to those users2465 behaves like no assignee filter2466 returns issuables not assigned to any assignee2467 returns issuables not assigned to any assignee2468 behaves like any assignee filter2470 returns issuables assigned to any assignee2471 returns issuables assigned to any assignee2472 filtering by release2473 when filter by none2474 returns items without releases2475 when sort by milestone2476 returns items without any releases2477 when filter by any2478 returns items with any releases2479 when sort by milestone2480 returns items without any releases2481 when filter by a release_tag2482 returns the items associated with the release tag2483 when sort by milestone2484 returns the items associated with the release tag2485 when filter by a negated release_tag2486 returns the items not associated with the release2487 when sort by milestone2488 returns the items not associated with the release2489 filtering by projects2490 when projects are passed in a list of ids2491 returns the item belonging to the projects2492 when projects are passed in a subquery2493 returns the item belonging to the projects2494 filtering by group_id2495 when include_subgroup param not set2496 returns all group items2497 when projects outside the group are passed2498 returns no items2499 when projects of the group are passed2500 returns the item within the group and projects2501 when projects of the group are passed as a subquery2502 returns the item within the group and projects2503 when release_tag is passed as a parameter2504 ignores the release_tag parameter2505 when include_subgroup param is true2506 returns all group and subgroup items2507 when mixed projects are passed2508 returns the item within the group and projects2509 filtering by author2510 by author ID2511 returns items created by that user2512 using OR2513 returns items created by any of the given users2514 when feature flag is disabled2515 does not add any filter2516 filtering by NOT author ID2517 returns items not created by that user2518 filtering by nonexistent author ID and issue term using CTE for search2519 returns no results2520 filtering by milestone2521 returns items assigned to that milestone2522 filtering by not milestone2523 returns items not assigned to that milestone2524 with multiple milestones2525 returns items not assigned to both milestones2526 filtering by group milestone2527 returns items assigned to that group milestone2528 using NOT2529 returns items not assigned to that group milestone2530 filtering by no milestone2531 returns items with no milestone2532 returns items with no milestone (deprecated)2533 filtering by any milestone2534 returns items with any assigned milestone2535 returns items with any assigned milestone (deprecated)2536 filtering by upcoming milestone2537 returns items in the upcoming milestone for each project or group2538 using NOT2539 returns items not in upcoming milestones for each project or group, but must have a due date2540 filtering by started milestone2541 returns items in the started milestones for each project2542 using NOT2543 returns items not in the started milestones for each project2544 filtering by label2545 returns items with that label2546 using NOT2547 returns items that do not have that label2548 shadowing the same outside param2549 does not take precedence over labels outside NOT2550 further filtering outside params2551 further filters on the returned resultset2552 filtering by multiple labels2553 returns the unique items with all those labels2554 using NOT2555 returns items that do not have any of the labels provided2556 using OR2557 returns items that have at least one of the given labels2558 when feature flag is disabled2559 does not add any filter2560 filtering by a label that includes any or none in the title2561 returns the unique items with all those labels2562 using NOT2563 returns items that do not have ANY ONE of the labels provided2564 filtering by no label2565 returns items with no labels2566 filtering by any label2567 returns items that have one or more label2568 when the same label exists on project and group levels2569 finds both item records2570 filtering by item term2571 with latin search term2572 returns matching items2573 with non-latin search term2574 returns matching items2575 when full-text search is disabled2576 allows partial word matches2577 filtering by item term in title2578 returns items with title match for search term2579 filtering by items iids2580 returns items where iids match2581 using NOT2582 returns items with no iids match2583 filtering by state2584 with opened2585 returns only opened items2586 with closed2587 returns only closed items2588 with all2589 returns all items2590 with invalid state2591 returns all items2592 filtering by created_at2593 through created_after2594 returns items created on or after the given date2595 through created_before2596 returns items created on or before the given date2597 through created_after and created_before2598 returns items created between the given dates2599 filtering by updated_at2600 through updated_after2601 returns items updated on or after the given date2602 through updated_before2603 returns items updated on or before the given date2604 through updated_after and updated_before2605 returns items updated between the given dates2606 filtering by closed_at2607 through closed_after2608 returns items closed on or after the given date2609 through closed_before2610 returns items closed on or before the given date2611 through closed_after and closed_before2612 returns items closed between the given dates2613 filtering by reaction name2614 user searches by no reaction2615 returns items that the user did not react to2616 user searches by any reaction2617 returns items that the user reacted to2618 user searches by "thumbsup" reaction2619 returns items that the user thumbsup to2620 using NOT2621 returns items that the user did not thumbsup to2622 user2 searches by "thumbsup" reaction2623 returns items that the user2 thumbsup to2624 using NOT2625 returns items that the user2 thumbsup to2626 user searches by "thumbsdown" reaction2627 returns items that the user thumbsdown to2628 using NOT2629 returns items that the user thumbsdown to2630 filtering by confidential2631 no filtering2632 returns all items2633 user filters confidential items2634 returns only confidential items2635 user filters only public items2636 returns only public items2637 filtering by item type2638 no type given2639 returns all items2640 incident type2641 returns incident items2642 objective type2643 returns incident items2644 key_result type2645 returns incident items2646 item type2647 returns all items with type issue2648 multiple params2649 returns all items2650 without array2651 returns incident items2652 invalid params2653 returns no items2654 crm filtering2655 filtering by crm contact2656 when the user can read crm contacts2657 returns for that contact2658 when the user can not read crm contacts2659 does not filter by contact2660 filtering by crm organization2661 when the user can read crm organization2662 returns for that organization2663 when the user can not read crm organization2664 does not filter by organization2665 when the user is unauthorized2666 returns no results2667 when the user can see some, but not all, items2668 returns only items they can see2669 personal scope2670 returns item assigned to the user2671 filtering by project2672 returns items assigned to the user in that project2673 when project restricts items2674 doesn't return team-only items to non team members2675 doesn't return items if feature disabled2676 external authorization2677 behaves like a finder with external authorization service2678 finds the subject2679 with an external authorization service2680 does not include the subject when no project was given2681 includes the subject when a project id was given2682 filtering by due date2683 with param set to no due date2684 returns items with no due date2685 with param set to any due date2686 returns items with any due date2687 with param set to due today2688 returns items due today2689 with param set to due tomorrow2690 returns items due today2691 with param set to overdue2692 returns overdue items2693 with param set to next month and previous two weeks2694 returns items due in the previous two weeks and next month2695 with invalid param2696 returns no items2697 #row_count2698 returns -1 if the query times out2699 when admin mode is enabled2700 returns the number of rows for the default state2701 returns the number of rows for a given state2702 when admin mode is disabled2703 returns no rows2704 #with_confidentiality_access_check2705 when no project filter is given2706 for an anonymous user2707 behaves like returns public, does not return hidden or confidential2708 returns only public items2709 for a user without project membership2710 behaves like returns public, does not return hidden or confidential2711 returns only public items2712 for a guest user2713 behaves like returns public, does not return hidden or confidential2714 returns only public items2715 for a project member with access to view confidential items2716 behaves like returns public and confidential, does not return hidden2717 returns only public and confidential items2718 for an admin2719 when admin mode is enabled2720 behaves like returns public, confidential, and hidden2721 returns all items2722 when admin mode is disabled2723 behaves like returns public, does not return hidden or confidential2724 returns only public items2725 when searching within a specific project2726 for an anonymous user2727 does not filter by confidentiality2728 behaves like returns public, does not return hidden or confidential2729 returns only public items2730 for a user without project membership2731 filters by confidentiality2732 behaves like returns public, does not return hidden or confidential2733 returns only public items2734 for a guest user2735 filters by confidentiality2736 behaves like returns public, does not return hidden or confidential2737 returns only public items2738 for a project member with access to view confidential items2739 does not filter by confidentiality2740 behaves like returns public and confidential, does not return hidden2741 returns only public and confidential items2742 for an admin2743 when admin mode is enabled2744 does not filter by confidentiality2745 behaves like returns public, confidential, and hidden2746 returns all items2747 when admin mode is disabled2748 filters by confidentiality2749 behaves like returns public, does not return hidden or confidential2750 returns only public items2751 #use_cte_for_search?2752 when there is no search param2753 returns false2754 when the force_cte param is falsey2755 returns false2756 when a non-simple sort is given2757 returns false2758 when all conditions are met2759 uses group search optimization2760 returns true2761 uses project search optimization2762 returns true2763 with simple sort2764 returns true2765 with simple sort as a symbol2766 returns true2767 #parent_param=2768 klass: :Project, param: :project_id2769 sets the params2770 klass: :Group, param: :group_id2771 sets the params2772 unexpected parent2773 raises an error2774Ci::BuildPolicy2775 #rules2776 when user does not have access to the project2777 when public builds are enabled2778 does not include ability to read build2779 when public builds are disabled2780 does not include ability to read build2781 when anonymous user has access to the project2782 when public builds are enabled2783 includes ability to read build2784 when public builds are disabled2785 does not include ability to read build2786 when team member has access to the project2787 team member is a guest2788 when public builds are enabled2789 includes ability to read build2790 when public builds are disabled2791 does not include ability to read build2792 team member is a reporter2793 when public builds are enabled2794 includes ability to read build2795 when public builds are disabled2796 does not include ability to read build2797 when maintainer is allowed to push to pipeline branch2798 enables update_build if user is maintainer2799 rules for protected ref2800 when no one can push or merge to the branch2801 does not include ability to update build2802 when developers can push to the branch2803 includes ability to update build2804 when no one can create the tag2805 does not include ability to update build2806 when no one can create the tag but it is not a tag2807 includes ability to update build2808 rules for erase build2809 when a developer erases a build2810 when developers can push to the branch2811 when the build was created by the developer2812 when the build was created for a protected ref2813 is expected to be disallowed :erase_build2814 when the build was created for an unprotected ref2815 is expected to be allowed :erase_build2816 when the build was created by the other2817 is expected to be disallowed :erase_build2818 when no one can push or merge to the branch2819 is expected to be disallowed :erase_build2820 when a maintainer erases a build2821 when maintainers can push to the branch2822 when the build was created by the maintainer2823 is expected to be allowed :erase_build2824 when the build was created by the other2825 is expected to be allowed :erase_build2826 when no one can push or merge to the branch2827 is expected to be disallowed :erase_build2828 when an admin erases a build2829 when the build was created for a protected branch2830 is expected to be allowed :erase_build2831 when the build was created for a protected tag2832 is expected to be allowed :erase_build2833 when the build was created for an unprotected ref2834 is expected to be allowed :erase_build2835 manage a web ide terminal2836 when create_web_ide_terminal access enabled2837 with admin2838 when admin mode enabled2839 is expected to be allowed :create_build_service_proxy2840 when admin mode disabled2841 is expected not to be allowed :create_build_service_proxy2842 when build is not from a webide pipeline2843 is expected not to be allowed :create_build_service_proxy2844 when build has no runner terminal2845 when admin mode enabled2846 is expected to be allowed :update_web_ide_terminal2847 is expected not to be allowed :create_build_service_proxy2848 when admin mode disabled2849 is expected not to be allowed :update_web_ide_terminal2850 is expected not to be allowed :create_build_service_proxy2851 feature flag "build_service_proxy" is disabled2852 is expected not to be allowed :create_build_service_proxy2853 with owner2854 behaves like allowed build owner access2855 is expected not to be allowed :create_build_service_proxy2856 when user is the owner of the job2857 is expected to be allowed :create_build_service_proxy2858 with maintainer2859 behaves like allowed build owner access2860 is expected not to be allowed :create_build_service_proxy2861 when user is the owner of the job2862 is expected to be allowed :create_build_service_proxy2863 with developer2864 behaves like forbidden access2865 is expected not to be allowed :create_build_service_proxy2866 when user is the owner of the job2867 is expected not to be allowed :create_build_service_proxy2868 with reporter2869 behaves like forbidden access2870 is expected not to be allowed :create_build_service_proxy2871 when user is the owner of the job2872 is expected not to be allowed :create_build_service_proxy2873 with guest2874 behaves like forbidden access2875 is expected not to be allowed :create_build_service_proxy2876 when user is the owner of the job2877 is expected not to be allowed :create_build_service_proxy2878 with non member2879 behaves like forbidden access2880 is expected not to be allowed :create_build_service_proxy2881 when user is the owner of the job2882 is expected not to be allowed :create_build_service_proxy2883 ability :create_build_terminal2884 when user can update_build2885 when job has terminal2886 when current user is the job owner2887 is expected to be allowed :create_build_terminal2888 when current user is not the job owner2889 is expected not to be allowed :create_build_terminal2890 when job does not have terminal2891 is expected not to be allowed :create_build_terminal2892 when user cannot update build2893 is expected not to be allowed :create_build_terminal2894Boards::Issues::MoveService2895 #execute2896 when parent is a project2897 behaves like issues move service2898 when moving an issue between lists2899 delegates the label changes to Issues::UpdateService2900 removes the label from the list it came from and adds the label of the list it goes to2901 behaves like updating timestamps2902 updates updated_at2903 when moving to closed2904 delegates the close proceedings to Issues::CloseService2905 removes all list-labels from boards and close the issue2906 behaves like updating timestamps2907 updates updated_at2908 when moving to backlog2909 keeps labels and milestone2910 behaves like updating timestamps2911 updates updated_at2912 when moving from closed2913 delegates the re-open proceedings to Issues::ReopenService2914 adds the label of the list it goes to and reopen the issue2915 behaves like updating timestamps2916 updates updated_at2917 when moving to same list2918 returns nil2919 keeps issues labels2920 keeps issues assignees2921 sorts issues2922 does not update updated_at2923 when moving to a specific list position2924 moves issue to the top of the list2925 moves issue to a position in the middle of the list2926 moves issue to the bottom of the list2927 when given position is greater than number of issues in the list2928 moves the issue to the bottom of the list2929 when parent is a group2930 behaves like issues move service2931 when moving an issue between lists2932 delegates the label changes to Issues::UpdateService2933 removes the label from the list it came from and adds the label of the list it goes to2934 behaves like updating timestamps2935 updates updated_at2936 when moving to closed2937 delegates the close proceedings to Issues::CloseService2938 removes all list-labels from boards and close the issue2939 behaves like updating timestamps2940 updates updated_at2941 when moving to backlog2942 keeps labels and milestone2943 behaves like updating timestamps2944 updates updated_at2945 when moving from closed2946 delegates the re-open proceedings to Issues::ReopenService2947 adds the label of the list it goes to and reopen the issue2948 behaves like updating timestamps2949 updates updated_at2950 when moving to same list2951 returns nil2952 keeps issues labels2953 keeps issues assignees2954 sorts issues2955 does not update updated_at2956 when moving to a specific list position2957 moves issue to the top of the list2958 moves issue to a position in the middle of the list2959 moves issue to the bottom of the list2960 when given position is greater than number of issues in the list2961 moves the issue to the bottom of the list2962 #execute_multiple2963 returns the expected result if list of issues is empty2964 moving multiple issues2965 moves multiple issues from one list to another2966 moving a single issue2967 moves one issue2968 moving issues visually after an existing issue2969 moves one issue2970 moving issues visually before an existing issue2971 moves one issue2972Notes::QuickActionsService2973 .noteable_update_service_class2974 returns WorkItems::UpdateService for a note on a work item2975 returns Issues::UpdateService for a note on an issue2976 returns MergeRequests::UpdateService for a note on a merge request2977 returns Commits::TagService for a note on a commit2978 .supported?2979 with a note on an issue2980 returns true2981 with a note on a commit2982 returns false2983 #supported?2984 delegates to the class method2985 #execute2986 behaves like note on noteable that supports quick actions2987 note with only command2988 /close, /label, /assign & /milestone2989 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note2990 /relate2991 user cannot relate issues2992 does not create issue relation2993 user is allowed to relate issues2994 creates issue relation2995 /reopen2996 opens the noteable, and leave no note2997 /spend2998 when note is not persisted2999 adds time to noteable, adds timelog with nil note_id and has no content3000 when note is persisted3001 updates the spent time and populates timelog with note_id3002 adds a system note3003 when not specifying a date3004 does not include the date3005 when specifying a date3006 does include the date3007 /estimate3008 adds time estimate to noteable3009 note with command & text3010 /close, /label, /assign & /milestone3011 closes noteable, sets labels, assigns, and sets milestone to noteable3012 /reopen3013 opens the noteable3014 /milestone3015 on an incident3016 leaves the note empty3017 assigns the milestone3018 on a merge request3019 leaves the note empty3020 assigns the milestone3021 /remove_milestone3022 on an issue3023 leaves the note empty3024 removes the milestone3025 on an incident3026 leaves the note empty3027 removes the milestone3028 on a merge request3029 leaves the note empty3030 removes the milestone3031 behaves like note on noteable that supports quick actions3032 note with only command3033 /close, /label, /assign & /milestone3034 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note3035 /relate3036 user cannot relate issues3037 does not create issue relation3038 user is allowed to relate issues3039 creates issue relation3040 /reopen3041 opens the noteable, and leave no note3042 /spend3043 when note is not persisted3044 adds time to noteable, adds timelog with nil note_id and has no content3045 when note is persisted3046 updates the spent time and populates timelog with note_id3047 adds a system note3048 when not specifying a date3049 does not include the date3050 when specifying a date3051 does include the date3052 /estimate3053 adds time estimate to noteable3054 note with command & text3055 /close, /label, /assign & /milestone3056 closes noteable, sets labels, assigns, and sets milestone to noteable3057 /reopen3058 opens the noteable3059 /milestone3060 on an incident3061 leaves the note empty3062 assigns the milestone3063 on a merge request3064 leaves the note empty3065 assigns the milestone3066 /remove_milestone3067 on an issue3068 leaves the note empty3069 removes the milestone3070 on an incident3071 leaves the note empty3072 removes the milestone3073 on a merge request3074 leaves the note empty3075 removes the milestone3076 behaves like note on noteable that supports quick actions3077 note with only command3078 /close, /label, /assign & /milestone3079 closes noteable, sets labels, assigns, and sets milestone to noteable, and leave no note3080 /relate3081 user cannot relate issues3082 does not create issue relation3083 user is allowed to relate issues3084 creates issue relation3085 /reopen3086 opens the noteable, and leave no note3087 /spend3088 when note is not persisted3089 adds time to noteable, adds timelog with nil note_id and has no content3090 when note is persisted3091 updates the spent time and populates timelog with note_id3092 adds a system note3093 when not specifying a date3094 does not include the date3095 when specifying a date3096 does include the date3097 /estimate3098 adds time estimate to noteable3099 note with command & text3100 /close, /label, /assign & /milestone3101 closes noteable, sets labels, assigns, and sets milestone to noteable3102 /reopen3103 opens the noteable3104 /milestone3105 on an incident3106 leaves the note empty3107 assigns the milestone3108 on a merge request3109 leaves the note empty3110 assigns the milestone3111 /remove_milestone3112 on an issue3113 leaves the note empty3114 removes the milestone3115 on an incident3116 leaves the note empty3117 removes the milestone3118 on a merge request3119 leaves the note empty3120 removes the milestone3121 note on work item that supports quick actions3122 note with only command3123 /close, /label & /assign3124 closes noteable, sets labels, assigns and leave no note3125 /reopen3126 opens the noteable, and leave no note3127 note with command & text3128 /close, /label, /assign3129 closes noteable, sets labels, assigns, and sets milestone to noteable3130 /reopen3131 opens the noteable3132 CE restriction for issue assignees3133 /assign3134 adds only one assignee from the list3135FileUploader3136 legacy storage3137 behaves like builds correct legacy storage paths3138 #store_dir3139 behaves like matches the method pattern3140 is expected to match /awesome\/project\/\h+/3141 #cache_dir3142 behaves like matches the method pattern3143 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3144 #work_dir3145 behaves like matches the method pattern3146 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3147 #upload_path3148 behaves like matches the method pattern3149 is expected to match /\h+\/<filename>/3150 #relative_path3151 is relative (PENDING: Path not set, skipping.)3152 .absolute_path3153 behaves like matches the method pattern3154 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/awesome\/project\/55dc16aa0edd05693fd98b5051e83321\/foo.jpg/3155 .base_dir3156 behaves like matches the method pattern3157 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3158 path traversal exploits3159 throws an exception3160 uses hashed storage3161 when rolled out attachments3162 #store_dir3163 behaves like matches the method pattern3164 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+/3165 #cache_dir3166 behaves like matches the method pattern3167 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3168 #work_dir3169 behaves like matches the method pattern3170 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3171 #upload_path3172 behaves like matches the method pattern3173 is expected to match /\h+\/<filename>/3174 #relative_path3175 is relative (PENDING: Path not set, skipping.)3176 .absolute_path3177 behaves like matches the method pattern3178 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3179 .base_dir3180 behaves like matches the method pattern3181 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3182 path traversal exploits3183 throws an exception3184 when only repositories are rolled out3185 behaves like builds correct legacy storage paths3186 #store_dir3187 behaves like matches the method pattern3188 is expected to match /awesome\/project\/\h+/3189 #cache_dir3190 behaves like matches the method pattern3191 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3192 #work_dir3193 behaves like matches the method pattern3194 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3195 #upload_path3196 behaves like matches the method pattern3197 is expected to match /\h+\/<filename>/3198 #relative_path3199 is relative (PENDING: Path not set, skipping.)3200 .absolute_path3201 behaves like matches the method pattern3202 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/awesome\/project\/55dc16aa0edd05693fd98b5051e83321\/foo.jpg/3203 .base_dir3204 behaves like matches the method pattern3205 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3206 path traversal exploits3207 throws an exception3208 object store is remote3209 behaves like builds correct paths3210 #store_dir3211 behaves like matches the method pattern3212 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+/3213 #cache_dir3214 behaves like matches the method pattern3215 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3216 #work_dir3217 behaves like matches the method pattern3218 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3219 #upload_path3220 behaves like matches the method pattern3221 is expected to match /@hashed\/\h{2}\/\h{2}\/\h+\/\h+\/<filename>/3222 #relative_path3223 is relative (PENDING: Path not set, skipping.)3224 .absolute_path3225 behaves like matches the method pattern3226 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3227 .base_dir3228 behaves like matches the method pattern3229 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3230 path traversal exploits3231 throws an exception3232 initialize3233 accepts a secret parameter3234 callbacks3235 #prune_store_dir after :remove3236 is called3237 prune the store directory3238 copy_to3239 files are stored locally3240 copies the file to the correct location3241 returned uploader3242 generates a new secret3243 creates new upload correctly3244 copies the file3245 files are stored remotely3246 copies the file to the correct location3247 returned uploader3248 generates a new secret3249 creates new upload correctly3250 copies the file3251 .extract_dynamic_path3252 with an absolute path without a slash in the beginning3253 behaves like a valid secret3254 with a 32-byte hexadecimal secret3255 extracts the secret3256 extracts the identifier3257 with a 10-byte hexadecimal secret3258 extracts the secret3259 extracts the identifier3260 with an invalid secret3261 returns nil3262 with an absolute path with a slash in the beginning3263 behaves like a valid secret3264 with a 32-byte hexadecimal secret3265 extracts the secret3266 extracts the identifier3267 with a 10-byte hexadecimal secret3268 extracts the secret3269 extracts the identifier3270 with an invalid secret3271 returns nil3272 with an relative path without a slash in the beginning3273 behaves like a valid secret3274 with a 32-byte hexadecimal secret3275 extracts the secret3276 extracts the identifier3277 with a 10-byte hexadecimal secret3278 extracts the secret3279 extracts the identifier3280 with an invalid secret3281 returns nil3282 with an relative path with a slash in the beginning3283 behaves like a valid secret3284 with a 32-byte hexadecimal secret3285 extracts the secret3286 extracts the identifier3287 with a 10-byte hexadecimal secret3288 extracts the secret3289 extracts the identifier3290 with an invalid secret3291 returns nil3292 #secret3293 generates a secret if none is provided3294 validation3295 32-byte hexadecimal3296 returns the secret3297 10-byte hexadecimal3298 returns the secret3299 invalid secret supplied3300 raises an exception3301 #migrate!3302 behaves like migrates3303 returns corresponding file type3304 does nothing when migrating to the current store3305 migrate to the specified store3306 removes the original file after the migration3307 can access to the original file during migration3308 when migrate! is not occupied by another process3309 executes migrate!3310 executes use_file3311 when migrate! is occupied by another process3312 does not execute migrate!3313 does not execute use_file3314 migration is unsuccessful3315 when the store is not supported3316 does not update the object_store3317 does not delete the original file3318 upon a fog failure3319 does not update the object_store3320 does not delete the original file3321 upon a database failure3322 does not update the object_store3323 does not delete the original file3324 behaves like migrates3325 returns corresponding file type3326 does nothing when migrating to the current store3327 migrate to the specified store3328 removes the original file after the migration3329 can access to the original file during migration3330 when migrate! is not occupied by another process3331 executes migrate!3332 executes use_file3333 when migrate! is occupied by another process3334 does not execute migrate!3335 does not execute use_file3336 migration is unsuccessful3337 when the store is not supported3338 does not update the object_store3339 does not delete the original file3340 upon a fog failure3341 does not update the object_store3342 does not delete the original file3343 upon a database failure3344 does not update the object_store3345 does not delete the original file3346 #upload=3347 handles nil3348 extract the uploader context from it3349 #replace_file_without_saving!3350 replaces an existing file without changing its metadata3351 when remote file is used3352 #cache!3353 file is stored remotely in permament location with sanitized name3354 #to_h3355 generates URL using original file name instead of filename returned by object storage3356gitlab:seed:group_seed rake task3357 performs group seed successfully3358Packages::Maven::Metadata::SyncWorker3359 #perform3360 with a jar3361 with a valid package name3362 logs the message from the service3363 behaves like an idempotent worker3364 is labeled as idempotent3365 performs multiple times sequentially without raising an exception3366 creates the updated metadata files3367 not in the passed project3368 does not create the updated metadata files3369 with a user with not enough permissions3370 does not create the updated metadata files3371 with a maven plugin3372 with a valid package name3373 logs the message from the service3374 behaves like an idempotent worker3375 is labeled as idempotent3376 performs multiple times sequentially without raising an exception3377 creates the updated metadata files3378 not in the passed project3379 does not create the updated metadata files3380 with a user with not enough permissions3381 does not create the updated metadata files3382 with no package name3383 does not run3384 with no user id3385 does not run3386 with no project id3387 does not run3388Ci::JobEntity3389 contains started3390 contains complete to indicate if a pipeline is completed3391 contains paths to job page action3392 does not contain sensitive information3393 contains whether it is playable3394 contains timestamps3395 contains details3396 contains queued_at3397 contains queued_duration3398 when job is retryable3399 contains cancel path3400 when job is cancelable3401 contains cancel path3402 when job is a regular job3403 does not contain path to play action3404 is not a playable build3405 when job is a manual action3406 when user is allowed to trigger action3407 contains path to play action3408 is a playable action3409 when user is not allowed to trigger action3410 does not contain path to play action3411 is not a playable action3412 when job is scheduled3413 contains path to unschedule action3414 contains scheduled_at3415 when job is running3416 contains started_at3417 when job is generic commit status3418 contains paths to target action3419 does not contain paths to other action paths3420 contains timestamps3421 contains details3422 when job failed3423 contains details3424 states that it failed3425 indicates the failure reason on tooltip3426 includes a callout message with a verbose output3427 states that it is not recoverable3428 when job is allowed to fail3429 contains details3430 states that it failed3431 indicates the failure reason on tooltip3432 includes a callout message with a verbose output3433 states that it is not recoverable3434 when the job failed with a script failure3435 does not include callout message or recoverable keys3436 when job failed and is recoverable3437 states it is recoverable3438 when job passed3439 does not include callout message or recoverable keys3440 when job is a bridge3441 does not include build path3442 does not include cancel path3443AlertManagement::Alert3444 associations3445 is expected to belong to project required: false3446 is expected to belong to issue optional: true3447 is expected to belong to prometheus_alert optional: true3448 is expected to belong to environment optional: true3449 is expected to have many assignees through alert_assignees3450 is expected to have many notes inverse_of => noteable3451 is expected to have many ordered_notes class_name => Note inverse_of => noteable3452 is expected to have many user_mentions class_name => AlertManagement::AlertUserMention inverse_of => alert3453 validations3454 is expected to validate that :title cannot be empty/falsy3455 is expected to validate that :events cannot be empty/falsy3456 is expected to validate that :severity cannot be empty/falsy3457 is expected to validate that :status cannot be empty/falsy3458 is expected to validate that :started_at cannot be empty/falsy3459 is expected to validate that the length of :title is at most 2003460 is expected to validate that the length of :description is at most 10003461 is expected to validate that the length of :service is at most 1003462 is expected to validate that the length of :monitoring_tool is at most 1003463 fingerprint3464 adding an alert with the same fingerprint3465 same project, various states3466 existing_status_event: :resolve, new_status: :triggered, valid: true3467 is expected to be valid3468 existing_status_event: :resolve, new_status: :acknowledged, valid: true3469 is expected to be valid3470 existing_status_event: :resolve, new_status: :ignored, valid: true3471 is expected to be valid3472 existing_status_event: :resolve, new_status: :resolved, valid: true3473 is expected to be valid3474 existing_status_event: :trigger, new_status: :triggered, valid: false3475 is expected to be invalid3476 existing_status_event: :trigger, new_status: :acknowledged, valid: false3477 is expected to be invalid3478 existing_status_event: :trigger, new_status: :ignored, valid: false3479 is expected to be invalid3480 existing_status_event: :trigger, new_status: :resolved, valid: true3481 is expected to be valid3482 existing_status_event: :acknowledge, new_status: :triggered, valid: false3483 is expected to be invalid3484 existing_status_event: :acknowledge, new_status: :acknowledged, valid: false3485 is expected to be invalid3486 existing_status_event: :acknowledge, new_status: :ignored, valid: false3487 is expected to be invalid3488 existing_status_event: :acknowledge, new_status: :resolved, valid: true3489 is expected to be valid3490 existing_status_event: :ignore, new_status: :triggered, valid: false3491 is expected to be invalid3492 existing_status_event: :ignore, new_status: :acknowledged, valid: false3493 is expected to be invalid3494 existing_status_event: :ignore, new_status: :ignored, valid: false3495 is expected to be invalid3496 existing_status_event: :ignore, new_status: :resolved, valid: true3497 is expected to be valid3498 different project3499 is expected to be valid3500 hosts3501 over 255 total chars3502 is expected not to be valid3503 under 255 chars3504 is expected to be valid3505 nested array3506 is expected not to be valid3507 enums3508 is expected to define :severity as an enum backed by an integer with values ‹{critical: 0, high: 1, medium: 2, low: 3, info: 4, unknown: 5}›3509 scopes3510 .for_iid3511 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3512 .for_fingerprint3513 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3514 .for_environment3515 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3516 .for_assignee_username3517 when matching assignee_username3518 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3519 when unknown assignee_username3520 is expected to be empty3521 with empty assignee_username3522 is expected to be empty3523 .order_severity_with_open_prometheus_alert3524 is expected to eq [#<AlertManagement::Alert id:8 namespace244/project598^alert#2>, #<AlertManagement::Alert id:9 namespace244/project598^alert#3>]3525 .counts_by_project_id3526 is expected to eq {665=>2, 666=>2}3527 .not_resolved3528 is expected to contain exactly #<AlertManagement::Alert id:2 namespace241/project595^alert#2>, #<AlertManagement::Alert id:1 namespace241/project595^alert#1>, and #<AlertManagement::Alert id:4 namespace242/project596^alert#2>3529 behaves like a model including Escalatable3530 validations3531 is expected to validate that :status cannot be empty/falsy3532 when status is triggered3533 when resolved_at is blank3534 is expected to be valid3535 when resolved_at is present3536 is expected to be invalid3537 when status is acknowledged3538 when resolved_at is blank3539 is expected to be valid3540 when resolved_at is present3541 is expected to be invalid3542 when status is resolved3543 when resolved_at is blank3544 is expected to be invalid3545 when resolved_at is present3546 is expected to be valid3547 when status is ignored3548 when resolved_at is blank3549 is expected to be valid3550 when resolved_at is present3551 is expected to be invalid3552 scopes3553 .order_status3554 descending3555 is expected to eq [#<AlertManagement::Alert id:10 namespace245/project599^alert#1>, #<AlertManagement::Alert id:11 name...2 namespace247/project601^alert#1>, #<AlertManagement::Alert id:13 namespace248/project602^alert#1>]3556 ascending3557 is expected to eq [#<AlertManagement::Alert id:13 namespace248/project602^alert#1>, #<AlertManagement::Alert id:12 name...1 namespace246/project600^alert#1>, #<AlertManagement::Alert id:10 namespace245/project599^alert#1>]3558 .open3559 is expected to contain exactly #<AlertManagement::Alert id:11 namespace246/project600^alert#1> and #<AlertManagement::Alert id:10 namespace245/project599^alert#1>3560 .status_value3561 status: :triggered, status_value: 03562 returns status value by its name3563 status: :acknowledged, status_value: 13564 returns status value by its name3565 status: :resolved, status_value: 23566 returns status value by its name3567 status: :ignored, status_value: 33568 returns status value by its name3569 status: :unknown, status_value: nil3570 returns status value by its name3571 .status_name3572 raw_status: 0, status: :triggered3573 returns status name by its values3574 raw_status: 1, status: :acknowledged3575 returns status name by its values3576 raw_status: 2, status: :resolved3577 returns status name by its values3578 raw_status: 3, status: :ignored3579 returns status name by its values3580 raw_status: -1, status: nil3581 returns status name by its values3582 .open_status?3583 status: :triggered, is_open_status: true3584 returns true when the status is open status3585 status: :acknowledged, is_open_status: true3586 returns true when the status is open status3587 status: :resolved, is_open_status: false3588 returns true when the status is open status3589 status: :ignored, is_open_status: false3590 returns true when the status is open status3591 status: nil, is_open_status: false3592 returns true when the status is open status3593 #trigger3594 when escalatable is in triggered state3595 does not change the escalatable status3596 when escalatable is not in triggered state3597 changes the escalatable status to triggered3598 resets resolved at3599 #acknowledge3600 changes the escalatable status to acknowledged3601 resets ended at3602 #resolve3603 when escalatable is already resolved3604 does not change the escalatable status3605 when escalatable is not resolved3606 changes escalatable status to "resolved"3607 #ignore3608 changes the escalatable status to ignored3609 resets ended at3610 #status_event_for3611 for_status: :triggered, event: :trigger3612 returns event by status name3613 for_status: "triggered", event: :trigger3614 returns event by status name3615 for_status: :acknowledged, event: :acknowledge3616 returns event by status name3617 for_status: "acknowledged", event: :acknowledge3618 returns event by status name3619 for_status: :resolved, event: :resolve3620 returns event by status name3621 for_status: "resolved", event: :resolve3622 returns event by status name3623 for_status: :ignored, event: :ignore3624 returns event by status name3625 for_status: "ignored", event: :ignore3626 returns event by status name3627 for_status: :unknown, event: nil3628 returns event by status name3629 for_status: nil, event: nil3630 returns event by status name3631 for_status: "", event: nil3632 returns event by status name3633 for_status: 1, event: nil3634 returns event by status name3635 #open?3636 returns true when the status is open status3637 .counts_by_status3638 is expected to eq {:acknowledged=>1, :ignored=>1, :resolved=>1, :triggered=>1}3639 .find_unresolved_alert3640 is expected to eq #<AlertManagement::Alert id:16 namespace241/project595^alert#4>3641 .last_prometheus_alert_by_project_id3642 returns the latest alert for each project3643 .search3644 does not contain search string3645 is expected to be empty3646 title includes query3647 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3648 description includes query3649 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3650 service includes query3651 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3652 monitoring tool includes query3653 is expected to contain exactly #<AlertManagement::Alert id:1 namespace241/project595^alert#1>3654 .reference_pattern3655 is expected to match "gitlab-org/gitlab^alert#123"3656 .link_reference_pattern3657 is expected to match "http://localhost/namespace241/project595/-/alert_management/1/details"3658 is expected not to match "http://localhost/gitlab-org/gitlab/alert_management/123"3659 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123"3660 is expected not to match "gitlab-org/gitlab/-/alert_management/123"3661 .reference_valid?3662 ref: "123456", result: true3663 is expected to eq true3664 ref: "1", result: true3665 is expected to eq true3666 ref: "-1", result: false3667 is expected to eq false3668 ref: nil, result: false3669 is expected to eq false3670 ref: "123456891012345678901234567890", result: false3671 is expected to eq false3672 #to_reference3673 is expected to eq "^alert#1"3674 #register_new_event!3675 increments the events count by 13676 #resolved_at3677 is expected to eq 2023-03-30 11:51:14.328742000 +00003678 #resolved_at=3679 sets ended_at3680AvatarUploader3681 behaves like builds correct paths3682 #store_dir3683 behaves like matches the method pattern3684 is expected to match /uploads\/-\/system\/user\/avatar\//3685 #cache_dir3686 behaves like matches the method pattern3687 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3688 #work_dir3689 behaves like matches the method pattern3690 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3691 #upload_path3692 behaves like matches the method pattern3693 is expected to match /uploads\/-\/system\/user\/avatar\//3694 #relative_path3695 is relative (PENDING: Path not set, skipping.)3696 .absolute_path3697 behaves like matches the method pattern3698 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/user\/avatar\//3699 .base_dir3700 behaves like matches the method pattern3701 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3702 path traversal exploits3703 throws an exception3704 object_store is REMOTE3705 behaves like builds correct paths3706 #store_dir3707 behaves like matches the method pattern3708 is expected to match /user\/avatar\//3709 #cache_dir3710 behaves like matches the method pattern3711 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3712 #work_dir3713 behaves like matches the method pattern3714 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3715 #upload_path3716 behaves like matches the method pattern3717 is expected to match /user\/avatar\//3718 #relative_path3719 is relative (PENDING: Path not set, skipping.)3720 .absolute_path3721 behaves like matches the method pattern3722 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3723 .base_dir3724 behaves like matches the method pattern3725 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3726 path traversal exploits3727 throws an exception3728 with a file3729 sets the right absolute path3730 behaves like migrates3731 returns corresponding file type3732 does nothing when migrating to the current store3733 migrate to the specified store3734 removes the original file after the migration3735 can access to the original file during migration3736 when migrate! is not occupied by another process3737 executes migrate!3738 executes use_file3739 when migrate! is occupied by another process3740 does not execute migrate!3741 does not execute use_file3742 migration is unsuccessful3743 when the store is not supported3744 does not update the object_store3745 does not delete the original file3746 upon a fog failure3747 does not update the object_store3748 does not delete the original file3749 upon a database failure3750 does not update the object_store3751 does not delete the original file3752 behaves like migrates3753 returns corresponding file type3754 does nothing when migrating to the current store3755 migrate to the specified store3756 removes the original file after the migration3757 can access to the original file during migration3758 when migrate! is not occupied by another process3759 executes migrate!3760 executes use_file3761 when migrate! is occupied by another process3762 does not execute migrate!3763 does not execute use_file3764 migration is unsuccessful3765 when the store is not supported3766 does not update the object_store3767 does not delete the original file3768 upon a fog failure3769 does not update the object_store3770 does not delete the original file3771 upon a database failure3772 does not update the object_store3773 does not delete the original file3774 accept whitelist file content type3775 mime_type: "image/png"3776 behaves like accepted carrierwave upload3777 will accept upload3778 will cache uploaded file3779 mime_type: "image/jpeg"3780 behaves like accepted carrierwave upload3781 will accept upload3782 will cache uploaded file3783 mime_type: "image/gif"3784 behaves like accepted carrierwave upload3785 will accept upload3786 will cache uploaded file3787 mime_type: "image/bmp"3788 behaves like accepted carrierwave upload3789 will accept upload3790 will cache uploaded file3791 mime_type: "image/tiff"3792 behaves like accepted carrierwave upload3793 will accept upload3794 will cache uploaded file3795 mime_type: "image/vnd.microsoft.icon"3796 behaves like accepted carrierwave upload3797 will accept upload3798 will cache uploaded file3799 upload non-whitelisted file content type3800 behaves like denied carrierwave upload3801 will deny upload3802 upload misnamed non-whitelisted file content type3803 behaves like denied carrierwave upload3804 will deny upload3805Backup::Repositories3806 #dump3807 avoids N+1 database queries3808 hashed storage3809 behaves like creates repository bundles3810 calls enqueue for each repository type3811 legacy storage3812 behaves like creates repository bundles3813 calls enqueue for each repository type3814 command failure3815 enqueue_project raises an error3816 project query raises an error3817 storages3818 calls enqueue for all repositories on the specified storage3819 paths3820 project path3821 calls enqueue for all repositories on the specified project3822 group path3823 calls enqueue for all repositories on all descendant projects3824 #restore3825 calls enqueue for each repository type3826 restoring object pools3827 schedules restoring of the pool3828 skips pools when no source project is found3829 cleanup snippets3830 shows the appropriate error3831 removes the snippets from the DB3832 removes the repository from disk3833 storages3834 calls enqueue for all repositories on the specified storage3835 paths3836 project path3837 calls enqueue for all repositories on the specified project3838 group path3839 calls enqueue for all repositories on all descendant projects3840Ability3841 using a nil subject3842 has no permissions3843 .users_that_can_read_project3844 using a public project3845 returns all the users3846 using an internal project3847 returns users that are administrators3848 returns internal users while skipping external users3849 returns external users if they are the project owner3850 returns external users if they are project members3851 returns an empty Array if all users are external users without access3852 using a private project3853 returns users that are administrators when admin mode is enabled3854 does not return users that are administrators when admin mode is disabled3855 returns external users if they are the project owner3856 returns external users if they are project members3857 returns an empty Array if all users are internal users without access3858 returns an empty Array if all users are external users without access3859 .users_that_can_read_personal_snippet3860 private snippet is readable only by its author3861 public snippet is readable by all users3862 .users_that_can_read_internal_note3863 for groups3864 behaves like filtering users that can read internal note3865 returns users that can read internal notes3866 for projects3867 behaves like filtering users that can read internal note3868 returns users that can read internal notes3869 .merge_requests_readable_by_user3870 with an admin when admin mode is enabled3871 returns all merge requests3872 with an admin when admin mode is disabled3873 returns merge_requests that are publicly visible3874 without a user3875 returns merge_requests that are publicly visible3876 with a user3877 returns projects visible to the user3878 when a user cannot read cross project and a filter is passed3879 returns only MRs of the specified project without checking access on others3880 .issues_readable_by_user3881 with an admin when admin mode is enabled3882 returns all given issues3883 with an admin when admin mode is disabled3884 returns the issues readable by the admin3885 returns no issues when not given access3886 with a regular user3887 returns the issues readable by the user3888 returns an empty Array when no issues are readable3889 without a regular user3890 returns issues that are publicly visible3891 when the user cannot read cross project3892 excludes issues from other projects whithout checking separatly when passing a scope3893 .feature_flags_readable_by_user3894 without a user3895 returns no feature flags3896 with a user3897 returns feature flags visible to the user3898 when a user cannot read cross project and a filter is passed3899 returns only feature flags of the specified project without checking access on others3900 .project_disabled_features_rules3901 wiki named abilities3902 disables wiki abilities if the project has no wiki3903 forgetting3904 allows us to discard specific values from the DeclarativePolicy cache3905 when bypassing the session3906 allows us to have re-entrant evaluation of admin-only permissions3907Operations::FeatureFlag3908 behaves like includes Limitable concern3909 #exceeds_limits?3910 without plan limits configured3911 is expected to eq false3912 without plan limits configured3913 is expected to eq false3914 with an existing model3915 is expected to eq true3916 validations3917 is expected to be a kind of Limitable3918 without plan limits configured3919 can create new models3920 with plan limits configured3921 can create new models3922 with an existing model3923 cannot create new models exceeding the plan limits3924 associations3925 is expected to belong to project required: false3926 is expected to have many strategies3927 default values3928 is expected to be active3929 is expected to eq "new_version_flag"3930 .reference_pattern3931 is expected to match "[feature_flag:123]"3932 is expected to match "[feature_flag:gitlab-org/gitlab/123]"3933 .link_reference_pattern3934 is expected to match "http://localhost/gitlab-org/gitlab/-/feature_flags/123/edit"3935 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123/edit"3936 is expected not to match "gitlab-org/gitlab/-/feature_flags/123/edit"3937 #to_reference3938 returns feature flag id3939 returns complete path to the feature flag with full: true3940 validations3941 is expected to validate that :project cannot be empty/falsy3942 is expected to validate that :name cannot be empty/falsy3943 is expected to validate that :name is case-sensitively unique within the scope of :project_id3944 is expected to define :version as an enum backed by an integer with values ‹{new_version_flag: 2}›3945 a version 2 feature flag3946 is valid if associated with Operations::FeatureFlags::Strategy models3947 behaves like AtomicInternalId3948 .has_internal_id3949 Module inclusion3950 is expected to includes the AtomicInternalId module3951 Validation3952 when presence validation is required3953 when creating an object3954 raises an error if the internal id is blank3955 when updating an object3956 raises an error if the internal id is blank3957 when presence validation is not required3958 when creating an object3959 does not raise an error if the internal id is blank (PENDING: No reason given)3960 when updating an object3961 does not raise an error if the internal id is blank (PENDING: No reason given)3962 Creating an instance3963 saves a new instance properly3964 internal id generation3965 calls InternalId.generate_next and sets internal id attribute3966 does not overwrite an existing internal id3967 when the instance has an internal ID set3968 calls InternalId.update_last_value and sets the `last_value` to that of the instance3969 unsetting the instance internal id on rollback3970 when the internal id has been changed3971 when the internal id is automatically set3972 clears it on the instance3973 when the internal id is manually set3974 does not clear it on the instance3975 when the internal id has not been changed3976 preserves the value on the instance3977 supply of internal ids3978 provides a persistent supply of IID values, sensitive to the current state3979 #reset_scope_internal_id_attribute3980 rewinds the allocated IID3981 allocates the same IID3982 .enabled3983 when the feature flag is active3984 returns the flag3985 when the feature flag is inactive3986 does not return the flag3987 .disabled3988 when the feature flag is active3989 does not return the flag3990 when the feature flag is inactive3991 returns the flag3992 .for_unleash_client3993 matches wild cards in the scope3994 matches wild cards case sensitively3995 returns feature flags ordered by id3996 #hook_attrs3997 includes expected attributes3998Todos::Destroy::GroupPrivateService3999 #execute4000 when a group set to private4001 removes todos only for users who are not group users4002 with nested groups4003 removes todos only for users who are not group users4004 when group is not private4005 does not remove any todos4006IssuablePolicy4007 #rules4008 when user is author of issuable4009 allows resolving notes4010 does not allow reading internal notes4011 when user is able to read project4012 enables user to read and update issuables4013 Timeline events4014 allows non-members to read time line events4015 disallows reporters from managing timeline events4016 allows developers to manage timeline events4017 when project is private4018 disallows user from reading and updating issuables from that project4019 when user belongs to the projects team4020 enables user to read and update issuables4021 Timeline events4022 disallows non-members from reading timeline events4023 allows guests to read time line events4024 disallows reporters from managing timeline events4025 allows developers to manage timeline events4026 when user is assignee of issuable4027 does not allow reading internal notes4028 when discussion is locked for the issuable4029 when the user is not a project member4030 can not create a note nor award emojis4031 does not allow resolving note4032 when the user is a project member4033 can create a note and award emojis4034 allows resolving notes4035 when user is anonymous4036 does not allow timelogs creation4037 when user is not a member of the project4038 does not allow timelogs creation4039 when user is not a member of the project but the author of the issuable4040 does not allow timelogs creation4041 does not allow reading internal notes4042 when user is a guest member of the project4043 does not allow timelogs creation4044 does not allow reading internal notes4045 when user is a guest member of the project and the author of the issuable4046 does not allow timelogs creation4047 when user is at least reporter of the project4048 allows timelogs creation4049 allows reading internal notes4050 when subject is a Merge Request4051 when can_read_merge_request is false4052 does not allow :read_issuable4053 when can_read_merge_request is true4054 allows :read_issuable4055 when subject is an Issue4056 when can_read_issue is false4057 does not allow :read_issuable4058 when can_read_issue is true4059 allows :read_issuable4060Projects::BuildArtifactsSizeRefresh4061 associations4062 is expected to belong to project required: false4063 validations4064 is expected to validate that :project cannot be empty/falsy4065 scopes4066 stale4067 returns records in running state and has not been updated for more than 2 hours4068 remaining4069 returns stale, created and pending records4070 does not include finalizing4071 processing_queue4072 prioritizes pending -> stale -> created4073 does not include finalizing4074 state machine4075 initial state4076 defaults to created4077 #process!4078 when refresh state is created4079 transitions the state to running4080 sets the refresh_started_at4081 sets last_job_artifact_id_on_refresh_start4082 bumps the updated_at4083 resets the build artifacts size stats4084 resets the buffered counter value to zero4085 when refresh state is pending4086 transitions the state to running4087 bumps the updated_at4088 when refresh state is running4089 keeps the state at running4090 bumps the updated_at4091 #requeue!4092 transitions refresh state from running to pending4093 bumps updated_at4094 updates last_job_artifact_id4095 #schedule_finalize!4096 transitions refresh state from running to finalizing4097 schedules Projects::FinalizeProjectStatisticsRefreshWorker4098 .process_next_refresh!4099 picks the first record from the remaining work4100 .enqueue_refresh4101 creates refresh records for each given project, skipping duplicates4102 #finalize!4103 stores the refresh amount into the buffered counter4104 destroys the refresh record4105 #next_batch4106 returns the job artifact records that were created not later than the refresh_started_at and IDs greater than the last_job_artifact_id4107 when created_at is set before artifact id is persisted4108 returns ordered job artifacts4109 #started?4110 refresh_state: :created, result: false4111 is expected to eq false4112 refresh_state: :pending, result: true4113 is expected to eq true4114 refresh_state: :running, result: true4115 is expected to eq true4116 callbacks4117 when destroyed4118 enqueues a Namespaces::ScheduleAggregationWorker4119Gitlab::Database::BackgroundMigration::BatchedJob4120 is expected to be a kind of Gitlab::Database::SharedModel(abstract)4121 is expected to contain exactly ActiveRecord::StatementTimeout, ActiveRecord::ConnectionTimeoutError, ActiveRecord::AdapterTimeout, ActiveRecord::LockWaitTimeout, and ActiveRecord::QueryCanceled4122 associations4123 is expected to belong to batched_migration required: false4124 is expected to have many batched_job_transition_logs4125 state machine4126 is expected to eql :pending, :running, :failed, and :succeeded4127 when a job is running4128 logs the transition4129 when a job succeed4130 logs the transition4131 updates the finished_at4132 creates a new transition log4133 when a job fails the number of max times4134 when job can be split4135 splits the job into two retriable jobs4136 when the job cannot be split4137 does not split the job4138 keeps the same job attributes4139 logs the error4140 when a job fails4141 logs the transition4142 tracks the exception4143 updates the finished_at4144 creates a new transition log4145 when job fails during sub batch processing4146 when sub batch size can be reduced in 25%4147 is expected to change `job.sub_batch_size` to 74148 when retries exceeds 2 attempts4149 calls split_and_retry! once sub_batch_size cannot be decreased anymore4150 is expected not to change `job.sub_batch_size`4151 scopes4152 .except_succeeded4153 returns not succeeded jobs4154 .active4155 returns active jobs4156 .stuck4157 returns stuck jobs4158 .retriable4159 returns retriable jobs4160 .created_since4161 returns jobs since a given time4162 .blocked_by_max_attempts4163 returns blocked jobs4164 delegated batched_migration attributes4165 #migration_job_class4166 returns the migration job_class4167 #migration_table_name4168 returns the migration table_name4169 #migration_column_name4170 returns the migration column_name4171 #migration_job_arguments4172 returns the migration job_arguments4173 #migration_job_class_name4174 returns the migration job_class_name4175 .extract_transition_options4176 args: [], expected_result: []4177 matches expected keys and result4178 args: [{:error=>StandardError}], expected_result: [StandardError, nil]4179 matches expected keys and result4180 args: [{:error=>StandardError, :from_sub_batch=>true}], expected_result: [StandardError, true]4181 matches expected keys and result4182 #can_split?4183 when the number of attempts is greater than the limit and the batch_size is greater than the sub_batch_size4184 when is a timeout exception4185 is expected to be truthy4186 when is a QueryCanceled exception4187 is expected to be truthy4188 when is not a timeout exception4189 is expected to be falsey4190 when the number of attempts is lower than the limit and the batch_size is greater than the sub_batch_size4191 when is a timeout exception4192 is expected to be falsey4193 when is not a timeout exception4194 is expected to be falsey4195 when the batch_size is lower than the sub_batch_size4196 is expected to be falsey4197 when the batch_size is 14198 is expected to be falsey4199 #can_reduce_sub_batch_size?4200 feature_flag_state: true, within_boundaries: true, outside_boundaries: false, limit_reached: false4201 when the number of attempts is lower than the limit and batch size are within boundaries4202 is expected to equal true4203 when the number of attempts is lower than the limit and batch size are outside boundaries4204 is expected to equal false4205 when the number of attempts is greater than the limit and batch size are within boundaries4206 is expected to equal false4207 feature_flag_state: false, within_boundaries: false, outside_boundaries: false, limit_reached: false4208 when the number of attempts is lower than the limit and batch size are within boundaries4209 is expected to equal false4210 when the number of attempts is lower than the limit and batch size are outside boundaries4211 is expected to equal false4212 when the number of attempts is greater than the limit and batch size are within boundaries4213 is expected to equal false4214 #time_efficiency4215 when job has not yet succeeded4216 returns nil4217 when finished_at is not set4218 returns nil4219 when started_at is not set4220 returns nil4221 when job has finished4222 returns ratio of duration to interval, here: 0.54223 returns ratio of duration to interval, here: 14224 #split_and_retry!4225 when job can be split4226 sets the correct attributes4227 splits the jobs into retriable jobs4228 when job is not failed4229 raises an exception4230 when batch size is already 14231DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is4232deprecated without replacement. If the `throw` came from4233`Timeout.timeout(duration)`, pass an exception class as a second4234argument so it doesn't use `throw` to abort its block. This results4235in the transaction being committed, but in the next release of Rails4236it will rollback.4237 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)4238 keeps the same batch size4239DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is4240deprecated without replacement. If the `throw` came from4241`Timeout.timeout(duration)`, pass an exception class as a second4242argument so it doesn't use `throw` to abort its block. This results4243in the transaction being committed, but in the next release of Rails4244it will rollback.4245 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)4246 resets the number of attempts4247 when computed midpoint is larger than the max value of the batch4248 lowers the batch size and resets the number of attempts4249 #reduce_sub_batch_size!4250 when the job sub batch size can be reduced4251 reduces sub batch size in 25%4252 log the changes4253 when reduced sub_batch_size is greater than sub_batch4254 doesn't allow sub_batch_size to greater than sub_batch4255 when sub_batch_size is already 14256 updates sub_batch_size to it's minimum value4257 when job has not failed4258 raises an exception4259 when the amount to be reduced exceeds the threshold4260 prevents sub batch size to be reduced4261Namespace::RootStorageStatistics4262 is expected to belong to namespace required: false4263 is expected to have one route through namespace4264 is expected to delegate #all_projects to the #namespace object4265 scopes4266 .for_namespace_ids4267 returns only requested namespaces4268 #recalculate!4269 behaves like project data refresh4270 aggregates project statistics4271 aggregates container_repositories_size and storage_size4272 works when there are no projects4273 behaves like does not include personal snippets4274 is expected not to receive from_personal_snippets(*(any args)) 0 times4275 with subgroups4276 behaves like project data refresh4277 aggregates project statistics4278 aggregates container_repositories_size and storage_size4279 works when there are no projects4280 behaves like does not include personal snippets4281 is expected not to receive from_personal_snippets(*(any args)) 0 times4282 with a group namespace4283 aggregates namespace statistics4284 works when there are no namespace statistics4285 with a personal namespace4286 does not aggregate namespace statistics4287 behaves like project data refresh4288 aggregates project statistics4289 aggregates container_repositories_size and storage_size4290 works when there are no projects4291 when user has personal snippets4292 aggregates personal and project snippets size4293 when personal snippets do not have statistics4294 does not raise any error4295Gitlab::Ci::Pipeline::Seed::Stage4296 #size4297 returns a number of jobs in the stage4298 #attributes4299 returns hash attributes of a stage4300 #included?4301 when it contains builds seeds4302 is expected to be included4303 when it does not contain build seeds4304 is expected not to be included4305 #seeds4306 returns build seeds4307 returns build seeds including valid attributes4308 filters seeds using only/except policies4309 when a legacy trigger exists4310 returns build seeds including legacy trigger4311 when a ref is protected4312 returns protected builds4313 when a ref is not protected4314 returns unprotected builds4315 #seeds_names4316 returns all job names4317 returns a set4318 #seeds_errors4319 returns all errors from seeds4320 #to_resource4321 builds a valid stage object with all builds4322 can not be persisted without explicit pipeline assignment4323Gitlab::RepositoryCacheAdapter4324 .cache_method_output_as_redis_set4325 with an existing repository4326 caches the output, sorting the results4327 membership checks4328 when the cache key does not exist4329 calls the original method and populates the cache4330 when the cache key exists4331 calls #try_include? on the set cache4332 memoizes the result4333 #cache_method_output4334 with a non-existing repository4335 returns the fallback value4336 avoids calling the original method4337 with a method throwing a non-existing-repository error4338 returns the fallback value4339 does not cache the data4340 with an existing repository4341 caches the output4342 #cache_method_output_asymmetrically4343 with a non-existing repository4344 returns the output of the original method4345 with a method throwing a non-existing-repository error4346 returns nil4347 does not cache the data4348 with an existing repository4349 when it returns truthy4350 caches the output in RequestStore4351 caches the output in RepositoryCache4352 when it returns false4353 caches the output in RequestStore4354 does NOT cache the output in RepositoryCache4355 #memoize_method_output4356 with a non-existing repository4357 returns the fallback value4358 avoids calling the original method4359 does not set the instance variable4360 with a method throwing a non-existing-repository error4361 returns the fallback value4362 does not set the instance variable4363 with an existing repository4364 sets the instance variable4365 #expire_method_caches4366 expires the caches of the given methods4367 does not expire caches for non-existent methods4368Gitlab::Gfm::UploadsRewriter4369 text contains links to uploads4370 does not rewrite plain links as embedded4371 does not casue a timeout on pathological text4372 file are stored locally4373 #rewrite4374 rewrites content4375 copies files4376 does not remove old files4377 generates a new secret for each file4378 skips nil files do4379 skips non-existant files4380 files are stored remotely4381 #rewrite4382 rewrites content4383 copies files4384 does not remove old files4385 generates a new secret for each file4386 skips nil files do4387 skips non-existant files4388 #needs_rewrite?4389 is expected to eq true4390Banzai::ReferenceParser::UserParser4391 #referenced_by4392 when the link has a data-group attribute4393 using an existing group ID4394 returns an empty Array when the group has no users4395 when group has members4396 returns the users of the group4397 returns an empty Array when the group has mentions disabled4398 using a non-existing group ID4399 returns an empty Array4400 when the link has a data-user attribute4401 returns an Array of users4402 when RequestStore is active4403 does not return users from the first call in the second4404 when the link has a data-project attribute4405 using an existing project ID4406 returns the members of a project4407 using a non-existing project ID4408 returns an empty Array4409 #nodes_visible_to_user4410 when the link has a data-group attribute4411 using an existing group ID4412 returns the nodes if the user can read the group4413 returns an empty Array if the user can not read the group4414 when the link does not have a data-group attribute4415 with a data-project attribute4416 returns the nodes if the attribute value equals the current project ID4417 returns the nodes if the user can read the project4418 returns an empty Array if the user can not read the project4419 without a data-project attribute4420 returns the nodes4421 #nodes_user_can_reference4422 when the link has a data-author attribute4423 returns the nodes when the user is a member of the project4424 returns an empty Array when the project could not be found4425 returns an empty Array when the user could not be found4426 returns an empty Array when the user is not a team member4427 returns the nodes if the project attribute value equals the current project ID4428 when the link does not have a data-author attribute4429 returns the nodes4430Ci::UpdateBuildStateService4431 when build has unknown failure reason4432 updates a build status4433 when build has failed4434 sends a build failed event to Snowplow4435 when build does not have checksum4436 when state has changed4437 updates a state of a running build4438 returns 200 OK status4439 does not increment finalized trace metric4440 when it is a heartbeat request4441 updates a build timestamp4442 when state is unknown4443 responds with 400 bad request4444 when build has a checksum4445 when build does not have associated trace chunks4446 updates a build status4447 updates the allow_failure flag4448 does not increment invalid trace metric4449 does not increment chunks_invalid_checksum trace metric4450 when build trace has been migrated4451 updates a build state4452 updates the allow_failure flag4453 responds with 200 OK status4454 does not set a backoff value4455 increments trace finalized operation metric4456 records migration duration in a histogram4457 when trace checksum is not valid4458 increments invalid trace metric4459 increments chunks_invalid_checksum trace metric4460 when trace checksum is valid4461 does not increment invalid or corrupted trace metric4462 when using deprecated parameters4463 does not increment invalid or corrupted trace metric4464 when trace checksum is invalid and the log is corrupted4465 increments invalid and corrupted trace metrics4466 when trace checksum is invalid but the log seems fine4467 does not increment corrupted trace metric4468 when failed to acquire a build trace lock4469 accepts a state update request4470 increment locked trace metric4471 when build trace has not been migrated yet4472 does not update a build state4473 responds with 202 accepted4474 sets a request backoff value4475 schedules live chunks for migration4476 creates a pending state record4477 increments trace accepted operation metric4478 does not increment invalid trace metric4479 when build pending state is outdated4480 responds with 200 OK4481 updates build state4482 increments discarded traces metric4483 does not increment finalized trace metric4484 when build pending state has changes4485 uses stored state and responds with 200 OK4486 increments conflict trace metric4487 when live traces are disabled4488 responds with 200 OK4489PreviewMarkdownService4490 user references4491 returns users referenced in text4492 suggestions4493 when preview markdown param is present4494 returns suggestions referenced in text4495 when user is not authorized4496 returns no suggestions4497 when preview markdown param is not present4498 returns suggestions referenced in text4499 new note with quick actions4500 removes quick actions from text4501 explains quick actions effect4502 merge request description4503 removes quick actions from text4504 explains quick actions effect4505 commit description4506 removes quick actions from text4507 explains quick actions effect4508 note with multiple quick actions4509 renders quick actions on multiple lines4510 work item quick action types4511 renders the quick action preview4512Gitlab::Search::AbuseDetection4513 abusive scopes validation4514 allows only approved scopes4515 disallows anything not approved4516 abusive character matching4517 does match refs permitted by git refname: main4518 does NOT match refs with special characters: main4519 does match refs permitted by git refname: тест4520 does NOT match refs with special characters: тест4521 does match refs permitted by git refname: maiñ4522 does NOT match refs with special characters: maiñ4523 does match refs permitted by git refname: main1234524 does NOT match refs with special characters: main1234525 does match refs permitted by git refname: main-v1234526 does NOT match refs with special characters: main-v1234527 does match refs permitted by git refname: main-v12.34528 does NOT match refs with special characters: main-v12.34529 does match refs permitted by git refname: feature/it_works4530 does NOT match refs with special characters: feature/it_works4531 does match refs permitted by git refname: really_important!4532 does NOT match refs with special characters: really_important!4533 does match refs permitted by git refname: 测试4534 does NOT match refs with special characters: 测试4535 numericality validation4536 considers non Integers to be invalid4537 considers Integers to be valid4538 query_string validation4539 search: "a", errors: {:query_string=>["stopword only abusive search detected"]}4540 validates query string for pointless search4541 search: "an", errors: {:query_string=>["stopword only abusive search detected"]}4542 validates query string for pointless search4543 search: "and", errors: {:query_string=>["stopword only abusive search detected"]}4544 validates query string for pointless search4545 search: "are", errors: {:query_string=>["stopword only abusive search detected"]}4546 validates query string for pointless search4547 search: "as", errors: {:query_string=>["stopword only abusive search detected"]}4548 validates query string for pointless search4549 search: "at", errors: {:query_string=>["stopword only abusive search detected"]}4550 validates query string for pointless search4551 search: "be", errors: {:query_string=>["stopword only abusive search detected"]}4552 validates query string for pointless search4553 search: "but", errors: {:query_string=>["stopword only abusive search detected"]}4554 validates query string for pointless search4555 search: "by", errors: {:query_string=>["stopword only abusive search detected"]}4556 validates query string for pointless search4557 search: "for", errors: {:query_string=>["stopword only abusive search detected"]}4558 validates query string for pointless search4559 search: "if", errors: {:query_string=>["stopword only abusive search detected"]}4560 validates query string for pointless search4561 search: "in", errors: {:query_string=>["stopword only abusive search detected"]}4562 validates query string for pointless search4563 search: "into", errors: {:query_string=>["stopword only abusive search detected"]}4564 validates query string for pointless search4565 search: "is", errors: {:query_string=>["stopword only abusive search detected"]}4566 validates query string for pointless search4567 search: "it", errors: {:query_string=>["stopword only abusive search detected"]}4568 validates query string for pointless search4569 search: "no", errors: {:query_string=>["stopword only abusive search detected"]}4570 validates query string for pointless search4571 search: "not", errors: {:query_string=>["stopword only abusive search detected"]}4572 validates query string for pointless search4573 search: "of", errors: {:query_string=>["stopword only abusive search detected"]}4574 validates query string for pointless search4575 search: "on", errors: {:query_string=>["stopword only abusive search detected"]}4576 validates query string for pointless search4577 search: "or", errors: {:query_string=>["stopword only abusive search detected"]}4578 validates query string for pointless search4579 search: "such", errors: {:query_string=>["stopword only abusive search detected"]}4580 validates query string for pointless search4581 search: "that", errors: {:query_string=>["stopword only abusive search detected"]}4582 validates query string for pointless search4583 search: "the", errors: {:query_string=>["stopword only abusive search detected"]}4584 validates query string for pointless search4585 search: "their", errors: {:query_string=>["stopword only abusive search detected"]}4586 validates query string for pointless search4587 search: "then", errors: {:query_string=>["stopword only abusive search detected"]}4588 validates query string for pointless search4589 search: "there", errors: {:query_string=>["stopword only abusive search detected"]}4590 validates query string for pointless search4591 search: "these", errors: {:query_string=>["stopword only abusive search detected"]}4592 validates query string for pointless search4593 search: "they", errors: {:query_string=>["stopword only abusive search detected"]}4594 validates query string for pointless search4595 search: "this", errors: {:query_string=>["stopword only abusive search detected"]}4596 validates query string for pointless search4597 search: "to", errors: {:query_string=>["stopword only abusive search detected"]}4598 validates query string for pointless search4599 search: "was", errors: {:query_string=>["stopword only abusive search detected"]}4600 validates query string for pointless search4601 search: "will", errors: {:query_string=>["stopword only abusive search detected"]}4602 validates query string for pointless search4603 search: "with", errors: {:query_string=>["stopword only abusive search detected"]}4604 validates query string for pointless search4605 search: "x", errors: {:query_string=>["abusive tiny search detected"]}4606 validates query string for pointless search4607 search: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", errors: {:query_string=>["abusive term length detected"]}4608 validates query string for pointless search4609 search: "", errors: {}4610 validates query string for pointless search4611 search: "*", errors: {}4612 validates query string for pointless search4613 search: "ruby", errors: {}4614 validates query string for pointless search4615 abusive type coercion from string validation4616 considers anything not a String invalid4617 considers Strings to be valid4618Ci::Trigger4619 associations4620 is expected to belong to project required: false4621 is expected to belong to owner required: false4622 is expected to have many trigger_requests4623 validations4624 is expected to validate that :owner cannot be empty/falsy4625 before_validation4626 sets an random token if none provided4627 does not set a random token if one provided4628 #short_token4629 returns shortened token without prefix4630 token does not have a prefix4631 returns shortened token4632 #can_access_project?4633 and is member of the project4634 is expected to eq true4635 and is not member of the project4636 is expected to eq false4637 behaves like includes Limitable concern4638 #exceeds_limits?4639 without plan limits configured4640 is expected to eq false4641 without plan limits configured4642 is expected to eq false4643 with an existing model4644 is expected to eq true4645 validations4646 is expected to be a kind of Limitable4647 without plan limits configured4648 can create new models4649 with plan limits configured4650 can create new models4651 with an existing model4652 cannot create new models exceeding the plan limits4653 loose foreign key on ci_triggers.owner_id4654 behaves like cleanup by a loose foreign key4655 cleans up (delete or nullify) the model4656 loose foreign key on ci_triggers.project_id4657 behaves like cleanup by a loose foreign key4658 cleans up (delete or nullify) the model4659 encrypted_token4660 when token is not provided4661 encrypts the generated token4662 when token is provided4663 encrypts the given token4664 when token is being updated4665 encrypts the given token4666DevOpsReport::Metric4667 validations4668 is expected to validate that :leader_issues cannot be empty/falsy4669 is expected to validate that :leader_issues looks like a number greater than or equal to 04670 is expected to validate that :instance_issues cannot be empty/falsy4671 is expected to validate that :instance_issues looks like a number greater than or equal to 04672 is expected to validate that :percentage_issues cannot be empty/falsy4673 is expected to validate that :percentage_issues looks like a number greater than or equal to 04674 is expected to validate that :leader_notes cannot be empty/falsy4675 is expected to validate that :leader_notes looks like a number greater than or equal to 04676 is expected to validate that :instance_notes cannot be empty/falsy4677 is expected to validate that :instance_notes looks like a number greater than or equal to 04678 is expected to validate that :percentage_notes cannot be empty/falsy4679 is expected to validate that :percentage_notes looks like a number greater than or equal to 04680 is expected to validate that :leader_milestones cannot be empty/falsy4681 is expected to validate that :leader_milestones looks like a number greater than or equal to 04682 is expected to validate that :instance_milestones cannot be empty/falsy4683 is expected to validate that :instance_milestones looks like a number greater than or equal to 04684 is expected to validate that :percentage_milestones cannot be empty/falsy4685 is expected to validate that :percentage_milestones looks like a number greater than or equal to 04686 is expected to validate that :leader_boards cannot be empty/falsy4687 is expected to validate that :leader_boards looks like a number greater than or equal to 04688 is expected to validate that :instance_boards cannot be empty/falsy4689 is expected to validate that :instance_boards looks like a number greater than or equal to 04690 is expected to validate that :percentage_boards cannot be empty/falsy4691 is expected to validate that :percentage_boards looks like a number greater than or equal to 04692 is expected to validate that :leader_merge_requests cannot be empty/falsy4693 is expected to validate that :leader_merge_requests looks like a number greater than or equal to 04694 is expected to validate that :instance_merge_requests cannot be empty/falsy4695 is expected to validate that :instance_merge_requests looks like a number greater than or equal to 04696 is expected to validate that :percentage_merge_requests cannot be empty/falsy4697 is expected to validate that :percentage_merge_requests looks like a number greater than or equal to 04698 is expected to validate that :leader_ci_pipelines cannot be empty/falsy4699 is expected to validate that :leader_ci_pipelines looks like a number greater than or equal to 04700 is expected to validate that :instance_ci_pipelines cannot be empty/falsy4701 is expected to validate that :instance_ci_pipelines looks like a number greater than or equal to 04702 is expected to validate that :percentage_ci_pipelines cannot be empty/falsy4703 is expected to validate that :percentage_ci_pipelines looks like a number greater than or equal to 04704 is expected to validate that :leader_environments cannot be empty/falsy4705 is expected to validate that :leader_environments looks like a number greater than or equal to 04706 is expected to validate that :instance_environments cannot be empty/falsy4707 is expected to validate that :instance_environments looks like a number greater than or equal to 04708 is expected to validate that :percentage_environments cannot be empty/falsy4709 is expected to validate that :percentage_environments looks like a number greater than or equal to 04710 is expected to validate that :leader_deployments cannot be empty/falsy4711 is expected to validate that :leader_deployments looks like a number greater than or equal to 04712 is expected to validate that :instance_deployments cannot be empty/falsy4713 is expected to validate that :instance_deployments looks like a number greater than or equal to 04714 is expected to validate that :percentage_deployments cannot be empty/falsy4715 is expected to validate that :percentage_deployments looks like a number greater than or equal to 04716 is expected to validate that :leader_projects_prometheus_active cannot be empty/falsy4717 is expected to validate that :leader_projects_prometheus_active looks like a number greater than or equal to 04718 is expected to validate that :instance_projects_prometheus_active cannot be empty/falsy4719 is expected to validate that :instance_projects_prometheus_active looks like a number greater than or equal to 04720 is expected to validate that :percentage_projects_prometheus_active cannot be empty/falsy4721 is expected to validate that :percentage_projects_prometheus_active looks like a number greater than or equal to 04722 is expected to validate that :leader_service_desk_issues cannot be empty/falsy4723 is expected to validate that :leader_service_desk_issues looks like a number greater than or equal to 04724 is expected to validate that :instance_service_desk_issues cannot be empty/falsy4725 is expected to validate that :instance_service_desk_issues looks like a number greater than or equal to 04726 is expected to validate that :percentage_service_desk_issues cannot be empty/falsy4727 is expected to validate that :percentage_service_desk_issues looks like a number greater than or equal to 04728 #percentage_score4729 returns stored percentage score4730Ci::ResetSkippedJobsService4731 # order random4732 with a stage-dag mixed pipeline4733 marks subsequent skipped jobs as processable4734 when executed by a different user than the original owner4735 reassigns jobs with updated statuses to the retryer4736 with stage-dag mixed pipeline with some same-stage needs4737 marks subsequent skipped jobs as processable4738 with same-stage needs4739 marks subsequent skipped jobs as processable4740PersonalAccessToken4741 .build4742 is a valid personal access token4743 ensures that the token is generated4744 scopes4745 .project_access_tokens4746 is expected to contain exactly #<PersonalAccessToken id: 2, user_id: 1133, name: "PAT 3", revoked: false, expires_at: "2023-04-04", ...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>4747 .owner_is_human4748 is expected to contain exactly #<PersonalAccessToken id: 3, user_id: 1137, name: "PAT 4", revoked: false, expires_at: "2023-04-04", ...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>4749 .for_user4750 returns personal access tokens of specified user only4751 .for_users4752 returns personal access tokens for the specified users only4753 .created_before4754 is expected to contain exactly #<PersonalAccessToken id: 14, user_id: 1147, name: "PAT 15", revoked: false, expires_at: "2023-04-04"...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>, #<PersonalAccessToken id: 15, user_id: 1148, name: "PAT 16", revoked: false, expires_at: "2023-04-04"...se, last_used_at: "2023-02-28 10:59:00.000000000 +0000", after_expiry_notification_delivered: false>, and #<PersonalAccessToken id: 16, user_id: 1149, name: "PAT 17", revoked: false, expires_at: "2023-04-04"...se, last_used_at: "2023-03-30 11:54:08.268210289 +0000", after_expiry_notification_delivered: false>4755 .last_used_before4756 last_used_*4757 does not return token that is last_used_at after given date4758 .last_used_before4759 returns personal access tokens used before the specified date only4760 .last_used_after4761 returns personal access tokens used after the specified date only4762 .last_used_before_or_unused4763 is expected to contain exactly #<PersonalAccessToken id: 21, user_id: 1154, name: "PAT 22", revoked: false, expires_at: "2023-04-04"...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false> and #<PersonalAccessToken id: 22, user_id: 1155, name: "PAT 23", revoked: false, expires_at: "2023-04-04"...se, last_used_at: "2023-02-28 10:59:00.000000000 +0000", after_expiry_notification_delivered: false>4764 .active?4765 returns false if the personal_access_token is revoked4766 returns false if the personal_access_token is expired4767 returns true if the personal_access_token is not revoked and not expired4768 revoke!4769 revokes the token4770 validations4771 requires at least one scope4772 allows creating a token with API scopes4773 allows creating a token with `admin_mode` scope4774 rejects creating a token with unavailable scopes4775 with feature flag disabled4776 allows creating a token with `admin_mode` scope4777 when registry is disabled4778 rejects creating a token with read_registry scope4779 allows revoking a token with read_registry scope4780 when registry is enabled4781 allows creating a token with read_registry scope4782 scopes4783 .active4784 includes non-revoked and non-expired tokens4785 .expiring_and_not_notified4786 in one day4787 doesn't have any tokens4788 in three days4789 only includes a valid token4790 .expired_today_and_not_notified4791 returns tokens that have expired today4792 .without_impersonation4793 returns only non-impersonation tokens4794 revoke scopes4795 .revoked4796 is expected to contain exactly #<PersonalAccessToken id: 44, user_id: 1177, name: "PAT 55", revoked: true, expires_at: "2023-04-04",...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>4797 .not_revoked4798 is expected to contain exactly #<PersonalAccessToken id: 45, user_id: 1178, name: "PAT 56", revoked: false, expires_at: "2023-04-04"...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false> and #<PersonalAccessToken id: 46, user_id: 1179, name: "PAT 57", revoked: nil, expires_at: "2023-04-04", ...expire_notification_delivered: false, last_used_at: nil, after_expiry_notification_delivered: false>4799 .simple_sorts4800 includes overridden keys4801 ordering by expires_at4802 .order_expires_at_asc_id_desc4803 returns ordered list in combination of expires_at ascending and id descending4804 `admin_mode scope4805 with feature flag enabled4806 with administrator user4807 does not add `admin_mode` scope before created4808 with normal user4809 does not add `admin_mode` scope before created4810 with feature flag disabled4811 with administrator user4812 adds `admin_mode` scope before created4813 with normal user4814 does not add `admin_mode` scope before created4815 token format4816 generates a token4817 when there is an existing token4818 does not change the existing token4819Gitlab::Redis::TraceChunks4820 behaves like redis_shared_examples4821 .config_file_name4822 when there is no config file anywhere4823 is expected to be nil4824 and there is a global env override4825 is expected to eq "global override"4826 and there is an instance specific config file4827 is expected to eq "/tmp/d20230330-360-7o3xba/config/redis.trace_chunks.yml"4828 returns a path that exists4829 and there is a specific env override4830 is expected to eq "instance specific override"4831 .store4832 with old format4833 behaves like redis store4834 instantiates Redis::Store4835 with the namespace4836 uses specified namespace4837 with new format4838 behaves like redis store4839 instantiates Redis::Store4840 with the namespace4841 uses specified namespace4842 .params4843 withstands mutation4844 when url contains unix socket reference4845 with old format4846 returns path key instead4847 with new format4848 returns path key instead4849 when url is host based4850 with old format4851 returns hash with host, port, db, and password4852 with new format4853 rails_env: "development", host: "development-host"4854 returns hash with host, port, db, and password4855 rails_env: "test", host: "test-host"4856 returns hash with host, port, db, and password4857 rails_env: "production", host: "production-host"4858 returns hash with host, port, db, and password4859 with redis cluster format4860 rails_env: "development", host: "development-master"4861 returns hash with cluster and password4862 rails_env: "test", host: "test-master"4863 returns hash with cluster and password4864 rails_env: "production", host: "production-master"4865 returns hash with cluster and password4866 .url4867 withstands mutation4868 when yml file with env variable4869 reads redis url from env variable4870 .version4871 returns a version4872 .with4873 when running on single-threaded runtime4874 instantiates a connection pool with size 54875 when running on multi-threaded runtime4876 instantiates a connection pool with a size based on the concurrency of the worker4877 when there is no config at all4878 can run an empty block4879 #db4880 with old format4881 returns the correct db4882 with new format4883 returns the correct db4884 with cluster-mode4885 returns the correct db4886 #sentinels4887 when sentinels are defined4888 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4889 returns an array of hashes with host and port keys4890 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4891 returns an array of hashes with host and port keys4892 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4893 returns an array of hashes with host and port keys4894 when sentinels are not defined4895 returns nil4896 when cluster is defined4897 returns nil4898 #sentinels?4899 when sentinels are defined4900 returns true4901 when sentinels are not defined4902 is expected to eq nil4903 when cluster is defined4904 returns false4905 #raw_config_hash4906 returns old-style single url config in a hash4907 returns cluster config without url key in a hash4908 #fetch_config4909 raises an exception when the config file contains invalid yaml4910 has a value for the legacy default URL4911 when redis.yml exists4912 uses config/redis.yml4913 when no config file exsits4914 returns nil4915 but resque.yml exists4916 returns the config from resque.yml4917 .config_file_name4918 and there is a global env override4919 is expected to eq "global override"4920 and SharedState has a different config file4921 is expected to eq "fallback config file"4922 #fetch_config4923 when redis.yml exists4924 when the fallback has a redis.yml entry4925 is expected to eq {"fallback redis.yml"=>123}4926 and an instance config file exists4927 is expected to eq {"instance specific file"=>456}4928 and the instance has a redis.yml entry4929 is expected to eq {"instance redis.yml"=>789}4930 when no redis config file exsits4931 returns nil4932 when resque.yml exists4933 returns the config from resque.yml4934Gitlab::Git::ObjectPool4935 #storage4936 equals the pool repository's shard name4937 #create4938 when the pool doesn't exist yet4939 creates the pool4940 when the pool already exists4941 raises an FailedPrecondition4942 #exists?4943 when the object pool doesn't exist4944 returns false4945 when the object pool exists4946 returns true4947 #link4948 when linked for the first time4949 sets a remote4950 when the remote is already set4951 doesn't raise an error4952 #fetch4953 when the object pool repository exists4954 without changes4955 does not raise an error4956 with new commit in source repository4957 fetches objects from the source repository4958MergeRequests::MarkReviewerReviewedService4959 #execute4960 invalid permissions4961 behaves like failed service execution4962 returns an error4963 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4964 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4965 reviewer does not exist4966 behaves like failed service execution4967 returns an error4968 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4969 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4970 reviewer exists4971 returns success4972 updates reviewers state4973 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4974 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:761 namespace612/project993!1>) 1 time4975Gitlab::Diff::DiffRefs4976 #==4977 when shas are missing4978 returns false4979 when shas are equal4980 returns true4981 when shas are unequal4982 returns false4983 when shas are truncated4984 when sha prefixes are too short4985 returns false4986 when sha prefixes are equal4987 returns true4988 when sha prefixes are unequal4989 returns false4990 #compare_in4991 with diff refs for the initial commit4992 returns an appropriate comparison4993 with diff refs for a commit4994 returns an appropriate comparison4995 with diff refs for a comparison through the base4996 returns an appropriate comparison4997 with diff refs for a straight comparison4998 returns an appropriate comparison4999Projects::Operations::UpdateService5000 #execute5001 alerting setting5002 with valid params5003 when regenerate_token is not set5004 with an existing setting5005 ignores provided token5006 without an existing setting5007 behaves like setting creation5008 creates a setting5009 when regenerate_token is set5010 with an existing setting5011 regenerates token5012 without an existing setting5013 behaves like setting creation5014 creates a setting5015 with insufficient permissions5016 behaves like no operation5017 does nothing5018 with empty params5019 behaves like no operation5020 does nothing5021 metrics dashboard setting5022 without existing metrics dashboard setting5023 creates a setting5024 with existing metrics dashboard setting5025 updates the settings5026 with blank external_dashboard_url5027 updates dashboard_timezone5028 error tracking5029 with existing error tracking setting5030 updates the settings5031 disable error tracking5032 can set api_url to nil5033 without an existing error tracking setting5034 creates a setting5035 partial_update5036 with setting5037 service succeeds5038 updates attributes5039 only updates enabled attribute5040 with integrated attribute5041 updates integrated attribute5042 only updates enabled and integrated attributes5043 without setting5044 creates setting with default values5045 with masked param token5046 does not update token5047 with invalid parameters5048 does nothing5049 with inappropriate params5050 ignores params5051 grafana integration5052 without existing grafana integration5053 creates an integration5054 with an existing grafana integration5055 updates the settings5056 with all grafana attributes blank in params5057 destroys the metrics_setting entry in DB5058 prometheus integration5059 prometheus params were passed into service5060WARNING: You're overriding a previous stub implementation of `new`. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.5061 uses Project#find_or_initialize_integration to include instance defined defaults and pass them to Projects::UpdateService5062 when prometheus params are not passed into service5063 does not pass any prometheus params into Projects::UpdateService5064Gitlab::DataBuilder::Pipeline5065 .build5066 has correct attributes5067 build with runner5068 has runner attributes5069 pipeline without variables5070 has empty variables hash5071 pipeline with variables5072 is expected to be a kind of Array5073 is expected to contain exactly {:key=>"TRIGGER_KEY_1", :value=>"TRIGGER_VALUE_1"}5074 when pipeline is a detached merge request pipeline5075 returns a source ref5076 returns merge request5077 when pipeline has retried builds5078 does not contain retried builds in payload5079 contains retried builds if requested5080 build with environment5081 has environment attributes5082 when the pipeline has an upstream5083 in same project5084 behaves like source pipeline attributes5085 has source pipeline attributes5086 in different project5087 is expected not to eq 10495088 behaves like source pipeline attributes5089 has source pipeline attributes5090 avoids N+1 database queries5091 with multiple builds5092 with multiple retried builds5093 .build failed5094 has failure_reason5095Ci::BuildTraceChunks::Fog5096 #available?5097 when object storage is enabled5098 is expected to be truthy5099 when object storage is disabled5100 is expected to be falsy5101 #data5102 when data exists5103 returns the data5104 when data does not exist5105 returns nil5106 #set_data5107 when data exists5108 overwrites data5109 when data does not exist5110 sets new data5111 when S3 server side encryption is enabled5112 creates a file with attributes5113 #append_data5114 appends ASCII data5115 appends UTF-8 data5116 when initial data is UTF-85117 appends ASCII data5118 #delete_data5119 when data exists5120 deletes data5121 when data does not exist5122 does nothing5123 #size5124 when data exists5125 returns data bytesize correctly5126 when data does not exist5127 returns zero5128 #keys5129 returns keys5130 #delete_keys5131 deletes multiple data5132Issues::ResolveDiscussions5133 for resolving discussions5134 #merge_request_for_resolving_discussion5135 finds the merge request5136 only queries for the merge request once5137 #discussions_to_resolve5138 contains a single discussion when matching merge request and discussion are passed5139 contains all discussions when only a merge request is passed5140 contains only unresolved discussions5141 is empty when a discussion and another merge request are passed5142Gitlab::Doctor::Secrets5143 when not ran in a Rake runtime5144 raises an error5145 when encrypted attributes are properly set5146 detects decryptable secrets5147 when attr_encrypted values are not decrypting5148 marks undecryptable values as bad5149 when TokenAuthenticatable values are not decrypting5150 marks undecryptable values as bad5151 when initializers attempt to use encrypted data5152 skips the initializers and detects bad data5153 resets the initializers after the task runs5154 when GrafanaIntegration token is set via private method5155 can access GrafanaIntegration token value5156MergeRequests::UpdateHeadPipelineWorker5157 behaves like subscribes to event5158 consumes the published event5159 behaves like an idempotent worker5160 is labeled as idempotent5161 performs multiple times sequentially without raising an exception5162 when merge requests already exist for this source branch5163 when the head pipeline sha equals merge request sha5164 updates head pipeline of each merge request5165 when the merge request is not open5166 only updates the open merge requests5167 when the head pipeline sha does not equal merge request sha5168 does not update the head piepeline of MRs5169 when there is no pipeline for source branch5170 does not update merge request head pipeline5171 when merge request target project is different from source project5172 updates head pipeline for merge request5173 when the pipeline is not the latest for the branch5174 does not update merge request head pipeline5175 when pipeline has errors5176 updates merge request head pipeline reference5177SnippetBlobPresenter5178 #rich_data5179 with PersonalSnippet5180 when blob is binary5181 returns the HTML associated with the binary5182 with markdown format5183 returns rich markdown content5184 with notebook format5185 returns rich notebook content5186 with openapi format5187 returns rich openapi content5188 with svg format5189 returns rich svg content5190 with other format5191 does not return no rich content5192 route helpers5193 #raw_path5194 behaves like snippet blob raw path5195 for PersonalSnippets5196 returns the raw personal snippet blob path5197 for ProjectSnippets5198 returns the raw project snippet blob path5199 with a snippet without a repository5200 with ProjectSnippet5201 returns the raw project snippet path5202 with PersonalSnippet5203 returns the raw personal snippet path5204 #raw_plain_data5205 with a plain file5206 shows raw data for non binary files5207 with a binary file5208 returns nil5209 #raw_url5210 behaves like snippet blob raw url5211 for PersonalSnippets5212 returns the raw personal snippet blob url5213 for ProjectSnippets5214 returns the raw project snippet blob url5215 with a snippet without a repository5216 with ProjectSnippet5217 returns the raw project snippet url5218 with PersonalSnippet5219 returns the raw personal snippet url5220Gitlab::DeployKeyAccess5221 #can_create_tag?5222 when no-one can create tag5223 returns false5224 when deploy_key_for_protected_tags FF is disabled5225 allows to push the tag5226 push tag that matches a protected tag pattern via a deploy key5227 allows to push the tag5228 #can_push_for_ref?5229 push to a protected branch of this project via a deploy key5230 when the project has active deploy key owned by this user5231 returns true5232 when the project has active deploy keys, but not by this user5233 returns false5234 when there is another branch no one can push to5235 returns false when trying to push to that other branch5236 and the deploy key added for the first protected branch is also added for this other branch5237 returns true for both protected branches5238Ci::Variable5239 behaves like CI variable5240 is expected to includes the Ci::HasVariable module5241 strips whitespaces when assigning key5242 can convert to runner variable5243 variable type5244 defines variable types5245 defaults variable type to env_var5246 supports variable type file5247 behaves like includes Limitable concern5248 #exceeds_limits?5249 without plan limits configured5250 is expected to eq false5251 without plan limits configured5252 is expected to eq false5253 with an existing model5254 is expected to eq true5255 validations5256 is expected to be a kind of Limitable5257 without plan limits configured5258 can create new models5259 with plan limits configured5260 can create new models5261 with an existing model5262 cannot create new models exceeding the plan limits5263 validations5264 is expected to includes the Presentable module5265 is expected to includes the Ci::Maskable module5266 is expected to includes the HasEnvironmentScope module5267 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure5268 .by_environment_scope5269 is expected to contain exactly #<Ci::Variable id: 6, key: [FILTERED], value: nil, encrypted_value: "pLN00vZsyFnjIJnME3YiTw==\n", enc...tected: false, environment_scope: "production", masked: false, variable_type: "env_var", raw: false>5270 .unprotected5271 when variable is protected5272 returns nothing5273 when variable is not protected5274 returns the variable5275 loose foreign key on ci_variables.project_id5276 behaves like cleanup by a loose foreign key5277 cleans up (delete or nullify) the model5278 #audit_details5279 equals to the variable's key5280layouts/nav/sidebar/_admin5281 on home page5282 behaves like page has active tab5283 activates Overview tab5284 behaves like has nav sidebar5285 has collapsed nav sidebar on mobile5286 on projects5287 behaves like page has active tab5288 activates Overview tab5289 behaves like page has active sub tab5290 activates Projects sub tab5291 on groups5292 behaves like page has active tab5293 activates Overview tab5294 behaves like page has active sub tab5295 activates Groups sub tab5296 on users5297 behaves like page has active tab5298 activates Overview tab5299 behaves like page has active sub tab5300 activates Users sub tab5301 on topics5302 behaves like page has active tab5303 activates Overview tab5304 behaves like page has active sub tab5305 activates Topics sub tab5306 on runners5307 behaves like page has active tab5308 activates CI/CD tab5309 behaves like page has active sub tab5310 activates Runners sub tab5311 on jobs5312 behaves like page has active tab5313 activates CI/CD tab5314 behaves like page has active sub tab5315 activates Jobs sub tab5316 on messages5317 behaves like page has active tab5318 activates Messages tab5319 on analytics5320 behaves like page has active tab5321 activates Analytics tab5322 on hooks5323 behaves like page has active tab5324 activates Hooks tab5325 on background jobs5326 behaves like page has active tab5327 activates Monitoring tab5328 behaves like page has active sub tab5329 activates Background Jobs sub tab5330 on settings5331 includes General link5332 when GitLab.com5333 does not include Integrations link5334 when not GitLab.com5335 includes Integrations link5336 when GitLab FOSS5337 does not include Templates link5338CustomerRelations::IssueContact5339 is expected to be valid5340 associations5341 is expected to belong to issue required: true5342 is expected to belong to contact required: true5343 factory5344 for root groups5345 uses objects from the same group5346 for subgroups5347 builds using the root ancestor5348 validation5349 fails when the contact group is unrelated to the issue group5350 succeeds when the contact belongs to a root group and is the same as the issue group5351 succeeds when the contact belongs to a root group and it is an ancestor of the issue group5352 #self.find_contact_ids_by_emails5353 returns ids of contacts from issue5354 does not return ids of contacts from other issues5355 raises ArgumentError when called with too many emails5356 .delete_for_project5357 destroys all issue_contacts for project5358 .delete_for_group5359 destroys all issue_contacts for projects in group and subgroups5360Gitlab::QuickActions::Extractor5361 #extract_commands5362 extracts command with multiple arguments and various prefixes5363 extracts command case insensitive5364 does not extract noop commands5365 extracts and performs substitution commands5366 extracts and performs substitution commands5367 extracts and performs multiple substitution commands5368 does not extract substitution command in inline code5369 extracts and performs substitution commands case insensitive5370 extracts and performs substitution commands with comments5371 extracts multiple commands5372 does not alter original content if no command is found5373 does not get confused if command comes before an inline code5374 does not get confused if command comes before a blockcode5375 does not extract commands inside a blockcode5376 does not extract commands inside a blockquote5377 does not extract commands inside a HTML tag5378 does not extract commands in multiline inline code on seperated rows5379 does not extract commands in multiline inline code starting from text5380 does not extract commands in inline code5381 limits to passed commands when they are passed5382 fails fast for strings with many newlines5383 command with no argument5384 at the start of content5385 behaves like command with no argument5386 extracts command5387 in the middle of content5388 behaves like command with no argument5389 extracts command5390 in the middle of a line5391 does not extract command5392 at the end of content5393 behaves like command with no argument5394 extracts command5395 command with a single argument5396 at the start of content5397 allows slash in command arguments5398 behaves like command with a single argument5399 extracts command5400 in the middle of content5401 behaves like command with a single argument5402 extracts command5403 in the middle of a line5404 does not extract command5405 at the end of content5406 behaves like command with a single argument5407 extracts command5408 when argument is not separated with a space5409 does not extract command5410 command with multiple arguments5411 at the start of content5412 behaves like command with multiple arguments5413 extracts command5414 in the middle of content5415 behaves like command with multiple arguments5416 extracts command5417 in the middle of a line5418 does not extract command5419 at the end of content5420 behaves like command with multiple arguments5421 extracts command5422 when argument is not separated with a space5423 does not extract command5424 #redact_commands5425 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"5426 encloses quick actions with code span markdown5427 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"5428 encloses quick actions with code span markdown5429 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"5430 encloses quick actions with code span markdown5431 text: "/reopen\nworld", expected: "`/reopen`\nworld"5432 encloses quick actions with code span markdown5433 text: "hello\n/open", expected: "hello\n`/open`"5434 encloses quick actions with code span markdown5435AlertManagement::HttpIntegration5436 associations5437 is expected to belong to project required: false5438 default values5439 is expected to be present5440 is expected to eq "test"5441 validations5442 is expected to validate that :project cannot be empty/falsy5443 is expected to validate that :name cannot be empty/falsy5444 is expected to validate that the length of :name is at most 2555445 when active5446 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5447 when inactive5448 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5449 payload_attribute_mapping5450 with valid JSON schema5451 is expected to be valid5452 with invalid JSON schema5453 when property is not an object5454 behaves like is invalid record5455 is expected to eq ["must be a valid json schema"]5456 when property missing required attributes5457 behaves like is invalid record5458 is expected to eq ["must be a valid json schema"]5459 when property has extra attributes5460 behaves like is invalid record5461 is expected to eq ["must be a valid json schema"]5462 before validation5463 #ensure_payload_example_not_nil5464 when the payload_example is nil5465 sets the payload_example to empty JSON5466 when the payload_example is not nil5467 sets the payload_example to specified value5468 #token5469 when unsaved5470 when assigned5471 is expected not to eq "random_token"5472 behaves like valid token5473 is expected to match /\A\h{32}\z/5474 when persisted5475 behaves like valid token5476 is expected to match /\A\h{32}\z/5477 when resetting5478 is expected not to eq "022aa6f95095aa3afdf0727fcc88ebd1"5479 behaves like valid token5480 is expected to match /\A\h{32}\z/5481 when reassigning5482 is expected to eq "565b6eb2b4fb8f3f3e01dfb5b17cac4f"5483 behaves like valid token5484 is expected to match /\A\h{32}\z/5485 #endpoint_identifier5486 when defined on initialize5487 is expected to match /\A\h{16}\z/5488 when included in initialization args5489 is expected to eq "legacy"5490 when reassigning5491 does not allow reassignment5492 #url5493 is expected to eq "http://localhost/namespace702/project1085/alerts/notify/datadog/662a58e9.json"5494 when name is not defined5495 is expected to eq "http://localhost/namespace681/project1064/alerts/notify/http-endpoint/89718ffea548b27b.json"5496 for a legacy integration5497 is expected to eq "http://localhost/namespace703/project1086/alerts/notify.json"5498FinderWithGroupHierarchy5499 when specifying group5500 returns only the group by default5501 when specifying group_id5502 returns only the group by default5503 when including items from group ancestors5504 returns group and its ancestors5505 ignores groups which user can not read5506 returns them all when skip_authorization is true5507 when including items from group descendants5508 returns items from group and its descendants5509 ignores items from groups which user can not read5510 returns them all when skip_authorization is true5511 with N+1 query check5512 does not produce N+1 query5513 when preload_max_access_levels_for_labels_finder is disabled5514 when specifying group5515 returns only the group by default5516 when specifying group_id5517 returns only the group by default5518 when including items from group ancestors5519 returns group and its ancestors5520 ignores groups which user can not read5521 returns them all when skip_authorization is true5522 when including items from group descendants5523 returns items from group and its descendants5524 ignores items from groups which user can not read5525 returns them all when skip_authorization is true5526NotificationRecipients::Builder::Default5527 #build!5528 participants and project watchers5529 adds all participants and watchers5530 subscribers5531 adds all subscribers5532 custom notifications5533 behaves like custom notification recipients5534 with project custom notification setting5535 adds the user to the recipients5536 with the project custom notification setting in another project5537 does not add the user to the recipients5538 with group custom notification setting5539 adds the user to the recipients5540 with the group custom notification setting in another group5541 does not add the user to the recipients5542 with project global custom notification setting5543 with global custom notification setting5544 adds the user to the recipients5545 without global custom notification setting5546 does not add the user to the recipients5547 with group global custom notification setting5548 with global custom notification setting5549 adds the user to the recipients5550 without global custom notification setting5551 does not add the user to the recipients5552 with group custom notification setting in deeply nested parent group5553 adds the user to the recipients5554 without a project or group5555 does not add the user to the recipients5556Ci::DagJobEntity5557 #as_json5558 contains the name5559 behaves like matches schema5560 matches schema5561 when job is stage scheduled5562 contains the name scheduling_type5563 does not expose needs5564 behaves like matches schema5565 matches schema5566 when job is dag scheduled5567 contains the name scheduling_type5568 behaves like matches schema5569 matches schema5570 when job has needs5571 exposes the array of needs5572 behaves like matches schema5573 matches schema5574 when job has empty needs5575 exposes an empty array of needs5576 behaves like matches schema5577 matches schema5578Uploads::Fog5579 #available?5580 when object storage is enabled5581 is expected to be truthy5582 when object storage is disabled5583[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5584 is expected to be falsy5585 model with uploads5586 Fog provider acceptance tests5587 with AWS provider5588 behaves like Fog provider5589 #get_object5590[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5591 returns a Hash with a body5592 #delete_object5593[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5594 returns true5595 with Google provider5596 behaves like Fog provider5597 #get_object5598 returns a Hash with a body5599 #delete_object5600 returns true5601 with AzureRM provider5602 behaves like Fog provider5603 #get_object5604 returns a Hash with a body5605 #delete_object5606 returns true5607 #keys5608[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5609 returns keys5610 #delete_keys5611[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5612 deletes multiple data5613 with bucket prefix5614[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5615 deletes multiple data5616 when one of keys is missing5617[fog][WARNING] Your region 'eu-central-1' does not match the default region 'us-east-1'5618 deletes only existing keys5619Groups::AcceptingGroupTransfersFinder5620 # order random5621 #execute5622 when the user does not have the rights to transfer the group5623 returns empty result5624 when the user has the rights to transfer the group5625 does not return empty result5626 excludes the descendants of the group to be transferred5627 excludes the immediate parent of the group to be transferred5628 excludes the groups where the user does not have OWNER access5629 excludes the groups arising from group shares where the user does not have OWNER access5630 includes ancestors, except immediate parent of the group to be transferred5631 includes the other groups where the user has OWNER access5632 includes the other groups where the user has OWNER access through inherited membership5633 includes the groups where the user has OWNER access through group shares5634 on searching with a specific term5635 includes only the groups where the term matches the group name or path5636Crm::ContactsFinder5637 #execute5638 when customer relations feature is enabled for the group5639 when user does not have permissions to see contacts in the group5640 returns an empty array5641 when user is member of the root group5642 when feature flag is enabled5643 returns all group contacts5644 when user is member of the sub group5645 returns an empty array5646 when customer relations feature is disabled for the group5647 returns an empty array5648 with search informations5649 when search term is empty5650 returns all group contacts alphabetically ordered5651 when search term is not empty5652 searches for first name ignoring casing5653 searches for last name ignoring casing5654 searches for email5655 searches for description ignoring casing5656 fuzzy searches for email and last name5657 when searching for contacts state5658 returns only inactive contacts5659 returns only active contacts5660 when searching for contacts ids5661 returns the expected contacts5662 when sorting5663 returns the contacts sorted by email in ascending order5664 returns the contacts sorted by description in ascending order5665 returns the contacts sorted by organization in ascending order5666 .counts_by_state5667 returns correct counts5668Gitlab::Instrumentation::RedisClusterValidator5669 .validate5670 command: :rename, arguments: ["foo", "bar"], keys: 2, is_valid: false5671 is expected to eq 25672 command: :RENAME, arguments: ["foo", "bar"], keys: 2, is_valid: false5673 is expected to eq 25674 command: "rename", arguments: ["foo", "bar"], keys: 2, is_valid: false5675 is expected to eq 25676 command: "RENAME", arguments: ["foo", "bar"], keys: 2, is_valid: false5677 is expected to eq 25678 command: :rename, arguments: ["iaa", "ahy"], keys: 2, is_valid: true5679 is expected to eq 25680 command: :rename, arguments: ["{foo}:1", "{foo}:2"], keys: 2, is_valid: true5681 is expected to eq 25682 command: :rename, arguments: ["foo", "foo", "bar"], keys: 2, is_valid: true5683 is expected to eq 25684 command: :mget, arguments: ["foo", "bar"], keys: 2, is_valid: false5685 is expected to eq 25686 command: :mget, arguments: ["foo", "foo", "bar"], keys: 3, is_valid: false5687 is expected to eq 35688 command: :mget, arguments: ["foo", "foo"], keys: 2, is_valid: true5689 is expected to eq 25690 command: :blpop, arguments: ["foo", "bar", "1"], keys: 2, is_valid: false5691 is expected to eq 25692 command: :blpop, arguments: ["foo", "foo", "1"], keys: 2, is_valid: true5693 is expected to eq 25694 command: :mset, arguments: ["foo", "a", "bar", "a"], keys: 2, is_valid: false5695 is expected to eq 25696 command: :mset, arguments: ["foo", "a", "foo", "a"], keys: 2, is_valid: true5697 is expected to eq 25698 command: :del, arguments: ["foo", "bar"], keys: 2, is_valid: false5699 is expected to eq 25700 command: :del, arguments: [["foo", "bar"]], keys: 2, is_valid: false5701 is expected to eq 25702 command: :del, arguments: ["foo", "foo"], keys: 2, is_valid: true5703 is expected to eq 25704 command: :hset, arguments: ["foo", "bar"], keys: 1, is_valid: nil5705 is expected to eq nil5706 command: :get, arguments: ["foo"], keys: 1, is_valid: nil5707 is expected to eq nil5708 command: :mget, arguments: [], keys: 0, is_valid: true5709 is expected to eq 05710 arguments: [[:get, "foo"], [:get, "bar"]], should_raise: true, output: {:valid=>false, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5711 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>false}5712 arguments: [[:get, "foo"], [:mget, "foo", "bar"]], should_raise: true, output: {:valid=>false, :key_count=>3, :command_name=>"PIPELINE/MULTI", :allowed=>false}5713 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>3, :valid=>false}5714 arguments: [[:get, "{foo}:name"], [:get, "{foo}:profile"]], should_raise: false, output: {:valid=>true, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5715 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>true}5716 arguments: [[:del, "foo"], [:del, "bar"]], should_raise: true, output: {:valid=>false, :key_count=>2, :command_name=>"PIPELINE/MULTI", :allowed=>false}5717 is expected to eq {:allowed=>false, :command_name=>"PIPELINE/MULTI", :key_count=>2, :valid=>false}5718 arguments: [], should_raise: false, output: nil5719 is expected to eq nil5720 .allow_cross_slot_commands5721 skips validation for allowed commands5722 allows nested invocation5723Integrations::EmailsOnPush5724 Validations5725 when integration is active5726 is expected to validate that :recipients cannot be empty/falsy5727 when integration is inactive5728 is expected not to validate that :recipients cannot be empty/falsy5729 validates number of recipients5730 valid number of recipients5731 does not count duplicates and invalid emails5732 invalid number of recipients5733 is expected not to be valid5734 adds an error message5735 when integration is not active5736 is expected to be valid5737 .new5738 when properties is missing branches_to_be_notified5739 sets the default value to all5740 when branches_to_be_notified is already set5741 does not overwrite it with the default value5742 .valid_recipients5743 removes invalid email addresses and removes duplicates by keeping the original capitalization5744 #execute5745 when emails are disabled on the project5746 does not send emails5747 when emails are enabled on the project5748 pushing to a random branch and notification configured for all branches5749 sends email5750 pushing to the default branch and notification configured for all branches5751 sends email5752 pushing to a protected branch and notification configured for all branches5753 sends email5754 pushing to a random branch and notification configured for default branch only5755 does not send email5756 pushing to the default branch and notification configured for default branch only5757 sends email5758 pushing to a protected branch and notification configured for default branch only5759 does not send email5760 pushing to a random branch and notification configured for protected branches only5761 does not send email5762 pushing to the default branch and notification configured for protected branches only5763 does not send email5764 pushing to a protected branch and notification configured for protected branches only5765 sends email5766 pushing to a random branch and notification configured for default and protected branches only5767 does not send email5768 pushing to the default branch and notification configured for default and protected branches only5769 sends email5770 pushing to a protected branch and notification configured for default and protected branches only5771 sends email5772Gitlab::Git::Push5773 #branch_name5774 when it is a branch push5775 returns branch name5776 when it is a tag push5777 returns nil5778 #branch_push?5779 when pushing a branch ref5780 is expected to be branch push5781 when it is a tag push5782 is expected not to be branch push5783 #branch_updated?5784 when it is a branch push with correct old and new revisions5785 is expected to be branch updated5786 when it is not a branch push5787 is expected not to be branch updated5788 when old revision is blank5789 is expected not to be branch updated5790 when it is not a branch push5791 is expected not to be branch updated5792 when oldrev is nil5793 is expected not to be branch updated5794 #force_push?5795 when old revision is an ancestor of the new revision5796 is expected not to be force push5797 when old revision is not an ancestor of the new revision5798 is expected to be force push5799 when called mulitiple times5800 does not make make multiple calls to the force push check5801 #branch_added?5802 when old revision is defined5803 is expected not to be branch added5804 when old revision is not defined5805 is expected to be branch added5806 #branch_removed?5807 when new revision is defined5808 is expected not to be branch removed5809 when new revision is not defined5810 is expected to be branch removed5811 #modified_paths5812 when a push is a branch update5813 returns modified paths5814 when a push is not a branch update5815 raises an error5816 #oldrev5817 when a valid oldrev is provided5818 returns oldrev5819 when a nil valud is provided5820 returns blank SHA5821 #newrev5822 when valid newrev is provided5823 returns newrev5824 when a nil valud is provided5825 returns blank SHA5826Tooling::Mappings::ViewToJsMappings5827 # order random5828 #filter_files5829 when no files were changed5830 returns an empty array5831 when no view files were changed5832 returns an empty array5833 when view files were changed5834 returns the path to the view files5835 when view files are deleted5836 returns an empty array5837 #find_pattern_in_file5838 when the file contains the pattern5839 returns the pattern once5840 when the file does not contain the pattern5841 returns an empty array5842 #find_partials5843 when the file includes a partial5844 when the partial is in the same folder as the view file5845 returns the partial file path5846 when the partial is in a subfolder5847 returns the partials file path5848 when the file does not include a partial5849 returns an empty array5850 #execute5851 when no view files have been changed5852 does not change the output file5853 when some view files have been changed5854 when they do not contain the HTML attribute value we search for5855 does not change the output file5856 when they contain the HTML attribute value we search for5857 when no matching JS files are found5858 does not change the output file5859 when some matching JS files are found5860 adds the matching JS files to the output5861 when rails partials are included in the file5862 scans those partials for the HTML attribute value5863Gitlab::Ci::Ansi2json5864 lines5865 prints non-ansi as-is5866 recognizes color changing ANSI sequences5867 recognizes color changing ANSI sequences across multiple lines5868 recognizes background and foreground colors5869 recognizes style changes within the same line5870 new lines5871 adds new line when encountering \n5872 adds new line when encountering \r\n5873 ignores empty newlines5874 replace the current line when encountering \r5875 with section markers5876 marks the first line of the section as header5877 does not marks the other lines of the section as header5878 marks the last line of the section as footer5879 marks the first line as header and footer if is the only line in the section5880 does not add sections attribute to lines after the section is closed5881 ignores section_end marker if no section_start exists5882 prints HTML tags as is5883 when section name contains .-_ and capital letters5884 sanitizes the section name5885 when section name includes $5886 ignores the section5887 when section name includes <5888 ignores the section5889 with nested section5890 adds multiple sections to the lines inside the nested section5891 adds multiple sections to the lines inside the nested section and closes all sections together5892 with section options5893 provides section options when set5894 incremental updates5895 with split word5896 returns the full line5897 with split word on second line5898 returns all lines since last partially processed line5899 with split sequence across multiple lines5900 returns the line since last partially processed line5901 with split partial sequence5902 returns the line since last partially processed line5903 with split new line5904 returns a blank line and the next line5905 with split section5906 with split section body5907 returns the full line5908 with split section where header is also split5909 returns the full line5910 with split section end5911 returns the full line5912 trucates5913 returns truncated output5914 does not append output5915Gitlab::X509::Certificate5916 testing environment setup5917 generate_root5918 generates a root CA that expires a long way in the future5919 generate_intermediate5920 generates an intermediate CA that expires a long way in the future5921 generates an intermediate CA properly signed by the root CA5922 generate_cert5923 generates a cert properly signed by the intermediate CA5924 generates a cert that expires soon5925 generates a cert intended for email signing5926 passing in INFINITE_EXPIRY5927 generates a cert that expires a long way in the future5928 .from_strings5929 parses correctly a certificate and key5930 .from_files5931 parses correctly a certificate and key5932 with optional ca_certs5933 parses correctly certificate, key and ca_certs5934 with no intermediate CA5935 parses correctly a certificate and key5936 .default_cert_dir5937 when SSL_CERT_DIR env variable is not set5938 returns default directory from OpenSSL5939 when SSL_CERT_DIR env variable is set5940 returns specified directory5941 .default_cert_file5942 when SSL_CERT_FILE env variable is not set5943 returns default file from OpenSSL5944 when SSL_CERT_FILE env variable is set5945 returns specified file5946 .ca_certs_paths5947 returns all files specified by OpenSSL defaults5948 .ca_certs_bundle5949 skips certificates if OpenSSLError is raised and report it5950 returns a list certificates as strings5951 .load_ca_certs_bundle5952 loads a PEM-encoded certificate bundle into an OpenSSL::X509::Certificate array5953JoinedGroupsFinder5954 #execute5955 without a user5956 only shows public groups from profile owner5957 with a user5958 when the profile visitor is in the private group5959 only shows groups where both users are authorized to see5960 if profile visitor is in one of the private group projects5961 shows group5962 external users5963 if not a member5964 does not show internal groups5965 if authorized5966 shows internal groups if authorized5967Packages::Composer::CacheUploader5968 behaves like builds correct paths5969 #store_dir5970 behaves like matches the method pattern5971 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/5972 #cache_dir5973 behaves like matches the method pattern5974 is expected to match /\/packages\/tmp\/cache/5975 #work_dir5976 behaves like matches the method pattern5977 is expected to match /\/packages\/tmp\/work/5978 #upload_path5979 behaves like matches the method pattern5980 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5981 #relative_path5982 is relative (PENDING: Path not set, skipping.)5983 .absolute_path5984 behaves like matches the method pattern5985 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5986 .base_dir5987 behaves like matches the method pattern5988 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5989 path traversal exploits5990 throws an exception5991 object store is remote5992 behaves like builds correct paths5993 #store_dir5994 behaves like matches the method pattern5995 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/5996 #cache_dir5997 behaves like matches the method pattern5998 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5999 #work_dir6000 behaves like matches the method pattern6001 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6002 #upload_path6003 behaves like matches the method pattern6004 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6005 #relative_path6006 is relative (PENDING: Path not set, skipping.)6007 .absolute_path6008 behaves like matches the method pattern6009 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6010 .base_dir6011 behaves like matches the method pattern6012 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6013 path traversal exploits6014 throws an exception6015 remote file6016 with object storage enabled6017 can store file remotely6018Gitlab::JwtAuthenticatable6019 .secret6020 behaves like reading secret from the secret path6021 returns 32 bytes6022 accepts a trailing newline6023 raises an exception if the secret file cannot be read6024 raises an exception if the secret file contains the wrong number of bytes6025 .read_secret6026 behaves like reading secret from the secret path6027 returns 32 bytes6028 accepts a trailing newline6029 raises an exception if the secret file cannot be read6030 raises an exception if the secret file contains the wrong number of bytes6031 .write_secret6032 without an input6033 uses mode 06006034 writes base64 data6035 with an input6036 uses mode 06006037 writes base64 data6038 .decode_jwt6039 use included class secret6040 accepts a correct header6041 raises an error when the JWT is not signed6042 raises an error when the header is signed with the wrong secret6043 use an input secret6044 accepts a correct header6045 raises an error when the JWT is not signed6046 raises an error when the header is signed with the wrong secret6047 issuer option6048 returns decoded payload if issuer is correct6049 raises an error when the issuer is incorrect6050 iat_after option6051 returns decoded payload if iat is valid6052 raises an error if iat is invalid6053 raises an error if iat is absent6054 raises an error if iat is too far in the past6055NamespaceStatistics6056 is expected to belong to namespace required: false6057 is expected to validate that :namespace cannot be empty/falsy6058 #refresh!6059 when database is read_only6060 does not save the object6061 when namespace belong to a user6062 does not save the object6063 when invalid option is passed6064 does not update any column6065 behaves like creates the namespace statistics6066 is expected to receive save!(*(any args)) 1 time6067 when no option is passed6068 updates the dependency proxy size6069 behaves like creates the namespace statistics6070 is expected to receive save!(*(any args)) 1 time6071 when dependency_proxy_size option is passed6072 updates the dependency proxy size6073 behaves like creates the namespace statistics6074 is expected to receive save!(*(any args)) 1 time6075 #update_storage_size6076 sets storage_size to the dependency_proxy_size6077 #update_dependency_proxy_size6078 updates the dependency proxy size6079 when namespace does not belong to a group6080 does not update the dependency proxy size6081 before saving statistics6082 updates storage size6083 after saving statistics6084 when storage_size is not updated6085 does not enqueue the job to update root storage statistics6086 when storage_size is updated6087 enqueues the job to update root storage statistics6088 when namespace does not belong to a group6089 does not enqueue the job to update root storage statistics6090 when other columns are updated6091 does not enqueue the job to update root storage statistics6092 after destroy statistics6093 enqueues the job to update root storage statistics6094 when namespace belongs to a group6095 does not enqueue the job to update root storage statistics6096Mutations::AlertManagement::CreateAlertIssue6097 is expected to require graphql authorizations :update_alert_management_alert6098 #resolve6099 user has access to project6100 when CreateAlertIssueService responds with success6101 returns the issue with no errors6102 behaves like an incident management tracked event6103 .track_event6104 tracks the event using redis6105 behaves like an incident management tracked event6106 .track_event6107 tracks the event using redis6108 behaves like Snowplow event tracking with RedisHLL context6109 behaves like Snowplow event tracking6110 is emitted6111 when CreateAlertIssue responds with an error6112 returns errors6113 behaves like Snowplow event tracking with RedisHLL context6114 behaves like Snowplow event tracking6115 is emitted6116 when resource is not accessible to the user6117 raises an error if the resource is not accessible to the user6118Gitlab::Analytics::CycleAnalytics::StageEvents::IssueDeployedToProduction6119 behaves like value stream analytics event6120 is expected to be a kind of String6121 is expected to be a kind of Symbol6122 is expected to include ApplicationRecord(abstract)6123 is expected to respond to #timestamp_projection6124 is expected to respond to #html_description6125 is expected to be a kind of Array6126 #apply_query_customization6127 expects an ActiveRecord::Relation object as argument and returns a modified version of it6128 #hash_code6129 returns a hash that uniquely identifies an event6130 does not differ when the same object is built with the same params6131 behaves like LEFT JOIN-able value stream analytics event6132 can use the event as LEFT JOIN6133 when looking at the record with data6134 contains the timestamp expression6135 when looking at the record without data6136 returns nil for the timestamp expression6137Gitlab::InstrumentationHelper6138 .add_instrumentation_data6139 includes DB counts6140 logs cpu_s duration6141 logs the process ID6142 logs the worker ID6143 includes DB counts6144 when Gitaly calls are made6145 adds Gitaly and Redis data6146 when Redis calls are made6147 adds Redis data and omits Gitaly data6148 when LDAP requests are made6149 adds LDAP data6150 when the request matched a Rack::Attack safelist6151 logs the safelist name6152 rate-limiting gates6153 when the request did not pass through any rate-limiting gates6154 logs an empty array of gates6155 when the request passed through rate-limiting gates6156 logs an array of gates used6157 when logging memory allocations6158 logs memory usage metrics6159 when replica caught up search was made6160 includes related metrics6161 when only a single counter was updated6162 includes only that counter into logging6163 when there is an uploaded file6164 adds upload data6165 when an api call to the search api is made6166 adds search data6167Packages::Nuget::Metadatum6168 relationships6169 is expected to belong to package required: false inverse_of => nuget_metadatum6170 validations6171 is expected to validate that :package cannot be empty/falsy6172 #license_url6173 is expected to allow :license_url to be ‹"http://sandbox.com"›6174 is expected to allow :license_url to be ‹"https://sandbox.com"›6175 is expected not to allow :license_url to be ‹"123"›6176 is expected not to allow :license_url to be ‹"sandbox.com"›6177 #ensure_at_least_one_field_supplied6178 rejects unfilled metadatum6179 #ensure_nuget_package_type6180 rejects if not linked to a nuget package6181 #project_url6182 is expected to allow :project_url to be ‹"http://sandbox.com"›6183 is expected to allow :project_url to be ‹"https://sandbox.com"›6184 is expected not to allow :project_url to be ‹"123"›6185 is expected not to allow :project_url to be ‹"sandbox.com"›6186 #ensure_at_least_one_field_supplied6187 rejects unfilled metadatum6188 #ensure_nuget_package_type6189 rejects if not linked to a nuget package6190 #icon_url6191 is expected to allow :icon_url to be ‹"http://sandbox.com"›6192 is expected to allow :icon_url to be ‹"https://sandbox.com"›6193 is expected not to allow :icon_url to be ‹"123"›6194 is expected not to allow :icon_url to be ‹"sandbox.com"›6195 #ensure_at_least_one_field_supplied6196 rejects unfilled metadatum6197 #ensure_nuget_package_type6198 rejects if not linked to a nuget package6199BulkImports::Common::Pipelines::MilestonesPipeline6200 group milestone6201 behaves like bulk_imports milestones pipeline6202 #run6203 imports milestones into destination6204 #load6205 when milestone is not persisted6206 saves the milestone6207 when milestone is missing6208 returns6209 project milestone6210 behaves like bulk_imports milestones pipeline6211 imports events6212 #run6213 imports milestones into destination6214 #load6215 when milestone is not persisted6216 saves the milestone6217 when milestone is missing6218 returns6219Ci::CreatePipelineService6220 #execute6221 when source is a dangling build6222 parameter config content6223 creates a pipeline6224 creates builds with the correct names6225 creates stages with the correct names6226 sets the correct config source6227BulkImports::ExportRequestWorker6228 #perform6229 when entity is group6230 behaves like requests relations export for api resource6231 behaves like an idempotent worker6232 is labeled as idempotent6233 performs multiple times sequentially without raising an exception6234 requests relations export & schedules entity worker6235 when source id is nil6236 updates entity source id & requests export using source id6237 when something goes wrong during source id fetch6238 logs the error & requests relations export using full path url6239 when entity is project6240 behaves like requests relations export for api resource6241 behaves like an idempotent worker6242 is labeled as idempotent6243 performs multiple times sequentially without raising an exception6244 requests relations export & schedules entity worker6245 when source id is nil6246 updates entity source id & requests export using source id6247 when something goes wrong during source id fetch6248 logs the error & requests relations export using full path url6249 #sidekiq_retries_exhausted6250 logs export failure and marks entity as failed6251Gitlab::Ci::Reports::TestReportsComparer6252 #suite_comparers6253 when head and base reports include two test suites6254 returns test suite comparers with specified values6255 #total_status6256 when all tests cases are success in head suites6257 returns the total status6258 when there is a failed test case in head suites6259 returns the total status in head suite6260 when there is an error test case in head suites6261 returns the total status in head suite6262 #total_count6263 returns the total test counts in head suites6264 #resolved_count6265 when there is a resolved failure test case in head suites6266 returns the correct count6267 when there is a resolved error test case in head suites6268 returns the correct count6269 when there are no resolved test cases in head suites6270 returns the correct count6271 #failed_count6272 when there is a failed test case in head suites6273 returns the correct count6274 when there are no failed test cases in head suites6275 returns the correct count6276 #error_count6277 when there is an error test case in head suites6278 returns the correct count6279 when there are no error test cases in head suites6280 returns the correct count6281Resolvers::BaseResolver6282 .singular_type6283 for a connection of scalars6284 is expected to eq GraphQL::Types::Int6285 for a connection of objects6286 is expected to eq #<Class:0x00007f66aaa19cb8>6287 for a list type6288 is expected to eq GraphQL::Types::String6289 for a scalar type6290 is expected to eq GraphQL::Types::Boolean6291 .single6292 returns a subclass from the resolver6293 has the correct (singular) type6294 returns the same subclass every time6295 returns a resolver that gives the first result from the original resolver6296 .when_single6297 does not apply the block to the resolver6298 applies the block to the single version of the resolver6299 multiple when_single blocks6300 applies both blocks to the single version of the resolver6301 inheritance6302 applies both blocks to the single version of the resolver6303 when the resolver returns early6304 runs correctly in our test framework6305 single selects the first early return value6306 last selects the last early return value6307 .last6308 returns a subclass from the resolver6309 returns the same subclass every time6310 returns a resolver that gives the last result from the original resolver6311 when field is a connection6312 increases complexity based on arguments6313 does not increase complexity when filtering by iids6314 #object6315 returns object6316 when object is a presenter6317 returns presented object6318 #offset_pagination6319 is sugar for OffsetPaginatedRelation.new6320gitlab:background_migrations namespace rake tasks6321 finalize6322 without the proper arguments6323 exits without finalizing the migration6324 with the proper arguments6325 finalizes the matching migration6326 with a null parameter6327 finalizes the matching migration6328 when multiple database feature is enabled6329 ignores geo (PENDING: Skipping because ci is shared or doesn't not exist)6330 without the proper arguments6331 exits without finalizing the migration (PENDING: Skipping because ci is shared or doesn't not exist)6332 with the proper arguments6333 finalizes the matching migration (PENDING: Skipping because ci is shared or doesn't not exist)6334 when database name is not passed6335 aborts the rake task (PENDING: Skipping because ci is shared or doesn't not exist)6336 status6337 outputs the status of background migrations6338 when running the rake task against one database in multiple databases setup6339 outputs the status of background migrations (PENDING: Skipping because ci is shared or doesn't not exist)6340 when multiple databases are configured6341 with two connections sharing the same database6342 skips the shared database6343 ignores geo6344 with multiple databases6345 outputs the status for each database (PENDING: Skipping because ci is shared or doesn't not exist)6346ProjectCiCdSetting6347 validations6348 validates default_git_depth is between 0 and 1000 or nil6349 #forward_deployment_enabled6350 is true by default6351 #separated_caches6352 is true by default6353 #default_for_inbound_job_token_scope_enabled6354 is expected to be inbound job token scope enabled6355 #default_git_depth6356 sets default value for new records6357 does not set default value if present6358 #keep_latest_artifacts_available?6359 without application setting record6360 project_enabled: false, result_keep_latest_artifact: false6361 is expected to eq false6362 project_enabled: true, result_keep_latest_artifact: true6363 is expected to eq true6364 with application setting record6365 instance_enabled: false, project_enabled: false, result_keep_latest_artifact: false6366 is expected to eq false6367 instance_enabled: false, project_enabled: true, result_keep_latest_artifact: false6368 is expected to eq false6369 instance_enabled: true, project_enabled: false, result_keep_latest_artifact: false6370 is expected to eq false6371 instance_enabled: true, project_enabled: true, result_keep_latest_artifact: true6372 is expected to eq true6373Users::DismissGroupCalloutService6374 #execute6375 sets the group_id6376 behaves like dismissing user callout6377 creates a new user callout6378 returns a user callout6379 sets the dismissed_at attribute to current time6380 updates an existing callout dismissed_at time6381 does not update an invalid record with dismissed_at time6382Atlassian::JiraConnect::Jwt::Asymmetric6383 #valid?6384 returns true when verified with public key from CDN6385 JWT does not contain a key ID6386 is expected not to be valid6387 JWT contains a key ID that is not a valid UUID46388 is expected not to be valid6389 public key can not be retrieved6390 is expected not to be valid6391 retrieving the public raises an error6392 is expected not to be valid6393 token decoding raises an error6394 is expected not to be valid6395 when iss could not be verified6396 is expected not to be valid6397 when qsh could not be verified6398 is expected not to be valid6399 with jira_connect_proxy_url setting6400 requests the settings CDN6401 when the setting is an empty string6402 requests the default CDN6403 #iss_claim6404 is expected to eq nil6405 when jwt is verified6406 is expected to eq "client_key"6407Projects::MoveProjectGroupLinksService6408 #execute6409 moves the group links from one project to another6410 does not move existent group links in the current project6411 rollbacks changes if transaction fails6412 when remove_remaining_elements is false6413 does not remove remaining project group links6414Metrics::Dashboard::ClusterMetricsEmbedService6415 .valid_params?6416 is expected to be truthy6417 returns false with missing param6418 returns false with missing param6419 returns false with missing param6420 returns false with missing param6421 returns false with missing param6422 missing all params6423 is expected to be falsy6424 #get_dashboard6425 returns one panel6426 returns panel by title and y_label6427 behaves like valid embedded dashboard service response6428 behaves like valid dashboard service response for schema6429 returns a json representation of the dashboard6430 behaves like caches the unprocessed dashboard for subsequent calls6431 is expected to receive load_raw!(*(any args)) 1 time6432ObjectStorage::CDN::GoogleCDN6433 # order random6434 #use_cdn?6435 ip_address: "34.80.0.1", expected: false6436 is expected to eq false6437 ip_address: "18.245.0.42", expected: true6438 is expected to eq true6439 ip_address: "2500:1900:4180:0000:0000:0000:0000:0000", expected: true6440 is expected to eq true6441 ip_address: "2600:1900:4180:0000:0000:0000:0000:0000", expected: false6442 is expected to eq false6443 ip_address: "10.10.1.5", expected: false6444 is expected to eq false6445 ip_address: "fc00:0000:0000:0000:0000:0000:0000:0000", expected: false6446 is expected to eq false6447 ip_address: "127.0.0.1", expected: false6448 is expected to eq false6449 ip_address: "169.254.0.0", expected: false6450 is expected to eq false6451 when the key name is missing6452 returns false6453 when the key is missing6454 returns false6455 when the key is invalid6456 returns false6457 when the URL is missing6458 returns false6459 when URL is a domain6460 returns false6461 when URL uses HTTP6462 returns false6463 #signed_url6464 with UTF-8 characters in path6465 returns a valid signed URL6466 with default query parameters6467 returns a valid signed URL6468 with nil query parameters6469 returns a valid signed URL6470 with extra query parameters6471 returns a valid signed URL6472Gitlab::DatabaseImporters::WorkItems::BaseTypeImporter6473 behaves like work item base types importer6474 creates all base work item types if they don't exist6475 creates all default widget definitions6476 upserts base work item types if they already exist6477 upserts default widget definitions if they already exist and type changes6478 does not change default widget definitions if they already exist with changed disabled status6479 executes single INSERT query per types and widget definitions6480 when some base types exist6481 inserts all types and does nothing if some already existed6482 when some widget definitions exist6483 inserts all widget definitions and does nothing if some already existed6484Gitlab::Ci::Badge::Coverage::Template6485 behaves like a badge template6486 #key_text6487 says coverage by default6488 when custom key_text is defined6489 returns custom value6490 when its size is larger than the max allowed value6491 returns default value6492 #key_width6493 is fixed by default6494 when custom key_width is defined6495 returns custom value6496 when it is larger than the max allowed value6497 returns default value6498 #value_text6499 when coverage is known6500 returns coverage percentage6501 when coverage is known to many digits6502 returns rounded coverage percentage6503 when coverage is unknown6504 returns string that says coverage is unknown6505 #value_width6506 when coverage is known6507 is narrower when coverage is known6508 when coverage is unknown6509 is wider when coverage is unknown to fit text6510 #key_color6511 always has the same color6512 #value_color6513 when coverage is good6514 is green6515 when coverage is acceptable6516 is green-orange6517 when coverage is medium6518 is orange-yellow6519 when coverage is low6520 is red6521 when coverage is unknown6522 is grey6523 #width6524 when coverage is known6525 returns the key width plus value width6526 when coverage is unknown6527 returns key width plus wider value width6528Sidebars::Projects::Menus::RepositoryMenu6529 #render?6530 when project repository is empty6531 returns false6532 when project repository is not empty6533 when user can download code6534 returns true6535 when user cannot download code6536 returns false6537 for menu items6538 Files6539 behaves like repository menu item with different super sidebar title6540 is expected to eq "Files"6541 when inside the super sidebar6542 is expected to eq "Repository"6543 Commits6544 behaves like repository menu item link for6545 ref_type: nil, link: lazy { "#{route}?ref_type=heads" }6546 has a link with the fully qualifed ref route6547 ref_type: "heads", link: lazy { "#{route}?ref_type=heads" }6548 has a link with the fully qualifed ref route6549 ref_type: "tags", link: lazy { "#{route}?ref_type=tags" }6550 has a link with the fully qualifed ref route6551 when ref is not the default6552 and ref_type is not provided6553 is expected to eq "/namespace753/project1144/-/commits/nonmain"6554 and ref_type is provided6555 is expected to eq "/namespace753/project1144/-/commits/nonmain?ref_type=heads"6556 Contributor statistics6557 when analytics is disabled6558 is expected to be nil6559 when analytics is enabled6560 behaves like repository menu item link for6561 ref_type: nil, link: lazy { "#{route}?ref_type=heads" }6562 has a link with the fully qualifed ref route6563 ref_type: "heads", link: lazy { "#{route}?ref_type=heads" }6564 has a link with the fully qualifed ref route6565 ref_type: "tags", link: lazy { "#{route}?ref_type=tags" }6566 has a link with the fully qualifed ref route6567 when ref is not the default6568 and ref_type is not provided6569 is expected to eq "/namespace753/project1144/-/graphs/nonmain"6570 and ref_type is provided6571 is expected to eq "/namespace753/project1144/-/graphs/nonmain?ref_type=heads"6572 Network6573 behaves like repository menu item link for6574 ref_type: nil, link: lazy { "#{route}?ref_type=heads" }6575 has a link with the fully qualifed ref route6576 ref_type: "heads", link: lazy { "#{route}?ref_type=heads" }6577 has a link with the fully qualifed ref route6578 ref_type: "tags", link: lazy { "#{route}?ref_type=tags" }6579 has a link with the fully qualifed ref route6580 when ref is not the default6581 and ref_type is not provided6582 is expected to eq "/namespace753/project1144/-/network/nonmain"6583 and ref_type is provided6584 is expected to eq "/namespace753/project1144/-/network/nonmain?ref_type=heads"6585 behaves like repository menu item with different super sidebar title6586 is expected to eq "Graph"6587 when inside the super sidebar6588 is expected to eq "Repository graph"6589Gitlab::Usage::Metrics::Instrumentations::GenericMetric6590 with default fallback6591 #value6592 gives the correct value6593 when raising an exception6594 with should_raise_for_dev? false6595 return the default fallback6596 with should_raise_for_dev? true6597 raises an error6598 with custom fallback -26599 behaves like custom fallback6600 #value6601 gives the correct value6602 when raising an exception6603 with should_raise_for_dev? false6604 return the custom fallback6605 with should_raise_for_dev? true6606 raises an error6607 with custom fallback nil6608 behaves like custom fallback6609 #value6610 gives the correct value6611 when raising an exception6612 with should_raise_for_dev? false6613 return the custom fallback6614 with should_raise_for_dev? true6615 raises an error6616 with custom fallback false6617 behaves like custom fallback6618 #value6619 gives the correct value6620 when raising an exception6621 with should_raise_for_dev? false6622 return the custom fallback6623 with should_raise_for_dev? true6624 raises an error6625 with custom fallback true6626 behaves like custom fallback6627 #value6628 gives the correct value6629 when raising an exception6630 with should_raise_for_dev? false6631 return the custom fallback6632 with should_raise_for_dev? true6633 raises an error6634 with custom fallback []6635 behaves like custom fallback6636 #value6637 gives the correct value6638 when raising an exception6639 with should_raise_for_dev? false6640 return the custom fallback6641 with should_raise_for_dev? true6642 raises an error6643 with custom fallback { major: -1 }6644 behaves like custom fallback6645 #value6646 gives the correct value6647 when raising an exception6648 with should_raise_for_dev? false6649 return the custom fallback6650 with should_raise_for_dev? true6651 raises an error6652PersonalAccessTokens::RevokeService6653 #execute6654 when current_user is an administrator6655 when admin mode is enabled6656 behaves like a successfully revoked token6657 is expected to equal true6658 is expected to equal true6659 logs the event6660 when admin mode is disabled6661 behaves like an unsuccessfully revoked token6662 is expected to equal false6663 is expected to equal false6664 when current_user is not an administrator6665 token belongs to a different user6666 behaves like an unsuccessfully revoked token6667 is expected to equal false6668 is expected to equal false6669 token belongs to current_user6670 behaves like a successfully revoked token6671 is expected to equal true6672 is expected to equal true6673 logs the event6674 when source6675 when source is valid6676 behaves like a successfully revoked token6677 is expected to equal true6678 is expected to equal true6679 logs the event6680 when source is invalid6681 raises ArgumentError6682 when source is missing6683 raises ArgumentError6684Ci::FindExposedArtifactsService6685 #for_pipeline6686 with jobs having no exposed artifacts6687 behaves like does not find any matches6688 returns empty array6689 with jobs having no artifacts (metadata)6690 behaves like does not find any matches6691 returns empty array6692 with jobs having at most 1 matching exposed artifact6693 behaves like finds a single match6694 returns the artifact with exact location6695 with jobs having more than 1 matching exposed artifacts6696 behaves like finds multiple matches6697 returns the path to the artifacts browser6698 with jobs having more than 1 matching exposed artifacts inside a directory6699 behaves like finds multiple matches6700 returns the path to the artifacts browser6701 with jobs having paths with glob expression6702 behaves like finds a single match6703 returns the artifact with exact location6704 limiting results6705 returns first 2 results6706 cross-project MR6707 returns the correct path for cross-project MRs6708gitlab:refresh_project_statistics_build_artifacts_size rake task6709 enqueuing build artifacts size statistics refresh for given list of project IDs6710 when given a remote CSV file6711 behaves like recalculates project statistics successfully6712 enqueues the projects for refresh6713 inserts refreshes in batches with a sleep6714 behaves like raises error for invalid header6715 returns an error message6716 when given a local CSV file6717 behaves like recalculates project statistics successfully6718 enqueues the projects for refresh6719 inserts refreshes in batches with a sleep6720 behaves like raises error for invalid header6721 returns an error message6722API::Helpers::MembersHelpers6723 # order random6724 #source_members6725 for a group6726 behaves like returns all direct members6727 is expected to contain exactly #<GroupMember id: 1753, access_level: 50, source_id: 3200, source_type: "Namespace", user_id: 1439, n...erride: false, state: 0, invite_email_success: true, member_namespace_id: 3200, member_role_id: nil> and #<GroupMember id: 1754, access_level: 50, source_id: 3200, source_type: "Namespace", user_id: 1440, n...erride: false, state: 0, invite_email_success: true, member_namespace_id: 3200, member_role_id: nil>6728 behaves like query with source filters6729 is expected to include "source_id" and "source_type"6730 for a project6731 behaves like returns all direct members6732 is expected to contain exactly #<ProjectMember id: 1756, access_level: 40, source_id: 1170, source_type: "Project", user_id: 1443, n...erride: false, state: 0, invite_email_success: true, member_namespace_id: 3208, member_role_id: nil> and #<ProjectMember id: 1758, access_level: 40, source_id: 1170, source_type: "Project", user_id: 1445, n...erride: false, state: 0, invite_email_success: true, member_namespace_id: 3208, member_role_id: nil>6733 behaves like query without source filters6734 is expected not to include "source_id" and "source_type"6735Gitlab::UsageDataCounters::EditorUniqueCounter6736 for web IDE edit actions6737 behaves like tracks and counts action6738 is expected to eq 36739 track snowplow event6740 does not track edit actions if author is not present6741 for SFE edit actions6742 behaves like tracks and counts action6743 is expected to eq 36744 track snowplow event6745 does not track edit actions if author is not present6746 for snippet editor edit actions6747 behaves like tracks and counts action6748 is expected to eq 36749 track snowplow event6750 does not track edit actions if author is not present6751QualifiedDomainArrayValidator6752 validations6753 returns error when attribute is nil6754 allows when domain is valid6755 returns error when domain contains unicode6756 returns error when entry is larger than 255 chars6757 returns error when entry contains HTML tags6758 behaves like can be blank6759 allows when attribute is blank6760 when allow_nil is set to true6761 behaves like can be nil6762 allows when attribute is nil6763 behaves like can be blank6764 allows when attribute is blank6765 when allow_blank is set to true6766 behaves like can be nil6767 allows when attribute is nil6768 behaves like can be blank6769 allows when attribute is blank6770LegacyDiffNote6771 #to_ability_name6772 is expected to eq "note"6773 callbacks6774 #set_diff6775 when not importing6776 updates st_diff6777 when importing6778 does not update st_diff6779 when st_diff is blank6780 updates st_diff6781Ci::CreatePipelineService6782 # order random6783 when project has not exceeded the active jobs limit6784 creates the pipeline successfully6785 when project has exceeded the active jobs limit6786 fails the pipeline before populating it6787Mutations::Todos::Create6788 #resolve6789 when target does not support todos6790 raises error6791 with issue as target6792 behaves like create todo mutation6793 when user does not have permission to create todo6794 raises error6795 when user has permission to create todo6796 creates a todo6797 with merge request as target6798 behaves like create todo mutation6799 when user does not have permission to create todo6800 raises error6801 when user has permission to create todo6802 creates a todo6803 with design as target6804 behaves like create todo mutation6805 when user does not have permission to create todo6806 raises error6807 when user has permission to create todo6808 creates a todo6809Gitlab::HookData::GroupMemberBuilder6810 #build6811 data6812 on create6813 is expected to eq "user_add_to_group"6814 behaves like includes the required attributes6815 includes the required attributes6816 on update6817 is expected to eq "user_update_for_group"6818 behaves like includes the required attributes6819 includes the required attributes6820 on destroy6821 is expected to eq "user_remove_from_group"6822 behaves like includes the required attributes6823 includes the required attributes6824CsvBuilder6825 generates a csv6826 uses a temporary file to reduce memory allocation6827 counts the number of rows6828 avoids loading all data in a single query6829 uses hash keys as headers6830 gets data by calling method provided as hash value6831 allows lamdas to look up more complicated data6832 rows_expected6833 uses rows_written if CSV rendered successfully6834 falls back to calling .count before rendering begins6835 truncation6836 occurs after given number of bytes6837 is ignored by default6838 causes rows_expected to fall back to .count6839 excel sanitization6840 sanitizes dangerous characters at the beginning of a column6841 does not sanitize safe symbols at the beginning of a column6842 when dangerous characters are after a line break6843 does not append single quote to description6844Ci::CompareCodequalityReportsService6845 #execute6846 when head pipeline has a codequality report6847 returns status and data6848 when base and head pipelines have codequality reports6849 returns status and data6850Security::CiConfiguration::SastBuildAction6851 with existing .gitlab-ci.yml6852 sast has not been included6853 template includes are array6854 generates the correct YML6855 template include is not an array6856 generates the correct YML6857 reports defaults have been overwritten6858 sast template include is not an array6859 generates the correct YML6860 with default values6861 generates the correct YML6862 reports defaults have not been overwritten6863 analyzer section6864 generates the correct YML6865 analyzers are disabled6866 writes SAST_EXCLUDED_ANALYZERS6867 all analyzers are enabled6868 does not write SAST_EXCLUDED_ANALYZERS6869 with update stage and SEARCH_MAX_DEPTH and set SECURE_ANALYZERS_PREFIX to default6870 generates the correct YML6871 with no existing variables6872 generates the correct YML6873 with no existing sast config6874 generates the correct YML6875 with no existing sast variables6876 generates the correct YML6877 with no .gitlab-ci.yml6878 autodevops disabled6879 with one empty parameter6880 generates the correct YML6881 with all parameters6882 generates the correct YML6883 with autodevops enabled6884 generates the correct YML6885Packages::Debian::GroupComponent6886 behaves like Debian Distribution Component6887 relationships6888 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => components6889 is expected to have many files class_name => Packages::Debian::GroupComponentFile inverse_of => component6890 validations6891 #distribution6892 is expected to validate that :distribution cannot be empty/falsy6893 #name6894 is expected to validate that :name cannot be empty/falsy6895 is expected to allow :name to be ‹"main"›6896 is expected to allow :name to be ‹"non-free"›6897 is expected to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6898 is expected not to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6899 is expected not to allow :name to be ‹"non/free"›6900 is expected not to allow :name to be ‹"hé"›6901 scopes6902 .ordered_by_name6903 sorts by name6904 .with_distribution6905 does not return other distributions6906 .with_name6907 does not return other distributions6908SafeZip::Entry6909 #path_dir6910 is expected to eq "/tmp/safe-zip20230330-360-d0mjyj/public/folder"6911 #exist?6912 when entry does not exist6913 is expected not to be truthy6914 when entry does exist6915 is expected to be truthy6916 #extract6917 when entry does not match the filtered directories6918 entry_name: "assets/folder/index.html"6919 does not extract file6920 entry_name: "public/../folder/index.html"6921 does not extract file6922 entry_name: "public/../../../../../index.html"6923 does not extract file6924 entry_name: "../../../../../public/index.html"6925 does not extract file6926 entry_name: "/etc/passwd"6927 does not extract file6928 when entry does not match the filtered files6929 entry_name: "assets/folder/index.html"6930 does not extract file6931 entry_name: "public/../folder/index.html"6932 does not extract file6933 entry_name: "public/../../../../../index.html"6934 does not extract file6935 entry_name: "../../../../../public/index.html"6936 does not extract file6937 entry_name: "/etc/passwd"6938 does not extract file6939 when there is an existing extracted entry6940 raises an exception6941 when entry type is unknown6942 raises an exception6943 when entry is valid6944 and is file6945 does extract file6946 behaves like secured symlinks6947 when we try to extract entry into symlinked folder6948 raises an exception6949 and is directory6950 does create directory6951 behaves like secured symlinks6952 when we try to extract entry into symlinked folder6953 raises an exception6954 and is symlink6955 when source is within target6956 but does not exist6957 raises an exception6958 and does exist6959 behaves like a valid symlink6960 does create symlink6961 when source points outside of target6962 raises an exception6963 when source points to /etc/passwd6964 raises an exception6965GitlabShellWorker6966 #perform6967 with the mv_repository action6968 forwards the message to Gitlab::Shell6969 with the remove_repository action6970 forwards the message to Gitlab::Shell6971 with the add_namespace action6972 forwards the message to Gitlab::Shell6973 with the rm_namespace action6974 forwards the message to Gitlab::Shell6975 with the mv_namespace action6976 forwards the message to Gitlab::Shell6977 with the repository_exists? action6978 forwards the message to Gitlab::Shell6979 all other commands6980 raises ArgumentError6981Gitlab::UsageMetricGenerator6982 Creating metric instrumentation files6983 creates CE metric instrumentation files using the template6984 with EE flag true6985 creates EE metric instrumentation files using the template6986 for database type6987 creates the metric instrumentation file using the template6988 for numbers type6989 creates the metric instrumentation file using the template6990 with type option missing6991 raises an ArgumentError6992 with type option value not included in approved superclasses6993 raises an ArgumentError6994 without operation for database metric6995 raises an ArgumentError6996 with wrong operation for database metric6997 raises an ArgumentError6998 without operation for numbers metric6999 raises an ArgumentError7000 with wrong operation for numbers metric7001 raises an ArgumentError7002Users::SignupService7003 #execute7004 when updating name7005 updates the name attribute7006 returns an error result when name is missing7007 when updating role7008 updates the role attribute7009 returns an error result when role is missing7010 when updating setup_for_company7011 updates the setup_for_company attribute7012 when on SaaS7013 returns an error result when setup_for_company is missing7014 when not on .com7015 returns success when setup_for_company is blank7016Gitlab::Ci::Status::Stage::PlayManual7017 #action_icon7018 is expected to eq "play"7019 #action_button_title7020 is expected to eq "Play all manual"7021 #action_title7022 is expected to eq "Play all manual"7023 #action_path7024 is expected to eq "/namespace781/project1172/-/pipelines/178/stages/test/play_manual"7025 #action_method7026 is expected to eq :post7027 .matches?7028 when stage is skipped7029 is expected to be truthy7030 when stage is manual7031 is expected to be truthy7032 when stage is scheduled7033 is expected to be truthy7034 when stage is success7035 and does not have manual builds7036 is expected to be falsy7037Types::IncidentManagement::EscalationStatusEnum7038 # order random7039 is expected to eq "IssueEscalationStatus"7040 statuses7041 status_name: "TRIGGERED", status_value: :triggered7042 exposes a status with the correct value7043 status_name: "ACKNOWLEDGED", status_value: :acknowledged7044 exposes a status with the correct value7045 status_name: "RESOLVED", status_value: :resolved7046 exposes a status with the correct value7047 status_name: "IGNORED", status_value: :ignored7048 exposes a status with the correct value7049 status_name: "INVALID", status_value: nil7050 exposes a status with the correct value7051ErrorTracking::IssueLatestEventService7052 #execute7053 with authorized user7054 when issue_latest_event returns an error event7055 returns the error event7056 when issue_latest_event returns nil7057 result is not ready7058 when issue_latest_event returns error7059 returns the error7060 when issue_latest_event returns error with http_status7061 returns the error with correct http_status7062 with integrated error tracking7063 returns the latest event in expected format7064 when error does not exist7065 returns the error in detailed format7066 with unauthorized user7067 returns error7068 with error tracking disabled7069 raises error7070BulkImport7071 associations7072 is expected to belong to user required: true7073 is expected to have one configuration7074 is expected to have many entities7075 validations7076 is expected to validate that :source_type cannot be empty/falsy7077 is expected to validate that :status cannot be empty/falsy7078 is expected to define :source_type as an enum backed by an integer with values ‹[:gitlab]›7079 .stale scope7080 is expected to contain exactly #<BulkImport id: 13, user_id: 1482, source_type: "gitlab", status: 0, created_at: "2023-03-27 11:58:3... 11:58:34.897421498 +0000", source_version: "14.4.0", source_enterprise: false, has_failures: false> and #<BulkImport id: 14, user_id: 1483, source_type: "gitlab", status: 1, created_at: "2023-03-27 11:58:3... 11:58:34.960718826 +0000", source_version: "14.4.0", source_enterprise: false, has_failures: false>7081 .all_human_statuses7082 returns all human readable entity statuses7083 .min_gl_version_for_project7084 is expected to be a kind of Gitlab::VersionInfo7085 is expected to eq "14.4.0"7086 #source_version_info7087 returns source_version as Gitlab::VersionInfo7088 #update_has_failures7089 when entity has failures7090 sets has_failures flag to true7091 when entity does not have failures7092 sets has_failures flag to false7093LabelPriority7094 relationships7095 is expected to belong to project required: false7096 is expected to belong to label required: false7097 validations7098 is expected to validate that :project cannot be empty/falsy7099 is expected to validate that :label cannot be empty/falsy7100 is expected to validate that :priority looks like an integer greater than or equal to 07101 validates uniqueness of label_id scoped to project_id7102 when importing7103 is expected not to validate that :label cannot be empty/falsy7104RuboCop::Cop::Gitlab::ServiceResponse7105 # order random7106 flags the use of `http_status:` parameter in ServiceResponse in initializer7107 flags the use of `http_status:` parameter in ServiceResponse in error7108 does not flag the `http_status:` param on a homonym method7109 flags the use of `http_status:` parameter in ServiceResponse in success7110 does not flag calls without params7111 does not flag the offense when `http_status` is not used7112Metrics::Dashboard::PruneOldAnnotationsWorker7113 #perform7114 removes all annotations older than cut off7115 batch to be deleted is bigger than upper limit7116 schedules second job to clear remaining records7117Gitlab::Ci::Config::Normalizer::NumberStrategy7118 .applies_to?7119 with numbers7120 is expected to be truthy7121 with hash that has :number key7122 is expected to be truthy7123 with a float number7124 is expected to be falsey7125 with hash that does not have :number key7126 is expected to be falsey7127 .build_from7128 with numbers7129 behaves like parallelized job7130 is expected to eq 37131 has attributes7132 has parallelized name7133 with hash that has :number key7134 behaves like parallelized job7135 is expected to eq 37136 has attributes7137 has parallelized name7138IncidentManagement::TimelineEventPolicy7139 # order random7140 #rules7141 when a user is not able to manage timeline events7142 when timeline event is editable7143 does not allow to edit the timeline event7144 when a user is able to manage timeline events7145 when timeline event is editable7146 allows to edit the timeline event7147 when timeline event is not editable7148 does not allow to edit the timeline event7149Mutations::Issues::Move7150 #resolve7151 raises an error if the resource is not accessible to the user7152 when user does not have permissions7153 returns error message7154 when user has sufficient permissions7155 moves issue7156Ci::Runners::ProcessRunnerVersionUpdateService7157 #execute7158 with upgrade check returning error7159 does not update ci_runner_versions records7160 when fetching runner releases is disabled7161 does not update ci_runner_versions records7162 with successful result from upgrade check7163 with no existing ci_runner_version record7164 creates ci_runner_versions record7165 with existing ci_runner_version record7166 updates ci_runner_versions record7167 with up-to-date ci_runner_version record7168 does not update ci_runner_versions record7169Types::Ci::PipelineCountsType7170 is expected to eq "PipelineCounts"7171 has the expected fields7172 behaves like pipeline counts query7173 returns pipeline counts7174 behaves like pipeline counts query7175 returns pipeline counts7176 behaves like pipeline counts query7177 returns pipeline counts7178 behaves like pipeline counts query7179 returns pipeline counts7180Users::BannedUser7181 relationships7182 is expected to belong to user required: false7183 validations7184 is expected to validate that :user cannot be empty/falsy7185 validates uniqueness of banned user id7186Preloaders::MergeRequestDiffPreloader7187 does not trigger N+1 queries7188RedisCacheable7189 #cached_attribute7190 gets the cache attribute7191 #cache_attributes7192 sets the cache attributes7193 with existing cached attributes7194 sets the cache attributes7195 #merge_cache_attributes7196 with different attribute values7197 merges the cache attributes with existing values7198 with no new or changed attribute values7199 does not try to set Redis key7200 #cached_attr_reader7201 always returns the latest values7202 when there is no cached value7203 reads the attribute7204 when there is a cached value7205 reads the cached value7206 #cast_value_from_cache7207 with runner contacted_at7208 converts cache string to appropriate type7209ResourceMilestoneEventPolicy7210 # order random7211 #read_milestone7212 allows to read deleted milestone7213 allows to read accessible milestone7214 does not allow to read not accessible milestone7215 #read_resource_milestone_event7216 with non-member user7217 does not allow to read event7218 with member user7219 allows to read event for accessible milestone7220 does not allow to read event for not accessible milestone7221Gitlab::PhabricatorImport::Conduit::Response7222 .parse!7223 raises a ResponseError if the http response was not successfull7224 raises a ResponseError if the response contained a Phabricator error7225 raises a ResponseError if JSON parsing failed7226 returns a parsed response for valid input7227 #success?7228 is expected to be success7229 is expected not to be success7230 #error_code7231 is expected to eq "ERR-INVALID-AUTH"7232 is expected to be nil7233 #error_info7234 returns the correct error info7235 is expected to be nil7236 #data7237 is expected to be nil7238 is expected to be a kind of Array7239 #pagination7240 is expected to be nil7241 builds the pagination correctly7242profiles/show7243 when the profile page is opened7244 displays the correct elements7245 renders required hidden inputs for set status form7246Discussions::UnresolveService7247 #execute7248 unresolves the discussion7249 counts the unresolve event7250 sends GraphQL triggers7251 when there are existing unresolved discussions7252 does not send a GraphQL triggers7253 when the noteable is not a merge request7254 does not send a GraphQL triggers7255Gitlab::Usage::Metrics::Query7256 .count7257 returns the raw SQL7258 does not mix a nil column with keyword arguments7259 removes order from passed relation7260 returns valid raw SQL for join relations7261 returns valid raw SQL for join relations with joined columns7262 .distinct_count7263 returns the raw SQL7264 does not mix a nil column with keyword arguments7265 removes order from passed relation7266 returns valid raw SQL for join relations7267 returns valid raw SQL for join relations with joined columns7268 .sum7269 returns the raw SQL7270 .average7271 returns the raw SQL7272 estimate_batch_distinct_count7273 returns the raw SQL7274 .histogram7275 returns the histogram sql7276 other7277 raise ArgumentError error7278Gitlab::Database::PostgresHll::BatchDistinctCounter7279 unit test for different counting parameters7280 #execute7281 builds hll buckets7282 defaults batch size to 100007283 when a transaction is open7284 raises an error7285 disallowed configurations7286 raises WRONG_CONFIGURATION_ERROR if start is bigger than finish7287 raises WRONG_CONFIGURATION_ERROR if data volume exceeds upper limit7288 raises WRONG_CONFIGURATION_ERROR if batch size is less than min required7289GraphHelper7290 #get_refs7291 filters our refs used by GitLab7292 #should_render_dora_charts7293 always returns false7294 #should_render_quality_summary7295 always returns false7296dashboard/projects/_blank_state_welcome.html.haml7297 with regular user7298 with project creation enabled7299 has a doc_url7300 shows create project panel7301 with project creation disabled7302 doesn't show create project panel7303 shows an alert7304 with external user7305 doesn't show create project panel7306 shows an alert7307Ci::PipelineScheduleService7308 #execute7309 schedules next run7310 runs RunPipelineScheduleWorker7311 when owner is nil7312 does not raise an error7313 when the project is missing7314 does not raise an exception7315 does not run RunPipelineScheduleWorker7316Resolvers::RecentBoardsResolver7317 #resolve7318 when there is no parent7319 returns none if parent is nil7320 when project boards7321 behaves like group and project recent boards resolver7322 calls ::Boards::VisitsFinder7323 avoids N+1 queries7324 returns most recent visited boards7325 returns a set number of boards7326 when group boards7327 behaves like group and project recent boards resolver7328 calls ::Boards::VisitsFinder7329 avoids N+1 queries7330 returns most recent visited boards7331 returns a set number of boards7332GroupDeployKeysGroupPolicy7333 edit a group deploy key for a given group7334 is allowed when the user is an owner of this group7335 is not allowed when the user is not an owner of this group7336Gitlab::Ci::Config::Entry::Kubernetes7337 attributes7338 is expected to respond to #namespace7339 is expected to respond to #has_namespace?7340 validations7341 config7342 is a hash containing known keys7343 is expected to be valid7344 is a hash containing an unknown key7345 is expected not to be valid7346 is a string7347 is expected not to be valid7348 namespace7349 is a string7350 is expected to be valid7351 is a hash7352 is expected not to be valid7353 is not present7354 is expected not to be valid7355Gitlab::HookData::ProjectBuilder7356 #build7357 data7358 on create7359 is expected to eq "project_create"7360 behaves like includes the required attributes7361 includes the required attributes7362 behaves like does not include `old_path_with_namespace` attribute7363 does not include `old_path_with_namespace` attribute7364 on destroy7365 is expected to eq "project_destroy"7366 behaves like includes the required attributes7367 includes the required attributes7368 behaves like does not include `old_path_with_namespace` attribute7369 does not include `old_path_with_namespace` attribute7370 on rename7371 is expected to eq "project_rename"7372 behaves like includes the required attributes7373 includes the required attributes7374 behaves like includes `old_path_with_namespace` attribute7375 includes `old_path_with_namespace` attribute7376 on transfer7377 is expected to eq "project_transfer"7378 behaves like includes the required attributes7379 includes the required attributes7380 behaves like includes `old_path_with_namespace` attribute7381 includes `old_path_with_namespace` attribute7382Gitlab::Config::Entry::ComposableHash7383 when ComposableHash is instantiated7384 behaves like composes a hash7385 #valid?7386 is valid7387 is invalid7388 is expected not to be valid7389 #value7390 when config is a hash7391 returns key value7392 #compose!7393 composes child entry with configured value7394 composes child entries with configured values7395 #descendants7396 creates descendant nodes7397 when ComposableHash entry is configured in the parent class7398 creates entry with configuration from parent class7399 behaves like composes a hash7400 #valid?7401 is valid7402 is invalid7403 is expected not to be valid7404 #value7405 when config is a hash7406 returns key value7407 #compose!7408 composes child entry with configured value7409 composes child entries with configured values7410 #descendants7411 creates descendant nodes7412ExploreHelper7413 #explore_nav_links7414 has all the expected links by default7415 #public_visibility_restricted?7416 delegates to Gitlab::VisibilityLevel7417 #projects_filter_items7418 returns correct dropdown items7419 #projects_filter_selected7420 when visibility_level is present7421 returns corresponding item7422 when visibility_level is empty7423 returns corresponding item7424Gitlab::Database::Partitioning::CiSlidingListStrategy7425 # order random7426 #extra_partitions7427 when all partitions are true for detach_partition_if7428 is expected to be empty7429 when all partitions are false for detach_partition_if7430 is expected to be empty7431 #next_partition7432 is one after the active partition7433 with routing tables7434 removes the prefix7435 #active_partition7436 is the partition with the largest value7437 #ensure_partitioning_column_ignored_or_readonly!7438 does not raise when the column is not ignored7439 #missing_partitions7440 when next_partition_if returns true7441 is a partition definition for the next partition in the series7442 when next_partition_if returns false7443 is empty7444 when there are no partitions for the table7445 returns a partition for value 17446 #validate_and_fix7447 does not call change_column_default7448 #current_partitions7449 detects both partitions7450 #initial_partition7451 starts with the value 1007452 with routing tables7453 removes the prefix7454DeclarativeEnum7455 .key7456 when the argument is set7457 changes the key7458 when the argument is `nil`7459 is expected to eq :my_enum7460 .name7461 when the argument is set7462 changes the name7463 when the argument is `nil`7464 is expected to eq "MyEnumName"7465 .description7466 when the argument is set7467 changes the description7468 when the argument is `nil`7469 is expected to eq "Enum description"7470 .define7471 when there is a block given7472 when the given block tries to register the same key7473 raises a `KeyCollisionError`7474 when the given block does not try to register the same key7475 appends the new definition7476 when there is no block given7477 raises a LocalJumpError7478 .definition7479 is expected to eq {:bar=>{:description=>"description of bar", :value=>1}, :foo=>{:description=>"description of foo", :value=>0}}7480 extending the enum module7481 extends the values of the base enum module7482Clusters::AgentPolicy7483 rules7484 when developer7485 is expected to be disallowed :admin_cluster7486 when maintainer7487 is expected to be allowed :admin_cluster7488MergeRequests::Mergeability::CheckBrokenStatusService7489 #execute7490 when the merge request is broken7491 returns a check result with status failed7492 when the merge request is not broken7493 returns a check result with status success7494 #skip?7495 returns false7496 #cacheable?7497 returns false7498Todos::Destroy::DestroyedIssuableService7499 #execute7500 when target is merge request7501 deletes todos for specified target ID and type7502 invalidates todos cache counts of todo users7503 when target is an work item7504 deletes todos7505Gitlab::Search::Query7506 is expected to be < SimpleDelegator7507 leaves undefined filters in the main query7508 parses filters7509 with an empty filter7510 ignores empty filters7511 with a pipe7512 does not escape the pipe7513 with an exclusive filter7514 negates the filter7515 with filter value in quotes7516 does not break the filter value in quotes7517 with extra white spaces between the query words7518 removes the extra whitespace between tokens7519 with mutliple filename filters7520 creates a filter for each filename in query7521 when multiple extension filters are added7522 creates a filter for each filename and extension in query7523ExceedQueryLimitHelpers7524 can count queries7525 can select specific queries7526 can filter specific models7527 can ignore specific queries7528 can perform inclusion and exclusion7529 does not contain marginalia annotations7530 #diff_query_group_message7531 prints a group helpfully7532 #diff_query_counts7533 merges two query counts, showing only diffs7534 can show common queries if so desired7535 #count_queries7536 handles queries with suffixes over multiple lines7537 can aggregate queries7538ProtectedBranchAccessPolicy7539 # order random7540 as maintainers7541 can be read7542 as guests7543 can not be read7544Gitlab::ExternalAuthorization::Client7545 #request_access7546 performs requests to the configured endpoint7547 adds the correct params for the user to the body of the request7548 respects the the timeout7549 adds the mutual tls params when they are present7550 returns an expected response7551 wraps exceptions if the request fails7552 passes local request setting to Gitlab::HTTP7553 for ldap users7554 includes the ldap dn and identities for ldap users7555 for non-ldap users with identities7556 includes all the identities7557SystemNotes::ZoomService7558 #zoom_link_added7559 sets the zoom link added note text7560 behaves like a system note7561 has the correct attributes7562 #zoom_link_removed7563 sets the zoom link removed note text7564 behaves like a system note7565 has the correct attributes7566Gitlab::LetsEncrypt7567 .enabled?7568 when terms of service are accepted7569 is expected to eq true7570 when terms of service are not accepted7571 is expected to eq false7572 .terms_of_service_url7573 returns the url7574Gitlab::PhabricatorImport::Importer7575 is expected to be async7576 acts like it's importing repositories7577 #execute7578 sets a custom jid that will be kept up to date7579 starts importing tasks7580 marks the import as failed when something goes wrong7581IssueBoardEntity7582 has basic attributes7583 has path and endpoints7584 has milestone attributes7585 has assignee attributes7586 has label attributes7587 type7588 has an issue type7589 real_path7590 has an issue path7591 when issue is of type task7592 has a work item path with iid7593Operations::FeatureFlagsClient7594 associations7595 is expected to belong to project required: false7596 validations7597 is expected to validate that :project cannot be empty/falsy7598 #token7599 ensures that token is always set7600 .update_last_feature_flag_updated_at!7601 updates the last_feature_flag_updated_at of the project client7602 #unleash_api_version7603 is expected to eq 17604 #unleash_api_features7605 fetches7606 when unleash app name is not set7607 does not fetch7608 #unleash_api_cache_key7609 constructs the cache key7610 when unleash app name is not set7611 constructs the cache key without unleash app name7612Gitlab::BitbucketImport::WikiFormatter7613 #disk_path7614 appends .wiki to disk path7615 #full_path7616 appends .wiki to project path7617 #import_url7618 returns URL of the wiki repository7619Types::DesignManagement::DesignAtVersionType7620 behaves like a GraphQL type with design fields7621 is expected to require graphql authorizations :read_design7622 exposes the expected design fields7623 #image7624 resolves to the design image URL7625 has better than O(N) peformance7626PagesDomainPresenter7627 needs_validation?7628 pages_verification_enabled: false, traits: :unverified, expected: false7629 is expected to eq false7630 pages_verification_enabled: false, traits: [], expected: false7631 is expected to eq false7632 pages_verification_enabled: true, traits: :unverified, expected: true7633 is expected to eq true7634 pages_verification_enabled: true, traits: [], expected: false7635 is expected to eq false7636 show_auto_ssl_failed_warning?7637 is expected to eq false7638 when we failed to obtain Let's Encrypt's certificate7639 is expected to eq true7640 when Let's Encrypt integration is disabled7641 is expected to eq false7642 when domain is unverified7643 is expected to eq false7644ImportIssuesCsvWorker7645 #perform7646 calls #execute on Issues::ImportCsvService and destroys upload7647 behaves like an idempotent worker7648 is labeled as idempotent7649 performs multiple times sequentially without raising an exception7650RuboCop::Cop::Migration::Datetime7651 # order random7652 when in migration7653 registers an offense when the ":datetime" data type is used on create_table7654 registers an offense when the ":timestamp" data type is used on create_table7655 does not register an offense when the ":datetime" data type is not used on create_table7656 does not register an offense when the ":datetime_with_timezone" data type is used on create_table7657 registers an offense when the ":datetime" data type is used on add_column7658 registers an offense when the ":timestamp" data type is used on add_column7659 does not register an offense when the ":datetime" data type is not used on add_column7660 does not register an offense when the ":datetime_with_timezone" data type is used on add_column7661 when outside of migration7662 registers no offense7663CustomerRelations::Contacts::UpdateService7664 #execute7665 when the user has no permission7666 returns an error7667 when user has permission7668 when first_name is changed7669 updates the contact7670 when activating7671 updates the contact7672 when deactivating7673 updates the contact7674 when the contact is invalid7675 returns an error7676Mutations::AlertManagement::PrometheusIntegration::ResetToken7677 is expected to require graphql authorizations :admin_project7678 #resolve7679 user has sufficient access to project7680 when ::Projects::Operations::UpdateService responds with success7681 returns the integration with no errors7682 when ::Projects::Operations::UpdateService responds with an error7683 returns errors7684 when resource is not accessible to the user7685 raises an error if the resource is not accessible to the user7686Mutations::AlertManagement::PrometheusIntegration::Update7687 is expected to require graphql authorizations :admin_project7688 #resolve7689 user has sufficient access to project7690 when ::Projects::Operations::UpdateService responds with success7691 returns the integration with no errors7692 when ::Projects::Operations::UpdateService responds with an error7693 returns errors7694 when resource is not accessible to the user7695 raises an error if the resource is not accessible to the user7696TimeHelper7697 #time_interval_in_words7698 returns minutes and seconds7699 #duration_in_numbers7700 duration: 0, formatted_string: "00:00"7701 is expected to eq "00:00"7702 duration: 1 second, formatted_string: "00:01"7703 is expected to eq "00:01"7704 duration: 42 seconds, formatted_string: "00:42"7705 is expected to eq "00:42"7706 duration: 2 minutes and 1 second, formatted_string: "02:01"7707 is expected to eq "02:01"7708 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"7709 is expected to eq "03:02:01"7710 duration: 30 hours, formatted_string: "30:00:00"7711 is expected to eq "30:00:00"7712 #time_in_milliseconds7713 returns the time in milliseconds7714Resolvers::Environments::NestedEnvironmentsResolver7715 # order random7716 #resolve7717 finds the nested environments when status matches7718 finds the nested environments when searching by name7719 finds the nested environments when name matches exactly7720Resolvers::WorkItems::TypesResolver7721 #resolve7722 when parent is a group7723 behaves like a work item type resolver7724 returns all default work item types7725 when requesting taskable types7726 returns only taskable types7727 when parent is a project7728 behaves like a work item type resolver7729 returns all default work item types7730 when requesting taskable types7731 returns only taskable types7732ListUserPreference7733 relationships7734 is expected to belong to list required: false7735 is expected to belong to user required: false7736 is expected to validate that :user_id is case-sensitively unique within the scope of :list_id, producing a custom validation error on failure7737Gitlab::Pagination::Keyset7738 .available_for_type?7739 returns true for Project7740 return false for other types of relations7741 .available?7742 with order-by id asc7743 behaves like keyset pagination is available7744 returns true for Project7745 return false for other types of relations7746 with order-by id desc7747 behaves like keyset pagination is available7748 returns true for Project7749 return false for other types of relations7750 with other order-by columns7751 returns false for Project7752 return false for other types of relations7753Gitlab::Middleware::MemoryReport7754 #call7755 when the Rails environment is not development7756 behaves like returns original response7757 returns original response7758 does not call the MemoryProfiler7759 when the Rails environment is development7760 when memory report is not requested7761 behaves like returns original response7762 returns original response7763 does not call the MemoryProfiler7764 when memory report is requested7765 returns a memory report7766 when something goes wrong with creating the report7767 logs the error7768 returns the error7769FeatureFlags::HookService7770 #execute_hooks7771 calls feature_flag.project.execute_hooks7772 HOOK_NAME7773 is expected to eq :feature_flag_hooks7774Atlassian::JiraConnect7775 .app_name7776 is expected to eq "GitLab for Jira (localhost)"7777 .app_key7778 is expected to eq "gitlab-jira-connect-localhost"7779 host name is too long7780 truncates the key to be no longer than 64 characters7781 with jira_connect_proxy_url setting7782 is expected to eq "gitlab-jira-connect-example.com"7783Sidebars::UserSettings::Menus::AuthenticationLogMenu7784 # order random7785 behaves like User settings menu7786 does not contain any sub menu7787 renders the correct link7788 renders the correct title7789 renders the correct icon7790 defines correct active route7791 behaves like User settings menu #render? method7792 #render?7793 when user is logged in7794 renders7795 when user is not logged in7796 does not render7797Banzai::CommitRenderer7798 .render7799 renders a commit description and title7800Gitlab::Mailgun::WebhookProcessors::FailureLogger7801 #execute7802 on permanent failure7803 when threshold is not exceeded7804 increments counter but does not log the failure7805 when threshold is exceeded7806 increments counter and logs the failure7807 on temporary failure7808 when threshold is not exceeded7809 increments counter but does not log the failure7810 when threshold is exceeded7811 increments counter and logs the failure7812 on other events7813 does nothing7814Gitlab::Usage::Metrics::Instrumentations::DormantUserPeriodSettingMetric7815 # order random7816 deactivate_dormant_users_period_value: 365, expected_value: 3657817 behaves like a correct instrumented metric value7818 has correct value7819 deactivate_dormant_users_period_value: 90, expected_value: 907820 behaves like a correct instrumented metric value7821 has correct value7822Packages::Rubygems::CreateDependenciesService7823 #execute7824 creates dependencies7825 links dependencies to the package7826Gitlab::Search::AbuseValidators::NoAbusiveCoercionFromStringValidator7827 attribute_value: ["this is an arry"], valid?: false7828 is expected to receive message chain errors.add7829 attribute_value: {:this=>"is a hash"}, valid?: false7830 is expected to receive message chain errors.add7831 attribute_value: 123, valid?: false7832 is expected to receive message chain errors.add7833 attribute_value: 456.78, valid?: false7834 is expected to receive message chain errors.add7835 attribute_value: "now this is a string", valid?: true7836 is expected not to receive errors(*(any args)) 0 times7837ExportedProtectedBranch7838 Associations7839 is expected to have many push_access_levels7840 .push_access_levels7841 returns the correct push access levels7842RuboCop::Cop::Graphql::EnumValues7843 # order random7844 adds an offense when enum value is not uppercase7845 when values are set dynamically7846 adds an offense when enum value is set without `:upcase`7847 adds no offense when enum value is deprecated7848 adds no offense when enum value is uppercased literally7849 adds no offense when enum value is calling upcased7850RuboCop::Cop::Migration::VersionedMigrationClass7851 # order random7852 outside of a migration7853 behaves like a disabled cop7854 does not register any offenses7855 in migration7856 in an old migration7857 behaves like a disabled cop7858 does not register any offenses7859 that is recent7860 adds an offence if inheriting from ActiveRecord::Migration7861 adds an offence if inheriting from old version of Gitlab::Database::Migration7862 adds an offence if including Gitlab::Database::MigrationHelpers directly7863 excludes ActiveRecord classes defined inside the migration7864ProjectAccessTokenSerializer7865 #represent7866 can render a single token7867 can render a collection of tokens7868validate database config7869 when config/database.yml is valid7870 validates configuration without errors and warnings7871 when config/database.yml is invalid7872 uses unknown connection name7873 raises exception7874 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true7875 does not raise exception7876 uses replica configuration7877 raises exception7878 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true7879 does not raise exception7880 main is not a first entry7881 raises exception7882 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true7883 does not raise exception7884Tooling::Helpers::FileHandler7885 # order random7886 #read_array_from_file7887 when the input file does not exist7888 creates the file7889 when the input file is not empty7890 returns the content of the file in an array7891 #write_array_to_file7892 when the output file does not exist7893 creates the file7894 when the output file is empty7895 writes the correct content to the file7896 when the output file is not empty7897 appends the correct content to the file7898Gitlab::Utils::Uniquify7899 # order random7900 #string7901 returns the given string if it does not exist7902 returns the given string with a counter attached if the string exists7903 increments the counter for each candidate string that also exists7904 allows to pass an initial value for the counter7905 allows passing in a base function that defines the location of the counter7906DependencyProxy::CleanupBlobWorker7907 behaves like dependency_proxy_cleanup_worker7908 #perform_work7909 with no work to do7910 is expected to be nil7911 with work to do7912 deletes the oldest artifact pending destruction based on updated_at7913 #max_running_jobs7914 is expected to eq 57915 #remaining_work_count7916 is expected to eq 37917DataList7918 #to_array7919 returns current data7920Gitlab::Memory::Watchdog::SidekiqEventReporter7921 # order random7922 delegations7923 is expected to delegate #started to the #event_reporter object7924 is expected to delegate #stopped to the #event_reporter object7925 is expected to delegate #threshold_violated to the #event_reporter object7926 is expected to delegate #logger to the #event_reporter object7927 #strikes_exceeded7928 delegates #strikes_exceeded with correct arguments7929 increment running jobs counter7930Gitlab::ApplicationRateLimiter::BaseStrategy7931 #increment7932 raises NotImplementedError7933 #read7934 raises NotImplementedError7935Gitlab::ExceptionLogFormatter7936 .format!7937 adds exception data to log7938 cleans the exception message7939 when exception is ActiveRecord::StatementInvalid7940 adds the normalized SQL query to payload7941 when the ActiveRecord::StatementInvalid is wrapped in another exception7942 adds the cause_class to payload7943 adds the normalized SQL query to payload7944 when the ActiveRecord::StatementInvalid is a bad query7945 adds the query as-is to payload7946Gitlab::StringRangeMarker7947 #mark7948 when the rich text is html safe7949 marks the inline diffs7950 when the rich text is not html safe7951 when rich text equals raw text7952 marks the inline diffs7953 when rich text doeas not equal raw text7954 marks the inline diffs7955Gitlab::EtagCaching::Router::Graphql7956 matches pipelines endpoint7957 has a valid feature category for every route7958 applies the default urgency for every route7959 .cache_key7960 uses request path and headers as cache key7961 when the header is missing7962 does not raise errors7963ContentTypeWhitelist7964 upload whitelisted file content type7965 behaves like accepted carrierwave upload7966 will accept upload7967 will cache uploaded file7968 behaves like upload with content type7969 will not change upload file content type7970 upload non-whitelisted file content type7971 behaves like denied carrierwave upload7972 will deny upload7973 upload misnamed non-whitelisted file content type7974 behaves like denied carrierwave upload7975 will deny upload7976PerformanceMonitoring::PrometheusPanelGroup7977 .from_json7978 creates a PrometheusPanelGroup object7979 validations7980 json_content is not a hash7981 is expected to raise ActiveModel::ValidationError7982 when group is missing7983 is expected to raise ActiveModel::ValidationError7984 when panels are missing7985 is expected to raise ActiveModel::ValidationError7986Types::Namespace::PackageSettingsType7987 is expected to eq "PackageSettings"7988 is expected to eq "Namespace-level Package Registry settings"7989 is expected to require graphql authorizations :admin_package7990 includes package setting fields7991 maven_duplicate_exception_regex field7992 is expected to have graphql type Types::UntrustedRegexp7993Groups::DeployTokens::DestroyService7994 behaves like a deploy token deletion service7995 #execute7996 destroys a token record and it's associated DeployToken7997 invalid token id7998 raises an error7999BulkImports::Projects::Pipelines::ContainerExpirationPolicyPipeline8000 #run8001 imports project feature8002Issues::RescheduleStuckIssueRebalancesWorker8003 #perform8004 does not schedule a rebalance8005 schedules a rebalance in case there are any rebalances started8006Gitlab::GithubImport::Stage::ImportBaseDataWorker8007 #import8008 imports the base data of a project8009 raises an error8010admin/application_settings/repository.html.haml8011 default initial branch name8012 has the setting section8013 renders the correct setting section content8014Bitbucket::Page8015 #items8016 returns collection of needed objects8017 #attrs8018 returns attributes8019 #next?8020 returns true8021 returns false8022 #next8023 returns next attribute8024Gitlab::PhabricatorImport::ImportTasksWorker8025 #perform8026 calls the correct importer8027Types::Ci::Config::GroupType8028 is expected to eq "CiConfigGroup"8029 exposes the expected fields8030Releases::LinkPresenter8031 #direct_asset_url8032 when filepath is provided8033 is expected to eq "http://localhost/namespace861/project1252/-/releases/v1.1.0/downloads/bin/bigfile.exe"8034 when filepath is not provided8035 is expected to eq "https://google.com/-/jobs/140463678/artifacts/download"8036Projects::ClusterAgentsHelper8037 #js_cluster_agent_details_data8038 is expected to match {:agent_name=>"agent-name", :project_path=>"namespace862/project1253", :activity_empty_state_image=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f66d22ce530 @klass=String>, :empty_state_svg_path=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f66d22ce4e0 @klass=String>, :can_admin_vulnerability=>"true", :kas_address=>"wss://kas.example.com", :kas_version=>#<Gitlab::VersionInfo:0x00007f66d22ce288 @major=15, @minor=11, @patch=0, @suffix_s="-rc1", @suffix=["pre", "rc", 1]>, :can_admin_cluster=>"false"}8039 user has admin cluster permissions8040 displays that the user can admin cluster8041AnalyticsMergeRequestSerializer8042 when there is a single object provided8043 contains important elements of the merge request8044BulkImports::Projects::Pipelines::ProtectedBranchesPipeline8045 #run8046 imports protected branch information8047Types::Kas::AgentConnectionType8048 is expected to eq "ConnectedAgent"8049 is expected to eq "Connection details for an Agent"8050 is expected to have graphql fields :connected_at, :connection_id, and :metadata8051 #connected_at8052 converts the seconds value to a timestamp8053Gitlab::GrapeLogging::Loggers::CloudflareLogger8054 #parameters8055 with no Cloudflare headers8056 returns an empty hash8057 with Cloudflare headers8058 returns the correct duration in seconds8059Types::Metrics::Dashboards::AnnotationType8060 is expected to eq "MetricsDashboardAnnotation"8061 has the expected fields8062 is expected to require graphql authorizations :read_metrics_dashboard_annotation8063ProtectedTags::DestroyService8064 #execute8065 destroy a protected tag8066Users::CreateStatisticsWorker8067 #perform8068 when successful8069 create an users statistics entry8070 when unsuccessful8071 logs an error8072Gitlab::Ci::Reports::Security::Link8073 #initialize8074 when all params are given8075 initializes an instance8076 #to_hash8077 returns expected hash8078Gitlab::Middleware::RequestContext8079 #call8080 setting the client ip8081 with X-Forwarded-For headers8082 returns the load balancer IP8083 request8084 sets the `client_ip`8085 sets the `request_start_time`8086Tooling::Danger::ConfigFiles8087 # order random8088 #new_config_files8089 returns added, modified, and renamed_after files by default8090 #add_suggestion_for_missing_introduced_by_url8091 when config file has an empty introduced_by_url line8092 adds suggestions at the correct line8093 when config file has an introduced_by_url line with value8094 does not add suggestion8095Groups::UpdateStatisticsWorker8096 #perform8097 updates the group statistics8098 when group id does not exist8099 ends gracefully8100BaseContainerService8101 #initialize8102 accepts container and current_user8103 treats current_user as optional8104Ci::JobArtifacts::DeleteProjectArtifactsService8105 #execute8106 enqueues a Ci::ExpireProjectBuildArtifactsWorker8107Gitlab::Database::PostgresHll::Buckets8108 #estimated_distinct_count8109 provides estimated cardinality8110 #merge_hash!8111 merges two hashes together into union of two sets8112 #to_json8113 serialize HyperLogLog buckets as hash8114PrometheusAlertEntity8115 when user can read prometheus alerts8116 exposes prometheus_alert attributes8117Users::BannedUserBaseService8118 #initialize8119 sets the current_user instance value8120Gitlab::Ci::Ansi2json::Result8121 #size8122 when offset is at the start8123 returns the full size8124 when offset is not zero8125 returns the remaining size8126 #total8127 returns size of stread8128Gitlab::Metrics::Exporter::GcRequestMiddleware8129 #call8130 runs a major GC after the next middleware is called8131Types::Ci::JobArtifactType8132 has the correct fields8133OmniAuth::Strategies::Bitbucket8134 # order random8135 #callback_url8136 when script name is not present8137 has the correct default callback path8138 when script name is present8139 sets the callback path with script_name8140Create security training providers in development8141 # order random8142 behaves like security training providers importer8143OK8144 upserts security training providers8145Import/Export model configuration8146 has no new models8147Gitlab::Audit::DeployKeyAuthor8148 #initialize8149 sets correct attributes8150 sets default name when it is not provided8151Gitlab::Database::PostgresqlDatabaseTasks::LoadSchemaVersionsMixin8152 calls SchemaMigrations load_all8153Types::PermissionTypes::Ci::Runner8154 is expected to have graphql field :assign_runner8155Gitlab::Utils::MergeHash8156 # order random8157 .crush8158 can flatten a hash to each element8159 .elements8160 deep merges an array of elements8161Database::DropDetachedPartitionsWorker8162 #perform8163 drops detached partitions8164 reports partition metrics8165Routing::PackagesHelper8166 # order random8167 #package_path8168 creates package's path8169Gitlab::GithubImport::Stage::ImportPullRequestsReviewRequestsWorker8170 # order random8171 #import8172 imports all PR review requests8173TodosDestroyer::PrivateFeaturesWorker8174 calls the Todos::Destroy::PrivateFeaturesService with the params it was given8175Types::Ci::FreezePeriodStatusEnum8176 # order random8177 exposes all freeze period statuses8178Gitlab::Usage::Metrics::Instrumentations::GitlabDedicatedMetric8179 # order random8180 behaves like a correct instrumented metric value8181 has correct value8182Types::Packages::PackageGroupSortEnum8183 exposes all package group sort values8184Sidebars::Groups::SuperSidebarMenus::MonitorMenu8185 # order random8186 defines list of NilMenuItem placeholders8187 has title and sprite_icon8188Pending: (Failures listed here are expected and do not affect your suite's status)8189 1) FileUploader legacy storage behaves like builds correct legacy storage paths #cache_dir behaves like matches the method pattern 8190 # No pattern provided, skipping.8191 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88192 2) FileUploader legacy storage behaves like builds correct legacy storage paths #work_dir behaves like matches the method pattern 8193 # No pattern provided, skipping.8194 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88195 3) FileUploader legacy storage behaves like builds correct legacy storage paths #relative_path is relative8196 # Path not set, skipping.8197 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408198 4) FileUploader legacy storage behaves like builds correct legacy storage paths .base_dir behaves like matches the method pattern 8199 # No pattern provided, skipping.8200 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88201 5) FileUploader legacy storage uses hashed storage when rolled out attachments #cache_dir behaves like matches the method pattern 8202 # No pattern provided, skipping.8203 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88204 6) FileUploader legacy storage uses hashed storage when rolled out attachments #work_dir behaves like matches the method pattern 8205 # No pattern provided, skipping.8206 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88207 7) FileUploader legacy storage uses hashed storage when rolled out attachments #relative_path is relative8208 # Path not set, skipping.8209 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408210 8) FileUploader legacy storage uses hashed storage when rolled out attachments .absolute_path behaves like matches the method pattern 8211 # No pattern provided, skipping.8212 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88213 9) FileUploader legacy storage uses hashed storage when rolled out attachments .base_dir behaves like matches the method pattern 8214 # No pattern provided, skipping.8215 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88216 10) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #cache_dir behaves like matches the method pattern 8217 # No pattern provided, skipping.8218 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88219 11) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #work_dir behaves like matches the method pattern 8220 # No pattern provided, skipping.8221 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88222 12) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths #relative_path is relative8223 # Path not set, skipping.8224 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408225 13) FileUploader legacy storage uses hashed storage when only repositories are rolled out behaves like builds correct legacy storage paths .base_dir behaves like matches the method pattern 8226 # No pattern provided, skipping.8227 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88228 14) FileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8229 # No pattern provided, skipping.8230 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88231 15) FileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8232 # No pattern provided, skipping.8233 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88234 16) FileUploader object store is remote behaves like builds correct paths #relative_path is relative8235 # Path not set, skipping.8236 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408237 17) FileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8238 # No pattern provided, skipping.8239 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88240 18) FileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8241 # No pattern provided, skipping.8242 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88243 19) AvatarUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 8244 # No pattern provided, skipping.8245 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88246 20) AvatarUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 8247 # No pattern provided, skipping.8248 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88249 21) AvatarUploader behaves like builds correct paths #relative_path is relative8250 # Path not set, skipping.8251 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408252 22) AvatarUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8253 # No pattern provided, skipping.8254 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88255 23) AvatarUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8256 # No pattern provided, skipping.8257 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88258 24) AvatarUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8259 # No pattern provided, skipping.8260 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88261 25) AvatarUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative8262 # Path not set, skipping.8263 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408264 26) AvatarUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8265 # No pattern provided, skipping.8266 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88267 27) AvatarUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8268 # No pattern provided, skipping.8269 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88270 28) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8271 # No reason given8272 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498273 29) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8274 # No reason given8275 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578276 30) Packages::Composer::CacheUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8277 # No pattern provided, skipping.8278 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88279 31) Packages::Composer::CacheUploader behaves like builds correct paths #relative_path is relative8280 # Path not set, skipping.8281 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408282 32) Packages::Composer::CacheUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8283 # No pattern provided, skipping.8284 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88285 33) Packages::Composer::CacheUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8286 # No pattern provided, skipping.8287 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88288 34) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8289 # No pattern provided, skipping.8290 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88291 35) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8292 # No pattern provided, skipping.8293 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88294 36) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8295 # No pattern provided, skipping.8296 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88297 37) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #relative_path is relative8298 # Path not set, skipping.8299 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408300 38) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8301 # No pattern provided, skipping.8302 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88303 39) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8304 # No pattern provided, skipping.8305 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88306 40) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled ignores geo8307 # Skipping because ci is shared or doesn't not exist8308 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:718309 41) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled without the proper arguments exits without finalizing the migration8310 # Skipping because ci is shared or doesn't not exist8311 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:798312 42) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled with the proper arguments finalizes the matching migration8313 # Skipping because ci is shared or doesn't not exist8314 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:908315 43) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled when database name is not passed aborts the rake task8316 # Skipping because ci is shared or doesn't not exist8317 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:998318 44) gitlab:background_migrations namespace rake tasks status when running the rake task against one database in multiple databases setup outputs the status of background migrations8319 # Skipping because ci is shared or doesn't not exist8320 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:1358321 45) gitlab:background_migrations namespace rake tasks status when multiple databases are configured with multiple databases outputs the status for each database8322 # Skipping because ci is shared or doesn't not exist8323 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:1798324Finished in 19 minutes 45 seconds (files took 56.29 seconds to load)83253275 examples, 0 failures, 45 pending8326Randomized with seed 119548327[TEST PROF INFO] Time spent in factories: 11:07.265 (55.12% of total time)8328RSpec exited with 0.8329No examples to retry, congrats!8331Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8332Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8334Uploading artifacts...8335coverage/: found 5 matching artifact files and directories 8336crystalball/: found 2 matching artifact files and directories 8337deprecations/: found 6 matching artifact files and directories 8338knapsack/: found 3 matching artifact files and directories 8339WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8340rspec/: found 12 matching artifact files and directories 8341WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8342log/*.log: found 16 matching artifact files and directories 8343WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138939/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8344WARNING: Retrying... context=artifacts-uploader error=request redirected8345Uploading artifacts as "archive" to coordinator... 201 Created id=4031138939 responseStatus=201 Created token=64_Uxqqc8346Uploading artifacts...8347rspec/junit_rspec.xml: found 1 matching artifact files and directories 8348WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138939/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8349WARNING: Retrying... context=artifacts-uploader error=request redirected8350Uploading artifacts as "junit" to coordinator... 201 Created id=4031138939 responseStatus=201 Created token=64_Uxqqc8352Job succeeded