rspec unit pg13 21/28
Passed Started
by
@rkadam3

Rajendra Kadam
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.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-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1681896982-303bc30b...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: 129399, done. 25remote: Counting objects: 100% (129399/129399), done. 26remote: Compressing objects: 100% (84885/84885), done. 27remote: Total 129399 (delta 54003), reused 89052 (delta 39575), pack-reused 0 28Receiving objects: 100% (129399/129399), 122.83 MiB | 25.66 MiB/s, done.29Resolving deltas: 100% (54003/54003), 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...38Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 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_rdqkb43Downloading artifacts for retrieve-tests-metadata (4139146276)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146276 responseStatus=200 OK token=64_rdqkb45Downloading artifacts for setup-test-env (4139146274)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4139146274 responseStatus=200 OK token=64_rdqkb48Using 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 0 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 54 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 1 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_21_28_report.json752FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json753FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_21_28_report.json754NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_21_28_report.json755SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_21_28_report.txt756CRYSTALBALL: 757Knapsack node specs:758spec/scripts/lib/glfm/update_example_snapshots_spec.rb759spec/models/note_spec.rb760spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb761spec/finders/deployments_finder_spec.rb762spec/services/issues/move_service_spec.rb763spec/lib/gitlab/auth/o_auth/user_spec.rb764spec/policies/wiki_page_policy_spec.rb765spec/services/ci/unlock_artifacts_service_spec.rb766spec/lib/gitlab/url_blocker_spec.rb767spec/presenters/project_presenter_spec.rb768spec/finders/merge_request_target_project_finder_spec.rb769spec/finders/branches_finder_spec.rb770spec/models/gpg_key_spec.rb771spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb772spec/services/spam/spam_action_service_spec.rb773spec/lib/gitlab/database/background_migration/batched_migration_spec.rb774spec/models/trending_project_spec.rb775spec/lib/gitlab/utils/usage_data_spec.rb776spec/services/work_items/create_service_spec.rb777spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb778spec/finders/group_descendants_finder_spec.rb779spec/services/members/create_service_spec.rb780spec/workers/packages/debian/process_changes_worker_spec.rb781spec/policies/project_member_policy_spec.rb782spec/models/operations/feature_flag_spec.rb783spec/lib/gitlab/ci/runner_upgrade_check_spec.rb784spec/services/merge_requests/request_review_service_spec.rb785spec/services/auto_merge_service_spec.rb786spec/lib/gitlab/github_import/importer/releases_importer_spec.rb787spec/models/application_record_spec.rb788spec/uploaders/pages/deployment_uploader_spec.rb789spec/services/metrics/dashboard/custom_dashboard_service_spec.rb790spec/lib/gitlab/slash_commands/deploy_spec.rb791spec/finders/user_recent_events_finder_spec.rb792spec/rubocop/code_reuse_helpers_spec.rb793spec/lib/gitlab/email/receiver_spec.rb794spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb795spec/tasks/gitlab/user_management_rake_spec.rb796spec/lib/gitlab/sql/pattern_spec.rb797spec/lib/gitlab/auth/saml/user_spec.rb798spec/services/files/delete_service_spec.rb799spec/models/plan_limits_spec.rb800spec/lib/gitlab/github_import/representation/diff_note_spec.rb801spec/services/environments/schedule_to_delete_review_apps_service_spec.rb802spec/services/google_cloud/generate_pipeline_service_spec.rb803spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb804spec/services/projects/import_export/relation_export_service_spec.rb805spec/lib/gitlab/audit/auditor_spec.rb806spec/lib/google_api/cloud_platform/client_spec.rb807spec/lib/grafana/client_spec.rb808spec/tasks/gitlab/artifacts/migrate_rake_spec.rb809spec/presenters/snippet_blob_presenter_spec.rb810spec/workers/container_registry/migration/observer_worker_spec.rb811spec/services/issues/reorder_service_spec.rb812spec/views/layouts/header/_new_dropdown.haml_spec.rb813spec/services/metrics/dashboard/system_dashboard_service_spec.rb814spec/models/concerns/cacheable_attributes_spec.rb815spec/services/ci/create_pipeline_service/rate_limit_spec.rb816spec/services/ci/parse_dotenv_artifact_service_spec.rb817spec/lib/gitlab/diff/file_collection/compare_spec.rb818spec/lib/gitlab/ci/build/rules_spec.rb819spec/lib/gitlab/spamcheck/client_spec.rb820spec/lib/gitlab/tracking_spec.rb821spec/finders/protected_branches_finder_spec.rb822spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb823spec/lib/gitlab/ci/status/build/play_spec.rb824spec/lib/gitlab/api_authentication/token_resolver_spec.rb825spec/lib/banzai/filter/upload_link_filter_spec.rb826spec/services/users/set_status_service_spec.rb827spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb828spec/policies/upload_policy_spec.rb829spec/models/clusters/providers/gcp_spec.rb830spec/services/ci/build_report_result_service_spec.rb831spec/workers/projects/import_export/parallel_project_export_worker_spec.rb832spec/services/git/wiki_push_service/change_spec.rb833spec/services/users/assigned_issues_count_service_spec.rb834spec/lib/gitlab/process_management_spec.rb835spec/lib/gitlab/database/query_analyzer_spec.rb836spec/workers/repository_update_remote_mirror_worker_spec.rb837spec/lib/gitlab/slash_commands/issue_new_spec.rb838spec/finders/namespaces/projects_finder_spec.rb839spec/finders/clusters_finder_spec.rb840spec/lib/gitlab/repository_url_builder_spec.rb841spec/services/ci/create_pipeline_service/parallel_spec.rb842spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb843spec/services/ci/delete_objects_service_spec.rb844spec/graphql/mutations/boards/issues/issue_move_list_spec.rb845spec/services/work_items/parent_links/destroy_service_spec.rb846spec/services/markdown_content_rewriter_service_spec.rb847spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb848spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb849spec/models/issue_assignee_spec.rb850spec/lib/gitlab/jira_import/issue_serializer_spec.rb851spec/graphql/resolvers/merge_requests_count_resolver_spec.rb852spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb853spec/lib/gitlab/slash_commands/issue_search_spec.rb854spec/lib/gitlab/cache/client_spec.rb855spec/lib/gitlab/query_limiting/middleware_spec.rb856spec/lib/gitlab/ci/pipeline/chain/build_spec.rb857spec/lib/gitlab/ci/config/entry/services_spec.rb858spec/services/ci/pipelines/add_job_service_spec.rb859spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb860spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb861spec/lib/banzai/reference_parser/milestone_parser_spec.rb862spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb863spec/workers/rebase_worker_spec.rb864spec/lib/gitlab/import_export/remote_stream_upload_spec.rb865spec/services/authorized_project_update/project_recalculate_service_spec.rb866spec/rubocop/migration_helpers_spec.rb867spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb868spec/uploaders/records_uploads_spec.rb869spec/workers/stuck_export_jobs_worker_spec.rb870spec/lib/constraints/project_url_constrainer_spec.rb871spec/lib/gitlab/import_export/attribute_cleaner_spec.rb872spec/workers/merge_requests/handle_assignees_change_worker_spec.rb873spec/lib/gitlab/database/reindexing/index_selection_spec.rb874spec/support_specs/helpers/packages/npm_spec.rb875spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb876spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb877spec/graphql/mutations/merge_requests/set_subscription_spec.rb878spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb879spec/services/work_items/widgets/labels_service/update_service_spec.rb880spec/services/users/unban_service_spec.rb881spec/models/group_deploy_token_spec.rb882spec/finders/lfs_pointers_finder_spec.rb883spec/lib/gitlab/word_diff/parser_spec.rb884spec/lib/gitlab/utils/email_spec.rb885spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb886spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb887spec/lib/gitlab/middleware/basic_health_check_spec.rb888spec/services/packages/composer/composer_json_service_spec.rb889spec/models/concerns/batch_destroy_dependent_associations_spec.rb890spec/models/concerns/x509_serial_number_attribute_spec.rb891spec/models/token_with_iv_spec.rb892spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb893spec/presenters/packages/npm/package_presenter_spec.rb894spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb895spec/lib/sidebars/groups/super_sidebar_panel_spec.rb896spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb897spec/graphql/resolvers/terraform/states_resolver_spec.rb898spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb899spec/lib/gitlab/bullet/exclusions_spec.rb900spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb901spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb902spec/rubocop/cop/scalability/file_uploads_spec.rb903spec/validators/iso8601_date_validator_spec.rb904spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb905spec/graphql/types/ci/test_report_summary_type_spec.rb906spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb907spec/services/packages/conan/create_package_service_spec.rb908spec/services/pages_domains/update_service_spec.rb909spec/rubocop/cop/migration/schedule_async_spec.rb910spec/services/ci/job_artifacts/delete_service_spec.rb911spec/rubocop/cop/performance/readlines_each_spec.rb912spec/graphql/types/design_management_type_spec.rb913spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb914spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb915spec/workers/personal_access_tokens/expired_notification_worker_spec.rb916spec/workers/create_note_diff_file_worker_spec.rb917spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb918spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb919spec/lib/gitlab/sidekiq_middleware_spec.rb920spec/presenters/pages_domain_presenter_spec.rb921spec/lib/gitlab/chat_name_token_spec.rb922spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb923spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb924spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb925spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb926spec/lib/gitlab/graphql/present/field_extension_spec.rb927spec/lib/gitlab/pagination/keyset/request_context_spec.rb928spec/models/users/project_callout_spec.rb929spec/lib/gitlab/database/schema_validation/inconsistency_spec.rb930spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb931spec/components/layouts/horizontal_section_component_spec.rb932spec/models/ml/candidate_metric_spec.rb933spec/lib/gitlab/cross_project_access_spec.rb934spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb935spec/lib/gitlab/checks/force_push_spec.rb936spec/lib/banzai/commit_renderer_spec.rb937spec/lib/api/helpers/label_helpers_spec.rb938spec/models/description_version_spec.rb939spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb940spec/models/user_mentions/commit_user_mention_spec.rb941spec/serializers/ci/downloadable_artifact_serializer_spec.rb942spec/lib/peek/views/rugged_spec.rb943spec/lib/bitbucket/page_spec.rb944spec/models/work_items/widgets/notifications_spec.rb945spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb946spec/lib/gitlab/metrics/subscribers/action_view_spec.rb947spec/lib/gitlab/ci/ansi2json/parser_spec.rb948spec/models/concerns/stepable_spec.rb949spec/workers/export_csv_worker_spec.rb950spec/serializers/import/bulk_import_entity_spec.rb951spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb952spec/graphql/types/prometheus_alert_type_spec.rb953spec/lib/gitlab/tab_width_spec.rb954spec/rubocop/cop/ban_catch_throw_spec.rb955spec/lib/banzai/pipeline/email_pipeline_spec.rb956spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb957spec/lib/banzai/filter_array_spec.rb958spec/models/concerns/from_except_spec.rb959spec/lib/api/validations/validators/limit_spec.rb960spec/lib/api/github/entities_spec.rb961spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb962spec/services/product_analytics/build_graph_service_spec.rb963spec/lib/gitlab/config/entry/unspecified_spec.rb964spec/validators/cron_validator_spec.rb965spec/workers/issuable/label_links_destroy_worker_spec.rb966spec/lib/gitlab/repository_archive_rate_limiter_spec.rb967spec/lib/gitlab/cluster/puma_worker_killer_initializer_spec.rb968spec/rubocop/cop/qa/selector_usage_spec.rb969spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb970spec/lib/unnested_in_filters/dsl_spec.rb971spec/lib/gitlab/ci/status/group/factory_spec.rb972spec/lib/sidebars/user_profile/panel_spec.rb973spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb974spec/lib/gitlab/database/transaction_timeout_settings_spec.rb975spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb976spec/graphql/types/projects/topic_type_spec.rb977spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb978spec/serializers/evidences/evidence_serializer_spec.rb979spec/graphql/types/access_level_enum_spec.rb980spec/graphql/types/error_tracking/sentry_error_type_spec.rb981spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb982spec/views/errors/omniauth_error.html.haml_spec.rb983spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb984spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb985spec/lib/gitlab/metrics/transaction_spec.rb986spec/graphql/types/packages/pypi/metadatum_type_spec.rb987spec/workers/trending_projects_worker_spec.rb988spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb989spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb990spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb991Filter specs:992Running specs:993Running all node tests without filter994spec/scripts/lib/glfm/update_example_snapshots_spec.rb995spec/models/note_spec.rb996spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb997spec/finders/deployments_finder_spec.rb998spec/services/issues/move_service_spec.rb999spec/lib/gitlab/auth/o_auth/user_spec.rb1000spec/policies/wiki_page_policy_spec.rb1001spec/services/ci/unlock_artifacts_service_spec.rb1002spec/lib/gitlab/url_blocker_spec.rb1003spec/presenters/project_presenter_spec.rb1004spec/finders/merge_request_target_project_finder_spec.rb1005spec/finders/branches_finder_spec.rb1006spec/models/gpg_key_spec.rb1007spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb1008spec/services/spam/spam_action_service_spec.rb1009spec/lib/gitlab/database/background_migration/batched_migration_spec.rb1010spec/models/trending_project_spec.rb1011spec/lib/gitlab/utils/usage_data_spec.rb1012spec/services/work_items/create_service_spec.rb1013spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb1014spec/finders/group_descendants_finder_spec.rb1015spec/services/members/create_service_spec.rb1016spec/workers/packages/debian/process_changes_worker_spec.rb1017spec/policies/project_member_policy_spec.rb1018spec/models/operations/feature_flag_spec.rb1019spec/lib/gitlab/ci/runner_upgrade_check_spec.rb1020spec/services/merge_requests/request_review_service_spec.rb1021spec/services/auto_merge_service_spec.rb1022spec/lib/gitlab/github_import/importer/releases_importer_spec.rb1023spec/models/application_record_spec.rb1024spec/uploaders/pages/deployment_uploader_spec.rb1025spec/services/metrics/dashboard/custom_dashboard_service_spec.rb1026spec/lib/gitlab/slash_commands/deploy_spec.rb1027spec/finders/user_recent_events_finder_spec.rb1028spec/rubocop/code_reuse_helpers_spec.rb1029spec/lib/gitlab/email/receiver_spec.rb1030spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb1031spec/tasks/gitlab/user_management_rake_spec.rb1032spec/lib/gitlab/sql/pattern_spec.rb1033spec/lib/gitlab/auth/saml/user_spec.rb1034spec/services/files/delete_service_spec.rb1035spec/models/plan_limits_spec.rb1036spec/lib/gitlab/github_import/representation/diff_note_spec.rb1037spec/services/environments/schedule_to_delete_review_apps_service_spec.rb1038spec/services/google_cloud/generate_pipeline_service_spec.rb1039spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb1040spec/services/projects/import_export/relation_export_service_spec.rb1041spec/lib/gitlab/audit/auditor_spec.rb1042spec/lib/google_api/cloud_platform/client_spec.rb1043spec/lib/grafana/client_spec.rb1044spec/tasks/gitlab/artifacts/migrate_rake_spec.rb1045spec/presenters/snippet_blob_presenter_spec.rb1046spec/workers/container_registry/migration/observer_worker_spec.rb1047spec/services/issues/reorder_service_spec.rb1048spec/views/layouts/header/_new_dropdown.haml_spec.rb1049spec/services/metrics/dashboard/system_dashboard_service_spec.rb1050spec/models/concerns/cacheable_attributes_spec.rb1051spec/services/ci/create_pipeline_service/rate_limit_spec.rb1052spec/services/ci/parse_dotenv_artifact_service_spec.rb1053spec/lib/gitlab/diff/file_collection/compare_spec.rb1054spec/lib/gitlab/ci/build/rules_spec.rb1055spec/lib/gitlab/spamcheck/client_spec.rb1056spec/lib/gitlab/tracking_spec.rb1057spec/finders/protected_branches_finder_spec.rb1058spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb1059spec/lib/gitlab/ci/status/build/play_spec.rb1060spec/lib/gitlab/api_authentication/token_resolver_spec.rb1061spec/lib/banzai/filter/upload_link_filter_spec.rb1062spec/services/users/set_status_service_spec.rb1063spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb1064spec/policies/upload_policy_spec.rb1065spec/models/clusters/providers/gcp_spec.rb1066spec/services/ci/build_report_result_service_spec.rb1067spec/workers/projects/import_export/parallel_project_export_worker_spec.rb1068spec/services/git/wiki_push_service/change_spec.rb1069spec/services/users/assigned_issues_count_service_spec.rb1070spec/lib/gitlab/process_management_spec.rb1071spec/lib/gitlab/database/query_analyzer_spec.rb1072spec/workers/repository_update_remote_mirror_worker_spec.rb1073spec/lib/gitlab/slash_commands/issue_new_spec.rb1074spec/finders/namespaces/projects_finder_spec.rb1075spec/finders/clusters_finder_spec.rb1076spec/lib/gitlab/repository_url_builder_spec.rb1077spec/services/ci/create_pipeline_service/parallel_spec.rb1078spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb1079spec/services/ci/delete_objects_service_spec.rb1080spec/graphql/mutations/boards/issues/issue_move_list_spec.rb1081spec/services/work_items/parent_links/destroy_service_spec.rb1082spec/services/markdown_content_rewriter_service_spec.rb1083spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb1084spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb1085spec/models/issue_assignee_spec.rb1086spec/lib/gitlab/jira_import/issue_serializer_spec.rb1087spec/graphql/resolvers/merge_requests_count_resolver_spec.rb1088spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb1089spec/lib/gitlab/slash_commands/issue_search_spec.rb1090spec/lib/gitlab/cache/client_spec.rb1091spec/lib/gitlab/query_limiting/middleware_spec.rb1092spec/lib/gitlab/ci/pipeline/chain/build_spec.rb1093spec/lib/gitlab/ci/config/entry/services_spec.rb1094spec/services/ci/pipelines/add_job_service_spec.rb1095spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb1096spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb1097spec/lib/banzai/reference_parser/milestone_parser_spec.rb1098spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb1099spec/workers/rebase_worker_spec.rb1100spec/lib/gitlab/import_export/remote_stream_upload_spec.rb1101spec/services/authorized_project_update/project_recalculate_service_spec.rb1102spec/rubocop/migration_helpers_spec.rb1103spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb1104spec/uploaders/records_uploads_spec.rb1105spec/workers/stuck_export_jobs_worker_spec.rb1106spec/lib/constraints/project_url_constrainer_spec.rb1107spec/lib/gitlab/import_export/attribute_cleaner_spec.rb1108spec/workers/merge_requests/handle_assignees_change_worker_spec.rb1109spec/lib/gitlab/database/reindexing/index_selection_spec.rb1110spec/support_specs/helpers/packages/npm_spec.rb1111spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb1112spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb1113spec/graphql/mutations/merge_requests/set_subscription_spec.rb1114spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb1115spec/services/work_items/widgets/labels_service/update_service_spec.rb1116spec/services/users/unban_service_spec.rb1117spec/models/group_deploy_token_spec.rb1118spec/finders/lfs_pointers_finder_spec.rb1119spec/lib/gitlab/word_diff/parser_spec.rb1120spec/lib/gitlab/utils/email_spec.rb1121spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb1122spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb1123spec/lib/gitlab/middleware/basic_health_check_spec.rb1124spec/services/packages/composer/composer_json_service_spec.rb1125spec/models/concerns/batch_destroy_dependent_associations_spec.rb1126spec/models/concerns/x509_serial_number_attribute_spec.rb1127spec/models/token_with_iv_spec.rb1128spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb1129spec/presenters/packages/npm/package_presenter_spec.rb1130spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb1131spec/lib/sidebars/groups/super_sidebar_panel_spec.rb1132spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb1133spec/graphql/resolvers/terraform/states_resolver_spec.rb1134spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb1135spec/lib/gitlab/bullet/exclusions_spec.rb1136spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb1137spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb1138spec/rubocop/cop/scalability/file_uploads_spec.rb1139spec/validators/iso8601_date_validator_spec.rb1140spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb1141spec/graphql/types/ci/test_report_summary_type_spec.rb1142spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb1143spec/services/packages/conan/create_package_service_spec.rb1144spec/services/pages_domains/update_service_spec.rb1145spec/rubocop/cop/migration/schedule_async_spec.rb1146spec/services/ci/job_artifacts/delete_service_spec.rb1147spec/rubocop/cop/performance/readlines_each_spec.rb1148spec/graphql/types/design_management_type_spec.rb1149spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb1150spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb1151spec/workers/personal_access_tokens/expired_notification_worker_spec.rb1152spec/workers/create_note_diff_file_worker_spec.rb1153spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb1154spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb1155spec/lib/gitlab/sidekiq_middleware_spec.rb1156spec/presenters/pages_domain_presenter_spec.rb1157spec/lib/gitlab/chat_name_token_spec.rb1158spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb1159spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb1160spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb1161spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb1162spec/lib/gitlab/graphql/present/field_extension_spec.rb1163spec/lib/gitlab/pagination/keyset/request_context_spec.rb1164spec/models/users/project_callout_spec.rb1165spec/lib/gitlab/database/schema_validation/inconsistency_spec.rb1166spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb1167spec/components/layouts/horizontal_section_component_spec.rb1168spec/models/ml/candidate_metric_spec.rb1169spec/lib/gitlab/cross_project_access_spec.rb1170spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb1171spec/lib/gitlab/checks/force_push_spec.rb1172spec/lib/banzai/commit_renderer_spec.rb1173spec/lib/api/helpers/label_helpers_spec.rb1174spec/models/description_version_spec.rb1175spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb1176spec/models/user_mentions/commit_user_mention_spec.rb1177spec/serializers/ci/downloadable_artifact_serializer_spec.rb1178spec/lib/peek/views/rugged_spec.rb1179spec/lib/bitbucket/page_spec.rb1180spec/models/work_items/widgets/notifications_spec.rb1181spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb1182spec/lib/gitlab/metrics/subscribers/action_view_spec.rb1183spec/lib/gitlab/ci/ansi2json/parser_spec.rb1184spec/models/concerns/stepable_spec.rb1185spec/workers/export_csv_worker_spec.rb1186spec/serializers/import/bulk_import_entity_spec.rb1187spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb1188spec/graphql/types/prometheus_alert_type_spec.rb1189spec/lib/gitlab/tab_width_spec.rb1190spec/rubocop/cop/ban_catch_throw_spec.rb1191spec/lib/banzai/pipeline/email_pipeline_spec.rb1192spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb1193spec/lib/banzai/filter_array_spec.rb1194spec/models/concerns/from_except_spec.rb1195spec/lib/api/validations/validators/limit_spec.rb1196spec/lib/api/github/entities_spec.rb1197spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb1198spec/services/product_analytics/build_graph_service_spec.rb1199spec/lib/gitlab/config/entry/unspecified_spec.rb1200spec/validators/cron_validator_spec.rb1201spec/workers/issuable/label_links_destroy_worker_spec.rb1202spec/lib/gitlab/repository_archive_rate_limiter_spec.rb1203spec/lib/gitlab/cluster/puma_worker_killer_initializer_spec.rb1204spec/rubocop/cop/qa/selector_usage_spec.rb1205spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb1206spec/lib/unnested_in_filters/dsl_spec.rb1207spec/lib/gitlab/ci/status/group/factory_spec.rb1208spec/lib/sidebars/user_profile/panel_spec.rb1209spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb1210spec/lib/gitlab/database/transaction_timeout_settings_spec.rb1211spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb1212spec/graphql/types/projects/topic_type_spec.rb1213spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb1214spec/serializers/evidences/evidence_serializer_spec.rb1215spec/graphql/types/access_level_enum_spec.rb1216spec/graphql/types/error_tracking/sentry_error_type_spec.rb1217spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb1218spec/views/errors/omniauth_error.html.haml_spec.rb1219spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb1220spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb1221spec/lib/gitlab/metrics/transaction_spec.rb1222spec/graphql/types/packages/pypi/metadatum_type_spec.rb1223spec/workers/trending_projects_worker_spec.rb1224spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb1225spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb1226spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_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/scripts/lib/glfm/update_example_snapshots_spec.rb spec/models/note_spec.rb spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb spec/finders/deployments_finder_spec.rb spec/services/issues/move_service_spec.rb spec/lib/gitlab/auth/o_auth/user_spec.rb spec/policies/wiki_page_policy_spec.rb spec/services/ci/unlock_artifacts_service_spec.rb spec/lib/gitlab/url_blocker_spec.rb spec/presenters/project_presenter_spec.rb spec/finders/merge_request_target_project_finder_spec.rb spec/finders/branches_finder_spec.rb spec/models/gpg_key_spec.rb spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb spec/services/spam/spam_action_service_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_spec.rb spec/models/trending_project_spec.rb spec/lib/gitlab/utils/usage_data_spec.rb spec/services/work_items/create_service_spec.rb spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb spec/finders/group_descendants_finder_spec.rb spec/services/members/create_service_spec.rb spec/workers/packages/debian/process_changes_worker_spec.rb spec/policies/project_member_policy_spec.rb spec/models/operations/feature_flag_spec.rb spec/lib/gitlab/ci/runner_upgrade_check_spec.rb spec/services/merge_requests/request_review_service_spec.rb spec/services/auto_merge_service_spec.rb spec/lib/gitlab/github_import/importer/releases_importer_spec.rb spec/models/application_record_spec.rb spec/uploaders/pages/deployment_uploader_spec.rb spec/services/metrics/dashboard/custom_dashboard_service_spec.rb spec/lib/gitlab/slash_commands/deploy_spec.rb spec/finders/user_recent_events_finder_spec.rb spec/rubocop/code_reuse_helpers_spec.rb spec/lib/gitlab/email/receiver_spec.rb spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb spec/tasks/gitlab/user_management_rake_spec.rb spec/lib/gitlab/sql/pattern_spec.rb spec/lib/gitlab/auth/saml/user_spec.rb spec/services/files/delete_service_spec.rb spec/models/plan_limits_spec.rb spec/lib/gitlab/github_import/representation/diff_note_spec.rb spec/services/environments/schedule_to_delete_review_apps_service_spec.rb spec/services/google_cloud/generate_pipeline_service_spec.rb spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb spec/services/projects/import_export/relation_export_service_spec.rb spec/lib/gitlab/audit/auditor_spec.rb spec/lib/google_api/cloud_platform/client_spec.rb spec/lib/grafana/client_spec.rb spec/tasks/gitlab/artifacts/migrate_rake_spec.rb spec/presenters/snippet_blob_presenter_spec.rb spec/workers/container_registry/migration/observer_worker_spec.rb spec/services/issues/reorder_service_spec.rb spec/views/layouts/header/_new_dropdown.haml_spec.rb spec/services/metrics/dashboard/system_dashboard_service_spec.rb spec/models/concerns/cacheable_attributes_spec.rb spec/services/ci/create_pipeline_service/rate_limit_spec.rb spec/services/ci/parse_dotenv_artifact_service_spec.rb spec/lib/gitlab/diff/file_collection/compare_spec.rb spec/lib/gitlab/ci/build/rules_spec.rb spec/lib/gitlab/spamcheck/client_spec.rb spec/lib/gitlab/tracking_spec.rb spec/finders/protected_branches_finder_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb spec/lib/gitlab/ci/status/build/play_spec.rb spec/lib/gitlab/api_authentication/token_resolver_spec.rb spec/lib/banzai/filter/upload_link_filter_spec.rb spec/services/users/set_status_service_spec.rb spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb spec/policies/upload_policy_spec.rb spec/models/clusters/providers/gcp_spec.rb spec/services/ci/build_report_result_service_spec.rb spec/workers/projects/import_export/parallel_project_export_worker_spec.rb spec/services/git/wiki_push_service/change_spec.rb spec/services/users/assigned_issues_count_service_spec.rb spec/lib/gitlab/process_management_spec.rb spec/lib/gitlab/database/query_analyzer_spec.rb spec/workers/repository_update_remote_mirror_worker_spec.rb spec/lib/gitlab/slash_commands/issue_new_spec.rb spec/finders/namespaces/projects_finder_spec.rb spec/finders/clusters_finder_spec.rb spec/lib/gitlab/repository_url_builder_spec.rb spec/services/ci/create_pipeline_service/parallel_spec.rb spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb spec/services/ci/delete_objects_service_spec.rb spec/graphql/mutations/boards/issues/issue_move_list_spec.rb spec/services/work_items/parent_links/destroy_service_spec.rb spec/services/markdown_content_rewriter_service_spec.rb spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb spec/models/issue_assignee_spec.rb spec/lib/gitlab/jira_import/issue_serializer_spec.rb spec/graphql/resolvers/merge_requests_count_resolver_spec.rb spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb spec/lib/gitlab/slash_commands/issue_search_spec.rb spec/lib/gitlab/cache/client_spec.rb spec/lib/gitlab/query_limiting/middleware_spec.rb spec/lib/gitlab/ci/pipeline/chain/build_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/services/ci/pipelines/add_job_service_spec.rb spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb spec/lib/banzai/reference_parser/milestone_parser_spec.rb spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb spec/workers/rebase_worker_spec.rb spec/lib/gitlab/import_export/remote_stream_upload_spec.rb spec/services/authorized_project_update/project_recalculate_service_spec.rb spec/rubocop/migration_helpers_spec.rb spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb spec/uploaders/records_uploads_spec.rb spec/workers/stuck_export_jobs_worker_spec.rb spec/lib/constraints/project_url_constrainer_spec.rb spec/lib/gitlab/import_export/attribute_cleaner_spec.rb spec/workers/merge_requests/handle_assignees_change_worker_spec.rb spec/lib/gitlab/database/reindexing/index_selection_spec.rb spec/support_specs/helpers/packages/npm_spec.rb spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb spec/graphql/mutations/merge_requests/set_subscription_spec.rb spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb spec/services/work_items/widgets/labels_service/update_service_spec.rb spec/services/users/unban_service_spec.rb spec/models/group_deploy_token_spec.rb spec/finders/lfs_pointers_finder_spec.rb spec/lib/gitlab/word_diff/parser_spec.rb spec/lib/gitlab/utils/email_spec.rb spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb spec/lib/gitlab/middleware/basic_health_check_spec.rb spec/services/packages/composer/composer_json_service_spec.rb spec/models/concerns/batch_destroy_dependent_associations_spec.rb spec/models/concerns/x509_serial_number_attribute_spec.rb spec/models/token_with_iv_spec.rb spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb spec/presenters/packages/npm/package_presenter_spec.rb spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb spec/lib/sidebars/groups/super_sidebar_panel_spec.rb spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb spec/graphql/resolvers/terraform/states_resolver_spec.rb spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb spec/lib/gitlab/bullet/exclusions_spec.rb spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb spec/rubocop/cop/scalability/file_uploads_spec.rb spec/validators/iso8601_date_validator_spec.rb spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb spec/graphql/types/ci/test_report_summary_type_spec.rb spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb spec/services/packages/conan/create_package_service_spec.rb spec/services/pages_domains/update_service_spec.rb spec/rubocop/cop/migration/schedule_async_spec.rb spec/services/ci/job_artifacts/delete_service_spec.rb spec/rubocop/cop/performance/readlines_each_spec.rb spec/graphql/types/design_management_type_spec.rb spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb spec/workers/personal_access_tokens/expired_notification_worker_spec.rb spec/workers/create_note_diff_file_worker_spec.rb spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb spec/lib/gitlab/sidekiq_middleware_spec.rb spec/presenters/pages_domain_presenter_spec.rb spec/lib/gitlab/chat_name_token_spec.rb spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb spec/lib/gitlab/graphql/present/field_extension_spec.rb spec/lib/gitlab/pagination/keyset/request_context_spec.rb spec/models/users/project_callout_spec.rb spec/lib/gitlab/database/schema_validation/inconsistency_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb spec/components/layouts/horizontal_section_component_spec.rb spec/models/ml/candidate_metric_spec.rb spec/lib/gitlab/cross_project_access_spec.rb spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb spec/lib/gitlab/checks/force_push_spec.rb spec/lib/banzai/commit_renderer_spec.rb spec/lib/api/helpers/label_helpers_spec.rb spec/models/description_version_spec.rb spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb spec/models/user_mentions/commit_user_mention_spec.rb spec/serializers/ci/downloadable_artifact_serializer_spec.rb spec/lib/peek/views/rugged_spec.rb spec/lib/bitbucket/page_spec.rb spec/models/work_items/widgets/notifications_spec.rb spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb spec/lib/gitlab/metrics/subscribers/action_view_spec.rb spec/lib/gitlab/ci/ansi2json/parser_spec.rb spec/models/concerns/stepable_spec.rb spec/workers/export_csv_worker_spec.rb spec/serializers/import/bulk_import_entity_spec.rb spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb spec/graphql/types/prometheus_alert_type_spec.rb spec/lib/gitlab/tab_width_spec.rb spec/rubocop/cop/ban_catch_throw_spec.rb spec/lib/banzai/pipeline/email_pipeline_spec.rb spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb spec/lib/banzai/filter_array_spec.rb spec/models/concerns/from_except_spec.rb spec/lib/api/validations/validators/limit_spec.rb spec/lib/api/github/entities_spec.rb spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb spec/services/product_analytics/build_graph_service_spec.rb spec/lib/gitlab/config/entry/unspecified_spec.rb spec/validators/cron_validator_spec.rb spec/workers/issuable/label_links_destroy_worker_spec.rb spec/lib/gitlab/repository_archive_rate_limiter_spec.rb spec/lib/gitlab/cluster/puma_worker_killer_initializer_spec.rb spec/rubocop/cop/qa/selector_usage_spec.rb spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb spec/lib/unnested_in_filters/dsl_spec.rb spec/lib/gitlab/ci/status/group/factory_spec.rb spec/lib/sidebars/user_profile/panel_spec.rb spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb spec/lib/gitlab/database/transaction_timeout_settings_spec.rb spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb spec/graphql/types/projects/topic_type_spec.rb spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb spec/serializers/evidences/evidence_serializer_spec.rb spec/graphql/types/access_level_enum_spec.rb spec/graphql/types/error_tracking/sentry_error_type_spec.rb spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb spec/views/errors/omniauth_error.html.haml_spec.rb spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb spec/lib/gitlab/metrics/transaction_spec.rb spec/graphql/types/packages/pypi/metadatum_type_spec.rb spec/workers/trending_projects_worker_spec.rb spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_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.517497239 seconds1234Glfm::UpdateExampleSnapshots#process1235 # order random1236 glfm_example_status.yml1237 when skip_update_example_snapshots entry is truthy1238 still writes the example to examples_index.yml1239 still writes the example to markdown.yml1240 when any other skip_update_example_snapshot_* is also truthy1241 raises an error1242 writing markdown.yml1243 writes the correct content1244 with full processing of static and WYSIWYG HTML1245 manually-curated input specification config files1246 can be empty1247 writing html.yml and prosemirror_json.yml1248 writes the correct content1249 writing examples_index.yml1250 writes the correct content1251 error handling when manually-curated input specification config files contain invalid example names:1252 for glfm_example_status.yml1253 raises error1254 for glfm_example_metadata.yml1255 raises error1256 for glfm_example_normalizations.yml1257 raises error1258Note1259 associations1260 is expected to belong to project required: false1261 is expected to belong to noteable required: false1262 is expected to belong to author class_name => User required: false1263 is expected to have many todos1264 is expected to belong to review required: false inverse_of => notes1265 modules1266 is expected to includes the Participable module1267 is expected to includes the Mentionable module1268 is expected to includes the Awardable module1269 is expected to includes the Sortable module1270 default values1271 is expected not to be system1272 validation1273 is expected to validate that the length of :note is at most 10000001274 is expected to validate that :note cannot be empty/falsy1275 is expected to validate that :project cannot be empty/falsy1276 when note is on commit1277 is expected to validate that :commit_id cannot be empty/falsy1278 is expected not to validate that :noteable_id cannot be empty/falsy1279 when note is not on commit1280 is expected not to validate that :commit_id cannot be empty/falsy1281 is expected to validate that :noteable_id cannot be empty/falsy1282 when noteable and note project differ1283 is expected to be invalid1284 when noteable and note project are the same1285 is expected to be valid1286 when project is missing for a project related note1287 is expected to be invalid1288 when noteable is a personal snippet1289 is valid without project1290 max notes limit1291 when creating a system note1292 is expected to be valid1293 when creating a user note1294 is expected not to be valid1295 when updating an existing note on a noteable that already exceeds the limit1296 is expected to be valid1297 created_at in the past1298 when creating a note not too much in the past1299 is expected to be valid1300 when creating a note too much in the past1301 is expected not to be valid1302 confidentiality1303 for existing public note1304 is not possible to change the note to confidential1305 is possible to change confidentiality from nil to false1306 for existing confidential note1307 is not possible to change the note to public1308 for a new note1309 allows to create a confidential note for an issue1310 when noteable is not allowed to have confidential notes1311 can not be set confidential1312 when note type is not allowed to be confidential1313 can not be set confidential1314 when the note is a discussion note1315 is expected to be valid1316 when replying to a note1317 when the note is reply to a confidential note1318 is expected to be valid1319 when the note is reply to a public note1320 can not be set confidential1321 when reply note is public but discussion is confidential1322 can not be set confidential1323 callbacks1324 #keep_around_commit1325 calls #keep_around_commit normally1326 skips #keep_around_commit if 'skip_keep_around_commits' is true1327 skips #keep_around_commit if 'importing' is true1328 #notify_after_create1329 calls #after_note_created on the noteable1330 #notify_after_destroy1331 calls #after_note_destroyed on the noteable1332 does not error if noteable is nil1333 sets internal flag1334 when confidential is `true`1335 is expected to equal true1336 when confidential is `false`1337 is expected to equal false1338 when confidential is `nil`1339 is expected to equal false1340 Commit notes1341 is accessible through #noteable1342 saves a valid note1343 is recognized by #for_commit?1344 keeps the commit around1345 does not generate N+1 queries for participants1346 authorization1347 read1348 is expected to be falsey1349 is expected to be truthy1350 is expected to be falsey1351 write1352 is expected to be falsey1353 is expected to be truthy1354 is expected to be falsey1355 admin1356 is expected to be falsey1357 is expected to be truthy1358 is expected to be falsey1359 behaves like an editable mentionable1360 creates new cross-reference notes when the mentionable text is edited1361 behaves like a mentionable1362 generates a descriptive back-reference1363 extracts references from its reference property1364 creates cross-reference notes1365 when there are cached markdown fields1366 sends in cached markdown fields when appropriate1367 when there are cached markdown fields1368 refreshes markdown cache if necessary1369 when the markdown cache is stale1370 persists the refreshed cache so that it does not have to be refreshed every time1371 #all_references1372 reads the rendered note body from the cache1373 editable?1374 returns true1375 returns false1376 noteable_author?1377 when note is on commit1378 if user is the noteable author1379 returns true1380 if user is not the noteable author1381 returns false1382 when note is on issue1383 if user is the noteable author1384 returns true1385 if user is not the noteable author1386 returns false1387 last_edited_at1388 with last_edited_at1389 returns last_edited_at1390 without last_edited_at1391 returns updated_at1392 edited?1393 with updated_by1394 returns true1395 without updated_by1396 returns false1397 #confidential?1398 when note is not confidential1399 is false when a noteable is not confidential1400 is false when noteable can't be confidential1401 when include_noteable is set to true1402 is true when a noteable is confidential1403 when include_noteable is not set to true1404 is false when a noteable is confidential1405 when note is confidential1406 is true even when a noteable is not confidential1407 #system_note_visible_for?1408 when project is public1409 behaves like users with note access1410 returns true1411 when group is private1412 returns visible but not readable for non-member user1413 returns visible but not readable for a nil user1414 behaves like users with note access1415 returns true1416 #system_note_viewable_by?(user)1417 when system_note_metadata is not present1418 returns true1419 system_note_metadata isn't of type 'branch' or 'contact'1420 returns true1421 system_note_metadata is of type 'branch'1422 user doesn't have :download_code ability1423 returns false1424 user has the :download_code ability1425 returns true1426 system_note_metadata is of type 'contact'1427 user doesn't have :read_crm_contact ability1428 returns false1429 user has the :read_crm_contact ability1430 returns true1431 system_note_visible_for?1432 when there is one reference in note1433 behaves like checks references1434 returns false1435 returns true1436 returns true if user visible reference count set1437 returns false if user visible reference count set but does not match total reference count1438 returns false if ref count is 01439 when there is a reference to a label1440 behaves like checks references1441 returns false1442 returns true1443 returns true if user visible reference count set1444 returns false if user visible reference count set but does not match total reference count1445 returns false if ref count is 01446 when there are two references in note1447 behaves like checks references1448 returns false1449 returns true1450 returns true if user visible reference count set1451 returns false if user visible reference count set but does not match total reference count1452 returns false if ref count is 01453 when there is a private issue and user reference1454 behaves like checks references1455 returns false1456 returns true1457 returns true if user visible reference count set1458 returns false if user visible reference count set but does not match total reference count1459 returns false if ref count is 01460 when there is a publicly visible user reference1461 returns true for other users1462 returns true for anonymous users1463 #system_note_with_references?1464 falsey for user-generated notes1465 when the note might contain cross references1466 with commit1467 delegates to the cross-reference regex1468 with cross_reference1469 delegates to the cross-reference regex1470 with closed1471 delegates to the cross-reference regex1472 with duplicate1473 delegates to the cross-reference regex1474 with moved1475 delegates to the cross-reference regex1476 with merge1477 delegates to the cross-reference regex1478 with label1479 delegates to the cross-reference regex1480 with milestone1481 delegates to the cross-reference regex1482 with relate1483 delegates to the cross-reference regex1484 with unrelate1485 delegates to the cross-reference regex1486 with cloned1487 delegates to the cross-reference regex1488 with epic_issue_added1489 delegates to the cross-reference regex1490 with issue_added_to_epic1491 delegates to the cross-reference regex1492 with epic_issue_removed1493 delegates to the cross-reference regex1494 with issue_removed_from_epic1495 delegates to the cross-reference regex1496 with epic_issue_moved1497 delegates to the cross-reference regex1498 with issue_changed_epic1499 delegates to the cross-reference regex1500 with relate_epic1501 delegates to the cross-reference regex1502 with unrelate_epic1503 delegates to the cross-reference regex1504 with iteration1505 delegates to the cross-reference regex1506 when the note cannot contain cross references1507 scan for a `mentioned in` prefix1508 when system note metadata is not present1509 delegates to the system note service1510 with a system note1511 with :label action1512 is expected to be falsy1513 behaves like system_note_metadata includes note action1514 delegates to the cross-reference regex1515 with cross reference label note1516 is expected to be truthy1517 with :milestone action1518 is expected to be falsy1519 behaves like system_note_metadata includes note action1520 delegates to the cross-reference regex1521 with cross reference milestone note1522 is expected to be truthy1523 clear_blank_line_code!1524 clears a blank line code before validation1525 #participants1526 includes the note author1527 #start_of_discussion?1528 returns true when note is the start of a discussion1529 returns false when note is a reply1530 .find_discussion1531 returns a discussion with multiple notes1532 .grouped_diff_discussions1533 active diff discussions1534 includes active discussions1535 doesn't include outdated discussions1536 groups the discussions by line code1537 with image discussions1538 groups image discussions by file identifier1539 groups text discussions by line code1540 diff discussions for older diff refs1541 for diff refs a discussion was created at1542 includes discussions that were created then1543 groups the discussions by original line code1544 for diff refs a discussion was last active at1545 includes discussions that were last active1546 groups the discussions by line code1547 .simple_sorts1548 does not contain name sorts1549 .cherry_picked_merge_requests1550 returns merge requests that match the given merge commit1551 #for_work_item?1552 returns true for a work item1553 returns false for an issue1554 #for_project_snippet?1555 returns true for a project snippet note1556 returns false for a personal snippet note1557 #for_personal_snippet?1558 returns false for a project snippet note1559 returns true for a personal snippet note1560 #for_design1561 is true when the noteable is a design1562 #to_ability_name1563 returns note1564 #noteable_ability_name1565 returns snippet for a project snippet note1566 returns snippet for a personal snippet note1567 returns merge_request for an MR note1568 returns issue for an issue note1569 returns commit for a commit note1570 returns alert_management_alert for an alert note1571 #cache_markdown_field1572 note for a project snippet1573 skips project check1574 note for a personal snippet1575 does not skip project check1576 #can_be_discussion_note?1577 for a note on a merge request1578 returns true1579 for a note on an issue1580 returns true1581 for a note on a commit1582 returns true1583 for a note on a snippet1584 returns true1585 for a diff note on merge request1586 returns false1587 for a diff note on commit1588 returns false1589 for a discussion note1590 returns false1591 #discussion_class1592 when the note is displayed out of context1593 returns OutOfContextDiscussion1594 when the note is displayed in the original context1595 returns IndividualNoteDiscussion1596 #discussion_id1597 when it is newly created1598 has a discussion id1599 when it didn't store a discussion id before1600 has a discussion id1601 when the note is displayed out of context1602 overrides the discussion id1603 #to_discussion1604 returns a discussion with just this note1605 #discussion1606 when the note is part of a discussion1607 returns the discussion this note is in1608 when the note is not part of a discussion1609 returns a discussion with just this note1610 #part_of_discussion?1611 for a regular note1612 returns false1613 for a diff note1614 returns true1615 for a discussion note1616 returns true1617 #in_reply_to?1618 for a note1619 when part of a discussion1620 checks if the note is in reply to the other discussion1621 when not part of a discussion1622 checks if the note is in reply to the other noteable1623 for a discussion1624 when part of the same discussion1625 returns true1626 when not part of the same discussion1627 returns false1628 for a noteable1629 when a comment on the same noteable1630 returns true1631 when not a comment on the same noteable1632 returns false1633 #references1634 when part of a discussion1635 references all earlier notes in the discussion1636 when not part of a discussion1637 returns the noteable1638 expiring ETag cache1639 expires cache for note's issue when note is saved1640 expires cache for note's issue when note is destroyed1641 when issuable etag caching is disabled1642 does not store cache key1643 for merge requests1644 when adding a note to the MR1645 expires the MR note etag cache1646 when adding a note to a commit on the MR1647 expires the MR note etag cache1648 #with_notes_filter1649 when notes filter is nil1650 is expected to include #<Note id: 170, note: [FILTERED], noteable_type: "Issue", author_id: 182, created_at: "2023-04-19 09:47:51.703603718 +0000", updated_at: "2023-04-19 09:47:51.703603718 +0000", project_id: 130, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 79, system: false, st_diff: nil, updated_by_id: 182, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "38ec3eb10f013d9682f963a5f357bfebdef0bd5d", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 3...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 171, note: [FILTERED], noteable_type: "Issue", author_id: 183, created_at: "2023-04-19 09:47:52.180862482 +0000", updated_at: "2023-04-19 09:47:52.180862482 +0000", project_id: 131, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 80, system: true, st_diff: nil, updated_by_id: 183, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "ac722597a802d37c248179cc4a3ce6d6e7f92c61", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1651 when notes filter is set to all notes1652 is expected to include #<Note id: 172, note: [FILTERED], noteable_type: "Issue", author_id: 184, created_at: "2023-04-19 09:47:52.796923889 +0000", updated_at: "2023-04-19 09:47:52.796923889 +0000", project_id: 132, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 81, system: false, st_diff: nil, updated_by_id: 184, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "a100c74b0e34bb969020fc2e63e27783b8f4ca2c", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 173, note: [FILTERED], noteable_type: "Issue", author_id: 185, created_at: "2023-04-19 09:47:53.274236174 +0000", updated_at: "2023-04-19 09:47:53.274236174 +0000", project_id: 133, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 82, system: true, st_diff: nil, updated_by_id: 185, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "44f3d79492cf1860aa05a5c391c9b0277e66c9c1", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1653 when notes filter is set to only comments1654 is expected to include #<Note id: 174, note: [FILTERED], noteable_type: "Issue", author_id: 186, created_at: "2023-04-19 09:47:53.807726928 +0000", updated_at: "2023-04-19 09:47:53.807726928 +0000", project_id: 134, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 83, system: false, st_diff: nil, updated_by_id: 186, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "549a025b95ce3a433cbf5b7d2302c446e7ec35f2", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1655 is expected not to include #<Note id: 177, note: [FILTERED], noteable_type: "Issue", author_id: 189, created_at: "2023-04-19 09:47:55.411732587 +0000", updated_at: "2023-04-19 09:47:55.411732587 +0000", project_id: 137, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 86, system: true, st_diff: nil, updated_by_id: 189, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "2dce94ae51bb0c5a125b4f1c5845a89383cce56c", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1656 #parent1657 returns project for project notes1658 returns nil for personal snippet note1659 scopes1660 .for_note_or_capitalized_note1661 returns the expected matching note1662 returns the expected capitalized note1663 does not support pattern matching1664 .like_note_or_capitalized_note1665 returns the expected matching note1666 returns the expected capitalized note1667 supports pattern matching1668 .with_suggestions1669 returns the correct note1670 .inc_relations_for_view1671 when noteable can not have diffs1672 does not include additional associations1673 when noteable is not set1674 includes additional diff associations1675 when noteable can have diffs1676 includes additional diff associations1677 .without_hidden1678 when a note with a banned author exists1679 when the :hidden_notes feature is disabled1680 is expected to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 200, created_at: "2023-04-19 09:48:01.709666240 +0000", updated_at: "2023-04-19 09:48:01.709666240 +0000", project_id: 146, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 93, system: false, st_diff: nil, updated_by_id: 200, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "6889a38cd4550458ab25015837e5aad16a079c0d", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 193, created_at: "2023-04-19 09:47:56.689944692 +0000", updated_at: "2023-04-19 09:47:56.689944692 +0000", project_id: 139, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 88, system: false, st_diff: nil, updated_by_id: 193, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "759055a5ef479db3e5222cc1faa3d2ba66b45291", note_html: "<p data-sourcepos=\"1:1-1:8\" dir=\"auto\">Test 345</p...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1681 when the :hidden_notes feature is enabled1682 is expected not to include #<Note id: 187, note: [FILTERED], noteable_type: "Issue", author_id: 200, created_at: "2023-04-19 09:48:01.709666240 +0000", updated_at: "2023-04-19 09:48:01.709666240 +0000", project_id: 146, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 93, system: false, st_diff: nil, updated_by_id: 200, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "6889a38cd4550458ab25015837e5aad16a079c0d", note_html: "<p data-sourcepos=\"1:1-1:12\" dir=\"auto\">My title 4...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1683 is expected to include #<Note id: 180, note: [FILTERED], noteable_type: "Issue", author_id: 193, created_at: "2023-04-19 09:47:56.689944692 +0000", updated_at: "2023-04-19 09:47:56.689944692 +0000", project_id: 139, attachment: nil, line_code: nil, commit_id: nil, noteable_id: 88, system: false, st_diff: nil, updated_by_id: 193, type: nil, position: nil, original_position: nil, resolved_at: nil, resolved_by_id: nil, discussion_id: "759055a5ef479db3e5222cc1faa3d2ba66b45291", note_html: "<p data-sourcepos=\"1:1-1:8\" dir=\"auto\">Test 345</p...", cached_markdown_version: 2097152, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1684 banzai_render_context1685 when noteable is a merge request1686 sets the label_url_method in the context1687 when noteable is an issue1688 sets the label_url_method in the context1689 when noteable is a personal snippet1690 sets the parent user in the context1691 #parent_user1692 returns the author of a personal snippet1693 returns nil for project snippet1694 returns nil when noteable is not a snippet1695 #skip_notification?1696 when there is no review1697 is expected to be falsey1698 when the review exists1699 is expected to be truthy1700 #attachment1701 is cleaned up correctly when project is destroyed1702 #post_processed_cache_key1703 returns cache key and author cache key by default1704 when note has no author1705 returns cache key only1706 when note has redacted_note_html1707 returns cache key with redacted_note_html sha1708 #commands_changes1709 only returns allowed keys1710 #bump_updated_at1711 sets updated_at to the current timestamp1712 with legacy edited note1713 copies updated_at to last_edited_at before bumping the timestamp1714 #note1715 behaves like note that replaces task for checklist item in body text1716 when note is not a system note1717 is expected to eq "marked the task **task 1** as completed"1718 when note is a system note1719 when note noteable_type is not Issue1720 is expected to eq "marked the task **task 1** as completed"1721 when note noteable_type is Issue1722 is expected to eq "marked the checklist item **task 1** as completed"1723 context when note and cache are null (happens in bulk insert)1724 is expected to be in [nil, ""]1725 behaves like note that replaces task for checklist item in body text1726 when note is not a system note1727 is expected to eq "marked the task **task 1** as incomplete"1728 when note is a system note1729 when note noteable_type is not Issue1730 is expected to eq "marked the task **task 1** as incomplete"1731 when note noteable_type is Issue1732 is expected to eq "marked the checklist item **task 1** as incomplete"1733 context when note and cache are null (happens in bulk insert)1734 is expected to be in [nil, ""]1735 #note_html1736 behaves like note that replaces task for checklist item in body text1737 when note is not a system note1738 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1739 when note is a system note1740 when note noteable_type is not Issue1741 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1742 when note noteable_type is Issue1743 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as completed</p>"1744 context when note and cache are null (happens in bulk insert)1745 is expected to be in [nil, ""]1746 behaves like note that replaces task for checklist item in body text1747 when note is not a system note1748 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1749 when note is a system note1750 when note noteable_type is not Issue1751 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1752 when note noteable_type is Issue1753 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as incomplete</p>"1754 context when note and cache are null (happens in bulk insert)1755 is expected to be in [nil, ""]1756 #issuable_ability_name1757 when not confidential note1758 is expected to eq :read_note1759 when confidential note1760 is expected to eq :read_internal_note1761 #exportable_record?1762 when not a system note1763 is expected to be truthy1764 with system note1765 returns `false` when the user cannot read the note1766 when user can read the note1767 is expected to be truthy1768Sidebars::Projects::Menus::MergeRequestsMenu1769 behaves like serializable as super_sidebar_menu_args1770 returns hash with provided attributes1771 returns hash with an item_id1772 #render?1773 when repository is not present1774 returns false1775 when repository is present1776 when user can read merge requests1777 returns true1778 when user cannot read merge requests1779 returns false1780 #pill_count1781 returns zero when there are no open merge requests1782 memoizes the query1783 when there are open merge requests1784 returns the number of open merge requests1785 formatting1786 returns truncated digits for count value over 10001787DeploymentsFinder1788 validation1789 when both updated_at and finished_at filters are specified1790 raises an error1791 when updated_at filter and id sorting1792 raises an error1793 when finished_at filter and id sorting1794 raises an error1795 when running status filter and finished_at sorting1796 raises an error1797 when finished_at filter with failed status filter1798 raises an error1799 when environment filter with non-project scope1800 raises an error1801 when status filter with mixed finished and upcoming statuses1802 raises an error1803 #execute1804 when project or group is missing1805 returns nothing1806 at project scope1807 filtering1808 when updated_at filters are specified1809 returns deployments with matched updated_at1810 when the environment name is specified1811 returns deployments for the given environment1812 when the environment ID is specified1813 returns deployments for the given environment1814 when the deployment status is specified1815 returns deployments for the given environment1816 when using an invalid deployment status1817 raises ArgumentError1818 ordering1819 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]1820 returns the deployments ordered1821 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]1822 returns the deployments ordered1823 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]1824 returns the deployments ordered1825 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]1826 returns the deployments ordered1827 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]1828 returns the deployments ordered1829 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]1830 returns the deployments ordered1831 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]1832 returns the deployments ordered1833 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]1834 returns the deployments ordered1835 order_by: "updated_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError1836 returns the deployments ordered1837 order_by: "updated_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError1838 returns the deployments ordered1839 order_by: "finished_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError1840 returns the deployments ordered1841 order_by: "finished_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError1842 returns the deployments ordered1843 order_by: "invalid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]1844 returns the deployments ordered1845 order_by: "iid", sort: "err", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]1846 returns the deployments ordered1847 transform `created_at` sorting to `id` sorting1848 sorts by only one column1849 sorts by `id`1850 transform `iid` sorting to `id` sorting1851 sorts by only one column1852 sorts by `id`1853 tie-breaker for `updated_at` sorting1854 sorts by two columns1855 adds `id` sorting as the second order column1856 uses the `id ASC` as tie-breaker when ordering1857 when sort direction is desc1858 uses the `id DESC` as tie-breaker when ordering1859 enforce sorting to `updated_at` sorting1860 raises an error1861 when deployments_raise_updated_at_inefficient_error is disabled1862 sorts by only one column1863 sorts by `updated_at`1864 when filtering by finished time1865 when filtering by finished_after and finished_before1866 is expected to contain exactly #<Deployment id: 59, iid: 1, project_id: 168, environment_id: 59, ref: "master", tag: false, sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", user_id: 225, deployable_type: "CommitStatus", created_at: "2023-04-19 09:51:59.095218018 +0000", updated_at: "2023-04-19 09:51:59.095218018 +0000", on_stop: nil, status: "success", finished_at: "2023-04-17 09:51:58.190418814 +0000", cluster_id: nil, deployable_id: 59, archived: false>1867 when the finished_before parameter is missing1868 is expected to contain exactly #<Deployment id: 62, iid: 1, project_id: 168, environment_id: 62, ref: "master", tag: false, sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", user_id: 225, deployable_type: "CommitStatus", created_at: "2023-04-19 09:52:02.072771821 +0000", updated_at: "2023-04-19 09:52:02.072771821 +0000", on_stop: nil, status: "success", finished_at: "2023-04-17 09:52:01.114340019 +0000", cluster_id: nil, deployable_id: 62, archived: false> and #<Deployment id: 64, iid: 3, project_id: 168, environment_id: 64, ref: "master", tag: false, sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", user_id: 225, deployable_type: "CommitStatus", created_at: "2023-04-19 09:52:03.958532612 +0000", updated_at: "2023-04-19 09:52:03.958532612 +0000", on_stop: nil, status: "success", finished_at: "2023-04-19 04:52:03.043986281 +0000", cluster_id: nil, deployable_id: 64, archived: false>1869 when finished_after is missing1870 is expected to contain exactly #<Deployment id: 66, iid: 2, project_id: 168, environment_id: 66, ref: "master", tag: false, sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", user_id: 225, deployable_type: "CommitStatus", created_at: "2023-04-19 09:52:05.767446184 +0000", updated_at: "2023-04-19 09:52:05.767446184 +0000", on_stop: nil, status: "success", finished_at: "2023-04-15 09:52:04.923257525 +0000", cluster_id: nil, deployable_id: 66, archived: false>1871 at group scope1872 avoids N+1 queries1873 ordering1874 order_by: "created_at", sort: "asc"1875 returns the deployments unordered1876 order_by: "created_at", sort: "desc"1877 returns the deployments unordered1878 order_by: "id", sort: "asc"1879 returns the deployments unordered1880 order_by: "id", sort: "desc"1881 returns the deployments unordered1882 order_by: "iid", sort: "asc"1883 returns the deployments unordered1884 order_by: "iid", sort: "desc"1885 returns the deployments unordered1886 order_by: "ref", sort: "asc"1887 returns the deployments unordered1888 order_by: "ref", sort: "desc"1889 returns the deployments unordered1890 order_by: "invalid", sort: "asc"1891 returns the deployments unordered1892 order_by: "iid", sort: "err"1893 returns the deployments unordered1894Issues::MoveService1895 #execute1896 when issue creation fails1897 raises a move error1898 issue movable1899 creates resource state event1900 generic issue1901 creates a new issue in a new project1902 copies issue title1903 copies issue description1904 adds system note to old issue at the end1905 adds system note to new issue at the end1906 closes old issue1907 persists new issue1908 persists all changes1909 preserves author1910 creates a new internal id for issue1911 marks issue as moved1912 marks issue as closed1913 preserves create time1914 issue with award emoji1915 copies the award emoji1916 issue with milestone1917 does not create extra milestone events1918 issue with due date1919 does not create extra system notes1920 issue with assignee1921 preserves assignee with access to the new issue1922 ignores assignee without access to the new issue1923 issue with contacts1924 preserves contacts1925 when moving to another root group1926 does not preserve contacts1927 moving to same project1928 raises error1929 project issue hooks1930 executes project issue hooks for both projects1931 issue with notes1932 copies existing notes in order1933 issue with a design1934 calls CopyDesignCollection::QueueService1935 logs if QueueService returns an error1936 copies the design and its notes1937 issue relative position1938 behaves like copy or reset relative position1939 when moved to a project within same group hierarchy1940 does not reset the relative_position1941 when moved to a project in a different group hierarchy1942 does reset the relative_position1943 issue with escalation status1944 keeps the escalation status1945 move permissions1946 user is reporter in both projects1947 is expected not to raise Exception1948 user is reporter only in new project1949 is expected to raise StandardError with message matching /permissions/1950 user is reporter only in old project1951 is expected to raise StandardError with message matching /permissions/1952 user is reporter in one project and guest in another1953 is expected to raise StandardError with message matching /permissions/1954 issue has already been moved1955 is expected to raise StandardError with message matching /permissions/1956 issue is not persisted1957 is expected to raise StandardError with message matching /permissions/1958 #rewrite_related_issues1959 multiple related issues1960 when admin mode is enabled1961 moves all related issues and retains permissions1962 when admin mode is disabled1963 moves all related issues and retains permissions1964 updating sent notifications1965 when issue is from service desk1966 updates moved issue sent notifications1967 does not update other issues sent notifications1968 when issue is not from service desk1969 does not update sent notifications1970 copying email participants1971 copies moved issue email participants1972Gitlab::Auth::OAuth::User1973 .find_by_uid_and_provider1974 retrieves the correct user1975 #persisted?1976 finds an existing user based on uid and provider (facebook)1977 returns false if user is not found in database1978 #save1979 when account exists on server1980 does not mark the user as external1981 signup1982 marks user as having password_automatically_set1983 when signup is disabled1984 creates the user1985 does not repeat the default user password1986 has the password length within specified range1987 when user confirmation email is enabled1988 creates and confirms the user anyway1989 when the current minimum password length is different from the default minimum password length1990 creates the user1991 with auto_link_user disabled (default)1992 provider is marked as external1993 marks user as external1994 provider was external, now has been removed1995 does not mark external user as internal1996 provider is not external1997 when adding a new OAuth identity1998 does not promote an external user to internal1999 with new allow_single_sign_on enabled syntax2000 creates a user from Omniauth2001 with old allow_single_sign_on enabled syntax2002 creates a user from Omniauth2003 with new allow_single_sign_on disabled syntax2004 throws an error2005 with old allow_single_sign_on disabled (Default)2006 throws an error2007 with auto_link_user enabled for a different provider2008 and a current GitLab user with a matching email2009 adds the OmniAuth identity to the GitLab user account2010 and no current GitLab user with a matching email2011 provider is marked as external2012 marks user as external2013 provider was external, now has been removed2014 does not mark external user as internal2015 provider is not external2016 when adding a new OAuth identity2017 does not promote an external user to internal2018 with new allow_single_sign_on enabled syntax2019 creates a user from Omniauth2020 with old allow_single_sign_on enabled syntax2021 creates a user from Omniauth2022 with new allow_single_sign_on disabled syntax2023 throws an error2024 with old allow_single_sign_on disabled (Default)2025 throws an error2026 with auto_link_user enabled for the correct provider2027 and a current GitLab user with a matching email2028 adds the OmniAuth identity to the GitLab user account2029 and no current GitLab user with a matching email2030 provider is marked as external2031 marks user as external2032 provider was external, now has been removed2033 does not mark external user as internal2034 provider is not external2035 when adding a new OAuth identity2036 does not promote an external user to internal2037 with new allow_single_sign_on enabled syntax2038 creates a user from Omniauth2039 with old allow_single_sign_on enabled syntax2040 creates a user from Omniauth2041 with new allow_single_sign_on disabled syntax2042 throws an error2043 with old allow_single_sign_on disabled (Default)2044 throws an error2045 with auto_link_user enabled for all providers2046 and a current GitLab user with a matching email2047 adds the OmniAuth identity to the GitLab user account2048 and no current GitLab user with a matching email2049 provider is marked as external2050 marks user as external2051 provider was external, now has been removed2052 does not mark external user as internal2053 provider is not external2054 when adding a new OAuth identity2055 does not promote an external user to internal2056 with new allow_single_sign_on enabled syntax2057 creates a user from Omniauth2058 with old allow_single_sign_on enabled syntax2059 creates a user from Omniauth2060 with new allow_single_sign_on disabled syntax2061 throws an error2062 with old allow_single_sign_on disabled (Default)2063 throws an error2064 with auto_link_ldap_user disabled (default)2065 provider is marked as external2066 marks user as external2067 provider was external, now has been removed2068 does not mark external user as internal2069 provider is not external2070 when adding a new OAuth identity2071 does not promote an external user to internal2072 with new allow_single_sign_on enabled syntax2073 creates a user from Omniauth2074 with old allow_single_sign_on enabled syntax2075 creates a user from Omniauth2076 with new allow_single_sign_on disabled syntax2077 throws an error2078 with old allow_single_sign_on disabled (Default)2079 throws an error2080 and other providers2081 when sync_name is disabled2082 updates the gl_user name2083 when sync_name is enabled2084 updates the gl_user name2085 with auto_link_ldap_user enabled2086 and no LDAP provider defined2087 provider is marked as external2088 marks user as external2089 provider was external, now has been removed2090 does not mark external user as internal2091 provider is not external2092 when adding a new OAuth identity2093 does not promote an external user to internal2094 with new allow_single_sign_on enabled syntax2095 creates a user from Omniauth2096 with old allow_single_sign_on enabled syntax2097 creates a user from Omniauth2098 with new allow_single_sign_on disabled syntax2099 throws an error2100 with old allow_single_sign_on disabled (Default)2101 throws an error2102 and at least one LDAP provider is defined2103 and a corresponding LDAP person2104 and no account for the LDAP user2105 when the LDAP user is found by UID2106 does not repeat the default user password2107 creates a user with dual LDAP and omniauth identities2108 has name and email set as synced2109 has name and email set as read-only2110 has synced attributes provider set to ldapmain2111 when the LDAP user is found by email address2112 creates the LDAP identity2113 and LDAP user has an account already2114 when sync_name is disabled2115 does not update the user name2116 when sync_name is enabled2117 updates the user name2118 when an LDAP person is not found by uid2119 tries to find an LDAP person by email and adds the omniauth identity to the user2120 when also not found by email2121 tries to find an LDAP person by DN and adds the omniauth identity to the user2122 when there is an LDAP connection error2123 does not save the identity2124 and a corresponding LDAP person with a non-default username2125 and no account for the LDAP user2126 creates a user favoring the LDAP username and strips email domain2127 and no corresponding LDAP person2128 provider is marked as external2129 marks user as external2130 provider was external, now has been removed2131 does not mark external user as internal2132 provider is not external2133 when adding a new OAuth identity2134 does not promote an external user to internal2135 with new allow_single_sign_on enabled syntax2136 creates a user from Omniauth2137 with old allow_single_sign_on enabled syntax2138 creates a user from Omniauth2139 with new allow_single_sign_on disabled syntax2140 throws an error2141 with old allow_single_sign_on disabled (Default)2142 throws an error2143 with both auto_link_user and auto_link_ldap_user enabled2144 and at least one LDAP provider is defined2145 and a corresponding LDAP person2146 and no account for the LDAP user2147 creates a user with dual LDAP and omniauth identities2148 has name and email set as synced2149 has name and email set as read-only2150 has synced attributes provider set to ldapmain2151 and LDAP user has an account already2152 adds the omniauth identity to the LDAP account2153 blocking2154 signup with SAML2155 does not repeat the default user password2156 behaves like being blocked on creation2157 when blocking on creation2158 creates a blocked user2159 when a sign up user cap has been set up but has not been reached yet2160 still creates a blocked user2161 behaves like not being blocked on creation2162 when not blocking on creation2163 creates a non-blocked user2164 signup with omniauth only2165 behaves like being blocked on creation2166 when blocking on creation2167 creates a blocked user2168 when a sign up user cap has been set up but has not been reached yet2169 still creates a blocked user2170 behaves like not being blocked on creation2171 when not blocking on creation2172 creates a non-blocked user2173 signup with linked omniauth and LDAP account2174 and no account for the LDAP user2175 behaves like being blocked on creation2176 when blocking on creation2177 creates a blocked user2178 when a sign up user cap has been set up but has not been reached yet2179 still creates a blocked user2180 behaves like not being blocked on creation2181 when not blocking on creation2182 creates a non-blocked user2183 and LDAP user has an account already2184 behaves like not being blocked on creation2185 when not blocking on creation2186 creates a non-blocked user2187 behaves like not being blocked on creation2188 when not blocking on creation2189 creates a non-blocked user2190 sign-in2191 behaves like not being blocked on creation2192 when not blocking on creation2193 creates a non-blocked user2194 behaves like not being blocked on creation2195 when not blocking on creation2196 creates a non-blocked user2197 behaves like not being blocked on creation2198 when not blocking on creation2199 creates a non-blocked user2200 behaves like not being blocked on creation2201 when not blocking on creation2202 creates a non-blocked user2203 ensure backwards compatibility with sync email from provider option2204 when provider sets an email2205 updates the user email2206 has email set as synced2207 has email set as read-only2208 has synced attributes provider set to my-provider2209 when provider doesn't set an email2210 does not update the user email2211 has email set as not synced2212 does not have email set as read-only2213 generating username2214 when no collision with existing user2215 generates the username with no counter2216 when collision with existing user2217 generates the username with a counter2218 when username is a reserved word2219 generates the username with a counter2220 updating email with sync profile2221 when provider sets an email2222 updates the user email2223 has email set as synced2224 has email set as read-only2225 has synced attributes provider set to my-provider2226 when provider doesn't set an email2227 does not update the user email2228 has email set as not synced2229 does not have email set as read-only2230 updating name2231 when provider sets a name2232 updates the user name2233 when provider doesn't set a name2234 does not update the user name2235 updating location2236 when provider sets a location2237 updates the user location2238 when provider doesn't set a location2239 does not update the user location2240 updating user info2241 update all info2242 updates the user email2243 updates the user name2244 updates the user location2245 sets my-provider as the attributes provider2246 update only requested info2247 updates the user name2248 updates the user location2249 does not update the user email2250 update default_scope2251 updates the user email2252 update no info when profile sync is nil2253 does not have sync_attribute2254 does not update the user email2255 does not update the user name2256 does not update the user location2257 does not create associated user synced attributes metadata2258 when gl_user is nil2259 does not raise NoMethodError2260 ._uid_and_provider2261 normalizes extern_uid2262 #find_ldap_person2263 when LDAP connection fails2264 returns nil2265 #bypass_two_factor?2266 when with allow_bypass_two_factor disabled (Default)2267 when with allow_bypass_two_factor enabled2268 when provider in allow_bypass_two_factor array2269 when provider not in allow_bypass_two_factor array2270 #protocol_name2271 is OAuth2272WikiPagePolicy2273 when user is a direct project member2274 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12275 grants the expected permissions2276 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12277 grants the expected permissions2278 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12279 grants the expected permissions2280 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12281 grants the expected permissions2282 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12283 grants the expected permissions2284 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12285 grants the expected permissions2286 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12287 grants the expected permissions2288 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02289 grants the expected permissions2290 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12291 grants the expected permissions2292 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12293 grants the expected permissions2294 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02295 grants the expected permissions2296 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02297 grants the expected permissions2298 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02299 grants the expected permissions2300 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02301 grants the expected permissions2302 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02303 grants the expected permissions2304 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02305 grants the expected permissions2306 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12307 grants the expected permissions2308 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12309 grants the expected permissions2310 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12311 grants the expected permissions2312 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12313 grants the expected permissions2314 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12315 grants the expected permissions2316 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02317 grants the expected permissions2318 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12319 grants the expected permissions2320 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02321 grants the expected permissions2322 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12323 grants the expected permissions2324 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12325 grants the expected permissions2326 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02327 grants the expected permissions2328 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02329 grants the expected permissions2330 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02331 grants the expected permissions2332 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02333 grants the expected permissions2334 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02335 grants the expected permissions2336 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02337 grants the expected permissions2338 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12339 grants the expected permissions2340 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02341 grants the expected permissions2342 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12343 grants the expected permissions2344 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12345 grants the expected permissions2346 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02347 grants the expected permissions2348 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02349 grants the expected permissions2350 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02351 grants the expected permissions2352 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02353 grants the expected permissions2354 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02355 grants the expected permissions2356 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02357 grants the expected permissions2358 when user is an inherited member from the group2359 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12360 grants the expected permissions2361 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12362 grants the expected permissions2363 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12364 grants the expected permissions2365 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12366 grants the expected permissions2367 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12368 grants the expected permissions2369 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12370 grants the expected permissions2371 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12372 grants the expected permissions2373 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02374 grants the expected permissions2375 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12376 grants the expected permissions2377 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12378 grants the expected permissions2379 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02380 grants the expected permissions2381 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02382 grants the expected permissions2383 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02384 grants the expected permissions2385 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02386 grants the expected permissions2387 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02388 grants the expected permissions2389 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02390 grants the expected permissions2391 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12392 grants the expected permissions2393 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12394 grants the expected permissions2395 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12396 grants the expected permissions2397 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12398 grants the expected permissions2399 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12400 grants the expected permissions2401 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02402 grants the expected permissions2403 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12404 grants the expected permissions2405 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02406 grants the expected permissions2407 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12408 grants the expected permissions2409 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12410 grants the expected permissions2411 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02412 grants the expected permissions2413 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02414 grants the expected permissions2415 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02416 grants the expected permissions2417 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02418 grants the expected permissions2419 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02420 grants the expected permissions2421 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02422 grants the expected permissions2423 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12424 grants the expected permissions2425 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02426 grants the expected permissions2427 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12428 grants the expected permissions2429 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12430 grants the expected permissions2431 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02432 grants the expected permissions2433 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02434 grants the expected permissions2435 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02436 grants the expected permissions2437 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02438 grants the expected permissions2439 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02440 grants the expected permissions2441 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02442 grants the expected permissions2443Ci::UnlockArtifactsService2444 tag: false2445 #execute2446 when running on a ref before a pipeline2447 unlocks artifacts from older pipelines2448 does not unlock artifacts for tag or branch with same name as ref2449 does not unlock artifacts from newer pipelines2450 does not lock artifacts from old unlocked pipelines2451 does not unlock artifacts from the same pipeline2452 does not unlock artifacts for other refs2453 does not unlock artifacts for child pipeline2454 unlocks job artifact records2455 unlocks pipeline artifact records2456 when running on just the ref2457 unlocks artifacts from older pipelines2458 unlocks artifacts from newer pipelines2459 unlocks artifacts from the same pipeline2460 does not unlock artifacts for tag or branch with same name as ref2461 does not lock artifacts from old unlocked pipelines2462 does not unlock artifacts for other refs2463 unlocks job artifact records2464 unlocks pipeline artifact records2465 #unlock_pipelines_query2466 when running on a ref before a pipeline2467 produces the expected SQL string2468 when running on just the ref2469 produces the expected SQL string2470 #unlock_job_artifacts_query2471 when given a single pipeline ID2472 produces the expected SQL string2473 when given multiple pipeline IDs2474 produces the expected SQL string2475 tag: true2476 #execute2477 when running on a ref before a pipeline2478 unlocks artifacts from older pipelines2479 does not unlock artifacts for tag or branch with same name as ref2480 does not unlock artifacts from newer pipelines2481 does not lock artifacts from old unlocked pipelines2482 does not unlock artifacts from the same pipeline2483 does not unlock artifacts for other refs2484 does not unlock artifacts for child pipeline2485 unlocks job artifact records2486 unlocks pipeline artifact records2487 when running on just the ref2488 unlocks artifacts from older pipelines2489 unlocks artifacts from newer pipelines2490 unlocks artifacts from the same pipeline2491 does not unlock artifacts for tag or branch with same name as ref2492 does not lock artifacts from old unlocked pipelines2493 does not unlock artifacts for other refs2494 unlocks job artifact records2495 unlocks pipeline artifact records2496 #unlock_pipelines_query2497 when running on a ref before a pipeline2498 produces the expected SQL string2499 when running on just the ref2500 produces the expected SQL string2501 #unlock_job_artifacts_query2502 when given a single pipeline ID2503 produces the expected SQL string2504 when given multiple pipeline IDs2505 produces the expected SQL string2506Gitlab::UrlBlocker2507 #validate!2508 when URI is nil2509 behaves like validates URI and hostname2510 runs the url validations2511 behaves like a URI exempt from `deny_all_requests_except_allowed`2512 does not block the request2513 when URI is internal2514 behaves like validates URI and hostname2515 runs the url validations2516 behaves like a URI exempt from `deny_all_requests_except_allowed`2517 does not block the request2518 when URI is for a local object storage2519 when allow_object_storage is true2520 with a local domain name2521 behaves like validates URI and hostname2522 runs the url validations2523 behaves like a URI exempt from `deny_all_requests_except_allowed`2524 does not block the request2525 with an IP address2526 behaves like validates URI and hostname2527 runs the url validations2528 behaves like a URI exempt from `deny_all_requests_except_allowed`2529 does not block the request2530 when LFS object storage is enabled2531 when LFS is disabled2532 raises an error2533 when LFS is enabled with no connection endpoint2534 raises an error2535 when allow_object_storage is false2536 with a local domain name2537 raises an error2538 with an IP address2539 raises an error2540 when the URL hostname is a domain2541 when domain can be resolved2542 behaves like validates URI and hostname2543 runs the url validations2544 behaves like a URI denied by `deny_all_requests_except_allowed`2545 when instance setting is enabled2546 blocks the request2547 when instance setting is not enabled2548 does not block the request2549 when passed as an argument2550 when argument is a proc that evaluates to true2551 blocks the request2552 when argument is a proc that evaluates to false2553 does not block the request2554 when argument is true2555 blocks the request2556 when argument is false2557 does not block the request2558 when domain cannot be resolved2559 raises an error2560 with HTTP_PROXY2561 behaves like validates URI and hostname2562 runs the url validations2563 when domain is too long2564 raises an error2565 when the URL hostname is an IP address2566 behaves like validates URI and hostname2567 runs the url validations2568 behaves like a URI denied by `deny_all_requests_except_allowed`2569 when instance setting is enabled2570 blocks the request2571 when instance setting is not enabled2572 does not block the request2573 when passed as an argument2574 when argument is a proc that evaluates to true2575 blocks the request2576 when argument is a proc that evaluates to false2577 does not block the request2578 when argument is true2579 blocks the request2580 when argument is false2581 does not block the request2582 when the address is invalid2583 raises an error2584 when DNS rebinding protection with IP allowed2585 behaves like validates URI and hostname2586 runs the url validations2587 behaves like a URI exempt from `deny_all_requests_except_allowed`2588 does not block the request2589 with HTTP_PROXY2590 behaves like validates URI and hostname2591 runs the url validations2592 when domain is in no_proxy env2593 behaves like validates URI and hostname2594 runs the url validations2595 with disabled DNS rebinding protection2596 when URI is internal2597 behaves like validates URI and hostname2598 runs the url validations2599 behaves like a URI exempt from `deny_all_requests_except_allowed`2600 does not block the request2601 when the URL hostname is a domain2602 when domain can be resolved2603 behaves like validates URI and hostname2604 runs the url validations2605 behaves like a URI denied by `deny_all_requests_except_allowed`2606 when instance setting is enabled2607 blocks the request2608 when instance setting is not enabled2609 does not block the request2610 when passed as an argument2611 when argument is a proc that evaluates to true2612 blocks the request2613 when argument is a proc that evaluates to false2614 does not block the request2615 when argument is true2616 blocks the request2617 when argument is false2618 does not block the request2619 when domain cannot be resolved2620 behaves like validates URI and hostname2621 runs the url validations2622 behaves like a URI denied by `deny_all_requests_except_allowed`2623 when instance setting is enabled2624 blocks the request2625 when instance setting is not enabled2626 does not block the request2627 when passed as an argument2628 when argument is a proc that evaluates to true2629 blocks the request2630 when argument is a proc that evaluates to false2631 does not block the request2632 when argument is true2633 blocks the request2634 when argument is false2635 does not block the request2636 when the URL hostname is an IP address2637 behaves like validates URI and hostname2638 runs the url validations2639 behaves like a URI denied by `deny_all_requests_except_allowed`2640 when instance setting is enabled2641 blocks the request2642 when instance setting is not enabled2643 does not block the request2644 when passed as an argument2645 when argument is a proc that evaluates to true2646 blocks the request2647 when argument is a proc that evaluates to false2648 does not block the request2649 when argument is true2650 blocks the request2651 when argument is false2652 does not block the request2653 when it is invalid2654 behaves like validates URI and hostname2655 runs the url validations2656 behaves like a URI denied by `deny_all_requests_except_allowed`2657 when instance setting is enabled2658 blocks the request2659 when instance setting is not enabled2660 does not block the request2661 when passed as an argument2662 when argument is a proc that evaluates to true2663 blocks the request2664 when argument is a proc that evaluates to false2665 does not block the request2666 when argument is true2667 blocks the request2668 when argument is false2669 does not block the request2670 #blocked_url?2671 allows imports from configured web host and port2672 allows mirroring from configured SSH host and port2673 returns true for bad localhost hostname2674 returns true for bad port2675 returns true for bad scheme2676 returns true for bad protocol on configured web/SSH host and ports2677 returns true for localhost IPs2678 returns true for loopback IP2679 returns true for alternative version of 127.0.0.1 (0177.1)2680 returns true for alternative version of 127.0.0.1 (017700000001)2681 returns true for alternative version of 127.0.0.1 (0x7f.1)2682 returns true for alternative version of 127.0.0.1 (0x7f.0.0.1)2683 returns true for alternative version of 127.0.0.1 (0x7f000001)2684 returns true for alternative version of 127.0.0.1 (2130706433)2685 returns true for alternative version of 127.0.0.1 (127.000.000.001)2686 returns true for alternative version of 127.0.0.1 (127.0.1)2687 returns true for a non-alphanumeric hostname2688 returns true for invalid URL2689 returns false for legitimate URL2690 blocks urls with invalid ip address2691 blocks urls whose hostname cannot be resolved2692 with ipv6 mapped address2693 returns true for localhost IPs2694 returns true for loopback IPs2695 allow_local_network2696 when true (default)2697 behaves like allows local requests2698 does not block urls from private networks2699 allows localhost endpoints2700 allows loopback endpoints2701 allows IPv4 link-local endpoints2702 allows IPv6 link-local endpoints2703 allows limited broadcast address 255.255.255.255 and variants2704 when false2705 blocks urls from private networks2706 blocks IPv4 link-local endpoints2707 blocks IPv6 link-local endpoints2708 blocks limited broadcast address 255.255.255.255 and variants2709 when local domain/IP is allowed2710 with IPs in allowlist2711 allows IP when dns_rebind_protection is disabled2712 allows the limited broadcast address 255.255.255.2552713 behaves like allows local requests2714 does not block urls from private networks2715 allows localhost endpoints2716 allows loopback endpoints2717 allows IPv4 link-local endpoints2718 allows IPv6 link-local endpoints2719 allows limited broadcast address 255.255.255.255 and variants2720 with domains in allowlist2721 allows domains present in allowlist2722 works with unicode and idna encoded domains2723 when the domain cannot be resolved2724 behaves like dns rebinding checks2725 dns_rebinding_setting2726 when enabled2727 behaves like allowlists the domain2728 is expected not to be blocked url "http://foobar.x" and {:dns_rebind_protection=>true, :schemes=>["http", "https"]}2729 when disabled2730 behaves like allowlists the domain2731 is expected not to be blocked url "http://foobar.x" and {:dns_rebind_protection=>false, :schemes=>["http", "https"]}2732 when the domain can be resolved2733 behaves like dns rebinding checks2734 dns_rebinding_setting2735 when enabled2736 behaves like allowlists the domain2737 is expected not to be blocked url "http://example.com" and {:dns_rebind_protection=>true, :schemes=>["http", "https"]}2738 when disabled2739 behaves like allowlists the domain2740 is expected not to be blocked url "http://example.com" and {:dns_rebind_protection=>false, :schemes=>["http", "https"]}2741 with ports2742 allows domain with port when resolved ip has port allowed2743 enforce_user2744 when false (default)2745 does not block urls with a non-alphanumeric username2746 when true2747 blocks urls with a non-alphanumeric username2748 when ascii_only is true2749 returns true for unicode domain2750 returns true for unicode tld2751 returns true for unicode path2752 returns true for IDNA deviations2753 when gitlab is running on a non-default port2754 returns true for url targeting the wrong port2755 does not block url on gitlab port2756 #validate_hostname2757 does not raise error for valid Ip addresses2758ProjectPresenter2759 #license_short_name2760 when project.repository has a license_key2761 returns the nickname of the license if present2762 returns the name of the license if nickname is not present2763 when project.repository has no license_key but a license_blob2764 returns LICENSE2765 #default_view2766 user not signed in2767 when repository is empty2768 returns wiki if user has repository access and can read wiki, which exists2769 returns activity if user has repository access and can read wiki, which does not exist2770 returns issues if user does not have repository access, but can read issues2771 returns activity if user can read neither wiki nor issues2772 when repository is not empty2773 returns files and readme if user has repository access2774 returns wiki if user does not have repository access and can read wiki, which exists2775 returns activity if user does not have repository or wiki access2776 returns releases anchor2777 returns environments anchor2778 user signed in2779 when the user is allowed to see the code2780 returns the project view2781 with wikis enabled and the right policy for the user2782 returns wiki if the user has the right policy and the wiki exists2783 returns activity if the user does not have the right policy2784 with issues as a feature available2785 return issues2786 with no activity, no wikies and no issues2787 returns activity as default2788 #can_current_user_push_code?2789 empty repo2790 returns true if user can push_code2791 returns false if user cannot push_code2792 not empty repo2793 returns true if user can push to default branch2794 returns false if default branch is protected2795 if no current user2796 returns false2797 statistics anchors (empty repo)2798 #storage_anchor_data2799 returns storage data2800 #releases_anchor_data2801 does not return release count2802 #commits_anchor_data2803 returns commits data2804 #branches_anchor_data2805 returns branches data2806 #tags_anchor_data2807 returns tags data2808 statistics anchors2809 #storage_anchor_data2810 returns storage data without usage quotas link for non-admin users2811 returns storage data with usage quotas link for admin users2812 #gitlab_ci_anchor_data2813 when user cannot collaborate2814 returns no value2815 when user can collaborate2816 and the CI/CD file is missing2817 returns `Set up CI/CD` button2818 and there is a CI/CD file2819 returns `CI/CD configuration` button2820 #releases_anchor_data2821 returns release count if user can read release2822 returns nil if user cannot read release2823 user not signed in2824 returns nil if user is signed out2825 #commits_anchor_data2826 returns commits data2827 #branches_anchor_data2828 returns branches data2829 #tags_anchor_data2830 returns tags data2831 #new_file_anchor_data2832 returns new file data if user can push2833 returns nil if user cannot push2834 when the project is empty2835 is empty for a developer2836 #readme_anchor_data2837 when user can push and README does not exists2838 returns anchor data2839 when README exists2840 returns anchor data2841 #changelog_anchor_data2842 when user can push and CHANGELOG does not exist2843 returns anchor data2844 when CHANGELOG exists2845 returns anchor data2846 #license_anchor_data2847 when user can push and LICENSE does not exist2848 returns anchor data2849 when LICENSE exists2850 returns anchor data2851 #contribution_guide_anchor_data2852 when user can push and CONTRIBUTING does not exist2853 returns anchor data2854 when CONTRIBUTING exists2855 returns anchor data2856 #autodevops_anchor_data2857 returns nil if builds feature is not available2858 when Auto Devops is enabled2859 returns anchor data2860 when user can admin pipeline and CI yml does not exist2861 returns anchor data2862 #kubernetes_cluster_anchor_data2863 when user can create Kubernetes cluster2864 returns link to cluster if only one exists2865 returns link to clusters page if more than one exists2866 returns link to create a cluster if no cluster exists2867 when user cannot create Kubernetes cluster2868 returns nil2869 #upload_anchor_data2870 when a user can push to the default branch2871 returns upload_anchor_data2872 when the user cannot push to default branch2873 returns nil2874 #wiki_anchor_data2875 wiki_enabled: true, can_read_wiki: true, has_home_page: true, can_create_wiki: true, expected_result: anchor_goto_wiki2876 is expected to match (have attributes {:class_modifier => "btn-default", :is_link => false, :label => (a string ending with "Wiki"), :link => "/namespace490/project495/-/wikis/home"})2877 wiki_enabled: true, can_read_wiki: true, has_home_page: true, can_create_wiki: false, expected_result: anchor_goto_wiki2878 is expected to match (have attributes {:class_modifier => "btn-default", :is_link => false, :label => (a string ending with "Wiki"), :link => "/namespace490/project495/-/wikis/home"})2879 wiki_enabled: true, can_read_wiki: true, has_home_page: false, can_create_wiki: true, expected_result: anchor_add_wiki2880 is expected to match (have attributes {:is_link => false, :label => (a string ending with "Add Wiki"), :link => "/namespace490/project495/-/wikis/home?view=create"})2881 wiki_enabled: true, can_read_wiki: true, has_home_page: false, can_create_wiki: false, expected_result: nil2882 is expected to match nil2883 wiki_enabled: true, can_read_wiki: false, has_home_page: true, can_create_wiki: true, expected_result: nil2884 is expected to match nil2885 wiki_enabled: true, can_read_wiki: false, has_home_page: true, can_create_wiki: false, expected_result: nil2886 is expected to match nil2887 wiki_enabled: true, can_read_wiki: false, has_home_page: false, can_create_wiki: true, expected_result: nil2888 is expected to match nil2889 wiki_enabled: true, can_read_wiki: false, has_home_page: false, can_create_wiki: false, expected_result: nil2890 is expected to match nil2891 wiki_enabled: false, can_read_wiki: true, has_home_page: true, can_create_wiki: true, expected_result: nil2892 is expected to match nil2893 wiki_enabled: false, can_read_wiki: true, has_home_page: true, can_create_wiki: false, expected_result: nil2894 is expected to match nil2895 wiki_enabled: false, can_read_wiki: true, has_home_page: true, can_create_wiki: false, expected_result: nil2896 is expected to match nil2897 wiki_enabled: false, can_read_wiki: true, has_home_page: false, can_create_wiki: true, expected_result: nil2898 is expected to match nil2899 wiki_enabled: false, can_read_wiki: true, has_home_page: false, can_create_wiki: false, expected_result: nil2900 is expected to match nil2901 wiki_enabled: false, can_read_wiki: false, has_home_page: true, can_create_wiki: true, expected_result: nil2902 is expected to match nil2903 wiki_enabled: false, can_read_wiki: false, has_home_page: true, can_create_wiki: false, expected_result: nil2904 is expected to match nil2905 wiki_enabled: false, can_read_wiki: false, has_home_page: false, can_create_wiki: true, expected_result: nil2906 is expected to match nil2907 wiki_enabled: false, can_read_wiki: false, has_home_page: false, can_create_wiki: false, expected_result: nil2908 is expected to match nil2909 #statistics_buttons2910 orders the items correctly2911 #repo_statistics_buttons2912 empty repo2913 includes a button to configure integrations for maintainers2914 does not include a button if not a maintainer2915 for a developer2916 orders the items correctly2917 initialized repo2918 orders the items correctly2919 #can_setup_review_app?2920 when the ci/cd file is missing2921 is expected to be truthy2922 when the ci/cd file is not missing2923 and the user can create a cluster2924 and there is no cluster associated to this project2925 is expected to be truthy2926 and there is already a cluster associated to this project2927 is expected to be falsey2928 when a group cluster is instantiated2929 and the project belongs to this group2930 is expected to be falsey2931 and the project does not belong to this group2932 is expected to be truthy2933 and there is already an instance cluster2934 is false2935 and the user cannot create a cluster2936 is expected to be falsey2937MergeRequestTargetProjectFinder2938 public projects2939 behaves like finding related projects2940 finds sibling projects and base project2941 does not include projects that have merge requests turned off by default2942 includes projects that have merge requests turned off by default with a more-permissive project feature2943 does not contain archived projects2944 does not include routes by default2945 includes routes when requested2946 private projects2947 only finds the projects the user is a member of2948 when the user is a member of all projects2949 behaves like finding related projects2950 finds sibling projects and base project2951 does not include projects that have merge requests turned off by default2952 includes projects that have merge requests turned off by default with a more-permissive project feature2953 does not contain archived projects2954 does not include routes by default2955 includes routes when requested2956 searching2957 returns all projects with empty search2958 returns forked project with search string2959 returns no projects with search for project that does no exist2960BranchesFinder2961 #execute2962 sort only2963 by name2964 sorts2965 by recently_updated2966 sorts2967 by last_updated2968 sorts2969 filter only2970 by name2971 filters branches2972 by name ignoring letter case2973 filters branches2974 by string2975 returns all branches contain name2976 by provided names2977 filters branches2978 by name that begins with2979 filters branches2980 by name that ends with2981 filters branches2982 by name with wildcard2983 filters branches2984 by mixed regex operators2985 filters branches2986 by invalid regex2987 is expected to raise RegexpError2988 by `|` regex2989 filters branches2990 by exclude name2991 filters branches2992 by name with multiple wildcards2993 filters branches2994 with an unknown name2995 does not find any branch2996 by nonexistent name that begins with2997 filters branches2998 by nonexistent name that ends with2999 filters branches3000 by nonexistent name with wildcard3001 filters branches3002 filter and sort3003 by name and sorts by recently_updated3004 filters branches3005 by name and sorts by recently_updated, with exact matches first3006 filters branches3007 by name and sorts by last_updated3008 filters branches3009 with gitaly pagination3010 by page_token and per_page3011 filters branches3012 by next page_token and per_page3013 filters branches3014 by per_page only3015 filters branches3016 by page_token only3017 raises an error3018 pagination and sort3019 by per_page3020 filters branches3021 by page_token and per_page3022 filters branches3023 pagination and names3024 falls back to default execute and ignore paginations3025 pagination and search3026 falls back to default execute and ignore paginations3027 #total3028 is expected to be a kind of Integer3029 is expected to eq 833030GpgKey3031 associations3032 is expected to belong to user required: false3033 is expected to have many subkeys3034 validation3035 is expected to validate that :user cannot be empty/falsy3036 is expected to validate that :key cannot be empty/falsy3037 is expected to validate that :key is case-sensitively unique3038 is expected to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----END PGP PUBLIC KEY BLOCK-----"›3039 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey"›3040 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----BEGIN PGP PUBLIC KEY BLOCK-----"›3041 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----"›3042 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----"›3043 is expected not to allow :key to be ‹"-----END PGP PUBLIC KEY BLOCK-----"›3044 is expected not to allow :key to be ‹"key\n-----END PGP PUBLIC KEY BLOCK-----"›3045 is expected not to allow :key to be ‹"BEGIN PGP"›3046 callbacks3047 extract_fingerprint3048 extracts the fingerprint from the gpg key3049 extract_primary_keyid3050 extracts the primary keyid from the gpg key3051 generate_subkeys3052 extracts the subkeys from the gpg key3053 #key=3054 strips white spaces3055 does not strip when the key is nil3056 #user_infos3057 returns the user infos from the gpg key3058 #verified_user_infos3059 returns the user infos if it is verified3060 returns an empty array if the user info is not verified3061 #emails_with_verified_status3062 email is verified if the user has the matching email3063 #verified?3064 returns true if one of the email addresses in the key belongs to the user3065 returns false if none of the email addresses in the key does not belong to the user3066 verified_and_belongs_to_email?3067 returns false if none of the email addresses in the key does not belong to the user3068 returns false if one of the email addresses in the key belongs to the user and does not match the provided email3069 returns true if one of the email addresses in the key belongs to the user and matches the provided email3070 returns true if one of the email addresses in the key belongs to the user and case-insensitively matches the provided email3071 #revoke3072 invalidates all associated gpg signatures and destroys the key3073 deletes all the associated subkeys3074 invalidates all signatures associated to the subkeys3075Spam::SpamActionService3076 constructor argument validation3077 when spam_params is nil3078 returns success with a messaage3079 #execute3080 issue3081 behaves like execute spam action service3082 when captcha response verification returns true3083 doesn't check with the SpamVerdictService3084 updates spam log3085 when captcha response verification returns false3086 when spammable attributes have not changed3087 does not create a spam log3088 when spammable attributes have changed3089 when allowlisted3090 does not perform spam check3091 when disallowed by the spam verdict service3092 marks as spam3093 behaves like creates a spam log3094 is expected to eq true3095 spam verdict service advises to block the user3096 marks as spam3097 behaves like creates a spam log3098 is expected to eq true3099 when spam verdict service conditionally allows3100 does not mark as spam3101 marks as needing reCAPTCHA3102 behaves like creates a spam log3103 is expected to eq true3104 when spam verdict service returns OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM3105 does not mark as spam3106 does not mark as needing CAPTCHA3107 behaves like creates a spam log3108 is expected to eq true3109 when spam verdict service allows creation3110 does not create a spam log3111 clears spam flags3112 when spam verdict service returns noop3113 does not create a spam log3114 clears spam flags3115 with spam verdict service options3116 assembles the options with information from the request3117 project snippet3118 behaves like execute spam action service3119 when captcha response verification returns true3120 doesn't check with the SpamVerdictService3121 updates spam log3122 when captcha response verification returns false3123 when spammable attributes have not changed3124 does not create a spam log3125 when spammable attributes have changed3126 when allowlisted3127 does not perform spam check3128 when disallowed by the spam verdict service3129 marks as spam3130 behaves like creates a spam log3131 is expected to eq true3132 spam verdict service advises to block the user3133 marks as spam3134 behaves like creates a spam log3135 is expected to eq true3136 when spam verdict service conditionally allows3137 does not mark as spam3138 marks as needing reCAPTCHA3139 behaves like creates a spam log3140 is expected to eq true3141 when spam verdict service returns OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM3142 does not mark as spam3143 does not mark as needing CAPTCHA3144 behaves like creates a spam log3145 is expected to eq true3146 when spam verdict service allows creation3147 does not create a spam log3148 clears spam flags3149 when spam verdict service returns noop3150 does not create a spam log3151 clears spam flags3152 with spam verdict service options3153 assembles the options with information from the request3154 personal snippet3155 behaves like execute spam action service3156 when captcha response verification returns true3157 doesn't check with the SpamVerdictService3158 updates spam log3159 when captcha response verification returns false3160 when spammable attributes have not changed3161 does not create a spam log3162 when spammable attributes have changed3163 when allowlisted3164 does not perform spam check3165 when disallowed by the spam verdict service3166 marks as spam3167 behaves like creates a spam log3168 is expected to eq true3169 spam verdict service advises to block the user3170 marks as spam3171 behaves like creates a spam log3172 is expected to eq true3173 when spam verdict service conditionally allows3174 does not mark as spam3175 marks as needing reCAPTCHA3176 behaves like creates a spam log3177 is expected to eq true3178 when spam verdict service returns OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM3179 does not mark as spam3180 does not mark as needing CAPTCHA3181 behaves like creates a spam log3182 is expected to eq true3183 when spam verdict service allows creation3184 does not create a spam log3185 clears spam flags3186 when spam verdict service returns noop3187 does not create a spam log3188 clears spam flags3189 with spam verdict service options3190 assembles the options with information from the request3191Gitlab::Database::BackgroundMigration::BatchedMigration3192 is expected to be a kind of Gitlab::Database::SharedModel(abstract)3193 associations3194 is expected to have many batched_jobs3195 #last_job3196 returns the batched job with highest max_value3197 validations3198 is expected to validate that :job_arguments is case-sensitively unique within the scope of :job_class_name, :table_name, and :column_name3199 when there are failed jobs3200 raises an exception3201 when the jobs are completed3202 finishes the migration3203 state machine3204 when a migration is executed3205 updates the started_at3206 #pause!3207 when an invalid transition is applied3208 raises an exception3209 raises an exception3210 raises an exception3211 when a valid transition is applied3212 moves to pause3213 moves to pause3214 #execute!3215 when an invalid transition is applied3216 raises an exception3217 raises an exception3218 when a valid transition is applied3219 moves to active3220 moves to active3221 moves to active3222 #finish!3223 when an invalid transition is applied3224 raises an exception3225 when a valid transition is applied3226 moves to active3227 moves to active3228 moves to active3229 moves to active3230 #failure!3231 when an invalid transition is applied3232 raises an exception3233 raises an exception3234 when a valid transition is applied3235 moves to active3236 moves to active3237 moves to active3238 .valid_status3239 returns valid status3240 .queue_order3241 returns batched migrations ordered by their id3242 .ordered_by_created_at_desc3243 returns batched migrations ordered by created_at (DESC)3244 .active_migration3245 when there are no migrations on hold3246 returns the first active migration according to queue order3247 when there are migrations on hold3248 returns the first active migration that is not on hold according to queue order3249 when there are migrations not available for the current connection3250 returns the first active migration that is available for the current connection3251 when there are no active migrations available3252 returns nil3253 .find_executable3254 when the migration does not exist3255 returns nil3256 when the migration is not active3257 returns nil3258 when the migration is on hold3259 returns nil3260 when the migration is not available for the current connection3261 returns nil3262 when ther migration exists and is executable3263 returns the migration3264 .active_migrations_distinct_on_table3265 returns one pending executable migration per table3266 returns epmty collection when there are no pending executable migrations3267 .created_after3268 only returns migrations created after the specified time3269 .queued3270 returns active and paused migrations3271 .finalizing3272 returns only finalizing migrations3273 .successful_rows_counts3274 returns totals from successful jobs3275 #reset_attempts_of_blocked_jobs!3276 sets the number of attempts to zero for blocked jobs3277 #interval_elapsed?3278 when the migration has no last_job3279 returns true3280 when the migration has a last_job3281 when the last_job is less than an interval old3282 returns false3283 when the last_job is exactly an interval old3284 returns true3285 when the last_job is more than an interval old3286 returns true3287 when an interval variance is given3288 when the last job is less than an interval with variance old3289 returns false3290 when the last job is more than an interval with variance old3291 returns true3292 #create_batched_job!3293 creates a batched_job with the correct batch configuration3294 #next_min_value3295 when a previous job exists3296 returns the next value after the previous maximum3297 when a previous job does not exist3298 returns the migration minimum value3299 #job_class3300 returns the class of the job for the migration3301 #batch_class3302 returns the class of the batch strategy for the migration3303 #retry_failed_jobs!3304 when there are failed migration jobs3305 moves the status of the migration to active3306 changes the number of attempts to 03307 when there are no failed migration jobs3308 moves the status of the migration to active3309 #should_stop?3310 when the started_at is nil3311 is expected to be falsey3312 when the number of jobs is lesser than the MINIMUM_JOBS3313 is expected to be falsey3314 when the calculated value is greater than the threshold3315 is expected to be truthy3316 when the calculated value is lesser than the threshold3317 is expected to be falsey3318 #job_class_name=3319 behaves like an attr_writer that assigns class names3320 when a module name exists3321 keeps the class with module name3322 removes leading namespace resolution operator3323 when a module name does not exist3324 does not change the given class name3325 #batch_class_name=3326 behaves like an attr_writer that assigns class names3327 when a module name exists3328 keeps the class with module name3329 removes leading namespace resolution operator3330 when a module name does not exist3331 does not change the given class name3332 #migrated_tuple_count3333 sums the batch_size of succeeded jobs3334 #prometheus_labels3335 returns a hash with labels for the migration3336 #smoothed_time_efficiency3337 when there are not enough jobs3338 returns nil3339 when there are enough jobs3340 example 1: increasing trend, but only recently crossed threshold3341 returns the smoothed time efficiency3342 example 2: increasing trend, crossed threshold a while ago3343 returns the smoothed time efficiency3344 example 3: decreasing trend, but only recently crossed threshold3345 returns the smoothed time efficiency3346 example 4: latest run spiked3347 returns the smoothed time efficiency3348 with preloaded batched migration3349 avoids N+13350 #optimize!3351 calls the BatchOptimizer3352 #hold!3353 updates on_hold_until property3354 defaults to 10 minutes3355 #on_hold?3356 returns false if no on_hold_until is set3357 returns false if on_hold_until has passed3358 returns true if on_hold_until is in the future3359 #progress3360 when the migration is completed3361 returns 1003362 when the status is finished3363 returns 1003364 when the migration does not have jobs3365 returns zero3366 when the `total_tuple_count` is zero3367 returns nil3368 when migration has completed jobs3369 calculates the progress3370 .for_configuration3371 finds the migration matching the given configuration parameters3372 filters by gitlab schemas available for the connection3373 doesn not filter by gitlab schemas available for the connection if the column is nor present3374 .find_for_configuration3375 returns nill if such migration does not exists3376 returns the migration when it exists3377 .for_gitlab_schema3378 finds the migrations matching the given gitlab schema3379TrendingProject3380 .refresh!3381 populates the trending projects table3382 removes existing rows before populating the table3383 stores the project IDs for every trending project3384 does not store projects that fall out of the trending time range3385 stores only public projects3386Gitlab::Utils::UsageData3387 # order random3388 #estimate_batch_distinct_count3389 delegates counting to counter class instance3390 yield provided block with PostgresHll::Buckets3391 quasi integration test for different counting parameters3392 different counting parameters3393 counts with symbol passed in column argument3394 counts with string passed in column argument3395 counts with table.column passed in column argument3396 counts with Arel passed in column argument3397 counts over joined relations3398 counts with :column field with batch_size of 50K3399 counts with different number of batches and aggregates total result3400 counts with a start and finish3401 error handling3402 when counter raises WRONG_CONFIGURATION_ERROR3403 behaves like failing hardening method3404 with should_raise_for_dev? false3405 returns the fallback3406 with should_raise_for_dev? true3407 raises an error3408 when counting fails due to database error3409 behaves like failing hardening method3410 with should_raise_for_dev? false3411 returns the fallback3412 with should_raise_for_dev? true3413 raises an error3414 #count3415 returns the count when counting succeeds3416 records duration3417 when counting fails3418 behaves like failing hardening method3419 with should_raise_for_dev? false3420 returns the fallback3421 with should_raise_for_dev? true3422 raises an error3423 #distinct_count3424 returns the count when counting succeeds3425 records duration3426 when counting fails3427 behaves like failing hardening method3428 with should_raise_for_dev? false3429 returns the fallback3430 with should_raise_for_dev? true3431 raises an error3432 .with_metadata3433 yields passed block3434 #track_usage_event3435 tracks redis hll event3436 raise an error for unknown event3437 #redis_usage_data3438 records duration3439 with block given3440 returns the evaluated block when given3441 when method fails3442 behaves like failing hardening method3443 with should_raise_for_dev? false3444 returns the fallback3445 with should_raise_for_dev? true3446 raises an error3447 when Redis HLL raises any error3448 behaves like failing hardening method3449 with should_raise_for_dev? false3450 returns the fallback3451 with should_raise_for_dev? true3452 raises an error3453 with counter given3454 returns the totals when couter is given3455 when gets an error3456 behaves like failing hardening method3457 with should_raise_for_dev? false3458 returns the fallback3459 with should_raise_for_dev? true3460 raises an error3461 #alt_usage_data3462 records duration3463 returns the evaluated block when give3464 returns the value when given3465 when method fails3466 behaves like failing hardening method3467 with should_raise_for_dev? false3468 returns the fallback3469 with should_raise_for_dev? true3470 raises an error3471 #measure_duration3472 returns block result and execution duration3473 min/max3474 returns min from the model3475 returns max from the model3476 #add3477 adds given values3478 adds given values3479 records duration3480 returns the fallback value one of the arguments is negative3481 when adding fails3482 behaves like failing hardening method3483 with should_raise_for_dev? false3484 returns the fallback3485 with should_raise_for_dev? true3486 raises an error3487 #with_prometheus_client3488 records duration3489 returns fallback with for an exception in yield block3490 when Prometheus server address is available from settings3491 behaves like try to query Prometheus with given address3492 Prometheus is ready3493 Prometheus is reachable through HTTPS3494 behaves like query data from Prometheus3495 yields a client instance and returns the block result3496 Prometheus is not reachable through HTTPS3497 Prometheus is reachable through HTTP3498 behaves like query data from Prometheus3499 yields a client instance and returns the block result3500 Prometheus is not reachable through HTTP3501 behaves like does not query data from Prometheus3502 returns {} by default3503 returns fallback if provided3504 Prometheus is not ready3505 behaves like does not query data from Prometheus3506 returns {} by default3507 returns fallback if provided3508 when Prometheus server address is available from Consul service discovery3509 behaves like try to query Prometheus with given address3510 Prometheus is ready3511 Prometheus is reachable through HTTPS3512 behaves like query data from Prometheus3513 yields a client instance and returns the block result3514 Prometheus is not reachable through HTTPS3515 Prometheus is reachable through HTTP3516 behaves like query data from Prometheus3517 yields a client instance and returns the block result3518 Prometheus is not reachable through HTTP3519 behaves like does not query data from Prometheus3520 returns {} by default3521 returns fallback if provided3522 Prometheus is not ready3523 behaves like does not query data from Prometheus3524 returns {} by default3525 returns fallback if provided3526 when Prometheus server address is not available3527 behaves like does not query data from Prometheus3528 returns {} by default3529 returns fallback if provided3530 #sum3531 returns the count when counting succeeds3532 records duration3533 when counting fails3534 behaves like failing hardening method3535 with should_raise_for_dev? false3536 returns the fallback3537 with should_raise_for_dev? true3538 raises an error3539 #average3540 returns the average when operation succeeds3541 records duration3542 when operation fails3543 behaves like failing hardening method3544 with should_raise_for_dev? false3545 returns the fallback3546 with should_raise_for_dev? true3547 raises an error3548 #histogram3549 checks bucket bounds to be not equal3550 checks bucket_size being non-zero3551 limits the amount of buckets without providing bucket_size argument3552 limits the amount of buckets when providing bucket_size argument3553 without data3554 aggregates properly within bounds3555 aggregates properly out of bounds3556 records duration3557 when query timeout3558 with should_raise_for_dev? false3559 logs canceled queries3560 returns fallback3561 with should_raise_for_dev? true3562 raises error3563 #add_metric3564 computes the metric value for given metric3565 #with_finished_at3566 adds a timestamp to the hash yielded by the block3567WorkItems::CreateService3568 behaves like creates work item in container3569 #execute3570 when user is not allowed to create a work item in the container3571 is expected to be error3572 returns an access error3573 when applying quick actions3574 when work item type is not the default Issue3575 saves the work item without applying the quick action3576 when work item type is the default Issue3577 saves the work item and applies the quick action3578 when params are valid3579 created instance is a WorkItem3580 calls NewIssueWorker with correct arguments3581 when params are invalid3582 is expected to be error3583 returns validation errors3584 does not execute after-create transaction widgets3585 checking spam3586 executes SpamActionService3587 behaves like work item widgetable service3588 executes callbacks for expected widgets3589 hierarchy widget3590 when user can admin parent link3591 when parent is valid work item3592 creates new work item and sets parent reference3593 when parent type is invalid3594 behaves like fails creating work item and returns errors3595 does not create new work item if parent can not be set3596 when user cannot admin parent link3597 behaves like fails creating work item and returns errors3598 does not create new work item if parent can not be set3599 behaves like creates work item in container3600 #execute3601 when user is not allowed to create a work item in the container3602 is expected to be error3603 returns an access error3604 when applying quick actions3605 when work item type is not the default Issue3606 saves the work item without applying the quick action3607 when work item type is the default Issue3608 saves the work item and applies the quick action3609 when params are valid3610 created instance is a WorkItem3611 calls NewIssueWorker with correct arguments3612 when params are invalid3613 is expected to be error3614 returns validation errors3615 does not execute after-create transaction widgets3616 checking spam3617 executes SpamActionService3618 behaves like work item widgetable service3619 executes callbacks for expected widgets3620 hierarchy widget3621 when user can admin parent link3622 when parent is valid work item3623 creates new work item and sets parent reference3624 when parent type is invalid3625 behaves like fails creating work item and returns errors3626 does not create new work item if parent can not be set3627 when user cannot admin parent link3628 behaves like fails creating work item and returns errors3629 does not create new work item if parent can not be set3630 behaves like creates work item in container3631 #execute3632 when user is not allowed to create a work item in the container3633 is expected to be error3634 returns an access error3635 when applying quick actions3636 when work item type is not the default Issue3637 saves the work item without applying the quick action3638 when work item type is the default Issue3639 saves the work item and applies the quick action3640 when params are valid3641 created instance is a WorkItem3642 calls NewIssueWorker with correct arguments3643 when params are invalid3644 is expected to be error3645 returns validation errors3646 does not execute after-create transaction widgets3647 checking spam3648 executes SpamActionService3649 behaves like work item widgetable service3650 executes callbacks for expected widgets3651 hierarchy widget3652 when user can admin parent link3653 when parent is valid work item3654 creates new work item and sets parent reference3655 when parent type is invalid3656 behaves like fails creating work item and returns errors3657 does not create new work item if parent can not be set3658 when user cannot admin parent link3659 behaves like fails creating work item and returns errors3660 does not create new work item if parent can not be set3661GroupDescendantsFinder3662 #has_children?3663 is true when there are projects3664 when there are subgroups3665 is true when there are projects3666 #execute3667 includes projects3668 does not include archived projects3669 does not include projects aimed for deletion3670 sorts elements by name as default3671 does not include projects shared with the group3672 when archived is `true`3673 includes archived projects3674 when archived is `only`3675 includes only archived projects3676 with a filter3677 includes only projects matching the filter3678 sorting by name3679 sorts elements by name3680 with nested groups3681 sorts elements by name3682 with shared groups3683 without common ancestor3684 is expected to be empty3685 with common ancestor3686 querying under the common ancestor3687 is expected to be empty3688 querying the common ancestor3689 contains shared subgroups3690 with nested groups3691 #execute3692 contains projects and subgroups3693 does not include subgroups the user does not have access to3694 only includes public groups when no user is given3695 when archived is `true`3696 includes archived projects in the count of subgroups3697 with a filter3698 behaves like filter examples3699 contains only matching projects and subgroups3700 does not include subgroups the user does not have access to3701 with matching children3702 includes a group that has a subgroup matching the query and its parent3703 includes the parent of a matching project3704 does not include the parent itself3705 with a small page size3706 contains all the ancestors of a matching subgroup regardless the page size3707 when feature flag :linear_group_descendants_finder_upto is disabled3708 behaves like filter examples3709 contains only matching projects and subgroups3710 does not include subgroups the user does not have access to3711 with matching children3712 includes a group that has a subgroup matching the query and its parent3713 includes the parent of a matching project3714 does not include the parent itself3715 with a small page size3716 contains all the ancestors of a matching subgroup regardless the page size3717Members::CreateService3718 when the current user does not have permission to create members3719 raises a Gitlab::Access::AccessDeniedError3720 when a project maintainer attempts to add owners3721 raises a Gitlab::Access::AccessDeniedError3722 when passing an invalid source3723 raises a RuntimeError3724 when passing valid parameters3725 adds a user to members3726 when user_id is passed as an integer3727 successfully creates member3728 with user_id as an array of integers3729 successfully creates members3730 with user_id as an array of strings3731 successfully creates members3732 when executing on a group3733 adds a user to members3734 triggers a members added event3735 when only one user fails validations3736 triggers the members added event3737 when all users fail validations3738 does not trigger the members added event3739 when passing no user ids3740 does not add a member3741 when passing many user ids3742 limits the number of users to 1003743 when passing an invalid access level3744 does not add a member3745 when passing an existing invite user id3746 allows already invited members to be re-invited by email and updates the member access3747 when adding a project_bot3748 when project_bot is already a member3749 does not update the member3750 when project_bot is not already a member3751 adds the member3752 when tracking the invite source3753 when invite_source is not passed3754 raises an error3755 when invite_source is passed3756 tracks the invite source from params3757 with an already existing member3758 tracks the invite source from params3759 when it is a net_new_user3760 tracks the invite source from params3761 when assigning tasks to be done3762 creates 2 task issues3763 when it is an invite by email passed to user_id3764 does not create task issues3765 when passing many user ids3766 still creates 2 task issues3767 when a `tasks_project_id` is missing3768 does not create task issues3769 when `tasks_to_be_done` are missing3770 does not create task issues3771 when invalid `tasks_to_be_done` are passed3772 does not create task issues3773 when invalid `tasks_project_id` is passed3774 does not create task issues3775 when a member was already invited3776 does not create task issues3777Packages::Debian::ProcessChangesWorker3778 #perform3779 with mocked service3780 calls ProcessChangesService3781 with non existing package file3782 returns early without error3783 with nil package file id3784 returns early without error3785 with non existing user3786 returns early without error3787 with nil user id3788 returns early without error3789 without a distribution3790 removes package file and log exception3791 when the service raises an error3792 removes package file and log exception3793 behaves like an idempotent worker3794 is labeled as idempotent3795 performs multiple times sequentially without raising an exception3796 sets the Debian file type as changes3797ProjectMemberPolicy3798 with regular member3799 is expected to be allowed :read_project3800 is expected to be allowed :update_project_member3801 is expected to be allowed :destroy_project_member3802 is expected not to be allowed :destroy_project_bot_member3803 when user is the holder of personal namespace in which the project resides3804 is expected to be allowed :read_project3805 is expected to be disallowed :update_project_member3806 is expected to be disallowed :destroy_project_member3807 with a bot member3808 is expected to be allowed :destroy_project_bot_member3809 is expected not to be allowed :update_project_member3810 is expected not to be allowed :destroy_project_member3811 for access requests3812 for own access request3813 is expected to be allowed :withdraw_member_access_request3814 for another user's access request3815 is expected not to be allowed :withdraw_member_access_request3816 for own, valid membership3817 is expected not to be allowed :withdraw_member_access_request3818Operations::FeatureFlag3819 behaves like includes Limitable concern3820 #exceeds_limits?3821 without plan limits configured3822 is expected to eq false3823 without plan limits configured3824 is expected to eq false3825 with an existing model3826 is expected to eq true3827 validations3828 is expected to be a kind of Limitable3829 without plan limits configured3830 can create new models3831 with plan limits configured3832 can create new models3833 with an existing model3834 cannot create new models exceeding the plan limits3835 associations3836 is expected to belong to project required: false3837 is expected to have many strategies3838 default values3839 is expected to be active3840 is expected to eq "new_version_flag"3841 .reference_pattern3842 is expected to match "[feature_flag:123]"3843 is expected to match "[feature_flag:gitlab-org/gitlab/123]"3844 .link_reference_pattern3845 is expected to match "http://localhost/gitlab-org/gitlab/-/feature_flags/123/edit"3846 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123/edit"3847 is expected not to match "gitlab-org/gitlab/-/feature_flags/123/edit"3848 #to_reference3849 returns feature flag id3850 returns complete path to the feature flag with full: true3851 validations3852 is expected to validate that :project cannot be empty/falsy3853 is expected to validate that :name cannot be empty/falsy3854 is expected to validate that :name is case-sensitively unique within the scope of :project_id3855 is expected to define :version as an enum backed by an integer with values ‹{new_version_flag: 2}›3856 a version 2 feature flag3857 is valid if associated with Operations::FeatureFlags::Strategy models3858 behaves like AtomicInternalId3859 .has_internal_id3860 Module inclusion3861 is expected to includes the AtomicInternalId module3862 Validation3863 when presence validation is required3864 when creating an object3865 raises an error if the internal id is blank3866 when updating an object3867 raises an error if the internal id is blank3868 when presence validation is not required3869 when creating an object3870 does not raise an error if the internal id is blank (PENDING: No reason given)3871 when updating an object3872 does not raise an error if the internal id is blank (PENDING: No reason given)3873 Creating an instance3874 saves a new instance properly3875 internal id generation3876 calls InternalId.generate_next and sets internal id attribute3877 does not overwrite an existing internal id3878 when the instance has an internal ID set3879 calls InternalId.update_last_value and sets the `last_value` to that of the instance3880 unsetting the instance internal id on rollback3881 when the internal id has been changed3882 when the internal id is automatically set3883 clears it on the instance3884 when the internal id is manually set3885 does not clear it on the instance3886 when the internal id has not been changed3887 preserves the value on the instance3888 supply of internal ids3889 provides a persistent supply of IID values, sensitive to the current state3890 #reset_scope_internal_id_attribute3891 rewinds the allocated IID3892 allocates the same IID3893 .enabled3894 when the feature flag is active3895 returns the flag3896 when the feature flag is inactive3897 does not return the flag3898 .disabled3899 when the feature flag is active3900 does not return the flag3901 when the feature flag is inactive3902 returns the flag3903 .for_unleash_client3904 matches wild cards in the scope3905 matches wild cards case sensitively3906 returns feature flags ordered by id3907 #hook_attrs3908 includes expected attributes3909Gitlab::Ci::RunnerUpgradeCheck3910 #check_runner_upgrade_suggestion3911 with failing Gitlab::Ci::RunnerReleases request3912 returns :error3913 with available_runner_releases configured3914 with no available runner releases3915 with Gitlab::VERSION set to 14.1.13916 with runner_version from last minor release3917 returns :unavailable3918 up to 14.1.13919 with nil runner_version3920 returns :invalid_version3921 with invalid runner_version3922 returns :invalid_version3923 with Gitlab::VERSION set to 14.1.1233924 with a runner_version that is too recent3925 returns :unavailable3926 with Gitlab::VERSION set to 14.0.13927 with valid params3928 runner_version: "v15.0.0", expected_status: :unavailable, expected_suggested_version: "15.0.0"3929 is expected to eq [#<Gitlab::VersionInfo:0x00007f58c95682a8 @major=15, @minor=0, @patch=0, @suffix_s="", @suffix=[]>, :unavailable]3930 runner_version: "v14.1.0-rc3", expected_status: :recommended, expected_suggested_version: "14.1.1"3931 is expected to eq [#<Gitlab::VersionInfo:0x00007f58ca74c2f8 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3932 runner_version: "v14.1.0~beta.1574.gf6ea9389", expected_status: :recommended, expected_suggested_version: "14.1.1"3933 is expected to eq [#<Gitlab::VersionInfo:0x00007f58cb884c78 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3934 runner_version: "v14.1.0/1.1.0", expected_status: :recommended, expected_suggested_version: "14.1.1"3935 is expected to eq [#<Gitlab::VersionInfo:0x00007f58cc9c1c20 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3936 runner_version: "v14.1.0", expected_status: :recommended, expected_suggested_version: "14.1.1"3937 is expected to eq [#<Gitlab::VersionInfo:0x00007f5915bc4ab0 @major=14, @minor=1, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3938 runner_version: "v14.0.1", expected_status: :recommended, expected_suggested_version: "14.0.2"3939 is expected to eq [#<Gitlab::VersionInfo:0x00007f5909fdbcb8 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3940 runner_version: "v14.0.2-rc1", expected_status: :recommended, expected_suggested_version: "14.0.2"3941 is expected to eq [#<Gitlab::VersionInfo:0x00007f5904067d68 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3942 runner_version: "v14.0.2", expected_status: :unavailable, expected_suggested_version: "14.0.2"3943 is expected to eq [#<Gitlab::VersionInfo:0x00007f590062d738 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :unavailable]3944 runner_version: "v13.10.1", expected_status: :available, expected_suggested_version: "14.0.2"3945 is expected to eq [#<Gitlab::VersionInfo:0x00007f58f65f15a8 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :available]3946 runner_version: "v13.10.1~beta.1574.gf6ea9389", expected_status: :recommended, expected_suggested_version: "13.10.1"3947 is expected to eq [#<Gitlab::VersionInfo:0x00007f58f2fdb590 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3948 runner_version: "v13.10.1/1.1.0", expected_status: :recommended, expected_suggested_version: "13.10.1"3949 is expected to eq [#<Gitlab::VersionInfo:0x00007f58e349be00 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3950 runner_version: "v13.10.0", expected_status: :recommended, expected_suggested_version: "13.10.1"3951 is expected to eq [#<Gitlab::VersionInfo:0x00007f58e5e18c10 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3952 runner_version: "v13.9.2", expected_status: :recommended, expected_suggested_version: "14.0.2"3953 is expected to eq [#<Gitlab::VersionInfo:0x00007f58d5b37e20 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3954 runner_version: "v13.9.0", expected_status: :recommended, expected_suggested_version: "14.0.2"3955 is expected to eq [#<Gitlab::VersionInfo:0x00007f58d8b71460 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3956 runner_version: "v13.8.1", expected_status: :recommended, expected_suggested_version: "14.0.2"3957 is expected to eq [#<Gitlab::VersionInfo:0x00007f58c32d88e0 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3958 runner_version: "v11.4.1", expected_status: :recommended, expected_suggested_version: "14.0.2"3959 is expected to eq [#<Gitlab::VersionInfo:0x00007f58cccd23b0 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3960 with Gitlab::VERSION set to 13.9.03961 with valid params3962 runner_version: "v14.0.0", expected_status: :recommended, expected_suggested_version: "14.0.2"3963 is expected to eq [#<Gitlab::VersionInfo:0x00007f5918bf5ab8 @major=14, @minor=0, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3964 runner_version: "v13.10.1", expected_status: :unavailable, expected_suggested_version: "13.10.1"3965 is expected to eq [#<Gitlab::VersionInfo:0x00007f59045ab950 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :unavailable]3966 runner_version: "v13.10.0", expected_status: :recommended, expected_suggested_version: "13.10.1"3967 is expected to eq [#<Gitlab::VersionInfo:0x00007f58f4e13990 @major=13, @minor=10, @patch=1, @suffix_s="", @suffix=[]>, :recommended]3968 runner_version: "v13.9.2", expected_status: :unavailable, expected_suggested_version: "13.9.2"3969 is expected to eq [#<Gitlab::VersionInfo:0x00007f58e1ce6058 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :unavailable]3970 runner_version: "v13.9.0", expected_status: :recommended, expected_suggested_version: "13.9.2"3971 is expected to eq [#<Gitlab::VersionInfo:0x00007f58e5c158f0 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3972 runner_version: "v13.8.1", expected_status: :recommended, expected_suggested_version: "13.9.2"3973 is expected to eq [#<Gitlab::VersionInfo:0x00007f58d69db490 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3974 runner_version: "v11.4.1", expected_status: :recommended, expected_suggested_version: "13.9.2"3975 is expected to eq [#<Gitlab::VersionInfo:0x00007f58c32e91e0 @major=13, @minor=9, @patch=2, @suffix_s="", @suffix=[]>, :recommended]3976 up to 15.1.03977 with Gitlab::VERSION set to 15.2.0-pre3978 with unknown runner version3979 recommends 15.1.0 since 14.11 is an unknown release and 15.1.0 is available3980MergeRequests::RequestReviewService3981 #execute3982 invalid permissions3983 behaves like failed service execution3984 returns an error3985 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3986 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3987 reviewer does not exist3988 behaves like failed service execution3989 returns an error3990 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3991 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3992 reviewer exists3993 returns success3994 updates reviewers state3995 sends email to reviewer3996 creates a new todo for the reviewer3997 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated3998 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:1060 namespace695/project739!1>) 1 time3999AutoMergeService4000 .all_strategies_ordered_by_preference4001 returns all strategies in preference order4002 #available_strategies4003 returns available strategies4004 when the head piipeline succeeded4005 returns available strategies4006 #preferred_strategy4007 returns preferred strategy4008 when the head piipeline succeeded4009 returns available strategies4010 .get_service_class4011 returns service instance4012 when strategy is not present4013 returns nil4014 #execute4015 delegates to a relevant service instance4016 when the head pipeline succeeded4017 returns failed4018 when strategy is not specified4019 chooses the most preferred strategy4020 #update4021 when auto merge is enabled4022 delegates to a relevant service instance4023 when auto merge is not enabled4024 returns failed4025 #process4026 delegates to a relevant service instance4027 when auto merge is not enabled4028 returns nil4029 #cancel4030 delegates to a relevant service instance4031 when auto merge is not enabled4032 returns error4033 #abort4034 delegates to a relevant service instance4035 when auto merge is not enabled4036 returns error4037Gitlab::GithubImport::Importer::ReleasesImporter4038 #execute4039 imports the releases in bulk4040 imports draft releases4041 is idempotent4042 #build_releases4043 returns an Array containing release rows4044 does not create releases that already exist4045 uses a default release description if none is provided4046 does not create releases that have a NULL tag4047 does not create duplicate release tags4048 does not create invalid release4049 #build_attributes4050 the returned Hash4051 returns the attributes of the release as a Hash4052 includes the tag name4053 includes the release description4054 includes the project ID4055 includes the created timestamp4056 includes the updated timestamp4057 includes the release name4058 author_id attribute4059 returns the Gitlab user_id when Github release author is found4060 returns ghost user when author is empty in Github release4061 when Github author is not found in Gitlab4062 returns project creator as author4063 #each_release4064 returns an Enumerator4065 yields every release to the Enumerator4066 #description_for4067 returns the description when present4068 returns a generated description when one is not present4069ApplicationRecord4070 #id_in4071 returns records of the ids4072 .safe_ensure_unique4073 returns false when ActiveRecord::RecordNotUnique is raised4074 retries based on retry count specified4075 safe find or create methods4076 .safe_find_or_create_by4077 creates the suggestion avoiding race conditions4078 passes a block to find_or_create_by4079 does not create a record when is not valid4080 .safe_find_or_create_by!4081 creates a record using safe_find_or_create_by4082 raises a validation error if the record was not persisted4083 passes a block to find_or_create_by4084 raises a record not found error in case of attributes mismatch4085 .underscore4086 returns the underscored value of the class as a string4087 .where_exists4088 produces a WHERE EXISTS query4089 .where_not_exists4090 produces a WHERE NOT EXISTS query4091 .transaction4092 opens a new transaction4093 does not increment a counter when a transaction is not nested4094 increments a counter when a nested transaction is created4095 increments a counter when a transaction is created in ActiveRecord4096 .with_fast_read_statement_timeout4097 when the query runs faster than configured timeout4098 executes the query without error4099 when the query runs longer than configured timeout4100 cancels the query and raises an exception4101 with database load balancing4102 yields control4103 when the query runs faster than configured timeout4104 executes the query without error4105 when the query runs longer than configured timeout4106 cancels the query and raiss an exception4107 .default_select_columns4108 without an ignored column4109 behaves like selects identically to the default4110 generates the same sql as the default4111 with an ignored column4112 behaves like selects identically to the default4113 generates the same sql as the default4114Pages::DeploymentUploader4115 behaves like builds correct paths4116 #store_dir4117 behaves like matches the method pattern4118 is expected to match /\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+/4119 #cache_dir4120 behaves like matches the method pattern4121 is expected to match /pages\/@hashed\/tmp\/cache/4122 #work_dir4123 behaves like matches the method pattern4124 is expected to match /pages\/@hashed\/tmp\/work/4125 #upload_path4126 behaves like matches the method pattern4127 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4128 #relative_path4129 is relative (PENDING: Path not set, skipping.)4130 .absolute_path4131 behaves like matches the method pattern4132 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4133 .base_dir4134 behaves like matches the method pattern4135 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4136 path traversal exploits4137 throws an exception4138 when object store is REMOTE4139 preserves original file when stores it4140 behaves like builds correct paths4141 #store_dir4142 behaves like matches the method pattern4143 is expected to match /\A\h{2}\/\h{2}\/\h{64}\/pages_deployments\/\d+\z/4144 #cache_dir4145 behaves like matches the method pattern4146 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4147 #work_dir4148 behaves like matches the method pattern4149 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4150 #upload_path4151 behaves like matches the method pattern4152 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4153 #relative_path4154 is relative (PENDING: Path not set, skipping.)4155 .absolute_path4156 behaves like matches the method pattern4157 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4158 .base_dir4159 behaves like matches the method pattern4160 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4161 path traversal exploits4162 throws an exception4163 when file is stored in valid local_path4164 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/pages\/@hashed\/\h{2}\/\h{2}\/\h{64}\/pages_deployments\/18\/pages.zip/4165 preserves original file when stores it4166 .default_store4167 returns local store when object storage is not enabled4168 returns remote store when object storage is enabled4169Metrics::Dashboard::CustomDashboardService4170 #raw_dashboard4171 behaves like #raw_dashboard raises error if dashboard loading fails4172 when yaml is too large4173 raises error4174 when yaml loader returns error4175 raises error4176 when yaml is not a hash4177 returns nil4178 #get_dashboard4179 when the dashboard does not exist4180 does not update gitlab_metrics_dashboard_processing_time_ms metric4181 behaves like misconfigured dashboard service response4182 returns an appropriate message and status code4183 behaves like raises error for users with insufficient permissions4184 when the user does not have sufficient access4185 behaves like misconfigured dashboard service response4186 returns an appropriate message and status code4187 when the user is anonymous4188 behaves like misconfigured dashboard service response4189 returns an appropriate message and status code4190 when the dashboard exists4191 caches the unprocessed dashboard for subsequent calls4192 tracks panel type4193 behaves like valid dashboard service response4194 behaves like valid dashboard service response for schema4195 returns a json representation of the dashboard4196 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric4197 prometheus4198 with metric in database4199 includes metric_id4200 and the dashboard is then deleted4201 does not return the previously cached dashboard4202 when the dashboard is configured incorrectly4203 behaves like misconfigured dashboard service response4204 returns an appropriate message and status code4205 .all_dashboard_paths4206 when there are no project dashboards4207 returns an empty array4208 when there are project dashboards available4209 returns the dashboard attributes4210 caches repo file list4211 .valid_params?4212 is expected to be truthy4213 missing dashboard_path4214 is expected to be falsey4215 empty dashboard_path4216 is expected to be falsey4217Gitlab::SlashCommands::Deploy4218 #execute4219 if no environment is defined4220 does not execute an action4221 with environment4222 without actions4223 does not execute an action4224 when single action has been matched4225 returns success result4226 when more than one action has been matched4227 when there is no specific actions with a environment name4228 returns error about too many actions defined4229 when one of the actions is environement specific action4230 deploys to production4231 when one of the actions is a teardown action4232 deploys to production4233 with extra spaces in the deploy command4234 deploys to production4235 self.match4236 matches the environment4237 matches the environment with spaces in it4238 matches the environment name with surrounding spaces4239 returns nil for text that is not a deploy command4240 returns nil for a partial command4241 with ReDoS attempts4242 has smaller than linear execution time growth with a malformed "to"4243UserRecentEventsFinder4244 #execute4245 does not include the events if the user cannot read cross project4246 when profile is public4247 returns all the events4248 when profile is private4249 returns no event4250 events from multiple users4251 includes events from all users4252 does not include events from users with private profile4253 selected events4254 event_filter: #<EventFilter:0x00007f58e840b9b8 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }4255 only returns selected events from all users (id DESC)4256 event_filter: #<EventFilter:0x00007f58e8408b28 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }4257 only returns selected events from all users (id DESC)4258 event_filter: #<EventFilter:0x00007f58e8402778 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }4259 only returns selected events from all users (id DESC)4260 event_filter: #<EventFilter:0x00007f58e8400798 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }4261 only returns selected events from all users (id DESC)4262 event_filter: #<EventFilter:0x00007f58e83fa4d8 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }4263 only returns selected events from all users (id DESC)4264 event_filter: #<EventFilter:0x00007f58e83f82c8 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }4265 only returns selected events from all users (id DESC)4266 event_filter: #<EventFilter:0x00007f58e83f2058 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }4267 only returns selected events from all users (id DESC)4268 with pagination params4269 limit: nil, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user, private_event_second_user, public_event, internal_event, private_event] }4270 returns paginated events sorted by id (DESC)4271 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }4272 returns paginated events sorted by id (DESC)4273 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }4274 returns paginated events sorted by id (DESC)4275 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }4276 returns paginated events sorted by id (DESC)4277 filter activity events4278 includes all events4279 only includes push events4280 only includes merge events4281 only includes issue events4282 only includes comments events4283 only includes wiki events4284 only includes design events4285 only includes team events4286 when unknown filter is given4287 includes returns all events4288 issue activity events4289 includes all issue related events4290 limits4291 when limit is not set4292 returns events limited to DEFAULT_LIMIT4293 when limit is set4294 returns events limited to specified limit4295 when limit is set to a number that exceeds maximum limit4296 returns events limited to MAX_LIMIT4297RuboCop::CodeReuseHelpers4298 # order random4299 delegates ee? to GitlabEdition4300 delegates jh? to GitlabEdition4301 #in_worker?4302 returns true for a node in the workers directory4303 returns false for a node outside the workers directory4304 #in_finder?4305 returns true for a node in the finders directory4306 returns false for a node outside the finders directory4307 #in_serializer?4308 returns true for a node in the serializers directory4309 returns false for a node outside the serializers directory4310 #file_path_for_node4311 returns the file path of a node4312 #in_service_class?4313 returns true for a node in the services directory4314 returns false for a node outside the services directory4315 #name_of_constant4316 returns the name of a constant4317 #in_presenter?4318 returns true for a node in the presenters directory4319 returns false for a node outside the presenters directory4320 #each_send_node4321 yields every send node to the supplied block4322 #in_model?4323 returns true for a node in the models directory4324 returns false for a node outside the models directory4325 #in_app_directory?4326 returns true for a directory in the CE app/ directory4327 returns true for a directory in the EE app/ directory4328 returns false for a directory in the lib/ directory4329 #each_class_method4330 yields every class method to the supplied block4331 #in_graphql_directory?4332 returns true for a directory in the FOSS app/graphql directory4333 returns true for a directory in the EE app/graphql directory4334 returns true for a directory in the EE app/graphql/ee directory4335 returns false for a directory in the FOSS app/graphql directory4336 returns false for a directory in the EE app/graphql directory4337 returns false for a directory in the EE app/graphql/ee directory4338 #in_api?4339 returns true for a node in the API directory4340 returns false for a node outside the API directory4341 #in_spec?4342 returns true for a node in the spec directory4343 returns true for a node in the ee/spec directory4344 returns false for a node outside the spec directory4345 #name_of_receiver4346 returns the name of a send receiver4347 #send_to_constant?4348 returns true when sending to a constant4349 returns false when sending to something other than a constant4350 #in_lib_directory?4351 returns true for a directory in the CE lib/ directory4352 returns true for a directory in the EE lib/ directory4353 returns false for a directory in the app/ directory4354 #disallow_send_to4355 disallows sending a message to a constant4356 #in_graphql?4357 returns true for a node in the FOSS GraphQL directory4358 returns true for a node in the EE GraphQL directory4359 returns false for a node outside the GraphQL directory4360 #send_receiver_name_ends_with?4361 returns true when the receiver ends with a suffix4362 returns false when the receiver is the same as a suffix4363Gitlab::Email::Receiver4364 requires all handlers to have a unique metric_event4365 requires all handlers to respond to #project4366 when the email contains a valid email address in a header4367 when in a Delivered-To header4368 behaves like successful receive4369 correctly finds the mail key4370 adds metric event4371 returns valid metadata4372 when in an Envelope-To header4373 behaves like successful receive4374 correctly finds the mail key4375 adds metric event4376 returns valid metadata4377 when in an X-Envelope-To header4378 behaves like successful receive4379 correctly finds the mail key4380 adds metric event4381 returns valid metadata4382 when enclosed with angle brackets in an Envelope-To header4383 behaves like successful receive4384 correctly finds the mail key4385 adds metric event4386 returns valid metadata4387 when mail key is in the references header with a comma4388 behaves like successful receive4389 correctly finds the mail key4390 adds metric event4391 returns valid metadata4392 when all other headers are missing4393 it uses receive headers to find the key4394 behaves like successful receive4395 correctly finds the mail key4396 adds metric event4397 returns valid metadata4398 when we cannot find a capable handler4399 behaves like failed receive with event4400 adds metric event4401 when the email is blank4402 behaves like failed receive without event4403 adds metric event4404 when the email was auto generated with Auto-Submitted header4405 behaves like failed receive without event4406 adds metric event4407 when the email's To field is blank4408 behaves like successful receive4409 correctly finds the mail key4410 adds metric event4411 returns valid metadata4412 when the email's From field is blank4413 behaves like successful receive4414 correctly finds the mail key4415 adds metric event4416 returns valid metadata4417 when the email was auto generated with X-Autoreply header4418 behaves like failed receive without event4419 adds metric event4420 event raising via errors4421 handling errors which do not raise events4422 expected_error: Gitlab::Email::AutoGeneratedEmailError4423 behaves like failed receive without event4424 adds metric event4425 expected_error: Gitlab::Email::ProjectNotFound4426 behaves like failed receive without event4427 adds metric event4428 expected_error: Gitlab::Email::EmptyEmailError4429 behaves like failed receive without event4430 adds metric event4431 expected_error: Gitlab::Email::UserNotFoundError4432 behaves like failed receive without event4433 adds metric event4434 expected_error: Gitlab::Email::UserBlockedError4435 behaves like failed receive without event4436 adds metric event4437 expected_error: Gitlab::Email::UserNotAuthorizedError4438 behaves like failed receive without event4439 adds metric event4440 expected_error: Gitlab::Email::NoteableNotFoundError4441 behaves like failed receive without event4442 adds metric event4443 expected_error: Gitlab::Email::InvalidAttachment4444 behaves like failed receive without event4445 adds metric event4446 expected_error: Gitlab::Email::InvalidRecordError4447 behaves like failed receive without event4448 adds metric event4449 expected_error: Gitlab::Email::EmailTooLarge4450 behaves like failed receive without event4451 adds metric event4452 handling errors which do raise events4453 expected_error: Gitlab::Email::EmailUnparsableError4454 behaves like failed receive with event4455 adds metric event4456 expected_error: Gitlab::Email::UnknownIncomingEmail4457 behaves like failed receive with event4458 adds metric event4459 expected_error: ArgumentError4460 behaves like failed receive with event4461 adds metric event4462 expected_error: StandardError4463 behaves like failed receive with event4464 adds metric event4465Ci::ResourceGroups::AssignResourceFromResourceGroupService4466 #execute4467 when there is an available resource4468 requests resource4469 when failed to request resource4470 has a build waiting for resource4471 when the build has already retained a resource4472 has a pending build4473 when process mode is oldest_first4474 requests resource4475 when the other job exists in the newer pipeline4476 requests resource for the job in the oldest pipeline4477 when build is not `waiting_for_resource` state4478 attempts to request a resource4479 does not change the job status4480 when process mode is newest_first4481 requests resource4482 when the other job exists in the newer pipeline4483 requests resource for the job in the newest pipeline4484 when build is not `waiting_for_resource` state4485 attempts to request a resource4486 does not change the job status4487 when parallel services are running4488 can run the same command in parallel4489 when there are no available resources4490 does not request resource4491 when there is a stale build assigned to a resource4492 releases the resource from the stale build and assignes to the waiting build4493gitlab:user_management tasks4494 disable_project_and_group_creation4495 returns output info4496 with users4497 in the group4498 behaves like updates proper users4499 updates members4500 does not update other users4501 in the descendant groups4502 behaves like updates proper users4503 updates members4504 does not update other users4505 in the children projects4506 behaves like updates proper users4507 updates members4508 does not update other users4509Gitlab::SQL::Pattern4510 .fuzzy_search4511 query: "foo", columns: [#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f58e209f488 @name="issues", @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f58e209f398 @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)>, @table_alias=nil>, name="title">], expected: [:issue1]4512 finds the expected issues4513 query: "foo", columns: [:title], expected: [:issue1]4514 finds the expected issues4515 query: "foo", columns: ["title"], expected: [:issue1]4516 finds the expected issues4517 query: "foo", columns: [:description], expected: [:issue2]4518 finds the expected issues4519 query: "foo", columns: [:title, :description], expected: [:issue1, :issue2]4520 finds the expected issues4521 query: "bar", columns: [:title, :description], expected: [:issue1]4522 finds the expected issues4523 query: "baz", columns: [:title, :description], expected: [:issue2]4524 finds the expected issues4525 query: "qux", columns: [:title, :description], expected: []4526 finds the expected issues4527 query: "oh", columns: [:title, :description], expected: [:issue3]4528 finds the expected issues4529 query: "OH", columns: [:title, :description], expected: [:issue3]4530 finds the expected issues4531 query: "ah", columns: [:title, :description], expected: [:issue3]4532 finds the expected issues4533 query: "AH", columns: [:title, :description], expected: [:issue3]4534 finds the expected issues4535 query: "oh", columns: [:title], expected: [:issue3]4536 finds the expected issues4537 query: "ah", columns: [:description], expected: [:issue3]4538 finds the expected issues4539 query: "", columns: [:title], expected: [:issue1, :issue2, :issue3]4540 finds the expected issues4541 query: ["a", "b"], columns: [:title], expected: [:issue1, :issue2, :issue3]4542 finds the expected issues4543 .to_pattern4544 when a query is shorter than 3 chars4545 returns exact matching pattern4546 and ignore_minimum_char_limit is true4547 returns partial matching pattern4548 when a query with a escape character is shorter than 3 chars4549 returns sanitized exact matching pattern4550 and ignore_minimum_char_limit is true4551 returns sanitized partial matching pattern4552 when a query is equal to 3 chars4553 returns partial matching pattern4554 when a query with a escape character is equal to 3 chars4555 returns partial matching pattern4556 when a query is longer than 3 chars4557 returns partial matching pattern4558 when a query with a escape character is longer than 3 chars4559 returns sanitized partial matching pattern4560 .select_fuzzy_terms4561 with a word equal to 3 chars4562 returns array containing a word4563 with a word shorter than 3 chars4564 returns empty array4565 with two words both equal to 3 chars4566 returns array containing two words4567 with two words divided by two spaces both equal to 3 chars4568 returns array containing two words4569 with two words equal to 3 chars and shorter than 3 chars4570 returns array containing a word4571 .split_query_to_search_terms4572 with words separated by spaces4573 returns array containing individual words4574 with a multi-word surrounded by double quote4575 returns array containing a multi-word4576 with a multi-word surrounded by double quote and two words4577 returns array containing a multi-word and two words4578 with a multi-word surrounded by double quote missing a spece before the first double quote4579 returns array containing two words with double quote4580 with a multi-word surrounded by double quote missing a spece after the second double quote4581 returns array containing two words with double quote4582 with two multi-word surrounded by double quote and two words4583 returns array containing two multi-words and two words4584 .fuzzy_arel_match4585 with a word equal to 3 chars4586 returns a single ILIKE condition4587 with a word shorter than 3 chars4588 returns a single equality condition4589 uses LOWER instead of ILIKE when LOWER is enabled4590 with two words both equal to 3 chars4591 returns a joining LIKE condition using a AND4592 with two words both shorter than 3 chars4593 returns a single ILIKE condition4594 with two words, one shorter 3 chars4595 returns a single ILIKE condition using the longer word4596 with a multi-word surrounded by double quote and two words4597 returns a joining LIKE condition using a AND4598 when passing an Arel column4599 returns a condition with the table and column name4600Gitlab::Auth::Saml::User4601 #save4602 account exists on server4603 and should bind with SAML4604 adds the SAML identity to the existing user4605 external groups4606 are defined4607 marks the user as external4608 are defined but the user does not belong there4609 does not mark the user as external4610 user was external, now should not be4611 makes user internal4612 no account exists on server4613 external groups4614 are defined4615 marks the user as external4616 are defined but the user does not belong there4617 does not mark the user as external4618 with auto_link_ldap_user disabled (default)4619 with allow_single_sign_on enabled4620 creates a user from SAML4621 with allow_single_sign_on default (["saml"])4622 does not throw an error4623 with allow_single_sign_on disabled4624 throws an error4625 with auto_link_ldap_user enabled4626 and at least one LDAP provider is defined4627 and a corresponding LDAP person4628 and no account for the LDAP user4629 creates a user with dual LDAP and SAML identities4630 and LDAP user has an account already4631 adds the omniauth identity to the LDAP account4632 saves successfully on subsequent tries, when both identities are present4633 when uid is an uid4634 behaves like find LDAP person4635 adds the omniauth identity to the LDAP account4636 when uid is a dn4637 behaves like find LDAP person4638 adds the omniauth identity to the LDAP account4639 when uid is an email4640 behaves like find LDAP person4641 adds the omniauth identity to the LDAP account4642 user has SAML user, and wants to add their LDAP identity4643 adds the LDAP identity to the existing SAML user4644 when signup is disabled4645 creates the user4646 when user confirmation email is enabled4647 creates and confirms the user anyway4648 when the current minimum password length is different from the default minimum password length4649 creates the user4650 blocking4651 signup with SAML only4652 dont block on create4653 does not block the user4654 block on create4655 blocks user4656 sign-in4657 dont block on create4658 is expected not to be blocked4659 block on create4660 is expected not to be blocked4661 #find_user4662 raw info hash attributes empty4663 does not mark user as external4664 #bypass_two_factor?4665 with authn_contexts_worth_two_factors configured4666 returns true when authn_context is worth two factors4667 returns false when authn_context is not worth two factors4668 returns false when authn_context is blank4669 without auth_contexts_worth_two_factors_configured4670 returns false when authn_context is present4671 returns false when authn_context is blank4672Files::DeleteService4673 #execute4674 when the file's last commit is earlier than the latest commit for this branch4675 returns a hash with the correct error message and a :error status4676 when the file's last commit sha does match the supplied last_commit_sha4677 behaves like successfully deletes the file4678 returns a hash with the :success status4679 deletes the file4680 uses the commit email4681 when the last_commit_sha is not supplied4682 behaves like successfully deletes the file4683 returns a hash with the :success status4684 deletes the file4685 uses the commit email4686PlanLimits4687 #exceeded?4688 when given limit subject is an integer4689 behaves like comparing limits4690 when limit for given name results to a disabled value4691 is expected to eq false4692 when limit for given name results to a non-disabled value4693 and given count is smaller than limit4694 is expected to eq false4695 and given count is equal to the limit4696 is expected to eq true4697 and given count is greater than the limit4698 is expected to eq true4699 when given limit subject is an ActiveRecord::Relation4700 behaves like comparing limits4701 when limit for given name results to a disabled value4702 is expected to eq false4703 when limit for given name results to a non-disabled value4704 and given count is smaller than limit4705 is expected to eq false4706 and given count is equal to the limit4707 is expected to eq true4708 and given count is greater than the limit4709 is expected to eq true4710 when given limit subject is something else4711 raises an error4712 #limit_for4713 when given limit name does not exist4714 raises an error4715 when given limit name is disabled4716 is expected to eq nil4717 and alternate_limit is a non-zero integer4718 is expected to eq 14719 and alternate_limit is zero4720 is expected to eq nil4721 and alternate_limit is a proc that returns non-zero integer4722 is expected to eq 14723 and alternate_limit is a proc that returns zero4724 is expected to eq nil4725 and alternate_limit is a proc that returns nil4726 is expected to eq nil4727 when given limit name is enabled4728 and alternate_limit is a non-zero integer that is bigger than the plan limit4729 is expected to eq 24730 and alternate_limit is a non-zero integer that is smaller than the plan limit4731 is expected to eq 14732 and alternate_limit is zero4733 is expected to eq 24734 and alternate_limit is a proc that returns non-zero integer that is bigger than the plan limit4735 is expected to eq 24736 and alternate_limit is a proc that returns non-zero integer that is smaller than the plan limit4737 is expected to eq 14738 and alternate_limit is a proc that returns zero4739 is expected to eq 24740 and alternate_limit is a proc that returns nil4741 is expected to eq 24742 validates default values4743 has positive values for enabled limits4744 has zero values for disabled limits4745Gitlab::GithubImport::Representation::DiffNote4746 .from_api_response4747 behaves like a DiffNote representation4748 returns an instance of DiffNote4749 the returned DiffNote4750 includes the number of the merge request4751 includes the file path of the diff4752 includes the commit ID4753 includes the created timestamp4754 includes the updated timestamp4755 includes the GitHub ID4756 returns the noteable type4757 #diff_hash4758 returns a Hash containing the diff details4759 #diff_position4760 when the diff is an addition4761 returns a Gitlab::Diff::Position4762 when the diff is an deletion4763 returns a Gitlab::Diff::Position4764 #github_identifiers4765 returns a hash with needed identifiers4766 #line_code4767 generates the proper line code4768 #note and #contains_suggestion?4769 includes the note body4770 when the note have a suggestion4771 returns the suggestion formatted in the note4772 when the note have a multiline suggestion4773 returns the multi-line suggestion formatted in the note4774 #author4775 includes the user details4776 when the author is empty4777 does not set the user if the response did not include a user4778 #discussion_id4779 finds or generates discussion_id value4780 .from_json_hash4781 behaves like a DiffNote representation4782 returns an instance of DiffNote4783 the returned DiffNote4784 includes the number of the merge request4785 includes the file path of the diff4786 includes the commit ID4787 includes the created timestamp4788 includes the updated timestamp4789 includes the GitHub ID4790 returns the noteable type4791 #diff_hash4792 returns a Hash containing the diff details4793 #diff_position4794 when the diff is an addition4795 returns a Gitlab::Diff::Position4796 when the diff is an deletion4797 returns a Gitlab::Diff::Position4798 #github_identifiers4799 returns a hash with needed identifiers4800 #line_code4801 generates the proper line code4802 #note and #contains_suggestion?4803 includes the note body4804 when the note have a suggestion4805 returns the suggestion formatted in the note4806 when the note have a multiline suggestion4807 returns the multi-line suggestion formatted in the note4808 #author4809 includes the user details4810 when the author is empty4811 does not set the user if the response did not include a user4812Environments::ScheduleToDeleteReviewAppsService4813 #execute4814 as a maintainer4815 behaves like can schedule for deletion4816 live run4817 marks the correct environment as scheduled_entries4818 dry run4819 returns the same but doesn't update the record4820 execution in parallel4821 does not execute unsafe_mark_scheduled_entries_environments4822 as a developer4823 behaves like can schedule for deletion4824 live run4825 marks the correct environment as scheduled_entries4826 dry run4827 returns the same but doesn't update the record4828 execution in parallel4829 does not execute unsafe_mark_scheduled_entries_environments4830 as a reporter4831 fails to delete environments4832GoogleCloud::GeneratePipelineService4833 for cloud-run4834 when there is no existing pipeline4835 creates a new branch with commit for cloud-run deployment4836 generated pipeline includes cloud-run deployment4837 simulate errors4838 fails to create branch4839 fails to commit changes4840 when there is an existing pipeline without `deploy` stage4841 introduces a `deploy` stage and includes the deploy-to-cloud-run job4842 stringifies keys from the existing pipelines4843 when there is an existing pipeline with `deploy` stage4844 includes the deploy-to-cloud-run job4845 when there is an existing pipeline with `includes`4846 includes the deploy-to-cloud-run job4847 for cloud-storage4848 when there is no existing pipeline4849 creates a new branch with commit for cloud-storage deployment4850 generated pipeline includes cloud-storage deployment4851BulkImports::Projects::Pipelines::DesignBundlePipeline4852 #run4853 imports design repository into destination project and removes tmpdir4854 #extract4855 downloads & extracts design bundle filepath4856 #load4857 creates design repository from bundle4858 when lfs is disabled4859 returns4860 when file does not exist4861 returns4862 when path is directory4863 returns4864 when path is symlink4865 returns4866 when path is not under tmpdir4867 returns4868 when path is being traversed4869 raises an error4870 #after_run4871 removes tmpdir4872 when tmpdir does not exist4873 does not attempt to remove tmpdir4874Projects::ImportExport::RelationExportService4875 #execute4876 removes temporary paths used to export files4877 when saver fails to export relation4878 flags export as failed4879 logs failed message4880 when an exception is raised4881 flags export as failed4882 logs exception error message4883 relation name and saver class4884 relation_name: "uploads", saver: Gitlab::ImportExport::UploadsSaver4885 exports relation using correct saver4886 assigns finished status and relation file4887 relation_name: "repository", saver: Gitlab::ImportExport::RepoSaver4888 exports relation using correct saver4889 assigns finished status and relation file4890 relation_name: "wiki_repository", saver: Gitlab::ImportExport::WikiRepoSaver4891 exports relation using correct saver4892 assigns finished status and relation file4893 relation_name: "lfs_objects", saver: Gitlab::ImportExport::LfsSaver4894 exports relation using correct saver4895 assigns finished status and relation file4896 relation_name: "snippets_repository", saver: Gitlab::ImportExport::SnippetsRepoSaver4897 exports relation using correct saver4898 assigns finished status and relation file4899 relation_name: "design_repository", saver: Gitlab::ImportExport::DesignRepoSaver4900 exports relation using correct saver4901 assigns finished status and relation file4902 relation_name: "project", saver: Gitlab::ImportExport::Project::RelationSaver4903 exports relation using correct saver4904 assigns finished status and relation file4905 relation_name: "labels", saver: Gitlab::ImportExport::Project::RelationSaver4906 exports relation using correct saver4907 assigns finished status and relation file4908Gitlab::Audit::Auditor4909 .audit4910 when authentication event4911 creates an authentication event4912 logs audit events to database4913 logs audit events to file4914 when overriding the create datetime4915 logs audit events to database4916 logs audit events to file4917 when overriding the additional_details4918 logs audit events to database4919 logs audit events to file4920 when overriding the target_details4921 logs audit events to database4922 logs audit events to file4923 when authentication event is false4924 does not create an authentication event4925 with permitted target4926 with feature_flag4927 logs audit events to database4928 when authentication event is invalid4929 tracks error4930 does not throw exception4931 when audit events are invalid4932 tracks error4933 does not throw exception4934 when audit event is not saved in database due to some database infra issue4935 calls log_to_file_and_stream with in memory events4936 does not throw exception4937GoogleApi::CloudPlatform::Client4938 .session_key_for_redirect_uri4939 creates a new session key4940 .new_session_key_for_redirect_uri4941 generates a new session key4942 #validate_token4943 when token is nil4944 is expected to be falsy4945 when expires_at is nil4946 is expected to be falsy4947 when expires in 1 hour4948 is expected to be truthy4949 when expires in 10 minutes4950 is expected to be falsy4951 #user_agent_header4952 returns a RequestOptions object4953 has the correct GitLab version in User-Agent header4954 #list_projects4955 calls Google Api CloudResourceManagerService#list_projects4956 #create_service_account4957 calls Google Api IamService#create_service_account4958 #create_service_account_key4959 calls Google Api IamService#create_service_account_key4960 grant_service_account_roles4961 calls Google Api CloudResourceManager#set_iam_policy4962 #enable_cloud_run4963 calls Google Api IamService#create_service_account_key4964 #enable_artifacts_registry4965 calls Google Api IamService#create_service_account_key4966 #enable_cloud_build4967 calls Google Api IamService#create_service_account_key4968 #enable_cloud_sql_admin4969 calls Google Api ServiceUsageService4970 #enable_compute4971 calls Google Api ServiceUsageService4972 #enable_service_networking4973 calls Google Api ServiceUsageService4974 #revoke_authorizations4975 calls the revoke endpoint4976 #create_cloudsql_database4977 calls Google Api SQLAdminService#insert_database4978 #create_cloudsql_user4979 calls Google Api SQLAdminService#insert_user4980 #get_cloudsql_instance4981 calls Google Api SQLAdminService#get_instance4982 #list_cloudsql_databases4983 calls Google Api SQLAdminService#list_databases4984 #list_cloudsql_users4985 calls Google Api SQLAdminService#list_users4986 #create_cloudsql_instance4987 calls Google Api SQLAdminService#insert_instance4988Grafana::Client4989 #get_dashboard4990 behaves like calls grafana api4991 calls grafana api4992 behaves like no redirects4993 does not follow redirects4994 behaves like handles exceptions4995 HTTParty::Error4996 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4997 Net::OpenTimeout4998 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4999 SocketError5000 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5001 OpenSSL::SSL::SSLError5002 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5003 Errno::ECONNREFUSED5004 is expected to raise Grafana::Client::Error with "Connection refused"5005 StandardError5006 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5007 #get_datasource5008 behaves like calls grafana api5009 calls grafana api5010 behaves like no redirects5011 does not follow redirects5012 behaves like handles exceptions5013 HTTParty::Error5014 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"5015 Net::OpenTimeout5016 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"5017 SocketError5018 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5019 OpenSSL::SSL::SSLError5020 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5021 Errno::ECONNREFUSED5022 is expected to raise Grafana::Client::Error with "Connection refused"5023 StandardError5024 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5025 #proxy_datasource5026 behaves like calls grafana api5027 calls grafana api5028 behaves like no redirects5029 does not follow redirects5030 behaves like handles exceptions5031 HTTParty::Error5032 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"5033 Net::OpenTimeout5034 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"5035 SocketError5036 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"5037 OpenSSL::SSL::SSLError5038 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"5039 Errno::ECONNREFUSED5040 is expected to raise Grafana::Client::Error with "Connection refused"5041 StandardError5042 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"5043gitlab:artifacts namespace rake task5044 gitlab:artifacts:migrate5045 when local storage is used5046 and remote storage is defined5047 migrates file to remote storage5048 and remote storage is not defined5049 fails to migrate to remote storage5050 when remote storage is used5051 file stays on remote storage5052 gitlab:artifacts:migrate_to_local5053 when remote storage is used5054 and job has remote file store defined5055 migrates file to local storage5056 when local storage is used5057 file stays on local storage5058SnippetBlobPresenter5059 #rich_data5060 with PersonalSnippet5061 when blob is binary5062 returns the HTML associated with the binary5063 with markdown format5064 returns rich markdown content5065 with notebook format5066 returns rich notebook content5067 with openapi format5068 returns rich openapi content5069 with svg format5070 returns rich svg content5071 with other format5072 does not return no rich content5073 route helpers5074 #raw_path5075 behaves like snippet blob raw path5076 for PersonalSnippets5077 returns the raw personal snippet blob path5078 for ProjectSnippets5079 returns the raw project snippet blob path5080 with a snippet without a repository5081 with ProjectSnippet5082 returns the raw project snippet path5083 with PersonalSnippet5084 returns the raw personal snippet path5085 #raw_plain_data5086 with a plain file5087 shows raw data for non binary files5088 with a binary file5089 returns nil5090 #raw_url5091 behaves like snippet blob raw url5092 for PersonalSnippets5093 returns the raw personal snippet blob url5094 for ProjectSnippets5095 returns the raw project snippet blob url5096 with a snippet without a repository5097 with ProjectSnippet5098 returns the raw project snippet url5099 with PersonalSnippet5100 returns the raw personal snippet url5101ContainerRegistry::Migration::ObserverWorker5102 #perform5103 when the migration feature flag is disabled5104 does nothing5105 when the migration is enabled5106 logs all the counts5107 with load balancing enabled5108 uses the replica5109Issues::ReorderService5110 #execute5111 when ordering issues in a project5112 behaves like issues reorder service5113 when reordering issues5114 returns false with no params5115 returns false with both invalid params5116 sorts issues5117 sorts issues if only given one neighbour, on the left5118 sorts issues if only given one neighbour, on the right5119 when ordering issues in a group5120 behaves like issues reorder service5121 when reordering issues5122 returns false with no params5123 returns false with both invalid params5124 sorts issues5125 sorts issues if only given one neighbour, on the left5126 sorts issues if only given one neighbour, on the right5127 when ordering in a group issue list5128 sorts issues5129layouts/header/_new_dropdown5130 with group-specific links5131 as a Group owner5132 has a "New project" link5133 has a "New subgroup" link5134 invite members item5135 behaves like invite member selector5136 with ability to invite members5137 is expected to have visible css ".js-invite-members-trigger"5138 without ability to invite members5139 is expected not to have visible css ".js-invite-members-trigger"5140 with project-specific links5141 as a Project owner5142 has a "New issue" link5143 has a "New merge request" link5144 has a "New snippet" link5145 as a Project guest5146 has no "New merge request" link5147 has no "New snippet" link5148 invite members item5149 behaves like invite member selector5150 with ability to invite members5151 is expected to have visible css ".js-invite-members-trigger"5152 without ability to invite members5153 is expected not to have visible css ".js-invite-members-trigger"5154 with global links5155 has a "New project" link5156 has a "New group" link5157 has a "New snippet" link5158 when partial exists in a menu item5159 renders the menu item partial without rendering invite modal partial5160 when the user is not allowed to do anything5161 is nil5162Metrics::Dashboard::SystemDashboardService5163 #raw_dashboard5164 behaves like #raw_dashboard raises error if dashboard loading fails5165 when yaml is too large5166 raises error5167 when yaml loader returns error5168 raises error5169 when yaml is not a hash5170 returns nil5171 #get_dashboard5172 behaves like valid dashboard service response5173 behaves like valid dashboard service response for schema5174 returns a json representation of the dashboard5175 behaves like raises error for users with insufficient permissions5176 when the user does not have sufficient access5177 behaves like misconfigured dashboard service response5178 returns an appropriate message and status code5179 when the user is anonymous5180 behaves like misconfigured dashboard service response5181 returns an appropriate message and status code5182 behaves like caches the unprocessed dashboard for subsequent calls5183 is expected to receive load_raw!(*(any args)) 1 time5184 behaves like refreshes cache when dashboard_version is changed5185 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/common_metrics.yml>) 2 times5186 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric5187 prometheus5188 behaves like dashboard_version contains SHA256 hash of dashboard file content5189 is expected to eq "ce9ae27d2913f637de851d61099bc4151583eae68b1386a2176339ef6e653223"5190 when called with a non-system dashboard5191 behaves like valid dashboard service response5192 behaves like valid dashboard service response for schema5193 returns a json representation of the dashboard5194 .all_dashboard_paths5195 returns the dashboard attributes5196 .valid_params?5197 is expected to be truthy5198 missing dashboard_path5199 is expected to be falsey5200 non-matching dashboard_path5201 is expected to be falsey5202CacheableAttributes5203 .expire5204 wipes the cache5205 .current_without_cache5206 defaults to last5207 can be overridden5208 .cache_key5209 excludes cache attributes5210 .defaults5211 defaults to {}5212 with defaults defined5213 can be overridden5214 .build_from_defaults5215 without any attributes given5216 intializes a new object with the defaults5217 with attributes given5218 intializes a new object with the given attributes merged into the defaults5219 edge cases on concrete implementations5220 .build_from_defaults5221 without any attributes given5222 intializes all attributes even if they are nil5223 .current5224 uses RequestStore in addition to process memory cache5225 redis unavailable5226 in production environment5227 returns an uncached record and logs a warning5228 in other environments5229 returns an uncached record and logs a warning5230 when a record is not yet present5231 does not cache nil object5232 caches non-nil object5233 edge cases5234 caching behavior5235 retrieves upload fields properly5236 retrieves markdown fields properly5237 .cached5238 when cache is cold5239 returns nil5240 when cached is warm5241 retrieves the record from cache5242 #cache!5243 caches the attributes5244 edge cases5245 caches the attributes5246Ci::CreatePipelineService5247 rate limiting5248 when user is under the limit5249 allows pipeline creation5250 when user is over the limit5251 blocks pipeline creation5252 with different users5253 allows other members to create pipelines5254 with different commits5255 allows user to create pipeline5256 with different projects5257 allows user to create pipeline5258Ci::ParseDotenvArtifactService5259 #execute5260 when build has a dotenv artifact5261 parses the artifact5262 when dotenv variables are conflicting against manual variables5263 returns an error message that there is a duplicate variable5264 when dotenv variables have duplicate variables5265 latest values get used5266 when parse error happens5267 returns error5268 when artifact size is too big5269 returns error5270 when artifact has the specified blob5271 when a white space trails the key5272 trims the trailing space5273 when multiple key/value pairs exist in one line5274 parses the dotenv data5275 when key contains UNICODE5276 returns error5277 when value contains UNICODE5278 parses the dotenv data5279 when key contains a space5280 returns error5281 when value contains a space5282 parses the dotenv data5283 when value is double quoated5284 parses the value as-is5285 when value is single quoated5286 parses the value as-is5287 when value has white spaces in double quote5288 parses the value as-is5289 when key is missing5290 returns error5291 when value is missing5292 parses the dotenv data5293 when it is not dotenv format5294 returns error5295 when blob is encoded in UTF-16 LE5296 parses the dotenv data5297 when more than limitated variables are specified in dotenv5298 returns error5299 when variables are cross-referenced in dotenv5300 does not support variable expansion in dotenv parser5301 when there is an empty line5302 does not support empty line in dotenv parser5303 when there is a comment5304 does not support comment in dotenv parser5305 when build does not have a dotenv artifact5306 raises an error5307Gitlab::Diff::FileCollection::Compare5308 behaves like diff statistics5309 when include_stats is true5310 Repository#diff_stats is called5311 Gitlab::Diff::File is initialized with diff stats5312 when should not request diff stats5313 Repository#diff_stats is not called5314 behaves like sortable diff files5315 #raw_diff_files5316 when sorted is false (default)5317 returns unsorted diff files5318 when sorted is true5319 returns sorted diff files5320 #cache_key5321 returns with head and base5322 pagination methods5323 when pagination options are not present5324 returns default values5325 when pagination options are present5326 returns values based on options5327Gitlab::Ci::Build::Rules5328 .new5329 with no rules5330 sets @rule_list to an empty array5331 sets @default_when to "on_success"5332 with one rule5333 sets @rule_list to an array of a single rule5334 sets @default_when to "on_success"5335 with multiple rules5336 sets @rule_list to an array of a single rule5337 sets @default_when to "on_success"5338 with a specified default when:5339 sets @rule_list to an array of a single rule5340 sets @default_when to "manual"5341 #evaluate5342 with nil rules5343 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5344 and when:manual set as the default5345 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5346 with no rules5347 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5348 and when:manual set as the default5349 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5350 with one rule without any clauses5351 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=true, variables=nil, errors=nil>5352 with one matching rule5353 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5354 with two matching rules5355 returns the value of the first matched rule in the list5356 with a non-matching and matching rule5357 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5358 with a matching and non-matching rule5359 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="delayed", start_in="1 day", allow_failure=nil, variables=nil, errors=nil>5360 with non-matching rules5361 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5362 and when:manual set as the default5363 does not return the default when:5364 with only allow_failure5365 with matching rule5366 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=true, variables=nil, errors=nil>5367 with non-matching rule5368 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5369 with variables5370 with matching rule5371 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables={:MY_VAR=>"my var"}, errors=nil>5372 with a regexp variable matching rule5373 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil, errors=nil>5374 Gitlab::Ci::Build::Rules::Result5375 #build_attributes5376 compacts nil values5377 #pass?5378 'when' is 'never'5379 returns false5380 'when' is 'on_success'5381 returns true5382Gitlab::Spamcheck::Client5383 url scheme5384 is tls5385 uses secure connection5386 is grpc5387 uses insecure connection5388 #spam?5389 issue5390 behaves like check for spam5391 includes interceptors5392 verdict: 0, expected: "allow"5393 returns expected spam constant5394 verdict: 1, expected: "conditional_allow"5395 returns expected spam constant5396 verdict: 2, expected: "disallow"5397 returns expected spam constant5398 verdict: 3, expected: "block"5399 returns expected spam constant5400 verdict: 4, expected: "noop"5401 returns expected spam constant5402 snippet5403 behaves like check for spam5404 includes interceptors5405 verdict: 0, expected: "allow"5406 returns expected spam constant5407 verdict: 1, expected: "conditional_allow"5408 returns expected spam constant5409 verdict: 2, expected: "disallow"5410 returns expected spam constant5411 verdict: 3, expected: "block"5412 returns expected spam constant5413 verdict: 4, expected: "noop"5414 returns expected spam constant5415 #build_protobuf5416 builds the expected issue protobuf object5417 builds the expected snippet protobuf object5418 #build_user_protobuf5419 builds the expected protobuf object5420 when user has multiple email addresses5421 adds emails to the user pb object5422 #build_project_protobuf5423 builds the expected protobuf object5424 #get_spammable_mappings5425 is an expected spammable5426 is an unexpected spammable5427Gitlab::Tracking5428 .options5429 when feature flag is disabled5430 when destination is Snowplow5431 returns useful client options5432 behaves like delegates to destination5433 delegates to Gitlab::Tracking::Destinations::Snowplow destination5434 when destination is SnowplowMicro5435 enabled with yml config5436 behaves like delegates to SnowplowMicro destination with proper options5437 returns useful client options5438 behaves like delegates to destination5439 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination5440 event tracking5441 .database_event5442 when the action is not passed in as a string5443 allows symbols5444 allows nil5445 allows integers5446 behaves like rescued error raised by destination class5447 rescues error5448 behaves like delegates to destination5449 delegates to Gitlab::Tracking::Destinations::DatabaseEventsSnowplow destination5450 .event5451 when the action is not passed in as a string5452 allows symbols5453 allows nil5454 allows integers5455 when destination is Snowplow5456 behaves like rescued error raised by destination class5457 rescues error5458 behaves like delegates to destination5459 delegates to Gitlab::Tracking::Destinations::Snowplow destination5460 when destination is SnowplowMicro5461 behaves like rescued error raised by destination class5462 rescues error5463 behaves like delegates to destination5464 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination5465 .definition5466 dispatchs the data to .event5467 snowplow_micro_enabled?5468 returns true when snowplow_micro is enabled5469 returns false when snowplow_micro is disabled5470 returns false when snowplow_micro is not configured5471ProtectedBranchesFinder5472 #execute5473 behaves like execute by entity5474 returns all protected branches of project by default5475 when search param is present5476 filters by search param5477 when there are more protected branches than the limit5478 returns limited protected branches of project5479 behaves like execute by entity5480 returns all protected branches of project by default5481 when search param is present5482 filters by search param5483 when there are more protected branches than the limit5484 returns limited protected branches of project5485Gitlab::Analytics::CycleAnalytics::StageEvents::CodeStageStart5486 needs connection with an issue via merge_requests_closing_issues table5487 behaves like value stream analytics event5488 is expected to be a kind of String5489 is expected to be a kind of Symbol5490 is expected to include ApplicationRecord(abstract)5491 is expected to respond to #timestamp_projection5492 is expected to respond to #html_description5493 is expected to be a kind of Array5494 #apply_query_customization5495 expects an ActiveRecord::Relation object as argument and returns a modified version of it5496 #hash_code5497 returns a hash that uniquely identifies an event5498 does not differ when the same object is built with the same params5499 behaves like LEFT JOIN-able value stream analytics event5500 can use the event as LEFT JOIN5501 when looking at the record with data5502 contains the timestamp expression5503 when looking at the record without data5504 returns nil for the timestamp expression5505Gitlab::Ci::Status::Build::Play5506 #label5507 has a label that says it is a manual action5508 #status_tooltip5509 does not override status status_tooltip5510 #badge_tooltip5511 does not override status badge_tooltip5512 #has_action?5513 when user is allowed to update build5514 when user is allowed to trigger protected action5515 is expected to have action5516 when user can not push to the branch5517 is expected not to have action5518 when user is not allowed to update build5519 is expected not to have action5520 #action_path5521 is expected to include "634/play"5522 #action_icon5523 is expected to eq "play"5524 #action_title5525 is expected to eq "Play"5526 #action_button_title5527 is expected to eq "Run job"5528 .matches?5529 when build is playable5530 when build stops an environment5531 does not match5532 when build does not stop an environment5533 is a correct match5534 when build is not playable5535 does not match5536Gitlab::APIAuthentication::TokenResolver5537 .new5538 with a valid type5539 creates a new instance5540 with an invalid type5541 raises a validation error5542 #resolve5543 with :personal_access_token_with_username5544 with valid credentials5545 behaves like an authorized request5546 returns the correct token5547 with an invalid username5548 behaves like an unauthorized request5549 raises an error5550 with no username5551 behaves like an unauthorized request5552 raises an error5553 with :job_token_with_username5554 with valid credentials5555 behaves like an authorized request5556 returns the correct token5557 when the job is not running5558 behaves like an unauthorized request5559 raises an error5560 with the wrong username5561 behaves like an anoymous request5562 returns nil5563 with an invalid job token5564 behaves like an unauthorized request5565 raises an error5566 with :deploy_token_with_username5567 with a valid deploy token5568 behaves like an authorized request5569 returns the correct token5570 with an invalid username5571 behaves like an unauthorized request5572 raises an error5573 when the the deploy token is restricted with external_authorization5574 with a valid deploy token5575 behaves like an unauthorized request5576 raises an error5577 with :personal_access_token5578 with valid credentials5579 behaves like an authorized request5580 returns the correct token5581 with :job_token5582 with valid credentials5583 behaves like an authorized request5584 returns the correct token5585 when the job is not running5586 behaves like an unauthorized request5587 raises an error5588 with an invalid job token5589 behaves like an unauthorized request5590 raises an error5591 with :deploy_token5592 with a valid deploy token5593 behaves like an authorized request5594 returns the correct token5595 with :personal_access_token_from_jwt5596 with valid credentials5597 behaves like an authorized request5598 returns the correct token5599 with :deploy_token_from_jwt5600 with valid credentials5601 behaves like an authorized request5602 returns the correct token5603 with :job_token_from_jwt5604 with valid credentials5605 behaves like an authorized request5606 returns the correct token5607 when the job is not running5608 behaves like an unauthorized request5609 raises an error5610 with an invalid job token5611 behaves like an unauthorized request5612 raises an error5613Banzai::Filter::UploadLinkFilter5614 preserves original url in data-canonical-src attribute5615 to a project upload5616 rebuilds relative URL for a link5617 rebuilds relative URL for an image5618 does not modify absolute URL5619 supports unescaped Unicode filenames5620 supports escaped Unicode filenames5621 with an absolute URL5622 rewrites the link correctly5623 to a group upload5624 rewrites the link correctly5625 rewrites the link correctly for subgroup5626 does not modify absolute URL5627 with an absolute URL5628 rewrites the link correctly5629 to a personal snippet5630 rewrites the link correctly5631 does not modify absolute URL5632 with an absolute URL5633 rewrites the link correctly5634 with a relative URL root5635 rewrites the link correctly5636 with an absolute URL5637 rewrites the link correctly5638 invalid input5639 name: "invalid URI", href: "://foo"5640 is expected not to raise Exception5641 name: "invalid UTF-8 byte sequences", href: "%FF"5642 is expected not to raise Exception5643 name: "garbled path", href: "open(/var/tmp/):%20/location%0Afrom:%20/test"5644 is expected not to raise Exception5645 name: "whitespace", href: "d18213acd3732630991986120e167e3d/Landscape_8.jpg\nand more"5646 is expected not to raise Exception5647 name: "null byte", href: "%00"5648 is expected not to raise Exception5649Users::SetStatusService5650 #execute5651 when params are set5652 creates a status5653 updates a status if it already existed5654 returns true5655 behaves like bumps user5656 bumps User#updated_at5657 when setting availability to not_set5658 updates the availability5659 when the given availability value is not valid5660 does not update the status5661 for another user5662 does not update the status if the current user is not allowed5663 the current user is admin5664 changes the status when the current user is allowed to do that5665 behaves like does not bump user5666 does not bump User#updated_at5667 without params5668 when user has existing user status record5669 behaves like removes user status record5670 deletes the user status record5671 behaves like bumps user5672 bumps User#updated_at5673 when not_set is given for availability5674 behaves like removes user status record5675 deletes the user status record5676 behaves like bumps user5677 bumps User#updated_at5678 when user has no existing user status record5679 behaves like does not bump user5680 does not bump User#updated_at5681Resolvers::ProjectPipelineStatisticsResolver5682 is expected to have nullable GraphQL type PipelineAnalytics5683 #resolve5684 behaves like returns the pipelines statistics for a given project5685 is expected to contain exactly :week_pipelines_labels, :week_pipelines_totals, :week_pipelines_successful, :month_pipelines_labels, :month_pipelines_totals, :month_pipelines_successful, :year_pipelines_labels, :year_pipelines_totals, :year_pipelines_successful, :pipeline_times_labels, and :pipeline_times_values5686 when the user does not have access to the CI/CD analytics data5687 behaves like it returns nils5688 is expected to be nil5689 when the project is public5690 public pipelines are disabled5691 user is not a member5692 behaves like it returns nils5693 is expected to be nil5694 user is a guest5695 behaves like it returns nils5696 is expected to be nil5697 user is a reporter or above5698 behaves like returns the pipelines statistics for a given project5699 is expected to contain exactly :week_pipelines_labels, :week_pipelines_totals, :week_pipelines_successful, :month_pipelines_labels, :month_pipelines_totals, :month_pipelines_successful, :year_pipelines_labels, :year_pipelines_totals, :year_pipelines_successful, :pipeline_times_labels, and :pipeline_times_values5700 public pipelines are enabled5701 user is not a member5702 behaves like returns the pipelines statistics for a given project5703 is expected to contain exactly :week_pipelines_labels, :week_pipelines_totals, :week_pipelines_successful, :month_pipelines_labels, :month_pipelines_totals, :month_pipelines_successful, :year_pipelines_labels, :year_pipelines_totals, :year_pipelines_successful, :pipeline_times_labels, and :pipeline_times_values5704UploadPolicy5705 destroy_upload5706 when deleting project upload5707 behaves like uploads policy5708 when user is guest5709 is expected to be disallowed :read_upload and :destroy_upload5710 when user is developer5711 is expected to be disallowed :read_upload and :destroy_upload5712 when user is maintainer5713 is expected to be allowed :read_upload and :destroy_upload5714 when user is owner5715 is expected to be allowed :read_upload and :destroy_upload5716 when user is admin5717 is expected to be disallowed :read_upload and :destroy_upload5718 with admin mode5719 is expected to be allowed :read_upload and :destroy_upload5720 when deleting group upload5721 behaves like uploads policy5722 when user is guest5723 is expected to be disallowed :read_upload and :destroy_upload5724 when user is developer5725 is expected to be disallowed :read_upload and :destroy_upload5726 when user is maintainer5727 is expected to be allowed :read_upload and :destroy_upload5728 when user is owner5729 is expected to be allowed :read_upload and :destroy_upload5730 when user is admin5731 is expected to be disallowed :read_upload and :destroy_upload5732 with admin mode5733 is expected to be allowed :read_upload and :destroy_upload5734 when deleting upload associated with other model5735 is expected to be disallowed :read_upload and :destroy_upload5736Clusters::Providers::Gcp5737 is expected to belong to cluster required: false5738 is expected to validate that :zone cannot be empty/falsy5739 state_machine5740 when any => [:created]5741 nullifies API credentials5742 when any => [:creating]5743 calls #assign_operation_id on the provider5744 when any => [:errored]5745 calls #nullify_credentials on the provider5746 sets a status reason5747 when status_reason is nil5748 does not set status_reason5749 #on_creation?5750 status: :scheduled, result: true5751 is expected to eq true5752 status: :creating, result: true5753 is expected to eq true5754 status: :created, result: false5755 is expected to eq false5756 status: :errored, result: false5757 is expected to eq false5758 default values5759 has default value5760 validation5761 when validates gcp_project_id5762 when gcp_project_id is shorter than 15763 is expected to be falsey5764 when gcp_project_id is longer than 635765 is expected to be falsey5766 when gcp_project_id includes invalid character5767 is expected to be falsey5768 when gcp_project_id is valid5769 is expected to be truthy5770 when validates num_nodes5771 when num_nodes is string5772 is expected to be falsey5773 when num_nodes is nil5774 is expected to be falsey5775 when num_nodes is smaller than 15776 is expected to be falsey5777 when num_nodes is valid5778 is expected to be truthy5779 #has_rbac_enabled?5780 when cluster is legacy_abac5781 is expected to be falsey5782 when cluster is not legacy_abac5783 is expected to be truthy5784 #knative_pre_installed?5785 when cluster is cloud_run5786 is expected to be falsey5787 when cluster is not cloud_run5788 is expected to be truthy5789 #nullify_credentials5790 removes access_token and operation_id5791 #assign_operation_id5792 sets operation_id5793Ci::BuildReportResultService5794 #execute5795 when build is finished5796 creates a build report result entry5797 tracks unique test cases parsed5798 and build has test report parsing errors5799 creates a build report result entry with suite error5800 does not track unique test cases parsed5801 when data has already been persisted5802 raises an error and do not persist the same data twice5803 when build is running and test report does not exist5804 does not persist data5805Projects::ImportExport::ParallelProjectExportWorker5806 # order random5807 .sidekiq_retries_exhausted5808 sets export_job status to failed5809 logs an error message5810 #perform5811 behaves like an idempotent worker5812 is labeled as idempotent5813 performs multiple times sequentially without raising an exception5814 sets the export job status to finished5815 when after export strategy does not exist5816 sets the export job status to failed5817Git::WikiPushService::Change5818 #page5819 the page does not exist5820 the operation is added5821 is expected to have attributes {:page => (be nil)}5822 the operation is deleted5823 is expected to have attributes {:page => (be nil)}5824 the operation is renamed5825 is expected to have attributes {:page => (be nil)}5826 the operation is modified5827 is expected to have attributes {:page => (be nil)}5828 the page can be found5829 the page has been deleted5830 is expected to have attributes {:page => #<Double "WikiPage">}5831 the operation is added5832 is expected to have attributes {:page => #<Double "WikiPage">}5833 the operation is renamed5834 is expected to have attributes {:page => #<Double "WikiPage">}5835 the operation is modified5836 is expected to have attributes {:page => #<Double "WikiPage">}5837 #last_known_slug5838 the page has been created5839 is expected to have attributes {:last_known_slug => "Page_11"}5840 the operation is renamed5841 is expected to have attributes {:last_known_slug => "Page_13"}5842 the operation is modified5843 is expected to have attributes {:last_known_slug => "Page_14"}5844 the operation is deleted5845 is expected to have attributes {:last_known_slug => "Page_15"}5846 #event_action5847 the page is deleted5848 is expected to have attributes {:event_action => :destroyed}5849 the page is added5850 is expected to have attributes {:event_action => :created}5851 the page is renamed5852 is expected to have attributes {:event_action => :updated}5853 the page is modified5854 is expected to have attributes {:event_action => :updated}5855Users::AssignedIssuesCountService5856 # order random5857 behaves like a counter caching service5858 #count5859 caches the count5860 #refresh_cache5861 refreshes the cache5862 #delete_cache5863 removes the cache5864 #uncached_count5865 does not cache the count5866 when user has assigned open issues from archived and closed projects5867 count all assigned open issues excluding those from closed or archived projects5868 when the number of assigned open issues exceeds max_limit5869 when user is admin5870 returns the max_limit count5871 when user is non-admin5872 returns the max_limit count5873Gitlab::ProcessManagement5874 .trap_signals5875 traps the given signals5876 .modify_signals5877 traps the given signals with the given command5878 .signal_processes5879 sends a signal to every given process5880 .signal5881 sends a signal to the given process5882 returns false when the process does not exist5883 .all_alive?5884 returns true if all processes are alive5885 returns false when a thread was not alive5886 .process_alive?5887 returns true if the process is alive5888 returns false when a thread was not alive5889 returns false when no pid is given5890 .process_died?5891 returns false if the process is alive5892 returns true when a thread was not alive5893 returns true when no pid is given5894 .pids_alive5895 returns the pids that are alive, from a given array5896 .any_alive?5897 returns true if at least one process is alive5898 returns false when all threads are dead5899 .write_pid5900 writes the PID of the current process to the given file5901Gitlab::Database::QueryAnalyzer5902 the hook is enabled by default in specs5903 does process queries and gets normalized SQL5904 does prevent recursive execution5905 #within5906 when it is already initialized5907 does initialize analyzer only once5908 does initialize user analyzer when enabled5909 does initialize user analyzer only once5910 does not initializer user analyzer when disabled5911 when initializer is enabled5912 calls begin! and end!5913 when begin! raises the end! is not called5914 when user analyzers are used5915 calls begin! and end!5916 #process_sql5917 does not analyze query if not enabled5918 does analyze query if enabled5919 does track exception if query cannot be parsed5920 does track exception if analyzer raises exception on enabled?5921 does track exception if analyzer raises exception on analyze5922 does call analyze only on enabled initializers5923 does not call analyze on suppressed analyzers5924 does call analyze on suppressed analyzers if some queries require tracking5925RepositoryUpdateRemoteMirrorWorker5926 is labeled as idempotent5927 performs multiple times sequentially without raising an exception5928 #perform5929 calls out to the service to perform the update5930 does not do anything if the mirror was already updated5931 schedules a retry when the mirror is marked for retrying5932 clears the lease if there was an unexpected exception5933 retries 3 times for the worker to finish before rescheduling5934Gitlab::SlashCommands::IssueNew5935 #execute5936 without description5937 creates the issue5938 with description5939 creates the issue with description5940 with more newlines between the title and the description5941 creates the issue5942 issue cannot be created5943 displays the errors5944 when create issue service return an unrecoverable error5945 displays the errors5946 .match5947 matches the title without description5948 matches the title with description5949 matches the alias new5950Namespaces::ProjectsFinder5951 #execute5952 without a namespace5953 returns an empty array5954 with a namespace5955 returns the project for the namespace5956 when include_subgroups is provided5957 returns all projects for the namespace5958 when ids are provided5959 returns all projects for the ids5960 when ids are provided5961 returns all projects for the ids5962 when with_issues_enabled is true5963 returns the projects that have issues enabled5964 when with_merge_requests_enabled is true5965 returns the projects that have merge requests enabled5966 when sort is similarity5967 returns projects by similarity5968 when search parameter is missing5969 returns all projects5970 when sort parameter is missing5971 returns matching projects5972 when sort parameter is ACTIVITY_DESC5973 returns projects sorted by latest activity5974ClustersFinder5975 #execute5976 when scope is all5977 is expected to contain exactly #<Clusters::Cluster id: 24, user_id: 1541, provider_type: "gcp", platform_type: "kubernetes", created_at: "2023-04-19 10:06:35.425584755 +0000", updated_at: "2023-04-19 10:06:35.425584755 +0000", enabled: true, name: "test-cluster", environment_scope: "*", cluster_type: "project_type", domain: nil, managed: true, namespace_per_environment: true, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3> and #<Clusters::Cluster id: 27, user_id: 1544, provider_type: "gcp", platform_type: "kubernetes", created_at: "2023-04-19 10:06:35.924321966 +0000", updated_at: "2023-04-19 10:06:35.924321966 +0000", enabled: false, name: "test-cluster", environment_scope: "production2/*", cluster_type: "project_type", domain: nil, managed: true, namespace_per_environment: true, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>5978 when scope is active5979 is expected to contain exactly #<Clusters::Cluster id: 30, user_id: 1548, provider_type: "gcp", platform_type: "kubernetes", created_at: "2023-04-19 10:06:36.864114736 +0000", updated_at: "2023-04-19 10:06:36.864114736 +0000", enabled: true, name: "test-cluster", environment_scope: "*", cluster_type: "project_type", domain: nil, managed: true, namespace_per_environment: true, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>5980 when scope is inactive5981 is expected to contain exactly #<Clusters::Cluster id: 33, user_id: 1552, provider_type: "gcp", platform_type: "kubernetes", created_at: "2023-04-19 10:06:37.776536315 +0000", updated_at: "2023-04-19 10:06:37.776536315 +0000", enabled: false, name: "test-cluster", environment_scope: "production3/*", cluster_type: "project_type", domain: nil, managed: true, namespace_per_environment: true, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>5982Gitlab::RepositoryUrlBuilder5983 .build5984 factory: :project, path_generator: ->(project) { project.full_path }5985 when passing SSH protocol5986 returns the SSH URL to the repository5987 when passing HTTP protocol5988 returns the HTTP URL to the repo without a username5989 includes the custom HTTP clone root if set5990 when passing an unsupported protocol5991 raises an exception5992 factory: :project_snippet, path_generator: ->(snippet) { "#{snippet.project.full_path}/snippets/#{snippet.id}" }5993 when passing SSH protocol5994 returns the SSH URL to the repository5995 when passing HTTP protocol5996 returns the HTTP URL to the repo without a username5997 includes the custom HTTP clone root if set5998 when passing an unsupported protocol5999 raises an exception6000 factory: :project_wiki, path_generator: ->(wiki) { "#{wiki.container.full_path}.wiki" }6001 when passing SSH protocol6002 returns the SSH URL to the repository6003 when passing HTTP protocol6004 returns the HTTP URL to the repo without a username6005 includes the custom HTTP clone root if set6006 when passing an unsupported protocol6007 raises an exception6008 factory: :personal_snippet, path_generator: ->(snippet) { "snippets/#{snippet.id}" }6009 when passing SSH protocol6010 returns the SSH URL to the repository6011 when passing HTTP protocol6012 returns the HTTP URL to the repo without a username6013 includes the custom HTTP clone root if set6014 when passing an unsupported protocol6015 raises an exception6016Ci::CreatePipelineService6017 job:parallel6018 numeric6019 creates the pipeline6020 creates 3 jobs6021 matrix6022 creates the pipeline6023 creates 4 builds with the corresponding matrix variables6024 when a bridge is using parallel:matrix6025 creates the pipeline6026 creates 1 build and 4 bridges with the corresponding matrix variables6027Gitlab::Ci::Pipeline::Chain::EnsureResourceGroups6028 #perform!6029 when a pipeline contains a job that requires a resource group6030 ensures the resource group existence6031 when a resource group has already been existed6032 ensures the resource group existence6033 when a resource group key contains an invalid character6034 does not create any resource groups6035 when a pipeline does not contain a job that requires a resource group6036 does not create any resource groups6037Ci::DeleteObjectsService6038 #execute6039 deletes records6040 deletes files6041 when trying to execute without records6042 does not change the number of objects6043 when trying to remove the same file multiple times6044 executes successfully6045 with artifacts both ready and not ready for deletion6046 skips records with pick_up_at in the future6047 limits the number of records removed6048 removes records in order6049 updates pick_up_at timestamp6050 does not delete objects for which file deletion has failed6051 with an open database transaction6052 raises an exception and does not remove records6053 #remaining_batches_count6054 when there is less than one batch size6055 is expected to eq 16056 when there is more than one batch size6057 is expected to eq 26058Mutations::Boards::Issues::IssueMoveList6059 #resolve6060 when we only pass from_list_id6061 generates an error6062 when we only pass to_list_id6063 generates an error6064 when required arguments are missing6065 generates an error6066 when the board ID is wrong6067 raises an error6068 when positionInList is given6069 when fromListId and toListId are missing6070 generates an error6071 when move_before_id is also given6072 generates an error6073 when move_after_id is also given6074 generates an error6075 when position_in_list is invalid6076 generates an error6077 when user have access to resources6078 moves and repositions issue6079 when user cannot update issue6080 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable6081WorkItems::ParentLinks::DestroyService6082 #execute6083 when user has permissions to update work items6084 removes relation and creates notes6085 returns success message6086 when note creation fails for some reason6087 still records the link event6088 still records the link event6089 when user has insufficient permissions6090 does not remove relation6091 returns error message6092MarkdownContentRewriterService6093 #initialize6094 raises an error if source_parent is not a Project6095 raises an error if field does not have cached markdown6096 #execute6097 when content does not need a rewrite6098 returns original content and cached html6099 when content needs a rewrite6100 calls the rewriter classes successfully6101 when content has references6102 rewrites content6103 when content contains an upload6104 rewrites content6105 #safe_to_copy_markdown?6106 when content has references6107 is expected to eq false6108 when content has uploaded file references6109 is expected to eq false6110 when content does not have references or uploads6111 is expected to eq true6112Mutations::Ci::JobTokenScope::RemoveProject6113 #resolve6114 when user is not logged in6115 raises error6116 when user is logged in6117 when user does not have permissions to admin project6118 raises error6119 when user has permissions to admin project and read target project6120 with no direction specified6121 defaults to asking the RemoveProjectService to remove the outbound link6122 with direction specified6123 executes project removal for the correct direction6124 when the service returns an error6125 returns an error response6126Gitlab::Ci::Config::Yaml::Tags::Reference6127 .tag6128 implements the tag method6129 #resolve6130 with circular references6131 raises CircularReferenceError6132 with nested circular references6133 raises CircularReferenceError6134 with missing references6135 raises MissingReferenceError6136 with invalid references6137 yaml: "a: !reference", error_message: "!reference [] is not valid"6138 raises an error6139 yaml: "a: !reference str", error_message: "!reference \"str\" is not valid"6140 raises an error6141 yaml: "a: !reference 1", error_message: "!reference \"1\" is not valid"6142 raises an error6143 yaml: "a: !reference [1]", error_message: "!reference [1] is not valid"6144 raises an error6145 yaml: "a: !reference { b: c }", error_message: "!reference {\"b\"=>\"c\"} is not valid"6146 raises an error6147 when the references are valid but do not match the config6148 raises a MissingReferenceError6149 with arrays6150 is expected to match (a hash including {:f => {:g => [[1, 2], 5, [3, 4]]}})6151 with hashes6152 when referencing an entire hash6153 is expected to match (a hash including {:e => {:f => {:c => "c", :d => "d"}}})6154 when referencing only a hash value6155 is expected to match (a hash including {:i => {:g => "c", :h => "h"}})6156 when referencing a value before its definition6157 is expected to match (a hash including {:a => {:b => {:e => 1, :f => "f"}}})6158IssueAssignee6159 associations6160 is expected to belong to issue class_name => Issue required: false6161 is expected to belong to assignee class_name => User required: false6162 validations6163 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id6164 scopes6165 in_projects6166 returns issue assignees for given project6167 on_issues6168 returns issue assignees for given issues6169Gitlab::JiraImport::IssueSerializer6170 #execute6171 attributes setting6172 sets the basic attributes6173 creates a hash for valid issue6174 labels6175 creates all missing labels (on project level)6176 when there are no new labels6177 assigns the labels to the Issue hash6178 does not create new labels6179 author6180 when reporter maps to a valid GitLab user6181 sets the issue author to the mapped user6182 when reporter does not map to a valid Gitlab user6183 defaults the issue author to project creator6184 when reporter field is empty6185 defaults the issue author to project creator6186 when reporter field is missing accountId6187 defaults the issue author to project creator6188 assignee6189 when assignee maps to a valid GitLab user6190 sets the issue assignees to the mapped user6191 when assignee does not map to a valid GitLab user6192 leaves the assignee empty6193 when assginee field is empty6194 leaves the assignee empty6195 when assginee field is missing accountId6196 leaves the assignee empty6197 with jira server response6198 when assignee maps to a valid GitLab user6199 sets the issue assignees to the mapped user6200 with done status6201 maps the status to closed6202 without the iid6203 does not set the iid6204Resolvers::MergeRequestsCountResolver6205 #resolve6206 is expected to have nullable GraphQL type Int6207 when user can only view an issue's closing merge requests that are public6208 returns the count of the merge requests closing the issue6209 when user can view an issue's closing merge requests that are both public and private6210 returns the count of the merge requests closing the issue6211Mutations::Security::CiConfiguration::ConfigureSastIac6212 is expected to require graphql authorizations :push_code6213 #resolve6214 generates an error if the resource is not accessible to the user6215 when user does not have enough permissions6216 generates an error6217 when user is a maintainer of a different project6218 generates an error6219 when the user does not have permission to create a new branch6220 returns an array of errors6221 when the user can create a merge request6222 when service successfully generates a path to create a new merge request6223 returns a success path6224 when service can not generate any path to create a new merge request6225 returns an array of errors6226Gitlab::SlashCommands::IssueSearch6227 #execute6228 when the user has no access6229 only returns the open issues6230 the user has access6231 returns all results6232 without hits on the query6233 returns an empty collection6234 self.match6235 matches the query6236Gitlab::Cache::Client6237 # order random6238 .build_with_metadata6239 builds a cache client with metrics support6240 Methods6241 #read6242 when key does not exist6243 returns nil6244 increments cache miss6245 when key exists6246 returns key value6247 increments cache hit6248 #write6249 calls backend "#write" method with the expected key6250 #exist?6251 calls backend "#exist?" method with the expected key6252 #delete6253 calls backend "#delete" method with the expected key6254 #fetch6255 creates key in the specific format6256 yields the block once6257 when key already exists6258 does not redefine the value6259 increments a cache hit6260 does not measure the cache generation time6261 when key does not exist6262 caches the key6263 increments a cache miss6264 measures the cache generation time6265Gitlab::QueryLimiting::Middleware6266 #call6267 runs the application with query limiting in place6268 #action_name6269 using a Rails request6270 returns the name of the controller and action6271 includes the content type if this is not text/html6272 using a Grape API request6273 returns the name of the request method and endpoint path6274 returns nil if the route can not be retrieved6275Gitlab::Ci::Pipeline::Chain::Build6276 does not break the chain6277 builds a pipeline with the expected attributes6278 returns a valid pipeline6279 does not persist a pipeline6280 when pipeline is running for a tag6281 correctly indicated that this is a tagged pipeline6282 when origin_ref is branch but tag ref with the same name exists6283 correctly indicated that a pipeline is not tagged6284 when pipeline is running for a merge request6285 correctly indicated that this is a merge request pipeline6286 correctly sets souce sha and target sha to pipeline6287 when pipeline is running for an external pull request6288 correctly indicated that this is an external pull request pipeline6289 correctly sets source sha and target sha to pipeline6290 when keep_latest_artifact is set6291 keep_latest_artifact: true, locking_result: "artifacts_locked"6292 builds a pipeline with appropriate locked value6293 keep_latest_artifact: false, locking_result: "unlocked"6294 builds a pipeline with appropriate locked value6295Gitlab::Ci::Config::Entry::Services6296 when configuration is valid6297 #valid?6298 is valid6299 #value6300 returns valid array6301 when configuration is invalid6302 #valid?6303 is invalid6304 when configuration has ports6305 when with_image_ports metadata is not enabled6306 #valid?6307 is not valid6308 when with_image_ports metadata is enabled6309 #valid?6310 is valid6311 #value6312 returns valid array6313 services alias6314 when they are not unique6315 #valid?6316 is invalid6317 when they are unique6318 #valid?6319 is valid6320 when one of the duplicated alias is in a service without ports6321 is valid6322 when there are not any ports6323 is valid6324Ci::Pipelines::AddJobService6325 when the pipeline is not persisted6326 raises error6327 #execute!6328 assigns pipeline attributes to the job6329 assigns partition_id to job and metadata6330 returns a service response with the job as payload6331 calls update_older_statuses_retried!6332 when the block raises an error6333 returns a service response with the error and the job as payload6334 exclusive lock6335 uses exclusive lock6336Gitlab::UsageDataCounters::EditorUniqueCounter6337 for web IDE edit actions6338 behaves like tracks and counts action6339 is expected to eq 36340 track snowplow event6341 does not track edit actions if author is not present6342 for SFE edit actions6343 behaves like tracks and counts action6344 is expected to eq 36345 track snowplow event6346 does not track edit actions if author is not present6347 for snippet editor edit actions6348 behaves like tracks and counts action6349 is expected to eq 36350 track snowplow event6351 does not track edit actions if author is not present6352IncidentManagement::PagerDuty::CreateIncidentIssueService6353 # order random6354 #execute6355 when PagerDuty webhook setting is active6356 when issue can be created6357 creates a new issue6358 responds with success6359 the issue author is Alert bot6360 issue has a correct title6361 issue has a correct description6362 when the payload does not contain a title6363 does not create a GitLab issue6364 responds with error6365 when PagerDuty webhook setting is not active6366 does not create a GitLab issue6367 responds with forbidden6368Banzai::ReferenceParser::MilestoneParser6369 #nodes_visible_to_user6370 when the link has a data-issue attribute6371 behaves like referenced feature visibility6372 when feature is disabled6373 does not create reference6374 when feature is enabled only for team members6375 does not create reference for non member6376 creates reference for member6377 when feature is enabled6378 creates reference6379 #referenced_by6380 when the link has a data-milestone attribute6381 using an existing milestone ID6382 returns an Array of milestones6383 using a non-existing milestone ID6384 returns an empty Array6385PagesDomainSslRenewalCronWorker6386 #perform6387 enqueues a PagesDomainSslRenewalWorker for domains needing renewal6388 behaves like a pages cronjob scheduling jobs with context6389 schedules the renewal with a context6390 with RequestStore enabled6391 does not cause extra queries for multiple domains6392 when letsencrypt integration is disabled6393 does nothing6394RebaseWorker#perform6395 when rebasing an MR from a fork where upstream has protected branches6396 sets the correct project for running hooks6397Gitlab::ImportExport::RemoteStreamUpload6398 #execute6399 when download request and upload request return 2006400 uploads the downloaded content6401 when upload method is put6402 uploads using the put method6403 when download request does not return 2006404 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while downloading file. Code: 404"6405 when upload request does not returns 2006406 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while uploading file. Code: 403"6407 when download URL is a local address6408 raises error6409 when local requests are allowed6410 raises does not error6411 when download URL is a local network6412 raises error6413 when local network requests are allowed6414 raises does not error6415 when upload URL is a local address6416 raises error6417 when local requests are allowed6418 raises does not error6419 when upload URL it is a request to local network6420 raises error6421 when local network requests are allowed6422 raises does not error6423 when upload URL resolves to a local address6424 raises error6425 Gitlab::ImportExport::RemoteStreamUpload::ChunkStream6426 StringIO#copy_stream compatibility6427 copies all chunks6428 with chunks smaller and bigger than buffer size6429 copies all chunks6430AuthorizedProjectUpdate::ProjectRecalculateService#execute6431 returns success6432 when there are no changes to be made6433 does not change authorizations6434 when there are changes to be made6435 when addition is required6436 adds a new authorization record6437 adds a new authorization record with the correct access level6438 when removal is required6439 removes the authorization record6440 when an update in access level is required6441 updates the authorization of the user to the correct access level6442RuboCop::MigrationHelpers6443 # order random6444 #in_post_deployment_migration?6445 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false6446 is expected to eq false6447 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6448 is expected to eq true6449 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false6450 is expected to eq false6451 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6452 is expected to eq true6453 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false6454 is expected to eq false6455 #version6456 is expected to eq 202002101844206457 #array_column?6458 when it matches array: true6459 is expected to eq true6460 when it matches a variable => 1006461 is expected to eq false6462 #time_enforced?6463 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: false6464 is expected to eq false6465 name: "/gitlab/db/post_migrate/20220210184420_create_fake_table.rb", expected: false6466 is expected to eq false6467 name: "/gitlab/db/post_migrate/20221019184420_add_id_to_reports_table.rb", expected: true6468 is expected to eq true6469 #in_migration?6470 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true6471 is expected to eq true6472 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6473 is expected to eq true6474 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true6475 is expected to eq true6476 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6477 is expected to eq true6478 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false6479 is expected to eq false6480cross-database foreign keys6481 onlies have allowed list of cross-database foreign keys6482RecordsUploads6483 callbacks6484 #record_upload after `store`6485 #destroy_upload after `remove`6486 #record_upload callback6487 creates an Upload record after store6488 creates a new record and assigns size, path, model, and uploader6489 does not create an Upload record when the file doesn't exist6490 does not create an Upload record if model is missing6491 destroys Upload records at the same path before recording6492 does not affect other uploads with different model but the same path6493 #destroy_upload callback6494 destroys Upload records at the same path after removal6495 #filename6496 gets the filename from the path recorded in the database, not CarrierWave6497StuckExportJobsWorker6498 with started export status6499 behaves like project export job detection6500 when the job has completed6501 when the export status was already updated6502 does not mark the export as failed6503 when the export status was not updated6504 marks the project as failed6505 when the job is not in queue and db record in queued state6506 marks the project as failed6507 when the job is running in Sidekiq6508 does not mark the project export as failed6509Constraints::ProjectUrlConstrainer6510 #matches?6511 valid request6512 is expected to be truthy6513 invalid request6514 non-existing project6515 is expected to be falsey6516 existence_check is false6517 is expected to be truthy6518 project id ending with .git6519 is expected to be falsey6520 when the request matches a redirect route6521 and is a GET request6522 is expected to be truthy6523 and is NOT a GET request6524 is expected to be falsey6525Gitlab::ImportExport::AttributeCleaner6526 removes unwanted attributes from the hash6527 removes attributes not present in relation_class6528 removes excluded keys from the hash6529 does not remove excluded key if not listed6530MergeRequests::HandleAssigneesChangeWorker6531 behaves like an idempotent worker6532 is labeled as idempotent6533 performs multiple times sequentially without raising an exception6534 #perform6535 calls MergeRequests::HandleAssigneesChangeService#execute to handle the changes6536 when there are no changes6537 still calls MergeRequests::HandleAssigneesChangeService#execute6538 when the old assignees cannot be found6539 still calls MergeRequests::HandleAssigneesChangeService#execute6540 with a non-existing merge request6541 does nothing6542 with a non-existing user6543 does nothing6544Gitlab::Database::Reindexing::IndexSelection6545 orders by highest relative bloat first6546 excludes indexes with a relative bloat level below 20%6547 excludes indexes smaller than 1 GB ondisk size6548 includes indexes larger than 100 GB ondisk size6549 with time frozen6550 does not return indexes with reindex action in the last 10 days6551 with restricted tables6552 when executed on Fridays6553 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_74", indexrelid: 74, schema: "public", name: "some_index_74", tablename: "ci_builds", type: nil, unique: false, valid_index: true, partitioned: false, exclusion: false, expression: false, partial: false, definition: "CREATE INDEX public.some_index_74 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>6554 when executed on Saturdays6555 is expected to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_85", indexrelid: 85, schema: "public", name: "some_index_85", tablename: "ci_builds", type: nil, unique: false, valid_index: true, partitioned: false, exclusion: false, expression: false, partial: false, definition: "CREATE INDEX public.some_index_85 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>6556 when executed on Sundays6557 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_96", indexrelid: 96, schema: "public", name: "some_index_96", tablename: "ci_builds", type: nil, unique: false, valid_index: true, partitioned: false, exclusion: false, expression: false, partial: false, definition: "CREATE INDEX public.some_index_96 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>6558 when executed on Mondays6559 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_107", indexrelid: 107, schema: "public", name: "some_index_107", tablename: "ci_builds", type: nil, unique: false, valid_index: true, partitioned: false, exclusion: false, expression: false, partial: false, definition: "CREATE INDEX public.some_index_107 ON ci_builds (b...", ondisk_size_bytes: 107374182400>6560API::Helpers::Packages::Npm6561 # order random6562 #project_id_or_nil6563 when called with project scope6564 is expected to eq 9846565 when called with namespace scope6566 when given an unscoped name6567 is expected to eq nil6568 when given a scope that does not match a group name6569 is expected to eq nil6570 when given a scope that matches a group name6571 is expected to eq 9846572 with another package with the same name, in another project in the namespace6573 returns the project id for the newest matching package within the scope6574 with npm_allow_packages_in_multiple_projects disabled6575 when given an unscoped name6576 is expected to eq nil6577 when given a scope that does not match a group name6578 is expected to eq nil6579 when given a scope that matches a group name6580 is expected to eq 9846581 with another package with the same name, in another project in the namespace6582 returns the project id for the newest matching package within the scope6583 #endpoint_scope6584 when params includes an id6585 is expected to eq :project6586 when params does not include an id6587 is expected to eq :instance6588 #finder_for_endpoint_scope6589 when called with project scope6590 returns a PackageFinder for project scope6591 when called with instance scope6592 returns a PackageFinder for namespace scope6593Gitlab::BranchPushMergeCommitAnalyzer6594 #get_merge_commit6595 returns correct merge commit SHA for each commit6596 when one parent has two children6597 returns correct merge commit SHA for each commit6598 when relevant_commit_ids is provided6599 returns correct merge commit6600Gitlab::Usage::Metrics::Instrumentations::CountImportedProjectsTotalMetric6601 with all time frame6602 behaves like a correct instrumented metric value and query6603 behaves like a correct instrumented metric value6604 has correct value6605 behaves like a correct instrumented metric query6606 has correct generate query6607 for 28d time frame6608 behaves like a correct instrumented metric value and query6609 behaves like a correct instrumented metric value6610 has correct value6611 behaves like a correct instrumented metric query6612 has correct generate query6613Mutations::MergeRequests::SetSubscription6614 is expected to require graphql authorizations :update_subscription6615 when user does not have access to the project6616 behaves like a subscribeable not accessible graphql resource6617 raises an error if the resource is not accessible to the user6618 when user is developer member of the project6619 behaves like a subscribeable graphql resource6620 subscribes to the resource6621 when passing subscribe as false6622 unsubscribes from the discussion6623 when the project is public6624 behaves like a subscribeable graphql resource6625 subscribes to the resource6626 when passing subscribe as false6627 unsubscribes from the discussion6628Resolvers::Metrics::Dashboards::AnnotationResolver6629 #resolve6630 user with developer access6631 with annotation records6632 loads annotations with usage of finder class6633 dashboard is missing6634 returns empty array6635 there are no annotations records6636 returns empty array6637WorkItems::Widgets::LabelsService::UpdateService6638 # order random6639 #prepare_update_params6640 when params are set6641 sets params correctly6642 when widget does not exist in new type6643 sets correct params to remove work item labels6644Users::UnbanService6645 unban6646 when successful6647 returns success status6648 unbans the user6649 removes the BannedUser6650 logs unban in application logs6651 when failed6652 when user is already active6653 returns state error message6654 behaves like does not modify the BannedUser record or user state6655 does not modify the BannedUser record or user state6656 when user is not an admin6657 returns permissions error message6658 behaves like does not modify the BannedUser record or user state6659 does not modify the BannedUser record or user state6660GroupDeployToken6661 relationships6662 is expected to belong to group required: false6663 is expected to belong to deploy_token required: false6664 validation6665 is expected to validate that :deploy_token cannot be empty/falsy6666 is expected to validate that :group cannot be empty/falsy6667 is expected to validate that :deploy_token_id is case-sensitively unique within the scope of :group_id6668 #has_access_to_group?6669 for itself6670 is expected to eq true6671 for a subgroup6672 is expected to eq true6673 for other group6674 is expected to eq false6675LfsPointersFinder6676 #execute6677 when path has no LFS files6678 is expected to eq []6679 when path points to LFS file6680 returns LFS blob ids6681 when path points to directory with LFS files6682 returns LFS blob ids6683 when repository is empty6684 is expected to eq []6685Gitlab::WordDiff::Parser6686 #parse6687 returns a collection of lines6688 restarts object index after several calls to Enumerator6689 when diff is empty6690 is expected to eq []6691Gitlab::Utils::Email6692 # order random6693 .obfuscated_email6694 input: "alex@gitlab.com", output: "al**@g*****.com"6695 is expected to eq "al**@g*****.com"6696 input: "alex@gl.co.uk", output: "al**@g****.uk"6697 is expected to eq "al**@g****.uk"6698 input: "a@b.c", output: "a@b.c"6699 is expected to eq "a@b.c"6700 input: "q@example.com", output: "q@e******.com"6701 is expected to eq "q@e******.com"6702 input: "q@w.", output: "q@w."6703 is expected to eq "q@w."6704 input: "a@b", output: "a@b"6705 is expected to eq "a@b"6706 input: "no mail", output: "no mail"6707 is expected to eq "no mail"6708 when deform is active6709 input: "alex@gitlab.com", output: "al*****@g*****.c**"6710 is expected to eq "al*****@g*****.c**"6711 input: "alex@gl.co.uk", output: "al*****@g*****.u**"6712 is expected to eq "al*****@g*****.u**"6713 input: "a@b.c", output: "aa*****@b*****.c**"6714 is expected to eq "aa*****@b*****.c**"6715 input: "qqwweerrttyy@example.com", output: "qq*****@e*****.c**"6716 is expected to eq "qq*****@e*****.c**"6717 input: "getsuperfancysupport@paywhatyouwant.accounting", output: "ge*****@p*****.a**"6718 is expected to eq "ge*****@p*****.a**"6719 input: "q@example.com", output: "qq*****@e*****.c**"6720 is expected to eq "qq*****@e*****.c**"6721 input: "q@w.", output: "q@w."6722 is expected to eq "q@w."6723 input: "a@b", output: "a@b"6724 is expected to eq "a@b"6725 input: "no mail", output: "no mail"6726 is expected to eq "no mail"6727Types::ErrorTracking::SentryErrorCollectionType6728 is expected to eq "SentryErrorCollection"6729 is expected to require graphql authorizations :read_sentry_issue6730 exposes the expected fields6731 errors field6732 returns errors6733Ci::PipelineProcessing::AtomicProcessingService::StatusCollection6734 #set_job_status6735 does update existing status of job6736 ignores a missing job6737 #status_of_all6738 returns composite status of the collection6739 #status_of_jobs6740 names: ["build-a"], status: "success"6741 returns composite status of given names6742 names: ["build-a", "build-b"], status: "failed"6743 returns composite status of given names6744 names: ["build-a", "test-a"], status: "running"6745 returns composite status of given names6746 #status_of_jobs_prior_to_stage6747 stage: 0, status: "success"6748 returns composite status for jobs in prior stages6749 stage: 1, status: "failed"6750 returns composite status for jobs in prior stages6751 stage: 2, status: "running"6752 returns composite status for jobs in prior stages6753 #status_of_stage6754 stage: 0, status: "failed"6755 returns composite status for jobs at a given stages6756 stage: 1, status: "running"6757 returns composite status for jobs at a given stages6758 stage: 2, status: "created"6759 returns composite status for jobs at a given stages6760 #created_job_ids_in_stage6761 returns IDs of jobs at a given stage position6762 #processing_jobs6763 returns jobs marked as processing6764Gitlab::Middleware::BasicHealthCheck6765 #call6766 outside IP6767 returns a 4046768 forwards the call for other paths6769 with X-Forwarded-For headers6770 returns 200 response when endpoint is allowed6771 returns 404 when whitelist is not configured6772 whitelisted IP6773 returns 200 response when endpoint is hit6774 forwards the call for other paths6775Packages::Composer::ComposerJsonService6776 #execute6777 with an existing file6778 with a valid file6779 returns the parsed json6780 with an invalid file6781 raises an error6782 without the composer.json file6783 raises an error6784BatchDestroyDependentAssociations6785 #dependent_associations_to_destroy6786 returns the right associations6787 #destroy_dependent_associations_in_batches6788 destroys multiple notes6789 destroys note in batches6790 excludes associations6791X509SerialNumberAttribute6792 #x509_serial_number_attribute6793 when in non-production6794 when the table exists6795 defines a x509 serial number attribute for a binary column6796 raises ArgumentError when the column type is not :binary6797 when the table does not exist6798 allows the attribute to be added and issues a warning6799 when the column does not exist6800 allows the attribute to be added and issues a warning6801 when other execeptions are raised6802 logs and re-rasises the error6803 when in production6804 defines a x509 serial number attribute6805TokenWithIv6806 validations6807 is expected to validate that :hashed_token cannot be empty/falsy6808 is expected to validate that :iv cannot be empty/falsy6809 is expected to validate that :hashed_plaintext_token cannot be empty/falsy6810 .find_by_hashed_token6811 only includes matching record6812 .find_by_plaintext_token6813 only includes matching record6814MergeRequests::Mergeability::CheckDraftStatusService6815 #execute6816 when the merge request is a draft6817 returns a check result with status failed6818 when the merge request is not a draft6819 returns a check result with status success6820 #skip?6821 returns false6822 #cacheable?6823 returns false6824Packages::Npm::PackagePresenter6825 #name6826 returns the name6827 #versions6828 returns the versions6829 #dist_tags6830 returns the dist_tags6831DependencyProxy::CleanupBlobWorker6832 behaves like dependency_proxy_cleanup_worker6833 #perform_work6834 with no work to do6835 is expected to be nil6836 with work to do6837 deletes the oldest artifact pending destruction based on updated_at6838 #max_running_jobs6839 is expected to eq 56840 #remaining_work_count6841 is expected to eq 36842Sidebars::Groups::SuperSidebarPanel6843 # order random6844 implements #super_sidebar_context_header6845 #renderable_menus6846 is exposed as a renderable menu6847Mutations::Notes::RepositionImageDiffNote6848 #resolve6849 when the user does not have permission6850 raises an error if the resource is not accessible to the user6851 when the user has permission6852 mutates the note6853 when the note is a DiffNote, but not on an image6854 raises an error6855Resolvers::Terraform::StatesResolver6856 is expected to have nullable GraphQL type TerraformStateConnection6857 is expected to be truthy6858 #resolve6859 returns states associated with the agent6860 user does not have permission6861 is expected to be empty6862Resolvers::Terraform::StatesResolver.single6863 is expected to be < Resolvers::Terraform::StatesResolver6864 arguments6865 name6866 is expected to be present6867Gitlab::ErrorTracking::Processor::GrpcErrorProcessor6868 .call6869 when there is no GRPC exception6870 with Raven event6871 behaves like leaves data unchanged6872 is expected to include {:fingerprint => ["ArgumentError", "Missing arguments"]}6873 with Sentry event6874 behaves like leaves data unchanged6875 is expected to include {:fingerprint => ["ArgumentError", "Missing arguments"]}6876 when there is a GRPC exception with a debug string6877 with Raven event6878 behaves like processes the exception6879 removes the debug error string and stores it as an extra field6880 with no custom fingerprint6881 removes the debug error string and stores it as an extra field6882 with Sentry event6883 behaves like processes the exception6884 removes the debug error string and stores it as an extra field6885 with no custom fingerprint6886 removes the debug error string and stores it as an extra field6887 when there is a wrapped GRPC exception with a debug string6888 with Raven event6889 behaves like processes the exception6890 removes the debug error string and stores it as an extra field6891 with no custom fingerprint6892 removes the debug error string and stores it as an extra field6893 with Sentry event6894 behaves like processes the exception6895 removes the debug error string and stores it as an extra field6896 with no custom fingerprint6897 removes the debug error string and stores it as an extra field6898Gitlab::Bullet::Exclusions6899 #execute6900 with preferred method of path and method name6901 behaves like loads exclusion results6902 is expected to match [["_path_", "_method_"]]6903 with file pattern6904 behaves like loads exclusion results6905 is expected to match [["_file_pattern_"]]6906 with file name and line range6907 behaves like loads exclusion results6908 is expected to match [["file_name.rb", 5..10]]6909 without exclusions6910 behaves like loads exclusion results6911 is expected to match [[]]6912 without exclusions key in config6913 behaves like loads exclusion results6914 is expected to match []6915 when config file does not exist6916 provides an empty array for exclusions6917 with a Symbol6918 raises an exception6919 #validate_paths!6920 when validating scenarios6921 when using paths with method name6922 when source file for exclusion exists6923 is expected not to raise Exception6924 when source file for exclusion does not exist6925 is expected to raise RuntimeError6926 when using path only6927 when source file for exclusion exists6928 is expected not to raise Exception6929 when source file for exclusion does not exist6930 is expected to raise RuntimeError6931 when path_with_method is false for a file pattern6932 is expected not to raise Exception6933Gitlab::Database::UnidirectionalCopyTrigger6934 #name6935 when a single column name is given6936 returns the trigger name6937 when multiple column names are given6938 returns the trigger name6939 when a different number of new and old column names are given6940 raises an error6941 #create6942 when a single column name is given6943 creates the trigger and function6944 properly copies the column data using the trigger function6945 when multiple column names are given6946 creates the trigger and function to set all the columns6947 properly copies the columns using the trigger function6948 when a custom trigger name is given6949 creates the trigger and function with the custom name6950 when the trigger function already exists6951 does not raise an error6952 when a different number of new and old column names are given6953 raises an error6954 #drop6955 drops the trigger and function for the given arguments6956 when the trigger does not exist6957 does not raise an error6958Gitlab::Ci::Reports::Security::AggregatedReport6959 #created_at6960 no reports6961 has no created date6962 report with no created date6963 has no created date6964 has reports6965 has oldest created date6966RuboCop::Cop::Scalability::FileUploads6967 # order random6968 with optional params6969 detects File in types array6970 detects File as type argument6971 with required params6972 detects File in types array6973 detects File as type argument6974Iso8601DateValidator6975 # order random6976 passes a valid date6977 errors on an invalid date6978Types::Ci::TestReportSummaryType6979 is expected to eq "TestReportSummary"6980 contains attributes related to a pipeline test report summary6981Gitlab::Ci::Parsers::Sbom::Validators::CyclonedxSchemaValidator6982 with minimally valid report6983 is expected to be valid6984 when report has components6985 with minimally valid components6986 is expected to be valid6987 when components have versions6988 is expected to be valid6989 when components have licenses6990 is expected to be valid6991 when components have a signature6992 is expected to be valid6993 when components are not valid6994 is expected not to be valid6995 outputs errors for each validation failure6996 when report has metadata6997 is expected to be valid6998 when metadata has properties6999 when properties are valid7000 is expected to be valid7001 when properties are invalid7002 is expected not to be valid7003 outputs errors for each validation failure7004Packages::Conan::CreatePackageService7005 #execute7006 valid params7007 creates a new package7008 behaves like assigns the package creator7009 assigns the package creator7010 behaves like assigns build to package7011 with build info7012 assigns the pipeline to the package7013 behaves like assigns status to package7014 with status param7015 assigns the status to the package7016 invalid params7017 fails7018PagesDomains::UpdateService7019 # order random7020 when the user does not have the required permissions7021 does not update the pages domain and does not publish a PagesDomainUpdatedEvent7022 when the user has the required permissions7023 when it updates the domain successfully7024 updates the domain7025 publishes a PagesDomainUpdatedEvent7026 when it fails to update the domain7027 does not update a pages domain7028 does not publish a PagesDomainUpdatedEvent7029RuboCop::Cop::Migration::ScheduleAsync7030 # order random7031 in a migration7032 in an old migration7033 behaves like a disabled cop7034 does not register any offenses7035 that is recent7036 BackgroundMigrationWorker.perform_async7037 adds an offense when calling `BackgroundMigrationWorker.peform_async`7038 CiDatabaseWorker.perform_async7039 adds an offense when calling `CiDatabaseWorker.peform_async`7040 BackgroundMigrationWorker.perform_in7041 adds an offense7042 CiDatabaseWorker.perform_in7043 adds an offense7044 BackgroundMigrationWorker.bulk_perform_async7045 adds an offense7046 CiDatabaseWorker.bulk_perform_async7047 adds an offense7048 BackgroundMigrationWorker.bulk_perform_in7049 adds an offense7050 CiDatabaseWorker.bulk_perform_in7051 adds an offense7052 outside of a migration7053 behaves like a disabled cop7054 does not register any offenses7055Ci::JobArtifacts::DeleteService7056 # order random7057 #execute7058 is successful7059 deletes erasable artifacts7060 does not delete trace7061 when project is undergoing stats refresh7062 logs a warning7063 returns an error response with the correct message and reason7064 when an error response is received from DestroyBatchService7065 returns an error response with the correct message7066RuboCop::Cop::Performance::ReadlinesEach7067 # order random7068 when just using readlines without each7069 does not flag it as an offense7070 when reading all lines using IO.readlines.each7071 autocorrects `readlines.each` to `each_line`7072 behaves like class read7073 and it is called as a class method on IO7074 flags it as an offense7075 when just using readlines without each7076 does not flag it as an offense7077 behaves like class read7078 and it is called as a class method on File7079 flags it as an offense7080 when just using readlines without each7081 does not flag it as an offense7082 and it is called as an instance method on a return value7083 flags it as an offense7084 and it is called as an instance method on an assigned variable7085 flags it as an offense7086 and it is called as an instance method on a new object7087 flags it as an offense7088Types::DesignManagementType7089 is expected to have graphql fields :version and :design_at_version7090Gitlab::GithubImport::Importer::Attachments::ReleasesImporter7091 # order random7092 #object_type7093 is expected to eq :release_attachment7094 #sequential_import7095 imports each project release7096 when note is already processed7097 doesn't import this release7098 #sidekiq_worker_class7099 is expected to eq Gitlab::GithubImport::Attachments::ImportReleaseWorker7100 #id_for_already_imported_cache7101 is expected to eq 12237102 #collection_method7103 is expected to eq :release_attachments7104Gitlab::UrlBlockers::IpAllowlistEntry7105 #initialize7106 initializes without port7107 initializes with port7108 #match?7109 matches with equivalent IP and port7110 matches any port when port is nil7111 does not match when port is present but requested_port is nil7112 matches when port and requested_port are nil7113 works with ipv67114 matches ipv4 within IPv4 range7115 matches IPv6 within IPv6 range7116 matches IPv4 to IPv6 mapped addresses in allow list7117 matches IPv4 to IPv6 mapped addresses in requested IP7118PersonalAccessTokens::ExpiredNotificationWorker7119 #perform7120 when a token has expired7121 uses notification service to send email to the user7122 updates notified column7123 when token has expired in the past7124 behaves like expiry notification is not required to be sent for the token7125 is expected not to receive access_token_expired(#<User id:1742 @user833>, ["PAT 4"]) 0 times7126 when token is impersonated7127 behaves like expiry notification is not required to be sent for the token7128 is expected not to receive access_token_expired(#<User id:1743 @user834>, ["PAT 5"]) 0 times7129 when token is revoked7130 behaves like expiry notification is not required to be sent for the token7131 is expected not to receive access_token_expired(#<User id:1744 @user835>, ["PAT 6"]) 0 times7132CreateNoteDiffFileWorker7133 #perform7134 creates diff file7135 when the supplied diff_note_id doesn't belong to an existing DiffNote7136 returns nil without raising an error7137 when called with a missing diff_note id7138 returns nil without creating diff file7139Gitlab::GithubImport::Stage::ImportIssueEventsWorker7140 #import7141 when stage is enabled7142 imports issue events7143 when stage is disabled7144 skips issue events import and calls next stage7145Gitlab::UsageDataCounters::GitLabCliActivityUniqueCounter7146 when tracking a gitlab cli request7147 with the old UserAgent7148 behaves like a request from an extension7149 tracks when the user agent is matching7150 does not track when the user agent is not matching7151 does not track if user agent is not present7152 does not track if user is not present7153 with the current UserAgent7154 behaves like a request from an extension7155 tracks when the user agent is matching7156 does not track when the user agent is not matching7157 does not track if user agent is not present7158 does not track if user is not present7159Gitlab::SidekiqMiddleware7160 .server_configurator7161 server metrics7162 records correct Gitaly duration7163 all optional middlewares on7164 behaves like a middleware chain7165 passes through the right middlewares7166 behaves like a middleware chain for mailer7167 behaves like a middleware chain7168 passes through the right middlewares7169 all optional middlewares off7170 behaves like a middleware chain7171 passes through the right middlewares7172 behaves like a middleware chain for mailer7173 behaves like a middleware chain7174 passes through the right middlewares7175 .client_configurator7176 behaves like a middleware chain7177 passes through the right middlewares7178 behaves like a middleware chain for mailer7179 behaves like a middleware chain7180 passes through the right middlewares7181PagesDomainPresenter7182 needs_validation?7183 pages_verification_enabled: false, traits: :unverified, expected: false7184 is expected to eq false7185 pages_verification_enabled: false, traits: [], expected: false7186 is expected to eq false7187 pages_verification_enabled: true, traits: :unverified, expected: true7188 is expected to eq true7189 pages_verification_enabled: true, traits: [], expected: false7190 is expected to eq false7191 show_auto_ssl_failed_warning?7192 is expected to eq false7193 when we failed to obtain Let's Encrypt's certificate7194 is expected to eq true7195 when Let's Encrypt integration is disabled7196 is expected to eq false7197 when domain is unverified7198 is expected to eq false7199Gitlab::ChatNameToken7200 when using unknown token7201 returns empty data7202 when storing data7203 returns stored data7204 and after deleting them7205 data are removed7206Gitlab::DependencyLinker::GemfileLinker7207 .support?7208 supports Gemfile7209 supports gems.rb7210 does not support other files7211 #link7212 links sources7213 links dependencies7214 links to external dependencies7215 links GitHub repos7216 links Git repos7217Gitlab::Usage::Metrics::Instrumentations::RedisMetric7218 raises an exception if event option is not present7219 raises an exception if prefix option is not present7220 behaves like a correct instrumented metric value7221 has correct value7222 children classes7223 availability not defined7224 returns default availability7225 availability defined7226 returns defined availability7227 with usage prefix disabled7228 behaves like a correct instrumented metric value7229 has correct value7230 with prefix disabled7231 behaves like a correct instrumented metric value7232 has correct value7233Projects::ScheduleBulkRepositoryShardMovesService7234 behaves like moves repository shard in bulk7235 #execute7236 schedules container repository storage moves7237 read-only repository7238 does not get scheduled7239 .enqueue7240 defers to the worker7241Gitlab::Ci::Config::EdgeStagesInjector7242 #call7243 without stages7244 is expected to match {:test=>{:script=>"test"}}7245 with values7246 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}7247 with bad values7248 is expected to match {:stages=>"stage1", :test=>{:script=>"test"}}7249 with collision values7250 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}7251 with types7252 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}7253 with types7254 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}7255 .wrap_stages7256 with empty value7257 is expected to eq [".pre", ".post"]7258 with values7259 is expected to eq [".pre", "s1", ".post"]7260Gitlab::Graphql::Present::FieldExtension7261 when the object does not declare a presenter7262 does not affect normal resolution7263 when the field is declared on an interface, and implemented by a presenter7264 resolves the interface field using the implementation from the presenter7265 when the implementation is inherited7266 resolves the interface field using the implementation from the presenter7267 interactions with inheritance7268 can resolve value, foo and bar7269 when the object declares a presenter7270 when the presenter overrides the original method7271 behaves like calling the presenter method7272 calls the presenter method7273 when the presenter provides a new method7274 when we select the original field7275 is unaffected7276 when we select the new field7277 behaves like calling the presenter method7278 calls the presenter method7279Gitlab::Pagination::Keyset::RequestContext7280 #page7281 with only order_by given7282 extracts order_by/sorting information7283 with order_by and sort given7284 extracts order_by/sorting information and adds tie breaker7285 with no order_by information given7286 defaults to tie breaker7287 with per_page params given7288 extracts per_page information7289 #apply_headers7290 sets Link header with same host/path as the original request7291 sets Link header with a link to the next page7292 with descending order7293 sets Link header with a link to the next page7294Users::ProjectCallout7295 behaves like having unique enum values7296 has unique values in "feature_name"7297 relationships7298 is expected to belong to project required: false7299 validations7300 is expected to validate that :project cannot be empty/falsy7301 is expected to validate that :feature_name cannot be empty/falsy7302 is expected to validate that :feature_name is unique within the scope of :user_id and :project_id7303Gitlab::Database::SchemaValidation::Inconsistency7304 # order random7305 #diff7306 returns a diff between the structure.sql and the database7307 #inspect7308 prints the inconsistency message7309 #error_message7310 returns the error message7311 #type7312 returns the type of the validator7313 #table_name7314 returns the table name7315 #object_name7316 returns the index name7317Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithMonitorEnabledMetric7318 # order random7319 behaves like a correct instrumented metric value and query7320 behaves like a correct instrumented metric value7321 has correct value7322 behaves like a correct instrumented metric query7323 has correct generate query7324Layouts::HorizontalSectionComponent7325 slots7326 renders title7327 renders body slot7328 when description slot is provided7329 renders description7330 when description slot is not provided7331 does not render description7332 arguments7333 border7334 defaults to true and adds gl-border-b CSS class7335 does not add gl-border-b CSS class when set to false7336 options7337 adds options to wrapping element7338Ml::CandidateMetric7339 associations7340 is expected to belong to candidate required: false7341 scope :latest7342 fetches only the last metric for the name7343Gitlab::CrossProjectAccess7344 #add_check7345 keeps track of the properties to check7346 builds the check correctly7347 merges the checks of a parent class into existing checks of a subclass7348 merges the existing checks of a superclass into the checks of a subclass7349 #find_check7350 returns a check when it was defined for a superclass7351 caches the result for a subclass7352 returns the checks for the closest class if there are more checks available7353admin/application_settings/_repository_storage.html.haml7354 with storage weights configured7355 lists storages with weight7356 lists storages without weight7357 lists only configured storages7358Gitlab::Checks::ForcePush7359 .force_push?7360 returns false if the repo is empty7361 checks if old rev is an anchestor7362Banzai::CommitRenderer7363 .render7364 renders a commit description and title7365API::Helpers::LabelHelpers7366 create_service_params7367 when a project is given7368 returns the expected params7369 when a group is given7370 returns the expected params7371 when something else is given7372 raises a type error7373DescriptionVersion7374 associations7375 is expected to belong to issue required: false7376 is expected to belong to merge_request required: false7377 validations7378 exactly_one_issuable7379 issue_id: nil, merge_request_id: 1, valid?: true7380 is expected to eq true7381 issue_id: 1, merge_request_id: nil, valid?: true7382 is expected to eq true7383 issue_id: nil, merge_request_id: nil, valid?: false7384 is expected to eq false7385 issue_id: 1, merge_request_id: 1, valid?: false7386 is expected to eq false7387Gitlab::UrlBlockers::DomainAllowlistEntry7388 #initialize7389 initializes without port7390 initializes with port7391 #match?7392 matches when domain and port are equal7393 matches any port when port is nil7394 does not match when port is present but requested_port is nil7395 matches when port and requested_port are nil7396 does not match if domain is not equal7397CommitUserMention7398 associations7399 is expected to belong to note required: false7400 behaves like has user mentions7401 #has_mentions?7402 when no mentions7403 returns false7404 when mentioned_users_ids not null7405 returns true7406 when mentioned projects7407 returns true7408 when mentioned groups7409 returns true7410Ci::DownloadableArtifactSerializer7411 #as_json7412 matches schema7413Peek::Views::Rugged7414 returns no results7415 returns aggregated results7416Bitbucket::Page7417 #items7418 returns collection of needed objects7419 #attrs7420 returns attributes7421 #next?7422 returns true7423 returns false7424 #next7425 returns next attribute7426WorkItems::Widgets::Notifications7427 # order random7428 #subscribed?7429 is expected to eq true7430 .type7431 is expected to eq :notifications7432 #type7433 is expected to eq :notifications7434Resolvers::Ci::RunnerGroupsResolver7435 # order random7436 #resolve7437 with authorized user7438 returns a lazy value with all groups7439 with unauthorized user7440 is expected to be nil7441Gitlab::Metrics::Subscribers::ActionView7442 #render_template7443 tracks rendering of a template7444 observes view rendering time7445Gitlab::Ci::Ansi2json::Parser7446 bold?7447 returns true if style mask matches bold format7448 returns false if style mask does not match bold format7449 matching_formats7450 returns matching formats given a style mask7451 returns an empty array if no formats match the style mask7452Stepable7453 stops after the first non success status7454 when all methods return success7455 calls all methods in order7456 merges variables returned by all steps7457 can modify results of previous steps7458 with multiple stepable classes7459 does not leak steps7460ExportCsvWorker7461 delegates call to IssuableExportCsvWorker7462Import::BulkImportEntity7463 exposes id7464 exposes full_name7465 exposes full_path7466 exposes web_url7467 does not expose unspecified attributes7468Types::DataTransfer::ProjectDataTransferType7469 # order random7470 includes the specific fields7471 #total_egress7472 returns mock data7473 when data_transfer_monitoring_mock_data is disabled7474 calls sum on active record relation7475Types::PrometheusAlertType7476 is expected to eq "PrometheusAlert"7477 has the expected fields7478 is expected to require graphql authorizations :read_prometheus_alerts7479Gitlab::TabWidth7480 .css_class_for_user7481 returns default CSS class when user is nil7482 returns CSS class for user's tab width7483 raises if tab width is out of valid range7484RuboCop::Cop::BanCatchThrow7485 # order random7486 registers an offense when `catch` or `throw` are used7487 does not register an offense for a method called catch or throw7488Banzai::Pipeline::EmailPipeline7489 .filters7490 returns the expected type7491 excludes ImageLazyLoadFilter7492 shows punycode for autolinks7493Projects::FinalizeProjectStatisticsRefreshWorker7494 # order random7495 #perform7496 stores the refresh increment to the buffered counter7497 when record class does not exist7498 does nothing7499 when record does not exist7500 does nothing7501Banzai::FilterArray7502 #insert_after7503 inserts an element after a provided element7504 inserts an element at the end when the provided element does not exist7505 #insert_before7506 inserts an element before a provided element7507 inserts an element at the beginning when the provided element does not exist7508FromExcept7509 behaves like from set operator7510 #from_except7511 selects from the results of the EXCEPT7512 returns empty set when passing empty array7513 supports the use of a custom alias for the sub query7514 supports keeping duplicate rows7515API::Validations::Validators::Limit7516 valid limit param7517 does not raise a validation error7518 longer than limit param7519 raises a validation error7520 value is nil7521 does not raise a validation error7522API::Github::Entities7523 API::Github::Entities::User7524 aggregate_failures7525 with avatar7526 is expected to include "http://localhost/uploads/-/system/user/avatar/"7527Banzai::Filter::AsciiDocPostProcessingFilter7528 adds class for elements with data-math-style7529 adds class for elements with data-mermaid-style7530 keeps content when no data-math-style found7531ProductAnalytics::BuildGraphService7532 returns a valid graph hash7533Gitlab::Config::Entry::Unspecified7534 #valid?7535 delegates method to entry7536 #errors7537 delegates method to entry7538 #value7539 delegates method to entry7540 #specified?7541 is always false7542CronValidator7543 validates valid crontab7544 validates invalid crontab7545 cron field is not whitelisted7546 raises an error7547Issuable::LabelLinksDestroyWorker7548 is labeled as idempotent7549 performs multiple times sequentially without raising an exception7550 calls the Issuable::DestroyLabelLinksService7551Gitlab::RepositoryArchiveRateLimiter7552 #check_archive_rate_limit!7553 when archive_rate_limit feature flag is disabled7554 does not check rate limit7555 when archive_rate_limit feature flag is enabled7556 when current user exists7557 checks for project_repositories_archive rate limiting with default threshold7558 when current user does not exist7559 checks for project_repositories_archive rate limiting with threshold 1007560Gitlab::Cluster::PumaWorkerKillerInitializer7561 # order random7562 .start7563 when GITLAB_MEMORY_WATCHDOG_ENABLED is false7564 configures and start PumaWorkerKiller7565 when GITLAB_MEMORY_WATCHDOG_ENABLED is not set7566 configures and start PumaWorkerKiller7567RuboCop::Cop::QA::SelectorUsage7568 # order random7569 outside of QA7570 data-qa-selector7571 behaves like non-qa file usage7572 reports an offense7573 qa class7574 behaves like non-qa file usage7575 reports an offense7576 in a QA file7577 has no error7578Gitlab::Ci::Pipeline::Chain::TemplateUsage7579 #perform!7580 tracks the included templates7581UnnestedInFilters::Dsl7582 #exists?7583 when there is no record in the database with given filters7584 is expected to be falsey7585 when there is a record in the database with given filters7586 is expected to be truthy7587Gitlab::Ci::Status::Group::Factory7588 inherits from the core factory7589 exposes group helpers7590 exposes extended statuses7591Sidebars::UserProfile::Panel7592 # order random7593 implements #aria_label7594 implements #super_sidebar_context_header7595Ci::DailyBuildGroupReportResultSerializer7596 #to_json7597 returns an array of group results7598Gitlab::Database::TransactionTimeoutSettings7599 # order random7600 #disable_timeouts7601 sets timeouts to 07602 #restore_timeouts7603 resets value7604Gitlab::Graphql::Tracers::ApplicationContextTracer7605 sets application context during execute_query and cleans up afterwards7606 sets caller_id when operation is not known7607Types::Projects::TopicType7608 is expected to eq "Topic"7609 is expected to have graphql fields :id, :name, :title, :description, :description_html, and :avatar_url7610Gitlab::ApplicationRateLimiter::BaseStrategy7611 #increment7612 raises NotImplementedError7613 #read7614 raises NotImplementedError7615Evidences::EvidenceSerializer7616 represents an EvidenceEntity entity7617Types::AccessLevelEnum7618 is expected to eq "AccessLevelEnum"7619 exposes all the existing access levels7620Types::ErrorTracking::SentryErrorType7621 is expected to eq "SentryError"7622 exposes the expected fields7623Packages::Rpm::RepositoryMetadata::BuildOtherXmlService7624 # order random7625 #execute7626 adds all changelog nodes7627 set required date attribute7628errors/omniauth_error7629 renders template7630RuboCop::Cop::Gitlab::RSpec::AvoidSetup7631 # order random7632 when calling let_it_be7633 registers an offense7634 without readability issues7635 does not register an offense7636Gitlab::Graphql::QueryAnalyzers::AST::LoggerAnalyzer7637 #result7638 returns the complexity, depth, duration, etc7639Gitlab::Metrics::Transaction7640 #run7641 is expected to raise NotImplementedError7642Types::Packages::Pypi::MetadatumType7643 includes pypi metadatum fields7644TrendingProjectsWorker7645 #perform7646 refreshes the trending projects7647API::Entities::Nuget::PackageMetadataCatalogEntry7648 is expected to eq {:@id=>"http://sandbox.com/json/package", :authors=>"Authors", :dependencyGroups=>[], :iconUrl=>"http://sandbox.com/icon", :id=>"PackageTest", :licenseUrl=>"http://sandbox.com/license", :packageContent=>"http://sandbox.com/archive/package", :projectUrl=>"http://sandbox.com/project", :summary=>"Summary", :tags=>"tag1 tag2 tag3", :version=>"1.2.3"}7649Gitlab::Usage::Metrics::Instrumentations::UuidMetric7650 behaves like a correct instrumented metric value7651 has correct value7652Gitlab::Kubernetes::ConfigMaps::AwsNodeAuth7653 #generate7654 builds a Kubeclient Resource7655gzip: /builds/gitlab-org/gitlab/query_recorder/rspec-unit-pg13-21-28.ndjson.gz already exists; not overwritten7656Knapsack report was generated. Preview:7657{7658 "spec/scripts/lib/glfm/update_example_snapshots_spec.rb": 242.40181231600002,7659 "spec/models/note_spec.rb": 149.42290158899993,7660 "spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb": 166.87801647699996,7661 "spec/finders/deployments_finder_spec.rb": 98.51696480699991,7662 "spec/services/issues/move_service_spec.rb": 76.78559633700002,7663 "spec/lib/gitlab/auth/o_auth/user_spec.rb": 28.660985235,7664 "spec/policies/wiki_page_policy_spec.rb": 51.64852139599998,7665 "spec/services/ci/unlock_artifacts_service_spec.rb": 60.928350965999925,7666 "spec/lib/gitlab/url_blocker_spec.rb": 19.905394261999845,7667 "spec/presenters/project_presenter_spec.rb": 30.661193912000044,7668 "spec/finders/merge_request_target_project_finder_spec.rb": 32.337917438999966,7669 "spec/finders/branches_finder_spec.rb": 30.615065334999827,7670 "spec/models/gpg_key_spec.rb": 29.302706604999912,7671 "spec/services/spam/spam_action_service_spec.rb": 22.77977095999995,7672 "spec/lib/gitlab/database/background_migration/batched_migration_spec.rb": 8.70023613100011,7673 "spec/models/trending_project_spec.rb": 23.457572991000006,7674 "spec/lib/gitlab/utils/usage_data_spec.rb": 9.431836421000071,7675 "spec/services/work_items/create_service_spec.rb": 16.706253395999966,7676 "spec/finders/group_descendants_finder_spec.rb": 18.898947849000024,7677 "spec/services/members/create_service_spec.rb": 19.596182820999957,7678 "spec/workers/packages/debian/process_changes_worker_spec.rb": 16.41222268299998,7679 "spec/policies/project_member_policy_spec.rb": 19.79881757199996,7680 "spec/models/operations/feature_flag_spec.rb": 14.601708358999986,7681 "spec/lib/gitlab/ci/runner_upgrade_check_spec.rb": 9.596614561000024,7682 "spec/services/merge_requests/request_review_service_spec.rb": 17.648220179999953,7683 "spec/services/auto_merge_service_spec.rb": 14.582197847000089,7684 "spec/lib/gitlab/github_import/importer/releases_importer_spec.rb": 10.609562217000075,7685 "spec/models/application_record_spec.rb": 11.409008191000112,7686 "spec/uploaders/pages/deployment_uploader_spec.rb": 9.285404537999966,7687 "spec/services/metrics/dashboard/custom_dashboard_service_spec.rb": 11.204058455999984,7688 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 11.267790514000126,7689 "spec/finders/user_recent_events_finder_spec.rb": 6.141260199000044,7690 "spec/rubocop/code_reuse_helpers_spec.rb": 2.578855314999828,7691 "spec/lib/gitlab/email/receiver_spec.rb": 2.779392099000006,7692 "spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb": 11.067981531999976,7693 "spec/tasks/gitlab/user_management_rake_spec.rb": 10.365441432999887,7694 "spec/lib/gitlab/sql/pattern_spec.rb": 3.483931236999979,7695 "spec/lib/gitlab/auth/saml/user_spec.rb": 6.373472028999913,7696 "spec/services/files/delete_service_spec.rb": 9.332156336000025,7697 "spec/models/plan_limits_spec.rb": 5.331142159000137,7698 "spec/lib/gitlab/github_import/representation/diff_note_spec.rb": 1.9726317180000024,7699 "spec/services/environments/schedule_to_delete_review_apps_service_spec.rb": 8.696485429999939,7700 "spec/services/google_cloud/generate_pipeline_service_spec.rb": 7.1288237049998315,7701 "spec/lib/bulk_imports/projects/pipelines/design_bundle_pipeline_spec.rb": 7.474512578000031,7702 "spec/services/projects/import_export/relation_export_service_spec.rb": 4.076892527999917,7703 "spec/lib/gitlab/audit/auditor_spec.rb": 5.32010650899997,7704 "spec/lib/google_api/cloud_platform/client_spec.rb": 1.6186629249998532,7705 "spec/lib/grafana/client_spec.rb": 2.085034118999829,7706 "spec/tasks/gitlab/artifacts/migrate_rake_spec.rb": 7.164459744999931,7707 "spec/presenters/snippet_blob_presenter_spec.rb": 5.080412797999998,7708 "spec/workers/container_registry/migration/observer_worker_spec.rb": 6.672342586000013,7709 "spec/services/issues/reorder_service_spec.rb": 5.798831774000064,7710 "spec/views/layouts/header/_new_dropdown.haml_spec.rb": 3.962309165999841,7711 "spec/services/metrics/dashboard/system_dashboard_service_spec.rb": 3.381596360000003,7712 "spec/models/concerns/cacheable_attributes_spec.rb": 1.7934872989999349,7713 "spec/services/ci/create_pipeline_service/rate_limit_spec.rb": 5.901687013000128,7714 "spec/services/ci/parse_dotenv_artifact_service_spec.rb": 3.671340543000042,7715 "spec/lib/gitlab/diff/file_collection/compare_spec.rb": 7.390078106000146,7716 "spec/lib/gitlab/ci/build/rules_spec.rb": 1.7167265850000604,7717 "spec/lib/gitlab/spamcheck/client_spec.rb": 1.8297508749999452,7718 "spec/lib/gitlab/tracking_spec.rb": 2.3128808649998973,7719 "spec/finders/protected_branches_finder_spec.rb": 4.29898848799985,7720 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/code_stage_start_spec.rb": 4.38993256599997,7721 "spec/lib/gitlab/ci/status/build/play_spec.rb": 3.97945609899989,7722 "spec/lib/gitlab/api_authentication/token_resolver_spec.rb": 2.5323926949999986,7723 "spec/lib/banzai/filter/upload_link_filter_spec.rb": 1.9968822369999089,7724 "spec/services/users/set_status_service_spec.rb": 3.222370402000024,7725 "spec/graphql/resolvers/project_pipeline_statistics_resolver_spec.rb": 3.9262894510000024,7726 "spec/policies/upload_policy_spec.rb": 2.4223161239999627,7727 "spec/models/clusters/providers/gcp_spec.rb": 3.5415928410000106,7728 "spec/services/ci/build_report_result_service_spec.rb": 3.8927871670000513,7729 "spec/workers/projects/import_export/parallel_project_export_worker_spec.rb": 3.1582467749999523,7730 "spec/services/git/wiki_push_service/change_spec.rb": 0.9215923990000192,7731 "spec/services/users/assigned_issues_count_service_spec.rb": 4.778399965000062,7732 "spec/lib/gitlab/process_management_spec.rb": 1.1179773369999566,7733 "spec/lib/gitlab/database/query_analyzer_spec.rb": 0.8772675370000798,7734 "spec/workers/repository_update_remote_mirror_worker_spec.rb": 2.514353877999838,7735 "spec/lib/gitlab/slash_commands/issue_new_spec.rb": 5.04486057500003,7736 "spec/finders/namespaces/projects_finder_spec.rb": 2.7257252160000007,7737 "spec/finders/clusters_finder_spec.rb": 3.60027587400009,7738 "spec/lib/gitlab/repository_url_builder_spec.rb": 1.4238354009999057,7739 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 4.00436852100006,7740 "spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb": 5.260179145000166,7741 "spec/services/ci/delete_objects_service_spec.rb": 3.9797696809998797,7742 "spec/graphql/mutations/boards/issues/issue_move_list_spec.rb": 2.8847046729999875,7743 "spec/services/work_items/parent_links/destroy_service_spec.rb": 3.0379646900000807,7744 "spec/services/markdown_content_rewriter_service_spec.rb": 3.1590668950000236,7745 "spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb": 3.0777594119999776,7746 "spec/lib/gitlab/ci/config/yaml/tags/reference_spec.rb": 0.9575352509998538,7747 "spec/models/issue_assignee_spec.rb": 3.958025201000055,7748 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 2.0490390279999247,7749 "spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 3.4847650629999407,7750 "spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb": 2.870643581999957,7751 "spec/lib/gitlab/slash_commands/issue_search_spec.rb": 2.979280665000033,7752 "spec/lib/gitlab/cache/client_spec.rb": 0.9204697689999648,7753 "spec/lib/gitlab/query_limiting/middleware_spec.rb": 0.7483940440001788,7754 "spec/lib/gitlab/ci/pipeline/chain/build_spec.rb": 2.2208624140000666,7755 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.7843683080000119,7756 "spec/services/ci/pipelines/add_job_service_spec.rb": 3.2454671380000946,7757 "spec/lib/gitlab/usage_data_counters/editor_unique_counter_spec.rb": 1.0077478559999236,7758 "spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb": 3.4577833880000526,7759 "spec/lib/banzai/reference_parser/milestone_parser_spec.rb": 4.158498607999945,7760 "spec/workers/pages_domain_ssl_renewal_cron_worker_spec.rb": 2.2229328729999906,7761 "spec/workers/rebase_worker_spec.rb": 2.894793037999989,7762 "spec/lib/gitlab/import_export/remote_stream_upload_spec.rb": 2.046989308000093,7763 "spec/services/authorized_project_update/project_recalculate_service_spec.rb": 2.1609947929998725,7764 "spec/rubocop/migration_helpers_spec.rb": 1.0662709090001954,7765 "spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb": 3.4962934919999498,7766 "spec/uploaders/records_uploads_spec.rb": 2.928463062999981,7767 "spec/workers/stuck_export_jobs_worker_spec.rb": 2.2466306700000587,7768 "spec/lib/constraints/project_url_constrainer_spec.rb": 3.0939186300001893,7769 "spec/lib/gitlab/import_export/attribute_cleaner_spec.rb": 0.4852497609999773,7770 "spec/workers/merge_requests/handle_assignees_change_worker_spec.rb": 2.869336661999796,7771 "spec/lib/gitlab/database/reindexing/index_selection_spec.rb": 2.647620423000035,7772 "spec/support_specs/helpers/packages/npm_spec.rb": 2.015592792999996,7773 "spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb": 3.1863766849999138,7774 "spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb": 3.17005971399999,7775 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.6952972620001674,7776 "spec/graphql/resolvers/metrics/dashboards/annotation_resolver_spec.rb": 1.4187387800000124,7777 "spec/services/work_items/widgets/labels_service/update_service_spec.rb": 1.145145115999867,7778 "spec/services/users/unban_service_spec.rb": 2.354913115000045,7779 "spec/models/group_deploy_token_spec.rb": 1.1602721120000297,7780 "spec/finders/lfs_pointers_finder_spec.rb": 1.356939943000043,7781 "spec/lib/gitlab/word_diff/parser_spec.rb": 0.4931457659999978,7782 "spec/lib/gitlab/utils/email_spec.rb": 0.9222443369999382,7783 "spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb": 0.4603392740000345,7784 "spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb": 1.562135446999946,7785 "spec/lib/gitlab/middleware/basic_health_check_spec.rb": 0.6231729640001049,7786 "spec/services/packages/composer/composer_json_service_spec.rb": 2.4845784330000242,7787 "spec/models/concerns/batch_destroy_dependent_associations_spec.rb": 2.634191304000069,7788 "spec/models/concerns/x509_serial_number_attribute_spec.rb": 0.6816143240000656,7789 "spec/models/token_with_iv_spec.rb": 0.7404329229998439,7790 "spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb": 0.5595621290001418,7791 "spec/presenters/packages/npm/package_presenter_spec.rb": 0.47387357200000224,7792 "spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb": 0.7643576919999759,7793 "spec/lib/sidebars/groups/super_sidebar_panel_spec.rb": 0.8625402590000704,7794 "spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.9750781509999342,7795 "spec/graphql/resolvers/terraform/states_resolver_spec.rb": 2.046828538999989,7796 "spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb": 1.0050568650001424,7797 "spec/lib/gitlab/bullet/exclusions_spec.rb": 0.7855358140000135,7798 "spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb": 1.0998220740000306,7799 "spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb": 1.9525375800001257,7800 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.6024757610000506,7801 "spec/validators/iso8601_date_validator_spec.rb": 0.4285293420000471,7802 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.6186525670000265,7803 "spec/lib/gitlab/ci/parsers/sbom/validators/cyclonedx_schema_validator_spec.rb": 0.8206816450001497,7804 "spec/services/packages/conan/create_package_service_spec.rb": 1.9504888829999345,7805 "spec/services/pages_domains/update_service_spec.rb": 1.5771159729999908,7806 "spec/rubocop/cop/migration/schedule_async_spec.rb": 0.7675120389999393,7807 "spec/services/ci/job_artifacts/delete_service_spec.rb": 1.523958420000099,7808 "spec/rubocop/cop/performance/readlines_each_spec.rb": 0.7717307860000346,7809 "spec/graphql/types/design_management_type_spec.rb": 0.37729710600001454,7810 "spec/lib/gitlab/github_import/importer/attachments/releases_importer_spec.rb": 1.1557520960000147,7811 "spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb": 0.8040598079999199,7812 "spec/workers/personal_access_tokens/expired_notification_worker_spec.rb": 1.4665186489999087,7813 "spec/workers/create_note_diff_file_worker_spec.rb": 1.8065739670000767,7814 "spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb": 1.8776085739998507,7815 "spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb": 0.9824611349999941,7816 "spec/lib/gitlab/sidekiq_middleware_spec.rb": 0.7796358190000774,7817 "spec/presenters/pages_domain_presenter_spec.rb": 1.0342438210000182,7818 "spec/lib/gitlab/chat_name_token_spec.rb": 0.4748690820001684,7819 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.8342710439999337,7820 "spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb": 0.9065157690001797,7821 "spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb": 1.4490249149998817,7822 "spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb": 0.5726037639999504,7823 "spec/lib/gitlab/graphql/present/field_extension_spec.rb": 0.7295570569999654,7824 "spec/lib/gitlab/pagination/keyset/request_context_spec.rb": 0.7892746150000676,7825 "spec/models/users/project_callout_spec.rb": 0.7972101240000029,7826 "spec/lib/gitlab/database/schema_validation/inconsistency_spec.rb": 0.9634782370001176,7827 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_monitor_enabled_metric_spec.rb": 1.495857802000046,7828 "spec/components/layouts/horizontal_section_component_spec.rb": 0.780835426000067,7829 "spec/models/ml/candidate_metric_spec.rb": 1.3746361170001364,7830 "spec/lib/gitlab/cross_project_access_spec.rb": 0.6347050719998606,7831 "spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb": 0.6154257819998747,7832 "spec/lib/gitlab/checks/force_push_spec.rb": 1.1123245030000817,7833 "spec/lib/banzai/commit_renderer_spec.rb": 1.1760753890000615,7834 "spec/lib/api/helpers/label_helpers_spec.rb": 1.0010782389999804,7835 "spec/models/description_version_spec.rb": 0.5267844690001766,7836 "spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb": 0.5307990979999886,7837 "spec/models/user_mentions/commit_user_mention_spec.rb": 0.5358959080001569,7838 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 1.2921623519998775,7839 "spec/lib/peek/views/rugged_spec.rb": 1.1276954119998663,7840 "spec/lib/bitbucket/page_spec.rb": 0.5803576849998535,7841 "spec/models/work_items/widgets/notifications_spec.rb": 0.953089011999964,7842 "spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb": 1.1144760219999625,7843 "spec/lib/gitlab/metrics/subscribers/action_view_spec.rb": 0.5808480549999331,7844 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.5704654159999336,7845 "spec/models/concerns/stepable_spec.rb": 0.48088195100012854,7846 "spec/workers/export_csv_worker_spec.rb": 0.9707600219999222,7847 "spec/serializers/import/bulk_import_entity_spec.rb": 0.5004421300000104,7848 "spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb": 0.7909270420000212,7849 "spec/graphql/types/prometheus_alert_type_spec.rb": 0.5256440289999773,7850 "spec/lib/gitlab/tab_width_spec.rb": 0.4718417510000563,7851 "spec/rubocop/cop/ban_catch_throw_spec.rb": 0.5410299270001815,7852 "spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.7357270249999601,7853 "spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb": 0.7429762649999248,7854 "spec/lib/banzai/filter_array_spec.rb": 0.49582423000015297,7855 "spec/models/concerns/from_except_spec.rb": 0.48966478000011193,7856 "spec/lib/api/validations/validators/limit_spec.rb": 0.4119610660000035,7857 "spec/lib/api/github/entities_spec.rb": 0.7013454769999043,7858 "spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb": 0.4096804250000332,7859 "spec/services/product_analytics/build_graph_service_spec.rb": 0.7371247149999363,7860 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 0.49948879000021407,7861 "spec/validators/cron_validator_spec.rb": 0.5750114249999569,7862 "spec/workers/issuable/label_links_destroy_worker_spec.rb": 0.6050987730000088,7863 "spec/lib/gitlab/repository_archive_rate_limiter_spec.rb": 0.4346235739999429,7864 "spec/lib/gitlab/cluster/puma_worker_killer_initializer_spec.rb": 0.4555720419998579,7865 "spec/rubocop/cop/qa/selector_usage_spec.rb": 0.44984737300001143,7866 "spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb": 0.7837450320000698,7867 "spec/lib/unnested_in_filters/dsl_spec.rb": 0.6318404620001274,7868 "spec/lib/gitlab/ci/status/group/factory_spec.rb": 0.6246103230000699,7869 "spec/lib/sidebars/user_profile/panel_spec.rb": 0.7478260740001588,7870 "spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb": 0.586475954999969,7871 "spec/lib/gitlab/database/transaction_timeout_settings_spec.rb": 0.47889114100007646,7872 "spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb": 0.45095848200003275,7873 "spec/graphql/types/projects/topic_type_spec.rb": 0.4068883959998857,7874 "spec/lib/gitlab/application_rate_limiter/base_strategy_spec.rb": 0.44145498299985775,7875 "spec/serializers/evidences/evidence_serializer_spec.rb": 0.39888471599988407,7876 "spec/graphql/types/access_level_enum_spec.rb": 0.39834085600000435,7877 "spec/graphql/types/error_tracking/sentry_error_type_spec.rb": 0.38486402699982136,7878 "spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb": 0.36916027699999177,7879 "spec/views/errors/omniauth_error.html.haml_spec.rb": 0.3881861369998205,7880 "spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb": 0.3893606159999763,7881 "spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.3796018869998079,7882 "spec/lib/gitlab/metrics/transaction_spec.rb": 0.5767894849998356,7883 "spec/graphql/types/packages/pypi/metadatum_type_spec.rb": 0.4373500740000509,7884 "spec/workers/trending_projects_worker_spec.rb": 0.41954037499999686,7885 "spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb": 0.4478068630000962,7886 "spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.6644809300000816,7887 "spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb": 0.37250673699986697888}7889Knapsack global time execution for tests: 28m 09s7890Pending: (Failures listed here are expected and do not affect your suite's status)7891 1) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank7892 # No reason given7893 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497894 2) Operations::FeatureFlag validations behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank7895 # No reason given7896 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577897 3) Pages::DeploymentUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 7898 # No pattern provided, skipping.7899 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87900 4) Pages::DeploymentUploader behaves like builds correct paths #relative_path is relative7901 # Path not set, skipping.7902 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407903 5) Pages::DeploymentUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 7904 # No pattern provided, skipping.7905 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87906 6) Pages::DeploymentUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7907 # No pattern provided, skipping.7908 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87909 7) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7910 # No pattern provided, skipping.7911 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87912 8) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7913 # No pattern provided, skipping.7914 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87915 9) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 7916 # No pattern provided, skipping.7917 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87918 10) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths #relative_path is relative7919 # Path not set, skipping.7920 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407921 11) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7922 # No pattern provided, skipping.7923 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87924 12) Pages::DeploymentUploader when object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7925 # No pattern provided, skipping.7926 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87927Finished in 28 minutes 12 seconds (files took 51.08 seconds to load)79283080 examples, 0 failures, 12 pending7929Randomized with seed 146007930[TEST PROF INFO] Time spent in factories: 14:45.577 (52.16% of total time)7931RSpec exited with 0.7932No examples to retry, congrats!7934Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7936Uploading artifacts...7937coverage/: found 5 matching artifact files and directories 7938WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7939WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7940knapsack/: found 3 matching artifact files and directories 7941query_recorder/: found 3 matching artifact files and directories 7942rspec/: found 8 matching artifact files and directories 7943WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7944log/*.log: found 17 matching artifact files and directories 7945WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146392/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7946WARNING: Retrying... context=artifacts-uploader error=request redirected7947Uploading artifacts as "archive" to coordinator... 201 Created id=4139146392 responseStatus=201 Created token=64_rdqkb7948Uploading artifacts...7949rspec/junit_rspec.xml: found 1 matching artifact files and directories 7950WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4139146392/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7951WARNING: Retrying... context=artifacts-uploader error=request redirected7952Uploading artifacts as "junit" to coordinator... 201 Created id=4139146392 responseStatus=201 Created token=64_rdqkb7954Job succeeded