rspec unit pg13 23/28
Passed Started
by
@rkadam3

Rajendra Kadam
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 4bq1s9yM, system ID: s_9d15f3e4e7ae3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:13 ...8Pulling docker image postgres:13 ...9Using docker image sha256:ab3945c8cf7160ed1381efd47c6a203ba9a84fc7327a17e4a389601eb3738b3b for postgres:13 with digest postgres@sha256:67edfda7deeecfda8e40c9b00818eae76573a9e9466ba7edbc536662d128173b ...10Starting service redis:6.2-alpine ...11Pulling docker image redis:6.2-alpine ...12Using docker image sha256:a9a47a706682d445577bb5da7328f0faaa0863a5742a315c829faa461dfc23ae for redis:6.2-alpine with digest redis@sha256:317575f05099ea47b1f2855b1bb6e068b52847bfa19b87014d88d57f82d4b8f0 ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...18Running on runner-4bq1s9ym-project-278964-concurrent-0 via runner-4bq1s9ym-private-1681889641-d81127dd...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: 127066, done. 25remote: Counting objects: 100% (127066/127066), done. 26remote: Compressing objects: 100% (84263/84263), done. 27remote: Total 127066 (delta 52059), reused 86943 (delta 37888), pack-reused 0 28Receiving objects: 100% (127066/127066), 122.40 MiB | 30.36 MiB/s, done.29Resolving deltas: 100% (52059/52059), done.31 * [new ref] refs/pipelines/841847819 -> refs/pipelines/84184781932 * [new branch] master -> origin/master33Checking out e2ff33c5 as detached HEAD (ref is master)...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...38cache.zip is up to date 39Successfully extracted cache41Downloading artifacts for compile-test-assets (4139146271)...42Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146271 responseStatus=200 OK token=64_-464b43Downloading artifacts for retrieve-tests-metadata (4139146276)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146276 responseStatus=200 OK token=64_-464b45Downloading artifacts for setup-test-env (4139146274)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146274 responseStatus=200 OK token=64_-464b48Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...49$ echo $FOSS_ONLY50$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb51$ export GOPATH=$CI_PROJECT_DIR/.go52$ mkdir -p $GOPATH53$ source scripts/utils.sh54$ source scripts/prepare_build.sh709Using decomposed database config (config/database.yml.decomposed-postgresql)710Geo DB won't be set up.711$ setup_db_user_only712CREATE ROLE713GRANT714==> 'setup_db_user_only' succeeded in 1 seconds.715$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes716Dropped database 'gitlabhq_test'717Dropped database 'gitlabhq_test_ci'718Created database 'gitlabhq_test'719Created database 'gitlabhq_test_ci'720main: == [advisory_lock_connection] object_id: 273740, pg_backend_pid: 101721main: == [advisory_lock_connection] object_id: 273740, pg_backend_pid: 101722ci: == [advisory_lock_connection] object_id: 273820, pg_backend_pid: 103723ci: == [advisory_lock_connection] object_id: 273820, pg_backend_pid: 103724==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 51 seconds.725$ setup_db_praefect726SELECT pg_catalog.set_config('search_path', '', false);727CREATE DATABASE praefect_test ENCODING 'UTF8';728==> 'setup_db_praefect' succeeded in 0 seconds.729$ source ./scripts/rspec_helpers.sh730$ run_timed_command "gem install knapsack --no-document"731$ gem install knapsack --no-document732Successfully installed knapsack-4.0.07331 gem installed734==> 'gem install knapsack --no-document' succeeded in 0 seconds.735$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"744$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"745SKIP_FLAKY_TESTS_AUTOMATICALLY: false746RETRY_FAILED_TESTS_IN_NEW_PROCESS: true747KNAPSACK_GENERATE_REPORT: true748FLAKY_RSPEC_GENERATE_REPORT: true749KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb750KNAPSACK_LOG_LEVEL: debug751KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_23_28_report.json752FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json753FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_23_28_report.json754NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_23_28_report.json755SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_23_28_report.txt756CRYSTALBALL: 757Knapsack node specs:758spec/policies/project_policy_spec.rb759spec/services/groups/transfer_service_spec.rb760spec/services/todo_service_spec.rb761spec/tasks/gitlab/usage_data_rake_spec.rb762spec/services/system_notes/issuables_service_spec.rb763spec/models/todo_spec.rb764spec/services/issues/relative_position_rebalancing_service_spec.rb765spec/services/issues/clone_service_spec.rb766spec/models/merge_request/cleanup_schedule_spec.rb767spec/lib/backup/database_spec.rb768spec/services/deployments/update_environment_service_spec.rb769spec/lib/gitlab/database/lock_writes_manager_spec.rb770spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb771spec/services/issues/import_csv_service_spec.rb772spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb773spec/services/packages/maven/find_or_create_package_service_spec.rb774spec/helpers/emails_helper_spec.rb775spec/helpers/gitlab_routing_helper_spec.rb776spec/finders/container_repositories_finder_spec.rb777spec/services/spam/spam_verdict_service_spec.rb778spec/tasks/gitlab/check_rake_spec.rb779spec/lib/gitlab/database/background_migration/batched_job_spec.rb780spec/services/projects/autocomplete_service_spec.rb781spec/models/integrations/discord_spec.rb782spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb783spec/lib/gitlab/ci/variables/builder_spec.rb784spec/services/search/group_service_spec.rb785spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb786spec/lib/gitlab/ci/badge/pipeline/status_spec.rb787spec/models/clusters/integrations/prometheus_spec.rb788spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb789spec/services/issues/build_service_spec.rb790spec/workers/issuable_export_csv_worker_spec.rb791spec/models/integrations/squash_tm_spec.rb792spec/bin/audit_event_type_spec.rb793spec/lib/security/weak_passwords_spec.rb794spec/services/ci/delete_unit_tests_service_spec.rb795spec/presenters/projects/settings/deploy_keys_presenter_spec.rb796spec/lib/gitlab/ci/config/entry/environment_spec.rb797spec/presenters/ci/build_presenter_spec.rb798spec/policies/ci/pipeline_policy_spec.rb799spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb800spec/lib/gitlab/gitaly_client/repository_service_spec.rb801spec/lib/gitlab/data_builder/deployment_spec.rb802spec/models/ci/build_trace_metadata_spec.rb803spec/models/protectable_dropdown_spec.rb804spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb805spec/lib/gitlab/search/recent_issues_spec.rb806spec/lib/gitlab/metrics/dashboard/processor_spec.rb807spec/presenters/group_clusterable_presenter_spec.rb808spec/services/merge_requests/export_csv_service_spec.rb809spec/lib/gitlab/omniauth_initializer_spec.rb810spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb811spec/workers/repository_check/single_repository_worker_spec.rb812spec/config/object_store_settings_spec.rb813spec/services/markup/rendering_service_spec.rb814spec/serializers/suggestion_entity_spec.rb815spec/services/users/update_service_spec.rb816spec/services/security/ci_configuration/secret_detection_create_service_spec.rb817spec/services/bulk_imports/file_download_service_spec.rb818spec/graphql/mutations/ci/runner/delete_spec.rb819spec/services/users/activity_service_spec.rb820spec/services/boards/lists/create_service_spec.rb821spec/lib/gitlab/github_import/importer/issue_importer_spec.rb822spec/helpers/projects/pages_helper_spec.rb823spec/lib/gitlab/github_import/representation/note_text_spec.rb824spec/graphql/graphql_triggers_spec.rb825spec/serializers/merge_request_user_entity_spec.rb826spec/tooling/lib/tooling/find_codeowners_spec.rb827spec/finders/resource_state_event_finder_spec.rb828spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb829spec/workers/external_service_reactive_caching_worker_spec.rb830spec/models/label_link_spec.rb831spec/workers/bulk_imports/pipeline_worker_spec.rb832spec/graphql/mutations/namespace/package_settings/update_spec.rb833spec/lib/gitlab/ci/tags/bulk_insert_spec.rb834spec/lib/system_check/simple_executor_spec.rb835spec/sidekiq_cluster/sidekiq_cluster_spec.rb836spec/lib/gitlab/ci/config/entry/jobs_spec.rb837spec/models/lfs_object_spec.rb838spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb839spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb840spec/helpers/environments_helper_spec.rb841spec/tasks/gitlab/task_helpers_spec.rb842spec/rubocop/cop/put_project_routes_under_scope_spec.rb843spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb844spec/graphql/resolvers/projects/services_resolver_spec.rb845spec/lib/gitlab/gl_repository/identifier_spec.rb846spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb847spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb848spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb849spec/lib/gitlab/phabricator_import/cache/map_spec.rb850spec/lib/banzai/reference_parser/label_parser_spec.rb851spec/services/projects/lfs_pointers/lfs_link_service_spec.rb852spec/lib/gitlab/uuid_spec.rb853spec/lib/gitlab/graphs/commits_spec.rb854spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb855spec/views/shared/wikis/_sidebar.html.haml_spec.rb856spec/services/notes/resolve_service_spec.rb857spec/rubocop/cop/graphql/json_type_spec.rb858spec/lib/gitlab/usage/metric_spec.rb859spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb860spec/helpers/web_hooks/web_hooks_helper_spec.rb861spec/tasks/rubocop_rake_spec.rb862spec/graphql/types/base_object_spec.rb863spec/helpers/sessions_helper_spec.rb864spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb865spec/tasks/gitlab/lfs/check_rake_spec.rb866spec/services/projects/group_links/destroy_service_spec.rb867spec/services/merge_requests/resolve_todos_service_spec.rb868spec/lib/gitlab/ci/project_config/repository_spec.rb869spec/lib/sidebars/groups/menus/issues_menu_spec.rb870spec/models/concerns/access_requestable_spec.rb871spec/lib/gitlab/slash_commands/presenters/access_spec.rb872spec/workers/incident_management/close_incident_worker_spec.rb873spec/lib/gitlab/kubernetes/deployment_spec.rb874spec/models/concerns/loaded_in_group_list_spec.rb875spec/serializers/admin/abuse_report_entity_spec.rb876spec/tooling/rspec_flaky/listener_spec.rb877spec/lib/gitlab/ci/status/success_warning_spec.rb878spec/services/packages/cleanup/execute_policy_service_spec.rb879spec/lib/gitlab/github_import_spec.rb880spec/graphql/types/snippets/blob_viewer_type_spec.rb881spec/models/resource_events/issue_assignment_event_spec.rb882spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb883spec/lib/gitlab/config/entry/undefined_spec.rb884spec/graphql/resolvers/group_resolver_spec.rb885spec/helpers/hooks_helper_spec.rb886spec/graphql/types/time_type_spec.rb887spec/models/concerns/file_store_mounter_spec.rb888spec/models/concerns/taskable_spec.rb889spec/graphql/types/ci/template_type_spec.rb890spec/lib/bitbucket/representation/comment_spec.rb891spec/lib/gitlab/security/scan_configuration_spec.rb892spec/models/packages/debian/group_architecture_spec.rb893spec/views/layouts/_flash.html.haml_spec.rb894spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb895spec/services/resource_events/merge_into_notes_service_spec.rb896spec/lib/system_check/app/authorized_keys_permission_check_spec.rb897spec/helpers/lazy_image_tag_helper_spec.rb898spec/lib/gitlab/safe_request_purger_spec.rb899spec/workers/flush_counter_increments_worker_spec.rb900spec/lib/gitlab/log_timestamp_formatter_spec.rb901spec/lib/gitlab/ci/status/pending_spec.rb902spec/presenters/deployments/deployment_presenter_spec.rb903spec/lib/sidebars/projects/super_sidebar_menus/build_menu_spec.rb904spec/tasks/gitlab/lfs/migrate_rake_spec.rb905spec/lib/gitlab/ci/status/build/failed_unmet_prerequisites_spec.rb906spec/lib/gitlab/push_options_spec.rb907spec/graphql/types/branch_protections/push_access_level_type_spec.rb908spec/graphql/mutations/boards/lists/update_spec.rb909spec/workers/update_highest_role_worker_spec.rb910spec/presenters/user_presenter_spec.rb911spec/services/protected_tags/update_service_spec.rb912spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb913spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb914spec/lib/gitlab/gitaly_client/diff_spec.rb915spec/services/ci/runners/process_runner_version_update_service_spec.rb916spec/graphql/types/commit_encoding_enum_spec.rb917spec/lib/gitlab/insecure_key_fingerprint_spec.rb918spec/lib/gitlab/email/smime/signer_spec.rb919spec/lib/gitlab/database/async_indexes/index_creator_spec.rb920spec/services/merge_requests/create_approval_event_service_spec.rb921spec/views/layouts/group.html.haml_spec.rb922spec/models/releases/source_spec.rb923spec/lib/gitlab/metrics/dashboard/importer_spec.rb924spec/lib/gitlab/graphql/limit/field_call_count_spec.rb925spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb926spec/services/projects/batch_open_issues_count_service_spec.rb927spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb928spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb929spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb930spec/lib/system_check/sidekiq_check_spec.rb931spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb932spec/lib/gitlab/auth/ldap/authentication_spec.rb933spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb934spec/lib/gitlab/color_schemes_spec.rb935spec/models/projects/import_export/relation_export_upload_spec.rb936spec/lib/gitlab/github_import/settings_spec.rb937spec/lib/gitlab/memory/instrumentation_spec.rb938spec/lib/gitlab/qa_spec.rb939spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb940spec/lib/gitlab/health_checks/middleware_spec.rb941spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb942spec/services/projects/deploy_tokens/destroy_service_spec.rb943spec/lib/gitlab/throttle_spec.rb944spec/services/spam/ham_service_spec.rb945spec/initializers/diagnostic_reports_spec.rb946spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb947spec/models/alerting/project_alerting_setting_spec.rb948spec/lib/gitlab/import_export/version_checker_spec.rb949spec/lib/gitlab/hook_data/subgroup_builder_spec.rb950spec/serializers/group_access_token_serializer_spec.rb951spec/graphql/types/group_member_relation_enum_spec.rb952spec/services/metrics/global_metrics_update_service_spec.rb953spec/services/merge_requests/mergeability/check_open_status_service_spec.rb954spec/graphql/types/release_assets_type_spec.rb955spec/graphql/types/root_storage_statistics_type_spec.rb956spec/serializers/import/fogbugz_provider_repo_entity_spec.rb957spec/config/smime_signature_settings_spec.rb958spec/lib/generators/batched_background_migration/batched_background_migration_generator_spec.rb959spec/helpers/url_helper_spec.rb960spec/graphql/resolvers/concerns/resolves_ids_spec.rb961spec/lib/gitlab/process_memory_cache/helper_spec.rb962spec/lib/microsoft_teams/notifier_spec.rb963spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb964spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb965spec/views/devise/shared/_error_messages.html.haml_spec.rb966spec/serializers/accessibility_reports_comparer_entity_spec.rb967spec/lib/gitlab/ci/yaml_processor/dag_spec.rb968spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb969spec/helpers/preferred_language_switcher_helper_spec.rb970spec/services/emails/confirm_service_spec.rb971spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb972spec/lib/gitlab/git/patches/patch_spec.rb973spec/graphql/types/projects/service_type_enum_spec.rb974spec/graphql/types/ci/config_variable_type_spec.rb975spec/lib/gitlab/phabricator_import/representation/task_spec.rb976spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb977spec/support_specs/graphql/field_selection_spec.rb978spec/lib/gitlab/language_data_spec.rb979spec/presenters/deploy_key_presenter_spec.rb980spec/serializers/evidences/issue_entity_spec.rb981spec/views/notify/new_achievement_email.html.haml_spec.rb982spec/rubocop/cop/scalability/idempotent_worker_spec.rb983spec/graphql/types/design_management/design_collection_type_spec.rb984spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb985spec/graphql/types/ci/config/config_type_spec.rb986spec/lib/api/entities/projects/topic_spec.rb987spec/graphql/types/packages/helm/maintainer_type_spec.rb988spec/helpers/terms_helper_spec.rb989spec/helpers/export_helper_spec.rb990spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb991Filter specs:992Running specs:993Running all node tests without filter994spec/policies/project_policy_spec.rb995spec/services/groups/transfer_service_spec.rb996spec/services/todo_service_spec.rb997spec/tasks/gitlab/usage_data_rake_spec.rb998spec/services/system_notes/issuables_service_spec.rb999spec/models/todo_spec.rb1000spec/services/issues/relative_position_rebalancing_service_spec.rb1001spec/services/issues/clone_service_spec.rb1002spec/models/merge_request/cleanup_schedule_spec.rb1003spec/lib/backup/database_spec.rb1004spec/services/deployments/update_environment_service_spec.rb1005spec/lib/gitlab/database/lock_writes_manager_spec.rb1006spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb1007spec/services/issues/import_csv_service_spec.rb1008spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb1009spec/services/packages/maven/find_or_create_package_service_spec.rb1010spec/helpers/emails_helper_spec.rb1011spec/helpers/gitlab_routing_helper_spec.rb1012spec/finders/container_repositories_finder_spec.rb1013spec/services/spam/spam_verdict_service_spec.rb1014spec/tasks/gitlab/check_rake_spec.rb1015spec/lib/gitlab/database/background_migration/batched_job_spec.rb1016spec/services/projects/autocomplete_service_spec.rb1017spec/models/integrations/discord_spec.rb1018spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb1019spec/lib/gitlab/ci/variables/builder_spec.rb1020spec/services/search/group_service_spec.rb1021spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb1022spec/lib/gitlab/ci/badge/pipeline/status_spec.rb1023spec/models/clusters/integrations/prometheus_spec.rb1024spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb1025spec/services/issues/build_service_spec.rb1026spec/workers/issuable_export_csv_worker_spec.rb1027spec/models/integrations/squash_tm_spec.rb1028spec/bin/audit_event_type_spec.rb1029spec/lib/security/weak_passwords_spec.rb1030spec/services/ci/delete_unit_tests_service_spec.rb1031spec/presenters/projects/settings/deploy_keys_presenter_spec.rb1032spec/lib/gitlab/ci/config/entry/environment_spec.rb1033spec/presenters/ci/build_presenter_spec.rb1034spec/policies/ci/pipeline_policy_spec.rb1035spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb1036spec/lib/gitlab/gitaly_client/repository_service_spec.rb1037spec/lib/gitlab/data_builder/deployment_spec.rb1038spec/models/ci/build_trace_metadata_spec.rb1039spec/models/protectable_dropdown_spec.rb1040spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb1041spec/lib/gitlab/search/recent_issues_spec.rb1042spec/lib/gitlab/metrics/dashboard/processor_spec.rb1043spec/presenters/group_clusterable_presenter_spec.rb1044spec/services/merge_requests/export_csv_service_spec.rb1045spec/lib/gitlab/omniauth_initializer_spec.rb1046spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb1047spec/workers/repository_check/single_repository_worker_spec.rb1048spec/config/object_store_settings_spec.rb1049spec/services/markup/rendering_service_spec.rb1050spec/serializers/suggestion_entity_spec.rb1051spec/services/users/update_service_spec.rb1052spec/services/security/ci_configuration/secret_detection_create_service_spec.rb1053spec/services/bulk_imports/file_download_service_spec.rb1054spec/graphql/mutations/ci/runner/delete_spec.rb1055spec/services/users/activity_service_spec.rb1056spec/services/boards/lists/create_service_spec.rb1057spec/lib/gitlab/github_import/importer/issue_importer_spec.rb1058spec/helpers/projects/pages_helper_spec.rb1059spec/lib/gitlab/github_import/representation/note_text_spec.rb1060spec/graphql/graphql_triggers_spec.rb1061spec/serializers/merge_request_user_entity_spec.rb1062spec/tooling/lib/tooling/find_codeowners_spec.rb1063spec/finders/resource_state_event_finder_spec.rb1064spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb1065spec/workers/external_service_reactive_caching_worker_spec.rb1066spec/models/label_link_spec.rb1067spec/workers/bulk_imports/pipeline_worker_spec.rb1068spec/graphql/mutations/namespace/package_settings/update_spec.rb1069spec/lib/gitlab/ci/tags/bulk_insert_spec.rb1070spec/lib/system_check/simple_executor_spec.rb1071spec/sidekiq_cluster/sidekiq_cluster_spec.rb1072spec/lib/gitlab/ci/config/entry/jobs_spec.rb1073spec/models/lfs_object_spec.rb1074spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb1075spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb1076spec/helpers/environments_helper_spec.rb1077spec/tasks/gitlab/task_helpers_spec.rb1078spec/rubocop/cop/put_project_routes_under_scope_spec.rb1079spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb1080spec/graphql/resolvers/projects/services_resolver_spec.rb1081spec/lib/gitlab/gl_repository/identifier_spec.rb1082spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb1083spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb1084spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb1085spec/lib/gitlab/phabricator_import/cache/map_spec.rb1086spec/lib/banzai/reference_parser/label_parser_spec.rb1087spec/services/projects/lfs_pointers/lfs_link_service_spec.rb1088spec/lib/gitlab/uuid_spec.rb1089spec/lib/gitlab/graphs/commits_spec.rb1090spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb1091spec/views/shared/wikis/_sidebar.html.haml_spec.rb1092spec/services/notes/resolve_service_spec.rb1093spec/rubocop/cop/graphql/json_type_spec.rb1094spec/lib/gitlab/usage/metric_spec.rb1095spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb1096spec/helpers/web_hooks/web_hooks_helper_spec.rb1097spec/tasks/rubocop_rake_spec.rb1098spec/graphql/types/base_object_spec.rb1099spec/helpers/sessions_helper_spec.rb1100spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb1101spec/tasks/gitlab/lfs/check_rake_spec.rb1102spec/services/projects/group_links/destroy_service_spec.rb1103spec/services/merge_requests/resolve_todos_service_spec.rb1104spec/lib/gitlab/ci/project_config/repository_spec.rb1105spec/lib/sidebars/groups/menus/issues_menu_spec.rb1106spec/models/concerns/access_requestable_spec.rb1107spec/lib/gitlab/slash_commands/presenters/access_spec.rb1108spec/workers/incident_management/close_incident_worker_spec.rb1109spec/lib/gitlab/kubernetes/deployment_spec.rb1110spec/models/concerns/loaded_in_group_list_spec.rb1111spec/serializers/admin/abuse_report_entity_spec.rb1112spec/tooling/rspec_flaky/listener_spec.rb1113spec/lib/gitlab/ci/status/success_warning_spec.rb1114spec/services/packages/cleanup/execute_policy_service_spec.rb1115spec/lib/gitlab/github_import_spec.rb1116spec/graphql/types/snippets/blob_viewer_type_spec.rb1117spec/models/resource_events/issue_assignment_event_spec.rb1118spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb1119spec/lib/gitlab/config/entry/undefined_spec.rb1120spec/graphql/resolvers/group_resolver_spec.rb1121spec/helpers/hooks_helper_spec.rb1122spec/graphql/types/time_type_spec.rb1123spec/models/concerns/file_store_mounter_spec.rb1124spec/models/concerns/taskable_spec.rb1125spec/graphql/types/ci/template_type_spec.rb1126spec/lib/bitbucket/representation/comment_spec.rb1127spec/lib/gitlab/security/scan_configuration_spec.rb1128spec/models/packages/debian/group_architecture_spec.rb1129spec/views/layouts/_flash.html.haml_spec.rb1130spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb1131spec/services/resource_events/merge_into_notes_service_spec.rb1132spec/lib/system_check/app/authorized_keys_permission_check_spec.rb1133spec/helpers/lazy_image_tag_helper_spec.rb1134spec/lib/gitlab/safe_request_purger_spec.rb1135spec/workers/flush_counter_increments_worker_spec.rb1136spec/lib/gitlab/log_timestamp_formatter_spec.rb1137spec/lib/gitlab/ci/status/pending_spec.rb1138spec/presenters/deployments/deployment_presenter_spec.rb1139spec/lib/sidebars/projects/super_sidebar_menus/build_menu_spec.rb1140spec/tasks/gitlab/lfs/migrate_rake_spec.rb1141spec/lib/gitlab/ci/status/build/failed_unmet_prerequisites_spec.rb1142spec/lib/gitlab/push_options_spec.rb1143spec/graphql/types/branch_protections/push_access_level_type_spec.rb1144spec/graphql/mutations/boards/lists/update_spec.rb1145spec/workers/update_highest_role_worker_spec.rb1146spec/presenters/user_presenter_spec.rb1147spec/services/protected_tags/update_service_spec.rb1148spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb1149spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb1150spec/lib/gitlab/gitaly_client/diff_spec.rb1151spec/services/ci/runners/process_runner_version_update_service_spec.rb1152spec/graphql/types/commit_encoding_enum_spec.rb1153spec/lib/gitlab/insecure_key_fingerprint_spec.rb1154spec/lib/gitlab/email/smime/signer_spec.rb1155spec/lib/gitlab/database/async_indexes/index_creator_spec.rb1156spec/services/merge_requests/create_approval_event_service_spec.rb1157spec/views/layouts/group.html.haml_spec.rb1158spec/models/releases/source_spec.rb1159spec/lib/gitlab/metrics/dashboard/importer_spec.rb1160spec/lib/gitlab/graphql/limit/field_call_count_spec.rb1161spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb1162spec/services/projects/batch_open_issues_count_service_spec.rb1163spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb1164spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb1165spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb1166spec/lib/system_check/sidekiq_check_spec.rb1167spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb1168spec/lib/gitlab/auth/ldap/authentication_spec.rb1169spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb1170spec/lib/gitlab/color_schemes_spec.rb1171spec/models/projects/import_export/relation_export_upload_spec.rb1172spec/lib/gitlab/github_import/settings_spec.rb1173spec/lib/gitlab/memory/instrumentation_spec.rb1174spec/lib/gitlab/qa_spec.rb1175spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb1176spec/lib/gitlab/health_checks/middleware_spec.rb1177spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb1178spec/services/projects/deploy_tokens/destroy_service_spec.rb1179spec/lib/gitlab/throttle_spec.rb1180spec/services/spam/ham_service_spec.rb1181spec/initializers/diagnostic_reports_spec.rb1182spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb1183spec/models/alerting/project_alerting_setting_spec.rb1184spec/lib/gitlab/import_export/version_checker_spec.rb1185spec/lib/gitlab/hook_data/subgroup_builder_spec.rb1186spec/serializers/group_access_token_serializer_spec.rb1187spec/graphql/types/group_member_relation_enum_spec.rb1188spec/services/metrics/global_metrics_update_service_spec.rb1189spec/services/merge_requests/mergeability/check_open_status_service_spec.rb1190spec/graphql/types/release_assets_type_spec.rb1191spec/graphql/types/root_storage_statistics_type_spec.rb1192spec/serializers/import/fogbugz_provider_repo_entity_spec.rb1193spec/config/smime_signature_settings_spec.rb1194spec/lib/generators/batched_background_migration/batched_background_migration_generator_spec.rb1195spec/helpers/url_helper_spec.rb1196spec/graphql/resolvers/concerns/resolves_ids_spec.rb1197spec/lib/gitlab/process_memory_cache/helper_spec.rb1198spec/lib/microsoft_teams/notifier_spec.rb1199spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb1200spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb1201spec/views/devise/shared/_error_messages.html.haml_spec.rb1202spec/serializers/accessibility_reports_comparer_entity_spec.rb1203spec/lib/gitlab/ci/yaml_processor/dag_spec.rb1204spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb1205spec/helpers/preferred_language_switcher_helper_spec.rb1206spec/services/emails/confirm_service_spec.rb1207spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb1208spec/lib/gitlab/git/patches/patch_spec.rb1209spec/graphql/types/projects/service_type_enum_spec.rb1210spec/graphql/types/ci/config_variable_type_spec.rb1211spec/lib/gitlab/phabricator_import/representation/task_spec.rb1212spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb1213spec/support_specs/graphql/field_selection_spec.rb1214spec/lib/gitlab/language_data_spec.rb1215spec/presenters/deploy_key_presenter_spec.rb1216spec/serializers/evidences/issue_entity_spec.rb1217spec/views/notify/new_achievement_email.html.haml_spec.rb1218spec/rubocop/cop/scalability/idempotent_worker_spec.rb1219spec/graphql/types/design_management/design_collection_type_spec.rb1220spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb1221spec/graphql/types/ci/config/config_type_spec.rb1222spec/lib/api/entities/projects/topic_spec.rb1223spec/graphql/types/packages/helm/maintainer_type_spec.rb1224spec/helpers/terms_helper_spec.rb1225spec/helpers/export_helper_spec.rb1226spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb1227Running all node tests without filter1228Running all node tests without filter1229Running 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/policies/project_policy_spec.rb spec/services/groups/transfer_service_spec.rb spec/services/todo_service_spec.rb spec/tasks/gitlab/usage_data_rake_spec.rb spec/services/system_notes/issuables_service_spec.rb spec/models/todo_spec.rb spec/services/issues/relative_position_rebalancing_service_spec.rb spec/services/issues/clone_service_spec.rb spec/models/merge_request/cleanup_schedule_spec.rb spec/lib/backup/database_spec.rb spec/services/deployments/update_environment_service_spec.rb spec/lib/gitlab/database/lock_writes_manager_spec.rb spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb spec/services/issues/import_csv_service_spec.rb spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb spec/services/packages/maven/find_or_create_package_service_spec.rb spec/helpers/emails_helper_spec.rb spec/helpers/gitlab_routing_helper_spec.rb spec/finders/container_repositories_finder_spec.rb spec/services/spam/spam_verdict_service_spec.rb spec/tasks/gitlab/check_rake_spec.rb spec/lib/gitlab/database/background_migration/batched_job_spec.rb spec/services/projects/autocomplete_service_spec.rb spec/models/integrations/discord_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb spec/lib/gitlab/ci/variables/builder_spec.rb spec/services/search/group_service_spec.rb spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb spec/lib/gitlab/ci/badge/pipeline/status_spec.rb spec/models/clusters/integrations/prometheus_spec.rb spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb spec/services/issues/build_service_spec.rb spec/workers/issuable_export_csv_worker_spec.rb spec/models/integrations/squash_tm_spec.rb spec/bin/audit_event_type_spec.rb spec/lib/security/weak_passwords_spec.rb spec/services/ci/delete_unit_tests_service_spec.rb spec/presenters/projects/settings/deploy_keys_presenter_spec.rb spec/lib/gitlab/ci/config/entry/environment_spec.rb spec/presenters/ci/build_presenter_spec.rb spec/policies/ci/pipeline_policy_spec.rb spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb spec/lib/gitlab/gitaly_client/repository_service_spec.rb spec/lib/gitlab/data_builder/deployment_spec.rb spec/models/ci/build_trace_metadata_spec.rb spec/models/protectable_dropdown_spec.rb spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb spec/lib/gitlab/search/recent_issues_spec.rb spec/lib/gitlab/metrics/dashboard/processor_spec.rb spec/presenters/group_clusterable_presenter_spec.rb spec/services/merge_requests/export_csv_service_spec.rb spec/lib/gitlab/omniauth_initializer_spec.rb spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb spec/workers/repository_check/single_repository_worker_spec.rb spec/config/object_store_settings_spec.rb spec/services/markup/rendering_service_spec.rb spec/serializers/suggestion_entity_spec.rb spec/services/users/update_service_spec.rb spec/services/security/ci_configuration/secret_detection_create_service_spec.rb spec/services/bulk_imports/file_download_service_spec.rb spec/graphql/mutations/ci/runner/delete_spec.rb spec/services/users/activity_service_spec.rb spec/services/boards/lists/create_service_spec.rb spec/lib/gitlab/github_import/importer/issue_importer_spec.rb spec/helpers/projects/pages_helper_spec.rb spec/lib/gitlab/github_import/representation/note_text_spec.rb spec/graphql/graphql_triggers_spec.rb spec/serializers/merge_request_user_entity_spec.rb spec/tooling/lib/tooling/find_codeowners_spec.rb spec/finders/resource_state_event_finder_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb spec/workers/external_service_reactive_caching_worker_spec.rb spec/models/label_link_spec.rb spec/workers/bulk_imports/pipeline_worker_spec.rb spec/graphql/mutations/namespace/package_settings/update_spec.rb spec/lib/gitlab/ci/tags/bulk_insert_spec.rb spec/lib/system_check/simple_executor_spec.rb spec/sidekiq_cluster/sidekiq_cluster_spec.rb spec/lib/gitlab/ci/config/entry/jobs_spec.rb spec/models/lfs_object_spec.rb spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb spec/helpers/environments_helper_spec.rb spec/tasks/gitlab/task_helpers_spec.rb spec/rubocop/cop/put_project_routes_under_scope_spec.rb spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb spec/graphql/resolvers/projects/services_resolver_spec.rb spec/lib/gitlab/gl_repository/identifier_spec.rb spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb spec/lib/gitlab/phabricator_import/cache/map_spec.rb spec/lib/banzai/reference_parser/label_parser_spec.rb spec/services/projects/lfs_pointers/lfs_link_service_spec.rb spec/lib/gitlab/uuid_spec.rb spec/lib/gitlab/graphs/commits_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb spec/views/shared/wikis/_sidebar.html.haml_spec.rb spec/services/notes/resolve_service_spec.rb spec/rubocop/cop/graphql/json_type_spec.rb spec/lib/gitlab/usage/metric_spec.rb spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb spec/helpers/web_hooks/web_hooks_helper_spec.rb spec/tasks/rubocop_rake_spec.rb spec/graphql/types/base_object_spec.rb spec/helpers/sessions_helper_spec.rb spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb spec/tasks/gitlab/lfs/check_rake_spec.rb spec/services/projects/group_links/destroy_service_spec.rb spec/services/merge_requests/resolve_todos_service_spec.rb spec/lib/gitlab/ci/project_config/repository_spec.rb spec/lib/sidebars/groups/menus/issues_menu_spec.rb spec/models/concerns/access_requestable_spec.rb spec/lib/gitlab/slash_commands/presenters/access_spec.rb spec/workers/incident_management/close_incident_worker_spec.rb spec/lib/gitlab/kubernetes/deployment_spec.rb spec/models/concerns/loaded_in_group_list_spec.rb spec/serializers/admin/abuse_report_entity_spec.rb spec/tooling/rspec_flaky/listener_spec.rb spec/lib/gitlab/ci/status/success_warning_spec.rb spec/services/packages/cleanup/execute_policy_service_spec.rb spec/lib/gitlab/github_import_spec.rb spec/graphql/types/snippets/blob_viewer_type_spec.rb spec/models/resource_events/issue_assignment_event_spec.rb spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb spec/lib/gitlab/config/entry/undefined_spec.rb spec/graphql/resolvers/group_resolver_spec.rb spec/helpers/hooks_helper_spec.rb spec/graphql/types/time_type_spec.rb spec/models/concerns/file_store_mounter_spec.rb spec/models/concerns/taskable_spec.rb spec/graphql/types/ci/template_type_spec.rb spec/lib/bitbucket/representation/comment_spec.rb spec/lib/gitlab/security/scan_configuration_spec.rb spec/models/packages/debian/group_architecture_spec.rb spec/views/layouts/_flash.html.haml_spec.rb spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb spec/services/resource_events/merge_into_notes_service_spec.rb spec/lib/system_check/app/authorized_keys_permission_check_spec.rb spec/helpers/lazy_image_tag_helper_spec.rb spec/lib/gitlab/safe_request_purger_spec.rb spec/workers/flush_counter_increments_worker_spec.rb spec/lib/gitlab/log_timestamp_formatter_spec.rb spec/lib/gitlab/ci/status/pending_spec.rb spec/presenters/deployments/deployment_presenter_spec.rb spec/lib/sidebars/projects/super_sidebar_menus/build_menu_spec.rb spec/tasks/gitlab/lfs/migrate_rake_spec.rb spec/lib/gitlab/ci/status/build/failed_unmet_prerequisites_spec.rb spec/lib/gitlab/push_options_spec.rb spec/graphql/types/branch_protections/push_access_level_type_spec.rb spec/graphql/mutations/boards/lists/update_spec.rb spec/workers/update_highest_role_worker_spec.rb spec/presenters/user_presenter_spec.rb spec/services/protected_tags/update_service_spec.rb spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb spec/lib/gitlab/gitaly_client/diff_spec.rb spec/services/ci/runners/process_runner_version_update_service_spec.rb spec/graphql/types/commit_encoding_enum_spec.rb spec/lib/gitlab/insecure_key_fingerprint_spec.rb spec/lib/gitlab/email/smime/signer_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/services/merge_requests/create_approval_event_service_spec.rb spec/views/layouts/group.html.haml_spec.rb spec/models/releases/source_spec.rb spec/lib/gitlab/metrics/dashboard/importer_spec.rb spec/lib/gitlab/graphql/limit/field_call_count_spec.rb spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb spec/services/projects/batch_open_issues_count_service_spec.rb spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb spec/lib/system_check/sidekiq_check_spec.rb spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb spec/lib/gitlab/auth/ldap/authentication_spec.rb spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb spec/lib/gitlab/color_schemes_spec.rb spec/models/projects/import_export/relation_export_upload_spec.rb spec/lib/gitlab/github_import/settings_spec.rb spec/lib/gitlab/memory/instrumentation_spec.rb spec/lib/gitlab/qa_spec.rb spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb spec/lib/gitlab/health_checks/middleware_spec.rb spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb spec/services/projects/deploy_tokens/destroy_service_spec.rb spec/lib/gitlab/throttle_spec.rb spec/services/spam/ham_service_spec.rb spec/initializers/diagnostic_reports_spec.rb spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb spec/models/alerting/project_alerting_setting_spec.rb spec/lib/gitlab/import_export/version_checker_spec.rb spec/lib/gitlab/hook_data/subgroup_builder_spec.rb spec/serializers/group_access_token_serializer_spec.rb spec/graphql/types/group_member_relation_enum_spec.rb spec/services/metrics/global_metrics_update_service_spec.rb spec/services/merge_requests/mergeability/check_open_status_service_spec.rb spec/graphql/types/release_assets_type_spec.rb spec/graphql/types/root_storage_statistics_type_spec.rb spec/serializers/import/fogbugz_provider_repo_entity_spec.rb spec/config/smime_signature_settings_spec.rb spec/lib/generators/batched_background_migration/batched_background_migration_generator_spec.rb spec/helpers/url_helper_spec.rb spec/graphql/resolvers/concerns/resolves_ids_spec.rb spec/lib/gitlab/process_memory_cache/helper_spec.rb spec/lib/microsoft_teams/notifier_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb spec/views/devise/shared/_error_messages.html.haml_spec.rb spec/serializers/accessibility_reports_comparer_entity_spec.rb spec/lib/gitlab/ci/yaml_processor/dag_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb spec/helpers/preferred_language_switcher_helper_spec.rb spec/services/emails/confirm_service_spec.rb spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb spec/lib/gitlab/git/patches/patch_spec.rb spec/graphql/types/projects/service_type_enum_spec.rb spec/graphql/types/ci/config_variable_type_spec.rb spec/lib/gitlab/phabricator_import/representation/task_spec.rb spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb spec/support_specs/graphql/field_selection_spec.rb spec/lib/gitlab/language_data_spec.rb spec/presenters/deploy_key_presenter_spec.rb spec/serializers/evidences/issue_entity_spec.rb spec/views/notify/new_achievement_email.html.haml_spec.rb spec/rubocop/cop/scalability/idempotent_worker_spec.rb spec/graphql/types/design_management/design_collection_type_spec.rb spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb spec/graphql/types/ci/config/config_type_spec.rb spec/lib/api/entities/projects/topic_spec.rb spec/graphql/types/packages/helm/maintainer_type_spec.rb spec/helpers/terms_helper_spec.rb spec/helpers/export_helper_spec.rb spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rbKnapsack report generator started!1230warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.1232Run options: exclude {:quarantine=>true, :level=>"background_migration"}1233Test environment set up in 0.813323228 seconds1234ProjectPolicy1235 does not include the read permissions when the issue author is not a member of the private project1236 with no project feature1237 returns false1238 behaves like model with wiki policies1239 container_level: :public, access_level: :enabled, membership: :admin, access: :all1240 allows actions based on membership1241 container_level: :public, access_level: :enabled, membership: :maintainer, access: :maintainer1242 allows actions based on membership1243 container_level: :public, access_level: :enabled, membership: :developer, access: :developer1244 allows actions based on membership1245 container_level: :public, access_level: :enabled, membership: :reporter, access: :reporter1246 allows actions based on membership1247 container_level: :public, access_level: :enabled, membership: :guest, access: :guest1248 allows actions based on membership1249 container_level: :public, access_level: :enabled, membership: :non_member, access: :guest1250 allows actions based on membership1251 container_level: :public, access_level: :enabled, membership: :anonymous, access: :guest1252 allows actions based on membership1253 container_level: :public, access_level: :private, membership: :admin, access: :all1254 allows actions based on membership1255 container_level: :public, access_level: :private, membership: :maintainer, access: :maintainer1256 allows actions based on membership1257 container_level: :public, access_level: :private, membership: :developer, access: :developer1258 allows actions based on membership1259 container_level: :public, access_level: :private, membership: :reporter, access: :reporter1260 allows actions based on membership1261 container_level: :public, access_level: :private, membership: :guest, access: :guest1262 allows actions based on membership1263 container_level: :public, access_level: :private, membership: :non_member, access: nil1264 allows actions based on membership1265 container_level: :public, access_level: :private, membership: :anonymous, access: nil1266 allows actions based on membership1267 container_level: :public, access_level: :disabled, membership: :admin, access: nil1268 allows actions based on membership1269 container_level: :public, access_level: :disabled, membership: :maintainer, access: nil1270 allows actions based on membership1271 container_level: :public, access_level: :disabled, membership: :developer, access: nil1272 allows actions based on membership1273 container_level: :public, access_level: :disabled, membership: :reporter, access: nil1274 allows actions based on membership1275 container_level: :public, access_level: :disabled, membership: :guest, access: nil1276 allows actions based on membership1277 container_level: :public, access_level: :disabled, membership: :non_member, access: nil1278 allows actions based on membership1279 container_level: :public, access_level: :disabled, membership: :anonymous, access: nil1280 allows actions based on membership1281 container_level: :internal, access_level: :enabled, membership: :admin, access: :all1282 allows actions based on membership1283 container_level: :internal, access_level: :enabled, membership: :maintainer, access: :maintainer1284 allows actions based on membership1285 container_level: :internal, access_level: :enabled, membership: :developer, access: :developer1286 allows actions based on membership1287 container_level: :internal, access_level: :enabled, membership: :reporter, access: :reporter1288 allows actions based on membership1289 container_level: :internal, access_level: :enabled, membership: :guest, access: :guest1290 allows actions based on membership1291 container_level: :internal, access_level: :enabled, membership: :non_member, access: :guest1292 allows actions based on membership1293 container_level: :internal, access_level: :enabled, membership: :anonymous, access: nil1294 allows actions based on membership1295 container_level: :internal, access_level: :private, membership: :admin, access: :all1296 allows actions based on membership1297 container_level: :internal, access_level: :private, membership: :maintainer, access: :maintainer1298 allows actions based on membership1299 container_level: :internal, access_level: :private, membership: :developer, access: :developer1300 allows actions based on membership1301 container_level: :internal, access_level: :private, membership: :reporter, access: :reporter1302 allows actions based on membership1303 container_level: :internal, access_level: :private, membership: :guest, access: :guest1304 allows actions based on membership1305 container_level: :internal, access_level: :private, membership: :non_member, access: nil1306 allows actions based on membership1307 container_level: :internal, access_level: :private, membership: :anonymous, access: nil1308 allows actions based on membership1309 container_level: :internal, access_level: :disabled, membership: :admin, access: nil1310 allows actions based on membership1311 container_level: :internal, access_level: :disabled, membership: :maintainer, access: nil1312 allows actions based on membership1313 container_level: :internal, access_level: :disabled, membership: :developer, access: nil1314 allows actions based on membership1315 container_level: :internal, access_level: :disabled, membership: :reporter, access: nil1316 allows actions based on membership1317 container_level: :internal, access_level: :disabled, membership: :guest, access: nil1318 allows actions based on membership1319 container_level: :internal, access_level: :disabled, membership: :non_member, access: nil1320 allows actions based on membership1321 container_level: :internal, access_level: :disabled, membership: :anonymous, access: nil1322 allows actions based on membership1323 container_level: :private, access_level: :private, membership: :admin, access: :all1324 allows actions based on membership1325 container_level: :private, access_level: :private, membership: :maintainer, access: :maintainer1326 allows actions based on membership1327 container_level: :private, access_level: :private, membership: :developer, access: :developer1328 allows actions based on membership1329 container_level: :private, access_level: :private, membership: :reporter, access: :reporter1330 allows actions based on membership1331 container_level: :private, access_level: :private, membership: :guest, access: :guest1332 allows actions based on membership1333 container_level: :private, access_level: :private, membership: :non_member, access: nil1334 allows actions based on membership1335 container_level: :private, access_level: :private, membership: :anonymous, access: nil1336 allows actions based on membership1337 container_level: :private, access_level: :disabled, membership: :admin, access: nil1338 allows actions based on membership1339 container_level: :private, access_level: :disabled, membership: :maintainer, access: nil1340 allows actions based on membership1341 container_level: :private, access_level: :disabled, membership: :developer, access: nil1342 allows actions based on membership1343 container_level: :private, access_level: :disabled, membership: :reporter, access: nil1344 allows actions based on membership1345 container_level: :private, access_level: :disabled, membership: :guest, access: nil1346 allows actions based on membership1347 container_level: :private, access_level: :disabled, membership: :non_member, access: nil1348 allows actions based on membership1349 container_level: :private, access_level: :disabled, membership: :anonymous, access: nil1350 allows actions based on membership1351 issues feature1352 when the feature is disabled1353 does not include the issues permissions1354 disables boards and lists permissions1355 when external tracker configured1356 does not include the issues permissions1357 merge requests feature1358 disallows all permissions when the feature is disabled1359 for a guest in a private project1360 disallows the guest from all merge request permissions1361 when both issues and merge requests are disabled1362 does not include the issues permissions1363 creating_merge_request_in1364 when the current_user can download_code1365 when project is public1366 when the current_user is guest1367 is expected to be allowed :create_merge_request_in1368 when project is internal1369 when the current_user is guest1370 is expected to be allowed :create_merge_request_in1371 when project is private1372 when the current_user is guest1373 is expected not to be allowed :create_merge_request_in1374 when the current_user is reporter or above1375 is expected to be allowed :create_merge_request_in1376 when the current_user can not download code1377 when project is public1378 when the current_user is guest1379 is expected not to be allowed :create_merge_request_in1380 when project is internal1381 when the current_user is guest1382 is expected not to be allowed :create_merge_request_in1383 when project is private1384 when the current_user is guest1385 is expected not to be allowed :create_merge_request_in1386 when the current_user is reporter or above1387 is expected not to be allowed :create_merge_request_in1388 pipeline feature1389 for confirmed user1390 allows modify pipelines1391 for unconfirmed user1392 disallows to modify pipelines1393 destroy permission1394 for developers1395 prevents :destroy_pipeline1396 for maintainers1397 prevents :destroy_pipeline1398 for project owner1399 allows :destroy_pipeline1400 on archived projects1401 prevents :destroy_pipeline1402 on archived pending_delete projects1403 allows :destroy_pipeline1404 builds feature1405 when builds are disabled1406 disallows all permissions except pipeline when the feature is disabled1407 when builds are disabled only for some users1408 disallows pipeline and commit_status permissions1409 repository feature1410 when user is a project member1411 when it is disabled1412 disallows all permissions1413 when user is non-member1414 when access level is private1415 disallows all permissions1416 behaves like project policies as anonymous1417 abilities for public projects1418 when a project has pending invites1419 does not grant owner access1420 behaves like archived project policies1421 when the project is archived1422 disables write actions on all relevant project features1423 disables some other important write actions1424 does not disable other abilities1425 abilities for non-public projects1426 is expected to be banned1427 behaves like project policies as guest1428 as a direct project member1429 abilities for public projects1430 is expected not to be allowed :set_note_created_at1431 abilities for non-public projects1432 is expected not to be allowed :set_note_created_at1433 behaves like deploy token does not get confused with user1434 is expected not to be allowed :set_note_created_at1435 behaves like archived project policies1436 when the project is archived1437 disables write actions on all relevant project features1438 disables some other important write actions1439 does not disable other abilities1440 public builds enabled1441 is expected to be allowed :read_pipeline1442 when public builds disabled1443 is expected not to be allowed :read_pipeline1444 when builds are disabled1445 is expected to be allowed :read_pipeline1446 as an inherited member from the group1447 abilities for private projects1448 is expected not to be allowed :set_note_created_at1449 behaves like project policies as reporter1450 abilities for non-public projects1451 is expected not to be allowed :set_note_created_at1452 behaves like deploy token does not get confused with user1453 is expected not to be allowed :set_note_created_at1454 behaves like archived project policies1455 when the project is archived1456 disables write actions on all relevant project features1457 disables some other important write actions1458 does not disable other abilities1459 as an inherited member from the group1460 abilities for private projects1461 is expected not to be allowed :set_note_created_at1462 behaves like project policies as developer1463 abilities for non-public projects1464 is expected not to be allowed :set_note_created_at1465 behaves like deploy token does not get confused with user1466 is expected not to be allowed :set_note_created_at1467 behaves like archived project policies1468 when the project is archived1469 disables write actions on all relevant project features1470 disables some other important write actions1471 does not disable other abilities1472 as an inherited member from the group1473 abilities for private projects1474 is expected not to be allowed :set_note_created_at1475 behaves like project policies as maintainer1476 abilities for non-public projects1477 is expected not to be allowed :set_note_created_at1478 behaves like deploy token does not get confused with user1479 is expected not to be allowed :set_note_created_at1480 behaves like archived project policies1481 when the project is archived1482 disables write actions on all relevant project features1483 disables some other important write actions1484 does not disable other abilities1485 behaves like project policies as owner1486 abilities for non-public projects1487 is expected to be allowed :set_note_created_at1488 behaves like deploy token does not get confused with user1489 is expected not to be allowed :set_note_created_at1490 behaves like archived project policies1491 when the project is archived1492 disables write actions on all relevant project features1493 disables some other important write actions1494 does not disable other abilities1495 behaves like project policies as admin with admin mode1496 abilities for non-public projects1497 is expected to be allowed :set_note_created_at1498 deploy token does not get confused with user1499 is expected not to be allowed :set_note_created_at1500 behaves like archived project policies1501 when the project is archived1502 disables write actions on all relevant project features1503 disables some other important write actions1504 does not disable other abilities1505 abilities for all project visibility1506 behaves like project private features with read_all_resources ability1507 for public projects1508 allows the download_code ability1509 for internal projects1510 allows the download_code ability1511 for private projects1512 allows the download_code ability1513 behaves like project policies as admin without admin mode1514 abilities for non-public projects1515 is expected to be banned1516 deploy token does not get confused with user1517 is expected to be banned1518 when a public project has merge requests allowing access1519 does not allow pushing code1520 allows pushing if the user is a member with push access to the target project1521 disallows abilities to a maintainer if the merge request was closed1522 importing members from another project1523 with maintainer1524 is expected to be allowed :import_project_members_from_another_project1525 with owner1526 is expected to be allowed :import_project_members_from_another_project1527 with guest1528 is expected to be disallowed :import_project_members_from_another_project1529 with reporter1530 is expected to be disallowed :import_project_members_from_another_project1531 with developer1532 is expected to be disallowed :import_project_members_from_another_project1533 with anonymous1534 is expected to be disallowed :import_project_members_from_another_project1535 with an admin1536 when admin mode is enabled1537 is expected to be allowed :import_project_members_from_another_project1538 when admin mode is disabled1539 is expected not to be allowed :import_project_members_from_another_project1540 importing work items1541 with reporter1542 is expected to be allowed :import_work_items1543 with developer1544 is expected to be allowed :import_work_items1545 with maintainer1546 is expected to be allowed :import_work_items1547 with owner1548 is expected to be allowed :import_work_items1549 with guest1550 is expected to be disallowed :import_work_items1551 with anonymous1552 is expected to be disallowed :import_work_items1553 with an admin1554 when admin mode is enabled1555 is expected to be allowed :import_work_items1556 when admin mode is disabled1557 is expected not to be allowed :import_work_items1558 reading usage quotas1559 with maintainer1560 is expected to be allowed :read_usage_quotas1561 with owner1562 is expected to be allowed :read_usage_quotas1563 with guest1564 is expected to be disallowed :read_usage_quotas1565 with reporter1566 is expected to be disallowed :read_usage_quotas1567 with developer1568 is expected to be disallowed :read_usage_quotas1569 with anonymous1570 is expected to be disallowed :read_usage_quotas1571 with an admin1572 when admin mode is enabled1573 is expected to be allowed :read_usage_quotas1574 when admin mode is disabled1575 is expected not to be allowed :read_usage_quotas1576 behaves like clusterable policies1577 #add_cluster?1578 with a reporter1579 is expected not to be allowed :read_cluster1580 is expected not to be allowed :add_cluster1581 is expected not to be allowed :create_cluster1582 is expected not to be allowed :update_cluster1583 is expected not to be allowed :admin_cluster1584 with a developer1585 is expected to be allowed :read_cluster1586 is expected not to be allowed :add_cluster1587 is expected not to be allowed :create_cluster1588 is expected not to be allowed :update_cluster1589 is expected not to be allowed :admin_cluster1590 with a maintainer1591 with no clusters1592 is expected to be allowed :read_cluster1593 is expected to be allowed :add_cluster1594 is expected to be allowed :create_cluster1595 is expected to be allowed :update_cluster1596 is expected to be allowed :admin_cluster1597 owner access1598 personal project1599 allows owner access1600 group project1601 group members1602 allows owner access1603 with timeline event tags1604 when user is member of the project1605 allows access to timeline event tags1606 when user is a maintainer/owner1607 allows to create timeline event tags1608 when user is a developer/guest/reporter1609 disallows creation1610 when user is not a member of the project1611 disallows access to the timeline event tags1612 reading a project1613 allows access when a user has read access to the repo1614 never checks the external service1615 with an external authorization service1616 allows access when the external service allows it1617 prevents all but seeing a public project in a list when access is denied1618 passes the full path to external authorization for logging purposes1619 with an admin1620 when admin mode is enabled1621 does not check the external service and allows access1622 when admin mode is disabled1623 checks the external service and allows access1624 forking a project1625 anonymous user1626 is expected to be disallowed :fork_project1627 project member1628 guest1629 is expected to be disallowed :fork_project1630 reporter1631 is expected to be allowed :fork_project1632 developer1633 is expected to be allowed :fork_project1634 maintainer1635 is expected to be allowed :fork_project1636 create_task1637 when user is member of the project1638 is expected to be allowed :create_task1639 read_grafana1640 project_visibility: :public, role: :anonymous, allowed: false1641 is expected not to be allowed :read_grafana1642 project_visibility: :public, role: :guest, allowed: false1643 is expected not to be allowed :read_grafana1644 project_visibility: :public, role: :reporter, allowed: true1645 is expected to be allowed :read_grafana1646 project_visibility: :internal, role: :anonymous, allowed: false1647 is expected not to be allowed :read_grafana1648 project_visibility: :internal, role: :guest, allowed: true1649 is expected to be allowed :read_grafana1650 project_visibility: :internal, role: :reporter, allowed: true1651 is expected to be allowed :read_grafana1652 project_visibility: :private, role: :anonymous, allowed: false1653 is expected not to be allowed :read_grafana1654 project_visibility: :private, role: :guest, allowed: true1655 is expected to be allowed :read_grafana1656 project_visibility: :private, role: :reporter, allowed: true1657 is expected to be allowed :read_grafana1658 read_prometheus1659 project_visibility: :public, role: :anonymous, allowed: false1660 is expected not to be allowed :read_prometheus1661 project_visibility: :public, role: :guest, allowed: false1662 is expected not to be allowed :read_prometheus1663 project_visibility: :public, role: :reporter, allowed: true1664 is expected to be allowed :read_prometheus1665 project_visibility: :internal, role: :anonymous, allowed: false1666 is expected not to be allowed :read_prometheus1667 project_visibility: :internal, role: :guest, allowed: false1668 is expected not to be allowed :read_prometheus1669 project_visibility: :internal, role: :reporter, allowed: true1670 is expected to be allowed :read_prometheus1671 project_visibility: :private, role: :anonymous, allowed: false1672 is expected not to be allowed :read_prometheus1673 project_visibility: :private, role: :guest, allowed: false1674 is expected not to be allowed :read_prometheus1675 project_visibility: :private, role: :reporter, allowed: true1676 is expected to be allowed :read_prometheus1677 update_max_artifacts_size1678 when no user1679 is expected not to be allowed :update_max_artifacts_size1680 admin1681 when admin mode is enabled1682 is expected to be allowed :update_max_artifacts_size1683 when admin mode is disabled1684 is expected not to be allowed :update_max_artifacts_size1685 guest1686 is expected not to be allowed :update_max_artifacts_size1687 reporter1688 is expected not to be allowed :update_max_artifacts_size1689 developer1690 is expected not to be allowed :update_max_artifacts_size1691 maintainer1692 is expected not to be allowed :update_max_artifacts_size1693 owner1694 is expected not to be allowed :update_max_artifacts_size1695 read_storage_disk_path1696 when no user1697 is expected not to be allowed :read_storage_disk_path1698 admin1699 when admin mode is enabled1700 is expected to be allowed :read_storage_disk_path1701 when admin mode is disabled1702 is expected not to be allowed :read_storage_disk_path1703 guest1704 is expected not to be allowed :read_storage_disk_path1705 reporter1706 is expected not to be allowed :read_storage_disk_path1707 developer1708 is expected not to be allowed :read_storage_disk_path1709 maintainer1710 is expected not to be allowed :read_storage_disk_path1711 owner1712 is expected not to be allowed :read_storage_disk_path1713 alert bot1714 is expected to be allowed :reporter_access1715 within a private project1716 is expected to be allowed :admin_issue1717 set_pipeline_variables1718 when user is developer1719 when project allows user defined variables1720 is expected to be allowed :set_pipeline_variables1721 when project restricts use of user defined variables1722 is expected not to be allowed :set_pipeline_variables1723 when user is maintainer1724 when project allows user defined variables1725 is expected to be allowed :set_pipeline_variables1726 when project restricts use of user defined variables1727 is expected to be allowed :set_pipeline_variables1728 support bot1729 with service desk disabled1730 is expected to be allowed :public_access1731 is expected not to be allowed :read_project1732 with service desk enabled1733 is expected to be allowed :read_work_item1734 when issues are protected members only1735 is expected to be allowed :read_work_item1736 project bots1737 project_bot_access1738 when regular user and part of the project1739 is expected not to be allowed :project_bot_access1740 when project bot and not part of the project1741 is expected not to be allowed :project_bot_access1742 when project bot and part of the project1743 is expected to be allowed :project_bot_access1744 with resource access tokens1745 is expected not to be allowed :create_resource_access_tokens1746 read_prometheus_alerts1747 with admin1748 when admin mode is enabled1749 is expected to be allowed :read_prometheus_alerts1750 when admin mode is disabled1751 is expected to be disallowed :read_prometheus_alerts1752 with owner1753 is expected to be allowed :read_prometheus_alerts1754 with maintainer1755 is expected to be allowed :read_prometheus_alerts1756 with developer1757 is expected to be disallowed :read_prometheus_alerts1758 with reporter1759 is expected to be disallowed :read_prometheus_alerts1760 with guest1761 is expected to be disallowed :read_prometheus_alerts1762 with anonymous1763 is expected to be disallowed :read_prometheus_alerts1764 metrics_dashboard feature1765 public project1766 feature private1767 with reporter1768 is expected to be allowed :metrics_dashboard1769 is expected to be allowed :read_prometheus1770 is expected to be allowed :read_deployment1771 is expected to be allowed :read_metrics_user_starred_dashboard1772 is expected to be allowed :create_metrics_user_starred_dashboard1773 with guest1774 is expected to be disallowed :metrics_dashboard1775 with anonymous1776 is expected to be disallowed :metrics_dashboard1777 feature enabled1778 with reporter1779 is expected to be allowed :metrics_dashboard1780 is expected to be allowed :read_prometheus1781 is expected to be allowed :read_deployment1782 is expected to be allowed :read_metrics_user_starred_dashboard1783 is expected to be allowed :create_metrics_user_starred_dashboard1784 with guest1785 is expected to be allowed :metrics_dashboard1786 is expected to be disallowed :read_prometheus1787 is expected to be allowed :read_deployment1788 is expected to be allowed :read_metrics_user_starred_dashboard1789 is expected to be allowed :create_metrics_user_starred_dashboard1790 with anonymous1791 is expected to be allowed :metrics_dashboard1792 is expected to be disallowed :read_prometheus1793 is expected to be allowed :read_deployment1794 is expected to be disallowed :read_metrics_user_starred_dashboard1795 is expected to be disallowed :create_metrics_user_starred_dashboard1796 internal project1797 feature private1798 with reporter1799 is expected to be allowed :metrics_dashboard1800 is expected to be allowed :read_prometheus1801 is expected to be allowed :read_deployment1802 is expected to be allowed :read_metrics_user_starred_dashboard1803 is expected to be allowed :create_metrics_user_starred_dashboard1804 with guest1805 is expected to be disallowed :metrics_dashboard1806 is expected to be disallowed :read_prometheus1807 with anonymous1808 is expected to be disallowed :metrics_dashboard1809 is expected to be disallowed :read_prometheus1810 feature enabled1811 with reporter1812 is expected to be allowed :metrics_dashboard1813 is expected to be allowed :read_prometheus1814 is expected to be allowed :read_deployment1815 is expected to be allowed :read_metrics_user_starred_dashboard1816 is expected to be allowed :create_metrics_user_starred_dashboard1817 with guest1818 is expected to be allowed :metrics_dashboard1819 is expected to be disallowed :read_prometheus1820 is expected to be allowed :read_deployment1821 is expected to be allowed :read_metrics_user_starred_dashboard1822 is expected to be allowed :create_metrics_user_starred_dashboard1823 with anonymous1824 is expected to be disallowed :metrics_dashboard1825 is expected to be disallowed :read_prometheus1826 private project1827 feature private1828 with reporter1829 is expected to be allowed :metrics_dashboard1830 is expected to be allowed :read_prometheus1831 is expected to be allowed :read_deployment1832 is expected to be allowed :read_metrics_user_starred_dashboard1833 is expected to be allowed :create_metrics_user_starred_dashboard1834 with guest1835 is expected to be disallowed :metrics_dashboard1836 is expected to be disallowed :read_prometheus1837 with anonymous1838 is expected to be disallowed :metrics_dashboard1839 is expected to be disallowed :read_prometheus1840 feature enabled1841 with reporter1842 is expected to be allowed :metrics_dashboard1843 is expected to be allowed :read_prometheus1844 is expected to be allowed :read_deployment1845 is expected to be allowed :read_metrics_user_starred_dashboard1846 is expected to be allowed :create_metrics_user_starred_dashboard1847 with guest1848 is expected to be disallowed :metrics_dashboard1849 is expected to be disallowed :read_prometheus1850 with anonymous1851 is expected to be disallowed :metrics_dashboard1852 is expected to be disallowed :read_prometheus1853 feature disabled1854 with reporter1855 is expected to be disallowed :metrics_dashboard1856 with guest1857 is expected to be disallowed :metrics_dashboard1858 with anonymous1859 is expected to be disallowed :metrics_dashboard1860 deploy key access1861 private project1862 when a read deploy key is enabled in the project1863 is expected to be allowed :download_code1864 is expected to be disallowed :push_code1865 is expected to be disallowed :read_project1866 when a write deploy key is enabled in the project1867 is expected to be allowed :download_code1868 is expected to be allowed :push_code1869 is expected to be disallowed :read_project1870 when the deploy key is not enabled in the project1871 is expected to be disallowed :download_code1872 is expected to be disallowed :push_code1873 is expected to be disallowed :read_project1874 deploy token access1875 private project1876 a deploy token with read_registry scope1877 is expected to be allowed :read_container_image1878 is expected to be disallowed :create_container_image1879 with registry disabled1880 is expected to be disallowed :read_container_image1881 is expected to be disallowed :create_container_image1882 a deploy token with write_registry scope1883 is expected to be disallowed :read_container_image1884 is expected to be allowed :create_container_image1885 with registry disabled1886 is expected to be disallowed :read_container_image1887 is expected to be disallowed :create_container_image1888 a deploy token with no registry scope1889 is expected to be disallowed :read_container_image1890 is expected to be disallowed :create_container_image1891 a deploy token with read_package_registry scope1892 is expected to be allowed :read_project1893 is expected to be allowed :read_package1894 is expected to be disallowed :create_package1895 behaves like package access with repository disabled1896 is expected to be allowed :read_package1897 a deploy token with write_package_registry scope1898 is expected to be allowed :create_package1899 is expected to be allowed :read_package1900 is expected to be allowed :read_project1901 is expected to be allowed :destroy_package1902 behaves like package access with repository disabled1903 is expected to be allowed :read_package1904 public project1905 a deploy token with read_registry scope1906 is expected to be allowed :read_container_image1907 is expected to be disallowed :create_container_image1908 with registry disabled1909 is expected to be disallowed :read_container_image1910 is expected to be disallowed :create_container_image1911 with registry private1912 is expected to be allowed :read_container_image1913 is expected to be disallowed :create_container_image1914 a deploy token with write_registry scope1915 is expected to be allowed :read_container_image1916 is expected to be allowed :create_container_image1917 with registry disabled1918 is expected to be disallowed :read_container_image1919 is expected to be disallowed :create_container_image1920 with registry private1921 is expected to be allowed :read_container_image1922 is expected to be allowed :create_container_image1923 a deploy token with no registry scope1924 is expected to be disallowed :read_container_image1925 is expected to be disallowed :create_container_image1926 create_web_ide_terminal1927 with admin1928 when admin mode enabled1929 is expected to be allowed :create_web_ide_terminal1930 when admin mode disabled1931 is expected to be disallowed :create_web_ide_terminal1932 with owner1933 is expected to be allowed :create_web_ide_terminal1934 with maintainer1935 is expected to be allowed :create_web_ide_terminal1936 with developer1937 is expected to be disallowed :create_web_ide_terminal1938 with reporter1939 is expected to be disallowed :create_web_ide_terminal1940 with guest1941 is expected to be disallowed :create_web_ide_terminal1942 with non member1943 is expected to be disallowed :create_web_ide_terminal1944 with anonymous1945 is expected to be disallowed :create_web_ide_terminal1946 read_repository_graphs1947 when user can download_code1948 is expected to be allowed :read_repository_graphs1949 when user cannot download_code1950 is expected to be disallowed :read_repository_graphs1951 security configuration feature1952 guest1953 prevents reading security configuration1954 reporter1955 prevents reading security configuration1956 developer1957 allows reading security configuration1958 maintainer1959 allows reading security configuration1960 owner1961 allows reading security configuration1962 infrastructure google cloud feature1963 guest1964 disallows managing google cloud1965 reporter1966 disallows managing google cloud1967 developer1968 disallows managing google cloud1969 maintainer1970 allows managing google cloud1971 owner1972 allows managing google cloud1973 infrastructure aws feature1974 guest1975 disallows managing aws1976 reporter1977 disallows managing aws1978 developer1979 disallows managing aws1980 maintainer1981 allows managing aws1982 owner1983 allows managing aws1984 design permissions1985 when design management is not available1986 is expected not to be allowed :read_design_activity and :read_design1987 when design management is available1988 is expected to be allowed :read_design_activity and :read_design1989 read_build_report_results1990 when user can read_build and read_pipeline1991 is expected to be allowed :read_build_report_results1992 when user can read_build but cannot read_pipeline1993 is expected to be disallowed :read_build_report_results1994 when user cannot read_build but can read_pipeline1995 is expected to be disallowed :read_build_report_results1996 when user cannot read_build and cannot read_pipeline1997 is expected to be disallowed :read_build_report_results1998 read_package1999 with admin2000 is expected to be allowed :read_package2001 behaves like package access with repository disabled2002 is expected to be allowed :read_package2003 with owner2004 is expected to be allowed :read_package2005 with maintainer2006 is expected to be allowed :read_package2007 with developer2008 is expected to be allowed :read_package2009 with reporter2010 is expected to be allowed :read_package2011 with guest2012 is expected to be allowed :read_package2013 with non member2014 is expected to be allowed :read_package2015 with anonymous2016 is expected to be allowed :read_package2017 admin_package2018 with admin2019 when admin mode enabled2020 is expected to be allowed :admin_package2021 when admin mode disabled2022 is expected to be disallowed :admin_package2023 with owner2024 is expected to be allowed :admin_package2025 with maintainer2026 is expected to be allowed :admin_package2027 with developer2028 is expected to be disallowed :admin_package2029 with reporter2030 is expected to be disallowed :admin_package2031 with guest2032 is expected to be disallowed :admin_package2033 with non_member2034 is expected to be disallowed :admin_package2035 with anonymous2036 is expected to be disallowed :admin_package2037 view_package_registry_project_settings2038 with packages disabled and2039 with registry enabled2040 with an admin user2041 when admin mode enabled2042 is expected to be allowed :view_package_registry_project_settings2043 when admin mode disabled2044 is expected to be disallowed :view_package_registry_project_settings2045 with owner2046 is expected to be allowed :view_package_registry_project_settings2047 with maintainer2048 is expected to be allowed :view_package_registry_project_settings2049 with developer2050 is expected to be disallowed :view_package_registry_project_settings2051 with reporter2052 is expected to be disallowed :view_package_registry_project_settings2053 with guest2054 is expected to be disallowed :view_package_registry_project_settings2055 with non_member2056 is expected to be disallowed :view_package_registry_project_settings2057 with anonymous2058 is expected to be disallowed :view_package_registry_project_settings2059 with registry disabled2060 with admin user2061 when admin mode enabled2062 is expected to be disallowed :view_package_registry_project_settings2063 when admin mode disabled2064 is expected to be disallowed :view_package_registry_project_settings2065 with owner2066 is expected to be disallowed :view_package_registry_project_settings2067 with maintainer2068 is expected to be disallowed :view_package_registry_project_settings2069 with developer2070 is expected to be disallowed :view_package_registry_project_settings2071 with reporter2072 is expected to be disallowed :view_package_registry_project_settings2073 with guest2074 is expected to be disallowed :view_package_registry_project_settings2075 with non_member2076 is expected to be disallowed :view_package_registry_project_settings2077 with anonymous2078 is expected to be disallowed :view_package_registry_project_settings2079 with registry disabled and2080 with packages enabled2081 with an admin user2082 when admin mode enabled2083 is expected to be allowed :view_package_registry_project_settings2084 when admin mode disabled2085 is expected to be disallowed :view_package_registry_project_settings2086 with owner2087 is expected to be allowed :view_package_registry_project_settings2088 with maintainer2089 is expected to be allowed :view_package_registry_project_settings2090 with developer2091 is expected to be disallowed :view_package_registry_project_settings2092 with reporter2093 is expected to be disallowed :view_package_registry_project_settings2094 with guest2095 is expected to be disallowed :view_package_registry_project_settings2096 with non_member2097 is expected to be disallowed :view_package_registry_project_settings2098 with anonymous2099 is expected to be disallowed :view_package_registry_project_settings2100 with packages disabled2101 with admin user2102 when admin mode enabled2103 is expected to be disallowed :view_package_registry_project_settings2104 when admin mode disabled2105 is expected to be disallowed :view_package_registry_project_settings2106 with owner2107 is expected to be disallowed :view_package_registry_project_settings2108 with maintainer2109 is expected to be disallowed :view_package_registry_project_settings2110 with developer2111 is expected to be disallowed :view_package_registry_project_settings2112 with reporter2113 is expected to be disallowed :view_package_registry_project_settings2114 with guest2115 is expected to be disallowed :view_package_registry_project_settings2116 with non_member2117 is expected to be disallowed :view_package_registry_project_settings2118 with anonymous2119 is expected to be disallowed :view_package_registry_project_settings2120 with registry & packages both disabled2121 with admin user2122 when admin mode enabled2123 is expected to be disallowed :view_package_registry_project_settings2124 when admin mode disabled2125 is expected to be disallowed :view_package_registry_project_settings2126 with owner2127 is expected to be disallowed :view_package_registry_project_settings2128 with maintainer2129 is expected to be disallowed :view_package_registry_project_settings2130 with developer2131 is expected to be disallowed :view_package_registry_project_settings2132 with reporter2133 is expected to be disallowed :view_package_registry_project_settings2134 with guest2135 is expected to be disallowed :view_package_registry_project_settings2136 with non_member2137 is expected to be disallowed :view_package_registry_project_settings2138 with anonymous2139 is expected to be disallowed :view_package_registry_project_settings2140 read_feature_flag2141 with maintainer2142 when repository is available2143 is expected to be allowed :read_feature_flag2144 when repository is disabled2145 is expected to be disallowed :read_feature_flag2146 with developer2147 when repository is available2148 is expected to be allowed :read_feature_flag2149 with reporter2150 when repository is available2151 is expected to be disallowed :read_feature_flag2152 read_analytics2153 anonymous user2154 is expected to be allowed :read_analytics2155 with various analytics features2156 when analytics is disabled for the project2157 for guest user2158 is expected to be disallowed :read_cycle_analytics2159 is expected to be disallowed :read_insights2160 is expected to be disallowed :read_repository_graphs2161 is expected to be disallowed :read_ci_cd_analytics2162 for reporter user2163 is expected to be disallowed :read_cycle_analytics2164 is expected to be disallowed :read_insights2165 is expected to be disallowed :read_repository_graphs2166 is expected to be disallowed :read_ci_cd_analytics2167 for developer2168 is expected to be disallowed :read_cycle_analytics2169 is expected to be disallowed :read_insights2170 is expected to be disallowed :read_repository_graphs2171 is expected to be disallowed :read_ci_cd_analytics2172 when analytics is private for the project2173 for guest user2174 is expected to be allowed :read_cycle_analytics2175 is expected to be allowed :read_insights2176 is expected to be disallowed :read_repository_graphs2177 is expected to be disallowed :read_ci_cd_analytics2178 for reporter user2179 is expected to be allowed :read_cycle_analytics2180 is expected to be allowed :read_insights2181 is expected to be allowed :read_repository_graphs2182 is expected to be allowed :read_ci_cd_analytics2183 for developer2184 is expected to be allowed :read_cycle_analytics2185 is expected to be allowed :read_insights2186 is expected to be allowed :read_repository_graphs2187 is expected to be allowed :read_ci_cd_analytics2188 when analytics is enabled for the project2189 for guest user2190 is expected to be allowed :read_cycle_analytics2191 is expected to be allowed :read_insights2192 is expected to be disallowed :read_repository_graphs2193 is expected to be disallowed :read_ci_cd_analytics2194 for reporter user2195 is expected to be allowed :read_cycle_analytics2196 is expected to be allowed :read_insights2197 is expected to be allowed :read_repository_graphs2198 is expected to be allowed :read_ci_cd_analytics2199 for developer2200 is expected to be allowed :read_cycle_analytics2201 is expected to be allowed :read_insights2202 is expected to be allowed :read_repository_graphs2203 is expected to be allowed :read_ci_cd_analytics2204 project member2205 guest2206 is expected to be allowed :read_analytics2207 without access to Analytics2208 is expected to be disallowed :read_analytics2209 reporter2210 is expected to be allowed :read_analytics2211 without access to Analytics2212 is expected to be disallowed :read_analytics2213 developer2214 is expected to be allowed :read_analytics2215 without access to Analytics2216 is expected to be disallowed :read_analytics2217 maintainer2218 is expected to be allowed :read_analytics2219 without access to Analytics2220 is expected to be disallowed :read_analytics2221 read_ci_cd_analytics2222 public project2223 when public pipelines are disabled for the project2224 project member2225 guest2226 is expected to be disallowed :read_ci_cd_analytics2227 reporter2228 is expected to be allowed :read_ci_cd_analytics2229 developer2230 is expected to be allowed :read_ci_cd_analytics2231 maintainer2232 is expected to be allowed :read_ci_cd_analytics2233 non member2234 is expected to be disallowed :read_ci_cd_analytics2235 anonymous2236 is expected to be disallowed :read_ci_cd_analytics2237 when public pipelines are enabled for the project2238 project member2239 guest2240 is expected to be allowed :read_ci_cd_analytics2241 reporter2242 is expected to be allowed :read_ci_cd_analytics2243 developer2244 is expected to be allowed :read_ci_cd_analytics2245 maintainer2246 is expected to be allowed :read_ci_cd_analytics2247 non member2248 is expected to be allowed :read_ci_cd_analytics2249 anonymous2250 is expected to be allowed :read_ci_cd_analytics2251 private project2252 project member2253 guest2254 is expected to be disallowed :read_ci_cd_analytics2255 reporter2256 is expected to be allowed :read_ci_cd_analytics2257 developer2258 is expected to be allowed :read_ci_cd_analytics2259 maintainer2260 is expected to be allowed :read_ci_cd_analytics2261 non member2262 is expected to be disallowed :read_ci_cd_analytics2263 anonymous2264 is expected to be disallowed :read_ci_cd_analytics2265 behaves like Self-managed Core resource access tokens2266 with owner access2267 create resource access tokens2268 is expected to be allowed :create_resource_access_tokens2269 when resource access token creation is not allowed2270 is expected not to be allowed :create_resource_access_tokens2271 when parent group has project access token creation disabled2272 is expected not to be allowed :create_resource_access_tokens2273 with a personal namespace project2274 is expected to be allowed :create_resource_access_tokens2275 read resource access tokens2276 is expected to be allowed :read_resource_access_tokens2277 destroy resource access tokens2278 is expected to be allowed :destroy_resource_access_tokens2279 with developer access2280 create resource access tokens2281 is expected not to be allowed :create_resource_access_tokens2282 read resource access tokens2283 is expected not to be allowed :read_resource_access_tokens2284 destroy resource access tokens2285 is expected not to be allowed :destroy_resource_access_tokens2286 environments feature2287 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2288 allows/disallows the abilities based on the environments feature access level2289 project_visibility: :public, access_level: 20, role: :developer, allowed: true2290 allows/disallows the abilities based on the environments feature access level2291 project_visibility: :public, access_level: 20, role: :guest, allowed: true2292 allows/disallows the abilities based on the environments feature access level2293 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2294 allows/disallows the abilities based on the environments feature access level2295 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2296 allows/disallows the abilities based on the environments feature access level2297 project_visibility: :public, access_level: 10, role: :developer, allowed: true2298 allows/disallows the abilities based on the environments feature access level2299 project_visibility: :public, access_level: 10, role: :guest, allowed: false2300 allows/disallows the abilities based on the environments feature access level2301 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2302 allows/disallows the abilities based on the environments feature access level2303 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2304 allows/disallows the abilities based on the environments feature access level2305 project_visibility: :public, access_level: 0, role: :developer, allowed: false2306 allows/disallows the abilities based on the environments feature access level2307 project_visibility: :public, access_level: 0, role: :guest, allowed: false2308 allows/disallows the abilities based on the environments feature access level2309 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2310 allows/disallows the abilities based on the environments feature access level2311 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2312 allows/disallows the abilities based on the environments feature access level2313 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2314 allows/disallows the abilities based on the environments feature access level2315 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2316 allows/disallows the abilities based on the environments feature access level2317 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2318 allows/disallows the abilities based on the environments feature access level2319 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2320 allows/disallows the abilities based on the environments feature access level2321 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2322 allows/disallows the abilities based on the environments feature access level2323 project_visibility: :internal, access_level: 10, role: :guest, allowed: false2324 allows/disallows the abilities based on the environments feature access level2325 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2326 allows/disallows the abilities based on the environments feature access level2327 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2328 allows/disallows the abilities based on the environments feature access level2329 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2330 allows/disallows the abilities based on the environments feature access level2331 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2332 allows/disallows the abilities based on the environments feature access level2333 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2334 allows/disallows the abilities based on the environments feature access level2335 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2336 allows/disallows the abilities based on the environments feature access level2337 project_visibility: :private, access_level: 20, role: :developer, allowed: true2338 allows/disallows the abilities based on the environments feature access level2339 project_visibility: :private, access_level: 20, role: :guest, allowed: false2340 allows/disallows the abilities based on the environments feature access level2341 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2342 allows/disallows the abilities based on the environments feature access level2343 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2344 allows/disallows the abilities based on the environments feature access level2345 project_visibility: :private, access_level: 10, role: :developer, allowed: true2346 allows/disallows the abilities based on the environments feature access level2347 project_visibility: :private, access_level: 10, role: :guest, allowed: false2348 allows/disallows the abilities based on the environments feature access level2349 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2350 allows/disallows the abilities based on the environments feature access level2351 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2352 allows/disallows the abilities based on the environments feature access level2353 project_visibility: :private, access_level: 0, role: :developer, allowed: false2354 allows/disallows the abilities based on the environments feature access level2355 project_visibility: :private, access_level: 0, role: :guest, allowed: false2356 allows/disallows the abilities based on the environments feature access level2357 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2358 allows/disallows the abilities based on the environments feature access level2359 monitor feature2360 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2361 allows/disallows the abilities based on the monitor feature access level2362 project_visibility: :public, access_level: 20, role: :developer, allowed: true2363 allows/disallows the abilities based on the monitor feature access level2364 project_visibility: :public, access_level: 20, role: :guest, allowed: true2365 allows/disallows the abilities based on the monitor feature access level2366 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2367 allows/disallows the abilities based on the monitor feature access level2368 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2369 allows/disallows the abilities based on the monitor feature access level2370 project_visibility: :public, access_level: 10, role: :developer, allowed: true2371 allows/disallows the abilities based on the monitor feature access level2372 project_visibility: :public, access_level: 10, role: :guest, allowed: true2373 allows/disallows the abilities based on the monitor feature access level2374 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2375 allows/disallows the abilities based on the monitor feature access level2376 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2377 allows/disallows the abilities based on the monitor feature access level2378 project_visibility: :public, access_level: 0, role: :developer, allowed: false2379 allows/disallows the abilities based on the monitor feature access level2380 project_visibility: :public, access_level: 0, role: :guest, allowed: false2381 allows/disallows the abilities based on the monitor feature access level2382 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2383 allows/disallows the abilities based on the monitor feature access level2384 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2385 allows/disallows the abilities based on the monitor feature access level2386 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2387 allows/disallows the abilities based on the monitor feature access level2388 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2389 allows/disallows the abilities based on the monitor feature access level2390 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2391 allows/disallows the abilities based on the monitor feature access level2392 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2393 allows/disallows the abilities based on the monitor feature access level2394 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2395 allows/disallows the abilities based on the monitor feature access level2396 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2397 allows/disallows the abilities based on the monitor feature access level2398 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2399 allows/disallows the abilities based on the monitor feature access level2400 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2401 allows/disallows the abilities based on the monitor feature access level2402 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2403 allows/disallows the abilities based on the monitor feature access level2404 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2405 allows/disallows the abilities based on the monitor feature access level2406 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2407 allows/disallows the abilities based on the monitor feature access level2408 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2409 allows/disallows the abilities based on the monitor feature access level2410 project_visibility: :private, access_level: 20, role: :developer, allowed: true2411 allows/disallows the abilities based on the monitor feature access level2412 project_visibility: :private, access_level: 20, role: :guest, allowed: false2413 allows/disallows the abilities based on the monitor feature access level2414 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2415 allows/disallows the abilities based on the monitor feature access level2416 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2417 allows/disallows the abilities based on the monitor feature access level2418 project_visibility: :private, access_level: 10, role: :developer, allowed: true2419 allows/disallows the abilities based on the monitor feature access level2420 project_visibility: :private, access_level: 10, role: :guest, allowed: false2421 allows/disallows the abilities based on the monitor feature access level2422 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2423 allows/disallows the abilities based on the monitor feature access level2424 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2425 allows/disallows the abilities based on the monitor feature access level2426 project_visibility: :private, access_level: 0, role: :developer, allowed: false2427 allows/disallows the abilities based on the monitor feature access level2428 project_visibility: :private, access_level: 0, role: :guest, allowed: false2429 allows/disallows the abilities based on the monitor feature access level2430 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2431 allows/disallows the abilities based on the monitor feature access level2432 feature flags feature2433 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2434 allows/disallows the abilities based on the feature flags access level2435 project_visibility: :public, access_level: 20, role: :developer, allowed: true2436 allows/disallows the abilities based on the feature flags access level2437 project_visibility: :public, access_level: 20, role: :guest, allowed: true2438 allows/disallows the abilities based on the feature flags access level2439 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2440 allows/disallows the abilities based on the feature flags access level2441 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2442 allows/disallows the abilities based on the feature flags access level2443 project_visibility: :public, access_level: 10, role: :developer, allowed: true2444 allows/disallows the abilities based on the feature flags access level2445 project_visibility: :public, access_level: 10, role: :guest, allowed: true2446 allows/disallows the abilities based on the feature flags access level2447 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2448 allows/disallows the abilities based on the feature flags access level2449 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2450 allows/disallows the abilities based on the feature flags access level2451 project_visibility: :public, access_level: 0, role: :developer, allowed: false2452 allows/disallows the abilities based on the feature flags access level2453 project_visibility: :public, access_level: 0, role: :guest, allowed: false2454 allows/disallows the abilities based on the feature flags access level2455 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2456 allows/disallows the abilities based on the feature flags access level2457 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2458 allows/disallows the abilities based on the feature flags access level2459 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2460 allows/disallows the abilities based on the feature flags access level2461 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2462 allows/disallows the abilities based on the feature flags access level2463 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2464 allows/disallows the abilities based on the feature flags access level2465 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2466 allows/disallows the abilities based on the feature flags access level2467 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2468 allows/disallows the abilities based on the feature flags access level2469 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2470 allows/disallows the abilities based on the feature flags access level2471 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2472 allows/disallows the abilities based on the feature flags access level2473 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2474 allows/disallows the abilities based on the feature flags access level2475 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2476 allows/disallows the abilities based on the feature flags access level2477 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2478 allows/disallows the abilities based on the feature flags access level2479 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2480 allows/disallows the abilities based on the feature flags access level2481 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2482 allows/disallows the abilities based on the feature flags access level2483 project_visibility: :private, access_level: 20, role: :developer, allowed: true2484 allows/disallows the abilities based on the feature flags access level2485 project_visibility: :private, access_level: 20, role: :guest, allowed: false2486 allows/disallows the abilities based on the feature flags access level2487 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2488 allows/disallows the abilities based on the feature flags access level2489 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2490 allows/disallows the abilities based on the feature flags access level2491 project_visibility: :private, access_level: 10, role: :developer, allowed: true2492 allows/disallows the abilities based on the feature flags access level2493 project_visibility: :private, access_level: 10, role: :guest, allowed: false2494 allows/disallows the abilities based on the feature flags access level2495 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2496 allows/disallows the abilities based on the feature flags access level2497 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2498 allows/disallows the abilities based on the feature flags access level2499 project_visibility: :private, access_level: 0, role: :developer, allowed: false2500 allows/disallows the abilities based on the feature flags access level2501 project_visibility: :private, access_level: 0, role: :guest, allowed: false2502 allows/disallows the abilities based on the feature flags access level2503 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2504 allows/disallows the abilities based on the feature flags access level2505 Releases feature2506 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2507 allows/disallows the abilities based on the Releases access level2508 project_visibility: :public, access_level: 20, role: :developer, allowed: true2509 allows/disallows the abilities based on the Releases access level2510 project_visibility: :public, access_level: 20, role: :guest, allowed: true2511 allows/disallows the abilities based on the Releases access level2512 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2513 allows/disallows the abilities based on the Releases access level2514 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2515 allows/disallows the abilities based on the Releases access level2516 project_visibility: :public, access_level: 10, role: :developer, allowed: true2517 allows/disallows the abilities based on the Releases access level2518 project_visibility: :public, access_level: 10, role: :guest, allowed: true2519 allows/disallows the abilities based on the Releases access level2520 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2521 allows/disallows the abilities based on the Releases access level2522 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2523 allows/disallows the abilities based on the Releases access level2524 project_visibility: :public, access_level: 0, role: :developer, allowed: false2525 allows/disallows the abilities based on the Releases access level2526 project_visibility: :public, access_level: 0, role: :guest, allowed: false2527 allows/disallows the abilities based on the Releases access level2528 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2529 allows/disallows the abilities based on the Releases access level2530 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2531 allows/disallows the abilities based on the Releases access level2532 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2533 allows/disallows the abilities based on the Releases access level2534 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2535 allows/disallows the abilities based on the Releases access level2536 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2537 allows/disallows the abilities based on the Releases access level2538 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2539 allows/disallows the abilities based on the Releases access level2540 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2541 allows/disallows the abilities based on the Releases access level2542 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2543 allows/disallows the abilities based on the Releases access level2544 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2545 allows/disallows the abilities based on the Releases access level2546 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2547 allows/disallows the abilities based on the Releases access level2548 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2549 allows/disallows the abilities based on the Releases access level2550 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2551 allows/disallows the abilities based on the Releases access level2552 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2553 allows/disallows the abilities based on the Releases access level2554 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2555 allows/disallows the abilities based on the Releases access level2556 project_visibility: :private, access_level: 20, role: :developer, allowed: true2557 allows/disallows the abilities based on the Releases access level2558 project_visibility: :private, access_level: 20, role: :guest, allowed: true2559 allows/disallows the abilities based on the Releases access level2560 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2561 allows/disallows the abilities based on the Releases access level2562 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2563 allows/disallows the abilities based on the Releases access level2564 project_visibility: :private, access_level: 10, role: :developer, allowed: true2565 allows/disallows the abilities based on the Releases access level2566 project_visibility: :private, access_level: 10, role: :guest, allowed: true2567 allows/disallows the abilities based on the Releases access level2568 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2569 allows/disallows the abilities based on the Releases access level2570 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2571 allows/disallows the abilities based on the Releases access level2572 project_visibility: :private, access_level: 0, role: :developer, allowed: false2573 allows/disallows the abilities based on the Releases access level2574 project_visibility: :private, access_level: 0, role: :guest, allowed: false2575 allows/disallows the abilities based on the Releases access level2576 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2577 allows/disallows the abilities based on the Releases access level2578 infrastructure feature2579 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2580 allows/disallows the abilities based on the infrastructure access level2581 project_visibility: :public, access_level: 20, role: :developer, allowed: true2582 allows/disallows the abilities based on the infrastructure access level2583 project_visibility: :public, access_level: 20, role: :guest, allowed: true2584 allows/disallows the abilities based on the infrastructure access level2585 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2586 allows/disallows the abilities based on the infrastructure access level2587 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2588 allows/disallows the abilities based on the infrastructure access level2589 project_visibility: :public, access_level: 10, role: :developer, allowed: true2590 allows/disallows the abilities based on the infrastructure access level2591 project_visibility: :public, access_level: 10, role: :guest, allowed: true2592 allows/disallows the abilities based on the infrastructure access level2593 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2594 allows/disallows the abilities based on the infrastructure access level2595 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2596 allows/disallows the abilities based on the infrastructure access level2597 project_visibility: :public, access_level: 0, role: :developer, allowed: false2598 allows/disallows the abilities based on the infrastructure access level2599 project_visibility: :public, access_level: 0, role: :guest, allowed: false2600 allows/disallows the abilities based on the infrastructure access level2601 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2602 allows/disallows the abilities based on the infrastructure access level2603 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2604 allows/disallows the abilities based on the infrastructure access level2605 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2606 allows/disallows the abilities based on the infrastructure access level2607 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2608 allows/disallows the abilities based on the infrastructure access level2609 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2610 allows/disallows the abilities based on the infrastructure access level2611 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2612 allows/disallows the abilities based on the infrastructure access level2613 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2614 allows/disallows the abilities based on the infrastructure access level2615 project_visibility: :internal, access_level: 10, role: :guest, allowed: true2616 allows/disallows the abilities based on the infrastructure access level2617 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2618 allows/disallows the abilities based on the infrastructure access level2619 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2620 allows/disallows the abilities based on the infrastructure access level2621 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2622 allows/disallows the abilities based on the infrastructure access level2623 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2624 allows/disallows the abilities based on the infrastructure access level2625 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2626 allows/disallows the abilities based on the infrastructure access level2627 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2628 allows/disallows the abilities based on the infrastructure access level2629 project_visibility: :private, access_level: 20, role: :developer, allowed: true2630 allows/disallows the abilities based on the infrastructure access level2631 project_visibility: :private, access_level: 20, role: :guest, allowed: true2632 allows/disallows the abilities based on the infrastructure access level2633 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2634 allows/disallows the abilities based on the infrastructure access level2635 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2636 allows/disallows the abilities based on the infrastructure access level2637 project_visibility: :private, access_level: 10, role: :developer, allowed: true2638 allows/disallows the abilities based on the infrastructure access level2639 project_visibility: :private, access_level: 10, role: :guest, allowed: true2640 allows/disallows the abilities based on the infrastructure access level2641 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2642 allows/disallows the abilities based on the infrastructure access level2643 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2644 allows/disallows the abilities based on the infrastructure access level2645 project_visibility: :private, access_level: 0, role: :developer, allowed: false2646 allows/disallows the abilities based on the infrastructure access level2647 project_visibility: :private, access_level: 0, role: :guest, allowed: false2648 allows/disallows the abilities based on the infrastructure access level2649 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2650 allows/disallows the abilities based on the infrastructure access level2651 access_security_and_compliance2652 when the "Security and Compliance" is enabled2653 when the role is owner2654 is expected to be allowed :access_security_and_compliance2655 when the role is maintainer2656 is expected to be allowed :access_security_and_compliance2657 when the role is developer2658 is expected to be allowed :access_security_and_compliance2659 with admin2660 when admin mode enabled2661 is expected to be allowed :access_security_and_compliance2662 when admin mode disabled2663 is expected to be disallowed :access_security_and_compliance2664 when the role is reporter2665 is expected to be disallowed :access_security_and_compliance2666 when the role is guest2667 is expected to be disallowed :access_security_and_compliance2668 with non member2669 is expected to be disallowed :access_security_and_compliance2670 with anonymous2671 is expected to be disallowed :access_security_and_compliance2672 when the "Security and Compliance" is not enabled2673 when the role is owner2674 is expected to be disallowed :access_security_and_compliance2675 when the role is maintainer2676 is expected to be disallowed :access_security_and_compliance2677 when the role is developer2678 is expected to be disallowed :access_security_and_compliance2679 when the role is reporter2680 is expected to be disallowed :access_security_and_compliance2681 when the role is guest2682 is expected to be disallowed :access_security_and_compliance2683 with admin2684 when admin mode enabled2685 is expected to be disallowed :access_security_and_compliance2686 when admin mode disabled2687 is expected to be disallowed :access_security_and_compliance2688 with non member2689 is expected to be disallowed :access_security_and_compliance2690 with anonymous2691 is expected to be disallowed :access_security_and_compliance2692 when user is authenticated via CI_JOB_TOKEN2693 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2694 enforces the expected permissions2695 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2696 enforces the expected permissions2697 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2698 enforces the expected permissions2699 project_visibility: :private, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2700 enforces the expected permissions2701 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2702 enforces the expected permissions2703 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2704 enforces the expected permissions2705 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: false2706 enforces the expected permissions2707 project_visibility: :private, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2708 enforces the expected permissions2709 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2710 enforces the expected permissions2711 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2712 enforces the expected permissions2713 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2714 enforces the expected permissions2715 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2716 enforces the expected permissions2717 project_visibility: :internal, user_role: :reporter, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2718 enforces the expected permissions2719 project_visibility: :internal, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2720 enforces the expected permissions2721 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2722 enforces the expected permissions2723 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :same, token_scope_enabled: true, result: true2724 enforces the expected permissions2725 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2726 enforces the expected permissions2727 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2728 enforces the expected permissions2729 project_visibility: :internal, user_role: :guest, external_user: true, scope_project_type: :different, token_scope_enabled: true, result: false2730 enforces the expected permissions2731 project_visibility: :internal, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2732 enforces the expected permissions2733 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2734 enforces the expected permissions2735 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2736 enforces the expected permissions2737 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2738 enforces the expected permissions2739 project_visibility: :public, user_role: :reporter, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2740 enforces the expected permissions2741 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: true, result: true2742 enforces the expected permissions2743 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :same, token_scope_enabled: false, result: true2744 enforces the expected permissions2745 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: true, result: true2746 enforces the expected permissions2747 project_visibility: :public, user_role: :guest, external_user: false, scope_project_type: :different, token_scope_enabled: false, result: true2748 enforces the expected permissions2749 container_image policies2750 project_visibility: :public, access_level: 20, role: :admin, allowed: true2751 allows/disallows the abilities based on the container_registry feature access level2752 allows build_read_container_image to admins who are also team members2753 project_visibility: :public, access_level: 20, role: :owner, allowed: true2754 allows/disallows the abilities based on the container_registry feature access level2755 allows build_read_container_image to admins who are also team members2756 project_visibility: :public, access_level: 20, role: :maintainer, allowed: true2757 allows/disallows the abilities based on the container_registry feature access level2758 allows build_read_container_image to admins who are also team members2759 project_visibility: :public, access_level: 20, role: :developer, allowed: true2760 allows/disallows the abilities based on the container_registry feature access level2761 allows build_read_container_image to admins who are also team members2762 project_visibility: :public, access_level: 20, role: :reporter, allowed: true2763 allows/disallows the abilities based on the container_registry feature access level2764 allows build_read_container_image to admins who are also team members2765 project_visibility: :public, access_level: 20, role: :guest, allowed: true2766 allows/disallows the abilities based on the container_registry feature access level2767 allows build_read_container_image to admins who are also team members2768 project_visibility: :public, access_level: 20, role: :anonymous, allowed: true2769 allows/disallows the abilities based on the container_registry feature access level2770 allows build_read_container_image to admins who are also team members2771 project_visibility: :public, access_level: 10, role: :admin, allowed: true2772 allows/disallows the abilities based on the container_registry feature access level2773 allows build_read_container_image to admins who are also team members2774 project_visibility: :public, access_level: 10, role: :owner, allowed: true2775 allows/disallows the abilities based on the container_registry feature access level2776 allows build_read_container_image to admins who are also team members2777 project_visibility: :public, access_level: 10, role: :maintainer, allowed: true2778 allows/disallows the abilities based on the container_registry feature access level2779 allows build_read_container_image to admins who are also team members2780 project_visibility: :public, access_level: 10, role: :developer, allowed: true2781 allows/disallows the abilities based on the container_registry feature access level2782 allows build_read_container_image to admins who are also team members2783 project_visibility: :public, access_level: 10, role: :reporter, allowed: true2784 allows/disallows the abilities based on the container_registry feature access level2785 allows build_read_container_image to admins who are also team members2786 project_visibility: :public, access_level: 10, role: :guest, allowed: false2787 allows/disallows the abilities based on the container_registry feature access level2788 allows build_read_container_image to admins who are also team members2789 project_visibility: :public, access_level: 10, role: :anonymous, allowed: false2790 allows/disallows the abilities based on the container_registry feature access level2791 allows build_read_container_image to admins who are also team members2792 project_visibility: :public, access_level: 0, role: :admin, allowed: false2793 allows/disallows the abilities based on the container_registry feature access level2794 allows build_read_container_image to admins who are also team members2795 project_visibility: :public, access_level: 0, role: :owner, allowed: false2796 allows/disallows the abilities based on the container_registry feature access level2797 allows build_read_container_image to admins who are also team members2798 project_visibility: :public, access_level: 0, role: :maintainer, allowed: false2799 allows/disallows the abilities based on the container_registry feature access level2800 allows build_read_container_image to admins who are also team members2801 project_visibility: :public, access_level: 0, role: :developer, allowed: false2802 allows/disallows the abilities based on the container_registry feature access level2803 allows build_read_container_image to admins who are also team members2804 project_visibility: :public, access_level: 0, role: :reporter, allowed: false2805 allows/disallows the abilities based on the container_registry feature access level2806 allows build_read_container_image to admins who are also team members2807 project_visibility: :public, access_level: 0, role: :guest, allowed: false2808 allows/disallows the abilities based on the container_registry feature access level2809 allows build_read_container_image to admins who are also team members2810 project_visibility: :public, access_level: 0, role: :anonymous, allowed: false2811 allows/disallows the abilities based on the container_registry feature access level2812 allows build_read_container_image to admins who are also team members2813 project_visibility: :internal, access_level: 20, role: :admin, allowed: true2814 allows/disallows the abilities based on the container_registry feature access level2815 allows build_read_container_image to admins who are also team members2816 project_visibility: :internal, access_level: 20, role: :owner, allowed: true2817 allows/disallows the abilities based on the container_registry feature access level2818 allows build_read_container_image to admins who are also team members2819 project_visibility: :internal, access_level: 20, role: :maintainer, allowed: true2820 allows/disallows the abilities based on the container_registry feature access level2821 allows build_read_container_image to admins who are also team members2822 project_visibility: :internal, access_level: 20, role: :developer, allowed: true2823 allows/disallows the abilities based on the container_registry feature access level2824 allows build_read_container_image to admins who are also team members2825 project_visibility: :internal, access_level: 20, role: :reporter, allowed: true2826 allows/disallows the abilities based on the container_registry feature access level2827 allows build_read_container_image to admins who are also team members2828 project_visibility: :internal, access_level: 20, role: :guest, allowed: true2829 allows/disallows the abilities based on the container_registry feature access level2830 allows build_read_container_image to admins who are also team members2831 project_visibility: :internal, access_level: 20, role: :anonymous, allowed: false2832 allows/disallows the abilities based on the container_registry feature access level2833 allows build_read_container_image to admins who are also team members2834 project_visibility: :internal, access_level: 10, role: :admin, allowed: true2835 allows/disallows the abilities based on the container_registry feature access level2836 allows build_read_container_image to admins who are also team members2837 project_visibility: :internal, access_level: 10, role: :owner, allowed: true2838 allows/disallows the abilities based on the container_registry feature access level2839 allows build_read_container_image to admins who are also team members2840 project_visibility: :internal, access_level: 10, role: :maintainer, allowed: true2841 allows/disallows the abilities based on the container_registry feature access level2842 allows build_read_container_image to admins who are also team members2843 project_visibility: :internal, access_level: 10, role: :developer, allowed: true2844 allows/disallows the abilities based on the container_registry feature access level2845 allows build_read_container_image to admins who are also team members2846 project_visibility: :internal, access_level: 10, role: :reporter, allowed: true2847 allows/disallows the abilities based on the container_registry feature access level2848 allows build_read_container_image to admins who are also team members2849 project_visibility: :internal, access_level: 10, role: :guest, allowed: false2850 allows/disallows the abilities based on the container_registry feature access level2851 allows build_read_container_image to admins who are also team members2852 project_visibility: :internal, access_level: 10, role: :anonymous, allowed: false2853 allows/disallows the abilities based on the container_registry feature access level2854 allows build_read_container_image to admins who are also team members2855 project_visibility: :internal, access_level: 0, role: :admin, allowed: false2856 allows/disallows the abilities based on the container_registry feature access level2857 allows build_read_container_image to admins who are also team members2858 project_visibility: :internal, access_level: 0, role: :owner, allowed: false2859 allows/disallows the abilities based on the container_registry feature access level2860 allows build_read_container_image to admins who are also team members2861 project_visibility: :internal, access_level: 0, role: :maintainer, allowed: false2862 allows/disallows the abilities based on the container_registry feature access level2863 allows build_read_container_image to admins who are also team members2864 project_visibility: :internal, access_level: 0, role: :developer, allowed: false2865 allows/disallows the abilities based on the container_registry feature access level2866 allows build_read_container_image to admins who are also team members2867 project_visibility: :internal, access_level: 0, role: :reporter, allowed: false2868 allows/disallows the abilities based on the container_registry feature access level2869 allows build_read_container_image to admins who are also team members2870 project_visibility: :internal, access_level: 0, role: :guest, allowed: false2871 allows/disallows the abilities based on the container_registry feature access level2872 allows build_read_container_image to admins who are also team members2873 project_visibility: :internal, access_level: 0, role: :anonymous, allowed: false2874 allows/disallows the abilities based on the container_registry feature access level2875 allows build_read_container_image to admins who are also team members2876 project_visibility: :private, access_level: 20, role: :admin, allowed: true2877 allows/disallows the abilities based on the container_registry feature access level2878 allows build_read_container_image to admins who are also team members2879 project_visibility: :private, access_level: 20, role: :owner, allowed: true2880 allows/disallows the abilities based on the container_registry feature access level2881 allows build_read_container_image to admins who are also team members2882 project_visibility: :private, access_level: 20, role: :maintainer, allowed: true2883 allows/disallows the abilities based on the container_registry feature access level2884 allows build_read_container_image to admins who are also team members2885 project_visibility: :private, access_level: 20, role: :developer, allowed: true2886 allows/disallows the abilities based on the container_registry feature access level2887 allows build_read_container_image to admins who are also team members2888 project_visibility: :private, access_level: 20, role: :reporter, allowed: true2889 allows/disallows the abilities based on the container_registry feature access level2890 allows build_read_container_image to admins who are also team members2891 project_visibility: :private, access_level: 20, role: :guest, allowed: false2892 allows/disallows the abilities based on the container_registry feature access level2893 allows build_read_container_image to admins who are also team members2894 project_visibility: :private, access_level: 20, role: :anonymous, allowed: false2895 allows/disallows the abilities based on the container_registry feature access level2896 allows build_read_container_image to admins who are also team members2897 project_visibility: :private, access_level: 10, role: :admin, allowed: true2898 allows/disallows the abilities based on the container_registry feature access level2899 allows build_read_container_image to admins who are also team members2900 project_visibility: :private, access_level: 10, role: :owner, allowed: true2901 allows/disallows the abilities based on the container_registry feature access level2902 allows build_read_container_image to admins who are also team members2903 project_visibility: :private, access_level: 10, role: :maintainer, allowed: true2904 allows/disallows the abilities based on the container_registry feature access level2905 allows build_read_container_image to admins who are also team members2906 project_visibility: :private, access_level: 10, role: :developer, allowed: true2907 allows/disallows the abilities based on the container_registry feature access level2908 allows build_read_container_image to admins who are also team members2909 project_visibility: :private, access_level: 10, role: :reporter, allowed: true2910 allows/disallows the abilities based on the container_registry feature access level2911 allows build_read_container_image to admins who are also team members2912 project_visibility: :private, access_level: 10, role: :guest, allowed: false2913 allows/disallows the abilities based on the container_registry feature access level2914 allows build_read_container_image to admins who are also team members2915 project_visibility: :private, access_level: 10, role: :anonymous, allowed: false2916 allows/disallows the abilities based on the container_registry feature access level2917 allows build_read_container_image to admins who are also team members2918 project_visibility: :private, access_level: 0, role: :admin, allowed: false2919 allows/disallows the abilities based on the container_registry feature access level2920 allows build_read_container_image to admins who are also team members2921 project_visibility: :private, access_level: 0, role: :owner, allowed: false2922 allows/disallows the abilities based on the container_registry feature access level2923 allows build_read_container_image to admins who are also team members2924 project_visibility: :private, access_level: 0, role: :maintainer, allowed: false2925 allows/disallows the abilities based on the container_registry feature access level2926 allows build_read_container_image to admins who are also team members2927 project_visibility: :private, access_level: 0, role: :developer, allowed: false2928 allows/disallows the abilities based on the container_registry feature access level2929 allows build_read_container_image to admins who are also team members2930 project_visibility: :private, access_level: 0, role: :reporter, allowed: false2931 allows/disallows the abilities based on the container_registry feature access level2932 allows build_read_container_image to admins who are also team members2933 project_visibility: :private, access_level: 0, role: :guest, allowed: false2934 allows/disallows the abilities based on the container_registry feature access level2935 allows build_read_container_image to admins who are also team members2936 project_visibility: :private, access_level: 0, role: :anonymous, allowed: false2937 allows/disallows the abilities based on the container_registry feature access level2938 allows build_read_container_image to admins who are also team members2939 update_runners_registration_token2940 when anonymous2941 is expected not to be allowed :update_runners_registration_token2942 admin2943 when admin mode is enabled2944 is expected to be allowed :update_runners_registration_token2945 when admin mode is disabled2946 is expected to be disallowed :update_runners_registration_token2947 guest2948 is expected to be disallowed :update_runners_registration_token2949 reporter2950 is expected to be disallowed :update_runners_registration_token2951 developer2952 is expected to be disallowed :update_runners_registration_token2953 maintainer2954 is expected to be allowed :update_runners_registration_token2955 owner2956 is expected to be allowed :update_runners_registration_token2957 register_project_runners2958 admin2959 when admin mode is enabled2960 is expected to be allowed :register_project_runners2961 with project runner registration disabled2962 is expected to be allowed :register_project_runners2963 with specific project runner registration disabled2964 is expected to be allowed :register_project_runners2965 when admin mode is disabled2966 is expected to be disallowed :register_project_runners2967 with owner2968 is expected to be allowed :register_project_runners2969 with project runner registration disabled2970 is expected to be disallowed :register_project_runners2971 with specific project runner registration disabled2972 is expected to be disallowed :register_project_runners2973 with maintainer2974 is expected to be allowed :register_project_runners2975 with reporter2976 is expected to be disallowed :register_project_runners2977 with guest2978 is expected to be disallowed :register_project_runners2979 with non member2980 is expected to be disallowed :register_project_runners2981 with anonymous2982 is expected to be disallowed :register_project_runners2983 create_runner2984 create_runner_workflow_for_namespace flag enabled2985 admin2986 when admin mode is enabled2987 is expected to be allowed :create_runner2988 with project runner registration disabled2989 is expected to be allowed :create_runner2990 with specific project runner registration disabled2991 is expected to be allowed :create_runner2992 when admin mode is disabled2993 is expected to be disallowed :create_runner2994 with owner2995 is expected to be allowed :create_runner2996 with project runner registration disabled2997 is expected to be disallowed :create_runner2998 with specific project runner registration disabled2999 is expected to be disallowed :create_runner3000 with maintainer3001 is expected to be allowed :create_runner3002 with reporter3003 is expected to be disallowed :create_runner3004 with guest3005 is expected to be disallowed :create_runner3006 with developer3007 is expected to be disallowed :create_runner3008 with anonymous3009 is expected to be disallowed :create_runner3010 create_runner_workflow_for_namespace flag disabled3011 admin3012 when admin mode is enabled3013 is expected to be disallowed :create_runner3014 with project runner registration disabled3015 is expected to be disallowed :create_runner3016 with specific project runner registration disabled3017 is expected to be disallowed :create_runner3018 when admin mode is disabled3019 is expected to be disallowed :create_runner3020 with owner3021 is expected to be disallowed :create_runner3022 with project runner registration disabled3023 is expected to be disallowed :create_runner3024 with specific project runner registration disabled3025 is expected to be disallowed :create_runner3026 with maintainer3027 is expected to be disallowed :create_runner3028 with reporter3029 is expected to be disallowed :create_runner3030 with guest3031 is expected to be disallowed :create_runner3032 with developer3033 is expected to be disallowed :create_runner3034 with anonymous3035 is expected to be disallowed :create_runner3036 admin_project_runners3037 admin3038 when admin mode is enabled3039 is expected to be allowed :create_runner3040 when admin mode is disabled3041 is expected to be disallowed :create_runner3042 with owner3043 is expected to be allowed :create_runner3044 with maintainer3045 is expected to be allowed :create_runner3046 with reporter3047 is expected to be disallowed :create_runner3048 with guest3049 is expected to be disallowed :create_runner3050 with developer3051 is expected to be disallowed :create_runner3052 with anonymous3053 is expected to be disallowed :create_runner3054 read_project_runners3055 with maintainer3056 is expected to be allowed :read_project_runners3057 with admin3058 is expected to be allowed :read_project_runners3059 with reporter3060 is expected to be disallowed :read_project_runners3061 when the user is not part of the project3062 is expected to be disallowed :read_project_runners3063 update_sentry_issue3064 role: :owner, allowed: true3065 is expected to equal true3066 role: :maintainer, allowed: true3067 is expected to equal true3068 role: :developer, allowed: true3069 is expected to equal true3070 role: :reporter, allowed: false3071 is expected to equal false3072 role: :guest, allowed: false3073 is expected to equal false3074 read_milestone3075 when project is public3076 and issues and merge requests are private3077 when user is an inherited member from the group3078 and user is a guest3079 is expected to be allowed :read_milestone3080 and user is a reporter3081 is expected to be allowed :read_milestone3082 and user is a developer3083 is expected to be allowed :read_milestone3084 role_enables_download_code3085 default roles3086 private project3087 role: :owner, allowed: true3088 is expected to equal true3089 role: :maintainer, allowed: true3090 is expected to equal true3091 role: :developer, allowed: true3092 is expected to equal true3093 role: :reporter, allowed: true3094 is expected to equal true3095 role: :guest, allowed: false3096 is expected to equal false3097 read_code3098 when the current_user can download_code3099 is expected to be allowed :read_code3100 when the current_user cannot download_code3101 is expected not to be allowed :read_code3102 read_namespace_catalog3103 is expected to be disallowed :read_namespace_catalog3104 add_catalog_resource3105 is expected to be disallowed :read_namespace_catalog3106Groups::TransferService3107 handling packages3108 with an npm package3109 behaves like transfer not allowed3110 does not allow transfer when there is a root namespace change3111 with a project within subgroup3112 behaves like transfer not allowed3113 does not allow transfer when there is a root namespace change3114 without a root namespace change3115 allows transfer3116 when transferring a group into a root group3117 behaves like transfer not allowed3118 does not allow transfer when there is a root namespace change3119 without an npm package3120 when transferring a group into a root group3121 allows transfer3122 #execute3123 when transforming a group into a root group3124 behaves like ensuring allowed transfer for a group3125 when there's an exception on GitLab shell directories3126 returns false3127 adds an error on group3128 when the group is already a root group3129 adds an error on group3130 when the user does not have the right policies3131 returns false3132 adds an error on group3133 when there is a group with the same path3134 returns false3135 adds an error on group3136 when the group is a subgroup and the transfer is valid3137 updates group attributes3138 updates group children path3139 updates group projects path3140 when projects have project namespaces3141 behaves like project namespace path is in sync with project path3142 keeps project and project namespace attributes in sync3143 when transferring a subgroup into another group3144 behaves like ensuring allowed transfer for a group3145 when there's an exception on GitLab shell directories3146 returns false3147 adds an error on group3148 when the new parent group is the same as the previous parent group3149 returns false3150 adds an error on group3151 when the user does not have the right policies3152 returns false3153 adds an error on group3154 when the parent has a group with the same path3155 returns false3156 adds an error on group3157 when the parent group has a project with the same path3158 adds an error on group3159 when projects have project namespaces3160 behaves like project namespace path is in sync with project path3161 keeps project and project namespace attributes in sync3162 when the group is allowed to be transferred3163 updates visibility for the group based on the parent group3164 updates parent group to the new parent3165 returns the group as children of the new parent3166 creates a redirect for the group3167 when the group has a lower visibility than the parent group3168 does not update the visibility for the group3169 when the group has a higher visibility than the parent group3170 updates visibility level based on the parent group3171 with a group integration3172 with an inherited integration3173 replaces inherited integrations3174 with a custom integration3175 does not updates the integrations3176 shared runners configuration3177 if parent group has disabled shared runners but allows overrides3178 calls update service3179 if parent group does not allow shared runners3180 calls update service3181 if parent group allows shared runners3182 does not call update service and keeps them disabled on the group3183 when a group is transferred to its subgroup3184 does not execute the transfer3185 when transferring a group with group descendants3186 updates subgroups path3187 creates redirects for the subgroups3188 when the new parent has a higher visibility than the children3189 does not update the children visibility3190 when the new parent has a lower visibility than the children3191 updates children visibility to match the new parent3192 when transferring a group with project descendants3193 updates projects path3194 creates permanent redirects for the projects3195 when the new parent has a higher visibility than the projects3196 does not update projects visibility3197 behaves like project namespace path is in sync with project path3198 keeps project and project namespace attributes in sync3199 when the new parent has a lower visibility than the projects3200 updates projects visibility to match the new parent3201 invokes #update_project_settings3202 behaves like project namespace path is in sync with project path3203 keeps project and project namespace attributes in sync3204 when transferring a group with subgroups & projects descendants3205 updates subgroups path3206 updates projects path3207 creates redirect for the subgroups and projects3208 behaves like project namespace path is in sync with project path3209 keeps project and project namespace attributes in sync3210 when transferring a group with nested groups and projects3211 updated paths3212 updates subgroups path3213 updates projects path3214 creates redirect for the subgroups and projects3215 resets project authorizations3216 removes old project authorizations3217 adds new project authorizations3218 performs authorizations job3219 for nested projects3220 removes old project authorizations3221 adds new project authorizations3222 preserves existing project authorizations for direct project members3223 for nested groups with unique members3224 preserves existing project authorizations3225 for groups with many projects3226 adds new project authorizations for the user which makes a transfer3227 adds project authorizations for users in the new hierarchy3228 removes project authorizations for users in the old hierarchy3229 schedules authorizations job3230 transferring groups with shared_projects3231 when the group that has existing project share is transferred3232 behaves like drops the authorizations of ancestor members from the old hierarchy3233 drops the authorizations of ancestor members from the old hierarchy3234 when the group whose subgroup has an existing project share is transferred3235 behaves like drops the authorizations of ancestor members from the old hierarchy3236 drops the authorizations of ancestor members from the old hierarchy3237 when a group that has existing group share is transferred3238 retains the authorizations of direct members3239 when transferring a group with two factor authentication switched on3240 does not update group two factor authentication setting3241 when new parent disallows two factor authentication switched on for descendants3242 updates group two factor authentication setting3243 schedules update of group two factor authentication setting for descendants3244 when updating the group goes wrong3245 restores group and projects visibility3246 when group has pending builds3247 updates pending builds for the group3248 when transferring a subgroup into root group3249 ensures there is still an owner for the transferred group3250 when group has explicit owner3251 does not add additional owner3252 when a project has container images3253 within group3254 does not transfer3255 within subgroup3256 does not transfer3257 crm3258 moving up3259 retains issue contacts3260 behaves like publishes a GroupTransferedEvent3261 is expected to publish event Groups::GroupTransferedEvent3262 moving down3263 retains issue contacts3264 behaves like publishes a GroupTransferedEvent3265 is expected to publish event Groups::GroupTransferedEvent3266 moving sideways3267 retains issue contacts3268 behaves like publishes a GroupTransferedEvent3269 is expected to publish event Groups::GroupTransferedEvent3270 moving to new root group3271 moves all crm objects3272 retains issue contacts3273 behaves like publishes a GroupTransferedEvent3274 is expected to publish event Groups::GroupTransferedEvent3275 moving to a subgroup within a new root group3276 with permission on the root group3277 moves all crm objects3278 retains issue contacts3279 behaves like publishes a GroupTransferedEvent3280 is expected to publish event Groups::GroupTransferedEvent3281 with permission on the subgroup3282 raises error3283 does not publish a GroupTransferedEvent3284 with namespace_commit_emails concerns3285 when origin is a root group3286 deletes all namespace_commit_emails3287 behaves like publishes a GroupTransferedEvent3288 is expected to publish event Groups::GroupTransferedEvent3289 when origin is not a root group3290 does not attempt to delete namespace_commit_emails3291TodoService3292 updates cached counts when a todo is created3293 Issues3294 #new_issue3295 creates a todo if assigned3296 does not create a todo if unassigned3297 creates a todo if assignee is the current user3298 creates a todo for each valid mentioned user3299 creates a directly addressed todo for each valid addressed user3300 creates correct todos for each valid user based on the type of mention3301 does not create todo if user can not see the issue when issue is confidential3302 does not create directly addressed todo if user cannot see the issue when issue is confidential3303 when a private group is mentioned3304 creates a todo for group members3305 issue is an incident3306 behaves like an incident management tracked event3307 .track_event3308 tracks the event using redis3309 behaves like Snowplow event tracking with RedisHLL context3310 behaves like Snowplow event tracking3311 is emitted3312 #update_issue3313 creates a todo for each valid mentioned user not included in skip_users3314 creates a todo for each valid user not included in skip_users based on the type of mention3315 creates a directly addressed todo for each valid addressed user not included in skip_users3316 does not create a todo if user was already mentioned and todo is pending3317 does not create a todo if user was already mentioned and todo is done3318 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending3319 does not create a directly addressed todo if user was already mentioned or addressed and todo is done3320 does not create todo if user can not see the issue when issue is confidential3321 does not create a directly addressed todo if user can not see the issue when issue is confidential3322 issues with a task list3323 does not create todo when tasks are marked as completed3324 does not create directly addressed todo when tasks are marked as completed3325 does not raise an error when description not change3326 #close_issue3327 marks related pending todos to the target for the user as done3328 #destroy_target3329 refreshes the todos count cache for users with todos on the target3330 yields the target to the caller3331 #resolve_todos_for_target3332 marks related pending todos to the target for the user as done3333 cached counts3334 updates when todos change3335 #new_note3336 mark related pending todos to the noteable for the note author as done3337 does not mark related pending todos it is a system note3338 creates a todo for each valid mentioned user3339 creates a todo for each valid user based on the type of mention3340 creates a directly addressed todo for each valid addressed user3341 does not create todo if user can not see the issue when leaving a note on a confidential issue3342 does not create a directly addressed todo if user can not see the issue when leaving a note on a confidential issue3343 does not create todo if user can not read confidential note3344 does not create todo when leaving a note on snippet3345 commits3346 leaving a note on a commit in a public project3347 creates a todo for each valid mentioned user3348 creates a directly addressed todo for each valid mentioned user3349 leaving a note on a commit in a public project with private code3350 creates a todo for each valid mentioned user3351 creates a directly addressed todo for each valid mentioned user3352 leaving a note on a commit in a private project3353 creates a todo for each valid mentioned user3354 creates a directly addressed todo for each valid mentioned user3355 #mark_todo3356 creates a todo from a issue3357 #todo_exists?3358 returns false when no todo exist for the given issuable3359 returns true when a todo exist for the given issuable3360 when multiple_todos are enabled3361 creates a MENTIONED todo even if user already has a pending MENTIONED todo3362 creates a DIRECTLY_ADDRESSED todo even if user already has a pending DIRECTLY_ADDRESSED todo3363 creates an ASSIGNED todo even if user already has a pending MARKED todo3364 does not create an ASSIGNED todo if user already has an ASSIGNED todo3365 creates multiple todos if a user is assigned and mentioned in a new issue3366 #reassigned_assignable3367 assignable is a merge request3368 behaves like reassigned target3369 creates a pending todo for new assignee3370 does not create a todo if unassigned3371 creates a todo if new assignee is the current user3372 does not create a todo for guests3373 does not create a directly addressed todo for guests3374 does not create a todo if already assigned3375 assignable is an issue3376 behaves like reassigned target3377 creates a pending todo for new assignee3378 does not create a todo if unassigned3379 creates a todo if new assignee is the current user3380 does not create a todo for guests3381 does not create a directly addressed todo for guests3382 does not create a todo if already assigned3383 assignable is an alert3384 behaves like reassigned target3385 creates a pending todo for new assignee3386 does not create a todo if unassigned3387 creates a todo if new assignee is the current user3388 does not create a todo for guests3389 does not create a directly addressed todo for guests3390 does not create a todo if already assigned3391 #reassigned_reviewable3392 reviewable is a merge request3393 behaves like reassigned reviewable target3394 with no existing reviewers3395 creates a pending todo for new reviewer3396 with an existing reviewer3397 does not create a todo if unassigned3398 creates a todo if new reviewer is the current user3399 does not create a todo if already assigned3400 Merge Requests3401 #new_merge_request3402 creates a pending todo if assigned3403 does not create a todo if unassigned3404 creates a todo if assignee is the current user3405 creates a todo for each valid mentioned user3406 creates a todo for each valid user based on the type of mention3407 creates a directly addressed todo for each valid addressed user3408 #update_merge_request3409 creates a todo for each valid mentioned user not included in skip_users3410 creates a todo for each valid user not included in skip_users based on the type of mention3411 creates a directly addressed todo for each valid addressed user not included in skip_users3412 does not create a todo if user was already mentioned and todo is pending3413 does not create a todo if user was already mentioned and todo is done3414 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending3415 does not create a directly addressed todo if user was already mentioned or addressed and todo is done3416 with a task list3417 does not create todo when tasks are marked as completed3418 does not create directly addressed todo when tasks are marked as completed3419 does not raise an error when description not change3420 #close_merge_request3421 marks related pending todos to the target for the user as done3422 #merge_merge_request3423 marks related pending todos to the target for the user as done3424 does not create todo for guests3425 does not create directly addressed todo for guests3426 #new_award_emoji3427 marks related pending todos to the target for the user as done3428 #merge_request_build_failed3429 creates a pending todo for each merge_participant3430 #merge_request_push3431 marks related pending todos to the target for the user as done3432 #merge_request_became_unmergeable3433 creates a pending todo for each merge_participant3434 #mark_todo3435 creates a todo from a merge request3436 #new_note3437 creates a todo for mentioned user on new diff note3438 creates a directly addressed todo for addressed user on new diff note3439 creates a todo for mentioned user on legacy diff note3440 does not create todo for guests3441 Designs3442 creates a todo for mentioned user on new diff note3443 #update_note3444 creates a todo for each valid mentioned user not included in skip_users3445 creates a todo for each valid user not included in skip_users based on the type of mention3446 creates a directly addressed todo for each valid addressed user not included in skip_users3447 does not create a todo if user was already mentioned and todo is done3448 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending3449 does not create a directly addressed todo if user was already mentioned or addressed and todo is done3450 users already have pending todos and the multiple_todos feature is off3451 does not create a todo if user was already mentioned and todo is pending3452 does not create N+1 queries for pending todos3453 #resolve_todos3454 behaves like updating todos state3455 updates related todos for the user with the new_state3456 updates resolution mechanism3457 returns the updated ids3458 cached counts3459 updates when todos change3460 #restore_todos3461 behaves like updating todos state3462 updates related todos for the user with the new_state3463 returns the updated ids3464 cached counts3465 updates when todos change3466 #resolve_todo3467 marks pending todo as done3468 saves resolution mechanism3469 cached counts3470 updates when todos change3471 #resolve_access_request_todos3472 marks the todos for request handler as done3473 #restore_todo3474 marks resolved todo as pending3475 cached counts3476 updates when todos change3477 #create_request_review_todo3478 creates a todo for reviewer3479 #create_member_access_request_todos3480 when request is raised for group3481 behaves like member access request is raised3482 when the source has more than 10 owners3483 creates todos for 10 recently active source owners3484 when total owners are less than 103485 creates todos for all source owners3486 when multiple access requests are raised3487 creates todos for 10 recently active source owners for multiple requests3488 when request is raised for project3489 behaves like member access request is raised3490 when the source has more than 10 owners3491 creates todos for 10 recently active source owners3492 when total owners are less than 103493 creates todos for all source owners3494 when multiple access requests are raised3495 creates todos for 10 recently active source owners for multiple requests3496gitlab:usage data take tasks3497 dump_sql_in_yaml3498 dumps SQL queries in yaml format3499 dump_sql_in_json3500 dumps SQL queries in json format3501 dump_non_sql_in_json3502 dumps non SQL data in json format3503 generate_sql_metrics_fixture3504 generates fixture file correctly3505 generate_and_send3506 generates and sends Service Ping payload3507SystemNotes::IssuablesService3508 #relate_issuable3509 behaves like a system note3510 has the correct attributes3511 when issue marks another as related3512 sets the note text3513 #unrelate_issuable3514 behaves like a system note3515 has the correct attributes3516 when issue relation is removed3517 sets the note text3518 #change_assignee3519 behaves like a system note3520 has the correct attributes3521 when assignee added3522 sets the note text3523 behaves like a note with overridable created_at3524 the note has the correct time3525 when assignee removed3526 sets the note text3527 behaves like a note with overridable created_at3528 the note has the correct time3529 #change_issuable_assignees3530 builds a correct phrase when an assignee is added to a non-assigned issue3531 builds a correct phrase when assignee removed3532 builds a correct phrase when assignees changed3533 builds a correct phrase when three assignees removed and one added3534 builds a correct phrase when one assignee changed from a set3535 builds a correct phrase when one assignee removed from a set3536 builds a correct phrase when the locale is different3537 behaves like a system note3538 has the correct attributes3539 behaves like a note with overridable created_at3540 the note has the correct time3541 #change_issuable_reviewers3542 builds a correct phrase when a reviewer is added to a non-assigned merge request3543 builds a correct phrase when reviewer is removed3544 builds a correct phrase when reviewers changed3545 builds a correct phrase when three reviewers removed and one added3546 builds a correct phrase when one reviewer is changed from a set3547 builds a correct phrase when one reviewer removed from a set3548 builds a correct phrase when the locale is different3549 behaves like a system note3550 has the correct attributes3551 #change_issuable_contacts3552 builds a correct phrase when one contact is added3553 builds a correct phrase when one contact is removed3554 builds a correct phrase when one contact is added and one contact is removed3555 builds a correct phrase when three contacts are added and one removed3556 builds a correct phrase when three contacts are removed and one added3557 builds a correct phrase when the locale is different3558 behaves like a system note3559 has the correct attributes3560 #change_status3561 creates a resource state event3562 #change_title3563 when noteable responds to `title`3564 sets the note text3565 behaves like a system note3566 has the correct attributes3567 behaves like a note with overridable created_at3568 the note has the correct time3569 #change_description3570 when noteable responds to `description`3571 sets the note text3572 associates the related description version3573 behaves like a system note3574 has the correct attributes3575 behaves like a note with overridable created_at3576 the note has the correct time3577 #change_issue_confidentiality3578 issue has been made confidential3579 sets the note text3580 behaves like a system note3581 has the correct attributes3582 issue has been made visible3583 sets the note text3584 behaves like a system note3585 has the correct attributes3586 #cross_reference3587 behaves like a system note3588 has the correct attributes3589 when cross-reference disallowed3590 returns nil3591 does not create a system note metadata record3592 when cross-reference allowed3593 behaves like a system note3594 has the correct attributes3595 behaves like a note with overridable created_at3596 the note has the correct time3597 note_body3598 cross-project3599 from Commit3600 references the mentioning commit3601 from non-Commit3602 references the mentioning object3603 within the same project3604 from Commit3605 references the mentioning commit3606 from non-Commit3607 references the mentioning object3608 with external issue3609 queues a background worker3610 #cross_reference_exists?3611 issue from commit3612 is truthy when already mentioned3613 is falsey when not already mentioned3614 legacy capitalized cross reference3615 is truthy when already mentioned3616 commit from commit3617 is truthy when already mentioned3618 is falsey when not already mentioned3619 legacy capitalized cross reference3620 is truthy when already mentioned3621 commit with cross-reference from fork3622 is true when a fork mentions an external issue3623 legacy capitalized cross reference3624 is true when a fork mentions an external issue3625 #change_task_status3626 posts the 'marked the checklist item as complete' system note3627 behaves like a system note3628 has the correct attributes3629 #noteable_moved3630 moved to3631 notifies about noteable being moved to3632 behaves like cross project mentionable3633 contains cross reference to new noteable3634 mentions referenced noteable3635 mentions referenced project3636 behaves like a system note3637 has the correct attributes3638 moved from3639 notifies about noteable being moved from3640 behaves like cross project mentionable3641 contains cross reference to new noteable3642 mentions referenced noteable3643 mentions referenced project3644 behaves like a system note3645 has the correct attributes3646 invalid direction3647 raises error3648 #noteable_cloned3649 cloned to3650 notifies about noteable being cloned to3651 behaves like cross project mentionable3652 contains cross reference to new noteable3653 mentions referenced noteable3654 mentions referenced project3655 behaves like a system note3656 has the correct attributes3657 cloned from3658 notifies about noteable being cloned from3659 behaves like cross project mentionable3660 contains cross reference to new noteable3661 mentions referenced noteable3662 mentions referenced project3663 behaves like a system note3664 has the correct attributes3665 invalid direction3666 raises error3667 custom created timestamp3668 allows setting of custom created_at value3669 defaults to current time when created_at is not given3670 metrics3671 cloned from3672 does not tracks usage3673 cloned to3674 tracks usage3675 behaves like issue_edit snowplow tracking3676 behaves like Snowplow event tracking with RedisHLL context3677 behaves like Snowplow event tracking3678 is emitted3679 #mark_duplicate_issue3680 within the same project3681 is expected to eq "marked this issue as a duplicate of #2"3682 behaves like a system note3683 has the correct attributes3684 across different projects3685 is expected to eq "marked this issue as a duplicate of namespace205/project303#1"3686 behaves like a system note3687 has the correct attributes3688 #mark_canonical_issue_of_duplicate3689 within the same project3690 is expected to eq "marked #2 as a duplicate of this issue"3691 behaves like a system note3692 has the correct attributes3693 across different projects3694 is expected to eq "marked namespace207/project305#1 as a duplicate of this issue"3695 behaves like a system note3696 has the correct attributes3697 #discussion_lock3698 discussion unlocked3699 creates the note text correctly3700 behaves like a system note3701 has the correct attributes3702 discussion locked3703 creates the note text correctly3704 behaves like a system note3705 has the correct attributes3706 #cross_reference_disallowed?3707 when mentioned_in is not a MergeRequest3708 is falsey3709 when mentioned_in is a MergeRequest3710 is truthy when noteable is in commits3711 is falsey when noteable is not in commits3712 when notable is an ExternalIssue3713 is false with issue tracker supporting referencing3714 is true with issue tracker not supporting referencing3715 is true without issue tracker3716 #close_after_error_tracking_resolve3717 creates the expected state event3718 #auto_resolve_prometheus_alert3719 creates the expected state event3720 #change_issue_type3721 is expected to eq "changed issue type to incident"3722 behaves like a system note3723 has the correct attributes3724 #hierarchy_changed3725 when task is added as a child3726 sets the correct note text3727 behaves like a system note3728 has the correct attributes3729 when child task is removed3730 sets the correct note text3731 behaves like a system note3732 has the correct attributes3733Todo3734 relationships3735 is expected to belong to author class_name => User required: false3736 is expected to belong to note required: false3737 is expected to belong to project required: false3738 is expected to belong to group required: false3739 is expected to belong to target required: false3740 is expected to belong to user required: false3741 respond to3742 is expected to respond to #author_name3743 is expected to respond to #author_email3744 validations3745 is expected to validate that :action cannot be empty/falsy3746 is expected to validate that :target_type cannot be empty/falsy3747 is expected to validate that :user cannot be empty/falsy3748 is expected to validate that :author cannot be empty/falsy3749 for commits3750 is expected to validate that :commit_id cannot be empty/falsy3751 is expected not to validate that :target_id cannot be empty/falsy3752 for issuables3753 is expected to validate that :target_id cannot be empty/falsy3754 is expected not to validate that :commit_id cannot be empty/falsy3755 #body3756 returns target title when note is blank3757 returns note when note is present3758 returns full path of target when action is member_access_requested3759 #done3760 changes state to done3761 does not raise error when is already done3762 #for_commit?3763 returns true when target is a commit3764 returns false when target is an issuable3765 #for_design?3766 returns true when target is a Design3767 returns false when target is not a Design3768 #for_alert?3769 returns true when target is a Alert3770 returns false when target is not a Alert3771 #for_issue_or_work_item?3772 returns true when target is an Issue3773 returns true when target is a WorkItem3774 returns false when target is not an Issue3775 #target3776 returns the issuable for issuables3777 for commits3778 returns an instance of Commit when exists3779 returns nil when does not exists3780 #target_reference3781 returns commit full reference with short id3782 returns full reference for issuables3783 when target is member access requested3784 behaves like returns full_path3785 is expected to eq "namespace231/project329"3786 behaves like returns full_path3787 is expected to eq "group355"3788 #self_added?3789 is true when the user is the author3790 is false when the user is not the author3791 #done?3792 returns true for todos with done state3793 returns false for todos with state pending3794 #self_assigned?3795 when self_added3796 returns true for ASSIGNED3797 returns true for REVIEW_REQUESTED3798 returns false for other action3799 when todo is not self_added3800 returns false3801 .for_action3802 returns the todos for a given action3803 .for_author3804 returns the todos for a given author3805 .for_project3806 returns the todos for a given project3807 returns the todos for many projects3808 .for_undeleted_projects3809 returns the todos for a given project3810 when todo belongs to deleted project3811 excludes todos of deleted projects3812 .for_group3813 returns the todos for a given group3814 .for_type3815 returns the todos for a given target type3816 .for_target3817 returns the todos for a given target3818 .for_commit3819 returns the todos for a commit ID3820 .for_group_ids_and_descendants3821 returns the todos for a group and its descendants3822 .for_user3823 returns the expected todos3824 .for_note3825 returns todos that belongs to notes3826 .group_by_user_id_and_state3827 is expected to eq {[650, "done"]=>1, [650, "pending"]=>2, [651, "pending"]=>1}3828 .any_for_target?3829 returns true if there are todos for a given target3830 returns true if there is at least one todo for a given target with state pending3831 returns false if there are only todos for a given target with state done while searching for pending3832 returns false if there are no todos for a given target3833 .batch_update3834 updates the state of todos3835 does not update todos that already have the given state3836 updates updated_at3837 .distinct_user_ids3838 is expected to contain exactly 675 and 6763839 .for_internal_notes3840 returns todos created from internal notes3841 #access_request_url3842 when only_path param is false3843 behaves like returns member access requests tab url/path3844 returns group access requests tab url/path if target is group3845 returns project access requests tab url/path if target is project3846 returns empty string if target is neither group nor project3847 when only_path param is nil3848 behaves like returns member access requests tab url/path3849 returns group access requests tab url/path if target is group3850 returns project access requests tab url/path if target is project3851 returns empty string if target is neither group nor project3852 when only_path param is true3853 behaves like returns member access requests tab url/path3854 returns group access requests tab url/path if target is group3855 returns project access requests tab url/path if target is project3856 returns empty string if target is neither group nor project3857Issues::RelativePositionRebalancingService3858 execute3859 re-balances a set of issues with clumps at the end and start3860 is idempotent3861 acts if the flag is enabled for the root namespace3862 acts if the flag is enabled for the group3863 aborts if there are too many rebalances running3864 resumes a started rebalance even if there are already too many rebalances running3865 re-balancing is retried on statement timeout exceptions3866 retries update statement3867 when resuming a stopped rebalance3868 rebalances the other half of issues3869Issues::CloneService3870 #execute3871 issue movable3872 when issue creation fails3873 raises a clone error3874 generic issue3875 creates a new issue in the selected project3876 copies issue title3877 copies issue description3878 adds system note to old issue at the end3879 adds system note to new issue at the start3880 keeps old issue open3881 persists new issue3882 persists all changes3883 sets the current user as author3884 creates a new internal id for issue3885 sets created_at of new issue to the time of clone3886 does not set moved_issue3887 when copying comments3888 does not create extra system notes3889 issue with system notes and resource events3890 does not copy system notes and resource events3891 issue with award emoji3892 does not copy the award emoji3893 issue with milestone3894 copies the milestone and creates a resource_milestone_event3895 issue with label3896 copies the label and creates a resource_label_event3897 issue with due date3898 keeps the same due date3899 issue with assignee3900 preserves assignee with access to the new issue3901 ignores assignee without access to the new issue3902 issue is confidential3903 preserves the confidential flag3904 moving to same project3905 also works3906 project issue hooks3907 executes project issue hooks3908 issue with notes3909 does not copy notes3910 when copying comments3911 copies existing notes in order3912 issue with a design3913 calls CopyDesignCollection::QueueService3914 logs if QueueService returns an error3915 copies the design and its notes3916 issue relative position3917 behaves like copy or reset relative position3918 when moved to a project within same group hierarchy3919 does not reset the relative_position3920 when moved to a project in a different group hierarchy3921 does reset the relative_position3922 clone permissions3923 target project is pending deletion3924 is expected to raise Issues::CloneService::CloneError with message matching /pending deletion/3925 user is reporter in both projects3926 is expected not to raise Exception3927 user is reporter only in new project3928 is expected to raise StandardError with message matching /permissions/3929 user is reporter only in old project3930 is expected to raise StandardError with message matching /permissions/3931 user is reporter in one project and guest in another3932 is expected to raise StandardError with message matching /permissions/3933 issue is not persisted3934 is expected to raise StandardError with message matching /permissions/3935MergeRequest::CleanupSchedule3936 associations3937 is expected to belong to merge_request required: false3938 validations3939 is expected to validate that :scheduled_at cannot be empty/falsy3940 state machine transitions3941 sets status to unstarted by default3942 #run3943 sets the status to running3944 when previous status is not unstarted3945 does not change status3946 #retry3947 sets the status to unstarted3948 increments failed_count3949 when previous status is not running3950 does not change status3951 #complete3952 sets the status to completed3953 sets the completed_at3954 when previous status is not running3955 does not change status3956 #mark_as_failed3957 sets the status to failed3958 increments failed_count3959 when previous status is not running3960 does not change status3961 .scheduled_and_unstarted3962 returns records that are scheduled before or on current time and unstarted (ordered by scheduled first)3963 .stuck3964 returns records that has been in running state for more than 6 hours3965 .stuck_retry!3966 sets stuck records to unstarted3967 when there are more than 5 stuck schedules3968 only retries 5 stuck schedules at once3969 .start_next3970 finds the next scheduled and unstarted then marked it as running3971Backup::Database3972 #dump3973 creates gzipped database dumps3974 uses snapshots3975 disables transaction time out3976 pg_dump arguments3977 calls Backup::Dump::Postgres with correct pg_dump arguments3978 when a PostgreSQL schema is used3979 calls Backup::Dump::Postgres with correct pg_dump arguments3980 when a StandardError (or descendant) is raised3981 restores timeouts3982 #restore3983 when not forced398413985 warns the user and waits3986 has a pre restore warning3987 with an empty .gz file398813989 returns successfully3990 with a corrupted .gz file3991gzip: stdin: not in gzip format399213993 raises a backup error3994 when the restore command prints errors3995must be owner of extension pg_trgm3996WARNING: no privileges could be revoked for public3997This is a test error3998 filters out noise from errors and has a post restore warning3999 with PostgreSQL settings defined in the environment4000{"PG_VERSION"=>"13", "PGUSER"=>"postgres", "PGHOST"=>"test.example.com", "PGPASSWORD"=>"donotchange"}4001 overrides default config values4002 when the source file is missing4003 for main database4004 raises an error about missing source file4005 for ci database400614007 ci database tolerates missing source file4008Deployments::UpdateEnvironmentService4009 #execute4010 invalidates the environment etag cache4011 creates ref4012 updates merge request metrics4013 returns the deployment4014 returns the deployment when could not save the environment4015 returns the deployment when environment is stopped4016 when start action is defined4017 and environment is stopped4018 makes environment available4019 when external URL is specified and the tier is unset4020 when external URL is valid4021 succeeds to update the tier automatically4022 when external URL is invalid4023 fails to update the tier due to validation error4024 tracks an exception4025 when variables are used4026 does not create a new environment4027 updates external url4028 when auto_stop_in are used4029 renews auto stop at4030 when value is a variable4031 renews auto stop at with expanded variable value4032 when deployment tier is specified4033 when tier has already been set4034 overwrites the guessed tier by the specified deployment tier4035 when tier has not been set4036 sets the specified deployment tier4037 when deployment was created by an external CD system4038 guesses the deployment tier4039 when deployment tier is not specified4040 guesses the deployment tier4041 #expanded_environment_url4042 when yaml environment uses $CI_COMMIT_REF_NAME4043 is expected to eq "http://review/master"4044 when yaml environment uses $CI_ENVIRONMENT_SLUG4045 is expected to eq "http://review/prod-slug"4046 when yaml environment uses yaml_variables containing symbol keys4047 is expected to eq "http://review/host"4048 when job variables are generated during runtime4049 expands the environment URL from the dynamic variable4050 when environment url uses a nested variable4051 is expected to eq "http://appname-master.example.com"4052 when yaml environment does not have url4053 returns the external_url from persisted environment4054 merge request metrics4055 while updating the 'first_deployed_to_production_at' time4056 for merge requests merged before the current deploy4057 sets the time if the deploy's environment is 'production'4058 does not raise errors if the merge request does not have a metrics record4059 when job deploys to staging4060 doesn't set the time if the deploy's environment is not 'production'4061 for merge requests merged before the previous deploy4062 if the 'first_deployed_to_production_at' time is already set4063 does not overwrite the older 'first_deployed_to_production_at' time4064 if the 'first_deployed_to_production_at' time is not already set4065 does not overwrite the older 'first_deployed_to_production_at' time4066Gitlab::Database::LockWritesManager4067 #table_locked_for_writes?4068 returns false for a table that is not locked for writes4069 returns true for a table that is locked for writes4070 for detached partition tables in another schema4071 returns true for a table that is locked for writes4072 #lock_writes4073 prevents any writes on the table4074 prevents truncating the table4075 adds 3 triggers to the ci schema tables on the main database4076 logs the write locking4077 retries again if it receives a statement_timeout a few number of times4078 raises the exception if it happened many times4079 skips the operation if the table is already locked for writes4080 returns result hash with action skipped4081 when running in dry_run mode4082 prints the sql statement to the logger4083 does not lock the tables for writes4084 returns result hash with action locked4085 #unlock_writes4086 allows writing on the table again4087 removes the write protection triggers from the gitlab_main tables on the ci database4088 logs the write unlocking4089 returns result hash with action unlocked4090 when running in dry_run mode4091 prints the sql statement to the logger4092 does not unlock the tables for writes4093 returns result hash with dry_run true4094Issues::ImportCsvService4095 #execute4096 behaves like correctly handles invalid files4097 when given file with unsupported extension4098 behaves like invalid file4099 returns invalid file error4100 when given empty file4101 behaves like invalid file4102 returns invalid file error4103 when given file without headers4104 behaves like invalid file4105 returns invalid file error4106 behaves like importer with email notification4107 notifies user of import result4108 behaves like an issuable importer4109 records the import attempt if resource is an issue4110 with a file generated by Gitlab CSV export4111 imports the CSV without errors4112 correctly sets the issuable attributes4113 behaves like importer with email notification4114 notifies user of import result4115 behaves like an issuable importer4116 records the import attempt if resource is an issue4117 comma delimited file4118 imports CSV without errors4119 correctly sets the issuable attributes4120 behaves like importer with email notification4121 notifies user of import result4122 behaves like an issuable importer4123 records the import attempt if resource is an issue4124 tab delimited file with error row4125 imports CSV with some error rows4126 correctly sets the issuable attributes4127 behaves like importer with email notification4128 notifies user of import result4129 behaves like an issuable importer4130 records the import attempt if resource is an issue4131 semicolon delimited file with CRLF4132 imports CSV with a blank row4133 correctly sets the issuable attributes4134 behaves like importer with email notification4135 notifies user of import result4136 behaves like an issuable importer4137 records the import attempt if resource is an issue4138 #execute4139 sets all issueable attributes and executes quick actions4140Packages::Maven::FindOrCreatePackageService4141 #execute4142 path with version4143 package_exist: true, file_type: :jar, snapshot_version: false, shared_example_name: "reuse existing package"4144 behaves like reuse existing package4145 is expected not to change `Packages::Package.count`4146 returns the existing package4147 package_exist: false, file_type: :jar, snapshot_version: false, shared_example_name: "create package"4148 behaves like create package4149 is expected to change `Packages::Package.count` by 14150 sets the proper name and version4151 with optional attributes4152 behaves like assigns build to package4153 with build info4154 assigns the pipeline to the package4155 behaves like assigns status to package4156 with status param4157 assigns the status to the package4158 package_exist: true, file_type: :jar, snapshot_version: true, shared_example_name: "reuse existing package"4159 behaves like reuse existing package4160 is expected not to change `Packages::Package.count`4161 returns the existing package4162 package_exist: false, file_type: :jar, snapshot_version: true, shared_example_name: "create package"4163 behaves like create package4164 is expected to change `Packages::Package.count` by 14165 sets the proper name and version4166 with optional attributes4167 behaves like assigns build to package4168 with build info4169 assigns the pipeline to the package4170 behaves like assigns status to package4171 with status param4172 assigns the status to the package4173 package_exist: true, file_type: :maven_xml, snapshot_version: true, shared_example_name: "reuse existing package"4174 behaves like reuse existing package4175 is expected not to change `Packages::Package.count`4176 returns the existing package4177 package_exist: false, file_type: :maven_xml, snapshot_version: true, shared_example_name: "create package"4178 behaves like create package4179 is expected to change `Packages::Package.count` by 14180 sets the proper name and version4181 with optional attributes4182 behaves like assigns build to package4183 with build info4184 assigns the pipeline to the package4185 behaves like assigns status to package4186 with status param4187 assigns the status to the package4188 path without version4189 maven-metadata.xml file4190 with existing package4191 behaves like reuse existing package4192 is expected not to change `Packages::Package.count`4193 returns the existing package4194 marked as pending_destruction4195 behaves like create package4196 is expected to change `Packages::Package.count` by 14197 sets the proper name and version4198 with optional attributes4199 behaves like assigns build to package4200 with build info4201 assigns the pipeline to the package4202 behaves like assigns status to package4203 with status param4204 assigns the status to the package4205 without existing package4206 behaves like create package4207 is expected to change `Packages::Package.count` by 14208 sets the proper name and version4209 with optional attributes4210 behaves like assigns build to package4211 with build info4212 assigns the pipeline to the package4213 behaves like assigns status to package4214 with status param4215 assigns the status to the package4216 with a build4217 creates a build_info4218 with multiple files for the same package and the same pipeline4219 creates a single build info4220 when package duplicates are not allowed4221 behaves like returning an error4222 is expected not to change `project.package_files.count`4223 returns an error4224 for a SNAPSHOT version4225 behaves like returning an error4226 is expected not to change `project.package_files.count`4227 returns an error4228 when uploading to the versionless package which contains metadata about all versions4229 behaves like reuse existing package4230 is expected not to change `Packages::Package.count`4231 returns the existing package4232 when uploading different non-duplicate files to the same package4233 behaves like reuse existing package4234 is expected not to change `Packages::Package.count`4235 returns the existing package4236 when the package name matches the exception regex4237 behaves like reuse existing package4238 is expected not to change `Packages::Package.count`4239 returns the existing package4240 when the package version matches the exception regex4241 behaves like reuse existing package4242 is expected not to change `Packages::Package.count`4243 returns the existing package4244 when uploading a similar package file name with a classifier4245 behaves like reuse existing package4246 is expected not to change `Packages::Package.count`4247 returns the existing package4248 for a SNAPSHOT version4249 behaves like reuse existing package4250 is expected not to change `Packages::Package.count`4251 returns the existing package4252 with a very large file name4253 behaves like returning an error4254 is expected not to change `project.package_files.count`4255 returns an error4256EmailsHelper4257 closure_reason_text4258 when given a MergeRequest4259 when user can read merge request4260 and format is text4261 returns plain text4262 and format is HTML4263 returns HTML4264 and format is unknown4265 returns plain text4266 when user cannot read merge request4267 does not have link to merge request4268 when given a String4269 when user can read commits4270 returns plain text4271 when user cannot read commits4272 returns plain text4273 when not given anything4274 returns empty string4275 notification_reason_text4276 reason_code: "own_activity", reason_text: " of your activity "4277 is expected to start with "You're receiving this email because"4278 is expected to include " of your activity "4279 is expected to end with "on localhost."4280 reason_code: "assigned", reason_text: " you have been assigned an item "4281 is expected to start with "You're receiving this email because"4282 is expected to include " you have been assigned an item "4283 is expected to end with "on localhost."4284 reason_code: "mentioned", reason_text: " you have been mentioned "4285 is expected to start with "You're receiving this email because"4286 is expected to include " you have been mentioned "4287 is expected to end with "on localhost."4288 reason_code: "", reason_text: " of your account "4289 is expected to start with "You're receiving this email because"4290 is expected to include " of your account "4291 is expected to end with "on localhost."4292 reason_code: nil, reason_text: " of your account "4293 is expected to start with "You're receiving this email because"4294 is expected to include " of your account "4295 is expected to end with "on localhost."4296 sanitize_name4297 when name contains a valid URL string4298 returns name with `.` replaced with `_` to prevent mail clients from auto-linking URLs4299 returns name as it is when it does not contain a URL4300 #say_hi4301 returns the greeting message for the given user4302 #say_hello4303 returns the greeting message for the given user4304 #two_factor_authentication_disabled_text4305 returns the message that 2FA is disabled4306 #re_enable_two_factor_authentication_text4307 format is html4308 returns HTML4309 format is not specified4310 returns text4311 #admin_changed_password_text4312 format is html4313 returns HTML4314 format is not specified4315 returns text4316 #contact_your_administrator_text4317 returns the message to contact the administrator4318 password_reset_token_valid_time4319 when time limit is less than 2 hours4320 displays the time in hours using a singular unit4321 when time limit is 2 or more hours4322 displays the time in hours using a plural unit4323 when time limit contains fractions of an hour4324 rounds down to the nearest hour4325 when time limit is 24 or more hours4326 displays the time in days using a singular unit4327 when time limit is 2 or more days4328 displays the time in days using a plural unit4329 when time limit contains fractions of a day4330 rounds down to the nearest day4331 #header_logo4332 there is a brand item with a logo4333 returns the brand header logo4334 that is a SVG file4335 returns the default header logo4336 there is a brand item without a logo4337 returns the default header logo4338 there is no brand item4339 returns the default header logo4340 #create_list_id_string4341 full_path: "01234", list_id_path: "01234"4342 ellipcizes different variants4343 full_path: "5/0123", list_id_path: "012.."4344 ellipcizes different variants4345 full_path: "45/012", list_id_path: "012.."4346 ellipcizes different variants4347 full_path: "012", list_id_path: "012"4348 ellipcizes different variants4349 full_path: "23/01", list_id_path: "01.23"4350 ellipcizes different variants4351 full_path: "2/01", list_id_path: "01.2"4352 ellipcizes different variants4353 full_path: "234/01", list_id_path: "01.."4354 ellipcizes different variants4355 full_path: "4/2/0", list_id_path: "0.2.4"4356 ellipcizes different variants4357 full_path: "45/2/0", list_id_path: "0.2.."4358 ellipcizes different variants4359 full_path: "5/23/0", list_id_path: "0.."4360 ellipcizes different variants4361 full_path: "0-2/5", list_id_path: "5.0-2"4362 ellipcizes different variants4363 full_path: "0_2/5", list_id_path: "5.0-2"4364 ellipcizes different variants4365 full_path: "0.2/5", list_id_path: "5.0-2"4366 ellipcizes different variants4367 Create realistic List-Id identifier4368 full_path: "gitlab-org/gitlab-ce", list_id_path: "gitlab-ce.gitlab-org"4369 produces the right List-Id4370 full_path: "project-name/subproject_name/my.project", list_id_path: "my-project.subproject-name.project-name"4371 produces the right List-Id4372 header and footer messages4373 when email_header_and_footer_enabled is enabled4374 returns header and footer messages4375 when header and footer messages are empty4376 returns nil4377 when header and footer messages are nil4378 returns nil4379 when email_header_and_footer_enabled is disabled4380 returns header and footer messages4381 #change_reviewer_notification_text4382 to new reviewers only4383 with no html tag4384 returns the expected output4385 with <strong> tag4386 returns the expected output4387 from previous reviewers to new reviewers4388 with no html tag4389 returns the expected output4390 with <strong> tag4391 returns the expected output4392 from previous reviewers to no reviewers4393 with no html tag4394 returns the expected output4395 with <strong> tag4396 returns the expected output4397 with a <script> tag in user's name4398 escapes the html tag4399 with url in user's name4400 sanitizes user's name4401GitlabRoutingHelper4402 Project URL helpers4403 #project_member_path4404 is expected to eq "/namespace453/project555/-/project_members/907"4405 #request_access_project_members_path4406 is expected to eq "/namespace454/project556/-/project_members/request_access"4407 #leave_project_members_path4408 is expected to eq "/namespace455/project557/-/project_members/leave"4409 #approve_access_request_project_member_path4410 is expected to eq "/namespace456/project558/-/project_members/909/approve_access_request"4411 #resend_invite_project_member_path4412 is expected to eq "/namespace457/project559/-/project_members/911/resend_invite"4413 Group URL helpers4414 #group_members_url4415 is expected to eq "http://test.host/groups/group369/-/group_members"4416 #group_member_path4417 is expected to eq "/groups/group370/-/group_members/912"4418 #request_access_group_members_path4419 is expected to eq "/groups/group371/-/group_members/request_access"4420 #leave_group_members_path4421 is expected to eq "/groups/group372/-/group_members/leave"4422 #approve_access_request_group_member_path4423 is expected to eq "/groups/group373/-/group_members/913/approve_access_request"4424 #resend_invite_group_member_path4425 is expected to eq "/groups/group374/-/group_members/914/resend_invite"4426 #preview_markdown_path4427 returns group preview markdown path for a group parent4428 returns group preview markdown path for a group parent with args4429 returns project preview markdown path for a project parent4430 returns snippet preview markdown path for a personal snippet4431 returns project preview markdown path for a project snippet4432 #edit_milestone_path4433 returns group milestone edit path when given entity parent is a Group4434 returns project milestone edit path when given entity parent is not a Group4435 members helpers4436 #source_members_url4437 returns a url to the memberships page for a group membership4438 returns a url to the memberships page for a project membership4439 artifacts4440 #fast_download_project_job_artifacts_path4441 matches the Rails download path4442 when given parameters4443 adds them to the path4444 #fast_keep_project_job_artifacts_path4445 matches the Rails keep path4446 #fast_browse_project_job_artifacts_path4447 matches the Rails browse path4448 snippets4449 #gitlab_snippet_path4450 returns the personal snippet path4451 returns the project snippet path4452 #gitlab_snippet_url4453 returns the personal snippet url4454 returns the project snippet url4455 #gitlab_raw_snippet_path4456 returns the raw personal snippet path4457 returns the raw project snippet path4458 #gitlab_raw_snippet_blob_path4459 behaves like snippet blob raw path4460 for PersonalSnippets4461 returns the raw personal snippet blob path4462 for ProjectSnippets4463 returns the raw project snippet blob path4464 when an argument is set4465 is expected to eq "/-/snippets/4/raw/test-ref/.gitattributes?inline=true"4466 without a ref4467 uses the root ref4468 #gitlab_raw_snippet_url4469 returns the raw personal snippet url4470 returns the raw project snippet url4471 #gitlab_raw_snippet_blob_url4472 behaves like snippet blob raw url4473 for PersonalSnippets4474 returns the raw personal snippet blob url4475 for ProjectSnippets4476 returns the raw project snippet blob url4477 when an argument is set4478 is expected to eq "http://test.host/-/snippets/4/raw/snippet-test-ref/.gitattributes?inline=true"4479 without a ref4480 uses the root ref4481 when snippet does not have a repository4482 uses the instance deafult branch4483 #gitlab_raw_snippet_url4484 returns the raw personal snippet url4485 returns the raw project snippet url4486 #gitlab_snippet_notes_path4487 returns the notes path for the personal snippet4488 #gitlab_snippet_notes_url4489 returns the notes url for the personal snippet4490 #gitlab_snippet_note_path4491 returns the note path for the personal snippet4492 #gitlab_snippet_note_url4493 returns the note url for the personal snippet4494 #gitlab_toggle_award_emoji_snippet_note_path4495 returns the note award emoji path for the personal snippet4496 #gitlab_toggle_award_emoji_snippet_note_url4497 returns the note award emoji url for the personal snippet4498 #gitlab_toggle_award_emoji_snippet_path4499 returns the award emoji path for the personal snippet4500 #gitlab_toggle_award_emoji_snippet_url4501 returns the award url for the personal snippet4502 #gitlab_dashboard_snippets_path4503 returns the personal snippets dashboard path4504 returns the project snippets dashboard path4505 wikis4506 #wiki_page_path4507 returns the url for the wiki page4508 releases4509 #release_url4510 returns the url for the release page4511 GraphQL ETag paths4512 with pipelines4513 returns an ETag path for a pipeline sha4514 returns an ETag path for pipelines4515ContainerRepositoriesFinder4516 #execute4517 with authorized user4518 when subject_type is group4519 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil> and #<ContainerRepository id: 4, project_id: 534, name: "test_repository2", created_at: "2023-04-19 09:55:50.809912972 +0000", updated_at: "2023-04-19 09:55:50.809912972 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4520 behaves like with name search4521 with name set to my_image4522 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4523 is expected not to include #<ContainerRepository id: 5, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:50.833977421 +0000", updated_at: "2023-04-19 09:55:50.833977421 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4524 with name set to my_imag4525 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4526 is expected not to include #<ContainerRepository id: 5, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:50.833977421 +0000", updated_at: "2023-04-19 09:55:50.833977421 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4527 with name set to _image4528 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4529 is expected not to include #<ContainerRepository id: 5, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:50.833977421 +0000", updated_at: "2023-04-19 09:55:50.833977421 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4530 with name set to _imag4531 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4532 is expected not to include #<ContainerRepository id: 5, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:50.833977421 +0000", updated_at: "2023-04-19 09:55:50.833977421 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4533 behaves like with sorting4534 with sort set to created_desc4535 is expected to eq [#<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4536 with sort set to updated_asc4537 is expected to eq [#<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4538 with sort set to name_desc4539 is expected to eq [#<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4540 with sort set to created_asc4541 is expected to eq [#<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4542 with sort set to updated_desc4543 is expected to eq [#<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4544 with sort set to name_asc4545 is expected to eq [#<ContainerRepository id: 6, project_id: 535, name: "bar", created_at: "2023-04-18 09:55:53.399506693 +0000", updated_at: "2023-04-19 09:55:53.403142813 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 7, project_id: 535, name: "foo", created_at: "2023-04-19 08:55:53.410236643 +0000", updated_at: "2023-04-19 08:55:53.410262383 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4546 when project has container registry disabled4547 is expected to contain exactly #<ContainerRepository id: 8, project_id: 536, name: "test_repository2", created_at: "2023-04-19 09:55:55.859837392 +0000", updated_at: "2023-04-19 09:55:55.859837392 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4548 when subject_type is project4549 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4550 behaves like with name search4551 with name set to my_image4552 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4553 is expected not to include #<ContainerRepository id: 9, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:56.156378984 +0000", updated_at: "2023-04-19 09:55:56.156378984 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4554 with name set to my_imag4555 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4556 is expected not to include #<ContainerRepository id: 9, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:56.156378984 +0000", updated_at: "2023-04-19 09:55:56.156378984 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4557 with name set to _image4558 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4559 is expected not to include #<ContainerRepository id: 9, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:56.156378984 +0000", updated_at: "2023-04-19 09:55:56.156378984 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4560 with name set to _imag4561 is expected to contain exactly #<ContainerRepository id: 3, project_id: 533, name: "my_image", created_at: "2023-04-19 09:55:50.110754465 +0000", updated_at: "2023-04-19 09:55:50.110754465 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4562 is expected not to include #<ContainerRepository id: 9, project_id: 533, name: "foo_bar_baz", created_at: "2023-04-19 09:55:56.156378984 +0000", updated_at: "2023-04-19 09:55:56.156378984 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>4563 behaves like with sorting4564 with sort set to created_desc4565 is expected to eq [#<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4566 with sort set to updated_asc4567 is expected to eq [#<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4568 with sort set to name_desc4569 is expected to eq [#<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4570 with sort set to created_asc4571 is expected to eq [#<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4572 with sort set to updated_desc4573 is expected to eq [#<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4574 with sort set to name_asc4575 is expected to eq [#<ContainerRepository id: 10, project_id: 537, name: "bar", created_at: "2023-04-18 09:55:58.911397355 +0000", updated_at: "2023-04-19 09:55:58.914686115 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>, #<ContainerRepository id: 11, project_id: 537, name: "foo", created_at: "2023-04-19 08:55:58.921879634 +0000", updated_at: "2023-04-19 08:55:58.921900414 +0000", status: nil, expiration_policy_started_at: nil, expiration_policy_cleanup_status: "cleanup_unscheduled", expiration_policy_completed_at: nil, migration_pre_import_started_at: nil, migration_pre_import_done_at: nil, migration_import_started_at: nil, migration_import_done_at: nil, migration_aborted_at: nil, migration_skipped_at: nil, migration_retries_count: 0, migration_skipped_reason: nil, migration_state: "default", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil, verification_checksum: nil>]4576 when project has container registry disabled4577 is expected to equal nil4578 with invalid subject_type4579 is expected to raise Exception with "invalid subject_type"4580 with unauthorized user4581 when subject_type is group4582 is expected to equal nil4583 when subject_type is project4584 is expected to equal nil4585Spam::SpamVerdictService4586 #execute4587 issue4588 behaves like execute spam verdict service4589 if all services return nil4590 renders ALLOW verdict4591 if only one service returns a verdict4592 and it is supported4593 renders that verdict4594 and it is unexpected4595 allows4596 if more than one service returns a verdict4597 and they are supported4598 renders the more restrictive verdict4599 and one is supported4600 renders the more restrictive verdict4601 and none are supported4602 renders the more restrictive verdict4603 and attribs - monitorMode is true4604 renders the more restrictive verdict4605 if allow_possible_spam application setting is true4606 and a service returns a verdict that should be overridden4607 overrides and renders the override verdict4608 and a service returns a verdict that does not need to be overridden4609 does not override and renders the original verdict4610 records metrics4611 verdict: "allow", error: false, label: "ALLOW"4612 records duration with labels4613 verdict: "allow", error: true, label: "ERROR"4614 records duration with labels4615 verdict: "conditional_allow", error: false, label: "CONDITIONAL_ALLOW"4616 records duration with labels4617 verdict: "block", error: false, label: "BLOCK"4618 records duration with labels4619 verdict: "disallow", error: false, label: "DISALLOW"4620 records duration with labels4621 verdict: "noop", error: false, label: "NOOP"4622 records duration with labels4623 snippet4624 behaves like execute spam verdict service4625 if all services return nil4626 renders ALLOW verdict4627 if only one service returns a verdict4628 and it is supported4629 renders that verdict4630 and it is unexpected4631 allows4632 if more than one service returns a verdict4633 and they are supported4634 renders the more restrictive verdict4635 and one is supported4636 renders the more restrictive verdict4637 and none are supported4638 renders the more restrictive verdict4639 and attribs - monitorMode is true4640 renders the more restrictive verdict4641 if allow_possible_spam application setting is true4642 and a service returns a verdict that should be overridden4643 overrides and renders the override verdict4644 and a service returns a verdict that does not need to be overridden4645 does not override and renders the original verdict4646 records metrics4647 verdict: "allow", error: false, label: "ALLOW"4648 records duration with labels4649 verdict: "allow", error: true, label: "ERROR"4650 records duration with labels4651 verdict: "conditional_allow", error: false, label: "CONDITIONAL_ALLOW"4652 records duration with labels4653 verdict: "block", error: false, label: "BLOCK"4654 records duration with labels4655 verdict: "disallow", error: false, label: "DISALLOW"4656 records duration with labels4657 verdict: "noop", error: false, label: "NOOP"4658 records duration with labels4659 #akismet_verdict4660 issue4661 behaves like akismet verdict4662 if Akismet is enabled4663 if Akismet considers it spam4664 if reCAPTCHA is enabled4665 returns conditionally allow verdict4666 if reCAPTCHA is not enabled4667 renders disallow verdict4668 if Akismet does not consider it spam4669 renders allow verdict4670 if Akismet is not enabled4671 renders allow verdict4672 snippet4673 behaves like akismet verdict4674 if Akismet is enabled4675 if Akismet considers it spam4676 if reCAPTCHA is enabled4677 returns conditionally allow verdict4678 if reCAPTCHA is not enabled4679 renders disallow verdict4680 if Akismet does not consider it spam4681 renders allow verdict4682 if Akismet is not enabled4683 renders allow verdict4684 #spamcheck_verdict4685 issue4686 behaves like spamcheck verdict4687 if a Spam Check endpoint enabled and set to a URL4688 if the endpoint is accessible4689 if the result is a NOOP verdict4690 returns the verdict4691 if attribs - monitorMode is true4692 returns the verdict4693 the result is a valid verdict4694 returns the verdict4695 when recaptcha is enabled4696 verdict_value: "allow", expected: "allow"4697 returns expected spam constant4698 verdict_value: "conditional_allow", expected: "conditional_allow"4699 returns expected spam constant4700 verdict_value: "disallow", expected: "disallow"4701 returns expected spam constant4702 verdict_value: "block", expected: "block"4703 returns expected spam constant4704 when recaptcha is disabled4705 returns expected spam constant4706 returns expected spam constant4707 returns expected spam constant4708 returns expected spam constant4709 the verdict is an unexpected value4710 returns the string4711 the verdict is an empty string4712 returns nil4713 the verdict is nil4714 returns nil4715 there is an error4716 returns nil4717 the requested is aborted4718 returns nil4719 the confused API endpoint returns both an error and a verdict4720 renders the verdict4721 if the endpoint times out4722 returns nil4723 if a Spam Check endpoint is not set4724 returns nil4725 if Spam Check endpoint is not enabled4726 returns nil4727 snippet4728 behaves like spamcheck verdict4729 if a Spam Check endpoint enabled and set to a URL4730 if the endpoint is accessible4731 if the result is a NOOP verdict4732 returns the verdict4733 if attribs - monitorMode is true4734 returns the verdict4735 the result is a valid verdict4736 returns the verdict4737 when recaptcha is enabled4738 verdict_value: "allow", expected: "allow"4739 returns expected spam constant4740 verdict_value: "conditional_allow", expected: "conditional_allow"4741 returns expected spam constant4742 verdict_value: "disallow", expected: "disallow"4743 returns expected spam constant4744 verdict_value: "block", expected: "block"4745 returns expected spam constant4746 when recaptcha is disabled4747 returns expected spam constant4748 returns expected spam constant4749 returns expected spam constant4750 returns expected spam constant4751 the verdict is an unexpected value4752 returns the string4753 the verdict is an empty string4754 returns nil4755 the verdict is nil4756 returns nil4757 there is an error4758 returns nil4759 the requested is aborted4760 returns nil4761 the confused API endpoint returns both an error and a verdict4762 renders the verdict4763 if the endpoint times out4764 returns nil4765 if a Spam Check endpoint is not set4766 returns nil4767 if Spam Check endpoint is not enabled4768 returns nil4769check.rake4770 gitlab:check rake task4771 behaves like system check rake task4772 runs the check4773 gitlab:gitlab_shell:check rake task4774 behaves like system check rake task4775 runs the check4776 gitlab:gitaly:check rake task4777 behaves like system check rake task4778 runs the check4779 gitlab:sidekiq:check rake task4780 behaves like system check rake task4781 runs the check4782 gitlab:incoming_email:check rake task4783 behaves like system check rake task4784 runs the check4785 gitlab:ldap:check rake task4786 behaves like system check rake task4787 runs the check4788 when LDAP is not enabled4789 does not attempt to bind or search for users4790 when LDAP is enabled4791 attempts to bind using credentials4792 searches for 100 LDAP users4793 sanitizes output4794Gitlab::Database::BackgroundMigration::BatchedJob4795 is expected to be a kind of Gitlab::Database::SharedModel(abstract)4796 is expected to contain exactly ActiveRecord::StatementTimeout, ActiveRecord::ConnectionTimeoutError, ActiveRecord::AdapterTimeout, ActiveRecord::LockWaitTimeout, and ActiveRecord::QueryCanceled4797 associations4798 is expected to belong to batched_migration required: false4799 is expected to have many batched_job_transition_logs4800 state machine4801 is expected to eql :pending, :running, :failed, and :succeeded4802 when a job is running4803 logs the transition4804 when a job succeed4805 logs the transition4806 updates the finished_at4807 creates a new transition log4808 when a job fails the number of max times4809 when job can be split4810 splits the job into two retriable jobs4811 when the job cannot be split4812 does not split the job4813 keeps the same job attributes4814 logs the error4815 when a job fails4816 logs the transition4817 tracks the exception4818 updates the finished_at4819 creates a new transition log4820 when job fails during sub batch processing4821 when sub batch size can be reduced in 25%4822 is expected to change `job.sub_batch_size` to 74823 when retries exceeds 2 attempts4824 calls split_and_retry! once sub_batch_size cannot be decreased anymore4825 is expected not to change `job.sub_batch_size`4826 scopes4827 .except_succeeded4828 returns not succeeded jobs4829 .active4830 returns active jobs4831 .stuck4832 returns stuck jobs4833 .retriable4834 returns retriable jobs4835 .created_since4836 returns jobs since a given time4837 .blocked_by_max_attempts4838 returns blocked jobs4839 delegated batched_migration attributes4840 #migration_job_class4841 returns the migration job_class4842 #migration_table_name4843 returns the migration table_name4844 #migration_column_name4845 returns the migration column_name4846 #migration_job_arguments4847 returns the migration job_arguments4848 #migration_job_class_name4849 returns the migration job_class_name4850 .extract_transition_options4851 args: [], expected_result: []4852 matches expected keys and result4853 args: [{:error=>StandardError}], expected_result: [StandardError, nil]4854 matches expected keys and result4855 args: [{:error=>StandardError, :from_sub_batch=>true}], expected_result: [StandardError, true]4856 matches expected keys and result4857 #can_split?4858 when the number of attempts is greater than the limit and the batch_size is greater than the sub_batch_size4859 when is a timeout exception4860 is expected to be truthy4861 when is a QueryCanceled exception4862 is expected to be truthy4863 when is not a timeout exception4864 is expected to be falsey4865 when the number of attempts is lower than the limit and the batch_size is greater than the sub_batch_size4866 when is a timeout exception4867 is expected to be falsey4868 when is not a timeout exception4869 is expected to be falsey4870 when the batch_size is lower than the sub_batch_size4871 is expected to be falsey4872 when the batch_size is 14873 is expected to be falsey4874 #can_reduce_sub_batch_size?4875 when the number of attempts is lower than the limit and batch size are within boundaries4876 is expected to equal true4877 when the number of attempts is lower than the limit and batch size are outside boundaries4878 is expected to equal false4879 when the number of attempts is greater than the limit and batch size are within boundaries4880 is expected to equal false4881 #time_efficiency4882 when job has not yet succeeded4883 returns nil4884 when finished_at is not set4885 returns nil4886 when started_at is not set4887 returns nil4888 when job has finished4889 returns ratio of duration to interval, here: 0.54890 returns ratio of duration to interval, here: 14891 #split_and_retry!4892 when job can be split4893 sets the correct attributes4894 splits the jobs into retriable jobs4895 when job is not failed4896 raises an exception4897 when batch size is already 14898DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is4899deprecated without replacement. If the `throw` came from4900`Timeout.timeout(duration)`, pass an exception class as a second4901argument so it doesn't use `throw` to abort its block. This results4902in the transaction being committed, but in the next release of Rails4903it will rollback.4904 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:121)4905 keeps the same batch size4906DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is4907deprecated without replacement. If the `throw` came from4908`Timeout.timeout(duration)`, pass an exception class as a second4909argument so it doesn't use `throw` to abort its block. This results4910in the transaction being committed, but in the next release of Rails4911it will rollback.4912 (called from public_send at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:121)4913 resets the number of attempts4914 when computed midpoint is larger than the max value of the batch4915 lowers the batch size and resets the number of attempts4916 #reduce_sub_batch_size!4917 when the job sub batch size can be reduced4918 reduces sub batch size in 25%4919 log the changes4920 when reduced sub_batch_size is greater than sub_batch4921 doesn't allow sub_batch_size to greater than sub_batch4922 when sub_batch_size is already 14923 updates sub_batch_size to it's minimum value4924 when job has not failed4925 raises an exception4926 when the amount to be reduced exceeds the threshold4927 prevents sub batch size to be reduced4928Projects::AutocompleteService4929 #issues4930 confidential issues4931 does not list project confidential issues for guests4932 does not list project confidential issues for non project members4933 does not list project confidential issues for project members with guest role4934 lists project confidential issues for author4935 lists project confidential issues for assignee4936 lists project confidential issues for project members4937 when admin mode is enabled4938 lists all project issues for admin4939 when admin mode is disabled4940 does not list project confidential issues for admin4941 #milestones4942 includes project and group milestones and sorts them correctly4943 does not include closed milestones4944 does not include milestones from other projects in the group4945 with nested groups4946 includes project milestones and all acestors milestones4947 #contacts4948 returns CRM contacts from group4949 some contacts are already assigned to the issue4950 marks already assigned contacts as set4951 #labels_as_hash4952 returns labels from project and ancestor groups4953 some labels are already assigned4954 marks already assigned as set4955Integrations::Discord4956 behaves like chat integration4957 Associations4958 is expected to belong to project required: false4959 Validations4960 when integration is active4961 is expected to validate that :webhook cannot be empty/falsy4962 behaves like issue tracker integration URL attribute4963 is expected to allow :webhook to be ‹"https://example.com"›4964 is expected not to allow :webhook to be ‹"example.com"›4965 is expected not to allow :webhook to be ‹"ftp://example.com"›4966 is expected not to allow :webhook to be ‹"herp-and-derp"›4967 when integration is inactive4968 is expected not to validate that :webhook cannot be empty/falsy4969 .supported_events4970 does not support deployment_events4971 #execute4972 with push events4973 behaves like triggered Discord notifications integration4974 calls Discord notifications API4975 with default branch4976 when only default branch are to be notified4977 behaves like triggered Discord notifications integration4978 calls Discord notifications API4979 when only protected branches are to be notified4980 behaves like untriggered Discord notifications integration4981 does not call Discord notifications API4982 when default and protected branches are to be notified4983 behaves like triggered Discord notifications integration4984 calls Discord notifications API4985 when all branches are to be notified4986 behaves like triggered Discord notifications integration4987 calls Discord notifications API4988 with protected branch4989 when only default branch are to be notified4990 behaves like untriggered Discord notifications integration4991 does not call Discord notifications API4992 when only protected branches are to be notified4993 behaves like triggered Discord notifications integration4994 calls Discord notifications API4995 when default and protected branches are to be notified4996 behaves like triggered Discord notifications integration4997 calls Discord notifications API4998 when all branches are to be notified4999 behaves like triggered Discord notifications integration5000 calls Discord notifications API5001 with neither default nor protected branch5002 when only default branch are to be notified5003 behaves like untriggered Discord notifications integration5004 does not call Discord notifications API5005 when only protected branches are to be notified5006 behaves like untriggered Discord notifications integration5007 does not call Discord notifications API5008 when default and protected branches are to be notified5009 behaves like untriggered Discord notifications integration5010 does not call Discord notifications API5011 when all branches are to be notified5012 behaves like triggered Discord notifications integration5013 calls Discord notifications API5014 with issue events5015 behaves like triggered Discord notifications integration5016 calls Discord notifications API5017 with merge events5018 behaves like triggered Discord notifications integration5019 calls Discord notifications API5020 with wiki page events5021 behaves like triggered Discord notifications integration5022 calls Discord notifications API5023 with note events5024 with commit comment5025 behaves like triggered Discord notifications integration5026 calls Discord notifications API5027 with merge request comment5028 behaves like triggered Discord notifications integration5029 calls Discord notifications API5030 with issue comment5031 behaves like triggered Discord notifications integration5032 calls Discord notifications API5033 with snippet comment5034 behaves like triggered Discord notifications integration5035 calls Discord notifications API5036 with pipeline events5037 with failed pipeline5038 behaves like triggered Discord notifications integration5039 calls Discord notifications API5040 with succeeded pipeline5041 with default notify_only_broken_pipelines5042 does not call Discord notifications API5043 when notify_only_broken_pipelines is false5044 behaves like triggered Discord notifications integration5045 calls Discord notifications API5046 with default branch5047 when only default branch are to be notified5048 behaves like triggered Discord notifications integration5049 calls Discord notifications API5050 when only protected branches are to be notified5051 behaves like untriggered Discord notifications integration5052 does not call Discord notifications API5053 when default and protected branches are to be notified5054 behaves like triggered Discord notifications integration5055 calls Discord notifications API5056 when all branches are to be notified5057 behaves like triggered Discord notifications integration5058 calls Discord notifications API5059 with protected branch5060 when only default branch are to be notified5061 behaves like untriggered Discord notifications integration5062 does not call Discord notifications API5063 when only protected branches are to be notified5064 behaves like triggered Discord notifications integration5065 calls Discord notifications API5066 when default and protected branches are to be notified5067 behaves like triggered Discord notifications integration5068 calls Discord notifications API5069 when all branches are to be notified5070 behaves like triggered Discord notifications integration5071 calls Discord notifications API5072 with neither default nor protected branch5073 when only default branch are to be notified5074 behaves like untriggered Discord notifications integration5075 does not call Discord notifications API5076 when only protected branches are to be notified5077 behaves like untriggered Discord notifications integration5078 does not call Discord notifications API5079 when default and protected branches are to be notified5080 behaves like untriggered Discord notifications integration5081 does not call Discord notifications API5082 when all branches are to be notified5083 behaves like triggered Discord notifications integration5084 calls Discord notifications API5085 deployment events5086 behaves like untriggered Discord notifications integration5087 does not call Discord notifications API5088 #execute5089 uses the right embed parameters5090 DNS rebind to local address5091 does not allow DNS rebinding5092 when the Discord request fails5093 logs an error and returns false5094Gitlab::Ci::Variables::Builder5095 #scoped_variables5096 is expected to be an instance of Gitlab::Ci::Variables::Collection5097 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SLUG", :masked=>false, :public=>true, :value=>"rspec-test-1"}, {:key=>"CI_JOB_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_NODE_TOTAL", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_ENVIRONMENT_NAME", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"GITLAB_CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"CI_SERVER_URL", :masked=>false, :public=>true, :value=>"http://localhost"}, {:key=>"CI_SERVER_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_PORT", :masked=>false, :public=>true, :value=>"80"}, {:key=>"CI_SERVER_PROTOCOL", :masked=>false, :public=>true, :value=>"http"}, {:key=>"CI_SERVER_SHELL_SSH_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_SHELL_SSH_PORT", :masked=>false, :public=>true, :value=>"22"}, {:key=>"CI_SERVER_NAME", :masked=>false, :public=>true, :value=>"GitLab"}, {:key=>"CI_SERVER_VERSION", :masked=>false, :public=>true, :value=>"15.11.0-pre"}, {:key=>"CI_SERVER_VERSION_MAJOR", :masked=>false, :public=>true, :value=>"15"}, {:key=>"CI_SERVER_VERSION_MINOR", :masked=>false, :public=>true, :value=>"11"}, {:key=>"CI_SERVER_VERSION_PATCH", :masked=>false, :public=>true, :value=>"0"}, {:key=>"CI_SERVER_REVISION", :masked=>false, :public=>true, :value=>"e2ff33c50f5"}, {:key=>"GITLAB_FEATURES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_ID", :masked=>false, :public=>true, :value=>"559"}, {:key=>"CI_PROJECT_NAME", :masked=>false, :public=>true, :value=>"project595"}, {:key=>"CI_PROJECT_TITLE", :masked=>false, :public=>true, :value=>"project595"}, {:key=>"CI_PROJECT_DESCRIPTION", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_PROJECT_PATH", :masked=>false, :public=>true, :value=>"group396/project595"}, {:key=>"CI_PROJECT_PATH_SLUG", :masked=>false, :public=>true, :value=>"group396-project595"}, {:key=>"CI_PROJECT_NAMESPACE", :masked=>false, :public=>true, :value=>"group396"}, {:key=>"CI_PROJECT_NAMESPACE_ID", :masked=>false, :public=>true, :value=>"1881"}, {:key=>"CI_PROJECT_ROOT_NAMESPACE", :masked=>false, :public=>true, :value=>"group396"}, {:key=>"CI_PROJECT_URL", :masked=>false, :public=>true, :value=>"http://localhost/group396/project595"}, {:key=>"CI_PROJECT_VISIBILITY", :masked=>false, :public=>true, :value=>"private"}, {:key=>"CI_PROJECT_REPOSITORY_LANGUAGES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_CLASSIFICATION_LABEL", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_DEFAULT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_CONFIG_PATH", :masked=>false, :public=>true, :value=>".gitlab-ci.yml"}, {:key=>"CI_PAGES_DOMAIN", :masked=>false, :public=>true, :value=>"example.com"}, {:key=>"CI_PAGES_URL", :masked=>false, :public=>true, :value=>"http://group396.example.com/project595"}, {:key=>"CI_API_V4_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/v4"}, {:key=>"CI_API_GRAPHQL_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/graphql"}, {:key=>"CI_TEMPLATE_REGISTRY_HOST", :masked=>false, :public=>true, :value=>"registry.gitlab.com"}, {:key=>"CI_PIPELINE_IID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_SOURCE", :masked=>false, :public=>true, :value=>"push"}, {:key=>"CI_PIPELINE_CREATED_AT", :masked=>false, :public=>true, :value=>"2023-04-19T09:57:11Z"}, {:key=>"CI_COMMIT_SHA", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_COMMIT_SHORT_SHA", :masked=>false, :public=>true, :value=>"b83d6e39"}, {:key=>"CI_COMMIT_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_COMMIT_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_MESSAGE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_TITLE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'"}, {:key=>"CI_COMMIT_DESCRIPTION", :masked=>false, :public=>true, :value=>"\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_REF_PROTECTED", :masked=>false, :public=>true, :value=>"false"}, {:key=>"CI_COMMIT_TIMESTAMP", :masked=>false, :public=>true, :value=>"2016-09-27T14:37:46+00:00"}, {:key=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}, {:key=>"YAML_VARIABLE", :masked=>false, :public=>true, :value=>"value"}, {:key=>"GITLAB_USER_ID", :masked=>false, :public=>true, :value=>"933"}, {:key=>"GITLAB_USER_EMAIL", :masked=>false, :public=>true, :value=>"user1065@example.org"}, {:key=>"GITLAB_USER_LOGIN", :masked=>false, :public=>true, :value=>"user491"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones1088"}]5098 when FF `ci_remove_legacy_predefined_variables` is disabled5099 is expected to eq [{:key=>"CI_JOB_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_JOB_NAME_SLUG", :masked=>false, :public=>true, :value=>"rspec-test-1"}, {:key=>"CI_JOB_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_NODE_TOTAL", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_ENVIRONMENT_NAME", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI_BUILD_NAME", :masked=>false, :public=>true, :value=>"rspec:test 1"}, {:key=>"CI_BUILD_STAGE", :masked=>false, :public=>true, :value=>"test"}, {:key=>"CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"GITLAB_CI", :masked=>false, :public=>true, :value=>"true"}, {:key=>"CI_SERVER_URL", :masked=>false, :public=>true, :value=>"http://localhost"}, {:key=>"CI_SERVER_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_PORT", :masked=>false, :public=>true, :value=>"80"}, {:key=>"CI_SERVER_PROTOCOL", :masked=>false, :public=>true, :value=>"http"}, {:key=>"CI_SERVER_SHELL_SSH_HOST", :masked=>false, :public=>true, :value=>"localhost"}, {:key=>"CI_SERVER_SHELL_SSH_PORT", :masked=>false, :public=>true, :value=>"22"}, {:key=>"CI_SERVER_NAME", :masked=>false, :public=>true, :value=>"GitLab"}, {:key=>"CI_SERVER_VERSION", :masked=>false, :public=>true, :value=>"15.11.0-pre"}, {:key=>"CI_SERVER_VERSION_MAJOR", :masked=>false, :public=>true, :value=>"15"}, {:key=>"CI_SERVER_VERSION_MINOR", :masked=>false, :public=>true, :value=>"11"}, {:key=>"CI_SERVER_VERSION_PATCH", :masked=>false, :public=>true, :value=>"0"}, {:key=>"CI_SERVER_REVISION", :masked=>false, :public=>true, :value=>"e2ff33c50f5"}, {:key=>"GITLAB_FEATURES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_ID", :masked=>false, :public=>true, :value=>"559"}, {:key=>"CI_PROJECT_NAME", :masked=>false, :public=>true, :value=>"project595"}, {:key=>"CI_PROJECT_TITLE", :masked=>false, :public=>true, :value=>"project595"}, {:key=>"CI_PROJECT_DESCRIPTION", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_PROJECT_PATH", :masked=>false, :public=>true, :value=>"group396/project595"}, {:key=>"CI_PROJECT_PATH_SLUG", :masked=>false, :public=>true, :value=>"group396-project595"}, {:key=>"CI_PROJECT_NAMESPACE", :masked=>false, :public=>true, :value=>"group396"}, {:key=>"CI_PROJECT_NAMESPACE_ID", :masked=>false, :public=>true, :value=>"1881"}, {:key=>"CI_PROJECT_ROOT_NAMESPACE", :masked=>false, :public=>true, :value=>"group396"}, {:key=>"CI_PROJECT_URL", :masked=>false, :public=>true, :value=>"http://localhost/group396/project595"}, {:key=>"CI_PROJECT_VISIBILITY", :masked=>false, :public=>true, :value=>"private"}, {:key=>"CI_PROJECT_REPOSITORY_LANGUAGES", :masked=>false, :public=>true, :value=>""}, {:key=>"CI_PROJECT_CLASSIFICATION_LABEL", :masked=>false, :public=>true, :value=>nil}, {:key=>"CI_DEFAULT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_CONFIG_PATH", :masked=>false, :public=>true, :value=>".gitlab-ci.yml"}, {:key=>"CI_PAGES_DOMAIN", :masked=>false, :public=>true, :value=>"example.com"}, {:key=>"CI_PAGES_URL", :masked=>false, :public=>true, :value=>"http://group396.example.com/project595"}, {:key=>"CI_API_V4_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/v4"}, {:key=>"CI_API_GRAPHQL_URL", :masked=>false, :public=>true, :value=>"http://localhost/api/graphql"}, {:key=>"CI_TEMPLATE_REGISTRY_HOST", :masked=>false, :public=>true, :value=>"registry.gitlab.com"}, {:key=>"CI_PIPELINE_IID", :masked=>false, :public=>true, :value=>"1"}, {:key=>"CI_PIPELINE_SOURCE", :masked=>false, :public=>true, :value=>"push"}, {:key=>"CI_PIPELINE_CREATED_AT", :masked=>false, :public=>true, :value=>"2023-04-19T09:57:11Z"}, {:key=>"CI_COMMIT_SHA", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_COMMIT_SHORT_SHA", :masked=>false, :public=>true, :value=>"b83d6e39"}, {:key=>"CI_COMMIT_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_COMMIT_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_BRANCH", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_COMMIT_MESSAGE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_TITLE", :masked=>false, :public=>true, :value=>"Merge branch 'branch-merged' into 'master'"}, {:key=>"CI_COMMIT_DESCRIPTION", :masked=>false, :public=>true, :value=>"\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"}, {:key=>"CI_COMMIT_REF_PROTECTED", :masked=>false, :public=>true, :value=>"false"}, {:key=>"CI_COMMIT_TIMESTAMP", :masked=>false, :public=>true, :value=>"2016-09-27T14:37:46+00:00"}, {:key=>"CI_COMMIT_AUTHOR", :masked=>false, :public=>true, :value=>"Job van der Voort <job@gitlab.com>"}, {:key=>"CI_BUILD_REF", :masked=>false, :public=>true, :value=>"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, {:key=>"CI_BUILD_BEFORE_SHA", :masked=>false, :public=>true, :value=>"0000000000000000000000000000000000000000"}, {:key=>"CI_BUILD_REF_NAME", :masked=>false, :public=>true, :value=>"master"}, {:key=>"CI_BUILD_REF_SLUG", :masked=>false, :public=>true, :value=>"master"}, {:key=>"YAML_VARIABLE", :masked=>false, :public=>true, :value=>"value"}, {:key=>"GITLAB_USER_ID", :masked=>false, :public=>true, :value=>"933"}, {:key=>"GITLAB_USER_EMAIL", :masked=>false, :public=>true, :value=>"user1065@example.org"}, {:key=>"GITLAB_USER_LOGIN", :masked=>false, :public=>true, :value=>"user491"}, {:key=>"GITLAB_USER_NAME", :masked=>false, :public=>true, :value=>"Sidney Jones1088"}]5100 variables ordering5101 returns variables in order depending on resource hierarchy5102 overrides duplicate keys depending on resource hierarchy5103 with schedule variables5104 includes schedule variables5105 with release variables5106 includes release variables5107 when there is no release5108 does not include release variables5109 #user_variables5110 with user5111 is expected to eq {"GITLAB_USER_EMAIL"=>"user1065@example.org", "GITLAB_USER_ID"=>"933", "GITLAB_USER_LOGIN"=>"user491", "GITLAB_USER_NAME"=>"Sidney Jones1088"}5112 without user5113 is expected to be empty5114 #kubernetes_variables5115 is expected to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}5116 calls the GenerateKubeconfigService with the correct arguments5117 includes #deployment_variables and merges the KUBECONFIG values5118 generated config is invalid5119 is expected not to include {:key => "KUBECONFIG", :value => "example-kubeconfig", :public => false, :file => true}5120 when environment is not nil5121 passes the environment when generating the KUBECONFIG5122 #deployment_variables5123 environment is nil5124 is expected to be empty5125 #secret_instance_variables5126 when ref is branch5127 when ref is protected5128 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa0698d7a78 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa0698d5840 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5129 when ref is not protected5130 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa06b2ef820 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5131 when ref is tag5132 when ref is protected5133 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa05a395998 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa05a394f70 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5134 when ref is not protected5135 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa05b538c90 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5136 when ref is merge request5137 when ref is protected5138 does not return protected variables as it is not supported for merge request pipelines5139 when ref is not protected5140 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa046806e00 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5141 #secret_group_variables5142 when ref is branch5143 when ref is protected5144 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa048e6f5d8 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa048e6ede0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5145 when ref is not protected5146 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04a094cb8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5147 when ref is tag5148 when ref is protected5149 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04aa9fbe0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04aa9f6e0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5150 when ref is not protected5151 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04b247988 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5152 when ref is merge request5153 when ref is protected5154 does not return protected variables as it is not supported for merge request pipelines5155 when ref is not protected5156 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04d59e260 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5157 variables memoization5158 with protected environments5159 memoizes the result by environment5160 with unprotected environments5161 memoizes the result by environment5162 #secret_project_variables5163 when ref is branch5164 when ref is protected5165 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04e5993e0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04e598be8 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5166 when ref is not protected5167 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04ee19268 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5168 when ref is tag5169 when ref is protected5170 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04f57d9f0 @variable={:key=>"VARIABLE_1", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}> and #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04f57d4f0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5171 when ref is not protected5172 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa04fb41b20 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5173 when ref is merge request5174 when ref is protected5175 does not return protected variables as it is not supported for merge request pipelines5176 when ref is not protected5177 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007fa050c5c4f0 @variable={:key=>"VARIABLE_2", :value=>"VARIABLE_VALUE", :public=>false, :file=>false, :masked=>false, :raw=>false}>5178 variables memoization5179 with protected environments5180 memoizes the result by environment5181 with unprotected environments5182 memoizes the result by environment5183 #config_variables5184 without project5185 is expected to eq 05186 without repository5187 is expected to be nil5188 with protected variables5189 does not include protected variables5190 with scoped variables5191 does not include scoped variables5192 variables ordering5193 returns variables in order depending on resource hierarchy5194 overrides duplicate keys depending on resource hierarchy5195Search::GroupService5196 basic search5197 finding projects by name5198 in parent group5199 is expected to contain exactly #<Project id:564 group398/group397/inner_project_name_1>>, #<Project id:565 group398/group397/inner_project_name_2>>, and #<Project id:566 group398/outer_project_name>>5200 in subgroup5201 is expected to contain exactly #<Project id:570 group400/group399/inner_project_name_1>> and #<Project id:571 group400/group399/inner_project_name_2>>5202 issues5203 sorting5204 sort: created_desc5205 sorts results by created_at5206 sort: created_asc5207 sorts results by created_at5208 sort: updated_desc5209 sorts results by updated_desc5210 sort: updated_asc5211 sorts results by updated_asc5212 merge requests5213 sorting5214 sort: created_desc5215 sorts results by created_at5216 sort: created_asc5217 sorts results by created_at5218 sort: updated_desc5219 sorts results by updated_desc5220 sort: updated_asc5221 sorts results by updated_asc5222Gitlab::Database::WithLockRetriesOutsideTransaction5223 #run5224 requires block5225 when DISABLE_LOCK_RETRIES is set5226 executes the passed block without retrying5227 when lock retry is enabled5228 lock_fiber5229 acquires lock successfully5230 after 3 iterations5231 behaves like retriable exclusive lock on `projects`5232 succeeds executing the given block5233 setting the idle transaction timeout5234 when there is no outer transaction: disable_ddl_transaction! is set in the migration5235 does not disable the idle transaction timeout5236 when there is outer transaction: disable_ddl_transaction! is not set in the migration5237 disables the idle transaction timeout so the code can sleep and retry5238 after the retries are exhausted5239 disables the lock_timeout5240 after the retries, without setting lock_timeout5241 behaves like retriable exclusive lock on `projects`5242 succeeds executing the given block5243 after the retries, when requested to raise an error5244 raises an error instead of waiting indefinitely for the lock5245 when statement timeout is reached5246 raises StatementInvalid error5247 restore local database variables5248 is expected not to change `connection.execute("SHOW lock_timeout").to_a`5249 is expected not to change `connection.execute("SHOW idle_in_transaction_session_timeout").to_a`5250 casting durations correctly5251 executes `SET lock_timeout` using the configured timeout value in milliseconds5252 calls `sleep` after the first iteration fails, using the configured sleep time5253Gitlab::Ci::Badge::Pipeline::Status5254 #entity5255 always says pipeline5256 #template5257 returns badge template5258 #metadata5259 returns badge metadata5260 pipeline exists5261 pipeline success5262 #status5263 is successful5264 pipeline failed5265 #status5266 failed5267 when outdated pipeline for given ref exists5268 does not take outdated pipeline into account5269 when multiple pipelines exist for given sha5270 does not take outdated pipeline into account5271 when ignored_skipped is set to true5272 #status5273 uses latest non-skipped status5274 when ignored_skipped is set to false5275 #status5276 uses latest status5277 build does not exist5278 #status5279 is unknown5280Clusters::Integrations::Prometheus5281 associations5282 is expected to belong to cluster class_name => Clusters::Cluster required: false5283 validations5284 is expected to validate that :cluster cannot be empty/falsy5285 is expected not to allow :enabled to be ‹nil›5286 default values5287 is expected to eq "randomtoken"5288 after_destroy5289 deactivates prometheus_integration5290 after_save5291 when no change to enabled status5292 does not touch project integrations5293 when enabling5294 activates prometheus_integration5295 when disabling5296 activates prometheus_integration5297 #prometheus_client5298 cluster is nil5299 returns nil5300 cluster doesn't have kubeclient5301 returns nil5302 cluster has kubeclient5303 creates proxy prometheus_client5304 merges proxy_url, options and headers from kube client with prometheus_client options5305 when cluster is not reachable5306 behaves like exception caught for prometheus client5307 returns nil5308 when there is a socket error while contacting cluster5309 behaves like exception caught for prometheus client5310 returns nil5311 behaves like exception caught for prometheus client5312 returns nil5313 when the network is unreachable5314 behaves like exception caught for prometheus client5315 returns nil5316 #configured?5317 when a kubenetes client is present5318 is expected to be truthy5319 when it is disabled5320 is expected to be falsey5321 when the kubernetes URL is blocked5322 is expected to be falsey5323 when a kubenetes client is not present5324 is expected to be falsy5325RuboCop::Cop::RSpec::FactoryBot::StrategyInCallback5326 # order random5327 behaves like an offensive factory call5328 registers an offence for multiple build(:ci_job_artifact, :archive) calls5329 registers an offense for build(:ci_job_artifact, :archive) when is a send node5330 registers an offense for build(:ci_job_artifact, :archive) when is assigned5331 registers an offence for multiple build_list(:ci_job_artifact, :archive) calls5332 registers an offense for build_list(:ci_job_artifact, :archive) when is a send node5333 registers an offense for build_list(:ci_job_artifact, :archive) when is assigned5334 registers an offence for multiple build_stubbed(:ci_job_artifact, :archive) calls5335 registers an offense for build_stubbed(:ci_job_artifact, :archive) when is a send node5336 registers an offense for build_stubbed(:ci_job_artifact, :archive) when is assigned5337 registers an offence for multiple build_stubbed_list(:ci_job_artifact, :archive) calls5338 registers an offense for build_stubbed_list(:ci_job_artifact, :archive) when is a send node5339 registers an offense for build_stubbed_list(:ci_job_artifact, :archive) when is assigned5340 registers an offence for multiple create(:ci_job_artifact, :archive) calls5341 registers an offense for create(:ci_job_artifact, :archive) when is a send node5342 registers an offense for create(:ci_job_artifact, :archive) when is assigned5343 registers an offence for multiple create_list(:ci_job_artifact, :archive) calls5344 registers an offense for create_list(:ci_job_artifact, :archive) when is a send node5345 registers an offense for create_list(:ci_job_artifact, :archive) when is assigned5346 behaves like an offensive factory call5347 registers an offence for multiple ::FactoryBot.build(:ci_job_artifact, :archive) calls5348 registers an offense for ::FactoryBot.build(:ci_job_artifact, :archive) when is a send node5349 registers an offense for ::FactoryBot.build(:ci_job_artifact, :archive) when is assigned5350 registers an offence for multiple ::FactoryBot.build_list(:ci_job_artifact, :archive) calls5351 registers an offense for ::FactoryBot.build_list(:ci_job_artifact, :archive) when is a send node5352 registers an offense for ::FactoryBot.build_list(:ci_job_artifact, :archive) when is assigned5353 registers an offence for multiple ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) calls5354 registers an offense for ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is a send node5355 registers an offense for ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is assigned5356 registers an offence for multiple ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) calls5357 registers an offense for ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is a send node5358 registers an offense for ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is assigned5359 registers an offence for multiple ::FactoryBot.create(:ci_job_artifact, :archive) calls5360 registers an offense for ::FactoryBot.create(:ci_job_artifact, :archive) when is a send node5361 registers an offense for ::FactoryBot.create(:ci_job_artifact, :archive) when is assigned5362 registers an offence for multiple ::FactoryBot.create_list(:ci_job_artifact, :archive) calls5363 registers an offense for ::FactoryBot.create_list(:ci_job_artifact, :archive) when is a send node5364 registers an offense for ::FactoryBot.create_list(:ci_job_artifact, :archive) when is assigned5365 behaves like an offensive factory call5366 registers an offence for multiple FactoryBot.build(:ci_job_artifact, :archive) calls5367 registers an offense for FactoryBot.build(:ci_job_artifact, :archive) when is a send node5368 registers an offense for FactoryBot.build(:ci_job_artifact, :archive) when is assigned5369 registers an offence for multiple FactoryBot.build_list(:ci_job_artifact, :archive) calls5370 registers an offense for FactoryBot.build_list(:ci_job_artifact, :archive) when is a send node5371 registers an offense for FactoryBot.build_list(:ci_job_artifact, :archive) when is assigned5372 registers an offence for multiple FactoryBot.build_stubbed(:ci_job_artifact, :archive) calls5373 registers an offense for FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is a send node5374 registers an offense for FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is assigned5375 registers an offence for multiple FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) calls5376 registers an offense for FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is a send node5377 registers an offense for FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is assigned5378 registers an offence for multiple FactoryBot.create(:ci_job_artifact, :archive) calls5379 registers an offense for FactoryBot.create(:ci_job_artifact, :archive) when is a send node5380 registers an offense for FactoryBot.create(:ci_job_artifact, :archive) when is assigned5381 registers an offence for multiple FactoryBot.create_list(:ci_job_artifact, :archive) calls5382 registers an offense for FactoryBot.create_list(:ci_job_artifact, :archive) when is a send node5383 registers an offense for FactoryBot.create_list(:ci_job_artifact, :archive) when is assigned5384Issues::BuildService5385 for a single discussion5386 #execute5387 references the noteable title in the issue title5388 adds the note content to the description5389 for discussions in a merge request5390 #items_for_discussions5391 has an item for each discussion5392 #item_for_discussion5393 mentions the author of the note5394 wraps the note in a blockquote5395 #execute5396 uses provided title if title param given5397 uses provided description if description param given5398 without additional params5399 has the merge request reference in the title5400 has the reference of the merge request in the description5401 with multiple discussions5402 mentions all the authors in the description5403 has a link for each unresolved discussion in the description5404 mentions additional notes5405 For a merge request without discussions5406 #execute5407 mentions the merge request in the description5408 #execute5409 setting milestone5410 when developer5411 builds a new issues with given params5412 sets milestone to nil if it is not available for the project5413 when user is not a project member5414 cannot set milestone5415IssuableExportCsvWorker5416 when issuable type is Issue5417 emails a CSV5418 ensures that project_id is passed to issues_finder5419 defines the loggable_arguments5420 removes sort parameter5421 calls the issue export service5422 with params5423 allows symbol access for IssuesFinder5424 when issuable type is MergeRequest5425 emails a CSV5426 calls the MR export service5427 calls the MergeRequest finder5428 behaves like export with selected fields5429 calls the export service with selected fields5430 for type WorkItem5431 emails a CSV5432 calls the work item export service5433 calls the WorkItemsFinder5434 behaves like export with selected fields5435 calls the export service with selected fields5436 when issuable type is User5437 is expected to raise ArgumentError5438Integrations::SquashTm5439 # order random5440 Validations5441 when integration is active5442 is expected to validate that :url cannot be empty/falsy5443 is expected to allow :url to be ‹"https://example.com"›5444 is expected not to allow :url to be ‹nil›5445 is expected not to allow :url to be ‹""›5446 is expected not to allow :url to be ‹"foo"›5447 is expected not to allow :url to be ‹"example.com"›5448 is expected not to validate that :token cannot be empty/falsy5449 is expected to validate that the length of :token is at most 2555450 is expected to allow :token to be ‹nil›5451 is expected to allow :token to be ‹"foo"›5452 when integration is inactive5453 is expected not to validate that :url cannot be empty/falsy5454 is expected not to validate that :token cannot be empty/falsy5455 #execute5456 calls Squash TM API5457 #test5458 when server is responding5459 is expected to eq {:result=>"OK", :success=>true}5460 when server rejects the request5461 is expected to eq {:result=>"Unauthorized", :success=>false}5462 when test request executes with errors5463 is expected to eq {:result=>"error message", :success=>false}5464 behaves like Integrations::HasWebHook5465 associations5466 is expected to have one service_hook inverse_of => integration5467 callbacks5468 calls #update_web_hook! when enabled5469 does not call #update_web_hook! when disabled5470 does not call #update_web_hook! when validation fails5471 #hook_url5472 returns a string5473 #url_variables5474 returns a hash5475 #hook_ssl_verification5476 returns a boolean5477 delegates to #enable_ssl_verification if the concern is included5478 #update_web_hook!5479 creates or updates a service hook5480 raises an error if the service hook could not be saved5481 does not attempt to save the service hook if there are no changes5482 #execute_web_hook!5483 creates the webhook if necessary and executes it5484 raises an error if the service hook could not be saved5485 behaves like Integrations::ResetSecretFields5486 #exposing_secrets_fields5487 returns an array of strings5488 #reset_secret_fields?5489 returns false if no exposing field has changed5490 returns true if any exposing field has changed5491 validation callback5492 when an exposing field has changed5493 clears all secret fields5494 when a secret field has been updated5495 does not clear this secret field5496 when a secret field has been updated with the same value5497 does not clear this secret field5498 when no exposing field has changed5499 does not clear any secret fields5500 .default_test_event5501 is expected to eq "issue"5502bin/audit-event-type5503 # order random5504 AuditEventTypeOptionParser5505 .parse5506 raises an error when name of the audit event type is missing5507 parses -h5508 param: :name, argv: ["foo"], result: "foo"5509 is expected to eq "foo"5510 param: :amend, argv: ["foo", "--amend"], result: true5511 is expected to eq true5512 param: :force, argv: ["foo", "-f"], result: true5513 is expected to eq true5514 param: :force, argv: ["foo", "--force"], result: true5515 is expected to eq true5516 param: :description, argv: ["foo", "-d", "desc"], result: "desc"5517 is expected to eq "desc"5518 param: :description, argv: ["foo", "--description", "desc"], result: "desc"5519 is expected to eq "desc"5520 param: :feature_category, argv: ["foo", "-c", "audit_events"], result: "audit_events"5521 is expected to eq "audit_events"5522 param: :feature_category, argv: ["foo", "--feature-category", "audit_events"], result: "audit_events"5523 is expected to eq "audit_events"5524 param: :milestone, argv: ["foo", "-M", "15.6"], result: "15.6"5525 is expected to eq "15.6"5526 param: :milestone, argv: ["foo", "--milestone", "15.6"], result: "15.6"5527 is expected to eq "15.6"5528 param: :saved_to_database, argv: ["foo", "-s"], result: true5529 is expected to eq true5530 param: :saved_to_database, argv: ["foo", "--saved-to-database"], result: true5531 is expected to eq true5532 param: :saved_to_database, argv: ["foo", "--no-saved-to-database"], result: false5533 is expected to eq false5534 param: :streamed, argv: ["foo", "-t"], result: true5535 is expected to eq true5536 param: :streamed, argv: ["foo", "--streamed"], result: true5537 is expected to eq true5538 param: :streamed, argv: ["foo", "--no-streamed"], result: false5539 is expected to eq false5540 param: :dry_run, argv: ["foo", "-n"], result: true5541 is expected to eq true5542 param: :dry_run, argv: ["foo", "--dry-run"], result: true5543 is expected to eq true5544 param: :ee, argv: ["foo", "-e"], result: true5545 is expected to eq true5546 param: :ee, argv: ["foo", "--ee"], result: true5547 is expected to eq true5548 param: :jh, argv: ["foo", "-j"], result: true5549 is expected to eq true5550 param: :jh, argv: ["foo", "--jh"], result: true5551 is expected to eq true5552 param: :introduced_by_mr, argv: ["foo", "-m", "https://url"], result: "https://url"5553 is expected to eq "https://url"5554 param: :introduced_by_mr, argv: ["foo", "--introduced-by-mr", "https://url"], result: "https://url"5555 is expected to eq "https://url"5556 param: :introduced_by_issue, argv: ["foo", "-i", "https://url"], result: "https://url"5557 is expected to eq "https://url"5558 param: :introduced_by_issue, argv: ["foo", "--introduced-by-issue", "https://url"], result: "https://url"5559 is expected to eq "https://url"5560 .read_description5561 reads description from stdin5562 when description is empty5563 shows error message and retries5564 .read_feature_category5565 reads feature_category from stdin5566 when feature category is empty5567 shows error message and retries5568 .read_saved_to_database5569 reads saved_to_database from stdin5570 when saved_to_database is invalid5571 shows error message and retries5572 .read_streamed5573 reads streamed from stdin5574 when streamed is invalid5575 shows error message and retries5576 .read_introduced_by_mr5577 reads introduced_by_mr from stdin5578 when URL is empty5579 does not raise an error5580 when URL is invalid5581 shows error message and retries5582 .read_introduced_by_issue5583 reads type from stdin5584 when URL is invalid5585 shows error message and retries5586 .read_milestone5587 returns the correct milestone from the VERSION file5588 AuditEventTypeCreator5589 properly creates an audit event type5590 when running on master5591 requires feature branch5592 with invalid audit event type names5593 argv: [".invalid.audit.type"], ex: /Provide a name for the audit event type that is/5594 is expected to raise /Provide a name for the audit event type that is/5595 argv: ["existing_audit_event_type"], ex: /already exists!/5596 is expected to raise /already exists!/5597Security::WeakPasswords5598 # order random5599 #weak_for_user?5600 password: "d2262d56", too_weak: false5601 is expected to eq false5602 password: "password", too_weak: true5603 is expected to eq true5604 password: "pAssWord", too_weak: true5605 is expected to eq true5606 password: "princeofdarkness", too_weak: true5607 is expected to eq true5608 password: "A1B2gitlabC3", too_weak: true5609 is expected to eq true5610 password: "gitlab123", too_weak: true5611 is expected to eq true5612 password: "theonedevopsplatform", too_weak: true5613 is expected to eq true5614 password: "A1gitlib", too_weak: false5615 is expected to eq false5616 password: "Aweakést", too_weak: true5617 is expected to eq true5618 password: "!@mCwEaKy", too_weak: true5619 is expected to eq true5620 password: "A1B2pass", too_weak: true5621 is expected to eq true5622 password: "A1B2C3jr", too_weak: false5623 is expected to eq false5624 password: "3e18a7f60a908e329958396d68131d39e1b66a03ea420725e2a0fce7cb17pass", too_weak: false5625 is expected to eq false5626 password: "56d4ab689a", too_weak: true5627 is expected to eq true5628 password: "56d4ab689a_win", too_weak: true5629 is expected to eq true5630 password: "56d4ab68", too_weak: false5631 is expected to eq false5632 password: "A1B2Cwin", too_weak: false5633 is expected to eq false5634 password: "predictāble.ZZZ+seventeen@examplecorp.com", too_weak: true5635 is expected to eq true5636 password: "predictable.ZZZ+seventeen@examplecorp.com", too_weak: true5637 is expected to eq true5638 password: "predictāble.ZZZ+seventeen", too_weak: true5639 is expected to eq true5640 password: "examplecorp.com", too_weak: true5641 is expected to eq true5642 password: "!@exAmplecorp", too_weak: true5643 is expected to eq true5644 password: "predictāble123", too_weak: true5645 is expected to eq true5646 password: "seventeen", too_weak: true5647 is expected to eq true5648 password: "predictable", too_weak: false5649 is expected to eq false5650 password: "A1B2CZzZ", too_weak: false5651 is expected to eq false5652 password: "fortunate@acme.com", too_weak: false5653 is expected to eq false5654 password: "A1B2acme", too_weak: false5655 is expected to eq false5656 password: "fortunate", too_weak: false5657 is expected to eq false5658 password: "1", too_weak: false5659 is expected to eq false5660 password: "1234567", too_weak: false5661 is expected to eq false5662 password: "gitlab", too_weak: true5663 is expected to eq true5664 password: "pass", too_weak: true5665 is expected to eq true5666 with a user who has short email parts5667 password: "11111111", too_weak: true5668 is expected to eq true5669 password: "1.ioABCD", too_weak: true5670 is expected to eq true5671 password: "sid@1.io", too_weak: true5672 is expected to eq true5673 password: "sid@1.ioAB", too_weak: true5674 is expected to eq true5675 password: "sid1ioAB", too_weak: false5676 is expected to eq false5677 password: "sidsidsi", too_weak: false5678 is expected to eq false5679 password: "ioioioio", too_weak: false5680 is expected to eq false5681 with a user who is missing attributes5682 password: "d2262d56", too_weak: false5683 is expected to eq false5684 password: "password", too_weak: true5685 is expected to eq true5686 password: "gitlab123", too_weak: true5687 is expected to eq true5688Ci::DeleteUnitTestsService5689 #execute5690 does not delete unit test failures not older than 14 days5691 deletes unit test failures older than 14 days5692 deletes unit tests that have no more associated unit test failures5693Projects::Settings::DeployKeysPresenter5694 inherits from Gitlab::View::Presenter::Simple5695 deploy key groups5696 with enabled keys5697 returns correct deploy keys5698 with available keys5699 returns correct deploy keys5700 with available project keys5701 returns correct deploy keys5702 with available public keys5703 returns correct deploy keys5704 #enabled_keys5705 returns currently enabled keys5706 does not contain enabled_keys inside available_keys5707 returns the enabled_keys size5708 #available_keys/#available_project_keys5709 returns the current available_keys5710 returns the current available_project_keys5711 returns the available_project_keys size5712 prevent N + 1 queries5713 returns correct counts5714 does not increase the query count5715Gitlab::Ci::Config::Entry::Environment5716 when configuration is a string5717 #string?5718 is string configuration5719 #hash?5720 is not hash configuration5721 #valid?5722 is valid5723 #value5724 returns valid hash5725 #name5726 returns environment name5727 #url5728 returns environment url5729 when configuration is a hash5730 #string?5731 is not string configuration5732 #hash?5733 is hash configuration5734 #valid?5735 is valid5736 #value5737 returns valid hash5738 #name5739 returns environment name5740 #url5741 returns environment url5742 when valid action is used5743 action: "start"5744 is valid5745 action: "stop"5746 is valid5747 action: "prepare"5748 is valid5749 action: "verify"5750 is valid5751 action: "access"5752 is valid5753 when wrong action type is used5754 #valid?5755 is not valid5756 #errors5757 contains error about wrong action type5758 when invalid action is used5759 #valid?5760 is not valid5761 #errors5762 contains error about invalid action5763 when on_stop is used5764 is valid5765 when invalid on_stop is used5766 #valid?5767 is not valid5768 #errors5769 contains error about invalid action5770 when wrong url type is used5771 #valid?5772 is not valid5773 #errors5774 contains error about wrong url type5775 when variables are used for environment5776 #valid?5777 is valid5778 when auto_stop_in is specified5779 when auto_stop_in is correct format5780 becomes valid5781 when variables are used for auto_stop_in5782 becomes valid5783 when configuration is invalid5784 when configuration is an array5785 #valid?5786 is not valid5787 #errors5788 contains error about invalid type5789 when environment name is not present5790 #valid?5791 is not valid5792 #errors?5793 contains error about missing environment name5794 kubernetes5795 is a string5796 is expected not to be valid5797 is a hash5798 is expected to be valid5799 is nil5800 is expected to be valid5801 deployment_tier5802 is a string5803 is expected to be valid5804 is a hash5805 is expected not to be valid5806 is nil5807 is expected to be valid5808 is unknown value5809 is invalid and adds an error5810Ci::BuildPresenter5811 inherits from Gitlab::View::Presenter::Delegated5812 #initialize5813 takes a build and optional params5814 exposes build5815 forwards missing methods to build5816 #status_title5817 when build is auto-canceled5818 shows that the build is auto-canceled5819 when build failed5820 returns the reason of failure5821 when build has failed && retried5822 does not include retried title5823 when build has failed and is allowed to5824 returns the reason of failure5825 For any other build5826 returns the status5827 quack like a Ci::Build permission-wise5828 user is not allowed5829 returns false5830 user is allowed5831 returns true5832 #trigger_variables5833 when variable is stored in ci_pipeline_variables5834 when pipeline is triggered by trigger API5835 returns variables5836 when pipeline is not triggered by trigger API5837 does not return variables5838 when variable is stored in ci_trigger_requests.variables5839 returns variables5840 #execute_in5841 when build is scheduled5842 when schedule is not expired5843 returns execution time5844 when schedule is expired5845 returns execution time5846 when build is not delayed5847 does not return execution time5848 #callout_failure_message5849 returns a verbose failure reason5850Ci::PipelinePolicy5851 rules5852 rules for protected ref5853 when no one can push or merge to the branch5854 does not include ability to update pipeline5855 when developers can push to the branch5856 includes ability to update pipeline5857 when no one can create the tag5858 does not include ability to update pipeline5859 when no one can create the tag but it is not a tag5860 includes ability to update pipeline5861 when maintainer is allowed to push to pipeline branch5862 enables update_pipeline if user is maintainer5863 when user does not have access to internal CI5864 disallows the user from reading the pipeline5865 destroy_pipeline5866 when user has owner access5867 is enabled5868 when user is not owner5869 is disabled5870 read_pipeline_variable5871 when user has owner access5872 is enabled5873 when user is developer and the creator of the pipeline5874 is enabled5875 when user is developer and it is not the creator of the pipeline5876 is disabled5877 when user is not owner nor developer5878 is disabled5879Gitlab::GitalyClient::RepositoryService5880 #exists?5881 sends a repository_exists message5882 #optimize_repository5883 with default parameter5884 behaves like a repository optimization5885 sends a optimize_repository message5886 with heuristical housekeeping strategy5887 behaves like a repository optimization5888 sends a optimize_repository message5889 with eager housekeeping strategy5890 behaves like a repository optimization5891 sends a optimize_repository message5892 #prune_unreachable_objects5893 sends a prune_unreachable_objects message5894 #repository_size5895 sends a repository_size message5896 #get_object_directory_size5897 sends a get_object_directory_size message5898 #apply_gitattributes5899 sends an apply_gitattributes message5900 #info_attributes5901 reads the info attributes5902 #has_local_branches?5903 sends a has_local_branches message5904 #import_repository5905 sends a create_repository_from_url message5906 when http_host is provided5907 sends a create_repository_from_url message with http_host provided in the request5908 #fetch_remote5909 sends a fetch_remote_request message5910 with resolved address5911 sends a fetch_remote_request message5912 SSH auth5913 ssh_mirror_url: false, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5914 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385915 ssh_mirror_url: false, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5916 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385917 ssh_mirror_url: true, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5918 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385919 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:ssh_key=>"key", :known_hosts=>"known_hosts"}5920 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385921 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: nil, expected_params: {:ssh_key=>"key"}5922 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385923 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5924 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385925 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: nil, expected_params: {}5926 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385927 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "", ssh_known_hosts: "", expected_params: {}5928 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385929 #calculate_checksum5930 sends a calculate_checksum message5931 #create_repository5932 sends a create_repository message without arguments5933 sends a create_repository message with default branch5934 sends a create_repository message with default branch containing non ascii chars5935 #create_from_snapshot5936 sends a create_repository_from_snapshot message5937 #raw_changes_between5938 sends a create_repository_from_snapshot message5939 #search_files_by_regexp5940 with ASCII ref5941 behaves like a search for files by regexp5942 sends a search_files_by_name message and returns a flatten array5943 with non-ASCII ref5944 behaves like a search for files by regexp5945 sends a search_files_by_name message and returns a flatten array5946 #disconnect_alternates5947 sends a disconnect_git_alternates message5948 #rename5949 sends a rename_repository message5950 #remove5951 sends a remove_repository message5952 #replicate5953 sends a replicate_repository message5954 #set_full_path5955 sends a set_full_path message5956 #full_path5957 sends a full_path message5958 #find_license5959 sends a find_license request with medium timeout5960Gitlab::DataBuilder::Deployment5961 .build5962 returns the object kind for a deployment5963 returns data for the given build5964 does not include the deployable URL when there is no deployable5965 when commit does not exist in the repository5966 returns nil for commit_url5967 returns nil for commit_title5968 when deployed_by is nil5969 returns nil for user5970 returns nil for user_url5971Ci::BuildTraceMetadata5972 is expected to belong to build required: false5973 is expected to belong to trace_artifact required: false5974 is expected to validate that :build cannot be empty/falsy5975 is expected to validate that :archival_attempts cannot be empty/falsy5976 #can_attempt_archival_now?5977 when archival_attempts is over the limit5978 is expected to be falsey5979 when last_archival_attempt_at is not set5980 is expected to be truthy5981 when last_archival_attempt_at is set5982 is expected to be truthy5983 when last_archival_attempt_at is too close5984 is expected to be falsey5985 #archival_attempts_available?5986 when archival_attempts is over the limit5987 is expected to be falsey5988 when archival_attempts is at the limit5989 is expected to be truthy5990 #increment_archival_attempts!5991 increments the attempts5992 updates the last_archival_attempt_at timestamp5993 #track_archival!5994 stores the artifact id and timestamp5995 .find_or_upsert_for!5996 creates a new record5997 with existing records5998 returns the existing record5999 #remote_checksum_valid?6000 checksum: nil, remote_checksum: nil, result: false6001 is expected to eq false6002 checksum: nil, remote_checksum: "a", result: false6003 is expected to eq false6004 checksum: "a", remote_checksum: nil, result: false6005 is expected to eq false6006 checksum: "a", remote_checksum: "b", result: false6007 is expected to eq false6008 checksum: "b", remote_checksum: "a", result: false6009 is expected to eq false6010 checksum: "a", remote_checksum: "a", result: true6011 is expected to eq true6012 partitioning6013 assigns the same partition id as the one that build has (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6014ProtectableDropdown6015 initialize6016 raises ArgumentError for invalid ref type6017 #protectable_ref_names6018 for branches6019 is expected to include "feature"6020 is expected not to include "master"6021 behaves like protectable_ref_names6022 when project repository is not empty6023 includes elements matching a protected ref wildcard6024 when project repository is empty6025 returns empty list6026 for tags6027 is expected to include "v1.0.0"6028 is expected not to include "v1.1.0"6029 behaves like protectable_ref_names6030 when project repository is not empty6031 includes elements matching a protected ref wildcard6032 when project repository is empty6033 returns empty list6034 #hash6035 for branches6036 is expected to include {:id => "feature", :text => "feature", :title => "feature"}6037 for tags6038 is expected to include {:id => "v1.0.0", :text => "v1.0.0", :title => "v1.0.0"}6039Projects::HashedStorage::RollbackAttachmentsService6040 #execute6041 works even when project validation fails6042 when succeeds6043 moves attachments to legacy storage layout6044 returns true6045 sets skipped to false6046 when original folder does not exist anymore6047 skips moving folders and go to next6048 returns true6049 sets skipped to true6050 when target folder already exists6051 raises AttachmentCannotMoveError6052 #old_disk_path6053 returns old disk_path for project6054 #new_disk_path6055 returns new disk_path for project6056Gitlab::Search::RecentIssues6057 behaves like search recent items6058 #log_view6059 adds the item to the recent items6060 removes an item when it exceeds the size items_limit6061 expires the items after expires_after6062 does not include results logged for another user6063 #search6064 matches partial text in the item title6065 returns results sorted by recently viewed6066 does not leak items you no longer have access to6067 limits results to 5 items6068Gitlab::Metrics::Dashboard::Processor6069 process6070 includes an id for each dashboard panel6071 includes boolean to indicate if panel group has custom metrics6072 when the dashboard is not present6073 returns nil6074 when dashboard config corresponds to common metrics6075 inserts metric ids into the config6076 when the project has associated metrics6077 includes project-specific metrics6078 display groups and panels in the order they are defined6079 when the project has multiple metrics in the same group6080 includes multiple metrics6081 when the dashboard should not include project metrics6082 includes only dashboard metrics6083 when sample_metrics are requested6084 includes a sample metrics path for the prometheus endpoint with each metric6085 when there are no alerts6086 does not insert an alert_path6087 when the dashboard is missing panel_groups6088 behaves like errors with message6089 raises a DashboardLayoutError6090 when the dashboard contains a panel_group which is missing panels6091 behaves like errors with message6092 raises a DashboardLayoutError6093 when the dashboard contains a panel which is missing metrics6094 behaves like errors with message6095 raises a DashboardLayoutError6096 when the dashboard contains a metric which is missing a query6097 behaves like errors with message6098 raises a DashboardLayoutError6099GroupClusterablePresenter6100 #can_create_cluster?6101 when user can create6102 is expected to be truthy6103 when user cannot create6104 is expected to be falsey6105 #index_path6106 is expected to eq "/groups/group408/-/clusters"6107 #connect_path6108 is expected to eq "/groups/group409/-/clusters/connect"6109 #create_user_clusters_path6110 is expected to eq "/groups/group410/-/clusters/create_user"6111 #cluster_status_cluster_path6112 is expected to eq "/groups/group411/-/clusters/55/cluster_status"6113 #clear_cluster_cache_path6114 is expected to eq "/groups/group412/-/clusters/58/clear_cache"6115 #cluster_path6116 is expected to eq "/groups/group413/-/clusters/61"6117 #metrics_dashboard_path6118 is expected to eq "/groups/group414/-/clusters/64/metrics_dashboard"6119 #learn_more_link6120 is expected to include "user/group/clusters/index"6121MergeRequests::ExportCsvService6122 csv_data6123 contains the correct information6124 assignees6125 when assigned6126 contains the names of assignees6127 contains the usernames of assignees6128 when not assigned6129 returns empty strings6130 approvers6131 when approved6132 contains the names of approvers separated by a comma6133 contains the usernames of approvers separated by a comma6134 when not approved6135 returns empty strings6136 merged user6137 MR is merged6138 is merged6139 has a merged user6140 MR is not merged6141 returns empty strings6142 milestone6143 milestone is assigned6144 contains the milestone ID6145 no milestone is assigned6146 returns an empty string6147 #email6148 emails csv6149 renders with a target filesize6150Gitlab::OmniauthInitializer6151 .arguments_for6152 when there are no args at all6153 returns an empty array6154 when there is an app_id and an app_secret6155 includes both of them, in positional order6156 when there is an app_id and an app_secret, and an array of args6157 concatenates the args on the end6158 when there is an app_id and an app_secret, and an array of args, and default values6159 concatenates the args on the end6160 when there is an app_id and an app_secret, and a hash of args6161 concatenates the args on the end6162 when there is an app_id and an app_secret, and a hash of args, and default arguments6163 concatenates the args on the end6164 when there is an app_id and an app_secret, no args, and default values6165 concatenates the args on the end6166 when there are args, of an unsupported type6167 when there are default arguments6168 tracks a configuration error6169 when there are no default arguments6170 tracks a configuration error6171 #execute6172 configures providers from array6173 allows "args" array for app_id and app_secret6174 passes app_id and app_secret as additional arguments6175 passes "args" hash as symbolized hash argument6176 normalizes a String strategy_class6177 allows a class to be specified in strategy_class6178 throws an error for an invalid strategy_class6179 configures on_single_sign_out proc for cas36180 configures defaults for google_oauth26181 configures defaults for gitlab6182 configures defaults for gitlab, when arguments are not provided6183 configures defaults for gitlab, when array arguments are provided6184 tracks a configuration error if the arguments are neither a hash nor an array6185 .full_host6186 is expected to eq "http://localhost/test"6187gitlab:seed:runner_fleet rake task6188 # order random6189 with admin username6190 performs runner fleet seed successfully6191RepositoryCheck::SingleRepositoryWorker6192 skips when the project has no push events6193 fails when the project has push events and a broken repository6194 succeeds when the project repo is valid6195 fails if the wiki repository is broken6196 skips wikis when disabled6197 creates missing wikis6198ObjectStoreSettings6199 #parse!6200 with valid config6201 sets correct default values6202 supports bucket prefixes6203 raises an error when a bucket is missing6204[WARNING] Object storage for pages must have a bucket specified6205 does not raise error if pages bucket is missing6206 with Google CDN enabled6207 populates artifacts CDN config6208 GitLab Pages6209 allows pages to define its own connection6210 behaves like consolidated settings for objects accelerated by Workhorse6211 consolidates active object storage settings6212 when object storage is disabled for artifacts with no bucket6213 does not enable consolidated settings for artifacts6214 behaves like consolidated settings for objects accelerated by Workhorse6215 consolidates active object storage settings6216 with legacy config6217 does not alter config if legacy settings are specified6218 .legacy_parse6219 sets correct default values6220 respects original values6221 supports bucket prefixes6222 .split_bucket_prefix6223 valid inputs6224 input: nil, bucket: nil, prefix: nil6225 is expected to eq [nil, nil]6226 input: "", bucket: nil, prefix: nil6227 is expected to eq [nil, nil]6228 input: "bucket", bucket: "bucket", prefix: nil6229 is expected to eq ["bucket", nil]6230 input: "bucket/prefix", bucket: "bucket", prefix: "prefix"6231 is expected to eq ["bucket", "prefix"]6232 input: "bucket/pre/fix", bucket: "bucket", prefix: "pre/fix"6233 is expected to eq ["bucket", "pre/fix"]6234 invalid inputs6235 input: "bucket/"6236 is expected to raise /invalid bucket/6237 input: "bucket/."6238 is expected to raise /invalid bucket/6239 input: "bucket/.."6240 is expected to raise /invalid bucket/6241 input: "bucket/prefix/"6242 is expected to raise /invalid bucket/6243 input: "bucket/prefix/."6244 is expected to raise /invalid bucket/6245 input: "bucket/prefix/.."6246 is expected to raise /invalid bucket/6247 input: "/bucket/prefix"6248 is expected to raise /invalid bucket/6249 input: "./bucket/prefix"6250 is expected to raise /invalid bucket/6251 input: "../bucket/prefix"6252 is expected to raise /invalid bucket/6253 input: "bucket//prefix"6254 is expected to raise /invalid bucket/6255 input: "bucket/./prefix"6256 is expected to raise /invalid bucket/6257 input: "bucket/../prefix"6258 is expected to raise /invalid bucket/6259Markup::RenderingService6260 # order random6261 #execute6262 when text is missing6263 returns an empty string6264 when file_name is missing6265 returns html (rendered by Banzai)6266 when postprocess_context is missing6267 returns html (rendered by Banzai)6268 when rendered context is present6269 returns an empty string6270 when file is a markdown file6271 returns html (rendered by Banzai)6272 when file is asciidoc file6273 returns html (rendered by Gitlab::Asciidoc)6274 when file is a regular text file6275 returns html (rendered by ActionView::TagHelper)6276 when file has an unknown type6277 returns html (rendered by Gitlab::OtherMarkup)6278 with reStructuredText6279 returns rendered html6280 when input has an invalid syntax6281 uses a simple formatter for html6282SuggestionEntity6283 exposes correct attributes6284 exposes current user abilities6285 inapplicable_reason6286 when user can apply suggestion6287 returns the inapplicable reason6288 when user cannot apply suggestion6289 returns appropriate message6290Users::UpdateService6291 #execute6292 updates time preferences6293 returns an error result when record cannot be updated6294 includes namespace error messages6295 updates the status if status params were given6296 does not delete the status if no status param was passed6297 includes status error messages6298 updates user detail with provided attributes6299 does not try to reset unconfirmed email for a new user6300 updating canonical email6301 if email was changed6302 calls canonicalize_email6303 when race condition6304 updates email for stale user6305 when check_password is true6306 returns error if no password confirmation was passed6307 returns error if wrong password confirmation was passed6308 does not require password if it was automatically set6309 does not require a password if the attribute changed does not require it6310 when check_password is left to false6311 does not require a password check6312 if email was NOT changed6313 skips update canonicalize email service call6314 does not reset unconfirmed email6315 #execute!6316 updates the name6317 raises an error when record cannot be updated6318 fires system hooks when a new user is saved6319Security::CiConfiguration::SecretDetectionCreateService6320 #execute6321 user does not belong to project6322 returns an error status6323 does not track a snowplow event6324 user belongs to project6325 does track the snowplow event6326 raises exception if the user does not have permission to create a new branch6327 when exception is raised6328 when branch was created6329 tries to rm branch6330 when branch was not created6331 does not try to rm branch6332 with no parameters6333 returns the path to create a new merge request6334 when the project has a non-default ci config file6335 does track the snowplow event6336 when existing ci config contains anchors/aliases6337 fails with error6338 when parsing existing ci config gives a Psych error6339 fails with error6340 when parsing existing ci config gives any other error6341 is successful6342 when the project is empty6343 returns an error6344BulkImports::FileDownloadService6345 #execute6346 downloads file6347 when content-type is application/gzip6348 downloads file6349 when url is not valid6350 raises an error6351 when content-type is not valid6352 raises an error6353 when content-length is not valid6354 when content-length exceeds limit6355 raises an error6356 when content-length is missing6357 raises an error6358 when content-length is equals the file size limit6359 does not raise an error6360 when partially downloaded file exceeds limit6361 raises an error6362 when chunk code is not 2006363 raises an error6364 when chunk code is redirection6365 does not write a redirection chunk6366 when redirection chunk appears at a later stage of the download6367 raises an error6368 remote content validation6369 on redirect chunk6370 does not run content type & length validations6371 when there is one data chunk6372 validates content type & length6373 when there are multiple data chunks6374 validates content type & length only once6375 when file is a symlink6376 raises an error and removes the file6377 when dir is not in tmpdir6378 raises an error6379 when dir path is being traversed6380 raises an error6381 when using the remote filename6382 when no filename is given6383 raises an error when the filename is not provided in the request header6384 with a given filename6385 uses the given filename6386 when the filename is a path6387 raises an error when the filename is not provided in the request header6388 when the filename is longer the the limit6389 raises an error when the filename is not provided in the request header6390Mutations::Ci::Runner::Delete6391 is expected to require graphql authorizations :delete_runner6392 #resolve6393 when the user cannot admin the runner6394 generates an error6395 with more than one associated project6396 raises an error6397 when required arguments are missing6398 raises an error6399 when user can delete owned runner6400 with one associated project6401 deletes runner6402 with more than one associated project6403 with user as admin6404 deletes runner6405 with user as project maintainer6406 raises error6407 when admin can delete runner6408 deletes runner6409Users::ActivityService6410 #execute6411 when last activity is nil6412 updates last_activity_on for the user6413 when last activity is in the past6414 updates last_activity_on for the user6415 tries to obtain ExclusiveLease6416 tracks RedisHLL event6417 behaves like Snowplow event tracking with RedisHLL context6418 behaves like Snowplow event tracking6419 is emitted6420 when a bad object is passed6421 does not record activity6422 when last activity is today6423 does not try to obtain ExclusiveLease6424 behaves like does not update last_activity_on6425 does not update user attribute6426 does not track Snowplow event6427 when in GitLab read-only instance6428 behaves like does not update last_activity_on6429 does not update user attribute6430 does not track Snowplow event6431 when a lease could not be obtained6432 behaves like does not update last_activity_on6433 does not update user attribute6434 does not track Snowplow event6435 with DB Load Balancing6436 when last activity is in the past6437 database load balancing is configured6438 does not stick to primary6439 database load balancing is not configured6440 updates user without error6441Boards::Lists::CreateService6442 when board parent is a project6443 behaves like board lists create service6444 #execute6445 when board lists is empty6446 creates a new list at beginning of the list6447 when board lists has the done list6448 creates a new list at beginning of the list6449 when board lists has labels lists6450 creates a new list at end of the lists6451 when board lists has label and done lists6452 creates a new list at end of the label lists6453 when provided label does not belong to the parent6454 returns an error6455 when backlog param is sent6456 creates one and only one backlog list6457 when board parent is a group6458 behaves like board lists create service6459 #execute6460 when board lists is empty6461 creates a new list at beginning of the list6462 when board lists has the done list6463 creates a new list at beginning of the list6464 when board lists has labels lists6465 creates a new list at end of the lists6466 when board lists has label and done lists6467 creates a new list at end of the label lists6468 when provided label does not belong to the parent6469 returns an error6470 when backlog param is sent6471 creates one and only one backlog list6472Gitlab::GithubImport::Importer::IssueImporter6473 .import_if_issue6474 imports an issuable if it is a regular issue6475 does not import the issuable if it is a pull request6476 #execute6477 when :issues_full_test_search is disabled6478 creates the issue and assignees but does not update search data6479 when :issues_full_text_search feature is enabled6480 creates the issue and assignees and updates_search_data6481 #create_issue6482 creates issues with a work item type id6483 produces a valid Issue6484 returns the ID of the created issue6485 when the issue author could be found6486 creates the issue with the found author as the issue author6487 when the issue author could not be found6488 creates the issue with the project creator as the issue author6489 when the import fails due to a foreign key error6490 does not raise any errors6491 #create_assignees6492 inserts the issue assignees in bulk6493Projects::PagesHelper6494 # order random6495 when the user have permission6496 on custom domain6497 external_http: false, external_https: false, can_create: false6498 is expected to equal false6499 external_http: false, external_https: true, can_create: true6500 is expected to equal true6501 external_http: true, external_https: false, can_create: true6502 is expected to equal true6503 external_http: true, external_https: true, can_create: true6504 is expected to equal true6505 on domain limit6506 can create new domains when the limit is 06507 validates custom domain creation is only allowed upto max value6508 when the user does not have permission6509 validates user cannot create domain6510Gitlab::GithubImport::Representation::NoteText6511 # order random6512 #github_identifiers6513 with Release6514 returns a hash with needed identifiers6515 with Issue6516 returns a hash with needed identifiers6517 with Merge Request6518 returns a hash with needed identifiers6519 with Note6520 returns a hash with needed identifiers6521 .from_db_record6522 with Release6523 includes tag6524 behaves like a Note text data6525 returns an instance of NoteText6526 includes record DB id6527 includes record type6528 includes note text6529 with Issue6530 includes noteable iid6531 behaves like a Note text data6532 returns an instance of NoteText6533 includes record DB id6534 includes record type6535 includes note text6536 with MergeRequest6537 includes noteable iid6538 behaves like a Note text data6539 returns an instance of NoteText6540 includes record DB id6541 includes record type6542 includes note text6543 with Note6544 includes noteable type6545 behaves like a Note text data6546 returns an instance of NoteText6547 includes record DB id6548 includes record type6549 includes note text6550 .from_json_hash6551 behaves like a Note text data6552 returns an instance of NoteText6553 includes record DB id6554 includes record type6555 includes note text6556GraphqlTriggers6557 .issuable_assignees_updated6558 triggers the issuable_assignees_updated subscription6559 .issuable_title_updated6560 triggers the issuable_title_updated subscription6561 .issuable_description_updated6562 triggers the issuable_description_updated subscription6563 .issuable_labels_updated6564 triggers the issuable_labels_updated subscription6565 .issuable_dates_updated6566 triggers the issuable_dates_updated subscription6567 .issuable_milestone_updated6568 triggers the issuable_milestone_updated subscription6569 .merge_request_reviewers_updated6570 triggers the merge_request_reviewers_updated subscription6571 .merge_request_merge_status_updated6572 triggers the merge_request_merge_status_updated subscription6573 when realtime_mr_status_change feature flag is disabled6574 does not trigger realtime_mr_status_change subscription6575 .merge_request_approval_state_updated6576 triggers the merge_request_approval_state_updated subscription6577MergeRequestUserEntity6578 #as_json6579 exposes needed attributes6580 when `status` is not preloaded6581 does not expose the availability attribute6582 when the user has not approved the merge-request6583 exposes that the user has not approved the MR6584 when the user has approved the merge-request6585 exposes that the user has approved the MR6586 when `status` is preloaded6587 exposes the availibility attribute6588 performance6589 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)6590Tooling::FindCodeowners6591 #execute6592 prints CODEOWNERS as configured6593 #load_definitions6594 expands the allow and deny list with keywords and patterns6595 expands the patterns for the auth group6596 retains the array and expands the patterns for the compliance group6597 #load_config6598 loads the config with symbolized keys6599 when YAML has safe_load_file6600 calls safe_load_file6601 when YAML does not have safe_load_file6602 calls load_file6603 #path_matches?6604 passes flags we are expecting to File.fnmatch?6605 #normalize_pattern6606 returns /**/* if the input is *6607 prepends /** if the input does not start with /6608 returns the pattern if the input starts with /6609 appends **/* if the input ends with /6610 #consolidate_paths6611 when the directory has the same number of entries6612 consolidates into the directory6613 when the directory has different number of entries6614 returns the original paths6615ResourceStateEventFinder6616 #execute6617 returns events accessible by user6618 when issues are private6619 does not return any events6620 when issue is not accesible to the user6621 does not return any events6622 #can_read_eventable?6623 when eventable is an Issue6624 when issue is readable6625 is expected to be truthy6626 when issue is not readable6627 is expected to be falsey6628 when eventable is a MergeRequest6629 when merge request is readable6630 is expected to be truthy6631 when merge request is not readable6632 is expected to be falsey6633Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestLastBuildStarted6634 behaves like value stream analytics event6635 is expected to be a kind of String6636 is expected to be a kind of Symbol6637 is expected to include ApplicationRecord(abstract)6638 is expected to respond to #timestamp_projection6639 is expected to respond to #html_description6640 is expected to be a kind of Array6641 #apply_query_customization6642 expects an ActiveRecord::Relation object as argument and returns a modified version of it6643 #hash_code6644 returns a hash that uniquely identifies an event6645 does not differ when the same object is built with the same params6646 behaves like LEFT JOIN-able value stream analytics event6647 can use the event as LEFT JOIN6648 when looking at the record with data6649 contains the timestamp expression6650 when looking at the record without data6651 returns nil for the timestamp expression6652ExternalServiceReactiveCachingWorker6653 behaves like reactive cacheable worker6654 #perform6655 when reactive cache worker class is found6656 calls #exclusively_update_reactive_cache!6657 when ReactiveCaching::ExceededReactiveCacheLimit is raised6658 avoids failing the job and tracks via Gitlab::ErrorTracking6659 when reactive cache worker class is not found6660 raises no error6661 when reactive cache worker class is invalid6662 raises no error6663 worker context6664 sets the related class on the job6665 sets the related class on the job when it was passed as a class6666LabelLink6667 is expected to be valid6668 is expected to belong to label required: false6669 is expected to belong to target required: false6670 behaves like a BulkInsertSafe model6671 when calling class methods directly6672 raises an error when method is not bulk-insert safe6673 does not raise an error when method is bulk-insert safe6674 .bulk_insert!6675 when all items are valid6676 inserts them all6677 returns an empty array6678 when some items are invalid6679 does not insert any of them and raises an error6680 inserts them anyway when bypassing validations6681 .for_target6682 returns the label links for a given target6683BulkImports::PipelineWorker6684 behaves like successfully runs the pipeline6685 runs the given pipeline successfully6686 when exclusive lease cannot be obtained6687 does not run the pipeline6688 when the pipeline raises an exception6689 logs the error6690 when enqueued pipeline cannot be found6691 when pipeline is finished6692 logs the error6693 when pipeline is skipped6694 logs the error6695 when tracker is started6696 marks tracker as failed6697 when entity is failed6698 marks tracker as skipped and logs the skip6699 when retry pipeline error is raised6700 reenqueues the worker6701 when file extraction pipeline6702 runs the pipeline successfully6703 when export status is started6704 reenqueues pipeline worker6705 when export status is empty6706 when timeout is not reached6707 reenqueues pipeline worker6708 when empty export timeout is reached6709 marks as failed and logs the error6710 when tracker created_at is nil6711 falls back to entity created_at6712 when job reaches timeout6713 marks as failed and logs the error6714 when export status is failed6715 marks as failed and logs the error6716Mutations::Namespace::PackageSettings::Update6717 is expected to require graphql authorizations :admin_package6718 #resolve6719 with existing namespace package setting6720 user_role: :maintainer, shared_examples_name: "updating the namespace package setting"6721 behaves like updating the namespace package setting6722 behaves like updating the namespace package setting attributes6723 updates the namespace package setting6724 behaves like not creating the namespace package setting6725 doesn't create the namespace package setting6726 behaves like returning a success6727 returns the namespace package setting with no errors6728 with invalid params6729 doesn't update the maven_duplicates_allowed6730 returns an error6731 behaves like not creating the namespace package setting6732 doesn't create the namespace package setting6733 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6734 behaves like denying access to namespace package setting6735 raises Gitlab::Graphql::Errors::ResourceNotAvailable6736 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6737 behaves like denying access to namespace package setting6738 raises Gitlab::Graphql::Errors::ResourceNotAvailable6739 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6740 behaves like denying access to namespace package setting6741 raises Gitlab::Graphql::Errors::ResourceNotAvailable6742 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6743 behaves like denying access to namespace package setting6744 raises Gitlab::Graphql::Errors::ResourceNotAvailable6745 without existing namespace package setting6746 user_role: :maintainer, shared_examples_name: "creating the namespace package setting"6747 behaves like creating the namespace package setting6748 creates a new package setting6749 saves the settings6750 behaves like returning a success6751 returns the namespace package setting with no errors6752 user_role: :developer, shared_examples_name: "denying access to namespace package setting"6753 behaves like denying access to namespace package setting6754 raises Gitlab::Graphql::Errors::ResourceNotAvailable6755 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6756 behaves like denying access to namespace package setting6757 raises Gitlab::Graphql::Errors::ResourceNotAvailable6758 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6759 behaves like denying access to namespace package setting6760 raises Gitlab::Graphql::Errors::ResourceNotAvailable6761 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6762 behaves like denying access to namespace package setting6763 raises Gitlab::Graphql::Errors::ResourceNotAvailable6764Gitlab::Ci::Tags::BulkInsert6765 gem version6766 is expected to eq "9.0.0"6767 .bulk_insert_tags!6768 delegates to bulk insert class6769 #insert!6770 without tags6771 is expected to be falsey6772 with tags6773 persists tags6774 persists taggings6775 strips tags6776 when batching inserts for tags6777 inserts tags in batches6778 when batching inserts for taggings6779 inserts taggings in batches6780 with tags for only one job6781 persists tags6782 persists taggings6783SystemCheck::SimpleExecutor6784 #component6785 returns stored component name6786 #checks6787 returns a set of classes6788 #<<6789 appends a new check to the Set6790 inserts unique itens only6791 errors out when passing multiple items6792 #execute6793 runs included checks6794 #run_check6795 prints check name6796 when check pass6797 prints yes6798 when check fails6799 prints no6800 displays error message from #show_error6801 when check implements #repair!6802 executes #repair!6803 when repair succeeds6804 does not execute #show_error6805 when repair fails6806 does not execute #show_error6807 when check implements skip?6808 executes #skip? method6809 displays .skip_reason6810 displays #skip_reason6811 does not execute #check when #skip? is true6812 when implements a #multi_check6813 executes #multi_check method6814 does not execute #check method6815 when check implements #skip?6816 executes #skip? method6817 when there is an exception6818 rescues the exception6819Gitlab::SidekiqCluster6820 .start6821 starts Sidekiq with the given queues, environment and options6822 starts Sidekiq with the given queues and sensible default options6823 .start_sidekiq6824 starts a Sidekiq process6825 handles duplicate queue names6826 runs the sidekiq process in a new process group6827 .count_by_queue6828 tallies the queue counts6829 .concurrency6830 queue_count: 2, min: 0, max: 0, expected: 36831 is expected to eq 36832 queue_count: 2, min: 0, max: 9, expected: 36833 is expected to eq 36834 queue_count: 2, min: 1, max: 4, expected: 36835 is expected to eq 36836 queue_count: 2, min: 4, max: 5, expected: 46837 is expected to eq 46838 queue_count: 5, min: 2, max: 3, expected: 36839 is expected to eq 36840 queue_count: 2, min: 1, max: 1, expected: 16841 is expected to eq 16842 queue_count: 0, min: 3, max: 3, expected: 36843 is expected to eq 36844 queue_count: 1, min: 4, max: 3, expected: 36845 is expected to eq 36846Gitlab::Ci::Config::Entry::Jobs6847 .all_types6848 is expected to include Gitlab::Ci::Config::Entry::Hidden6849 is expected to include Gitlab::Ci::Config::Entry::Job6850 is expected to include Gitlab::Ci::Config::Entry::Bridge6851 .find_type6852 name: :".hidden_job", type: Gitlab::Ci::Config::Entry::Hidden6853 is expected to eq Gitlab::Ci::Config::Entry::Hidden6854 name: :".hidden_bridge", type: Gitlab::Ci::Config::Entry::Hidden6855 is expected to eq Gitlab::Ci::Config::Entry::Hidden6856 name: :regular_job, type: Gitlab::Ci::Config::Entry::Job6857 is expected to eq Gitlab::Ci::Config::Entry::Job6858 name: :my_trigger, type: Gitlab::Ci::Config::Entry::Bridge6859 is expected to eq Gitlab::Ci::Config::Entry::Bridge6860 name: :invalid_job, type: nil6861 is expected to eq nil6862 validations6863 when entry config value is correct6864 #valid?6865 is valid6866 when entry value is not correct6867 #errors6868 incorrect config value type6869 returns error about incorrect type6870 when job is invalid6871 reports error6872 when the job name cannot be cast directly to a symbol6873 properly parses the job name without raising a NoMethodError6874 when no visible jobs present6875 returns error about no visible jobs defined6876 .compose!6877 when valid job entries composed6878 #value6879 returns key value6880 #descendants6881 creates valid descendant nodes6882 #value6883 returns value of visible jobs only6884LfsObject6885 has a distinct has_many :projects relation through lfs_objects_projects6886 scopes6887 .not_existing_in_project6888 contains only lfs objects not linked to the project6889 .for_oids6890 returns the correct LfsObjects6891 #local_store?6892 returns true when file_store is equal to LfsObjectUploader::Store::LOCAL6893 returns false when file_store is equal to LfsObjectUploader::Store::REMOTE6894 #project_allowed_access?6895 returns true when project is linked6896 returns false when project is not linked6897 when project is a member of a fork network6898 returns true for all members when forked project is linked6899 returns true for all members when root of network is linked6900 returns false when no member of fork network is linked6901 storage types6902 file is being stored6903 when existing object has local store6904 behaves like mounted file in local store6905 is stored locally6906 when direct upload is enabled6907 behaves like mounted file in object store6908 is stored remotely6909 .calculate_oid6910 returns SHA256 sum of the file6911 when an lfs object is associated with a project6912 cannot be deleted6913 .unreferenced_in_batches6914 returns lfs objects in batches6915Gitlab::Email::Message::InProductMarketing::Base6916 initialize6917 when series does not exist6918 raises error6919 when series exists6920 does not raise error6921 #logo_path6922 is expected to eq "mailers/in_product_marketing/create-0.png"6923 #unsubscribe6924 on gitlab.com6925 is expected to include "%tag_unsubscribe_url%"6926 not on gitlab.com6927 is expected to include "http://localhost/-/profile/notifications"6928 #cta_link6929 renders link6930 #progress6931 on gitlab.com6932 is expected to include "This is email 1 of 3 in the Create series"6933 not on gitlab.com6934 is expected to include "This is email 1 of 3 in the Create series" and "http://localhost/-/profile/notifications"6935 #series?6936 track: :create, result: true6937 is expected to eq true6938 track: :team_short, result: true6939 is expected to eq true6940 track: :trial_short, result: true6941 is expected to eq true6942 track: :admin_verify, result: true6943 is expected to eq true6944 track: :verify, result: true6945 is expected to eq true6946 track: :trial, result: true6947 is expected to eq true6948 track: :team, result: true6949 is expected to eq true6950Ci::Runners::ReconcileExistingRunnerVersionsService#execute6951 with RunnerUpgradeCheck recommending 14.0.26952 with runner with new version6953 creates and updates expected ci_runner_versions entries6954 with orphan ci_runner_version6955 deletes orphan ci_runner_versions entry6956 with no runner version changes6957 does not modify ci_runner_versions entries6958 with failing version check6959 makes no changes to ci_runner_versions6960 integration testing with Gitlab::Ci::RunnerUpgradeCheck6961 does not modify ci_runner_versions entries6962EnvironmentsHelper6963 #metrics_data6964 returns data6965 without admin_operations permission6966 is expected to include {"can_access_operations_settings" => "false"}6967 with metrics_setting6968 adds external_dashboard_url6969 when the environment is not available6970 is expected to include {"environment_state" => "stopped"}6971 when request is from project scoped metrics path6972 /:namespace/:project/-/metrics6973 uses correct path for metrics_dashboard_base_path6974 /:namespace/:project/-/metrics/some_custom_dashboard.yml6975 uses correct path for metrics_dashboard_base_path6976 #custom_metrics_available?6977 returns true6978 #environment_logs_data6979 returns logs data6980 #environment_data6981 returns the environment as JSON6982Gitlab::TaskHelpers6983 #checkout_or_clone_version6984 checkout the version and reset to it6985 accepts clone_opts6986 target_dir doesn't exist6987 clones the repo6988 target_dir exists6989 doesn't clone the repository6990 #clone_repo6991 clones the repo in the target dir6992 accepts clone_opts6993 #checkout_version6994 clones the repo in the target dir6995 #run_command6996 runs command and return the output6997 returns empty string when command doesnt exist6998 #run_command!6999 runs command and return the output7000 returns and exception when command exit with non zero code7001 #get_version7002 version: "1.1.1", result: "v1.1.1"7003 is expected to eq "v1.1.1"7004 version: "master", result: "master"7005 is expected to eq "master"7006 version: "12.4.0-rc7", result: "v12.4.0-rc7"7007 is expected to eq "v12.4.0-rc7"7008 version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", result: "594c3ea3e0e5540e5915bd1c49713a0381459dd6"7009 is expected to eq "594c3ea3e0e5540e5915bd1c49713a0381459dd6"7010RuboCop::Cop::PutProjectRoutesUnderScope7011 # order random7012 registers an offense when route is outside scope for `resources`7013 registers an offense when route is outside scope for `post`7014 does not register an offense when resource inside the scope7015 registers an offense when route is outside scope for `delete`7016 registers an offense when route is outside scope for `put`7017 does not register an offense when resource is deep inside the scope7018 does not register an offense for the root route within scope7019 registers an offense when route is outside scope for `resource`7020 registers an offense when route is outside scope for `get`7021 registers an offense when route is outside scope for `patch`7022 does not register an offense for the root route7023Jobs/Test.gitlab-ci.yml7024 the created pipeline7025 on master7026 creates the test job7027 on another branch7028 creates the test job7029 on tag7030 creates the test job7031 on merge request7032 has no jobs7033 TEST_DISABLED is set7034 on master7035 has no jobs7036 on another branch7037 has no jobs7038 on tag7039 has no jobs7040Resolvers::Projects::ServicesResolver7041 is expected to have nullable GraphQL type ServiceConnection7042 #resolve7043 when project does not have services7044 when user cannot access services7045 when anonymous user7046 behaves like cannot access project services7047 raises error7048 when user developer7049 behaves like cannot access project services7050 raises error7051 when user can read project services7052 behaves like no project services7053 returns empty collection7054 when project has services7055 when user cannot access services7056 when anonymous user7057 behaves like cannot access project services7058 raises error7059 when user developer7060 behaves like cannot access project services7061 raises error7062 when user can read project services7063 returns project services7064Gitlab::GlRepository::Identifier7065 project repository7066 https://gitlab.com/gitlab-org/gitlab/-/issues/219192 (PENDING: No reason given)7067 behaves like parsing gl_repository identifier7068 returns correct information7069 behaves like parsing gl_repository identifier7070 returns correct information7071 wiki7072 behaves like parsing gl_repository identifier7073 returns correct information7074 behaves like parsing gl_repository identifier7075 returns correct information7076 snippet7077 when PersonalSnippet7078 behaves like parsing gl_repository identifier7079 returns correct information7080 when ProjectSnippet7081 behaves like parsing gl_repository identifier7082 returns correct information7083 design7084 behaves like parsing gl_repository identifier7085 returns correct information7086 when the format is incorrect7087 identifier: "wiki-noid"7088 raises InvalidIdentifier7089 identifier: "foo-2"7090 raises InvalidIdentifier7091 identifier: "project-0"7092 raises InvalidIdentifier7093 identifier: "2-project"7094 raises InvalidIdentifier7095 identifier: "snippet-2-wiki"7096 raises InvalidIdentifier7097 identifier: "project-wibble-wiki"7098 raises InvalidIdentifier7099 identifier: "wiki-1-project"7100 raises InvalidIdentifier7101 identifier: "snippet"7102 raises InvalidIdentifier7103 identifier: "project-1-wiki-bar"7104 raises InvalidIdentifier7105 identifier: "project-1-project"7106 raises InvalidIdentifier7107Resolvers::Kas::AgentConnectionsResolver7108 is expected to eq Types::Kas::AgentConnectionType7109 is expected to be truthy7110 #resolve7111 returns active connections for the agent7112 queries KAS once when multiple agents are requested7113 an error is returned from the KAS client7114 raises a graphql error7115 user does not have permission7116 is expected to be empty7117Groups::ProjectsRequiringAuthorizationsRefresh::OnTransferFinder7118 #execute7119 projects requiring authorizations refresh when a group is transferred (here, `Group B`)7120 includes only the expected projects7121Gitlab::LocalAndRemoteStorageMigration::ArtifactMigrater7122 behaves like local and remote storage migration7123 start_store: 1, end_store: 2, method: :migrate_to_remote_storage7124 successfully migrates7125 start_store: 2, end_store: 2, method: :migrate_to_remote_storage7126 successfully migrates7127 start_store: 2, end_store: 1, method: :migrate_to_local_storage7128 successfully migrates7129 start_store: 1, end_store: 1, method: :migrate_to_local_storage7130 successfully migrates7131 when migration fails7132 prints error7133Gitlab::PhabricatorImport::Cache::Map7134 #get_gitlab_model7135 returns nil if there was nothing cached for the phabricator id7136 returns the object if it was set in redis7137 extends the TTL for the cache key7138 sets the object in redis once if a block was given and nothing was cached7139 does not cache `nil` objects7140 #set_gitlab_model7141 sets the class and id in redis with a ttl7142Banzai::ReferenceParser::LabelParser7143 #nodes_visible_to_user7144 when the link has a data-issue attribute7145 behaves like referenced feature visibility7146 when feature is disabled7147 does not create reference7148 when feature is enabled only for team members7149 does not create reference for non member7150 creates reference for member7151 when feature is enabled7152 creates reference7153 #referenced_by7154 when the link has a data-label attribute7155 using an existing label ID7156 returns an Array of labels7157 using a non-existing label ID7158 returns an empty Array7159Projects::LfsPointers::LfsLinkService7160 #execute7161 raises an error when trying to link too many objects at once7162 executes a block after validation and before execution7163 links existing lfs objects to the project7164 returns linked oids7165 links in batches7166 only queries for the batch that will be processed7167 only queries 3 times7168Gitlab::UUID7169 .v57170 in development7171 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7172 in test7173 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7174 in staging7175 is expected to eq "dd190b37-7754-5c7c-80a0-85621a5823ad"7176 in production7177 is expected to eq "4961388b-9d8e-5da0-a499-3ef5da58daf0"7178 v5?7179 test_string: "not even a uuid", is_uuid_v5: false7180 is expected to equal false7181 test_string: "this-seems-like-a-uuid", is_uuid_v5: false7182 is expected to equal false7183 test_string: "thislook-more-5lik-eava-liduuidbutno", is_uuid_v5: false7184 is expected to equal false7185 test_string: "9f470438-db0f-37b7-9ca9-1d47104c339a", is_uuid_v5: false7186 is expected to equal false7187 test_string: "9f470438-db0f-47b7-9ca9-1d47104c339a", is_uuid_v5: false7188 is expected to equal false7189 test_string: "9f470438-db0f-57b7-9ca9-1d47104c339a", is_uuid_v5: true7190 is expected to equal true7191Gitlab::Graphs::Commits7192 #commit_per_day7193 when range is only commits from today7194 is expected to eq 27195 when range is only commits from today7196 #commit_per_day7197 is expected to eq 27198 #duration7199 is expected to eq 07200 with commits from yesterday and today7201 #commit_per_day7202 is expected to eq 1.07203 #duration7204 is expected to eq 17205Gitlab::Ci::Build::Artifacts::Metadata7206 metadata file exists7207 #find_entries! empty string7208 matches correct paths7209 matches metadata for every path7210 return Hashes for each metadata7211 #find_entries! other_artifacts_0.1.2/7212 matches correct paths7213 #find_entries! other_artifacts_0.1.2/another-subdirectory/7214 matches correct paths7215 #find_entries! recursively for other_artifacts_0.1.2/7216 matches correct paths7217 #to_entry7218 is expected to be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry7219 #full_version7220 is expected to eq "GitLab Build Artifacts Metadata 0.0.1"7221 #version7222 is expected to eq "0.0.1"7223 #errors7224 is expected to eq {}7225 metadata file does not exist7226 #find_entries!7227 raises error7228 metadata file is invalid7229 #find_entries!7230 raises error7231 generated metadata7232 #find_entries!7233 reads expected number of entries7234shared/wikis/_sidebar.html.haml7235 includes a link to clone the repository7236 the sidebar failed to load7237 reports this to the user7238 The sidebar comes from a custom page7239 does not show an alert7240 renders the wiki content7241 The sidebar comes a list of wiki pages7242 does not show an alert7243 renders the wiki content7244 there is no more to see7245 does not invite the user to view more7246 link to edit the sidebar7247 when the user has edit permission7248 renders the link7249 when the user does not have edit permission7250 does not render the link7251Notes::ResolveService7252 #execute7253 resolves the note7254 sends notifications if all discussions are resolved7255RuboCop::Cop::Graphql::JSONType7256 # order random7257 does not add an offense for uses outside of field or argument7258 fields7259 adds an offense when GraphQL::Types::JSON is used7260 adds an offense when GraphQL::Types::JSON is used with other keywords7261 does not add an offense for other types7262 arguments7263 adds an offense when GraphQL::Types::JSON is used7264 adds an offense when GraphQL::Types::JSON is used with other keywords7265 does not add an offense for other types7266Gitlab::Usage::Metric7267 #with_value7268 returns key_path metric with the corresponding value7269 #with_instrumentation7270 returns key_path metric with the corresponding generated query7271 #with_suggested_name7272 returns key_path metric with the corresponding generated query7273 unavailable metric7274 #with_value7275 returns an empty hash7276 #with_instrumentation7277 returns an empty hash7278 #with_suggested_name7279 returns an empty hash7280Gitlab::GithubImport::Importer::Events::ChangedAssignee7281 #execute7282 with Issue7283 behaves like process assigned & unassigned events7284 when importing an assigned event7285 behaves like create expected notes7286 creates expected note7287 creates expected system note metadata7288 when importing an unassigned event7289 behaves like create expected notes7290 creates expected note7291 creates expected system note metadata7292 with MergeRequest7293 behaves like process assigned & unassigned events7294 when importing an assigned event7295 behaves like create expected notes7296 creates expected note7297 creates expected system note metadata7298 when importing an unassigned event7299 behaves like create expected notes7300 creates expected note7301 creates expected system note metadata7302WebHooks::WebHooksHelper7303 #show_project_hook_failed_callout?7304 all conditions are met7305 is true7306 stores a value7307 one condition is not met7308 namely user is logged in7309 is false7310 namely the user has permission7311 is false7312 namely a hook has failed7313 is false7314rubocop rake tasks7315 check:graceful7316 with successful task result7317 example at ./spec/tasks/rubocop_rake_spec.rb:467318 modifies ENV and deletes REVEAL_RUBOCOP_TODO key7319 with non-successful task result7320 is expected to abort execution7321 todo:generate7322 without arguments7323 generates TODOs for all RuboCop rules7324 sets acronyms for inflections7325 with cop names as arguments7326 generates TODOs for given RuboCop cops7327Types::BaseObject7328 scoping items7329 paginates arrays correctly7330 filters connections correctly7331 filters polymorphic connections7332 filters interface connections7333 redacts polymorphic objects7334 paginates before scoping7335 a lazy list7336 behaves like array member redaction7337 redacts the unauthorized array member7338 a list of lazy items7339 behaves like array member redaction7340 redacts the unauthorized array member7341 an array connection of items7342 behaves like array member redaction7343 redacts the unauthorized array member7344 an array connection of items, selecting edges7345 behaves like array member redaction7346 redacts the unauthorized array member7347 .authorize7348 keeps track of the specified value7349 can not redefine the authorize value7350SessionsHelper7351 #recently_confirmed_com?7352 when on .com7353 when flash notice is empty it is false7354 when flash notice is anything it is false7355 when flash notice is devise confirmed message it is true7356 when not on .com7357 when flash notice is devise confirmed message it is false7358 #unconfirmed_email?7359 returns true when the flash alert contains a devise failure unconfirmed message7360 returns false when the flash alert does not contain a devise failure unconfirmed message7361 #send_rate_limited?7362 when rate limited7363 is expected to eq true7364 when not rate limited7365 is expected to eq false7366 #obfuscated_email7367 when an email address is normal length7368 is expected to eq "al**@g*****.com"7369 when an email address contains multiple top level domains7370 is expected to eq "al**@g****.uk"7371 when an email address is very short7372 is expected to eq "a@b.c"7373 when an email address is even shorter7374 is expected to eq "a@b"7375Gitlab::Metrics::Samplers::DatabaseSampler7376 behaves like metrics sampler7377 when sampling interval is passed explicitly7378 is expected to eq 427379 when sampling interval is passed through the environment7380 is expected to eq 427381 when no sampling interval is passed anywhere7382 uses the hardcoded default7383 #start7384 calls the sample method on the sampler thread7385 with warmup set to true7386 calls the sample method first on the caller thread7387 #safe_sample7388 calls #sample once7389 when sampling fails with error7390 recovers from errors7391 with logger7392 logs errors7393 #sample7394 when all base models are connected7395 samples connection pool statistics for all primaries7396 when replica hosts are configured7397 samples connection pool statistics for primaries and replicas7398 when a base model is not connected7399 records no samples for that primary7400 when the base model has replica connections7401 still records the replica metrics7402gitlab:lfs rake tasks7403 check7404 outputs the integrity check for each batch7405 errors out about missing files on the file system7406 errors out about invalid checksum7407Projects::GroupLinks::DestroyService#execute7408 removes group from project7409 returns false if group_link is blank7410 project authorizations refresh7411 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations7412 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations7413 updates project authorizations of users who had access to the project via the group share7414 todos cleanup7415 when project is private7416 triggers todos cleanup7417 when project is public or internal7418 when project is public7419 behaves like removes confidential todos7420 does not trigger todos cleanup7421 when project is internal7422 behaves like removes confidential todos7423 does not trigger todos cleanup7424MergeRequests::ResolveTodosService7425 #async_execute7426 performs MergeRequests::ResolveTodosWorker asynchronously7427 #execute7428 marks pending todo as done7429Gitlab::Ci::ProjectConfig::Repository7430 # order random7431 #internal_include_prepended?7432 is expected to eq true7433 #content7434 when file is in repository7435 is expected to eq "---\ninclude:\n- local: \".gitlab-ci.yml\"\n"7436 when file is not in repository7437 is expected to be nil7438 when Gitaly raises error7439 is expected to be nil7440 #source7441 is expected to eq :repository_source7442Sidebars::Groups::Menus::IssuesMenu7443 Menu Items7444 List7445 is expected not to be nil7446 behaves like menu access rights7447 is expected not to be nil7448 when the user does not have access7449 is expected to be nil7450 Boards7451 behaves like menu access rights7452 is expected not to be nil7453 when the user does not have access7454 is expected to be nil7455 Milestones7456 behaves like menu access rights7457 is expected not to be nil7458 when the user does not have access7459 is expected to be nil7460 behaves like pill_count formatted results7461 returns all digits for count value under 10007462 returns truncated digits for count value over 10007463 returns truncated digits for count value over 100007464 returns truncated digits for count value over 1000007465 behaves like serializable as super_sidebar_menu_args7466 returns hash with provided attributes7467 returns hash with an item_id7468AccessRequestable7469 Group7470 #request_access7471 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)7472 is expected to eq #<User id:1499 @user756>7473 #access_requested?7474 is expected to be truthy7475 Project7476 #request_access7477 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)7478 #access_requested?7479 is expected to be truthy7480Gitlab::SlashCommands::Presenters::Access7481 #access_denied7482 is expected to be a kind of Hash7483 behaves like displays an error message7484 is expected to equal :ephemeral7485 #generic_access_denied7486 is expected to be a kind of Hash7487 behaves like displays an error message7488 is expected to equal :ephemeral7489 #deactivated7490 is expected to be a kind of Hash7491 behaves like displays an error message7492 is expected to equal :ephemeral7493 #not_found7494 is expected to be a kind of Hash7495 tells the user the resource was not found7496 #authorize7497 with an authorization URL7498 is expected to be a kind of Hash7499 tells the user to authorize7500 without authorization url7501 is expected to be a kind of Hash7502 tells the user to authorize7503IncidentManagement::CloseIncidentWorker7504 # order random7505 #perform7506 calls the close issue service7507 when the incident does not exist7508 behaves like does not call the close issue service7509 is expected not to change `ResourceStateEvent.count`7510 when issue type is not incident7511 behaves like does not call the close issue service7512 is expected not to change `ResourceStateEvent.count`7513 when incident is not open7514 behaves like does not call the close issue service7515 is expected not to change `ResourceStateEvent.count`7516 when incident fails to close7517 is expected not to change `ResourceStateEvent.count`7518Gitlab::Kubernetes::Deployment7519 #name7520 is expected to eq :selected7521 #labels7522 is expected to eq :selected7523 #outdated?7524 when outdated7525 is expected to be truthy7526 when up to date7527 is expected to be falsy7528 when ahead of latest7529 is expected to be falsy7530 #instances7531 when unnamed7532 returns all pods with generated names and pending7533 when number of pods is less than wanted replicas7534 returns not spawned pods as pending and unknown and running7535 when outdated7536 returns all instances as named and waiting7537 with pods of each type7538 returns all instances7539 with track label7540 when marked as stable7541 returns all instances7542 when marked as canary7543 returns all instances7544LoadedInGroupList7545 .with_selects_for_list7546 includes the preloaded counts for groups7547 with project namespaces7548 does not include project_namespaces in the count of subgroups7549 with archived projects7550 counts including archived projects when `true` is passed7551 when not counting archived projects7552 counts projects without archived ones7553 with archived only7554 counts only archived projects when `only` is passed7555 #children_count7556 counts groups and projects7557Admin::AbuseReportEntity7558 # order random7559 #as_json7560 exposes correct attributes7561 correctly exposes `reported user`7562 correctly exposes `reporter`7563 correctly exposes :reported_user_path7564 correctly exposes :reporter_path7565 correctly exposes :block_user_path7566 correctly exposes :remove_report_path7567 correctly exposes :remove_user_and_report_path7568 correctly exposes :message7569 user_blocked7570 when user is blocked7571 is expected to equal true7572 when user is not blocked7573 is expected to equal false7574RspecFlaky::Listener7575 #initialize7576 when no report file exists7577 behaves like a valid Listener instance7578 returns a valid Listener instance7579 when FLAKY_RSPEC_SUITE_REPORT_PATH is set7580 and report file exists7581 delegates the load to RspecFlaky::Report7582 and report file does not exist7583 return an empty hash7584 #example_passed7585 when the RSpec example does not respond to attempts7586 behaves like a non-flaky example7587 does not change the flaky examples hash7588 when the RSpec example has 1 attempt7589 behaves like a non-flaky example7590 does not change the flaky examples hash7591 when the RSpec example has 2 attempts7592 behaves like a new flaky example7593 changes the all flaky examples hash7594 with an existing flaky example7595 behaves like an existing flaky example7596 changes the flaky examples hash7597 #dump_summary7598 when a report file path is set by FLAKY_RSPEC_REPORT_PATH7599 delegates the writes to RspecFlaky::Report7600Gitlab::Ci::Status::SuccessWarning7601 #test7602 is expected to eq "passed"7603 #label7604 is expected to eq "passed with warnings"7605 #icon7606 is expected to eq "status_warning"7607 #group7608 is expected to eq "success-with-warnings"7609 .matches?7610 when matchable subject is successful7611 when matchable subject has warnings7612 is a correct match7613 when matchable subject does not have warnings7614 does not match7615 when matchable subject is not successful7616 when matchable subject has warnings7617 does not match7618 when matchable subject does not have warnings7619 does not match7620Packages::Cleanup::ExecutePolicyService7621 #execute7622 with the keep_n_duplicated_files parameter7623 set to less than the total number of duplicated files7624 behaves like keeping the most recent package files7625 only keeps the most recent package files7626 when the service needs to loop7627 behaves like keeping the most recent package files7628 only keeps the most recent package files7629 when a timeout is hit7630 keeps part of the most recent package files7631 set to more than the total number of duplicated files7632 keeps all package files7633 set to all7634 skips the policy7635Gitlab::GithubImport7636 github.com7637 returns a new Client with a custom token7638 returns a new Client with a token stored in the import data7639 returns the ID of the ghost user7640 caches the ghost user ID7641 GitHub Enterprise7642 returns a new Client with a custom token7643 returns a new Client with a token stored in the import data7644 returns the ID of the ghost user7645 caches the ghost user ID7646 formats the import url7647 .per_page7648 when project group is present7649 when github_importer_lower_per_page_limit is enabled7650 returns lower per page value7651 when github_importer_lower_per_page_limit is disabled7652 returns default per page value7653 when project group is missing7654 returns default per page value7655Types::Snippets::BlobViewerType7656 has the correct fields7657 is expected to be non null7658 is expected to be non null7659 is expected to be non null7660 is expected to be non null7661 is expected not to be non null7662 is expected to be non null7663 is expected to be non null7664 collapsed7665 behaves like nil field converted to false7666 returns false7667 tooLarge7668 behaves like nil field converted to false7669 returns false7670ResourceEvents::IssueAssignmentEvent7671 # order random7672 associations7673 is expected to belong to user required: false7674 is expected to belong to issue required: false7675 validations7676 is expected to be valid7677 is expected to validate that :issue cannot be empty/falsy7678Gitlab::DependencyLinker::PodspecJsonLinker7679 .support?7680 supports *.podspec.json7681 does not support other files7682 #link7683 links the gem name7684 links the license7685 links the homepage7686 links the source URL7687 links dependencies7688 does not link subspec names7689Gitlab::Config::Entry::Undefined7690 #leaf?7691 is leaf node7692 #valid?7693 is always valid7694 #errors7695 is does not contain errors7696 #value7697 returns nil7698 #relevant?7699 is not relevant7700 #specified?7701 is not defined7702 #type7703 returns nil7704Resolvers::GroupResolver7705 #resolve7706 batch-resolves groups by full path7707 resolves an unknown full_path to nil7708 treats group full path as case insensitive7709HooksHelper7710 #webhook_form_data7711 when there are no URL variables7712 returns proper data7713 when there are URL variables7714 returns proper data7715 #webhook_test_items7716 returns test items for disclosure7717 #test_hook_path7718 returns project namespaced link7719 returns admin namespaced link7720 #hook_log_path7721 with a project hook7722 returns project-namespaced link7723 with a service hook7724 returns project-namespaced link7725 with a system hook7726 returns admin-namespaced link7727Types::TimeType7728 is expected to eq "Time"7729 coerces Time object into ISO 86017730 coerces an ISO-time into Time object7731 rejects invalid input7732 allows nil7733FileStoreMounter7734 # order random7735 .mount_file_store_uploader7736 skip_store_file: true, file_field: :file7737 defines instance methods and registers a callback7738 skip_store_file: false, file_field: :file7739 defines instance methods and registers a callback7740 skip_store_file: false, file_field: :signed_file7741 defines instance methods and registers a callback7742 skip_store_file: true, file_field: :signed_file7743 defines instance methods and registers a callback7744 with an unknown file_field7745 is expected to raise ArgumentError with "file_field not allowed: unknown"7746 with an instance7747 #update_file_store7748 calls update column7749 #store_file_now!7750 calls the dynamic functions7751Taskable7752 .get_tasks7753 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"- [x]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"* [x]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"* [ ]\", source=\"Second item\">"]7754 with single line comments7755 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"only task item\">"]7756 #task_list_items7757 issuable_type: :issue7758 when description is present7759 gets tasks from markdown7760 when description is blank7761 returns empty array7762 does not try to get tasks from markdown7763 issuable_type: :merge_request7764 when description is present7765 gets tasks from markdown7766 when description is blank7767 returns empty array7768 does not try to get tasks from markdown7769Types::Ci::TemplateType7770 is expected to eq "CiTemplate"7771 exposes the expected fields7772Bitbucket::Representation::Comment7773 #author7774 is expected to eq "Ben"7775 is expected to be nil7776 #note7777 is expected to eq "Text"7778 is expected to be nil7779 #created_at7780 is expected to eq Wed, 19 Apr 20237781 #updated_at7782 is expected to eq Wed, 19 Apr 20237783 is expected to eq Wed, 19 Apr 20237784Gitlab::Security::ScanConfiguration7785 #available?7786 with a core scanner7787 type: :sast7788 is expected to be truthy7789 type: :sast_iac7790 is expected to be truthy7791 type: :secret_detection7792 is expected to be truthy7793 type: :container_scanning7794 is expected to be truthy7795 with custom scanner7796 is expected to be falsey7797 #configured?7798 is expected to be falsey7799 #configuration_path7800 is expected to be nil7801 #meta_info_path7802 is expected to be nil7803 #can_enable_by_merge_request?7804 with a core scanner7805 type: :sast7806 is expected to be truthy7807 type: :sast_iac7808 is expected to be truthy7809 type: :secret_detection7810 is expected to be truthy7811 with a custom scanner7812 is expected to be falsey7813Packages::Debian::GroupArchitecture7814 behaves like Debian Distribution Architecture7815 relationships7816 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => architectures7817 is expected to have many files class_name => Packages::Debian::GroupComponentFile inverse_of => architecture7818 validations7819 #distribution7820 is expected to validate that :distribution cannot be empty/falsy7821 #name7822 is expected to validate that :name cannot be empty/falsy7823 is expected to allow :name to be ‹"amd64"›7824 is expected to allow :name to be ‹"kfreebsd-i386"›7825 is expected not to allow :name to be ‹"-a"›7826 is expected not to allow :name to be ‹"AMD64"›7827 scopes7828 .ordered_by_name7829 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2023-04-19 10:03:17.447489000 +0000", updated_at: "2023-04-19 10:03:17.447489000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2023-04-19 10:03:17.485754706 +0000", updated_at: "2023-04-19 10:03:17.485754706 +0000", distribution_id: 1, name: "name2">7830 .with_distribution7831 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2023-04-19 10:03:17.447489000 +0000", updated_at: "2023-04-19 10:03:17.447489000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2023-04-19 10:03:17.485754706 +0000", updated_at: "2023-04-19 10:03:17.485754706 +0000", distribution_id: 1, name: "name2">7832 .with_name7833 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2023-04-19 10:03:17.447489000 +0000", updated_at: "2023-04-19 10:03:17.447489000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 3, created_at: "2023-04-19 10:03:17.567592541 +0000", updated_at: "2023-04-19 10:03:17.567592541 +0000", distribution_id: 2, name: "name1">7834layouts/_flash7835 default7836 does not render flash container no margin class7837 closable flash messages7838 flash_type: "alert"7839 shows a close button7840 flash_type: "notice"7841 shows a close button7842 flash_type: "success"7843 shows a close button7844 non closable flash messages7845 flash_type: "error"7846 does not show a close button7847 flash_type: "message"7848 does not show a close button7849 flash_type: "toast"7850 does not show a close button7851 flash_type: "warning"7852 does not show a close button7853 with flash_class in locals7854 adds class to flash-container7855Sidebars::UserProfile::Menus::PersonalProjectsMenu7856 # order random7857 behaves like User profile menu7858 does not contain any sub menu7859 renders the correct link7860 renders the correct title7861 defines correct active route7862 renders if user is logged in7863 when viewed user is blocked7864 when user is not logged in7865 is not allowed to view the menu item7866 when current user has permission7867 is allowed to view the menu item7868 when current user does not have permission7869 is not allowed to view the menu item7870 when viewed user is banned7871 when user is not logged in7872 is not allowed to view the menu item7873 when current user has permission7874 is allowed to view the menu item7875 when current user does not have permission7876 is not allowed to view the menu item7877ResourceEvents::MergeIntoNotesService7878 #execute7879 merges label events into notes in order of created_at7880 squashes events with same time and author into single note7881 fetches only notes created after last_fetched_at7882 preloads the note author's status7883SystemCheck::App::AuthorizedKeysPermissionCheck7884 #skip?7885 authorized keys enabled7886 is expected to eq false7887 authorized keys not enabled7888 is expected to eq true7889 #check?7890 authorized keys is accessible7891 is expected to eq true7892 authorized keys is not accessible7893 is expected to eq false7894 #repair!7895 authorized_keys file created7896 is expected to eq true7897 authorized_keys file is not created7898 is expected to eq false7899LazyImageTagHelper7900 #image_tag7901 when only source passed7902 returns a lazy image tag by default7903 when lazy mode is disabled7904 returns a normal image tag7905 when Dark Mode is enabled7906 when auto dark enabled7907 adds an auto dark mode class from gitlab-ui7908 when auto dark disabled7909 does nothing7910 when dark variant is present7911 uses dark variant as a source7912 when Dark Mode is disabled7913 when auto dark enabled7914 does not add a dark mode class from gitlab-ui7915 when auto dark disabled7916 does nothing7917 when dark variant is present7918 uses original image as a source7919 when auto_dark and dark_variant are both passed7920 does not add a dark mode class from gitlab-ui7921Gitlab::SafeRequestPurger7922 .execute7923 purges an entry from the store7924 #execute7925 when request store is active7926 purges an entry from the store7927 when there are multiple resource_ids to purge7928 purges an entry from the store7929 when there is no matching resource_ids7930 purges an entry from the store7931 when request store is not active7932 does offer the ability to interact with data store7933FlushCounterIncrementsWorker7934 #perform7935 commits increments to database7936 when model class does not exist7937 does nothing7938 when record does not exist7939 does nothing7940Gitlab::LogTimestampFormatter7941 logs the timestamp in UTC and ISO8601.3 format7942Gitlab::Ci::Status::Pending7943 #text7944 is expected to eq "pending"7945 #label7946 is expected to eq "pending"7947 #icon7948 is expected to eq "status_pending"7949 #favicon7950 is expected to eq "favicon_status_pending"7951 #group7952 is expected to eq "pending"7953 #details_path7954 is expected to be nil7955Deployments::DeploymentPresenter7956 # order random7957 #tags7958 is expected to eq [{:name=>"test", :path=>"tags/test"}]7959Sidebars::Projects::SuperSidebarMenus::BuildMenu7960 # order random7961 defines list of NilMenuItem placeholders7962 has title and sprite_icon7963gitlab:lfs namespace rake task7964 migration tasks7965 migrate7966 object storage disabled7967 doesn't migrate files7968 object storage enabled7969 migrates local file to object storage7970 migrate_to_local7971 object storage enabled7972 migrates remote files to local storage7973Gitlab::Ci::Status::Build::FailedUnmetPrerequisites7974 #illustration7975 is expected to include :image, :size, :title, and :content7976 .matches?7977 when build has not failed7978 is expected to be falsey7979 when build has failed7980 with unmet prerequisites7981 is expected to be truthy7982 with a different error7983 is expected to be falsey7984Gitlab::PushOptions7985 can parse multiple push options7986 stores options internally as a HashWithIndifferentAccess7987 selects the last option when options contain duplicate namespace and key pairs7988 defaults values to true7989 expands aliases7990 forgives broken push options7991 namespace and key validation7992 ignores unrecognised namespaces7993 ignores unrecognised keys7994 ignores blank keys7995 parses recognised namespace and key pairs7996 #get7997 can emulate Hash#dig7998 #as_json7999 returns all options8000Types::BranchProtections::PushAccessLevelType8001 # order random8002 is expected to have graphql fields :access_level and :access_level_description8003 is expected to require graphql authorizations :read_protected_branch8004Mutations::Boards::Lists::Update8005 on group issue boards8006 behaves like update board list mutation8007 #resolve8008 with permission to admin board lists8009 updates the list position and collapsed state as expected8010 with permission to read board lists8011 updates the list collapsed state but not the list position8012 without permission to read board lists8013 raises Resource Not Found error8014UpdateHighestRoleWorker8015 #perform8016 when user is not found8017 does not update or deletes any highest role8018 when user is found8019 when user is active and not internal8020 when user highest role exists8021 updates the highest role for the user8022 when user highest role does not exist8023 creates the highest role for the user8024 when user is either inactive or internal8025 additional_attributes: {:state=>"blocked"}8026 deletes highest role8027 additional_attributes: {:user_type=>:alert_bot}8028 deletes highest role8029 when user highest role does not exist8030 does not delete a highest role8031UserPresenter8032 #web_path8033 is expected to eq "/user815"8034 #web_url8035 is expected to eq "http://localhost/user815"8036 #can?8037 forwards call to the given user8038 Gitpod8039 Gitpod enabled for application8040 #preferences_gitpod_path8041 is expected to eq "/-/profile/preferences#user_gitpod_enabled"8042 #profile_enable_gitpod_path8043 is expected to eq "/-/profile?user%5Bgitpod_enabled%5D=true"8044 Gitpod disabled for application8045 #preferences_gitpod_path8046 is expected to eq nil8047 #profile_enable_gitpod_path8048 is expected to eq nil8049 #saved_replies8050 when feature is disabled8051 is expected to eq #<ActiveRecord::Relation []>8052 when feature is enabled8053 when user has no permission to read saved replies8054 is expected to eq #<ActiveRecord::Relation []>8055 when user has permission to read saved replies8056 is expected to eq [#<Users::SavedReply id: 1, user_id: 1551, created_at: "2023-04-19 10:03:36.179971199 +0000", updated_at: "2023-04-19 10:03:36.179971199 +0000", name: "saved_reply_1", content: [FILTERED]>]8057ProtectedTags::UpdateService8058 #execute8059 updates a protected tag8060 when updating protected tag with a name that contains HTML tags8061 updates a protected tag8062 without admin_project permissions8063 raises error8064BulkImports::Projects::Pipelines::ProjectAttributesPipeline8065 #run8066 imports project attributes8067 when project is archived8068 sets project as archived8069 #transform8070 removes prohibited attributes from hash8071 #load8072 assigns attributes, drops visibility and reconciles shared runner setting8073 #after_run8074 calls extractor#remove_tmpdir8075 .relation8076 is expected to eq "self"8077Gitlab::Database::MigrationHelpers::CascadingNamespaceSettings8078 #add_cascading_namespace_setting8079-- column_exists?(:namespace_settings, :some_setting)8080 -> 0.0056s8081-- column_exists?(:namespace_settings, :lock_some_setting)8082 -> 0.0050s8083-- column_exists?(:application_settings, :some_setting)8084 -> 0.2288s8085-- column_exists?(:application_settings, :lock_some_setting)8086 -> 0.2262s8087 creates the required columns8088 when columns already exist8089-- add_column(:namespace_settings, :cascading_setting, :integer)8090 -> 0.0525s8091-- add_column(:application_settings, :lock_cascading_setting, :boolean)8092 -> 0.0036s8093-- column_exists?(:namespace_settings, :cascading_setting)8094 -> 0.0061s8095-- column_exists?(:namespace_settings, :lock_cascading_setting)8096 -> 0.0048s8097-- column_exists?(:application_settings, :cascading_setting)8098 -> 0.2294s8099-- column_exists?(:application_settings, :lock_cascading_setting)8100 -> 0.2292s8101 raises an error when some columns already exist8102 #remove_cascading_namespace_setting8103 removes the columns8104Gitlab::GitalyClient::Diff8105 is expected to respond to #from_path8106 is expected to respond to #to_path8107 is expected to respond to #old_mode8108 is expected to respond to #new_mode8109 is expected to respond to #from_id8110 is expected to respond to #to_id8111 is expected to respond to #patch8112 is expected to respond to #collapsed8113 is expected to respond to #too_large8114 #==8115 is expected to eq #<Gitlab::GitalyClient::Diff:0x00007fa093d1fdb8 @from_path=".gitmodules", @to_path=".gitmodules", @old_mode=33188, @new_mode=33188, @from_id="357406f3075a57708d0163752905cc1576fceacc", @to_id="8e5177d718c561d36efde08bad36b43687ee6bf0", @patch="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>8116 is expected not to eq #<Gitlab::GitalyClient::Diff:0x00007fa095155968 @from_path=".gitmodules", @to_path=".gitmodules", @old_mode=33188, @new_mode=33188, @from_id="357406f3075a57708d0163752905cc1576fceacc", @to_id="8e5177d718c561d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>8117Ci::Runners::ProcessRunnerVersionUpdateService8118 #execute8119 with upgrade check returning error8120 does not update ci_runner_versions records8121 when fetching runner releases is disabled8122 does not update ci_runner_versions records8123 with successful result from upgrade check8124 with no existing ci_runner_version record8125 creates ci_runner_versions record8126 with existing ci_runner_version record8127 updates ci_runner_versions record8128 with up-to-date ci_runner_version record8129 does not update ci_runner_versions record8130Types::CommitEncodingEnum8131 is expected to eq "CommitEncoding"8132 exposes all the existing encoding option8133Gitlab::InsecureKeyFingerprint8134 #fingerprint_sha2568135 generates the key's fingerprint8136Gitlab::Email::Smime::Signer8137 when using an intermediate CA8138 signs data appropriately with SMIME8139 when not using an intermediate CA8140 signs data appropriately with SMIME8141Gitlab::Database::AsyncIndexes::IndexCreator8142 #perform8143 creates the index while controlling statement timeout8144 removes the index preparation record from postgres_async_indexes8145 skips logic if not able to acquire exclusive lease8146 logs messages around execution8147 when the index already exists8148 skips index creation8149 removes the index preparation record from postgres_async_indexes8150 logs an appropriate message8151MergeRequests::CreateApprovalEventService8152 #execute8153 creates approve MR event8154layouts/group8155 # order random8156 without ability to invite members8157 is expected not to have visible css ".js-invite-members-modal"8158 with ability to invite members8159 is expected to have visible css ".js-invite-members-modal"8160Releases::Source8161 .all8162 returns all formats of sources8163 #url8164 returns zip archived source url8165 when ref is directory structure8166 converts slash to dash8167Gitlab::Metrics::Dashboard::Importer8168 .execute8169 valid dashboard hash8170 imports metrics to database8171 invalid dashboard hash8172 returns false8173 .execute!8174 valid dashboard hash8175 imports metrics to database8176 invalid dashboard hash8177 raises error8178Gitlab::Graphql::Limit::FieldCallCount8179 # order random8180 executes the extension8181 allows the call8182 does not return an error when the field is called multiple times in separte queries8183 returns an error when the field is called multiple times8184 when the field is not extended8185 allows the call8186 does not execute the extension8187 when limit is not specified8188 returns an error8189Terraform/Base.latest.gitlab-ci.yml8190 the created pipeline8191 does not create any jobs8192Projects::BatchOpenIssuesCountService8193 #refresh_cache_and_retrieve_data8194 when cache is clean8195 refreshes cache keys correctly8196Gitlab::Database::MigrationHelpers::ConvertToBigint8197 # order random8198 com_or_dev_or_test_but_not_jh?8199 dot_com: true, dev_or_test: true, jh: true, expectation: true8200 returns true for GitLab.com (but not JH), dev, or test8201 dot_com: true, dev_or_test: false, jh: true, expectation: false8202 returns true for GitLab.com (but not JH), dev, or test8203 dot_com: false, dev_or_test: true, jh: true, expectation: true8204 returns true for GitLab.com (but not JH), dev, or test8205 dot_com: false, dev_or_test: false, jh: true, expectation: false8206 returns true for GitLab.com (but not JH), dev, or test8207 dot_com: true, dev_or_test: true, jh: false, expectation: true8208 returns true for GitLab.com (but not JH), dev, or test8209 dot_com: true, dev_or_test: false, jh: false, expectation: true8210 returns true for GitLab.com (but not JH), dev, or test8211 dot_com: false, dev_or_test: true, jh: false, expectation: true8212 returns true for GitLab.com (but not JH), dev, or test8213 dot_com: false, dev_or_test: false, jh: false, expectation: false8214 returns true for GitLab.com (but not JH), dev, or test8215Gitlab::GithubImport::Importer::DiffNotesImporter8216 #parallel?8217 returns true when running in parallel mode8218 returns false when running in sequential mode8219 #execute8220 when running in parallel mode8221 imports diff notes in parallel8222 when running in sequential mode8223 imports diff notes in sequence8224 #sequential_import8225 imports each diff note in sequence8226 #parallel_import8227 imports each diff note in parallel8228 #id_for_already_imported_cache8229 returns the ID of the given note8230 #collection_options8231 returns an empty Hash8232Gitlab::Template::GitlabCiYmlTemplate8233 .all8234 combines the globals and rest8235 does not include Browser-Performance template in FOSS8236 #content8237 loads the full file8238 behaves like file template shared examples8239 .all8240 strips the .gitlab-ci.yml suffix8241 ensures that the template name is used exactly once8242 .by_category8243 returns sorted results8244 .find8245 returns nil if the file does not exist8246 returns the corresponding object of a valid file8247 #<=>8248 sorts lexicographically8249SystemCheck::SidekiqCheck8250 #multi_check8251 fails when no worker processes are running8252 fails when more than one cluster process is running8253 succeeds when one cluster process and one or more worker processes are running8254 when only a worker process is running8255 fails with the right message for systemd8256 fails with the right message for sysvinit8257Gitlab::Mailgun::WebhookProcessors::MemberInvites8258 #execute8259 marks the member invite email success as false8260 when invite token is not found in payload8261 does not change member status and logs an error8262 when member can not be found8263 behaves like does nothing8264 does not change member status8265 when failure is temporary8266 behaves like does nothing8267 does not change member status8268 when email is not a member invite8269 behaves like does nothing8270 does not change member status8271Gitlab::Auth::Ldap::Authentication8272 login8273 finds the user if authentication is successful8274 is false if the user does not exist8275 is false if authentication fails8276 fails if ldap is disabled8277 fails if no login is supplied8278 fails if no password is supplied8279Gitlab::Tracking::Destinations::SnowplowMicro8280 #hostname8281 when snowplow_micro config is set8282 returns proper URI8283 when gitlab config has https scheme8284 returns proper URI8285 when snowplow_micro config is not set8286 returns localhost hostname8287 #options8288 includes protocol with the correct value8289 includes port with the correct value8290 includes forceSecureTracker with value false8291Gitlab::ColorSchemes8292 .body_classes8293 returns a space-separated list of class names8294 .by_id8295 returns a scheme by its ID8296 .default8297 use config default8298 .each8299 passes the block to the SCHEMES Array8300 .for_user8301 returns default when user is nil8302 returns user's preferred color scheme8303Projects::ImportExport::RelationExportUpload8304 stores export file8305 associations8306 is expected to belong to relation_export required: false8307Gitlab::GithubImport::Settings8308 # order random8309 #disabled?8310 returns is disabled or not specific optional stage8311 #write8312 puts optional steps flags into projects import_data8313 .stages_array8314 returns stages list as array8315 #enabled?8316 returns is enabled or not specific optional stage8317Gitlab::Memory::Instrumentation8318 .available?8319 returns true8320 .start_thread_memory_allocations8321 a hash is returned8322 when feature is unavailable8323 a nil is returned8324 .with_memory_allocations8325 a hash is returned8326 when feature is unavailable8327 a nil is returned8328Gitlab::Qa8329 # order random8330 .request?8331 dot_com: false, request_user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: false8332 is expected to eq false8333 dot_com: true, request_user_agent: nil, qa_user_agent: "qa_user_agent", result: false8334 is expected to eq false8335 dot_com: true, request_user_agent: "", qa_user_agent: "qa_user_agent", result: false8336 is expected to eq false8337 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: "", result: false8338 is expected to eq false8339 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: nil, result: false8340 is expected to eq false8341 dot_com: true, request_user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: true8342 is expected to eq true8343Gitlab::DependencyLinker::GoModLinker8344 .support?8345 supports go.mod8346 does not support other files8347 #link8348 links the module name8349 links dependencies8350Gitlab::HealthChecks::Middleware8351 #call8352 handling /readiness requests8353 handles the request8354 handling /liveness requests8355 handles the request8356 handling other requests8357 forwards them to the next middleware8358Gitlab::Ci::Parsers::Accessibility::Pa11y8359 #parse!8360 when data is pa11y style JSON8361 when there are no URLs provided8362 returns an accessibility report8363 when there are no errors8364 returns an accessibility report8365 when there are errors8366 returns an accessibility report8367 when data is not a valid JSON string8368 sets error_message8369Projects::DeployTokens::DestroyService8370 behaves like a deploy token deletion service8371 #execute8372 destroys a token record and it's associated DeployToken8373 invalid token id8374 raises an error8375Gitlab::Throttle8376 .protected_paths_enabled?8377 returns Application Settings throttle_protected_paths_enabled?8378 .bypass_header8379 is nil8380 when a header is configured8381 is a funny upper case rack key8382 .rate_limiting_response_text8383 when the setting is not present8384 returns the default value with a trailing newline8385 when the setting is present8386 returns the default value with a trailing newline8387Spam::HamService8388 #execute8389 AkismetService returns false (Akismet cannot be reached, etc)8390 returns false8391 does not update the record8392 if spam log record has already been marked as spam8393 does not update the record8394 Akismet ham submission is successful8395 returns true8396 updates the record8397diagnostic reports8398 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is set to true8399 when run in Puma context8400 modifies worker startup hooks, starts Gitlab::Memory::ReportsDaemon8401 writes scheduled heap dumps in on_worker_stop8402 when run in non-Puma context, such as rails console, tests, Sidekiq8403 is expected not to receive new(*(any args)) 0 times8404 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is not set8405 is expected not to receive new(*(any args)) 0 times8406 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is set to false8407 is expected not to receive new(*(any args)) 0 times8408Gitlab::SidekiqMiddleware::WorkerContext::Server8409 #call8410 applies a class context8411 doesn't fail for unknown workers8412 feature category8413 takes the feature category from the worker8414 when the worker is not owned8415 takes the feature category from the surrounding context8416Alerting::ProjectAlertingSetting8417 Associations8418 is expected to belong to project required: false8419 #token8420 when set8421 reads the token8422 when not set8423 generates a token before validation8424Gitlab::ImportExport::VersionChecker8425 bundle a project Git repo8426 returns true if Import/Export have the same version8427 newer version8428 returns false if export version is newer8429 shows the correct error message8430 version file access check8431 does not read a symlink8432Gitlab::HookData::SubgroupBuilder8433 #build8434 data8435 on create8436 is expected to eq "subgroup_create"8437 behaves like includes the required attributes8438 includes the required attributes8439 on destroy8440 is expected to eq "subgroup_destroy"8441 behaves like includes the required attributes8442 includes the required attributes8443GroupAccessTokenSerializer8444 #represent8445 can render a single token8446 can render a collection of tokens8447Types::GroupMemberRelationEnum8448 is expected to eq "GroupMemberRelation"8449 exposes all the existing group member relation type values8450Metrics::GlobalMetricsUpdateService8451 # order random8452 #execute8453 sets gitlab_maintenance_mode gauge metric8454MergeRequests::Mergeability::CheckOpenStatusService8455 #execute8456 when the merge request is open8457 returns a check result with status success8458 when the merge request is not open8459 returns a check result with status failed8460 #skip?8461 returns false8462 #cacheable?8463 returns false8464Types::ReleaseAssetsType8465 is expected to require graphql authorizations :read_release8466 has the expected fields8467 links field8468 is expected to have graphql type #<Class:0x00007fa0895eb128>8469 sources field8470 is expected to have graphql type #<Class:0x00007fa0895db728>8471Types::RootStorageStatisticsType8472 is expected to eq "RootStorageStatistics"8473 has all the required fields8474 is expected to require graphql authorizations :read_statistics8475Import::FogbugzProviderRepoEntity8476 behaves like exposes required fields for import entity8477 exposes required fields8478 correctly exposes id8479 correctly exposes full name8480 correctly exposes sanitized name8481 correctly exposes provider link8482SmimeSignatureSettings8483 .parse8484 sets correct default values to disabled8485 when providing custom values8486 sets correct default values to disabled8487 enables smime with default key and cert8488 enables smime with custom key and cert8489BatchedBackgroundMigration::BatchedBackgroundMigrationGenerator8490 # order random8491 without required arguments8492 throws table_name is required error8493 throws column_name is required error8494 throws feature_category is required error8495 with valid arguments8496 generates expected files8497UrlHelper8498 # order random8499 #escaped_url8500 escapes url8501 escapes XSS injection8502 returns nil if url is nil8503 returns nil when url is invalid8504ResolvesIds8505 with a single project8506 returns the correct array8507 with a single issue8508 returns the correct array8509 with multiple users8510 returns the correct array8511Gitlab::ProcessMemoryCache::Helper8512 .fetch_memory_cache8513 memoizes the result8514 resets the cache when the shared key is missing8515 does not set the shared timestamp if it is already present8516 .invalidate_memory_cache8517 invalidates the cache8518MicrosoftTeams::Notifier8519 #ping8520 expects to receive successful answer8521 #body8522 returns Markdown-based body when HTML was passed8523 fails when empty Hash was passed8524Sidebars::Groups::SuperSidebarMenus::OperationsMenu8525 # order random8526 has title and sprite_icon8527 defines list of NilMenuItem placeholders8528Gitlab::MergeRequests::Mergeability::ResultsStore8529 #read8530 calls #retrieve_check on the interface8531 when #retrieve_check returns nil8532 returns nil8533 #write8534 calls #save_check on the interface8535devise/shared/_error_messages8536 # order random8537 Error messages8538 with errors8539 shows errors8540 without errors8541 does not show errors8542AccessibilityReportsComparerEntity8543 #as_json8544 when base report has error and head has a different error8545 contains correct compared accessibility report details8546 when base report has error and head has the same error8547 contains correct compared accessibility report details8548 when base report has no error and head has errors8549 contains correct compared accessibility report details8550Gitlab::Ci::YamlProcessor::Dag8551 when it is a regular pipeline8552 returns ordered jobs8553 when there is a circular dependency8554 raises TSort::Cyclic8555 when there are some missing jobs8556 ignores the missing ones and returns in a valid order8557Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumnData8558 #arel_column8559 delegates to column_expression8560 #column_for_projection8561 returns the expression with AS using the original column name8562 #projection8563 returns the expression with AS using the specified column lias8564PreferredLanguageSwitcherHelper8565 # order random8566 #ordered_selectable_locales8567 returns filtered and ordered by translation level selectable locales8568Emails::ConfirmService8569 #execute8570 enqueues a background job to send confirmation email again8571Types::Ci::PipelineScheduleStatusEnum8572 # order random8573 is expected to eq "PipelineScheduleStatus"8574 exposes the status of a pipeline schedule8575Gitlab::Git::Patches::Patch8576 #size8577 is correct8578Types::Projects::ServiceTypeEnum8579 exposes all the existing project services8580 coerces values correctly8581Types::Ci::ConfigVariableType8582 # order random8583 is expected to have graphql fields :key, :description, and :value8584Gitlab::PhabricatorImport::Representation::Task8585 #issue_attributes8586 contains the expected values8587 #author_phid8588 returns the correct field8589 #owner_phid8590 returns the correct field8591Gitlab::UsageDataCounters::ServiceUsageDataCounter8592 behaves like a redis usage counter8593 .count(download_payload_click)8594 increments the Service Usage Data download_payload_click counter by 18595 .read(download_payload_click)8596 returns the total number of download_payload_click events8597Graphql::FieldSelection8598 can report on the paths that are selected8599 can serialize a field selection nicely8600Gitlab::LanguageData8601 #extensions8602 loads the extensions once8603DeployKeyPresenter8604 # order random8605 #humanized_error_message8606 when public key is unsupported8607 returns the custom error message8608Evidences::IssueEntity8609 exposes the expected fields8610notify/new_achievement_email.html.haml8611 # order random8612 contains achievement information8613RuboCop::Cop::Scalability::IdempotentWorker8614 # order random8615 adds an offense when not defining idempotent method8616 adds an offense when not defining idempotent method8617Types::DesignManagement::DesignCollectionType8618 is expected to require graphql authorizations :read_design8619 has the expected fields8620Gitlab::SlashCommands::Presenters::IncidentManagement::IncidentNew8621 # order random8622 returns the ephemeral message8623Types::Ci::Config::ConfigType8624 is expected to eq "CiConfig"8625 exposes the expected fields8626API::Entities::Projects::Topic8627 exposes correct attributes8628Types::Packages::Helm::MaintainerType8629 is expected to eq "PackageHelmMaintainerType"8630 includes helm maintainer fields8631TermsHelper8632 #terms_data8633 returns correct json8634ExportHelper8635 #project_export_descriptions8636 includes design management8637Gitlab::GithubImport::Importer::Attachments::BaseImporter8638 # order random8639 #each_object_to_import8640 with not implemented #collection interface8641 raises NotImplementedError8642Knapsack report was generated. Preview:8643{8644 "spec/policies/project_policy_spec.rb": 99.56469510500028,8645 "spec/services/groups/transfer_service_spec.rb": 205.89634941900022,8646 "spec/services/todo_service_spec.rb": 94.39275609000015,8647 "spec/tasks/gitlab/usage_data_rake_spec.rb": 115.06756214399957,8648 "spec/services/system_notes/issuables_service_spec.rb": 43.42470461100038,8649 "spec/models/todo_spec.rb": 54.23572943199997,8650 "spec/services/issues/relative_position_rebalancing_service_spec.rb": 56.71255499500057,8651 "spec/services/issues/clone_service_spec.rb": 44.24679848900087,8652 "spec/models/merge_request/cleanup_schedule_spec.rb": 46.030395571000554,8653 "spec/lib/backup/database_spec.rb": 36.9712457379992,8654 "spec/services/deployments/update_environment_service_spec.rb": 38.74112966699977,8655 "spec/lib/gitlab/database/lock_writes_manager_spec.rb": 29.514434243001233,8656 "spec/services/issues/import_csv_service_spec.rb": 20.11217459299951,8657 "spec/services/packages/maven/find_or_create_package_service_spec.rb": 19.291600696000387,8658 "spec/helpers/emails_helper_spec.rb": 10.342737445000239,8659 "spec/helpers/gitlab_routing_helper_spec.rb": 12.51704189100019,8660 "spec/finders/container_repositories_finder_spec.rb": 12.593225487000382,8661 "spec/services/spam/spam_verdict_service_spec.rb": 5.400578798000424,8662 "spec/tasks/gitlab/check_rake_spec.rb": 32.8830845829998,8663 "spec/lib/gitlab/database/background_migration/batched_job_spec.rb": 5.815963413000645,8664 "spec/services/projects/autocomplete_service_spec.rb": 14.242119295999146,8665 "spec/models/integrations/discord_spec.rb": 9.914571682000314,8666 "spec/lib/gitlab/ci/variables/builder_spec.rb": 7.210824908001086,8667 "spec/services/search/group_service_spec.rb": 11.888854351000191,8668 "spec/lib/gitlab/database/with_lock_retries_outside_transaction_spec.rb": 15.139849592998871,8669 "spec/lib/gitlab/ci/badge/pipeline/status_spec.rb": 14.383583756998632,8670 "spec/models/clusters/integrations/prometheus_spec.rb": 9.20040527600031,8671 "spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb": 2.579803492000792,8672 "spec/services/issues/build_service_spec.rb": 10.62127806799981,8673 "spec/workers/issuable_export_csv_worker_spec.rb": 8.430386703001204,8674 "spec/models/integrations/squash_tm_spec.rb": 4.211521290999372,8675 "spec/bin/audit_event_type_spec.rb": 2.1979875650013128,8676 "spec/lib/security/weak_passwords_spec.rb": 2.2877702100013266,8677 "spec/services/ci/delete_unit_tests_service_spec.rb": 10.446860459000163,8678 "spec/presenters/projects/settings/deploy_keys_presenter_spec.rb": 7.0206124690012075,8679 "spec/lib/gitlab/ci/config/entry/environment_spec.rb": 1.7688635310005338,8680 "spec/presenters/ci/build_presenter_spec.rb": 7.693723047999811,8681 "spec/policies/ci/pipeline_policy_spec.rb": 8.95214986100109,8682 "spec/lib/gitlab/gitaly_client/repository_service_spec.rb": 3.1110120189987356,8683 "spec/lib/gitlab/data_builder/deployment_spec.rb": 6.953788072998577,8684 "spec/models/ci/build_trace_metadata_spec.rb": 6.182379820998904,8685 "spec/models/protectable_dropdown_spec.rb": 8.353418647999206,8686 "spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb": 9.611825451000186,8687 "spec/lib/gitlab/search/recent_issues_spec.rb": 6.5859090559988545,8688 "spec/lib/gitlab/metrics/dashboard/processor_spec.rb": 5.122396826000113,8689 "spec/presenters/group_clusterable_presenter_spec.rb": 7.009526629999527,8690 "spec/services/merge_requests/export_csv_service_spec.rb": 7.861153928000931,8691 "spec/lib/gitlab/omniauth_initializer_spec.rb": 1.1425440599996364,8692 "spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb": 8.318141289999403,8693 "spec/workers/repository_check/single_repository_worker_spec.rb": 5.502822973001457,8694 "spec/config/object_store_settings_spec.rb": 1.411946883001292,8695 "spec/services/markup/rendering_service_spec.rb": 4.748780597999939,8696 "spec/serializers/suggestion_entity_spec.rb": 6.131728504000421,8697 "spec/services/users/update_service_spec.rb": 3.8869799519998196,8698 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 4.597876838000957,8699 "spec/services/bulk_imports/file_download_service_spec.rb": 1.6223068210001657,8700 "spec/graphql/mutations/ci/runner/delete_spec.rb": 4.328020963999734,8701 "spec/services/users/activity_service_spec.rb": 2.209000835000552,8702 "spec/services/boards/lists/create_service_spec.rb": 4.48301380400153,8703 "spec/lib/gitlab/github_import/importer/issue_importer_spec.rb": 5.0079211730007955,8704 "spec/helpers/projects/pages_helper_spec.rb": 4.998078593998798,8705 "spec/lib/gitlab/github_import/representation/note_text_spec.rb": 1.4610009909993096,8706 "spec/graphql/graphql_triggers_spec.rb": 1.7769847809995554,8707 "spec/serializers/merge_request_user_entity_spec.rb": 3.534335992999331,8708 "spec/tooling/lib/tooling/find_codeowners_spec.rb": 1.3503640069993708,8709 "spec/finders/resource_state_event_finder_spec.rb": 3.8662815030002093,8710 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_last_build_started_spec.rb": 2.989597916999628,8711 "spec/workers/external_service_reactive_caching_worker_spec.rb": 2.2321543930011103,8712 "spec/models/label_link_spec.rb": 3.138356407000174,8713 "spec/workers/bulk_imports/pipeline_worker_spec.rb": 1.7411095130009926,8714 "spec/graphql/mutations/namespace/package_settings/update_spec.rb": 3.9653756960015016,8715 "spec/lib/gitlab/ci/tags/bulk_insert_spec.rb": 2.047995623999668,8716 "spec/lib/system_check/simple_executor_spec.rb": 1.0475050050008576,8717 "spec/sidekiq_cluster/sidekiq_cluster_spec.rb": 0.737941254999896,8718 "spec/lib/gitlab/ci/config/entry/jobs_spec.rb": 0.9346589429987944,8719 "spec/models/lfs_object_spec.rb": 3.5872460089995,8720 "spec/lib/gitlab/email/message/in_product_marketing/base_spec.rb": 0.8353957590006758,8721 "spec/services/ci/runners/reconcile_existing_runner_versions_service_spec.rb": 0.6523016999999527,8722 "spec/helpers/environments_helper_spec.rb": 2.0985336609992373,8723 "spec/tasks/gitlab/task_helpers_spec.rb": 2.2186341540000285,8724 "spec/rubocop/cop/put_project_routes_under_scope_spec.rb": 0.7635188830008701,8725 "spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb": 3.4903144460004114,8726 "spec/graphql/resolvers/projects/services_resolver_spec.rb": 1.5524791249990813,8727 "spec/lib/gitlab/gl_repository/identifier_spec.rb": 1.2679438720006146,8728 "spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb": 1.7575894619985775,8729 "spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb": 2.9657197880005697,8730 "spec/lib/gitlab/local_and_remote_storage_migration/artifact_migrater_spec.rb": 2.8509109759997955,8731 "spec/lib/gitlab/phabricator_import/cache/map_spec.rb": 1.0670279239984666,8732 "spec/lib/banzai/reference_parser/label_parser_spec.rb": 3.3365497560007498,8733 "spec/services/projects/lfs_pointers/lfs_link_service_spec.rb": 1.1271131009998498,8734 "spec/lib/gitlab/uuid_spec.rb": 0.8465958580000006,8735 "spec/lib/gitlab/graphs/commits_spec.rb": 2.1810889550015418,8736 "spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb": 0.8380149789991265,8737 "spec/views/shared/wikis/_sidebar.html.haml_spec.rb": 2.567228152000098,8738 "spec/services/notes/resolve_service_spec.rb": 3.0775275619998865,8739 "spec/rubocop/cop/graphql/json_type_spec.rb": 0.5047789389991522,8740 "spec/lib/gitlab/usage/metric_spec.rb": 3.0411522739996144,8741 "spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb": 3.409232260000863,8742 "spec/helpers/web_hooks/web_hooks_helper_spec.rb": 1.891101843000797,8743 "spec/tasks/rubocop_rake_spec.rb": 6.378455328998825,8744 "spec/graphql/types/base_object_spec.rb": 1.4963797489999706,8745 "spec/helpers/sessions_helper_spec.rb": 0.8296087899998383,8746 "spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb": 1.048260424999171,8747 "spec/tasks/gitlab/lfs/check_rake_spec.rb": 1.642375669998728,8748 "spec/services/projects/group_links/destroy_service_spec.rb": 3.065204631000597,8749 "spec/services/merge_requests/resolve_todos_service_spec.rb": 1.6508829280010104,8750 "spec/lib/gitlab/ci/project_config/repository_spec.rb": 2.667604936999851,8751 "spec/lib/sidebars/groups/menus/issues_menu_spec.rb": 3.568828751000183,8752 "spec/models/concerns/access_requestable_spec.rb": 2.4493347799998446,8753 "spec/lib/gitlab/slash_commands/presenters/access_spec.rb": 0.7745822819997557,8754 "spec/workers/incident_management/close_incident_worker_spec.rb": 1.8809248149991618,8755 "spec/lib/gitlab/kubernetes/deployment_spec.rb": 0.7013521669996408,8756 "spec/models/concerns/loaded_in_group_list_spec.rb": 2.702361663999909,8757 "spec/serializers/admin/abuse_report_entity_spec.rb": 0.8165360799994232,8758 "spec/tooling/rspec_flaky/listener_spec.rb": 0.5518404560007184,8759 "spec/lib/gitlab/ci/status/success_warning_spec.rb": 0.5112683179995656,8760 "spec/services/packages/cleanup/execute_policy_service_spec.rb": 1.1760937580002064,8761 "spec/lib/gitlab/github_import_spec.rb": 1.6327014800008328,8762 "spec/graphql/types/snippets/blob_viewer_type_spec.rb": 1.8911516640000627,8763 "spec/models/resource_events/issue_assignment_event_spec.rb": 0.6723308389991871,8764 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 0.504654248999941,8765 "spec/lib/gitlab/config/entry/undefined_spec.rb": 0.5646067359994049,8766 "spec/graphql/resolvers/group_resolver_spec.rb": 0.6600406399993517,8767 "spec/helpers/hooks_helper_spec.rb": 0.9289896520003822,8768 "spec/graphql/types/time_type_spec.rb": 0.3583270170001924,8769 "spec/models/concerns/file_store_mounter_spec.rb": 0.6579065000005357,8770 "spec/models/concerns/taskable_spec.rb": 0.5453738769992924,8771 "spec/graphql/types/ci/template_type_spec.rb": 0.32932097900084045,8772 "spec/lib/bitbucket/representation/comment_spec.rb": 0.437013663999096,8773 "spec/lib/gitlab/security/scan_configuration_spec.rb": 1.6196813999995356,8774 "spec/models/packages/debian/group_architecture_spec.rb": 1.0902653630000714,8775 "spec/views/layouts/_flash.html.haml_spec.rb": 1.19011258700084,8776 "spec/lib/sidebars/user_profile/menus/personal_projects_menu_spec.rb": 1.0017278989998886,8777 "spec/services/resource_events/merge_into_notes_service_spec.rb": 1.4092433030000393,8778 "spec/lib/system_check/app/authorized_keys_permission_check_spec.rb": 0.49185878000025696,8779 "spec/helpers/lazy_image_tag_helper_spec.rb": 1.0400029859993083,8780 "spec/lib/gitlab/safe_request_purger_spec.rb": 0.5403483970003435,8781 "spec/workers/flush_counter_increments_worker_spec.rb": 1.3186652189997403,8782 "spec/lib/gitlab/log_timestamp_formatter_spec.rb": 0.33087642999998934,8783 "spec/lib/gitlab/ci/status/pending_spec.rb": 0.4990751889999956,8784 "spec/presenters/deployments/deployment_presenter_spec.rb": 1.6700563579997834,8785 "spec/lib/sidebars/projects/super_sidebar_menus/build_menu_spec.rb": 0.4195106739989569,8786 "spec/tasks/gitlab/lfs/migrate_rake_spec.rb": 1.7616695020005864,8787 "spec/lib/gitlab/ci/status/build/failed_unmet_prerequisites_spec.rb": 1.843400756999472,8788 "spec/lib/gitlab/push_options_spec.rb": 0.6647680599999148,8789 "spec/graphql/types/branch_protections/push_access_level_type_spec.rb": 0.2877154319994588,8790 "spec/graphql/mutations/boards/lists/update_spec.rb": 1.4702424900006008,8791 "spec/workers/update_highest_role_worker_spec.rb": 1.5015343979994213,8792 "spec/presenters/user_presenter_spec.rb": 0.9237929929986421,8793 "spec/services/protected_tags/update_service_spec.rb": 1.7513041829988651,8794 "spec/lib/bulk_imports/projects/pipelines/project_attributes_pipeline_spec.rb": 0.9103124939992995,8795 "spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb": 1.3400487170001725,8796 "spec/lib/gitlab/gitaly_client/diff_spec.rb": 0.7028894479990413,8797 "spec/services/ci/runners/process_runner_version_update_service_spec.rb": 1.389110915000856,8798 "spec/graphql/types/commit_encoding_enum_spec.rb": 0.3040800710004987,8799 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.4605768410001474,8800 "spec/lib/gitlab/email/smime/signer_spec.rb": 2.584170301000995,8801 "spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 1.0040397379998467,8802 "spec/services/merge_requests/create_approval_event_service_spec.rb": 1.605087721000018,8803 "spec/views/layouts/group.html.haml_spec.rb": 2.1797788760013646,8804 "spec/models/releases/source_spec.rb": 1.3066051300011168,8805 "spec/lib/gitlab/metrics/dashboard/importer_spec.rb": 0.8276887089996308,8806 "spec/lib/gitlab/graphql/limit/field_call_count_spec.rb": 0.518879957999161,8807 "spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb": 1.3837940649991651,8808 "spec/services/projects/batch_open_issues_count_service_spec.rb": 1.3316304979998677,8809 "spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb": 0.7528598839999177,8810 "spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb": 0.7317927860003692,8811 "spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb": 0.5765887640009169,8812 "spec/lib/system_check/sidekiq_check_spec.rb": 0.6566522899993288,8813 "spec/lib/gitlab/mailgun/webhook_processors/member_invites_spec.rb": 0.9531301120005082,8814 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 1.0047904580005707,8815 "spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb": 0.5909151240011852,8816 "spec/lib/gitlab/color_schemes_spec.rb": 0.5310515569999552,8817 "spec/models/projects/import_export/relation_export_upload_spec.rb": 0.7123433659999137,8818 "spec/lib/gitlab/github_import/settings_spec.rb": 0.776918083000055,8819 "spec/lib/gitlab/memory/instrumentation_spec.rb": 0.4788649609999993,8820 "spec/lib/gitlab/qa_spec.rb": 0.5430194870004925,8821 "spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb": 0.5781620849993487,8822 "spec/lib/gitlab/health_checks/middleware_spec.rb": 0.43775505300072837,8823 "spec/lib/gitlab/ci/parsers/accessibility/pa11y_spec.rb": 0.4442325220006751,8824 "spec/services/projects/deploy_tokens/destroy_service_spec.rb": 1.096270972999264,8825 "spec/lib/gitlab/throttle_spec.rb": 0.562705835000088,8826 "spec/services/spam/ham_service_spec.rb": 0.6010666020010831,8827 "spec/initializers/diagnostic_reports_spec.rb": 0.5323829480003042,8828 "spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb": 0.485852990001149,8829 "spec/models/alerting/project_alerting_setting_spec.rb": 1.0668218240007263,8830 "spec/lib/gitlab/import_export/version_checker_spec.rb": 0.3974546649988042,8831 "spec/lib/gitlab/hook_data/subgroup_builder_spec.rb": 0.8213968700001715,8832 "spec/serializers/group_access_token_serializer_spec.rb": 0.8590137669998512,8833 "spec/graphql/types/group_member_relation_enum_spec.rb": 0.3840544159993442,8834 "spec/services/metrics/global_metrics_update_service_spec.rb": 0.8729786069998227,8835 "spec/services/merge_requests/mergeability/check_open_status_service_spec.rb": 0.4592960520003544,8836 "spec/graphql/types/release_assets_type_spec.rb": 0.5922358829993755,8837 "spec/graphql/types/root_storage_statistics_type_spec.rb": 0.5630359049991966,8838 "spec/serializers/import/fogbugz_provider_repo_entity_spec.rb": 0.6079613020010584,8839 "spec/config/smime_signature_settings_spec.rb": 0.5904403939985059,8840 "spec/lib/generators/batched_background_migration/batched_background_migration_generator_spec.rb": 0.6843449179996242,8841 "spec/helpers/url_helper_spec.rb": 0.44686877299864136,8842 "spec/graphql/resolvers/concerns/resolves_ids_spec.rb": 0.39340476600045804,8843 "spec/lib/gitlab/process_memory_cache/helper_spec.rb": 0.4743739909990836,8844 "spec/lib/microsoft_teams/notifier_spec.rb": 0.7646274029993947,8845 "spec/lib/sidebars/groups/super_sidebar_menus/operations_menu_spec.rb": 0.4275161940004182,8846 "spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb": 0.4437748729997111,8847 "spec/views/devise/shared/_error_messages.html.haml_spec.rb": 0.7291573549991881,8848 "spec/serializers/accessibility_reports_comparer_entity_spec.rb": 0.5088822090001486,8849 "spec/lib/gitlab/ci/yaml_processor/dag_spec.rb": 0.9695349600006011,8850 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb": 0.4718825809995906,8851 "spec/helpers/preferred_language_switcher_helper_spec.rb": 0.3638900880014262,8852 "spec/services/emails/confirm_service_spec.rb": 0.38963270599924726,8853 "spec/graphql/types/ci/pipeline_schedule_status_enum_spec.rb": 0.36386329800006934,8854 "spec/lib/gitlab/git/patches/patch_spec.rb": 0.26408724399880157,8855 "spec/graphql/types/projects/service_type_enum_spec.rb": 0.3266614499989373,8856 "spec/graphql/types/ci/config_variable_type_spec.rb": 0.29526531100054854,8857 "spec/lib/gitlab/phabricator_import/representation/task_spec.rb": 0.4264710939987708,8858 "spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb": 0.3391505599993252,8859 "spec/support_specs/graphql/field_selection_spec.rb": 0.3582407379999495,8860 "spec/lib/gitlab/language_data_spec.rb": 0.4906017899993458,8861 "spec/presenters/deploy_key_presenter_spec.rb": 0.3209324100007507,8862 "spec/serializers/evidences/issue_entity_spec.rb": 0.36061486799917475,8863 "spec/views/notify/new_achievement_email.html.haml_spec.rb": 0.43825979299981555,8864 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.33475073000045086,8865 "spec/graphql/types/design_management/design_collection_type_spec.rb": 0.3519687080006406,8866 "spec/lib/gitlab/slash_commands/presenters/incident_management/incident_new_spec.rb": 0.5577177259983728,8867 "spec/graphql/types/ci/config/config_type_spec.rb": 0.4413634029988316,8868 "spec/lib/api/entities/projects/topic_spec.rb": 0.3194755200001964,8869 "spec/graphql/types/packages/helm/maintainer_type_spec.rb": 0.45505760199921497,8870 "spec/helpers/terms_helper_spec.rb": 0.3285772099989117,8871 "spec/helpers/export_helper_spec.rb": 0.408982394999839,8872 "spec/lib/gitlab/github_import/importer/attachments/base_importer_spec.rb": 0.37410278700008358873}8874Knapsack global time execution for tests: 24m 08s8875Pending: (Failures listed here are expected and do not affect your suite's status)8876 1) Ci::BuildTraceMetadata partitioning assigns the same partition id as the one that build has8877 # Skipping partitioning tests until `ci_builds` is partitioned8878 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8879 RSpec::Core::Pending::SkipDeclaredInExample8880 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8881 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8882 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8883 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8884 2) MergeRequestUserEntity#as_json performance is linear in the number of merge requests8886 Failure/Error:8887 expect do8888 a = described_class.new(user_a, request: request, merge_request: merge_request_b)8889 b = described_class.new(user_b, request: request, merge_request: merge_request_b)8891 a.as_json8892 b.as_json8893 end.not_to exceed_query_limit(baseline)8894 Expected a maximum of 10 queries, got 20:8895 Query Diff:8896 -----------8897 SELECT "users".* FROM "users"...8898 -- (expected: 1, got: 0)8899 WHERE "users"."id" = 1371 LIMIT 18900 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...8901 -- (expected: 4, got: 0)8902 WHERE "project_authorizations"."project_id" = 811 AND "project_authorizations"."user_id" = 1373 GROUP BY "project_authorizations"."user_id"8903 -- (expected: 3, got: 0)8904 WHERE "project_authorizations"."project_id" = 811 AND "project_authorizations"."user_id" = 1371 GROUP BY "project_authorizations"."user_id"8905 -- (expected: 0, got: 4)8906 WHERE "project_authorizations"."project_id" = 812 AND "project_authorizations"."user_id" = 1373 GROUP BY "project_authorizations"."user_id"8907 -- (expected: 0, got: 6)8908 WHERE "project_authorizations"."project_id" = 812 AND "project_authorizations"."user_id" = 1371 GROUP BY "project_authorizations"."user_id"8909 -- (expected: 0, got: 4)8910 WHERE "project_authorizations"."project_id" = 812 AND "project_authorizations"."user_id" = 1374 GROUP BY "project_authorizations"."user_id"8911 SELECT "merge_requests".* FROM "merge_requests"...8912 -- (expected: 1, got: 0)8913 WHERE "merge_requests"."source_project_id" = 811 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'8914 -- (expected: 0, got: 2)8915 WHERE "merge_requests"."source_project_id" = 812 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'8916 SELECT "merge_request_reviewers".* FROM "merge_request_reviewers"...8917 -- (expected: 1, got: 0)8918 WHERE "merge_request_reviewers"."merge_request_id" = 151 AND "merge_request_reviewers"."user_id" = 1373 LIMIT 18919 -- (expected: 0, got: 1)8920 WHERE "merge_request_reviewers"."merge_request_id" = 152 AND "merge_request_reviewers"."user_id" = 1373 LIMIT 18921 -- (expected: 0, got: 1)8922 WHERE "merge_request_reviewers"."merge_request_id" = 152 AND "merge_request_reviewers"."user_id" = 1374 LIMIT 18923 SELECT "protected_branches".* FROM ((SELECT "protected_branches".* FROM "protected_branches"...8924 -- (expected: 0, got: 1)8925 WHERE "protected_branches"."project_id" = 812)) protected_branches8926 SELECT "approvals".* FROM "approvals"...8927 -- (expected: 0, got: 1)8928 WHERE "approvals"."merge_request_id" = 1528929 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'8930 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'8931 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8932 # ./spec/spec_helper.rb:419:in `block (2 levels) in <top (required)>'8933 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'8934 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8935 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'8936 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'8937 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8938 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8939 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8940 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8941 3) Gitlab::GlRepository::Identifier project repository https://gitlab.com/gitlab-org/gitlab/-/issues/2191928942 # No reason given8943 Failure/Error: return super unless match_data = method_name.match(HELPER_METHOD_PATTERN)8944 `it_behaves_like` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).8945 # ./spec/support/helpers/next_found_instance_of.rb:8:in `method_missing'8946 # ./spec/lib/gitlab/gl_repository/identifier_spec.rb:19:in `block (3 levels) in <top (required)>'8947 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'8948 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8949 # ./spec/spec_helper.rb:419:in `block (2 levels) in <top (required)>'8950 # ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'8951 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8952 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'8953 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'8954 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8955 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8956 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8957 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8958Finished in 24 minutes 12 seconds (files took 44.56 seconds to load)89593648 examples, 0 failures, 3 pending8960Randomized with seed 336068961[TEST PROF INFO] Time spent in factories: 11:50.958 (48.75% of total time)8962RSpec exited with 0.8963No examples to retry, congrats!8965Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8967Uploading artifacts...8968coverage/: found 5 matching artifact files and directories 8969WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8970deprecations/: found 6 matching artifact files and directories 8971knapsack/: found 3 matching artifact files and directories 8972query_recorder/: found 2 matching artifact files and directories 8973rspec/: found 8 matching artifact files and directories 8974WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8975log/*.log: found 20 matching artifact files and directories 8976WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146394/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8977WARNING: Retrying... context=artifacts-uploader error=request redirected8978Uploading artifacts as "archive" to coordinator... 201 Created id=4139146394 responseStatus=201 Created token=64_-464b8979Uploading artifacts...8980rspec/junit_rspec.xml: found 1 matching artifact files and directories 8981WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146394/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8982WARNING: Retrying... context=artifacts-uploader error=request redirected8983Uploading artifacts as "junit" to coordinator... 201 Created id=4139146394 responseStatus=201 Created token=64_-464b8985Job succeeded