rspec unit pg12 18/22
Passed Started
by
@leetickett

Lee Tickett
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-3.shared-gitlab-org.runners-manager.gitlab.com/default sUrYYgEG3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...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-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-suryygeg-project-278964-concurrent-0 via runner-suryygeg-shared-gitlab-org-1656907548-dfb4e3e9...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: 115982, done. 25remote: Counting objects: 100% (115982/115982), done. 26remote: Compressing objects: 100% (81018/81018), done. 27remote: Total 115982 (delta 48513), reused 75495 (delta 30560), pack-reused 0 28Receiving objects: 100% (115982/115982), 108.44 MiB | 29.99 MiB/s, done.29Resolving deltas: 100% (48513/48513), done.31 * [new ref] refs/pipelines/579176392 -> refs/pipelines/57917639232Checking out 204b4379 as refs/merge-requests/91556/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-10 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673336706)...44Downloading artifacts from coordinator... ok id=2673336706 responseStatus=200 OK token=uWfJ6sZ945Downloading artifacts for detect-tests (2673336715)...46Downloading artifacts from coordinator... ok id=2673336715 responseStatus=200 OK token=uWfJ6sZ947Downloading artifacts for retrieve-tests-metadata (2673336722)...48Downloading artifacts from coordinator... ok id=2673336722 responseStatus=200 OK token=uWfJ6sZ949Downloading artifacts for setup-test-env (2673336712)...50Downloading artifacts from coordinator... ok id=2673336712 responseStatus=200 OK token=uWfJ6sZ952Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 11 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 40 seconds.97$ setup_db_praefect98SELECT pg_catalog.set_config('search_path', '', false);99CREATE DATABASE praefect_test ENCODING 'UTF8';100==> 'setup_db_praefect' succeeded in 0 seconds.101$ run_timed_command "gem install knapsack --no-document"102$ gem install knapsack --no-document103Successfully installed knapsack-4.0.01041 gem installed105==> 'gem install knapsack --no-document' succeeded in 1 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory109Don't run Bundler as root. Bundler can ask for sudo if it is needed, and110installing your bundle as root will break this application for all non-root111users on this machine.112Using abstract_type 0.0.7113Using concurrent-ruby 1.1.10114Using i18n 1.10.0115Using minitest 5.15.0116Using tzinfo 2.0.4117Using zeitwerk 2.5.4118Using activesupport 6.1.4.7119Using builder 3.2.4120Using erubi 1.10.0121Using mini_portile2 2.8.0122Using racc 1.6.0123Using nokogiri 1.13.6 (x86_64-linux)124Using rails-dom-testing 2.0.3125Using crass 1.0.6126Using loofah 2.16.0127Using rails-html-sanitizer 1.4.2128Using actionview 6.1.4.7129Using rack 2.2.3130Using rack-test 1.1.0131Using actionpack 6.1.4.7132Using ice_nine 0.11.2133Using thread_safe 0.3.6134Using memoizable 0.4.2135Using adamantium 0.2.0136Using public_suffix 4.0.6137Using addressable 2.7.0138Using ast 2.4.2139Using binding_ninja 0.2.3140Using bundler 2.3.15141Using charlock_holmes 0.7.7142Using coderay 1.1.2143Using equalizer 0.0.11144Using concord 0.1.5145Using diff-lcs 1.3146Using dotenv 2.7.6147Using escape_utils 1.2.1148Using factory_bot 5.0.2149Using multipart-post 2.1.1150Using faraday 1.0.1151Using ffi 1.15.3152Using json 2.5.1153Using gemojione 3.3.0154Using mini_mime 1.0.2155Using rugged 1.2.0156Using github-linguist 7.12.1157Using github-markup 1.7.0158Using mime-types-data 3.2020.1104159Using mime-types 3.3.1160Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1161Using rouge 3.27.0162Using sanitize 6.0.0163Using stringex 2.8.5164Using gitlab-gollum-lib 4.2.7.10.gitlab.2165Using google-protobuf 3.19.1 (x86_64-linux)166Using googleapis-common-protos-types 1.3.0167Using grpc 1.42.0 (x86_64-linux)168Using opentracing 0.5.0169Using thrift 0.15.0170Using jaeger-client 1.1.0171Using pg_query 2.1.1172Using redis 4.4.0173Using gitlab-labkit 0.23.0174Using rubyzip 2.3.2175Using thor 1.1.0176Using tomlrb 2.0.1177Using with_env 1.1.0178Using rexml 3.2.5179Using xml-simple 1.1.9180Using gitlab-license_finder 6.14.2.1181Using gitlab-markup 1.7.1182Using grpc-tools 1.42.0183Using sawyer 0.8.2184Using octokit 4.20.0185Using reverse_markdown 1.4.0186Using licensee 9.14.1187Using method_source 0.9.2188Using msgpack 1.3.3189Using optimist 3.0.1190Using parallel 1.19.2191Using parser 3.0.3.2192Using procto 0.0.3193Using unparser 0.4.7194Using proc_to_ast 0.1.0195Using pry 0.12.2196Using rainbow 3.0.0197Using rbtrace 0.4.14198Using rdoc 6.3.2199Using regexp_parser 1.8.1200Using rspec-support 3.8.0201Using rspec-core 3.8.0202Using rspec-expectations 3.8.3203Using rspec-mocks 3.8.0204Using rspec 3.8.0205Using rspec-parameterized 0.4.2206Using rubocop-ast 0.2.0207Using ruby-progressbar 1.10.1208Using unicode-display_width 1.7.0209Using rubocop 0.86.0210Using sentry-raven 3.0.4211Using timecop 0.9.1212Bundle complete! 22 Gemfile dependencies, 100 gems now installed.213Gems in the groups 'production' and 'development' were not installed.214Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`215Checking gitaly-ruby Gemfile...216Checking gitaly-ruby bundle...217The Gemfile's dependencies are satisfied218Trying to connect to gitaly: ................................................ OK219Trying to connect to gitaly2: ................................................................ OK220Starting Praefect with in-memory election strategyTrying to connect to praefect: ....... OK221==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.222$ source ./scripts/rspec_helpers.sh223$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"224SKIP_FLAKY_TESTS_AUTOMATICALLY: true225RETRY_FAILED_TESTS_IN_NEW_PROCESS: true226KNAPSACK_GENERATE_REPORT: true227FLAKY_RSPEC_GENERATE_REPORT: true228KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb229KNAPSACK_LOG_LEVEL: debug230KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_18_22_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_18_22_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_18_22_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_18_22_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_18_22_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/models/repository_spec.rb239spec/services/merge_requests/push_options_handler_service_spec.rb240spec/services/merge_requests/create_from_issue_service_spec.rb241spec/models/deployment_spec.rb242spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb243spec/services/projects/fork_service_spec.rb244spec/services/projects/destroy_service_spec.rb245spec/policies/ci/build_policy_spec.rb246spec/services/projects/prometheus/alerts/notify_service_spec.rb247spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb248spec/tasks/gitlab/usage_data_rake_spec.rb249spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb250spec/lib/gitlab/background_migration/backfill_namespace_traversal_ids_children_spec.rb251spec/models/resource_milestone_event_spec.rb252spec/services/boards/lists/update_service_spec.rb253spec/lib/gitlab/import_export/members_mapper_spec.rb254spec/lib/gitlab/cleanup/project_uploads_spec.rb255spec/services/merge_requests/after_create_service_spec.rb256spec/uploaders/personal_file_uploader_spec.rb257spec/models/terraform/state_version_spec.rb258spec/finders/group_projects_finder_spec.rb259spec/lib/gitlab/diff/highlight_cache_spec.rb260spec/finders/user_recent_events_finder_spec.rb261spec/models/ci/processable_spec.rb262spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb263spec/services/merge_requests/ff_merge_service_spec.rb264spec/services/projects/update_repository_storage_service_spec.rb265spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb266spec/models/label_spec.rb267spec/models/merge_request_diff_commit_spec.rb268spec/services/clusters/applications/check_upgrade_progress_service_spec.rb269spec/models/active_session_spec.rb270spec/services/projects/update_pages_service_spec.rb271spec/finders/events_finder_spec.rb272spec/lib/gitlab/diff/lines_unfolder_spec.rb273spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb274spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb275spec/services/metrics/dashboard/custom_dashboard_service_spec.rb276spec/models/container_expiration_policy_spec.rb277spec/finders/fork_projects_finder_spec.rb278spec/lib/banzai/reference_parser/commit_parser_spec.rb279spec/presenters/clusterable_presenter_spec.rb280spec/workers/container_registry/migration/guard_worker_spec.rb281spec/models/ci/trigger_spec.rb282spec/lib/gitlab/ci/config/entry/need_spec.rb283spec/services/work_items/task_list_reference_removal_service_spec.rb284spec/services/clusters/applications/upgrade_service_spec.rb285spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb286spec/services/incident_management/timeline_events/destroy_service_spec.rb287spec/lib/gitlab/verify/uploads_spec.rb288spec/graphql/mutations/design_management/delete_spec.rb289spec/models/integrations/emails_on_push_spec.rb290spec/services/projects/auto_devops/disable_service_spec.rb291spec/graphql/mutations/container_expiration_policies/update_spec.rb292spec/services/metrics/dashboard/annotations/delete_service_spec.rb293spec/workers/container_registry/migration/observer_worker_spec.rb294spec/models/release_highlight_spec.rb295spec/views/shared/_label_row.html.haml_spec.rb296spec/models/clusters/providers/aws_spec.rb297spec/lib/gitlab/http_io_spec.rb298spec/views/notify/pipeline_success_email.html.haml_spec.rb299spec/lib/gitlab/ci/status/external/common_spec.rb300spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb301spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb302spec/lib/gitlab/ci/parsers/security/sast_spec.rb303spec/services/packages/debian/sign_distribution_service_spec.rb304spec/workers/issuable_export_csv_worker_spec.rb305spec/services/metrics/dashboard/clone_dashboard_service_spec.rb306spec/lib/gitlab/github_import/importer/labels_importer_spec.rb307spec/helpers/profiles_helper_spec.rb308spec/models/deploy_key_spec.rb309spec/lib/banzai/reference_parser/alert_parser_spec.rb310spec/graphql/mutations/todos/create_spec.rb311spec/lib/gitlab/pagination/keyset/column_order_definition_spec.rb312spec/workers/delete_container_repository_worker_spec.rb313spec/services/ci/update_instance_variables_service_spec.rb314spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb315spec/lib/kramdown/parser/atlassian_document_format_spec.rb316spec/uploaders/packages/composer/cache_uploader_spec.rb317spec/models/integrations/slack_slash_commands_spec.rb318spec/lib/gitlab/ci/pipeline/chain/limit/deployments_spec.rb319spec/services/system_notes/commit_service_spec.rb320spec/helpers/appearances_helper_spec.rb321spec/models/user_interacted_project_spec.rb322spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb323spec/serializers/merge_request_serializer_spec.rb324spec/lib/gitlab/ci/config/extendable/entry_spec.rb325spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb326spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb327spec/services/jira_import/users_importer_spec.rb328spec/services/jira_import/server_users_mapper_service_spec.rb329spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb330spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb331spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb332spec/lib/bitbucket_server/representation/pull_request_spec.rb333spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb334spec/haml_lint/linter/no_plain_nodes_spec.rb335spec/graphql/resolvers/tree_resolver_spec.rb336spec/workers/background_migration/ci_database_worker_spec.rb337spec/tasks/gitlab/background_migrations_rake_spec.rb338spec/graphql/mutations/todos/restore_many_spec.rb339spec/lib/gitlab/health_checks/db_check_spec.rb340spec/finders/prometheus_metrics_finder_spec.rb341spec/lib/api/entities/merge_request_changes_spec.rb342spec/lib/gitlab/usage/metric_spec.rb343spec/models/user_detail_spec.rb344spec/services/draft_notes/destroy_service_spec.rb345spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb346spec/lib/gitlab/legacy_github_import/client_spec.rb347spec/services/projects/hashed_storage/rollback_service_spec.rb348spec/lib/gitlab/import_export/uploads_manager_spec.rb349spec/services/packages/create_dependency_service_spec.rb350spec/lib/gitlab/database/partitioning/partition_manager_spec.rb351spec/models/namespace_setting_spec.rb352spec/lib/bulk_imports/common/pipelines/badges_pipeline_spec.rb353spec/services/dependency_proxy/request_token_service_spec.rb354spec/services/merge_requests/add_spent_time_service_spec.rb355spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb356spec/tooling/rspec_flaky/flaky_example_spec.rb357spec/lib/gitlab/redis/hll_spec.rb358spec/services/ci/daily_build_group_report_result_service_spec.rb359spec/services/ci/job_token_scope/add_project_service_spec.rb360spec/rubocop/cop/code_reuse/serializer_spec.rb361spec/services/design_management/copy_design_collection/queue_service_spec.rb362spec/models/concerns/x509_serial_number_attribute_spec.rb363spec/lib/gitlab/phabricator_import/importer_spec.rb364spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb365spec/graphql/resolvers/last_commit_resolver_spec.rb366spec/lib/api/entities/release_spec.rb367spec/workers/pipeline_hooks_worker_spec.rb368spec/models/concerns/after_commit_queue_spec.rb369spec/services/branches/delete_service_spec.rb370spec/workers/gitlab/jira_import/stage/finish_import_worker_spec.rb371spec/models/ci/artifact_blob_spec.rb372spec/services/projects/all_merge_requests_count_service_spec.rb373spec/lib/gitlab/pagination/keyset_spec.rb374spec/views/admin/application_settings/ci_cd.html.haml_spec.rb375spec/lib/gitlab/usage/metrics/instrumentations/numbers_metric_spec.rb376spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb377spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb378spec/services/customer_relations/organizations/create_service_spec.rb379spec/lib/gitlab/checks/matching_merge_request_spec.rb380spec/graphql/resolvers/project_members_resolver_spec.rb381spec/lib/file_size_validator_spec.rb382spec/finders/repositories/branch_names_finder_spec.rb383spec/lib/gitlab/auth/o_auth/provider_spec.rb384spec/graphql/mutations/base_mutation_spec.rb385spec/finders/award_emojis_finder_spec.rb386spec/models/ci/deleted_object_spec.rb387spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb388spec/lib/gitlab/utils/delegator_override/validator_spec.rb389spec/services/ci/external_pull_requests/create_pipeline_service_spec.rb390spec/models/concerns/access_requestable_spec.rb391spec/lib/gitlab/git/remote_mirror_spec.rb392spec/lib/gitlab/ci/config/entry/hidden_spec.rb393spec/services/packages/debian/find_or_create_incoming_service_spec.rb394spec/graphql/resolvers/users_resolver_spec.rb395spec/models/concerns/uniquify_spec.rb396spec/lib/sidebars/projects/menus/deployments_menu_spec.rb397spec/components/pajamas/card_component_spec.rb398spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb399spec/workers/pages_worker_spec.rb400spec/models/preloaders/labels_preloader_spec.rb401spec/services/task_list_toggle_service_spec.rb402spec/lib/gitlab/import_export/design_repo_saver_spec.rb403spec/lib/gitlab/github_import/page_counter_spec.rb404spec/views/shared/milestones/_issuables.html.haml_spec.rb405spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb406spec/helpers/ide_helper_spec.rb407spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb408spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb409spec/models/projects/triggered_hooks_spec.rb410spec/graphql/resolvers/concerns/resolves_ids_spec.rb411spec/lib/gitlab/query_limiting_spec.rb412spec/views/projects/project_members/index.html.haml_spec.rb413spec/serializers/request_aware_entity_spec.rb414spec/views/shared/projects/_list.html.haml_spec.rb415spec/graphql/types/incident_management/timeline_event_type_spec.rb416spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb417spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb418spec/lib/gitlab/saas_spec.rb419spec/serializers/serverless/domain_entity_spec.rb420spec/models/experiment_user_spec.rb421spec/helpers/subscribable_banner_helper_spec.rb422spec/lib/gitlab/diff/inline_diff_marker_spec.rb423spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb424spec/lib/gitlab/ci/status/running_spec.rb425spec/lib/gitlab/ci/build/port_spec.rb426spec/helpers/sidebars_helper_spec.rb427spec/models/project_metrics_setting_spec.rb428spec/views/projects/hooks/edit.html.haml_spec.rb429spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb430spec/helpers/numbers_helper_spec.rb431spec/lib/gitlab/import_export/import_test_coverage_spec.rb432spec/lib/container_registry/registry_spec.rb433spec/lib/gitlab/sidekiq_death_handler_spec.rb434spec/serializers/context_commits_diff_entity_spec.rb435spec/lib/gitlab/ci/status/created_spec.rb436spec/lib/gitlab/webpack/file_loader_spec.rb437spec/graphql/mutations/alert_management/http_integration/create_spec.rb438spec/lib/api/entities/basic_project_details_spec.rb439spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb440spec/models/namespaces/project_namespace_spec.rb441spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb442spec/lib/gitlab/database/type/json_pg_safe_spec.rb443spec/models/concerns/case_sensitivity_spec.rb444spec/workers/detect_repository_languages_worker_spec.rb445spec/lib/gitlab/utils/log_limited_array_spec.rb446spec/finders/packages/group_or_project_package_finder_spec.rb447spec/lib/api/validations/validators/absence_spec.rb448spec/services/bulk_push_event_payload_service_spec.rb449spec/workers/repository_check/dispatch_worker_spec.rb450spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb451spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb452spec/lib/gitlab/incident_management/pager_duty/incident_issue_description_spec.rb453spec/views/projects/imports/new.html.haml_spec.rb454spec/services/projects/readme_renderer_service_spec.rb455spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb456spec/helpers/sourcegraph_helper_spec.rb457spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb458spec/rubocop/cop/database/multiple_databases_spec.rb459spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb460spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb461spec/lib/gitlab/multi_destination_logger_spec.rb462spec/lib/gitlab/faraday/error_callback_spec.rb463spec/graphql/types/ci/pipeline_type_spec.rb464spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb465spec/lib/gitlab/metrics/dashboard/validator/client_spec.rb466spec/lib/gitlab/ci/config/entry/release/assets_spec.rb467spec/views/import/gitlab_projects/new.html.haml_spec.rb468spec/models/blob_viewer/composer_json_spec.rb469spec/initializers/rack_multipart_patch_spec.rb470spec/lib/gitlab/repository_archive_rate_limiter_spec.rb471spec/rubocop/cop/gitlab/bulk_insert_spec.rb472spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb473spec/workers/ci_platform_metrics_update_cron_worker_spec.rb474spec/graphql/types/commit_action_mode_enum_spec.rb475spec/rubocop/cop/graphql/graphql_name_position_spec.rb476spec/experiments/force_company_trial_experiment_spec.rb477spec/lib/banzai/filter/suggestion_filter_spec.rb478spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb479spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb480spec/graphql/types/label_type_spec.rb481spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb482spec/lib/gitlab/language_data_spec.rb483spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb484spec/graphql/types/permission_types/base_permission_type_spec.rb485spec/validators/cron_validator_spec.rb486spec/rubocop/cop/user_admin_spec.rb487spec/lib/api/entities/project_import_failed_relation_spec.rb488spec/workers/trending_projects_worker_spec.rb489spec/uploaders/metric_image_uploader_spec.rb490spec/graphql/types/container_expiration_policy_keep_enum_spec.rb491spec/models/concerns/runners_token_prefixable_spec.rb492spec/lib/gitlab/log_timestamp_formatter_spec.rb493spec/lib/bitbucket/collection_spec.rb494spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb495spec/lib/banzai/querying_spec.rb496spec/graphql/types/subscription_type_spec.rb497Filter specs:498Running specs:499Running all node tests without filter500spec/models/repository_spec.rb501spec/services/merge_requests/push_options_handler_service_spec.rb502spec/services/merge_requests/create_from_issue_service_spec.rb503spec/models/deployment_spec.rb504spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb505spec/services/projects/fork_service_spec.rb506spec/services/projects/destroy_service_spec.rb507spec/policies/ci/build_policy_spec.rb508spec/services/projects/prometheus/alerts/notify_service_spec.rb509spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb510spec/tasks/gitlab/usage_data_rake_spec.rb511spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb512spec/lib/gitlab/background_migration/backfill_namespace_traversal_ids_children_spec.rb513spec/models/resource_milestone_event_spec.rb514spec/services/boards/lists/update_service_spec.rb515spec/lib/gitlab/import_export/members_mapper_spec.rb516spec/lib/gitlab/cleanup/project_uploads_spec.rb517spec/services/merge_requests/after_create_service_spec.rb518spec/uploaders/personal_file_uploader_spec.rb519spec/models/terraform/state_version_spec.rb520spec/finders/group_projects_finder_spec.rb521spec/lib/gitlab/diff/highlight_cache_spec.rb522spec/finders/user_recent_events_finder_spec.rb523spec/models/ci/processable_spec.rb524spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb525spec/services/merge_requests/ff_merge_service_spec.rb526spec/services/projects/update_repository_storage_service_spec.rb527spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb528spec/models/label_spec.rb529spec/models/merge_request_diff_commit_spec.rb530spec/services/clusters/applications/check_upgrade_progress_service_spec.rb531spec/models/active_session_spec.rb532spec/services/projects/update_pages_service_spec.rb533spec/finders/events_finder_spec.rb534spec/lib/gitlab/diff/lines_unfolder_spec.rb535spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb536spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb537spec/services/metrics/dashboard/custom_dashboard_service_spec.rb538spec/models/container_expiration_policy_spec.rb539spec/finders/fork_projects_finder_spec.rb540spec/lib/banzai/reference_parser/commit_parser_spec.rb541spec/presenters/clusterable_presenter_spec.rb542spec/workers/container_registry/migration/guard_worker_spec.rb543spec/models/ci/trigger_spec.rb544spec/lib/gitlab/ci/config/entry/need_spec.rb545spec/services/work_items/task_list_reference_removal_service_spec.rb546spec/services/clusters/applications/upgrade_service_spec.rb547spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb548spec/services/incident_management/timeline_events/destroy_service_spec.rb549spec/lib/gitlab/verify/uploads_spec.rb550spec/graphql/mutations/design_management/delete_spec.rb551spec/models/integrations/emails_on_push_spec.rb552spec/services/projects/auto_devops/disable_service_spec.rb553spec/graphql/mutations/container_expiration_policies/update_spec.rb554spec/services/metrics/dashboard/annotations/delete_service_spec.rb555spec/workers/container_registry/migration/observer_worker_spec.rb556spec/models/release_highlight_spec.rb557spec/views/shared/_label_row.html.haml_spec.rb558spec/models/clusters/providers/aws_spec.rb559spec/lib/gitlab/http_io_spec.rb560spec/views/notify/pipeline_success_email.html.haml_spec.rb561spec/lib/gitlab/ci/status/external/common_spec.rb562spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb563spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb564spec/lib/gitlab/ci/parsers/security/sast_spec.rb565spec/services/packages/debian/sign_distribution_service_spec.rb566spec/workers/issuable_export_csv_worker_spec.rb567spec/services/metrics/dashboard/clone_dashboard_service_spec.rb568spec/lib/gitlab/github_import/importer/labels_importer_spec.rb569spec/helpers/profiles_helper_spec.rb570spec/models/deploy_key_spec.rb571spec/lib/banzai/reference_parser/alert_parser_spec.rb572spec/graphql/mutations/todos/create_spec.rb573spec/lib/gitlab/pagination/keyset/column_order_definition_spec.rb574spec/workers/delete_container_repository_worker_spec.rb575spec/services/ci/update_instance_variables_service_spec.rb576spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb577spec/lib/kramdown/parser/atlassian_document_format_spec.rb578spec/uploaders/packages/composer/cache_uploader_spec.rb579spec/models/integrations/slack_slash_commands_spec.rb580spec/lib/gitlab/ci/pipeline/chain/limit/deployments_spec.rb581spec/services/system_notes/commit_service_spec.rb582spec/helpers/appearances_helper_spec.rb583spec/models/user_interacted_project_spec.rb584spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb585spec/serializers/merge_request_serializer_spec.rb586spec/lib/gitlab/ci/config/extendable/entry_spec.rb587spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb588spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb589spec/services/jira_import/users_importer_spec.rb590spec/services/jira_import/server_users_mapper_service_spec.rb591spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb592spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb593spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb594spec/lib/bitbucket_server/representation/pull_request_spec.rb595spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb596spec/haml_lint/linter/no_plain_nodes_spec.rb597spec/graphql/resolvers/tree_resolver_spec.rb598spec/workers/background_migration/ci_database_worker_spec.rb599spec/tasks/gitlab/background_migrations_rake_spec.rb600spec/graphql/mutations/todos/restore_many_spec.rb601spec/lib/gitlab/health_checks/db_check_spec.rb602spec/finders/prometheus_metrics_finder_spec.rb603spec/lib/api/entities/merge_request_changes_spec.rb604spec/lib/gitlab/usage/metric_spec.rb605spec/models/user_detail_spec.rb606spec/services/draft_notes/destroy_service_spec.rb607spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb608spec/lib/gitlab/legacy_github_import/client_spec.rb609spec/services/projects/hashed_storage/rollback_service_spec.rb610spec/lib/gitlab/import_export/uploads_manager_spec.rb611spec/services/packages/create_dependency_service_spec.rb612spec/lib/gitlab/database/partitioning/partition_manager_spec.rb613spec/models/namespace_setting_spec.rb614spec/lib/bulk_imports/common/pipelines/badges_pipeline_spec.rb615spec/services/dependency_proxy/request_token_service_spec.rb616spec/services/merge_requests/add_spent_time_service_spec.rb617spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb618spec/tooling/rspec_flaky/flaky_example_spec.rb619spec/lib/gitlab/redis/hll_spec.rb620spec/services/ci/daily_build_group_report_result_service_spec.rb621spec/services/ci/job_token_scope/add_project_service_spec.rb622spec/rubocop/cop/code_reuse/serializer_spec.rb623spec/services/design_management/copy_design_collection/queue_service_spec.rb624spec/models/concerns/x509_serial_number_attribute_spec.rb625spec/lib/gitlab/phabricator_import/importer_spec.rb626spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb627spec/graphql/resolvers/last_commit_resolver_spec.rb628spec/lib/api/entities/release_spec.rb629spec/workers/pipeline_hooks_worker_spec.rb630spec/models/concerns/after_commit_queue_spec.rb631spec/services/branches/delete_service_spec.rb632spec/workers/gitlab/jira_import/stage/finish_import_worker_spec.rb633spec/models/ci/artifact_blob_spec.rb634spec/services/projects/all_merge_requests_count_service_spec.rb635spec/lib/gitlab/pagination/keyset_spec.rb636spec/views/admin/application_settings/ci_cd.html.haml_spec.rb637spec/lib/gitlab/usage/metrics/instrumentations/numbers_metric_spec.rb638spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb639spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb640spec/services/customer_relations/organizations/create_service_spec.rb641spec/lib/gitlab/checks/matching_merge_request_spec.rb642spec/graphql/resolvers/project_members_resolver_spec.rb643spec/lib/file_size_validator_spec.rb644spec/finders/repositories/branch_names_finder_spec.rb645spec/lib/gitlab/auth/o_auth/provider_spec.rb646spec/graphql/mutations/base_mutation_spec.rb647spec/finders/award_emojis_finder_spec.rb648spec/models/ci/deleted_object_spec.rb649spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb650spec/lib/gitlab/utils/delegator_override/validator_spec.rb651spec/services/ci/external_pull_requests/create_pipeline_service_spec.rb652spec/models/concerns/access_requestable_spec.rb653spec/lib/gitlab/git/remote_mirror_spec.rb654spec/lib/gitlab/ci/config/entry/hidden_spec.rb655spec/services/packages/debian/find_or_create_incoming_service_spec.rb656spec/graphql/resolvers/users_resolver_spec.rb657spec/models/concerns/uniquify_spec.rb658spec/lib/sidebars/projects/menus/deployments_menu_spec.rb659spec/components/pajamas/card_component_spec.rb660spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb661spec/workers/pages_worker_spec.rb662spec/models/preloaders/labels_preloader_spec.rb663spec/services/task_list_toggle_service_spec.rb664spec/lib/gitlab/import_export/design_repo_saver_spec.rb665spec/lib/gitlab/github_import/page_counter_spec.rb666spec/views/shared/milestones/_issuables.html.haml_spec.rb667spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb668spec/helpers/ide_helper_spec.rb669spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb670spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb671spec/models/projects/triggered_hooks_spec.rb672spec/graphql/resolvers/concerns/resolves_ids_spec.rb673spec/lib/gitlab/query_limiting_spec.rb674spec/views/projects/project_members/index.html.haml_spec.rb675spec/serializers/request_aware_entity_spec.rb676spec/views/shared/projects/_list.html.haml_spec.rb677spec/graphql/types/incident_management/timeline_event_type_spec.rb678spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb679spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb680spec/lib/gitlab/saas_spec.rb681spec/serializers/serverless/domain_entity_spec.rb682spec/models/experiment_user_spec.rb683spec/helpers/subscribable_banner_helper_spec.rb684spec/lib/gitlab/diff/inline_diff_marker_spec.rb685spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb686spec/lib/gitlab/ci/status/running_spec.rb687spec/lib/gitlab/ci/build/port_spec.rb688spec/helpers/sidebars_helper_spec.rb689spec/models/project_metrics_setting_spec.rb690spec/views/projects/hooks/edit.html.haml_spec.rb691spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb692spec/helpers/numbers_helper_spec.rb693spec/lib/gitlab/import_export/import_test_coverage_spec.rb694spec/lib/container_registry/registry_spec.rb695spec/lib/gitlab/sidekiq_death_handler_spec.rb696spec/serializers/context_commits_diff_entity_spec.rb697spec/lib/gitlab/ci/status/created_spec.rbKnapsack report generator started!698DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call699/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here700 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)701Run options: exclude {:quarantine=>true, :level=>"migration"}702Test environment set up in 0.607007217 seconds703Repository704 #branch_names_contains705 is expected to include "master"706 is expected not to include "feature"707 is expected not to include "fix"708 when storage is broken709 raises a storage error710 #tag_names_contains711 is expected to include "v1.1.0"712 is expected not to include "v1.0.0"713 #tags_sorted_by714 name_desc715 is expected to eq ["v1.1.0", "v1.0.0"]716 name_asc717 is expected to eq ["v1.0.0", "v1.1.0"]718 with pagination719 with limit720 is expected to eq ["v1.0.0"]721 with page token and limit722 is expected to eq ["v1.1.0"]723 with page token only724 raises an ArgumentError725 with negative limit726 returns all tags727 with unknown token728 raises an ArgumentError729 updated730 desc731 is expected to eq ["v0.0.0", "v1.1.0", "v1.0.0"]732 asc733 is expected to eq ["v1.0.0", "v1.1.0", "v0.0.0"]734 annotated tag pointing to a blob735 is expected to eq ["v1.0.0", "v1.1.0", "annotated-tag"]736 unknown option737 is expected to eq ["v1.0.0", "v1.1.0"]738 #ref_exists?739 when ref exists740 returns true741 when ref does not exist742 returns false743 when ref format is incorrect744 returns false745 #search_branch_names746 returns matching branch names747 #list_last_commits_for_tree748 returns the last commits for every entry in the current path749 returns the last commits for every entry in the current path starting from the offset750 returns a limited number of last commits for every entry in the current path starting from the offset751 returns an empty hash when offset is out of bounds752 with a commit with invalid UTF-8 path753 does not raise an error754 #last_commit_for_path755 is expected to eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"756 when storage is broken757 raises a storage error758 with filename with pathspec characters759 returns a commit SHA760 #last_commit_id_for_path761 returns last commit id for a given path762 caches last commit id for a given path763 when storage is broken764 raises a storage error765 with filename with pathspec characters766 returns a commit SHA767 #commits768 when neither the all flag nor a ref are specified769 returns every commit from default branch770 when ref is passed771 returns every commit from the specified ref772 when all773 returns every commit from the repository774 with path775 sets follow when it is a single path776 does not set follow when it is multiple paths777 without path778 does not set follow779 when 'author' is set780 returns commits from that author781 doesn't returns commits from an unknown author782 when 'all' flag is set783 returns every commit from the repository784 when 'order' flag is set785 passes order option to perform the query786 #new_commits787 when there are no new commits788 returns an empty array789 when new commits are found790 returns the commits791 #commits_by792 finds each commit793 returns only Commit instances794 when some commits are not found795 returns only found commits796 when no oids are passed797 does not call #batch_by_oid798 #commits_between799 delegates to Gitlab::Git::Commit#between, returning decorated commits800 defaults to no limit801 #find_commits_by_message802 returns commits with messages containing a given string803 is case insensitive804 when storage is broken805 raises a storage error806 #blob_at807 blank sha808 is expected to be nil809 regular blob810 is expected to be an instance of Blob811 readme blob not on HEAD812 is expected to be an instance of Blob813 #merged_to_root_ref?814 merged branch without ff815 is expected to be truthy816 merged with ff817 is expected to be truthy818 not merged branch819 is expected to be falsey820 default branch821 is expected to be falsey822 non merged branch823 is expected to be falsey824 non existent branch825 is expected to be nil826 #root_ref_sha827 is expected to eq "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"828 #merged_branch_names829 is expected to eq #<Set: {"definitely_merged"}>830 is expected to be a kind of Set831 cache expiry832 is expired when the branches caches are expired833 is expired when the repository caches are expired834 cache is empty835 is expected to eq #<Set: {"definitely_merged"}>836 cache values837 writes the values to redis838 matches the supplied hash839 cache is not empty840 is expected to eq #<Set: {"definitely_merged"}>841 doesn't fetch from the disk842 cache is partially complete843 is expected to eq #<Set: {"definitely_merged"}>844 does fetch from the disk845 requested branches array is empty846 is expected to eq #<Set: {"definitely_merged"}>847 #can_be_merged?848 mergeable branches849 is expected to be truthy850 non-mergeable branches without conflict sides missing851 is expected to be falsey852 non-mergeable branches with conflict sides missing853 is expected to be falsey854 submodule changes that confuse rugged855 is expected to be falsey856 #commit857 when ref exists858 returns commit object859 when ref does not exist860 returns nil861 when ref is not specified862 is using a root ref863 when ref is not valid864 when preceding tree element exists865 returns nil866 when preceding tree element does not exist867 returns nil868 #create_dir869 commits a change that creates a new directory870 when committing to another project871 creates a fork and commit to the forked project872 when an author is specified873 uses the given email/name to set the commit's author874 #create_file875 commits new file successfully876 creates new file and dir when file_path has a forward slash877 respects the autocrlf setting878 when an author is specified879 uses the given email/name to set the commit's author880 #update_file881 updates file successfully882 updates filename successfully883 when an author is specified884 uses the given email/name to set the commit's author885 #delete_file886 removes file successfully887 when an author is specified888 uses the given email/name to set the commit's author889 search_files_by_content890 is expected to be a kind of Array891 regex-escapes the query string892 properly handles an unmatched parenthesis893 properly handles when query is not present894 properly handles query when repo is empty895 when storage is broken896 raises a storage error897 result898 is expected to be a kind of String899 is expected to eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"900 search_files_by_name901 returns result902 ignores leading slashes903 properly handles when query is only slashes904 properly handles when query is not present905 properly handles query when repo is empty906 when storage is broken907 raises a storage error908 #search_files_by_wildcard_path909 when specifying a normal path910 returns the path911 when specifying a wildcard path912 returns files matching the path in the root folder913 when specifying a wildcard path for all914 returns all matching files in all folders915 when specifying a path to subfolders using two asterisks and a slash916 returns all files matching the path917 when specifying a wildcard path to subfolder with just two asterisks918 returns all files in the matching path919 when specifying a wildcard path to subfolder with one asterisk920 returns all files in the matching path921 when specifying a wildcard path for an unknown number of subfolder levels922 returns all matched files in all subfolders923 when specifying a wildcard path to one level of subfolders924 returns all matched files in one subfolder925 when sending regexp926 ignores the regexp and returns an empty array927 when sending another ref928 returns an empty array929 #fetch_as_mirror930 fetches the URL without creating a remote931 #fetch_ref932 when storage is broken933 raises a storage error934 #get_raw_changes935 with non-UTF8 bytes in paths936 returns the changes937 #create_ref938 redirects the call to write_ref939 #changelog940 accepts changelog941 accepts news instead of changelog942 accepts history instead of changelog943 accepts changes instead of changelog944 is case-insensitive945 #license_blob946 handles when HEAD points to non-existent ref947 looks in the root_ref only948 detects license file with no recognizable open-source license content949 detects 'LICENSE'950 detects 'LICENCE'951 detects 'LiCensE'952 detects 'LICENSE.md'953 detects 'LICENSE.foo'954 detects 'COPYING'955 detects 'COPYING.md'956 #license_key957 returns nil when no license is detected958 returns nil when the repository does not exist959 returns other when the content is not recognizable960 returns nil when the commit SHA does not exist961 returns nil when master does not exist962 returns the license key963 #license964 returns nil when no license is detected965 returns nil when the repository does not exist966 returns nil when license_key is not recognized967 returns other when the content is not recognizable968 returns the license969 #gitlab_ci_yml970 returns valid file971 returns nil if not exists972 returns nil for empty repository973 #ambiguous_ref?974 when ref is ambiguous975 is true976 when ref is not ambiguous977 is false978 #has_ambiguous_refs?979 branch_names: nil, tag_names: nil, result: false980 is expected to eq false981 branch_names: [], tag_names: [], result: false982 is expected to eq false983 branch_names: ["a", "b"], tag_names: [], result: false984 is expected to eq false985 branch_names: [], tag_names: ["c", "d"], result: false986 is expected to eq false987 branch_names: ["a", "b"], tag_names: ["c", "d"], result: false988 is expected to eq false989 branch_names: ["a/b"], tag_names: ["c/d"], result: false990 is expected to eq false991 branch_names: ["a", "b"], tag_names: ["c", "d", "a/z"], result: true992 is expected to eq true993 branch_names: ["a", "b", "c/z"], tag_names: ["c", "d"], result: true994 is expected to eq true995 branch_names: ["a/b/z"], tag_names: ["a/b"], result: false996 is expected to eq false997 branch_names: ["a/b/z"], tag_names: ["a/b", "a"], result: true998 is expected to eq true999 branch_names: ["ab"], tag_names: ["abc/d", "a", "b"], result: false1000 is expected to eq false1001 #expand_ref1002 when ref is not tag or branch name1003 returns nil1004 when ref is tag name1005 returns the tag ref1006 when ref is branch name1007 returns the branch ref1008 #add_branch1009 calls Gitaly's OperationService1010 creates_the_branch1011 with a non-existing target1012 returns false and doesn't create the branch1013 #exists?1014 returns true when a repository exists1015 returns false if no full path can be constructed1016 with broken storage1017 raises a storage error1018 behaves like asymmetric cached method1019 asymmetric caching1020 when it returns true1021 caches the output in RequestStore1022 caches the output in RepositoryCache1023 when it returns false1024 caches the output in RequestStore1025 does NOT cache the output in RepositoryCache1026 #has_visible_content?1027 delegates to raw_repository when true1028 delegates to raw_repository when false1029 behaves like asymmetric cached method1030 asymmetric caching1031 when it returns true1032 caches the output in RequestStore1033 caches the output in RepositoryCache1034 when it returns false1035 caches the output in RequestStore1036 does NOT cache the output in RepositoryCache1037 #branch_exists?1038 delegates to branch_names when the cache is empty1039 uses redis set caching when the cache is filled1040 #tag_exists?1041 delegates to tag_names when the cache is empty1042 uses redis set caching when the cache is filled1043 #branch_names1044 gets cached across Repository instances1045 #empty?1046 returns true for an empty repository1047 returns false for a non-empty repository1048 caches the output1049 #blobs_at1050 returns empty array for an empty repository1051 returns blob array for a non-empty repository1052 when Gitaly returns NoRepository1053 returns empty array1054 #root_ref1055 returns a branch name1056 caches the output1057 returns nil if the repository does not exist1058 behaves like asymmetric cached method1059 asymmetric caching1060 when it returns true1061 caches the output in RequestStore1062 caches the output in RepositoryCache1063 when it returns false1064 caches the output in RequestStore1065 does NOT cache the output in RepositoryCache1066 #expire_root_ref_cache1067 expires the root reference cache1068 #expire_branch_cache1069 expires the cache for all branches1070 expires the cache for all branches when the root branch is given1071 expires the cache for a specific branch1072 #expire_emptiness_caches1073 expires the caches for an empty repository1074 does not expire the cache for a non-empty repository1075 expires the memoized repository cache1076 skip_merges option1077 is expected not to include "e56497bb5f03a90a51293fc6d516788730953899"1078 #merge1079 merges the code and returns the commit id1080 sets the `in_progress_merge_commit_sha` flag for the given merge request1081 removes carriage returns from commit message1082 #merge_to_ref1083 writes merge of source SHA and first parent ref to MR merge_ref_path1084 #ff_merge1085 merges the code and return the commit id1086 sets the `in_progress_merge_commit_sha` flag for the given merge request1087 #rebase1088 executes the new Gitaly RPC1089 behaves like a method that can rebase successfully1090 returns the rebase commit sha1091 sets the `rebase_commit_sha` for the given merge request1092 rolling back the `rebase_commit_sha`1093 does not rollback when there are no errors1094 does rollback when a PreReceiveError is encountered in the second step1095 does rollback when a GitError is encountered in the second step1096 #revert1097 when there is a conflict1098 raises an error1099 when commit was already reverted1100 raises an error1101 when commit can be reverted1102 reverts the changes1103 reverting a merge commit1104 reverts the changes1105 #cherry_pick1106 when there is a conflict1107 raises an error1108 when commit was already cherry-picked1109 raises an error1110 when commit can be cherry-picked1111 cherry-picks the changes1112 cherry-picking a merge commit1113 cherry-picks the changes1114 #before_delete1115 when a repository does not exist1116 does not flush caches that depend on repository data1117 flushes the tags cache1118 flushes the branches cache1119 flushes the root ref cache1120 flushes the emptiness caches1121 flushes the exists cache1122 when a repository exists1123 flushes the tags cache1124 flushes the branches cache1125 flushes the root ref cache1126 flushes the emptiness caches1127 #before_change_head1128 flushes the branch cache1129 flushes the root ref cache1130 #after_change_head1131 flushes the method caches1132 calls after_repository_change_head on container1133 #expires_caches_for_tags1134 flushes the cache1135 #before_push_tag1136 logs an event1137 #after_push_commit1138 expires statistics caches1139 #after_create_branch1140 expires the branch caches1141 does not expire the branch caches when specified1142 #after_remove_branch1143 expires the branch caches1144 does not expire the branch caches when specified1145 #lookup1146 uses the lookup cache1147 returns the correct value1148 #after_create1149 calls expire_status_cache1150 logs an event1151 #expire_status_cache1152 flushes the exists cache1153 flushes the root ref cache1154 flushes the emptiness caches1155 #copy_gitattributes1156 returns true with a valid ref1157 returns false with an invalid ref1158 #before_remove_tag1159 flushes the tag cache1160 #branch_count1161 returns the number of branches1162 #tag_count1163 returns the number of tags1164 #expire_branches_cache1165 expires the cache1166 #expire_tags_cache1167 expires the cache1168 #add_tag1169 with a valid target1170 creates the tag1171 returns a Gitlab::Git::Tag object1172 with an invalid target1173 returns false1174 #rm_branch1175 removes a branch1176 when pre hooks failed1177 gets an error and does not delete the branch1178 #rm_tag1179 removes a tag1180 #find_tag1181 finds a tag with specified name by performing FindTag request1182 does not perform Gitaly call when tags are preloaded1183 returns nil when tag does not exists1184 #avatar1185 returns nil if repo does not exist1186 returns the first avatar file found in the repository1187 caches the output1188 #expire_exists_cache1189 expires the cache1190 expires the request store cache1191 #xcode_project?1192 when the root contains a *.xcodeproj directory1193 returns true1194 when the root contains a *.xcworkspace directory1195 returns true1196 when the root contains no Xcode config directory1197 returns false1198 #contribution_guide1199 returns and caches the output1200 #gitignore1201 returns and caches the output1202 #readme1203 with a non-existing repository1204 returns nil1205 with an existing repository1206 when no README exists1207 returns nil1208 #readme_path1209 with a non-existing repository1210 returns nil1211 with an existing repository1212 when no README exists1213 returns nil1214 when a README exists1215 returns the README1216 caches the response1217 #expire_statistics_caches1218 expires the caches1219 #expire_all_method_caches1220 expires the caches of all methods1221 all cache_method definitions are in the lists of method caches1222 #file_on_head1223 with a non-existing repository1224 returns nil1225 with a repository that has no blobs1226 returns nil1227 with an existing repository1228 returns a Gitlab::Git::Tree1229 #head_tree1230 with an existing repository1231 returns a Tree1232 with a non-existing repository1233 returns nil1234 behaves like #tree1235 using a non-existing repository1236 is expected to be nil1237 when path is defined1238 is expected to be nil1239 using an existing repository1240 is expected to be an instance of Tree1241 when different sha is set1242 is expected to be an instance of Tree1243 when recursive is true1244 is expected to be an instance of Tree1245 with pagination parameters1246 is expected to be an instance of Tree1247 #tree? with Rugged enabled1248 behaves like #tree1249 using a non-existing repository1250 is expected to be nil1251 when path is defined1252 is expected to be nil1253 using an existing repository1254 is expected to be an instance of Tree1255 when different sha is set1256 is expected to be an instance of Tree1257 when recursive is true1258 is expected to be an instance of Tree1259 with pagination parameters1260 is expected to be an instance of Tree1261 #size1262 with a non-existing repository1263 returns 01264 with an existing repository1265 returns the repository size as a Float1266 #local_branches1267 returns the local branches1268 #commit_count1269 with a non-existing repository1270 returns 01271 with an existing repository1272 returns the commit count1273 #commit_count_for_ref1274 with a non-existing repository1275 returns 01276 with empty repository1277 returns 01278 when searching for the root ref1279 returns the same count as #commit_count1280 #refresh_method_caches1281 refreshes the caches of the given types1282 #gitlab_ci_yml_for1283 when there is a .gitlab-ci.yml at the commit1284 returns the content1285 when there is no .gitlab-ci.yml at the commit1286 returns nil1287 #route_map_for1288 when there is a .gitlab/route-map.yml at the commit1289 returns the content1290 when there is no .gitlab/route-map.yml at the commit1291 returns nil1292 #ancestor? with Gitaly enabled1293 behaves like #ancestor?1294 is an ancestor1295 is not an ancestor1296 returns false on nil-values1297 returns false for invalid commit IDs1298 caching1299 only calls out to Gitaly once1300 returns the value from the request store1301 returns the value from the redis cache1302 #ancestor? with Rugged enabled1303 calls out to the Rugged implementation1304 behaves like #ancestor?1305 is an ancestor1306 is not an ancestor1307 returns false on nil-values1308 returns false for invalid commit IDs1309 #archive_metadata1310 with hashed storage disabled1311 uses the project path to generate the filename1312 with hashed storage enabled1313 uses the project path to generate the filename1314 commit cache1315 caches based on SHA1316 caches nil values1317 #raw_repository1318 returns a Gitlab::Git::Repository representation of the repository1319 with a wiki repository1320 creates a Gitlab::Git::Repository with the proper attributes1321 #contributors1322 returns the array of Gitlab::Contributor for the repository1323 order_by email1324 asc1325 returns all the contributors ordered by email asc case insensitive1326 desc1327 returns all the contributors ordered by email desc case insensitive1328 order_by name1329 asc1330 returns all the contributors ordered by name asc case insensitive1331 desc1332 returns all the contributors ordered by name desc case insensitive1333 order_by commits1334 asc1335 returns all the contributors ordered by commits asc1336 desc1337 returns all the contributors ordered by commits desc1338 invalid ordering1339 returns the contributors unsorted1340 invalid sorting1341 returns the contributors unsorted1342 #merge_base1343 only makes one gitaly call1344 #create_if_not_exists1345 creates the repository if it did not exist1346 returns true1347 calls out to the repository client to create a repo1348 creates a repository with a default branch name1349 it does nothing if the repository already existed1350 does nothing if the repository already existed1351 returns nil1352 when the repository exists but the cache is not up to date1353 does not raise errors1354 returns nil1355 #create_from_bundle1356 calls out to the raw_repository to create a repo from bundle1357 calls after_create1358 when exception is raised1359 after_create is not executed1360 #blobs_metadata1361 returns blob metadata in batch for HEAD1362 returns blob metadata for a specified ref1363 performs a single gitaly call1364 #project1365 returns the project for a project snippet1366 returns nil for a personal snippet1367 returns the project for a project wiki1368 returns the container if it is a project1369 returns nil if the container is not a project1370 #submodule_links1371 returns an instance of Gitlab::SubmoduleLinks1372 #lfs_enabled?1373 for a project repository1374 returns true when LFS is enabled1375 returns false when LFS is disabled1376 for a project wiki repository1377 delegates to the project1378 for a project snippet repository1379 returns false when LFS is enabled1380 for a personal snippet repository1381 returns false when LFS is enabled1382 for a design repository1383 returns true when LFS is enabled1384 returns false when LFS is disabled1385 .pick_storage_shard1386 when expire is false1387 does not expire existing repository storage value1388 when expire is true1389 expires existing repository storage value1390 #change_head1391 when the branch exists1392 returns truthy1393 does not call container.after_change_head_branch_does_not_exist1394 calls repository hooks1395 copies the gitattributes1396 reloads the default branch1397 when the branch does not exist1398 returns falsey1399 calls container.after_change_head_branch_does_not_exist1400 does not call repository hooks1401MergeRequests::PushOptionsHandlerService1402 `create` push option1403 with a new branch1404 behaves like a service that can create a merge request1405 creates a merge request with the correct target branch1406 when project has been forked1407 sets the correct source and target project1408 with an existing branch but no open MR1409 behaves like a service that can create a merge request1410 creates a merge request with the correct target branch1411 when project has been forked1412 sets the correct source and target project1413 with an existing branch that has a merge request open1414 behaves like a service that does not create a merge request1415 is expected not to change `MergeRequest.count`1416 behaves like with a deleted branch1417 behaves like a service that does nothing1418 is expected not to change `MergeRequest.count`1419 is expected not to change `MergeRequest.maximum(:updated_at)`1420 behaves like with the project default branch1421 behaves like a service that does nothing1422 is expected not to change `MergeRequest.count`1423 is expected not to change `MergeRequest.maximum(:updated_at)`1424 `merge_when_pipeline_succeeds` push option1425 with a new branch1426 adds an error to the service1427 behaves like a service that does not create a merge request1428 is expected not to change `MergeRequest.count`1429 when coupled with the `create` push option1430 behaves like a service that can create a merge request1431 creates a merge request with the correct target branch1432 when project has been forked1433 sets the correct source and target project1434 behaves like a service that can set the merge request to merge when pipeline succeeds1435 sets auto_merge_enabled1436 with an existing branch but no open MR1437 adds an error to the service1438 behaves like a service that does not create a merge request1439 is expected not to change `MergeRequest.count`1440 when coupled with the `create` push option1441 behaves like a service that can create a merge request1442 creates a merge request with the correct target branch1443 when project has been forked1444 sets the correct source and target project1445 behaves like a service that can set the merge request to merge when pipeline succeeds1446 sets auto_merge_enabled1447 with an existing branch that has a merge request open1448 behaves like a service that does not create a merge request1449 is expected not to change `MergeRequest.count`1450 behaves like a service that can set the merge request to merge when pipeline succeeds1451 sets auto_merge_enabled1452 behaves like with a deleted branch1453 behaves like a service that does nothing1454 is expected not to change `MergeRequest.count`1455 is expected not to change `MergeRequest.maximum(:updated_at)`1456 behaves like with the project default branch1457 behaves like a service that does nothing1458 is expected not to change `MergeRequest.count`1459 is expected not to change `MergeRequest.maximum(:updated_at)`1460 `remove_source_branch` push option1461 with a new branch1462 adds an error to the service1463 behaves like a service that does not create a merge request1464 is expected not to change `MergeRequest.count`1465 when coupled with the `create` push option1466 behaves like a service that can create a merge request1467 creates a merge request with the correct target branch1468 when project has been forked1469 sets the correct source and target project1470 behaves like a service that can remove the source branch when it is merged1471 returns true to force_remove_source_branch?1472 with an existing branch but no open MR1473 adds an error to the service1474 behaves like a service that does not create a merge request1475 is expected not to change `MergeRequest.count`1476 when coupled with the `create` push option1477 behaves like a service that can create a merge request1478 creates a merge request with the correct target branch1479 when project has been forked1480 sets the correct source and target project1481 behaves like a service that can remove the source branch when it is merged1482 returns true to force_remove_source_branch?1483 with an existing branch that has a merge request open1484 behaves like a service that does not create a merge request1485 is expected not to change `MergeRequest.count`1486 behaves like a service that can remove the source branch when it is merged1487 returns true to force_remove_source_branch?1488 behaves like with a deleted branch1489 behaves like a service that does nothing1490 is expected not to change `MergeRequest.count`1491 is expected not to change `MergeRequest.maximum(:updated_at)`1492 behaves like with the project default branch1493 behaves like a service that does nothing1494 is expected not to change `MergeRequest.count`1495 is expected not to change `MergeRequest.maximum(:updated_at)`1496 `target` push option1497 with a new branch1498 adds an error to the service1499 behaves like a service that does not create a merge request1500 is expected not to change `MergeRequest.count`1501 when coupled with the `create` push option1502 behaves like a service that can create a merge request1503 creates a merge request with the correct target branch1504 when project has been forked1505 sets the correct source and target project1506 behaves like a service that can set the target of a merge request1507 sets the target_branch1508 with an existing branch but no open MR1509 adds an error to the service1510 behaves like a service that does not create a merge request1511 is expected not to change `MergeRequest.count`1512 when coupled with the `create` push option1513 behaves like a service that can create a merge request1514 creates a merge request with the correct target branch1515 when project has been forked1516 sets the correct source and target project1517 behaves like a service that can set the target of a merge request1518 sets the target_branch1519 with an existing branch that has a merge request open1520 behaves like a service that does not create a merge request1521 is expected not to change `MergeRequest.count`1522 behaves like a service that can set the target of a merge request1523 sets the target_branch1524 behaves like with a deleted branch1525 behaves like a service that does nothing1526 is expected not to change `MergeRequest.count`1527 is expected not to change `MergeRequest.maximum(:updated_at)`1528 behaves like with the project default branch1529 behaves like a service that does nothing1530 is expected not to change `MergeRequest.count`1531 is expected not to change `MergeRequest.maximum(:updated_at)`1532 `title` push option1533 with a new branch1534 adds an error to the service1535 behaves like a service that does not create a merge request1536 is expected not to change `MergeRequest.count`1537 when coupled with the `create` push option1538 behaves like a service that can create a merge request1539 creates a merge request with the correct target branch1540 when project has been forked1541 sets the correct source and target project1542 behaves like a service that can set the title of a merge request1543 sets the title1544 with an existing branch but no open MR1545 adds an error to the service1546 behaves like a service that does not create a merge request1547 is expected not to change `MergeRequest.count`1548 when coupled with the `create` push option1549 behaves like a service that can create a merge request1550 creates a merge request with the correct target branch1551 when project has been forked1552 sets the correct source and target project1553 behaves like a service that can set the title of a merge request1554 sets the title1555 with an existing branch that has a merge request open1556 behaves like a service that does not create a merge request1557 is expected not to change `MergeRequest.count`1558 behaves like a service that can set the title of a merge request1559 sets the title1560 behaves like with a deleted branch1561 behaves like a service that does nothing1562 is expected not to change `MergeRequest.count`1563 is expected not to change `MergeRequest.maximum(:updated_at)`1564 behaves like with the project default branch1565 behaves like a service that does nothing1566 is expected not to change `MergeRequest.count`1567 is expected not to change `MergeRequest.maximum(:updated_at)`1568 `description` push option1569 with a new branch1570 adds an error to the service1571 behaves like a service that does not create a merge request1572 is expected not to change `MergeRequest.count`1573 when coupled with the `create` push option1574 behaves like a service that can create a merge request1575 creates a merge request with the correct target branch1576 when project has been forked1577 sets the correct source and target project1578 behaves like a service that can set the description of a merge request1579 sets the description1580 with an existing branch but no open MR1581 adds an error to the service1582 behaves like a service that does not create a merge request1583 is expected not to change `MergeRequest.count`1584 when coupled with the `create` push option1585 behaves like a service that can create a merge request1586 creates a merge request with the correct target branch1587 when project has been forked1588 sets the correct source and target project1589 behaves like a service that can set the description of a merge request1590 sets the description1591 with an existing branch that has a merge request open1592 behaves like a service that does not create a merge request1593 is expected not to change `MergeRequest.count`1594 behaves like a service that can set the description of a merge request1595 sets the description1596 with a multiline description1597 behaves like a service that does not create a merge request1598 is expected not to change `MergeRequest.count`1599 behaves like a service that can set the multiline description of a merge request1600 sets the multiline description1601 behaves like with a deleted branch1602 behaves like a service that does nothing1603 is expected not to change `MergeRequest.count`1604 is expected not to change `MergeRequest.maximum(:updated_at)`1605 behaves like with the project default branch1606 behaves like a service that does nothing1607 is expected not to change `MergeRequest.count`1608 is expected not to change `MergeRequest.maximum(:updated_at)`1609 `draft` push option1610 with a new branch1611 adds an error to the service1612 behaves like a service that does not create a merge request1613 is expected not to change `MergeRequest.count`1614 when coupled with the `create` push option1615 behaves like a service that can create a merge request1616 creates a merge request with the correct target branch1617 when project has been forked1618 sets the correct source and target project1619 behaves like a service that can set the draft of a merge request1620 sets the draft1621 with an existing branch but no open MR1622 adds an error to the service1623 behaves like a service that does not create a merge request1624 is expected not to change `MergeRequest.count`1625 when coupled with the `create` push option1626 behaves like a service that can create a merge request1627 creates a merge request with the correct target branch1628 when project has been forked1629 sets the correct source and target project1630 behaves like a service that can set the draft of a merge request1631 sets the draft1632 with an existing branch that has a merge request open1633 behaves like a service that does not create a merge request1634 is expected not to change `MergeRequest.count`1635 behaves like a service that can set the draft of a merge request1636 sets the draft1637 draft title provided while `draft` push option is set to false1638 behaves like a service that can create a merge request1639 creates a merge request with the correct target branch1640 when project has been forked1641 sets the correct source and target project1642 behaves like a service that can set the draft of a merge request1643 sets the draft1644 behaves like with a deleted branch1645 behaves like a service that does nothing1646 is expected not to change `MergeRequest.count`1647 is expected not to change `MergeRequest.maximum(:updated_at)`1648 behaves like with the project default branch1649 behaves like a service that does nothing1650 is expected not to change `MergeRequest.count`1651 is expected not to change `MergeRequest.maximum(:updated_at)`1652 `label` push option1653 with a new branch1654 adds an error to the service1655 behaves like a service that does not create a merge request1656 is expected not to change `MergeRequest.count`1657 when coupled with the `create` push option1658 behaves like a service that can create a merge request1659 creates a merge request with the correct target branch1660 when project has been forked1661 sets the correct source and target project1662 behaves like a service that can change labels of a merge request1663 changes label count1664 with an existing branch but no open MR1665 adds an error to the service1666 behaves like a service that does not create a merge request1667 is expected not to change `MergeRequest.count`1668 when coupled with the `create` push option1669 behaves like a service that can create a merge request1670 creates a merge request with the correct target branch1671 when project has been forked1672 sets the correct source and target project1673 behaves like a service that can change labels of a merge request1674 changes label count1675 with an existing branch that has a merge request open1676 behaves like a service that does not create a merge request1677 is expected not to change `MergeRequest.count`1678 behaves like a service that can change labels of a merge request1679 changes label count1680 behaves like with a deleted branch1681 behaves like a service that does nothing1682 is expected not to change `MergeRequest.count`1683 is expected not to change `MergeRequest.maximum(:updated_at)`1684 behaves like with the project default branch1685 behaves like a service that does nothing1686 is expected not to change `MergeRequest.count`1687 is expected not to change `MergeRequest.maximum(:updated_at)`1688 `unlabel` push option1689 with a new branch1690 adds an error to the service1691 behaves like a service that does not create a merge request1692 is expected not to change `MergeRequest.count`1693 when coupled with the `create` push option1694 behaves like a service that can create a merge request1695 creates a merge request with the correct target branch1696 when project has been forked1697 sets the correct source and target project1698 behaves like a service that can change labels of a merge request1699 changes label count1700 with an existing branch but no open MR1701 adds an error to the service1702 behaves like a service that does not create a merge request1703 is expected not to change `MergeRequest.count`1704 when coupled with the `create` push option1705 behaves like a service that can create a merge request1706 creates a merge request with the correct target branch1707 when project has been forked1708 sets the correct source and target project1709 behaves like a service that can change labels of a merge request1710 changes label count1711 with an existing branch that has a merge request open1712 behaves like a service that does not create a merge request1713 is expected not to change `MergeRequest.count`1714 behaves like a service that can change labels of a merge request1715 changes label count1716 behaves like with a deleted branch1717 behaves like a service that does nothing1718 is expected not to change `MergeRequest.count`1719 is expected not to change `MergeRequest.maximum(:updated_at)`1720 behaves like with the project default branch1721 behaves like a service that does nothing1722 is expected not to change `MergeRequest.count`1723 is expected not to change `MergeRequest.maximum(:updated_at)`1724 `milestone` push option1725 with a valid milestone1726 with a new branch1727 adds an error to the service1728 behaves like a service that does not create a merge request1729 is expected not to change `MergeRequest.count`1730 when coupled with the `create` push option1731 behaves like a service that can create a merge request1732 creates a merge request with the correct target branch1733 when project has been forked1734 sets the correct source and target project1735 behaves like a service that can set the milestone of a merge request1736 sets the milestone1737 with an existing branch but no open MR1738 adds an error to the service1739 behaves like a service that does not create a merge request1740 is expected not to change `MergeRequest.count`1741 when coupled with the `create` push option1742 behaves like a service that can create a merge request1743 creates a merge request with the correct target branch1744 when project has been forked1745 sets the correct source and target project1746 behaves like a service that can set the milestone of a merge request1747 sets the milestone1748 with an existing branch that has a merge request open1749 behaves like a service that does not create a merge request1750 is expected not to change `MergeRequest.count`1751 behaves like a service that can set the milestone of a merge request1752 sets the milestone1753 behaves like with a deleted branch1754 behaves like a service that does nothing1755 is expected not to change `MergeRequest.count`1756 is expected not to change `MergeRequest.maximum(:updated_at)`1757 behaves like with the project default branch1758 behaves like a service that does nothing1759 is expected not to change `MergeRequest.count`1760 is expected not to change `MergeRequest.maximum(:updated_at)`1761 with invalid milestone1762 behaves like a service that can set the milestone of a merge request1763 sets the milestone1764 with an ancestor milestone1765 with immediate parent milestone1766 behaves like a service that can create a merge request1767 creates a merge request with the correct target branch1768 when project has been forked1769 sets the correct source and target project1770 behaves like a service that can set the milestone of a merge request1771 sets the milestone1772 with multi-level ancestor milestone1773 behaves like a service that can create a merge request1774 creates a merge request with the correct target branch1775 when project has been forked1776 sets the correct source and target project1777 behaves like a service that can set the milestone of a merge request1778 sets the milestone1779 `assign` push option1780 behaves like with a new branch1781 adds an error to the service1782 behaves like a service that does not create a merge request1783 is expected not to change `MergeRequest.count`1784 behaves like when coupled with the `create` push option1785 behaves like a service that can create a merge request1786 creates a merge request with the correct target branch1787 when project has been forked1788 sets the correct source and target project1789 behaves like a service that can change assignees of a merge request1790 changes assignee count1791 behaves like with an existing branch but no open MR1792 adds an error to the service1793 behaves like a service that does not create a merge request1794 is expected not to change `MergeRequest.count`1795 behaves like when coupled with the `create` push option1796 behaves like a service that can create a merge request1797 creates a merge request with the correct target branch1798 when project has been forked1799 sets the correct source and target project1800 behaves like a service that can change assignees of a merge request1801 changes assignee count1802 behaves like with an existing branch that has a merge request open in foss1803 behaves like a service that does not create a merge request1804 is expected not to change `MergeRequest.count`1805 behaves like a service that can change assignees of a merge request1806 changes assignee count1807 behaves like with a deleted branch1808 behaves like a service that does nothing1809 is expected not to change `MergeRequest.count`1810 is expected not to change `MergeRequest.maximum(:updated_at)`1811 behaves like with the project default branch1812 behaves like a service that does nothing1813 is expected not to change `MergeRequest.count`1814 is expected not to change `MergeRequest.maximum(:updated_at)`1815 `unassign` push option1816 behaves like with a new branch1817 adds an error to the service1818 behaves like a service that does not create a merge request1819 is expected not to change `MergeRequest.count`1820 behaves like when coupled with the `create` push option1821 behaves like a service that can create a merge request1822 creates a merge request with the correct target branch1823 when project has been forked1824 sets the correct source and target project1825 behaves like a service that can change assignees of a merge request1826 changes assignee count1827 behaves like with an existing branch but no open MR1828 adds an error to the service1829 behaves like a service that does not create a merge request1830 is expected not to change `MergeRequest.count`1831 behaves like when coupled with the `create` push option1832 behaves like a service that can create a merge request1833 creates a merge request with the correct target branch1834 when project has been forked1835 sets the correct source and target project1836 behaves like a service that can change assignees of a merge request1837 changes assignee count1838 behaves like with an existing branch that has a merge request open in foss1839 behaves like a service that does not create a merge request1840 is expected not to change `MergeRequest.count`1841 behaves like a service that can change assignees of a merge request1842 changes assignee count1843 behaves like with a deleted branch1844 behaves like a service that does nothing1845 is expected not to change `MergeRequest.count`1846 is expected not to change `MergeRequest.maximum(:updated_at)`1847 behaves like with the project default branch1848 behaves like a service that does nothing1849 is expected not to change `MergeRequest.count`1850 is expected not to change `MergeRequest.maximum(:updated_at)`1851 multiple pushed branches1852 creates a merge request per branch1853 when there are too many pushed branches1854 records an error1855 no push options1856 behaves like a service that does nothing1857 is expected not to change `MergeRequest.count`1858 is expected not to change `MergeRequest.maximum(:updated_at)`1859 no user1860 records an error1861 unauthorized user1862 records an error1863 handling unexpected exceptions1864 records an error1865 writes to Gitlab::AppLogger1866 when target is not a valid branch name1867 records an error1868 when MRs are not enabled1869 records an error1870 when MR has ActiveRecord errors1871 adds the error to its errors property1872MergeRequests::CreateFromIssueService1873 #execute1874 no target_project_id specified1875 inherits labels1876 inherits milestones1877 sets the merge request title to: "Draft: Resolves "$issue-title"1878 behaves like a service that creates a merge request from an issue1879 returns an error when user can not create merge request on target project1880 returns an error with invalid issue iid1881 creates a branch based on issue title1882 creates a branch using passed name1883 creates the new_merge_request system note1884 tracks the mr creation when the mr is valid1885 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created1886 does not track the mr creation when the Mr is invalid1887 creates a merge request1888 sets the merge request author to current user and assigns them1889 sets the merge request source branch to the new issue branch1890 sets the merge request source branch to the passed branch name1891 sets the merge request target branch to the project default branch1892 executes quick actions if the build service sets them in the description1893 when ref branch is set1894 sets the merge request source branch to the new issue branch1895 sets the merge request target branch to the ref branch1896 when the ref is a tag1897 sets the merge request source branch to the new issue branch1898 creates a merge request1899 sets the merge request target branch to the project default branch1900 when ref branch does not exist1901 creates a merge request1902 sets the merge request target branch to the project default branch1903 target_project_id is specified1904 target project is not a fork of the project1905 returns an error about not finding the project1906 does not create merge request1907 target project is a fork of project project1908 sets the merge request title to: "Draft: $issue-branch-name1909 behaves like a service that creates a merge request from an issue1910 returns an error when user can not create merge request on target project1911 returns an error with invalid issue iid1912 creates a branch based on issue title1913 creates a branch using passed name1914 creates the new_merge_request system note1915 tracks the mr creation when the mr is valid1916 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created1917 does not track the mr creation when the Mr is invalid1918 creates a merge request1919 sets the merge request author to current user and assigns them1920 sets the merge request source branch to the new issue branch1921 sets the merge request source branch to the passed branch name1922 sets the merge request target branch to the project default branch1923 executes quick actions if the build service sets them in the description1924 when ref branch is set1925 sets the merge request source branch to the new issue branch1926 sets the merge request target branch to the ref branch1927 when the ref is a tag1928 sets the merge request source branch to the new issue branch1929 creates a merge request1930 sets the merge request target branch to the project default branch1931 when ref branch does not exist1932 creates a merge request1933 sets the merge request target branch to the project default branch1934Deployment1935 is expected to belong to project required: true1936 is expected to belong to environment required: true1937 is expected to belong to cluster class_name => Clusters::Cluster required: false1938 is expected to belong to user required: false1939 is expected to belong to deployable required: false1940 is expected to have one deployment_cluster1941 is expected to have many deployment_merge_requests1942 is expected to have many merge_requests through deployment_merge_requests1943 is expected to delegate #environment_name to the #environment object as #name1944 is expected to delegate #commit to the #project object1945 is expected to delegate #commit_title to the #commit object as #try1946 is expected to delegate #kubernetes_namespace to the #deployment_cluster object1947 is expected to validate that :ref cannot be empty/falsy1948 is expected to validate that :sha cannot be empty/falsy1949 behaves like having unique enum values1950 has unique values in "status"1951 #manual_actions1952 delegates to environment_manual_actions1953 #scheduled_actions1954 delegates to environment_scheduled_actions1955 modules1956 behaves like AtomicInternalId1957 .has_internal_id1958 Module inclusion1959 is expected to includes the AtomicInternalId module1960 Validation1961 when presence validation is required1962 when creating an object1963 raises an error if the internal id is blank1964 when updating an object1965 raises an error if the internal id is blank1966 when presence validation is not required1967 when creating an object1968 does not raise an error if the internal id is blank (PENDING: No reason given)1969 when updating an object1970 does not raise an error if the internal id is blank (PENDING: No reason given)1971 Creating an instance1972 saves a new instance properly1973 internal id generation1974 calls InternalId.generate_next and sets internal id attribute1975 does not overwrite an existing internal id1976 when the instance has an internal ID set1977 calls InternalId.update_last_value and sets the `last_value` to that of the instance1978 unsetting the instance internal id on rollback1979 when the internal id has been changed1980 when the internal id is automatically set1981 clears it on the instance1982 when the internal id is manually set1983 does not clear it on the instance1984 when the internal id has not been changed1985 preserves the value on the instance1986 supply of internal ids1987 provides a persistent supply of IID values, sensitive to the current state1988 #reset_scope_internal_id_attribute1989 rewinds the allocated IID1990 allocates the same IID1991 .stoppable1992 when deployment is stoppable1993 is expected to eq [#<Deployment id: 11, iid: 1, project_id: 493, environment_id: 4, ref: "master", tag: false, sha: "b8...shed_at: "2022-07-04 07:23:46.815988165 +0000", cluster_id: nil, deployable_id: 4, archived: false>]1994 when deployment is not stoppable1995 is expected to be empty1996 .for_environment_name1997 when deployment belongs to the environment1998 is expected to eq [#<Deployment id: 13, iid: 1, project_id: 495, environment_id: 6, ref: "master", tag: false, sha: "b8...stop: nil, status: "created", finished_at: nil, cluster_id: nil, deployable_id: 6, archived: false>]1999 when deployment belongs to the same project but different environment name2000 is expected to be empty2001 when deployment belongs to the same environment name but different project2002 is expected to be empty2003 .success2004 when deployment status is success2005 is expected to eq [#<Deployment id: 16, iid: 1, project_id: 497, environment_id: 9, ref: "master", tag: false, sha: "b8...shed_at: "2022-07-04 07:23:51.431595217 +0000", cluster_id: nil, deployable_id: 9, archived: false>]2006 when deployment status is created2007 is expected to be empty2008 when deployment status is running2009 is expected to be empty2010 state machine2011 when deployment runs2012 starts running2013 executes Deployments::HooksWorker asynchronously2014 executes Deployments::DropOlderDeploymentsWorker asynchronously2015 when deployment succeeded2016 has correct status2017 executes Deployments::UpdateEnvironmentWorker asynchronously2018 executes Deployments::HooksWorker asynchronously2019 when deployment failed2020 has correct status2021 does not execute Deployments::LinkMergeRequestWorker2022 executes Deployments::HooksWorker asynchronously2023 when deployment was canceled2024 has correct status2025 does not execute Deployments::LinkMergeRequestWorker2026 executes Deployments::HooksWorker asynchronously2027 when deployment was skipped2028 has correct status2029 does not execute Deployments::LinkMergeRequestWorker asynchronously2030 does not execute Deployments::HooksWorker2031 when deployment is blocked2032 has correct status2033 does not execute Deployments::LinkMergeRequestWorker asynchronously2034 does not execute Deployments::HooksWorker2035 synching status to Jira2036 when Jira Connect subscription does not exist2037 does not call the worker2038 when Jira Connect subscription exists2039 calls the worker on creation2040 does not call the worker for skipped deployments2041 when we call pipeline.run!2042 triggers a Jira synch worker2043 when we call pipeline.succeed!2044 triggers a Jira synch worker2045 when we call pipeline.drop!2046 triggers a Jira synch worker2047 when we call pipeline.cancel!2048 triggers a Jira synch worker2049 #success?2050 when deployment status is success2051 is expected to be truthy2052 when deployment status is failed2053 is expected to be falsy2054 #status_name2055 when deployment status is success2056 is expected to eq :success2057 when deployment status is failed2058 is expected to eq :failed2059 #deployed_at2060 when deployment status is created2061 is expected to be nil2062 when deployment status is success2063 is expected to eq 2022-07-04 07:24:27.582092294 +00002064 when deployment status is running2065 is expected to be nil2066 .archivables_in2067 when there are no archivable deployments in the project2068 returns nothing2069 when there are archivable deployments in the project2070 returns all archivable deployments2071 with limit2072 takes the limit into account2073 scopes2074 last_for_environment2075 retrieves last deployments for environments2076 active2077 retrieves the active deployments2078 older_than2079 retrives the correct older deployments2080 .finished_before2081 filters deployments by finished_at2082 .finished_after2083 filters deployments by finished_at2084 .ordered2085 sorts by finished at2086 visible2087 retrieves the visible deployments2088 has a corresponding database index2089 upcoming2090 retrieves the upcoming deployments2091 last_deployment_group_for_environment2092 when there are no deployments and builds2093 is expected to eq #<ActiveRecord::Relation []>2094 when there are no successful builds2095 is expected to eq #<ActiveRecord::Relation []>2096 when there are deployments for multiple pipelines2097 returns the successful deployment jobs for the last deployment pipeline2098 when there are many environments2099 batch loads for environments2100 When last deployment for environment is a retried build2101 is expected not to be nil2102 latest_for_sha2103 finds the latest deployment with sha2104 when sha is old2105 finds the latest deployment with sha2106 when sha is nil2107 returns nothing2108 #includes_commit?2109 when there is no project commit2110 returns false2111 when they share the same tree branch2112 returns true2113 when the SHA for the deployment does not exist in the repo2114 returns false2115 #stop_action2116 when no other actions2117 is expected to be nil2118 with other actions2119 when matching action is defined2120 is expected to be nil2121 when no matching action is defined2122 is expected to eq #<Ci::Build status: "manual", finished_at: nil, trace: nil, created_at: "2022-07-04 08:50:29.00000000..._resource_at: nil, processed: false, scheduling_type: "stage", id: 105, stage_id: 93, tag_list: nil>2123 #deployed_by2124 returns the deployment user if there is no deployable2125 returns the deployment user if the deployable have no user2126 returns the deployable user if there is one2127 .find_successful_deployment!2128 returns a successful deployment2129 raises when no deployment is found2130 .builds2131 retrieves builds for the deployments2132 does not fetch the null deployable_ids2133 #previous_deployment2134 pointer: "production_deployment_1", expected_previous_deployment: nil2135 returns the previous deployment2136 pointer: "production_deployment_2", expected_previous_deployment: "production_deployment_1"2137 returns the previous deployment2138 pointer: "production_deployment_3", expected_previous_deployment: "production_deployment_2"2139 returns the previous deployment2140 pointer: "production_deployment_4", expected_previous_deployment: "production_deployment_2"2141 returns the previous deployment2142 pointer: "staging_deployment_1", expected_previous_deployment: nil2143 returns the previous deployment2144 pointer: "staging_deployment_2", expected_previous_deployment: nil2145 returns the previous deployment2146 pointer: "production_deployment_5", expected_previous_deployment: "production_deployment_2"2147 returns the previous deployment2148 pointer: "staging_deployment_3", expected_previous_deployment: "staging_deployment_2"2149 returns the previous deployment2150 #link_merge_requests2151 links merge requests with a deployment2152 ignores already linked merge requests2153 #create_ref2154 creates a ref using the sha2155 #playable_build2156 when there is a deployable build2157 when the deployable build is playable2158 returns that build2159 when the deployable build is not playable2160 returns nil2161 when there is no deployable build2162 returns nil2163 #update_status2164 changes the status2165 schedules workers when finishing a deploy2166 updates finished_at when transitioning to a finished status2167 tracks an exception if an invalid argument2168 tracks an exception if an invalid status transition is detected2169 is expected to eq false2170 is expected to eq false2171 mapping status to event2172 status: "running", method: :run!2173 calls the correct method for the given status2174 status: "success", method: :succeed!2175 calls the correct method for the given status2176 status: "failed", method: :drop!2177 calls the correct method for the given status2178 status: "canceled", method: :cancel!2179 calls the correct method for the given status2180 status: "skipped", method: :skip!2181 calls the correct method for the given status2182 status: "blocked", method: :block!2183 calls the correct method for the given status2184 for created status update2185 calls the correct method2186 #sync_status_with2187 with created deployment2188 with created build2189 behaves like ignoring build2190 does not change deployment status2191 with running build2192 behaves like synchronizing deployment2193 changes deployment status2194 with finished build2195 behaves like synchronizing deployment2196 changes deployment status2197 with unrelated build2198 behaves like ignoring build2199 does not change deployment status2200 with running deployment2201 with created build2202 behaves like gracefully handling error2203 tracks an exception2204 with running build2205 behaves like ignoring build2206 does not change deployment status2207 with finished build2208 behaves like synchronizing deployment2209 changes deployment status2210 with unrelated build2211 behaves like ignoring build2212 does not change deployment status2213 with finished deployment2214 with created build2215 behaves like gracefully handling error2216 tracks an exception2217 with running build2218 behaves like gracefully handling error2219 tracks an exception2220 with finished build2221 behaves like ignoring build2222 does not change deployment status2223 with failed build2224 behaves like synchronizing deployment2225 changes deployment status2226 with unrelated build2227 behaves like ignoring build2228 does not change deployment status2229 #valid_sha2230 does not add errors for a valid SHA2231 adds an error for an invalid SHA2232 #valid_ref2233 does not add errors for a valid ref2234 adds an error for an invalid ref2235 #tier_in_yaml2236 when deployable is nil2237 returns nil2238 when deployable is present2239 when tier is specified2240 returns the tier2241 when tier is not specified2242 returns nil2243 .fast_destroy_all2244 cleans path_refs for destroyed environments2245 #update_merge_request_metrics!2246 with production environment2247 updates merge request metrics for production-grade environment2248 with staging environment2249 updates merge request metrics for production-grade environment2250 loose foreign key on deployments.cluster_id2251 behaves like cleanup by a loose foreign key2252 cleans up (delete or nullify) the model2253Gitlab::Usage::Metrics::NamesSuggestions::Generator2254 #generate2255 #add_metric2256 computes the suggested name for given metric2257 for count with default column metrics2258 behaves like name suggestion2259 return correct name2260 for count distinct with column defined metrics2261 behaves like name suggestion2262 return correct name2263 joined relations2264 counted attribute comes from source relation2265 behaves like name suggestion2266 return correct name2267 strips off time period constraint2268 behaves like name suggestion2269 return correct name2270 for sum metrics2271 behaves like name suggestion2272 return correct name2273 for add metrics2274 behaves like name suggestion2275 return correct name2276 for redis metrics2277 behaves like name suggestion2278 return correct name2279 for alt_usage_data metrics2280 behaves like name suggestion2281 return correct name2282Projects::ForkService2283 when forking a new project2284 fork by user2285 fork project2286 when forker is a guest2287 is expected not to be persisted2288 is expected to eq ["is forbidden"]2289 does not create a fork network2290 behaves like forks count cache refresh2291 flushes the forks count cache of the source project2292 successfully creates project in the user namespace2293 is expected to be persisted2294 is expected to be empty2295 is expected to eq #<User id:766 @user172>2296 is expected to eq #<Namespaces::UserNamespace id: 1493, name: "Sidney Jones819", path: "user174", owner_id: 768, create...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>2297 is expected to be zero2298 is expected to eq "wow such project"2299 is expected to be exists2300 is expected to eq nil2301 is expected to eq "classification-label"2302 after forking the from-project still has its avatar2303 creates a fork network with the new project and the root project set2304 imports the repository of the forked project2305 behaves like forks count cache refresh2306 flushes the forks count cache of the source project2307 creating a fork of a fork2308 sets the root of the network to the root project2309 sets the forked_from_project on the membership2310 when the forked project has higher visibility than the root project2311 successfully creates a fork of the fork with correct visibility2312 behaves like forks count cache refresh2313 flushes the forks count cache of the source project2314 project already exists2315 fails due to validation, not transaction failure2316 repository in legacy storage already exists2317 does not allow creation2318 when repository disk validation is explicitly skipped2319 allows fork project creation2320 CI/CD settings2321 when origin has git depth specified2322 inherits default_git_depth from the origin project2323 when origin does not define git depth2324 the fork has git depth set to 02325 when project has restricted visibility level2326 and only one visibility level is restricted2327 creates fork with lowest level2328 and all visibility levels are restricted2329 creates fork with private visibility levels2330 when forking is disabled2331 fails2332 fork to namespace2333 fork project for group2334 group owner successfully forks project into the group2335 fork project for group when user not owner2336 group developer fails to fork project into the group2337 project already exists in group2338 fails due to validation, not transaction failure2339 when the namespace has a lower visibility level than the project2340 creates the project with the lower visibility level2341 fork with optional attributes2342 sets optional attributes to specified values2343 sets visibility level to private if an unknown visibility is requested2344 sets visibility level to project visibility level if requested visibility is greater2345 sets visibility level to target namespace visibility level if requested visibility is greater2346 copies project features visibility settings to the fork2347 when a project is already forked2348 creates a new poolresository after the project is moved to a new shard2349 when forking with object pools2350 when no pool exists2351 creates a new object pool2352 when a pool already exists2353 joins the object pool2354 when linking fork to an existing project2355 if project is already forked2356 does not create fork relation2357 if project is not forked2358 creates fork relation2359 flushes the forks count cache of the source project2360 if the fork is not allowed2361 does not delete the LFS objects2362 #valid_fork_targets2363 returns whatever finder returns2364 #valid_fork_target?2365 when target is not passed2366 when current user is an admin2367 is expected to be truthy2368 when current_user is not an admin2369 when target namespace is in valid fork targets2370 is expected to be truthy2371 when target namespace is not in valid fork targets2372 is expected to be falsey2373 when target is passed2374 when current user is an admin2375 is expected to be truthy2376 when current user is not an admin2377 when target namespace is in valid fork targets2378 is expected to be truthy2379 when target namespace is not in valid fork targets2380 is expected to be falsey2381Projects::DestroyService2382 invalidates personal_project_count cache2383 deleting a project with merge requests2384 deletes merge request and related records2385 behaves like deleting the project2386 deletes the project2387 publishes a ProjectDeleted event with project id and namespace id2388 with running pipelines2389 bulks-fails with AbortPipelineService and then executes DestroyPipelineService for each pipelines2390 when project has remote mirrors2391 destroys them2392 when project has exports2393 destroys project and export2394 Sidekiq fake2395 is expected not to include #<Project id:758 user246/project777>>2396 is expected to be falsey2397 when flushing caches fail due to Git errors2398 behaves like deleting the project2399 deletes the project2400 publishes a ProjectDeleted event with project id and namespace id2401 when flushing caches fail due to Redis2402 keeps project team intact upon an error2403 with async_execute2404 async delete of project with private issue visibility2405 behaves like deleting the project2406 deletes the project2407 publishes a ProjectDeleted event with project id and namespace id2408 behaves like deleting the project with pipeline and build2409 with pipeline and build related records2410 deletes build and pipeline related records2411 avoids N+1 queries2412 behaves like deleting the project2413 deletes the project2414 publishes a ProjectDeleted event with project id and namespace id2415 when project is undergoing refresh2416 does not log about artifact deletion but continues to delete artifacts2417 errors2418 when `remove_legacy_registry_tags` fails2419 behaves like handles errors thrown during async destroy2420 does not allow the error to bubble up2421 reports the error2422 unmarks the project as "pending deletion"2423 stores an error message in `projects.delete_error`2424 when `remove_repository` fails2425 behaves like handles errors thrown during async destroy2426 does not allow the error to bubble up2427 reports the error2428 unmarks the project as "pending deletion"2429 stores an error message in `projects.delete_error`2430 when `execute` raises expected error2431 behaves like handles errors thrown during async destroy2432 does not allow the error to bubble up2433 reports the error2434 unmarks the project as "pending deletion"2435 stores an error message in `projects.delete_error`2436 when `execute` raises unexpected error2437 allows error to bubble up and rolls back project deletion2438 for an archived project2439 behaves like deleting the project with pipeline and build2440 with pipeline and build related records2441 deletes build and pipeline related records2442 avoids N+1 queries2443 behaves like deleting the project2444 deletes the project2445 publishes a ProjectDeleted event with project id and namespace id2446 when project is undergoing refresh2447 does not log about artifact deletion but continues to delete artifacts2448 container registry2449 when there are regular container repositories2450 when image repository deletion succeeds2451 removes tags2452 when image repository deletion fails2453 raises an exception2454 when registry is disabled2455 does not attempting to remove any tags2456 when there are tags for legacy root repository2457 when image repository tags deletion succeeds2458 removes tags2459 when image repository tags deletion fails2460 raises an exception2461 for a forked project with LFS objects2462 destroys the fork2463 as the root of a fork network2464 updates the fork network with the project name2465 repository removal2466 removal of existing repos2467 snippets2468 does not include snippets when deleting in batches2469 calls the bulk snippet destroy service with the hard_delete param set to true2470 when an error is raised deleting snippets2471 does not delete project2472 when project has webhooks2473 deletes webhooks and logs related to project2474 when an error is raised deleting webhooks2475 behaves like handles errors thrown during async destroy2476 does not allow the error to bubble up2477 reports the error2478 unmarks the project as "pending deletion"2479 stores an error message in `projects.delete_error`2480 when project has project bots2481 deletes bot user as well2482 when project has events2483 deletes events from the project2484 when an error is returned while deleting events2485 does not delete project2486 error while destroying2487 deletes on retry2488Ci::BuildPolicy2489 #rules2490 when user does not have access to the project2491 when public builds are enabled2492 does not include ability to read build2493 when public builds are disabled2494 does not include ability to read build2495 when anonymous user has access to the project2496 when public builds are enabled2497 includes ability to read build2498 when public builds are disabled2499 does not include ability to read build2500 when team member has access to the project2501 team member is a guest2502 when public builds are enabled2503 includes ability to read build2504 when public builds are disabled2505 does not include ability to read build2506 team member is a reporter2507 when public builds are enabled2508 includes ability to read build2509 when public builds are disabled2510 does not include ability to read build2511 when maintainer is allowed to push to pipeline branch2512 enables update_build if user is maintainer2513 rules for protected ref2514 when no one can push or merge to the branch2515 does not include ability to update build2516 when developers can push to the branch2517 includes ability to update build2518 when no one can create the tag2519 does not include ability to update build2520 when no one can create the tag but it is not a tag2521 includes ability to update build2522 rules for erase build2523 when a developer erases a build2524 when developers can push to the branch2525 when the build was created by the developer2526 when the build was created for a protected ref2527 is expected to be disallowed :erase_build2528 when the build was created for an unprotected ref2529 is expected to be allowed :erase_build2530 when the build was created by the other2531 is expected to be disallowed :erase_build2532 when no one can push or merge to the branch2533 is expected to be disallowed :erase_build2534 when a maintainer erases a build2535 when maintainers can push to the branch2536 when the build was created by the maintainer2537 is expected to be allowed :erase_build2538 when the build was created by the other2539 is expected to be allowed :erase_build2540 when no one can push or merge to the branch2541 is expected to be disallowed :erase_build2542 when an admin erases a build2543 when the build was created for a protected branch2544 is expected to be allowed :erase_build2545 when the build was created for a protected tag2546 is expected to be allowed :erase_build2547 when the build was created for an unprotected ref2548 is expected to be allowed :erase_build2549 manage a web ide terminal2550 when create_web_ide_terminal access enabled2551 with admin2552 when admin mode enabled2553 is expected to be allowed :create_build_service_proxy2554 when admin mode disabled2555 is expected not to be allowed :create_build_service_proxy2556 when build is not from a webide pipeline2557 is expected not to be allowed :create_build_service_proxy2558 when build has no runner terminal2559 when admin mode enabled2560 is expected to be allowed :update_web_ide_terminal2561 is expected not to be allowed :create_build_service_proxy2562 when admin mode disabled2563 is expected not to be allowed :update_web_ide_terminal2564 is expected not to be allowed :create_build_service_proxy2565 feature flag "build_service_proxy" is disabled2566 is expected not to be allowed :create_build_service_proxy2567 with owner2568 behaves like allowed build owner access2569 is expected not to be allowed :create_build_service_proxy2570 when user is the owner of the job2571 is expected to be allowed :create_build_service_proxy2572 with maintainer2573 behaves like allowed build owner access2574 is expected not to be allowed :create_build_service_proxy2575 when user is the owner of the job2576 is expected to be allowed :create_build_service_proxy2577 with developer2578 behaves like forbidden access2579 is expected not to be allowed :create_build_service_proxy2580 when user is the owner of the job2581 is expected not to be allowed :create_build_service_proxy2582 with reporter2583 behaves like forbidden access2584 is expected not to be allowed :create_build_service_proxy2585 when user is the owner of the job2586 is expected not to be allowed :create_build_service_proxy2587 with guest2588 behaves like forbidden access2589 is expected not to be allowed :create_build_service_proxy2590 when user is the owner of the job2591 is expected not to be allowed :create_build_service_proxy2592 with non member2593 behaves like forbidden access2594 is expected not to be allowed :create_build_service_proxy2595 when user is the owner of the job2596 is expected not to be allowed :create_build_service_proxy2597 ability :create_build_terminal2598 when user can update_build2599 when job has terminal2600 when current user is the job owner2601 is expected to be allowed :create_build_terminal2602 when current user is not the job owner2603 is expected not to be allowed :create_build_terminal2604 when job does not have terminal2605 is expected not to be allowed :create_build_terminal2606 when user cannot update build2607 is expected not to be allowed :create_build_terminal2608Projects::Prometheus::Alerts::NotifyService2609 with valid payload2610 with environment specific clusters2611 without token2612 creates alerts and returns them in the payload2613 behaves like processes incident issues2614 is expected to be success2615 behaves like sends alert notification emails2616 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2617 with token2618 behaves like alerts service responds with an error and takes no actions2619 is expected to eq :unauthorized2620 behaves like does not create an alert management alert2621 is expected not to change `AlertManagement::Alert.count`2622 behaves like does not create a system note for alert2623 is expected not to change `Note.count`2624 behaves like does not process incident issues2625 is expected not to receive perform_async(*(any args)) 0 times2626 behaves like does not send alert notification emails2627 is expected not to receive new(*(any args)) 0 times2628 with project specific cluster using prometheus integration2629 cluster_enabled: true, integration_enabled: true, configured_token: "token", token_input: "token", result: :success2630 creates alerts and returns them in the payload2631 behaves like processes incident issues2632 is expected to be success2633 behaves like sends alert notification emails2634 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2635 cluster_enabled: true, integration_enabled: true, configured_token: nil, token_input: nil, result: :success2636 creates alerts and returns them in the payload2637 behaves like processes incident issues2638 is expected to be success2639 behaves like sends alert notification emails2640 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2641 cluster_enabled: true, integration_enabled: true, configured_token: "token", token_input: "x", result: :failure2642 behaves like alerts service responds with an error and takes no actions2643 is expected to eq :unauthorized2644 behaves like does not create an alert management alert2645 is expected not to change `AlertManagement::Alert.count`2646 behaves like does not create a system note for alert2647 is expected not to change `Note.count`2648 behaves like does not process incident issues2649 is expected not to receive perform_async(*(any args)) 0 times2650 behaves like does not send alert notification emails2651 is expected not to receive new(*(any args)) 0 times2652 cluster_enabled: true, integration_enabled: true, configured_token: "token", token_input: nil, result: :failure2653 behaves like alerts service responds with an error and takes no actions2654 is expected to eq :unauthorized2655 behaves like does not create an alert management alert2656 is expected not to change `AlertManagement::Alert.count`2657 behaves like does not create a system note for alert2658 is expected not to change `Note.count`2659 behaves like does not process incident issues2660 is expected not to receive perform_async(*(any args)) 0 times2661 behaves like does not send alert notification emails2662 is expected not to receive new(*(any args)) 0 times2663 cluster_enabled: true, integration_enabled: false, configured_token: "token", token_input: "token", result: :failure2664 behaves like alerts service responds with an error and takes no actions2665 is expected to eq :unauthorized2666 behaves like does not create an alert management alert2667 is expected not to change `AlertManagement::Alert.count`2668 behaves like does not create a system note for alert2669 is expected not to change `Note.count`2670 behaves like does not process incident issues2671 is expected not to receive perform_async(*(any args)) 0 times2672 behaves like does not send alert notification emails2673 is expected not to receive new(*(any args)) 0 times2674 cluster_enabled: false, integration_enabled: true, configured_token: "token", token_input: "token", result: :failure2675 behaves like alerts service responds with an error and takes no actions2676 is expected to eq :unauthorized2677 behaves like does not create an alert management alert2678 is expected not to change `AlertManagement::Alert.count`2679 behaves like does not create a system note for alert2680 is expected not to change `Note.count`2681 behaves like does not process incident issues2682 is expected not to receive perform_async(*(any args)) 0 times2683 behaves like does not send alert notification emails2684 is expected not to receive new(*(any args)) 0 times2685 cluster_enabled: false, integration_enabled: nil, configured_token: nil, token_input: "token", result: :failure2686 behaves like alerts service responds with an error and takes no actions2687 is expected to eq :unauthorized2688 behaves like does not create an alert management alert2689 is expected not to change `AlertManagement::Alert.count`2690 behaves like does not create a system note for alert2691 is expected not to change `Note.count`2692 behaves like does not process incident issues2693 is expected not to receive perform_async(*(any args)) 0 times2694 behaves like does not send alert notification emails2695 is expected not to receive new(*(any args)) 0 times2696 without project specific cluster2697 behaves like alerts service responds with an error and takes no actions2698 is expected to eq :unauthorized2699 behaves like does not create an alert management alert2700 is expected not to change `AlertManagement::Alert.count`2701 behaves like does not create a system note for alert2702 is expected not to change `Note.count`2703 behaves like does not process incident issues2704 is expected not to receive perform_async(*(any args)) 0 times2705 behaves like does not send alert notification emails2706 is expected not to receive new(*(any args)) 0 times2707 with manual prometheus installation2708 alerting_setting: true, configured_token: "token", token_input: "token", result: :success2709 behaves like processes one firing and one resolved prometheus alerts2710 creates alerts and returns them in the payload2711 behaves like processes incident issues2712 is expected to be success2713 behaves like sends alert notification emails2714 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2715 alerting_setting: true, configured_token: "token", token_input: "x", result: :failure2716 behaves like alerts service responds with an error and takes no actions2717 is expected to eq :unauthorized2718 behaves like does not create an alert management alert2719 is expected not to change `AlertManagement::Alert.count`2720 behaves like does not create a system note for alert2721 is expected not to change `Note.count`2722 behaves like does not process incident issues2723 is expected not to receive perform_async(*(any args)) 0 times2724 behaves like does not send alert notification emails2725 is expected not to receive new(*(any args)) 0 times2726 alerting_setting: true, configured_token: "token", token_input: nil, result: :failure2727 behaves like alerts service responds with an error and takes no actions2728 is expected to eq :unauthorized2729 behaves like does not create an alert management alert2730 is expected not to change `AlertManagement::Alert.count`2731 behaves like does not create a system note for alert2732 is expected not to change `Note.count`2733 behaves like does not process incident issues2734 is expected not to receive perform_async(*(any args)) 0 times2735 behaves like does not send alert notification emails2736 is expected not to receive new(*(any args)) 0 times2737 alerting_setting: false, configured_token: nil, token_input: nil, result: :success2738 behaves like processes one firing and one resolved prometheus alerts2739 creates alerts and returns them in the payload2740 behaves like processes incident issues2741 is expected to be success2742 behaves like sends alert notification emails2743 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2744 alerting_setting: false, configured_token: nil, token_input: "token", result: :failure2745 behaves like alerts service responds with an error and takes no actions2746 is expected to eq :unauthorized2747 behaves like does not create an alert management alert2748 is expected not to change `AlertManagement::Alert.count`2749 behaves like does not create a system note for alert2750 is expected not to change `Note.count`2751 behaves like does not process incident issues2752 is expected not to receive perform_async(*(any args)) 0 times2753 behaves like does not send alert notification emails2754 is expected not to receive new(*(any args)) 0 times2755 with HTTP integration2756 active: :active, token: :valid, result: :success2757 behaves like processes one firing and one resolved prometheus alerts2758 creates alerts and returns them in the payload2759 behaves like processes incident issues2760 is expected to be success2761 behaves like sends alert notification emails2762 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2763 active: :active, token: :invalid, result: :failure2764 behaves like alerts service responds with an error and takes no actions2765 is expected to eq :unauthorized2766 behaves like does not create an alert management alert2767 is expected not to change `AlertManagement::Alert.count`2768 behaves like does not create a system note for alert2769 is expected not to change `Note.count`2770 behaves like does not process incident issues2771 is expected not to receive perform_async(*(any args)) 0 times2772 behaves like does not send alert notification emails2773 is expected not to receive new(*(any args)) 0 times2774 active: :active, token: nil, result: :failure2775 behaves like alerts service responds with an error and takes no actions2776 is expected to eq :unauthorized2777 behaves like does not create an alert management alert2778 is expected not to change `AlertManagement::Alert.count`2779 behaves like does not create a system note for alert2780 is expected not to change `Note.count`2781 behaves like does not process incident issues2782 is expected not to receive perform_async(*(any args)) 0 times2783 behaves like does not send alert notification emails2784 is expected not to receive new(*(any args)) 0 times2785 active: :inactive, token: :valid, result: :failure2786 behaves like alerts service responds with an error and takes no actions2787 is expected to eq :unauthorized2788 behaves like does not create an alert management alert2789 is expected not to change `AlertManagement::Alert.count`2790 behaves like does not create a system note for alert2791 is expected not to change `Note.count`2792 behaves like does not process incident issues2793 is expected not to receive perform_async(*(any args)) 0 times2794 behaves like does not send alert notification emails2795 is expected not to receive new(*(any args)) 0 times2796 active: nil, token: nil, result: :failure2797 behaves like alerts service responds with an error and takes no actions2798 is expected to eq :unauthorized2799 behaves like does not create an alert management alert2800 is expected not to change `AlertManagement::Alert.count`2801 behaves like does not create a system note for alert2802 is expected not to change `Note.count`2803 behaves like does not process incident issues2804 is expected not to receive perform_async(*(any args)) 0 times2805 behaves like does not send alert notification emails2806 is expected not to receive new(*(any args)) 0 times2807 incident settings2808 behaves like processes one firing and one resolved prometheus alerts2809 creates alerts and returns them in the payload2810 behaves like processes incident issues2811 is expected to be success2812 behaves like sends alert notification emails2813 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2814 when incident_management_setting does not exist2815 is expected to be success2816 is expected not to receive new(*(any args)) 0 times2817 is expected not to receive perform_async(*(any args)) 0 times2818 incident_management_setting.send_email is false2819 is expected to be success2820 is expected not to receive new(*(any args)) 0 times2821 incident_management_setting.create_issue is false2822 is expected to be success2823 is expected not to receive perform_async(*(any args)) 0 times2824 process Alert Management alerts2825 with multiple firing alerts and resolving alerts2826 processes Prometheus alerts2827 when payload exceeds max amount of processable alerts2828 with feature flag globally enabled2829 returns 200 but skips processing and logs a warning2830 with feature flag enabled on project2831 returns 200 but skips processing and logs a warning2832 with feature flag enabled on unrelated project2833 returns 200 and process alerts without warnings2834 with feature flag disabled2835 returns 200 and process alerts without warnings2836 with invalid payload2837 when payload is not processable2838 behaves like alerts service responds with an error and takes no actions2839 is expected to eq :unprocessable_entity2840 behaves like does not create an alert management alert2841 is expected not to change `AlertManagement::Alert.count`2842 behaves like does not create a system note for alert2843 is expected not to change `Note.count`2844 behaves like does not process incident issues2845 is expected not to receive perform_async(*(any args)) 0 times2846 behaves like does not send alert notification emails2847 is expected not to receive new(*(any args)) 0 times2848 when the payload is too big2849 behaves like alerts service responds with an error and takes no actions2850 is expected to eq :bad_request2851 behaves like does not create an alert management alert2852 is expected not to change `AlertManagement::Alert.count`2853 behaves like does not create a system note for alert2854 is expected not to change `Note.count`2855 behaves like does not process incident issues2856 is expected not to receive perform_async(*(any args)) 0 times2857 behaves like does not send alert notification emails2858 is expected not to receive new(*(any args)) 0 times2859 .processable?2860 with valid payload2861 is expected to eq true2862 containing unrelated keys2863 is expected to eq true2864 with invalid payload2865 missing_key: "version"2866 is expected to eq false2867 missing_key: "groupKey"2868 is expected to eq false2869 missing_key: "status"2870 is expected to eq false2871 missing_key: "receiver"2872 is expected to eq false2873 missing_key: "groupLabels"2874 is expected to eq false2875 missing_key: "commonLabels"2876 is expected to eq false2877 missing_key: "commonAnnotations"2878 is expected to eq false2879 missing_key: "externalURL"2880 is expected to eq false2881 missing_key: "alerts"2882 is expected to eq false2883 with unsupported version2884 is expected to eq false2885Gitlab::ImportExport::Project::RelationTreeRestorer2886 with legacy reader2887 behaves like import project successfully2888 imported project2889 has the project attributes and relations2890 with logging of relations creation2891 logs top-level relation creation2892 with ndjson reader2893 behaves like import project successfully2894 imported project2895 has the project attributes and relations2896 when inside a group2897 behaves like import project successfully2898 imported project2899 has the project attributes and relations2900 with invalid relations2901 logs the invalid relation and its errors2902gitlab:usage data take tasks2903 dump_sql_in_yaml2904 dumps SQL queries in yaml format2905 dump_sql_in_json2906 dumps SQL queries in json format2907Banzai::Filter::References::MilestoneReferenceFilter2908 requires project context2909 group context2910 when project milestone2911 links to a valid reference2912 ignores internal references2913 when group milestone2914 ignores internal references2915 for subgroups2916 links to a valid reference of subgroup and group milestones2917 when referencing both project and group milestones2918 links to valid references2919 when milestone is open2920 project milestones2921 ignores valid references contained inside 'pre' element2922 ignores valid references contained inside 'code' element2923 ignores valid references contained inside 'a' element2924 ignores valid references contained inside 'style' element2925 includes default classes2926 includes a data-project attribute2927 includes a data-milestone attribute2928 supports an :only_path context2929 behaves like Integer-based references2930 links to a valid reference2931 links with adjacent text2932 ignores invalid milestone IIDs2933 behaves like String-based single-word references2934 links to a valid reference2935 links with adjacent text2936 links with adjacent html tags2937 ignores invalid milestone names2938 behaves like String-based multi-word references in quotes2939 links to a valid reference2940 links with adjacent text2941 ignores invalid milestone names2942 behaves like referencing a milestone in a link href2943 links to a valid reference2944 links with adjacent text2945 includes a data-project attribute2946 includes a data-milestone attribute2947 behaves like linking to a milestone as the entire link2948 replaces the link text with the milestone reference2949 includes a data-project attribute2950 includes a data-milestone attribute2951 behaves like cross-project / cross-namespace complete reference2952 points to referenced project milestone page2953 link has valid text2954 has valid text2955 escapes the name attribute2956 behaves like cross-project / same-namespace complete reference2957 points to referenced project milestone page2958 link has valid text2959 has valid text2960 escapes the name attribute2961 behaves like cross project shorthand reference2962 points to referenced project milestone page2963 link has valid text2964 has valid text2965 escapes the name attribute2966 behaves like references with HTML entities2967 links to a valid reference2968 ignores invalid milestone names and escapes entities2969 behaves like HTML text with references2970 preserves escaped HTML text and adds valid references2971 preserves escaped HTML text if there are no valid references2972 group milestones2973 ignores valid references contained inside 'pre' element2974 ignores valid references contained inside 'code' element2975 ignores valid references contained inside 'a' element2976 ignores valid references contained inside 'style' element2977 includes default classes2978 includes a data-project attribute2979 includes a data-milestone attribute2980 supports an :only_path context2981 does not support references by IID2982 does not support references by link2983 does not support cross-project references2984 supports parent group references2985 behaves like String-based single-word references2986 links to a valid reference2987 links with adjacent text2988 links with adjacent html tags2989 ignores invalid milestone names2990 behaves like String-based multi-word references in quotes2991 links to a valid reference2992 links with adjacent text2993 ignores invalid milestone names2994 behaves like referencing a milestone in a link href2995 links to a valid reference2996 links with adjacent text2997 includes a data-project attribute2998 includes a data-milestone attribute2999 behaves like references with HTML entities3000 links to a valid reference3001 ignores invalid milestone names and escapes entities3002 behaves like HTML text with references3003 preserves escaped HTML text and adds valid references3004 preserves escaped HTML text if there are no valid references3005 when milestone is closed3006 project milestones3007 ignores valid references contained inside 'pre' element3008 ignores valid references contained inside 'code' element3009 ignores valid references contained inside 'a' element3010 ignores valid references contained inside 'style' element3011 includes default classes3012 includes a data-project attribute3013 includes a data-milestone attribute3014 supports an :only_path context3015 behaves like Integer-based references3016 links to a valid reference3017 links with adjacent text3018 ignores invalid milestone IIDs3019 behaves like String-based single-word references3020 links to a valid reference3021 links with adjacent text3022 links with adjacent html tags3023 ignores invalid milestone names3024 behaves like String-based multi-word references in quotes3025 links to a valid reference3026 links with adjacent text3027 ignores invalid milestone names3028 behaves like referencing a milestone in a link href3029 links to a valid reference3030 links with adjacent text3031 includes a data-project attribute3032 includes a data-milestone attribute3033 behaves like linking to a milestone as the entire link3034 replaces the link text with the milestone reference3035 includes a data-project attribute3036 includes a data-milestone attribute3037 behaves like cross-project / cross-namespace complete reference3038 points to referenced project milestone page3039 link has valid text3040 has valid text3041 escapes the name attribute3042 behaves like cross-project / same-namespace complete reference3043 points to referenced project milestone page3044 link has valid text3045 has valid text3046 escapes the name attribute3047 behaves like cross project shorthand reference3048 points to referenced project milestone page3049 link has valid text3050 has valid text3051 escapes the name attribute3052 behaves like references with HTML entities3053 links to a valid reference3054 ignores invalid milestone names and escapes entities3055 behaves like HTML text with references3056 preserves escaped HTML text and adds valid references3057 preserves escaped HTML text if there are no valid references3058 group milestones3059 ignores valid references contained inside 'pre' element3060 ignores valid references contained inside 'code' element3061 ignores valid references contained inside 'a' element3062 ignores valid references contained inside 'style' element3063 includes default classes3064 includes a data-project attribute3065 includes a data-milestone attribute3066 supports an :only_path context3067 does not support references by IID3068 does not support references by link3069 does not support cross-project references3070 supports parent group references3071 behaves like String-based single-word references3072 links to a valid reference3073 links with adjacent text3074 links with adjacent html tags3075 ignores invalid milestone names3076 behaves like String-based multi-word references in quotes3077 links to a valid reference3078 links with adjacent text3079 ignores invalid milestone names3080 behaves like referencing a milestone in a link href3081 links to a valid reference3082 links with adjacent text3083 includes a data-project attribute3084 includes a data-milestone attribute3085 behaves like references with HTML entities3086 links to a valid reference3087 ignores invalid milestone names and escapes entities3088 behaves like HTML text with references3089 preserves escaped HTML text and adds valid references3090 preserves escaped HTML text if there are no valid references3091 checking N+13092 does not have N+1 per multiple references per project3093 has N+1 for multiple unique project/group references3094ResourceMilestoneEvent3095 behaves like a resource event3096 importable3097 is expected to respond to #importing?3098 is expected to respond to #imported?3099 validations3100 is expected not to allow :user to be ‹nil›3101 when importing3102 is expected to allow :user to be ‹nil›3103 associations3104 is expected to belong to user required: false3105 .created_after3106 returns the expected events3107 returns no events if time is after last record time3108 behaves like a resource event for issues3109 associations3110 is expected to belong to issue required: false3111 .by_issue3112 returns the expected records for an issue with events3113 returns the expected records for an issue with no events3114 .by_issue_ids3115 returns the expected events3116 .by_created_at_earlier_or_equal_to3117 returns the expected events3118 returns the expected events3119 #issuable3120 returns the expected issuable3121 behaves like a resource event for merge requests3122 associations3123 is expected to belong to merge_request required: false3124 .by_merge_request3125 returns the expected records for an issue with events3126 returns the expected records for an issue with no events3127 #issuable3128 returns the expected issuable3129 behaves like having unique enum values3130 has unique values in "action"3131 has unique values in "state"3132 behaves like timebox resource event validations3133 validations3134 when issue and merge_request are both nil3135 is expected not to be valid3136 when issue and merge_request are both set3137 is expected not to be valid3138 when issue is set3139 is expected to be valid3140 when merge_request is set3141 is expected to be valid3142 behaves like timebox resource event states3143 states3144 supports state opened for issue3145 supports state closed for issue3146 supports state opened for merge_request3147 supports state closed for merge_request3148 supports state merged for merge_request3149 supports state locked for merge_request3150 behaves like timebox resource event actions3151 #added?3152 behaves like queryable timebox action resource event3153 is true for action add on issue3154 is false for action remove on issue3155 is true for action add on merge_request3156 is false for action remove on merge_request3157 #removed?3158 behaves like queryable timebox action resource event3159 is false for action add on issue3160 is true for action remove on issue3161 is false for action add on merge_request3162 is true for action remove on merge_request3163 behaves like timebox resource tracks issue metrics3164 #issue_usage_metrics3165 tracks usage for issues3166 does not track usage for merge requests3167 associations3168 is expected to belong to milestone required: false3169 #milestone_title3170 returns the expected title3171 when milestone is nil3172 returns nil3173 #milestone_parent3174 when milestone parent is project3175 returns the expected parent3176 when milestone parent is group3177 returns the expected parent3178 when milestone is nil3179 returns nil3180Boards::Lists::UpdateService3181 #execute3182 when position parameter is present3183 for projects3184 behaves like moving list3185 when user can admin list3186 when the new position is valid3187 calls Lists::MoveService to update list position3188 returns a success response3189 when the new position is invalid3190 returns error response3191 when user cannot admin list3192 does not call Lists::MoveService to update list position3193 returns an error response3194 for groups3195 behaves like moving list3196 when user can admin list3197 when the new position is valid3198 calls Lists::MoveService to update list position3199 returns a success response3200 when the new position is invalid3201 returns error response3202 when user cannot admin list3203 does not call Lists::MoveService to update list position3204 returns an error response3205 when collapsed parameter is present3206 for projects3207 behaves like updating list preferences3208 when user can read list3209 updates list preference for user3210 when user cannot read list3211 does not update list preference for user3212 for groups3213 behaves like updating list preferences3214 when user can read list3215 updates list preference for user3216 when user cannot read list3217 does not update list preference for user3218 when position and collapsed are both present3219 for projects3220 behaves like moving list3221 when user can admin list3222 when the new position is valid3223 calls Lists::MoveService to update list position3224 returns a success response3225 when the new position is invalid3226 returns error response3227 when user cannot admin list3228 does not call Lists::MoveService to update list position3229 returns an error response3230 behaves like updating list preferences3231 when user can read list3232 updates list preference for user3233 when user cannot read list3234 does not update list preference for user3235 for groups3236 behaves like moving list3237 when user can admin list3238 when the new position is valid3239 calls Lists::MoveService to update list position3240 returns a success response3241 when the new position is invalid3242 returns error response3243 when user cannot admin list3244 does not call Lists::MoveService to update list position3245 returns an error response3246 behaves like updating list preferences3247 when user can read list3248 updates list preference for user3249 when user cannot read list3250 does not update list preference for user3251Gitlab::ImportExport::MembersMapper3252 map members3253 when importable is Project3254 includes the exported user ID in the map3255 maps a member3256 defaults to importer member if it does not exist3257 has invited members with no user3258 maps created_by_id to user on new instance3259 replaced user_id with user_id from new instance3260 adds users to project members3261 maps an owner as a maintainer3262 logging3263 logs member addition3264 when exporter member is invalid3265 logs member addition failure3266 user is not an admin3267 does not map a member3268 defaults to importer member if it does not exist3269 chooses the one with an email3270 maps the member that has a matching email3271 when user has email exported3272 maps a member3273 importer same as group member3274 maps the project member3275 maps the project member if it already exists3276 importing group members3277 maps the importer3278 maps the group member3279 when importer mapping fails3280 includes importer specific error message3281 when importer is not an admin3282 and the imported project is part of a group3283 behaves like it fetches the access level from parent group3284 and resolves it correctly3285 behaves like it fetches the access level from parent group3286 and resolves it correctly3287 behaves like it fetches the access level from parent group3288 and resolves it correctly3289 and the imported group is part of another group3290 behaves like it fetches the access level from parent group3291 and resolves it correctly3292 behaves like it fetches the access level from parent group3293 and resolves it correctly3294 behaves like it fetches the access level from parent group3295 and resolves it correctly3296 when importable is Group3297 includes the exported user ID in the map3298 maps a member3299 defaults to importer member if it does not exist3300 has invited members with no user3301 maps created_by_id to user on new instance3302 replaced user_id with user_id from new instance3303 does not lower owner access level3304 logging3305 logs member addition3306 when exporter member is invalid3307 logs member addition failure3308 user is not an admin3309 does not map a member3310 defaults to importer member if it does not exist3311 chooses the one with an email3312 maps the member that has a matching email3313 when user has email exported3314 maps a member3315Gitlab::Cleanup::ProjectUploads3316 #run!3317 orphaned project upload file3318 when an upload record matching the secret and filename is found3319 when the project is still in legacy storage3320 behaves like fixes the file3321 behaves like moves the file3322 when dry_run is false3323 behaves like a real run3324 moves the file to its proper location3325 logs action as done3326 when dry_run is nil3327 behaves like a real run3328 moves the file to its proper location3329 logs action as done3330 when dry_run is true3331 behaves like a dry run3332 does not move the file3333 logs action as able to be done3334 with dry_run not specified3335 behaves like a dry run3336 does not move the file3337 logs action as able to be done3338 when the project was moved to hashed storage3339 behaves like fixes the file3340 behaves like moves the file3341 when dry_run is false3342 behaves like a real run3343 moves the file to its proper location3344 logs action as done3345 when dry_run is nil3346 behaves like a real run3347 moves the file to its proper location3348 logs action as done3349 when dry_run is true3350 behaves like a dry run3351 does not move the file3352 logs action as able to be done3353 with dry_run not specified3354 behaves like a dry run3355 does not move the file3356 logs action as able to be done3357 when the project is missing (the upload *record* is an orphan)3358 behaves like moves the file to lost and found3359 behaves like moves the file3360 when dry_run is false3361 behaves like a real run3362 moves the file to its proper location3363 logs action as done3364 when dry_run is nil3365 behaves like a real run3366 moves the file to its proper location3367 logs action as done3368 when dry_run is true3369 behaves like a dry run3370 does not move the file3371 logs action as able to be done3372 with dry_run not specified3373 behaves like a dry run3374 does not move the file3375 logs action as able to be done3376 when the file should be in object storage3377 when the file otherwise has the correct local path3378 does not move the file3379 when the file has the wrong local path3380 behaves like moves the file to lost and found3381 behaves like moves the file3382 when dry_run is false3383 behaves like a real run3384 moves the file to its proper location3385 logs action as done3386 when dry_run is nil3387 behaves like a real run3388 moves the file to its proper location3389 logs action as done3390 when dry_run is true3391 behaves like a dry run3392 does not move the file3393 logs action as able to be done3394 with dry_run not specified3395 behaves like a dry run3396 does not move the file3397 logs action as able to be done3398 when a matching upload record can not be found3399 when the file path fits the known pattern3400 behaves like moves the file to lost and found3401 behaves like moves the file3402 when dry_run is false3403 behaves like a real run3404 moves the file to its proper location3405 logs action as done3406 when dry_run is nil3407 behaves like a real run3408 moves the file to its proper location3409 logs action as done3410 when dry_run is true3411 behaves like a dry run3412 does not move the file3413 logs action as able to be done3414 with dry_run not specified3415 behaves like a dry run3416 does not move the file3417 logs action as able to be done3418 when the file path does not fit the known pattern3419 behaves like moves the file to lost and found3420 behaves like moves the file3421 when dry_run is false3422 behaves like a real run3423 moves the file to its proper location3424 logs action as done3425 when dry_run is nil3426 behaves like a real run3427 moves the file to its proper location3428 logs action as done3429 when dry_run is true3430 behaves like a dry run3431 does not move the file3432 logs action as able to be done3433 with dry_run not specified3434 behaves like a dry run3435 does not move the file3436 logs action as able to be done3437 non-orphaned project upload file3438 does not move the file3439 ignorable cases3440 does not move any non-project (FileUploader) uploads3441 does not move any uploads in tmp (which would interfere with ongoing upload activity)3442 when the file is already in hashed storage3443 does not move even an orphan file3444MergeRequests::AfterCreateService3445 #execute3446 creates a merge request open event3447 calls the merge request activity counter3448 creates a new merge request notification3449 writes diffs to the cache3450 creates cross references3451 creates a pipeline and updates the HEAD pipeline3452 increments the usage data counter of create event3453 tracks merge request creation in usage data3454 calls MergeRequests::LinkLfsObjectsService#execute3455 behaves like records an onboarding progress action3456 is expected to receive execute({:action=>:merge_request_created}) 1 time3457 when merge request is in unchecked state3458 does not change its state3459 when merge request is in preparing state3460 checks for mergeability3461 when preparing for mergeability fails3462 does not mark the merge request as unchecked3463 when preparing merge request fails3464 still checks for mergeability3465 with a milestone3466 deletes the cache key for milestone merge request counter3467 todos3468 does not creates todos3469 when merge request is assigned to someone3470 creates a todo for new assignee3471 when reviewer is assigned3472 creates a todo for new reviewer3473 when saving references to issues that the created merge request closes3474 creates a `MergeRequestsClosingIssues` record for each issue3475PersonalFileUploader3476 #upload_paths3477 builds correct paths for both local and remote storage3478 object_store is LOCAL3479 behaves like builds correct paths3480 #store_dir3481 behaves like matches the method pattern3482 is expected to match /uploads\/-\/system\/personal_snippet\/\d+\/\h+/3483 #cache_dir3484 behaves like matches the method pattern3485 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3486 #work_dir3487 behaves like matches the method pattern3488 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3489 #upload_path3490 behaves like matches the method pattern3491 is expected to match /\h+\/\S+/3492 #relative_path3493 is relative (PENDING: Path not set, skipping.)3494 .absolute_path3495 behaves like matches the method pattern3496 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/personal_snippet\/\d+\/\h+\/\S+$/3497 .base_dir3498 behaves like matches the method pattern3499 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3500 path traversal exploits3501 throws an exception3502 behaves like #base_dir3503 is prefixed with uploads/-/system3504 behaves like #to_h3505 is correct3506 object_store is REMOTE3507 behaves like builds correct paths3508 #store_dir3509 behaves like matches the method pattern3510 is expected to match /\d+\/\h+/3511 #cache_dir3512 behaves like matches the method pattern3513 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3514 #work_dir3515 behaves like matches the method pattern3516 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3517 #upload_path3518 behaves like matches the method pattern3519 is expected to match /^personal_snippet\/\d+\/\h+\/<filename>/3520 #relative_path3521 is relative (PENDING: Path not set, skipping.)3522 .absolute_path3523 behaves like matches the method pattern3524 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3525 .base_dir3526 behaves like matches the method pattern3527 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3528 path traversal exploits3529 throws an exception3530 behaves like #base_dir3531 is prefixed with uploads/-/system3532 behaves like #to_h3533 is correct3534 #migrate!3535 behaves like migrates3536 returns corresponding file type3537 does nothing when migrating to the current store3538 migrate to the specified store3539 removes the original file after the migration3540 can access to the original file during migration3541 when migrate! is not occupied by another process3542 executes migrate!3543 executes use_file3544 when migrate! is occupied by another process3545 does not execute migrate!3546 does not execute use_file3547 migration is unsuccessful3548 when the store is not supported3549 does not update the object_store3550 does not delete the original file3551 upon a fog failure3552 does not update the object_store3553 does not delete the original file3554 upon a database failure3555 does not update the object_store3556 does not delete the original file3557 behaves like migrates3558 returns corresponding file type3559 does nothing when migrating to the current store3560 migrate to the specified store3561 removes the original file after the migration3562 can access to the original file during migration3563 when migrate! is not occupied by another process3564 executes migrate!3565 executes use_file3566 when migrate! is occupied by another process3567 does not execute migrate!3568 does not execute use_file3569 migration is unsuccessful3570 when the store is not supported3571 does not update the object_store3572 does not delete the original file3573 upon a fog failure3574 does not update the object_store3575 does not delete the original file3576 upon a database failure3577 does not update the object_store3578 does not delete the original file3579Terraform::StateVersion3580 is expected to be a kind of FileStoreMounter3581 is expected to be a kind of EachBatch3582 is expected to belong to terraform_state required: true3583 is expected to belong to created_by_user class_name => User optional: true3584 is expected to belong to build class_name => Ci::Build optional: true3585 scopes3586 .ordered_by_version_desc3587 is expected to eq [5, 4, 3, 2, 1]3588 .with_files_stored_locally3589 includes states with local storage3590 excludes states without local storage3591 file storage3592 #file3593 returns the saved file3594 #file_store3595 returns the value3596 #update_file_store3597 when file is stored in object storage3598 sets file_store to remote3599 when file is stored locally3600 sets file_store to local3601 behaves like cleanup by a loose foreign key3602 cleans up (delete or nullify) the model3603GroupProjectsFinder3604 with a group member current user3605 only shared3606 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, and #<Project id:1135 namespace990/3>>3607 with ancestor groups projects3608 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, and #<Project id:1135 namespace990/3>>3609 with subgroups projects3610 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, and #<Project id:1135 namespace990/3>>3611 only owned3612 with subgroups projects3613 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1138 group144/group145/group146/6>>, and #<Project id:1139 group144/group145/group146/7>>3614 with ancestor group projects3615 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1140 group144/8>>, #<Project id:1141 group144/9>>, and #<Project id:1142 group144/10>>3616 with ancestor groups and subgroups projects3617 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1140 group144/8>>, #<Project id:1141 group144/9>>, #<Project id:1142 group144/10>>, #<Project id:1139 group144/group145/group146/7>>, and #<Project id:1138 group144/group145/group146/6>>3618 without subgroups and ancestor group projects3619 is expected to contain exactly #<Project id:1134 group144/group145/2>> and #<Project id:1133 group144/group145/1>>3620 when user is member only of a subgroup3621 with ancestor groups and subgroups projects3622 does not return parent group projects3623 all3624 with subgroups projects3625 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1138 group144/group145/group146/6>>, and #<Project id:1139 group144/group145/group146/7>>3626 without subgroups projects3627 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, #<Project id:1134 group144/group145/2>>, and #<Project id:1133 group144/group145/1>>3628 with min access level3629 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, #<Project id:1134 group144/group145/2>>, and #<Project id:1133 group144/group145/1>>3630 without group member current_user3631 only shared3632 without external user3633 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, and #<Project id:1135 namespace990/3>>3634 with external user3635 is expected to contain exactly #<Project id:1136 namespace991/4>> and #<Project id:1135 namespace990/3>>3636 only owned3637 without external user3638 with subgroups projects3639 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1138 group144/group145/group146/6>>, and #<Project id:1139 group144/group145/group146/7>>3640 with ancestor groups projects3641 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1140 group144/8>>, and #<Project id:1141 group144/9>>3642 with ancestor groups and subgroups projects3643 is expected to contain exactly #<Project id:1134 group144/group145/2>>, #<Project id:1133 group144/group145/1>>, #<Project id:1141 group144/9>>, #<Project id:1140 group144/8>>, #<Project id:1139 group144/group145/group146/7>>, and #<Project id:1138 group144/group145/group146/6>>3644 without subgroups projects3645 is expected to contain exactly #<Project id:1134 group144/group145/2>> and #<Project id:1133 group144/group145/1>>3646 with external user3647 with subgroups projects3648 is expected to contain exactly #<Project id:1133 group144/group145/1>> and #<Project id:1138 group144/group145/group146/6>>3649 with ancestor groups projects3650 is expected to contain exactly #<Project id:1133 group144/group145/1>> and #<Project id:1140 group144/8>>3651 with ancestor groups and subgroups projects3652 is expected to contain exactly #<Project id:1133 group144/group145/1>>, #<Project id:1140 group144/8>>, and #<Project id:1138 group144/group145/group146/6>>3653 without subgroups projects3654 is expected to eq [#<Project id:1133 group144/group145/1>>]3655 all3656 with subgroups projects3657 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, #<Project id:1133 group144/group145/1>>, and #<Project id:1138 group144/group145/group146/6>>3658 without subgroups projects3659 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, and #<Project id:1133 group144/group145/1>>3660 with an admin current user3661 when admin mode is enabled3662 only shared3663 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, and #<Project id:1135 namespace990/3>>3664 only owned3665 is expected to contain exactly #<Project id:1134 group144/group145/2>> and #<Project id:1133 group144/group145/1>>3666 all3667 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1136 namespace991/4>>, #<Project id:1135 namespace990/3>>, #<Project id:1134 group144/group145/2>>, and #<Project id:1133 group144/group145/1>>3668 when admin mode is disabled3669 only shared3670 is expected to contain exactly #<Project id:1137 namespace992/5>> and #<Project id:1135 namespace990/3>>3671 only owned3672 is expected to contain exactly #<Project id:1133 group144/group145/1>>3673 all3674 is expected to contain exactly #<Project id:1137 namespace992/5>>, #<Project id:1135 namespace990/3>>, and #<Project id:1133 group144/group145/1>>3675 no user3676 only shared3677 is expected to contain exactly #<Project id:1137 namespace992/5>> and #<Project id:1135 namespace990/3>>3678 only owned3679 with subgroups projects3680 is expected to contain exactly #<Project id:1133 group144/group145/1>> and #<Project id:1138 group144/group145/group146/6>>3681 without subgroups projects3682 is expected to eq [#<Project id:1133 group144/group145/1>>]3683 feature availability3684 without issues and merge request enabled3685 is expected to contain exactly #<Project id:1133 group144/group145/1>>, #<Project id:1135 namespace990/3>>, #<Project id:1137 namespace992/5>>, #<Project id:1144 namespace999/9>>, and #<Project id:1145 namespace1000/10>>3686 with issues enabled3687 is expected to contain exactly #<Project id:1133 group144/group145/1>>, #<Project id:1135 namespace990/3>>, #<Project id:1137 namespace992/5>>, and #<Project id:1147 namespace1002/10>>3688 with merge request enabled3689 is expected to contain exactly #<Project id:1133 group144/group145/1>>, #<Project id:1135 namespace990/3>>, #<Project id:1137 namespace992/5>>, and #<Project id:1148 namespace1003/9>>3690 with issues and merge request enabled3691 is expected to contain exactly #<Project id:1133 group144/group145/1>>, #<Project id:1135 namespace990/3>>, and #<Project id:1137 namespace992/5>>3692 limiting3693 without limiting3694 returns all projects3695 with limiting3696 returns only the number of projects specified by the limit3697Gitlab::Diff::HighlightCache3698 #decorate3699 does not calculate highlighting when reading from cache3700 assigns highlighted diff lines to the DiffFile3701 assigns highlighted diff lines which rich_text are HTML-safe3702 when diff_file is uncached due to default_max_patch_bytes change3703 manually writes highlighted lines to the cache3704 assigns highlighted diff lines to the DiffFile3705 #write_if_empty3706 updates memory usage metrics if Redis version >= 43707 does not update memory usage metrics if Redis version < 43708 behaves like caches missing entries3709 filters the key/value list of entries to be caches for each invocation3710 reads from cache once3711 different diff_collections for the same diffable3712 writes an uncached files in the collection to the same redis hash3713 when cache initialized with MergeRequestDiffBatch3714 behaves like caches missing entries3715 filters the key/value list of entries to be caches for each invocation3716 reads from cache once3717 #write_to_redis_hash3718 creates or updates a Redis hash3719 when diff contains unsupported characters3720 does not update the cache3721 #clear3722 clears cache3723 GZip usage3724 uses ActiveSupport::Gzip when reading from the cache3725 uses ActiveSupport::Gzip to compress data when writing to cache3726 metrics3727 observes :gitlab_redis_diff_caching_memory_usage_bytes3728 #key3729 returns cache key3730 when the `use_marker_ranges` feature flag is disabled3731 returns the original version of the cache3732 when the `diff_line_syntax_highlighting` feature flag is disabled3733 returns the original version of the cache3734UserRecentEventsFinder3735 when the optimized_followed_users_queries FF is on3736 behaves like UserRecentEventsFinder examples3737 #execute3738 does not include the events if the user cannot read cross project3739 when profile is public3740 returns all the events3741 when profile is private3742 returns no event3743 events from multiple users3744 includes events from all users3745 does not include events from users with private profile3746 selected events3747 event_filter: #<EventFilter:0x00007f234e81c388 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }3748 only returns selected events from all users (id DESC)3749 event_filter: #<EventFilter:0x00007f234e81c090 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }3750 only returns selected events from all users (id DESC)3751 event_filter: #<EventFilter:0x00007f234e813e40 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }3752 only returns selected events from all users (id DESC)3753 event_filter: #<EventFilter:0x00007f234e813c38 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }3754 only returns selected events from all users (id DESC)3755 event_filter: #<EventFilter:0x00007f234e813a58 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }3756 only returns selected events from all users (id DESC)3757 event_filter: #<EventFilter:0x00007f234e813878 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }3758 only returns selected events from all users (id DESC)3759 event_filter: #<EventFilter:0x00007f234e813698 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }3760 only returns selected events from all users (id DESC)3761 with pagination params3762 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] }3763 returns paginated events sorted by id (DESC)3764 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }3765 returns paginated events sorted by id (DESC)3766 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }3767 returns paginated events sorted by id (DESC)3768 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }3769 returns paginated events sorted by id (DESC)3770 filter activity events3771 includes all events3772 only includes push events3773 only includes merge events3774 only includes issue events3775 only includes comments events3776 only includes wiki events3777 only includes design events3778 only includes team events3779 when unknown filter is given3780 includes returns all events3781 issue activity events3782 includes all issue related events3783 limits3784 when limit is not set3785 returns events limited to DEFAULT_LIMIT3786 when limit is set3787 returns events limited to specified limit3788 when limit is set to a number that exceeds maximum limit3789 returns events limited to MAX_LIMIT3790 when the optimized_followed_users_queries FF is off3791 behaves like UserRecentEventsFinder examples3792 #execute3793 does not include the events if the user cannot read cross project3794 when profile is public3795 returns all the events3796 when profile is private3797 returns no event3798 events from multiple users3799 includes events from all users3800 does not include events from users with private profile3801 selected events3802 event_filter: #<EventFilter:0x00007f234e529130 @filter="push">, ordered_expected_events: lazy { [push_event1, push_event2] }3803 only returns selected events from all users (id DESC)3804 event_filter: #<EventFilter:0x00007f234e528de8 @filter="merged">, ordered_expected_events: lazy { [merge_event1, merge_event2] }3805 only returns selected events from all users (id DESC)3806 event_filter: #<EventFilter:0x00007f234e528c08 @filter="comments">, ordered_expected_events: lazy { [comment_event1, comment_event2, comment_event3] }3807 only returns selected events from all users (id DESC)3808 event_filter: #<EventFilter:0x00007f234e528a28 @filter="team">, ordered_expected_events: lazy { [private_event, internal_event, public_event, private_event_second_user, internal_event_second_user, public_event_second_user] }3809 only returns selected events from all users (id DESC)3810 event_filter: #<EventFilter:0x00007f234e528820 @filter="issue">, ordered_expected_events: lazy { [issue_event1, issue_event2, issue_event3] }3811 only returns selected events from all users (id DESC)3812 event_filter: #<EventFilter:0x00007f234e528578 @filter="wiki">, ordered_expected_events: lazy { [wiki_event1, wiki_event2] }3813 only returns selected events from all users (id DESC)3814 event_filter: #<EventFilter:0x00007f234e528398 @filter="designs">, ordered_expected_events: lazy { [design_event1, design_event2] }3815 only returns selected events from all users (id DESC)3816 with pagination params3817 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] }3818 returns paginated events sorted by id (DESC)3819 limit: 2, offset: nil, ordered_expected_events: lazy { [public_event_second_user, internal_event_second_user] }3820 returns paginated events sorted by id (DESC)3821 limit: nil, offset: 4, ordered_expected_events: lazy { [internal_event, private_event] }3822 returns paginated events sorted by id (DESC)3823 limit: 2, offset: 2, ordered_expected_events: lazy { [private_event_second_user, public_event] }3824 returns paginated events sorted by id (DESC)3825 filter activity events3826 includes all events3827 only includes push events3828 only includes merge events3829 only includes issue events3830 only includes comments events3831 only includes wiki events3832 only includes design events3833 only includes team events3834 when unknown filter is given3835 includes returns all events3836 issue activity events3837 includes all issue related events3838 limits3839 when limit is not set3840 returns events limited to DEFAULT_LIMIT3841 when limit is set3842 returns events limited to specified limit3843 when limit is set to a number that exceeds maximum limit3844 returns events limited to MAX_LIMIT3845Ci::Processable3846 delegations3847 is expected to delegate #merge_request? to the #pipeline object3848 is expected to delegate #merge_request_ref? to the #pipeline object3849 is expected to delegate #legacy_detached_merge_request_pipeline? to the #pipeline object3850 #clone3851 when the processable to be cloned is a bridge3852 behaves like clones the processable3853 creates a new processable that represents the old processable3854 clone accessors3855 clones the processable attributes3856 clones only the needs attributes3857 when the processable has protected: nil3858 clones the protected job attribute3859 reject accessors3860 does not clone rejected attributes3861 when the processable to be cloned is a build3862 has the correct number of known attributes3863 behaves like clones the processable3864 creates a new processable that represents the old processable3865 clone accessors3866 clones the processable attributes3867 clones only the needs attributes3868 when the processable has protected: nil3869 clones the protected job attribute3870 reject accessors3871 does not clone rejected attributes3872 when it has a deployment3873 persists the expanded environment name3874 when it has a dynamic environment3875 re-uses the previous persisted environment3876 when the processable has job variables3877 only clones the internal job variables3878 #retryable3879 when the processable is a bridge3880 behaves like retryable processable3881 when processable is successful3882 is expected to be retryable3883 when processable is failed3884 is expected to be retryable3885 when processable is canceled3886 is expected to be retryable3887 when the processable is a build3888 when the processable is retryable3889 behaves like retryable processable3890 when processable is successful3891 is expected to be retryable3892 when processable is failed3893 is expected to be retryable3894 when processable is canceled3895 is expected to be retryable3896 when deployment is rejected3897 is expected not to be retryable3898 when build is waiting for deployment approval3899 is expected not to be retryable3900 when the processable is non-retryable3901 behaves like non-retryable processable3902 when processable is skipped3903 is expected not to be retryable3904 when processable is degenerated3905 is expected not to be retryable3906 when a canceled processable has been retried already3907 is expected not to be retryable3908 when processable is running3909 is expected not to be retryable3910 #aggregated_needs_names3911 with created status3912 with needs3913 returns all processables3914 returns all needs3915 without needs3916 returns all processables3917 returns empty needs3918 validate presence of scheduling_type3919 importing: false, should_validate: true3920 on create3921 validates presence3922 on update3923 is expected not to validate that :scheduling_type cannot be empty/falsy3924 importing: true, should_validate: false3925 on create3926 validates presence3927 on update3928 is expected not to validate that :scheduling_type cannot be empty/falsy3929 .populate_scheduling_type!3930 populates scheduling_type of processables3931 does not affect processables from other pipelines3932 #needs_attributes3933 with needs3934 returns all needs attributes3935 without needs3936 is expected to be empty3937 state transition with resource group3938 when build status is created3939 is waiting for resource when build is enqueued3940 when build is waiting for resource3941 is enqueued when build requests resource3942 releases a resource when build finished3943 re-checks the resource group even if the processable does not retain a resource3944 when build has prerequisites3945 is preparing when build is enqueued3946 when there are no available resources3947 stays as waiting for resource when build requests resource3948MergeRequests::FfMergeService3949 #execute3950 valid params3951 does not create merge commit3952 keeps the merge request valid3953 updates the merge request to merged3954 sends email to user2 about merge of new merge_request3955 creates resource event about merge_request merge3956 does not update squash_commit_sha if it is not a squash3957 updates squash_commit_sha if it is a squash3958 error handling3959 logs and saves error if there is an exception3960 logs and saves error if there is an PreReceiveError exception3961 does not update squash_commit_sha if squash merge is not successful3962Projects::UpdateRepositoryStorageService3963 #execute3964 without wiki and design repository3965 when the move succeeds3966 moves the repository to the new storage and unmarks the repository as read-only3967 when the filesystems are the same3968 updates the database without trying to move the repostory3969 when the move fails3970 unmarks the repository as read-only without updating the repository storage3971 when the cleanup fails3972 sets the correct state3973 when the checksum does not match3974 unmarks the repository as read-only without updating the repository storage3975 when a object pool was joined3976 leaves the pool3977 when the repository move is finished3978 is idempotent3979 when the repository move is failed3980 is idempotent3981 project with no repositories3982 updates the database3983 with wiki repository3984 when the move succeeds3985 moves the project and its wiki repository to the new storage and unmarks the repository as read-only3986 :repack_after_shard_migration feature flag disabled3987 does not enqueue a GC run3988 :repack_after_shard_migration feature flag enabled3989 does not enqueue a GC run if housekeeping is disabled3990 enqueues a GC run3991 when the filesystems are the same3992 updates the database without trying to move the repostory3993 when the move of the wiki repository fails3994 unmarks the repository as read-only without updating the repository storage3995 when the cleanup of the wiki repository fails3996 sets the correct state3997 when the checksum of the wiki repository does not match3998 unmarks the repository as read-only without updating the repository storage3999 with design repository4000 when the move succeeds4001 moves the project and its design repository to the new storage and unmarks the repository as read-only4002 :repack_after_shard_migration feature flag disabled4003 does not enqueue a GC run4004 :repack_after_shard_migration feature flag enabled4005 does not enqueue a GC run if housekeeping is disabled4006 enqueues a GC run4007 when the filesystems are the same4008 updates the database without trying to move the repostory4009 when the move of the design repository fails4010 unmarks the repository as read-only without updating the repository storage4011 when the cleanup of the design repository fails4012 sets the correct state4013 when the checksum of the design repository does not match4014 unmarks the repository as read-only without updating the repository storage4015Gitlab::Diff::FileCollection::MergeRequestDiffBatch4016 initialize4017 memoizes pagination_data4018 #diff_files4019 returns paginated diff files4020 returns a valid instance of a DiffCollection4021 first page4022 returns correct diff files4023 another page4024 returns correct diff files4025 nil batch_page4026 returns correct diff files4027 nil batch_size4028 returns correct diff files4029 invalid page4030 returns correct diff files4031 last page4032 returns correct diff files4033 behaves like unfoldable diff4034 calls Gitlab::Diff::File#unfold_diff_lines with correct position4035 behaves like diff statistics4036 when include_stats is true4037 Repository#diff_stats is called4038 Gitlab::Diff::File is initialized with diff stats4039 when should not request diff stats4040 Repository#diff_stats is not called4041 behaves like cacheable diff collection4042 #write_cache4043 calls Gitlab::Diff::HighlightCache#write_if_empty4044 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats4045 #clear_cache4046 calls Gitlab::Diff::HighlightCache#clear4047 calls Gitlab::Diff::StatsCache#clear4048 #diff_files4049 calls Gitlab::Diff::HighlightCache#decorate4050 when there are stats cached4051 does not make a diff stats rpc call4052 when there are no stats cached4053 makes a diff stats rpc call4054 behaves like unsortable diff files4055 #raw_diff_files4056 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true4057Label4058 modules4059 is expected to includes the Referable module4060 is expected to includes the Subscribable module4061 associations4062 is expected to have many issues through label_links source => target4063 is expected to have many label_links dependent => destroy4064 is expected to have many lists dependent => destroy4065 is expected to have many priorities class_name => LabelPriority4066 validation4067 is expected to validate that :title is case-sensitively unique within the scope of :group_id and :project_id4068 validates color code4069 validates title4070 scopes4071 .on_board4072 returns only the board labels4073 #color4074 strips color4075 uses default color if color is missing4076 #text_color4077 uses default color if color is missing4078 #title4079 sanitizes title4080 strips title4081 #description4082 sanitizes description4083 accepts an empty string4084 priorization4085 #prioritize!4086 when label is not prioritized4087 creates a label priority4088 sets label priority4089 when label is prioritized4090 does not create a label priority4091 updates label priority4092 #unprioritize!4093 removes label priority4094 #priority4095 when label is not prioritized4096 returns nil4097 when label is prioritized4098 returns label priority4099 .search4100 returns labels with a partially matching title4101 returns labels with a partially matching description4102 returns nothing4103 .subscribed_by4104 returns subscribed labels4105 returns nothing4106 .top_labels_by_target4107 returns distinct labels, ordered by usage in the given target relation4108 excludes labels that are not assigned to any records in the given target relation4109 .optionally_subscribed_by4110 returns subscribed labels4111 returns all labels if user_id is nil4112 #templates4113 with invalid template labels4114 returns only valid template labels4115MergeRequestDiffCommit4116 behaves like a BulkInsertSafe model4117 when calling class methods directly4118 raises an error when method is not bulk-insert safe4119 does not raise an error when method is bulk-insert safe4120 .bulk_insert!4121 when all items are valid4122 inserts them all4123 returns an empty array4124 when some items are invalid4125 does not insert any of them and raises an error4126 inserts them anyway when bypassing validations4127 associations4128 is expected to belong to commit_author required: false4129 is expected to belong to committer required: false4130 #to_hash4131 returns the same results as Commit#to_hash, except for parent_ids4132 .create_bulk4133 inserts the commits into the database en masse4134 creates diff commit users4135 with dates larger than the DB limit4136 uses a sanitized date4137 .prepare_commits_for_bulk_insert4138 returns the commit hashes and unique user tuples4139Clusters::Applications::CheckUpgradeProgressService4140 #execute4141 when upgrade pod succeeded4142 make the application upgraded4143 behaves like a terminated upgrade4144 removes the POD4145 when upgrade pod failed4146 make the application update errored4147 behaves like a terminated upgrade4148 removes the POD4149 behaves like a not yet terminated upgrade4150 when phase is Pending4151 when not timed out4152 reschedule a new check4153 when timed out4154 make the application update errored4155 behaves like a terminated upgrade4156 removes the POD4157 behaves like a not yet terminated upgrade4158 when phase is Running4159 when not timed out4160 reschedule a new check4161 when timed out4162 make the application update errored4163 behaves like a terminated upgrade4164 removes the POD4165 behaves like a not yet terminated upgrade4166 when phase is Unknown4167 when not timed out4168 reschedule a new check4169 when timed out4170 make the application update errored4171 behaves like a terminated upgrade4172 removes the POD4173ActiveSession4174 #current?4175 returns true if the active session matches the current session4176 returns false if the active session does not match the current session4177 returns false if the session id is nil4178 .list4179 returns all sessions by user4180 returns an empty array if the user does not have any active session4181 when the current session is in the old format4182 behaves like ignoring obsolete entries4183 does not return obsolete entries and cleans them up4184 when the current session is in the new format4185 behaves like ignoring obsolete entries4186 does not return obsolete entries and cleans them up4187 .list_sessions4188 uses the ActiveSession lookup to return original sessions4189 .session_ids_for_user4190 uses the user lookup table to return session ids4191 .sessions_from_ids4192 uses the ActiveSession lookup to return original sessions4193 avoids a redis lookup for an empty array4194 uses redis lookup in batches4195 .set4196 sets a new redis entry for the user session and a lookup entry4197 adds timestamps and information from the request4198 is possible to log in only using the old session key4199 keeps the created_at from the login on consecutive requests4200 .destroy_session4201 destroy called with Rack::Session::SessionId#private_id4202 calls .destroy_sessions4203 ActiveSession with session_private_id4204 when using old session key serialization4205 removes the devise session4206 removes the lookup entry4207 removes the ActiveSession4208 when using new session key serialization4209 removes the devise session4210 removes the lookup entry4211 removes the ActiveSession4212 .destroy_all_but_current4213 gracefully handles a nil session ID4214 with legacy sessions4215 behaves like with user sessions4216 removes the entry associated with the all user sessions but current4217 removes the lookup entry of deleted sessions4218 does not remove impersonated sessions4219 with new sessions4220 behaves like with user sessions4221 removes the entry associated with the all user sessions but current4222 removes the lookup entry of deleted sessions4223 does not remove impersonated sessions4224 .cleanup4225 with legacy sessions4226 behaves like cleaning up4227 does not bail if there are no lookup entries4228 when removing obsolete sessions4229 removes obsolete lookup entries4230 cleaning up old sessions4231 removes obsolete active sessions entries4232 removes obsolete lookup entries4233 removes obsolete lookup entries even without active session4234 when the number of active sessions is lower than the limit4235 does not remove active session entries, but removes lookup entries4236 cleaning up old sessions stored by Rack::Session::SessionId#private_id4237 removes obsolete active sessions entries4238 with new sessions4239 behaves like cleaning up4240 does not bail if there are no lookup entries4241 when removing obsolete sessions4242 removes obsolete lookup entries4243 cleaning up old sessions4244 removes obsolete active sessions entries4245 removes obsolete lookup entries4246 removes obsolete lookup entries even without active session4247 when the number of active sessions is lower than the limit4248 does not remove active session entries, but removes lookup entries4249 cleaning up old sessions stored by Rack::Session::SessionId#private_id4250 removes obsolete active sessions entries4251 .cleaned_up_lookup_entries4252 with legacy sessions4253 behaves like cleaning up lookup entries4254 removes obsolete lookup entries4255 reports the removed entries4256 with new sessions4257 behaves like cleaning up lookup entries4258 removes obsolete lookup entries4259 reports the removed entries4260Projects::UpdatePagesService4261 fails if no artifacts4262 fails for invalid archive4263 for new artifacts4264 for a valid job4265 doesn't delete artifacts after deploying4266 succeeds4267 publishes a PageDeployedEvent event with project id and namespace id4268 creates pages_deployment and saves it in the metadata4269 does not fail if pages_metadata is absent4270 limits pages size4271 limits pages file count4272 when there is an old pages deployment4273 schedules a destruction of older deployments4274 removes older deployments4275 when archive does not have pages directory4276 returns an error4277 when timeout happens by DNS error4278 raises an error4279 when missing artifacts metadata4280 does not raise an error as failed job4281 with background jobs running4282 succeeds4283 when sha on branch was updated before deployment was uploaded4284 succeeds4285 when old deployment present4286 succeeds4287 when newer deployment present4288 fails4289 when uploaded deployment size is wrong4290 raises an error4291 when artifacts archive does not have sha2564292 fails with exception raised4293 maximum pages artifacts size4294 when maximum pages size is set to zero4295 behaves like pages size limit is4296 when size is below the limit4297 updates pages correctly4298 when size is above the limit4299 limits the maximum size of gitlab pages4300 when size is limited on the instance level4301 behaves like pages size limit is4302 when size is below the limit4303 updates pages correctly4304 when size is above the limit4305 limits the maximum size of gitlab pages4306 when retrying the job4307 marks older pages:deploy jobs retried4308EventsFinder4309 when targeting a user4310 returns events between specified dates filtered on action and type4311 does not return events the current_user does not have access to4312 does not include events on confidential issues the user does not have access to4313 includes confidential events user has access to4314 returns nothing when the current user cannot read cross project4315 returns nothing when the target profile is private4316 wiki events4317 can find the wiki events4318 dashboard events4319 scope is `all`4320 includes activity of other users4321 scope is not `all`4322 does not include activity of other users4323 when targeting a project4324 returns project events between specified dates filtered on action and type4325 does not return events the current_user does not have access to4326Gitlab::Diff::LinesUnfolder4327 position requires a middle expansion and new match lines4328 old_line is an invalid number4329 fails gracefully4330 blob lines4331 returns the extracted blob lines correctly4332 diff lines4333 return merge of blob lines with diff lines correctly4334 merged lines have correct line codes4335 position requires a middle expansion and no top match line4336 blob lines4337 returns the extracted blob lines correctly4338 diff lines4339 return merge of blob lines with diff lines correctly4340 merged lines have correct line codes4341 position requires a middle expansion and no bottom match line4342 blob lines4343 returns the extracted blob lines correctly4344 diff lines4345 return merge of blob lines with diff lines correctly4346 merged lines have correct line codes4347 position requires a short top expansion4348 blob lines4349 returns the extracted blob lines correctly4350 diff lines4351 return merge of blob lines with diff lines correctly4352 merged lines have correct line codes4353 position sits between two match lines (no expasion needed)4354 diff lines4355 returns nil4356 position requires bottom expansion and new match lines4357 blob lines4358 returns the extracted blob lines correctly4359 diff lines4360 return merge of blob lines with diff lines correctly4361 merged lines have correct line codes4362 position requires bottom expansion and no new match line4363 blob lines4364 returns the extracted blob lines correctly4365 diff lines4366 return merge of blob lines with diff lines correctly4367 merged lines have correct line codes4368 positioned on an image4369 diff file is not text4370 returns nil4371 diff file is text4372 returns nil4373BulkImports::Projects::Pipelines::MergeRequestsPipeline4374 #run4375 imports a merge request4376 merge request state4377 when mr is closed4378 imported mr as closed4379 when mr is merged4380 imported mr as merged4381 source & target project4382 has the new project as target4383 has the new project as source4384 when source/target projects differ4385 has no source4386 when diff_head_sha is present4387 has the new project as source4388 resource label events4389 restores resource label events4390 award emoji4391 has award emoji4392 notes4393 imports mr note4394 has award emoji4395 does not import note_html4396 system note metadata4397 restores system note metadata4398 diffs4399 imports merge request diff4400 has the correct data for merge request latest_merge_request_diff4401 imports diff files4402 diff commits4403 imports diff commits4404 assigns committer and author details to diff commits4405 assigns the correct commit users to diff commits4406 labels4407 imports labels4408 milestone4409 imports milestone4410DeployKeys::BasicDeployKeyEntity4411 does not return an owner payload with_owner option not passed in4412 returns deploy keys4413 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2022-07-04 07:43:08.673115325 +0000, :destro...0", :id=>2, :title=>"My title 579", :updated_at=>2022-07-04 07:43:08.673115325 +0000, :user_id=>nil}4414 user is an admin4415 when admin mode is enabled4416 is expected to include {:can_edit => true}4417 when admin mode is disabled4418 is expected not to include {:can_edit => true}4419 user is a project maintainer4420 project deploy key4421 is expected to include {:can_edit => true}4422 public deploy key4423 is expected to include {:can_edit => true}4424 with_owner option4425 does not return an owner payload when it is set to false4426 when with_owner is set to true4427 returns an owner payload4428 does not return an owner if current_user cannot read the owner4429Metrics::Dashboard::CustomDashboardService4430 #raw_dashboard4431 behaves like #raw_dashboard raises error if dashboard loading fails4432 when yaml is too large4433 raises error4434 when yaml loader returns error4435 raises error4436 when yaml is not a hash4437 returns nil4438 #get_dashboard4439 when the dashboard does not exist4440 does not update gitlab_metrics_dashboard_processing_time_ms metric4441 behaves like misconfigured dashboard service response4442 returns an appropriate message and status code4443 behaves like raises error for users with insufficient permissions4444 when the user does not have sufficient access4445 behaves like misconfigured dashboard service response4446 returns an appropriate message and status code4447 when the user is anonymous4448 behaves like misconfigured dashboard service response4449 returns an appropriate message and status code4450 when the dashboard exists4451 caches the unprocessed dashboard for subsequent calls4452 tracks panel type4453 behaves like valid dashboard service response4454 behaves like valid dashboard service response for schema4455 returns a json representation of the dashboard4456 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric4457 prometheus4458 with metric in database4459 includes metric_id4460 and the dashboard is then deleted4461 does not return the previously cached dashboard4462 when the dashboard is configured incorrectly4463 behaves like misconfigured dashboard service response4464 returns an appropriate message and status code4465 .all_dashboard_paths4466 when there are no project dashboards4467 returns an empty array4468 when there are project dashboards available4469 returns the dashboard attributes4470 caches repo file list4471 .valid_params?4472 is expected to be truthy4473 missing dashboard_path4474 is expected to be falsey4475 empty dashboard_path4476 is expected to be falsey4477ContainerExpirationPolicy4478 relationships4479 is expected to belong to project required: false4480 validations4481 is expected to validate that :project cannot be empty/falsy4482 #enabled4483 is expected to allow :enabled to be ‹true›4484 is expected to allow :enabled to be ‹false›4485 is expected not to allow :enabled to be ‹nil›4486 #cadence4487 is expected to validate that :cadence cannot be empty/falsy4488 is expected to allow :cadence to be ‹"1d"›4489 is expected to allow :cadence to be ‹"1month"›4490 is expected not to allow :cadence to be ‹"123asdf"›4491 is expected not to allow :cadence to be ‹nil›4492 #older_than4493 is expected to allow :older_than to be ‹"7d"›4494 is expected to allow :older_than to be ‹"14d"›4495 is expected to allow :older_than to be ‹nil›4496 is expected not to allow :older_than to be ‹"123asdf"›4497 #keep_n4498 is expected to allow :keep_n to be ‹10›4499 is expected to allow :keep_n to be ‹nil›4500 is expected not to allow :keep_n to be ‹"foo"›4501 #disable!4502 disables the container expiration policy4503 #policy_params4504 is expected to eq {"keep_n"=>10, "name_regex"=>".*", "name_regex_keep"=>nil, "older_than"=>"90d"}4505 with a set of regexps4506 is expected to validate that :name_regex cannot be empty/falsy4507 is expected to allow :name_regex to be ‹"master"›4508 is expected to allow :name_regex_keep to be ‹"master"›4509 is expected to allow :name_regex to be ‹".*"›4510 is expected to allow :name_regex_keep to be ‹".*"›4511 is expected to allow :name_regex to be ‹"v.+"›4512 is expected to allow :name_regex_keep to be ‹"v.+"›4513 is expected to allow :name_regex to be ‹"v10.1.*"›4514 is expected to allow :name_regex_keep to be ‹"v10.1.*"›4515 is expected to allow :name_regex to be ‹"(?:v.+|master|release)"›4516 is expected to allow :name_regex_keep to be ‹"(?:v.+|master|release)"›4517 is expected not to allow :name_regex to be ‹"["›4518 is expected not to allow :name_regex_keep to be ‹"["›4519 is expected not to allow :name_regex to be ‹"(?:v.+|master|release"›4520 is expected not to allow :name_regex_keep to be ‹"(?:v.+|master|release"›4521 with a disabled container expiration policy4522 is expected not to validate that :name_regex cannot be empty/falsy4523 is expected to allow :name_regex to be ‹"master"›4524 is expected to allow :name_regex_keep to be ‹"master"›4525 is expected to allow :name_regex to be ‹".*"›4526 is expected to allow :name_regex_keep to be ‹".*"›4527 is expected to allow :name_regex to be ‹"v.+"›4528 is expected to allow :name_regex_keep to be ‹"v.+"›4529 is expected to allow :name_regex to be ‹"v10.1.*"›4530 is expected to allow :name_regex_keep to be ‹"v10.1.*"›4531 is expected to allow :name_regex to be ‹"(?:v.+|master|release)"›4532 is expected to allow :name_regex_keep to be ‹"(?:v.+|master|release)"›4533 is expected to allow :name_regex to be ‹"["›4534 is expected to allow :name_regex_keep to be ‹"["›4535 is expected to allow :name_regex to be ‹"(?:v.+|master|release"›4536 is expected to allow :name_regex_keep to be ‹"(?:v.+|master|release"›4537 .preloaded4538 preloads the associations4539 .runnable_schedules4540 returns the runnable schedule4541 when there are no runnable schedules4542 returns an empty array4543 policies with container repositories4544 .with_container_repositories4545 is expected to contain exactly #<ContainerExpirationPolicy project_id: 1386, created_at: "2022-07-04 07:43:34.799623908 +0000", upda...name_regex: ".*", cadence: "1d", older_than: "90d", keep_n: 10, enabled: true, name_regex_keep: nil> and #<ContainerExpirationPolicy project_id: 1387, created_at: "2022-07-04 07:43:35.075688346 +0000", upda...name_regex: ".*", cadence: "1d", older_than: "90d", keep_n: 10, enabled: true, name_regex_keep: nil>4546 .without_container_repositories4547 is expected to contain exactly #<ContainerExpirationPolicy project_id: 1388, created_at: "2022-07-04 07:43:35.342414953 +0000", upda...name_regex: ".*", cadence: "1d", older_than: "90d", keep_n: 10, enabled: true, name_regex_keep: nil>4548ForkProjectsFinder4549 #execute4550 without a user4551 is expected to eq [#<Project id:1392 group150/project1413>>]4552 with a user4553 is expected to eq [#<Project id:1396 group153/project1417>>, #<Project id:1395 group152/project1416>>]4554 with a member4555 is expected to eq [#<Project id:1400 group156/project1421>>, #<Project id:1399 group155/project1420>>, #<Project id:1398 group154/project1419>>]4556Banzai::ReferenceParser::CommitParser4557 #nodes_visible_to_user4558 when the link has a data-issue attribute4559 behaves like referenced feature visibility4560 when feature is disabled4561 does not create reference4562 when feature is enabled only for team members4563 does not create reference for non member4564 creates reference for member4565 when feature is enabled4566 creates reference4567 #referenced_by4568 when the link has a data-project attribute4569 when the link has a data-commit attribute4570 returns an Array of commits4571 returns an empty Array when the commit could not be found4572 skips projects without valid repositories4573 when the link does not have a data-commit attribute4574 returns an empty Array4575 when the link does not have a data-project attribute4576 returns an empty Array4577 #commit_ids_per_project4578 returns a Hash containing commit IDs per project4579 does not add a project when the data-commit attribute is empty4580 #find_commits4581 returns an Array of commit objects4582 skips commit IDs for which no commit could be found4583 when checking commits on another projects4584 behaves like no project N+1 queries4585 avoids N+1 queries in #nodes_visible_to_user4586ClusterablePresenter4587 .fabricate4588 creates an object from a descendant presenter4589 #can_create_cluster?4590 when clusterable is a group4591 behaves like appropriate member permissions4592 with a developer4593 is expected to be falsy4594 with a maintainer4595 is expected to be truthy4596 when clusterable is a project4597 behaves like appropriate member permissions4598 with a developer4599 is expected to be falsy4600 with a maintainer4601 is expected to be truthy4602 #can_add_cluster?4603 when clusterable is a group4604 behaves like appropriate member permissions4605 with a developer4606 is expected to be falsy4607 with a maintainer4608 is expected to be truthy4609 when clusterable is a project4610 behaves like appropriate member permissions4611 with a developer4612 is expected to be falsy4613 with a maintainer4614 is expected to be truthy4615 #can_admin_cluster?4616 when clusterable is a group4617 behaves like appropriate member permissions4618 with a developer4619 is expected to be falsy4620 with a maintainer4621 is expected to be truthy4622 when clusterable is a project4623 behaves like appropriate member permissions4624 with a developer4625 is expected to be falsy4626 with a maintainer4627 is expected to be truthy4628 #environments_cluster_path4629 is expected to be nil4630 #index_path4631 without options4632 is expected to eq "/groups/group165/-/clusters"4633 with options4634 is expected to eq "/groups/group166/-/clusters.json"4635ContainerRegistry::Migration::GuardWorker4636 #perform4637 on gitlab.com4638 with no stale migrations4639 will not update any migration state4640 behaves like an idempotent worker4641 is labeled as idempotent4642 performs multiple times sequentially without raising an exception4643 with pre_importing stale migrations4644 will abort the migration4645 the client returns pre_import_in_progress4646 not long running4647 behaves like not aborting the stale migration4648 will not abort the migration4649 long running4650 with registry_migration_guard_dynamic_pre_import_timeout enabled4651 below the dynamic threshold4652 behaves like not aborting the stale migration4653 will not abort the migration4654 above the dynamic threshold4655 behaves like handling long running migrations4656 migration is canceled4657 when the retry limit has been reached4658 will not abort the migration4659 when the retry limit has not been reached4660 behaves like aborting the migration4661 will abort the migration4662 migration cancelation fails with an error4663 behaves like aborting the migration4664 will abort the migration4665 migration receives bad request with a new status4666 behaves like aborting the migration4667 will abort the migration4668 with registry_migration_guard_dynamic_pre_import_timeout disabled4669 behaves like handling long running migrations4670 migration is canceled4671 when the retry limit has been reached4672 will not abort the migration4673 when the retry limit has not been reached4674 behaves like aborting the migration4675 will abort the migration4676 migration cancelation fails with an error4677 behaves like aborting the migration4678 will abort the migration4679 migration receives bad request with a new status4680 behaves like aborting the migration4681 will abort the migration4682 with pre_import_done stale migrations4683 will abort the migration4684 with importing stale migrations4685 will abort the migration4686 the client returns import_in_progress4687 behaves like handling long running migrations4688 migration is canceled4689 when the retry limit has been reached4690 will not abort the migration4691 when the retry limit has not been reached4692 behaves like aborting the migration4693 will abort the migration4694 migration cancelation fails with an error4695 behaves like aborting the migration4696 will abort the migration4697 migration receives bad request with a new status4698 behaves like aborting the migration4699 will abort the migration4700 not on gitlab.com4701 is a no op4702 worker attributes4703 has deduplication set4704Ci::Trigger4705 associations4706 is expected to belong to project required: false4707 is expected to belong to owner required: false4708 is expected to have many trigger_requests4709 validations4710 is expected to validate that :owner cannot be empty/falsy4711 before_validation4712 sets an random token if none provided4713 does not set a random token if one provided4714 #short_token4715 returns shortened token4716 #can_access_project?4717 and is member of the project4718 is expected to eq true4719 and is not member of the project4720 is expected to eq false4721 behaves like includes Limitable concern4722 #exceeds_limits?4723 without plan limits configured4724 is expected to eq false4725 without plan limits configured4726 is expected to eq false4727 with an existing model4728 is expected to eq true4729 validations4730 is expected to be a kind of Limitable4731 without plan limits configured4732 can create new models4733 with plan limits configured4734 can create new models4735 with an existing model4736 cannot create new models exceeding the plan limits4737 loose foreign key on ci_triggers.owner_id4738 behaves like cleanup by a loose foreign key4739 cleans up (delete or nullify) the model4740 loose foreign key on ci_triggers.project_id4741 behaves like cleanup by a loose foreign key4742 cleans up (delete or nullify) the model4743Gitlab::Ci::Config::Entry::Need4744 with simple config4745 when job is specified4746 #valid?4747 is expected to be valid4748 #value4749 returns job needs configuration4750 behaves like job type4751 #type4752 is expected to eq :job4753 when need is empty4754 #valid?4755 is expected not to be valid4756 #errors4757 is returns an error about an empty config4758 behaves like job type4759 #type4760 is expected to eq :job4761 with complex config4762 with job name and artifacts true4763 #valid?4764 is expected to be valid4765 #value4766 returns job needs configuration4767 behaves like job type4768 #type4769 is expected to eq :job4770 with job name and artifacts false4771 #valid?4772 is expected to be valid4773 #value4774 returns job needs configuration4775 behaves like job type4776 #type4777 is expected to eq :job4778 with job name and artifacts nil4779 #valid?4780 is expected to be valid4781 #value4782 returns job needs configuration4783 behaves like job type4784 #type4785 is expected to eq :job4786 without artifacts key4787 #valid?4788 is expected to be valid4789 #value4790 returns job needs configuration4791 behaves like job type4792 #type4793 is expected to eq :job4794 with job name and optional true4795 is expected to be valid4796 behaves like job type4797 #type4798 is expected to eq :job4799 #value4800 returns job needs configuration4801 with job name and optional false4802 is expected to be valid4803 behaves like job type4804 #type4805 is expected to eq :job4806 #value4807 returns job needs configuration4808 with job name and optional nil4809 is expected to be valid4810 behaves like job type4811 #type4812 is expected to eq :job4813 #value4814 returns job needs configuration4815 without optional key4816 is expected to be valid4817 behaves like job type4818 #type4819 is expected to eq :job4820 #value4821 returns job needs configuration4822 when job name is empty4823 #valid?4824 is expected not to be valid4825 #errors4826 is returns an error about an empty config4827 behaves like job type4828 #type4829 is expected to eq :job4830 when job name is not a string4831 #valid?4832 is expected not to be valid4833 #errors4834 is returns an error about job type4835 behaves like job type4836 #type4837 is expected to eq :job4838 when job has unknown keys4839 #valid?4840 is expected not to be valid4841 #errors4842 is returns an error about job type4843 behaves like job type4844 #type4845 is expected to eq :job4846 with cross pipeline artifacts needs4847 when pipeline is provided4848 when job is provided4849 is expected to be valid4850 sets artifacts:true by default4851 sets the type as cross_dependency4852 when artifacts is provided4853 is expected to be valid4854 returns the correct value4855 when config contains not allowed keys4856 is expected not to be valid4857 returns an error4858 when need config is not a string or a hash4859 #valid?4860 is expected not to be valid4861 #errors4862 is returns an error about job type4863WorkItems::TaskListReferenceRemovalService4864 #execute4865 when task mardown spans a single line4866 behaves like successful work item task reference removal service4867 is expected to be success4868 removes the task list item containing the task reference4869 creates system notes4870 when description does not contain a task4871 behaves like failing work item task reference removal service4872 is expected to be error4873 does not change the work item description4874 returns an error message4875 when description reference does not exactly match the task reference4876 behaves like failing work item task reference removal service4877 is expected to be error4878 does not change the work item description4879 returns an error message4880 when task mardown spans multiple lines4881 behaves like successful work item task reference removal service4882 is expected to be success4883 removes the task list item containing the task reference4884 creates system notes4885 when updating the work item fails4886 behaves like failing work item task reference removal service4887 is expected to be error4888 does not change the work item description4889 returns an error message4890 when description is empty4891 behaves like failing work item task reference removal service4892 is expected to be error4893 does not change the work item description4894 returns an error message4895 when line_number_start is lower than 14896 behaves like failing work item task reference removal service4897 is expected to be error4898 does not change the work item description4899 returns an error message4900 when line_number_end is lower than line_number_start4901 behaves like failing work item task reference removal service4902 is expected to be error4903 does not change the work item description4904 returns an error message4905 when lock_version is older than current4906 behaves like failing work item task reference removal service4907 is expected to be error4908 does not change the work item description4909 returns an error message4910 when work item is stale before updating4911 behaves like failing work item task reference removal service4912 is expected to be error4913 does not change the work item description4914 returns an error message4915Clusters::Applications::UpgradeService4916 #execute4917 when there are no errors4918 make the application updating4919 schedule async installation status check4920 when kubernetes cluster communication fails4921 logs into kubernetes.log and Sentry4922 make the application errored4923 a non kubernetes error happens4924 logs into kubernetes.log and Sentry4925 make the application errored4926Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers4927 #queue_batched_background_migration4928 creates the database record for the migration4929 when such migration already exists4930 does not create duplicate migration4931 when the job interval is lower than the minimum4932 sets the job interval to the minimum value4933 when additional arguments are passed to the method4934 saves the arguments on the database record4935 when the max_value is not given4936 when records exist in the database4937 creates the record with the current max value4938 creates the record with an active status4939 when the database is empty4940 sets the max value to the min value4941 creates the record with a finished status4942 when gitlab_schema is not given4943 fetches gitlab_schema from the migration context4944 #finalize_batched_background_migration4945 finalizes the migration4946 when the migration does not exist4947 raises an exception4948 when within transaction4949 does raise an exception4950 when running migration in reconfigured ActiveRecord::Base context4951 behaves like reconfigures connection stack4952 when restrict_gitlab_migration is set to gitlab_ci4953 finalizes the migration4954 when restrict_gitlab_migration is set to gitlab_main4955 does not find any migrations4956 when no restrict is set4957 does not find any migrations4958 when within transaction4959 does raise an exception4960 #delete_batched_background_migration4961 when migration exists4962 deletes it4963 when migration does not exist4964 does nothing4965 #gitlab_schema_from_context4966 when allowed_gitlab_schemas is not available4967 defaults to :gitlab_main4968 when allowed_gitlab_schemas is available4969 uses schema from allowed_gitlab_schema4970IncidentManagement::TimelineEvents::DestroyService4971 #execute4972 when current user is anonymous4973 behaves like error response4974 has an informative message4975 behaves like does not track incident management event4976 does not track the event4977 when user does not have permissions to remove timeline events4978 behaves like error response4979 has an informative message4980 behaves like does not track incident management event4981 does not track the event4982 when an error occurs during removal4983 behaves like error response4984 has an informative message4985 behaves like does not track incident management event4986 does not track the event4987 success response4988 successfully returns the timeline event4989 behaves like an incident management tracked event4990 .track_event4991 tracks the event using redis4992 when incident_timeline feature flag is enabled4993 creates a system note4994 when incident_timeline feature flag is disabled4995 does not create a system note4996Gitlab::Verify::Uploads4997 behaves like Gitlab::Verify::BatchVerifier subclass4998 batching4999 iterates through objects in batches5000 allows the starting ID to be specified5001 allows the finishing ID to be specified5002 #run_batches5003 passes uploads with the correct file5004 fails uploads with a missing file5005 fails uploads with a mismatched checksum5006 fails uploads with a missing precalculated checksum5007 with remote files5008 returned hash object5009 passes uploads in object storage that exist5010 fails uploads in object storage that do not exist5011 performance5012 avoids N+1 queries5013Mutations::DesignManagement::Delete5014 #resolve5015 when the feature is not available5016 behaves like resource not available5017 behaves like failures5018 raises Gitlab::Graphql::Errors::ResourceNotAvailable5019 when the feature is available5020 when the user is not allowed to delete designs5021 behaves like resource not available5022 behaves like failures5023 raises Gitlab::Graphql::Errors::ResourceNotAvailable5024 deleting an already deleted file5025 fails with an argument error5026 when deleting all the designs5027 returns a new version, and no errors5028 runs no more than 30 queries5029 the current designs5030 is empty5031 when deleting a design5032 returns the expected response5033 the current designs5034 does contain designs b and c5035Integrations::EmailsOnPush5036 Validations5037 when integration is active5038 is expected to validate that :recipients cannot be empty/falsy5039 when integration is inactive5040 is expected not to validate that :recipients cannot be empty/falsy5041 validates number of recipients5042 valid number of recipients5043 does not count duplicates and invalid emails5044 invalid number of recipients5045 is expected not to be valid5046 adds an error message5047 when integration is not active5048 is expected to be valid5049 .new5050 when properties is missing branches_to_be_notified5051 sets the default value to all5052 when branches_to_be_notified is already set5053 does not overwrite it with the default value5054 .valid_recipients5055 removes invalid email addresses and removes duplicates by keeping the original capitalization5056 #execute5057 when emails are disabled on the project5058 does not send emails5059 when emails are enabled on the project5060 pushing to a random branch and notification configured for all branches5061 sends email5062 pushing to the default branch and notification configured for all branches5063 sends email5064 pushing to a protected branch and notification configured for all branches5065 sends email5066 pushing to a random branch and notification configured for default branch only5067 does not send email5068 pushing to the default branch and notification configured for default branch only5069 sends email5070 pushing to a protected branch and notification configured for default branch only5071 does not send email5072 pushing to a random branch and notification configured for protected branches only5073 does not send email5074 pushing to the default branch and notification configured for protected branches only5075 does not send email5076 pushing to a protected branch and notification configured for protected branches only5077 sends email5078 pushing to a random branch and notification configured for default and protected branches only5079 does not send email5080 pushing to the default branch and notification configured for default and protected branches only5081 sends email5082 pushing to a protected branch and notification configured for default and protected branches only5083 sends email5084Projects::AutoDevops::DisableService#execute5085 when Auto DevOps disabled at instance level5086 is expected to be falsy5087 when Auto DevOps enabled at instance level5088 when Auto DevOps explicitly enabled on project5089 is expected to be falsy5090 when Auto DevOps explicitly disabled on project5091 is expected to be falsy5092 when Auto DevOps is implicitly enabled5093 when is the first pipeline failure5094 disables Auto DevOps for project5095 when it is not the first pipeline failure5096 explicitly disables Auto DevOps for project5097 when an Auto DevOps pipeline has succeeded before5098 does not disable Auto DevOps for project5099 when project does not have an Auto DevOps record related5100 disables Auto DevOps for project5101 creates a ProjectAutoDevops record5102Mutations::ContainerExpirationPolicies::Update5103 is expected to require graphql authorizations :admin_container_image5104 #resolve5105 with existing container expiration policy5106 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"5107 behaves like updating the container expiration policy5108 behaves like updating the container expiration policy attributes5109 updates the container expiration policy5110 behaves like not creating the container expiration policy5111 doesn't create the container expiration policy5112 behaves like returning a success5113 returns the container expiration policy with no errors5114 with invalid params5115 doesn't update the cadence5116 returns an error5117 behaves like not creating the container expiration policy5118 doesn't create the container expiration policy5119 with blank regex5120 doesn't update the cadence5121 returns an error5122 behaves like not creating the container expiration policy5123 doesn't create the container expiration policy5124 user_role: :developer, shared_examples_name: "denying access to container expiration policy"5125 behaves like denying access to container expiration policy5126 raises Gitlab::Graphql::Errors::ResourceNotAvailable5127 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"5128 behaves like denying access to container expiration policy5129 raises Gitlab::Graphql::Errors::ResourceNotAvailable5130 user_role: :guest, shared_examples_name: "denying access to container expiration policy"5131 behaves like denying access to container expiration policy5132 raises Gitlab::Graphql::Errors::ResourceNotAvailable5133 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"5134 behaves like denying access to container expiration policy5135 raises Gitlab::Graphql::Errors::ResourceNotAvailable5136 without existing container expiration policy5137 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"5138 behaves like creating the container expiration policy5139 behaves like updating the container expiration policy attributes5140 creates a new container expiration policy5141 updates the container expiration policy5142 behaves like returning a success5143 returns the container expiration policy with no errors5144 user_role: :developer, shared_examples_name: "denying access to container expiration policy"5145 behaves like denying access to container expiration policy5146 raises Gitlab::Graphql::Errors::ResourceNotAvailable5147 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"5148 behaves like denying access to container expiration policy5149 raises Gitlab::Graphql::Errors::ResourceNotAvailable5150 user_role: :guest, shared_examples_name: "denying access to container expiration policy"5151 behaves like denying access to container expiration policy5152 raises Gitlab::Graphql::Errors::ResourceNotAvailable5153 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"5154 behaves like denying access to container expiration policy5155 raises Gitlab::Graphql::Errors::ResourceNotAvailable5156Metrics::Dashboard::Annotations::DeleteService5157 .execute5158 with specific environment5159 with anonymous user5160 behaves like prevented annotation deletion5161 returns error response5162 does not change db state5163 with maintainer user5164 behaves like executed annotation deletion5165 returns success response5166 annotation failed to delete5167 returns error response5168 with specific cluster5169 with anonymous user5170 behaves like prevented annotation deletion5171 returns error response5172 does not change db state5173 with maintainer user5174 behaves like executed annotation deletion5175 returns success response5176 with owner user5177 behaves like executed annotation deletion5178 returns success response5179ContainerRegistry::Migration::ObserverWorker5180 #perform5181 when the migration feature flag is disabled5182 does nothing5183 when the migration is enabled5184 logs all the counts5185 with load balancing enabled5186 uses the replica5187ReleaseHighlight5188 .paginated5189 with page param5190 when there is another page of results5191Skipping ./spec/models/release_highlight_spec.rb[1:1:1:1:1] 'ReleaseHighlight.paginated with page param when there is another page of results responds with paginated results' because it's flaky.5192 responds with paginated results (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)5193 when there is NOT another page of results5194Skipping ./spec/models/release_highlight_spec.rb[1:1:1:2:1] 'ReleaseHighlight.paginated with page param when there is NOT another page of results responds with paginated results and no next_page' because it's flaky.5195 responds with paginated results and no next_page (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)5196 when that specific page does not exist5197 returns nil5198 with no page param5199 uses multiple levels of cache5200 returns platform specific items5201 parses the body as markdown and returns html, and links are target="_blank"5202 logs an error if theres an error parsing markdown for an item, and skips it5203 when Gitlab.com5204 responds with a different set of data5205 YAML parsing throws an exception5206 fails gracefully and logs an error5207 .most_recent_item_count5208 uses process memory cache5209 when recent release items exist5210 returns the count from the most recent file5211 when recent release items do NOT exist5212 returns nil5213 .most_recent_version_digest5214 uses process memory cache5215 when recent release items exist5216 returns a digest from the release of the first item of the most recent file5217 when recent release items do NOT exist5218 returns nil5219 .load_items5220 whats new for all tiers5221 returns all items5222 whats new for current tier only5223 returns items with package=Free5224 QueryResult5225 responds to map5226 .current_package5227 returns Free5228 .file_paths5229 joins relative file paths with the root path to avoid caching the root url5230shared/_label_row.html.haml5231 with a project context5232 has label title5233 has a non-linked label title5234 has Issues link5235 has Merge request link5236 shows the path from where the label was created5237 with a subgroup context5238 has label title5239 has a non-linked label title5240 has Issues link5241 has Merge request link5242 shows the path from where the label was created5243 with a group context5244 has label title5245 has a non-linked label title5246 has Issues link5247 has Merge request link5248 does not show a path from where the label was created5249 with an admin context5250 has label title5251 has a non-linked label title5252 does not show Issues link5253 does not show Merge request link5254 does not show a path from where the label was created5255Clusters::Providers::Aws5256 is expected to belong to cluster required: false5257 is expected to validate that the length of :key_name is between 1 and 2555258 is expected to validate that the length of :region is between 1 and 2555259 is expected to validate that the length of :instance_type is between 1 and 2555260 is expected to validate that the length of :security_group_id is between 1 and 2555261 is expected to validate that :subnet_ids cannot be empty/falsy5262 state_machine5263 when any => [:created]5264 nullifies API credentials5265 when any => [:creating]5266 calls #assign_operation_id on the provider5267 when any => [:errored]5268 calls #nullify_credentials on the provider5269 sets a status reason5270 when status_reason is nil5271 does not set status_reason5272 #on_creation?5273 status: :scheduled, result: true5274 is expected to eq true5275 status: :creating, result: true5276 is expected to eq true5277 status: :created, result: false5278 is expected to eq false5279 status: :errored, result: false5280 is expected to eq false5281 default_value_for5282 sets default values5283 custom validations5284 :num_nodes5285 contains non-digit characters5286 is expected to be falsey5287 is blank5288 is expected to be falsey5289 is less than 15290 is expected to be falsey5291 is a positive integer5292 is expected to be truthy5293 #nullify_credentials5294 removes access_key_id, secret_access_key and session_token5295 #api_client5296 is expected to eq #<Double (anonymous)>5297 #credentials5298 is expected to eq #<Double (anonymous)>5299 #created_by_user5300 is expected to eq #<User id:2244 @user917>5301 #has_rbac_enabled?5302 is expected to be truthy5303 #knative_pre_installed?5304 is expected to be falsey5305Gitlab::HttpIO5306 #close5307 is expected to be nil5308 #binmode5309 is expected to be nil5310 #binmode?5311 is expected to be truthy5312 #path5313 is expected to be nil5314 #url5315 is expected to eq "http://object-storage/trace"5316 #seek5317 when moves pos to end of the file5318 is expected to eq 1924415319 when moves pos to middle of the file5320 is expected to eq 962205321 when moves pos around5322 matches the result5323 #eof?5324 when current pos is at end of the file5325 is expected to be truthy5326 when current pos is not at end of the file5327 is expected to be falsey5328 #each_line5329 yields lines5330 when buckets on GCS5331 when BUFFER_SIZE is larger than file size5332 calls get_chunk only once5333 #read5334 when there are no network issue5335 when read whole size5336 when BUFFER_SIZE is smaller than file size5337 reads a trace5338 when BUFFER_SIZE is larger than file size5339 reads a trace5340 when read only first 100 bytes5341 when BUFFER_SIZE is smaller than file size5342 reads a trace5343 when BUFFER_SIZE is larger than file size5344 reads a trace5345 when tries to read oversize5346 when BUFFER_SIZE is smaller than file size5347 reads a trace5348 when BUFFER_SIZE is larger than file size5349 reads a trace5350 when tries to read 0 bytes5351 when BUFFER_SIZE is smaller than file size5352 reads a trace5353 when BUFFER_SIZE is larger than file size5354 reads a trace5355 when there is anetwork issue5356 reads a trace5357 #readline5358 when there is anetwork issue5359 reads a trace5360 when BUFFER_SIZE is smaller than file size5361 behaves like all line matching5362 reads a line5363 when BUFFER_SIZE is larger than file size5364 behaves like all line matching5365 reads a line5366 when pos is at middle of the file5367 reads from pos5368 #write5369 is expected to raise NotImplementedError5370 #truncate5371 is expected to raise NotImplementedError5372 #flush5373 is expected to raise NotImplementedError5374 #present?5375 is expected to be truthy5376 #send5377 does not set the "accept-encoding" header5378notify/pipeline_success_email.html.haml5379 behaves like pipeline status changes email5380 when the pipeline contains a failed job5381 behaves like renders the pipeline status changes email correctly5382 pipeline with user5383 renders the email correctly5384 behaves like correct pipeline information for pipelines for merge requests5385 when pipeline for merge request5386 renders a source ref of the pipeline5387 pipeline without user5388 renders the email correctly5389 when the latest failed job is a bridge job5390 behaves like renders the pipeline status changes email correctly5391 pipeline with user5392 renders the email correctly5393 behaves like correct pipeline information for pipelines for merge requests5394 when pipeline for merge request5395 renders a source ref of the pipeline5396 pipeline without user5397 renders the email correctly5398Gitlab::Ci::Status::External::Common5399 #label5400 returns description5401 when description is nil5402 uses core status label5403 when description is empty string5404 uses core status label5405 #has_action?5406 is expected not to have action5407 #has_details?5408 when user has access to read commit status5409 is expected to have details5410 when user does not have access to read commit status5411 is expected not to have details5412 #details_path5413 links to the external target URL5414Projects::LfsPointers::LfsDownloadLinkListService5415 #execute5416 retrieves each download link of every non existent lfs object5417 stores headers5418 when lfs objects size is larger than the batch size5419 when batch size5420 retreives them in batches5421 when request fails with PayloadTooLarge error5422 when the smaller batch eventually works5423 retreives them eventually and logs exceptions5424 when batch size cannot be any smaller5425 raises an error and logs exceptions5426 credentials5427 when the download link and the lfs_endpoint have the same host5428 when lfs_endpoint has credentials5429 adds credentials to the download_link5430 when lfs_endpoint does not have any credentials5431 does not add any credentials5432 when the download link and the lfs_endpoint have different hosts5433 downloads without any credentials5434 #get_download_links5435 if request fails5436 raises an error5437 behaves like JSON parse errors5438 raises an error5439 behaves like JSON parse errors5440 raises an error5441 behaves like JSON parse errors5442 raises an error5443 #parse_response_links5444 does not add oid entry if href not found5445UpdateHeadPipelineForMergeRequestWorker5446 #perform5447 when pipeline exists for the source project and branch5448 updates the head_pipeline_id of the merge_request5449 behaves like an idempotent worker5450 is labeled as idempotent5451 performs multiple times sequentially without raising an exception5452 sets the pipeline as the head pipeline when run multiple times5453 when merge request sha does not equal pipeline sha5454 does not update head pipeline5455 behaves like an idempotent worker5456 is labeled as idempotent5457 performs multiple times sequentially without raising an exception5458 does not update the head_pipeline_id when run multiple times5459 when pipeline does not exist for the source project and branch5460 does not update the head_pipeline_id of the merge_request5461 behaves like an idempotent worker5462 is labeled as idempotent5463 performs multiple times sequentially without raising an exception5464 does not update the head_pipeline_id when run multiple times5465 when a merge request pipeline exists5466 sets the merge request pipeline as the head pipeline5467 behaves like an idempotent worker5468 is labeled as idempotent5469 performs multiple times sequentially without raising an exception5470 sets the merge request pipeline as the head pipeline when run multiple times5471 when branch pipeline exists5472 prioritizes the merge request pipeline as the head pipeline5473 behaves like an idempotent worker5474 is labeled as idempotent5475 performs multiple times sequentially without raising an exception5476 sets the merge request pipeline as the head pipeline when run multiple times5477Gitlab::Ci::Parsers::Security::Sast5478 #parse!5479 when parsing valid reports5480 report_format: :sast, report_version: "14.0.0", scanner_length: 1, finding_length: 5, identifier_length: 6, file_path: "groovy/src/main/java/com/gitlab/security_products/tests/App.groovy", line: 475481 parses all identifiers and findings5482 generates expected location5483 generates expected metadata_version5484 report_format: :sast_deprecated, report_version: "1.2", scanner_length: 3, finding_length: 33, identifier_length: 17, file_path: "python/hardcoded/hardcoded-tmp.py", line: 15485 parses all identifiers and findings5486 generates expected location5487 generates expected metadata_version5488 when parsing an empty report5489 is expected to be empty5490Packages::Debian::SignDistributionService5491 behaves like Sign Distribution5492 for project detach=false5493 #execute5494 without an existing key5495 raises ArgumentError5496 with an existing key5497 returns the content signed5498 behaves like Sign Distribution5499 for project detach=true5500 #execute5501 without an existing key5502 raises ArgumentError5503 with an existing key5504 returns the content signed5505 behaves like Sign Distribution5506 for group detach=false5507 #execute5508 without an existing key5509 raises ArgumentError5510 with an existing key5511 returns the content signed5512 behaves like Sign Distribution5513 for group detach=true5514 #execute5515 without an existing key5516 raises ArgumentError5517 with an existing key5518 returns the content signed5519IssuableExportCsvWorker5520 when issuable type is Issue5521 emails a CSV5522 ensures that project_id is passed to issues_finder5523 removes sort parameter5524 calls the issue export service5525 with params5526 allows symbol access for IssuesFinder5527 when issuable type is MergeRequest5528 emails a CSV5529 calls the MR export service5530 calls the MergeRequest finder5531 when issuable type is User5532 is expected to raise ArgumentError5533Metrics::Dashboard::CloneDashboardService5534 #execute5535 user does not have push right to repository5536 behaves like misconfigured dashboard service response with stepable5537 returns an appropriate message and status code5538 with rights to push to the repository5539 wrong target file extension5540 behaves like misconfigured dashboard service response with stepable5541 returns an appropriate message and status code5542 wrong source dashboard file5543 behaves like misconfigured dashboard service response with stepable5544 returns an appropriate message and status code5545 path traversal attack attempt5546 behaves like misconfigured dashboard service response with stepable5547 returns an appropriate message and status code5548 path traversal attack attempt on target file5549 strips target file name to safe value5550 valid parameters5551 extends dashboard template path to absolute url5552 behaves like valid dashboard cloning process5553 dashboard template: config/prometheus/common_metrics.yml5554 delegates commit creation to Files::CreateService5555 user has defined custom metrics5556 uses external service to includes them into new file content5557 behaves like valid dashboard cloning process5558 dashboard template: config/prometheus/cluster_metrics.yml5559 delegates commit creation to Files::CreateService5560 user has defined custom metrics5561 uses external service to includes them into new file content5562 behaves like valid dashboard cloning process5563 dashboard template: config/prometheus/self_monitoring_default.yml5564 delegates commit creation to Files::CreateService5565 user has defined custom metrics5566 uses external service to includes them into new file content5567 selected branch already exists5568 behaves like misconfigured dashboard service response with stepable5569 returns an appropriate message and status code5570 blank branch name5571 behaves like misconfigured dashboard service response with stepable5572 returns an appropriate message and status code5573 dashboard file already exists5574 behaves like misconfigured dashboard service response with stepable5575 returns an appropriate message and status code5576 Files::CreateService success5577 clears dashboards cache5578 returns success5579 Files::CreateService fails5580 does NOT clear dashboards cache5581 returns error5582Gitlab::GithubImport::Importer::LabelsImporter5583 #execute5584 imports the labels in bulk5585 #build_labels5586 returns an Array containnig label rows5587 does not create labels that already exist5588 #build_labels_cache5589 builds the labels cache5590 #build5591 returns the attributes of the label as a Hash5592 the returned Hash5593 includes the label title5594 includes the label color5595 includes the project ID5596 includes the label type5597 includes the created timestamp5598 includes the updated timestamp5599 #each_label5600 returns the labels5601ProfilesHelper5602 #commit_email_select_options5603 returns an array with private commit email along with all the verified emails5604 #email_provider_label5605 returns nil for users without external email5606 returns omniauth provider label for users with external attributes5607 returns the correct omniauth provider label for users with some external attributes5608 returns 'LDAP' for users with external email but no email provider5609 #user_status_set_to_busy?5610 availability: "busy", result: true5611 is expected to eq true5612 availability: "not_set", result: false5613 is expected to eq false5614 availability: "", result: false5615 is expected to eq false5616 availability: nil, result: false5617 is expected to eq false5618 #show_status_emoji?5619 message: "Some message", emoji: "speech_balloon", result: true5620 is expected to eq true5621 message: "Some message", emoji: "", result: true5622 is expected to eq true5623 message: "", emoji: "basketball", result: true5624 is expected to eq true5625 message: "", emoji: "basketball", result: true5626 is expected to eq true5627 message: "", emoji: "speech_balloon", result: false5628 is expected to eq false5629 message: "", emoji: "speech_balloon", result: false5630 is expected to eq false5631 #ssh_key_expiration_tooltip5632 error: false, expired: false, result: nil5633 is expected to eq nil5634 error: true, expired: false, result: "Key type is forbidden. Must be DSA, ECDSA, or ED25519"5635 is expected to eq "Key type is forbidden. Must be DSA, ECDSA, or ED25519"5636 error: true, expired: true, result: "Key type is forbidden. Must be DSA, ECDSA, or ED25519"5637 is expected to eq "Key type is forbidden. Must be DSA, ECDSA, or ED25519"5638 #ssh_key_expires_field_description5639 is expected to eq "Key becomes invalid on this date."5640 #middle_dot_divider_classes5641 stacking: nil, breakpoint: nil, expected: ["gl-mb-3", "gl-display-inline-block", "middle-dot-divider"]5642 returns CSS classes needed to render the middle dot divider5643 stacking: true, breakpoint: nil, expected: ["gl-mb-3", "middle-dot-divider-sm", "gl-display-block", "gl-sm-display-inline-block"]5644 returns CSS classes needed to render the middle dot divider5645 stacking: nil, breakpoint: :sm, expected: ["gl-mb-3", "gl-display-inline-block", "middle-dot-divider-sm"]5646 returns CSS classes needed to render the middle dot divider5647DeployKey5648 Associations5649 is expected to have many deploy_keys_projects5650 is expected to have many deploy_keys_projects_with_write_access class_name => DeployKeysProject5651 is expected to have many projects_with_write_access class_name => Project through deploy_keys_projects_with_write_access source => project5652 is expected to have many projects5653 is expected to have many protected_branch_push_access_levels5654 notification5655 does not send a notification5656 #user5657 when user is set5658 returns the user5659 when user is not set5660 returns the ghost user5661 .with_write_access_for_project5662 when no project is passed in5663 is expected to be empty5664 when a project is passed in5665 only returns deploy keys with write access5666 returns deploy keys only for this project5667 and a specific deploy key is passed in5668 and this deploy key is not linked to the project5669 is expected to be empty5670 and this deploy key has not write access to the project5671 is expected to be empty5672 and this deploy key has write access to the project5673 is expected to contain exactly #<DeployKey id: 21, user_id: nil, created_at: "2022-07-04 07:47:18.919515277 +0000", updated_at: "202...xpires_at: nil, expiry_notification_delivered_at: nil, before_expiry_notification_delivered_at: nil>5674 PolicyActor methods5675 responds to all PolicyActor methods5676 #can?5677 is expected to equal true5678 when a read deploy key is enabled in the project5679 is expected to equal false5680 is expected to equal true5681 is expected to equal false5682 when a write deploy key is enabled in the project5683 is expected to equal false5684 is expected to equal true5685 is expected to equal true5686 when the deploy key is not enabled in the project5687 is expected to equal false5688 is expected to equal false5689 is expected to equal false5690Banzai::ReferenceParser::AlertParser5691 #nodes_visible_to_user5692 when the link has a data-issue attribute5693 behaves like referenced feature visibility5694 when feature is disabled5695 does not create reference5696 when feature is enabled only for team members5697 does not create reference for non member5698 creates reference for member5699 when feature is enabled5700 creates reference5701 #referenced_by5702 when the link has a data-alert attribute5703 using an existing alert ID5704 returns an Array of alerts5705 using a non-existing alert ID5706 returns an empty Array5707Mutations::Todos::Create5708 #resolve5709 when target does not support todos5710 raises error5711 with issue as target5712 behaves like create todo mutation5713 when user does not have permission to create todo5714 raises error5715 when user has permission to create todo5716 creates a todo5717 with merge request as target5718 behaves like create todo mutation5719 when user does not have permission to create todo5720 raises error5721 when user has permission to create todo5722 creates a todo5723 with design as target5724 behaves like create todo mutation5725 when user does not have permission to create todo5726 raises error5727 when user has permission to create todo5728 creates a todo5729Gitlab::Pagination::Keyset::ColumnOrderDefinition5730 #order_direction5731 inferring order_direction from order_expression5732 is expected to be ascending order5733 is expected not to be descending order5734 is expected to be descending order5735 is expected not to be ascending order5736 is expected to be ascending order5737 is expected not to be descending order5738 raises error when order direction cannot be infered5739 does not raise error when order direction is explicitly given5740 #column_expression5741 inferring column_expression from order_expression5742 infers the correct column expression5743 raises error when raw string is given as order expression5744 #reversed_order_expression5745 raises error when order cannot be reversed automatically5746 #reverse5747 is expected to eq #<Arel::Nodes::Descending:0x00007f234ed948d8 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar..._message: string, project_namespace_id: integer, hidden: boolean)>, @table_alias=nil>, name="name">>5748 is expected to be descending order5749 is expected to eq #<Arel::Nodes::Descending:0x00007f234db1abd0 @expr=#<Arel::Nodes::NamedFunction:0x00007f233fe3b020 @e...lias=nil>, name="description">, "'No Description'"], @alias=nil, @distinct=false, @name="COALESCE">>5750 is expected to be descending order5751 when reversed_order_expression is given5752 uses the given expression5753 #nullable5754 when the column is nullable5755 requires the position of the null values in the result5756 reverses nullable correctly5757 raises error when invalid nullable value is given5758 raises error when the column is nullable and distinct5759 #order_direction_as_sql_string5760 is expected to eq "ASC"5761 is expected to eq "DESC"5762 is expected to eq "DESC"5763 is expected to eq "ASC"5764 is expected to eq "DESC NULLS LAST"5765 is expected to eq "ASC NULLS FIRST"5766DeleteContainerRepositoryWorker5767 #perform5768 executes the destroy service5769 with an invalid user id5770 is expected not to raise Exception5771 with an invalid repository id5772 is expected not to raise Exception5773 with a repository being migrated5774 with migration state set to pre importing5775 does not destroy the repository and re enqueue the job5776 behaves like not re enqueuing job if feature flag is disabled5777 behaves like destroying the repository5778 does destroy the repository5779 with migration state set to pre_import_done5780 does not destroy the repository and re enqueue the job5781 behaves like not re enqueuing job if feature flag is disabled5782 behaves like destroying the repository5783 does destroy the repository5784 with migration state set to importing5785 does not destroy the repository and re enqueue the job5786 behaves like not re enqueuing job if feature flag is disabled5787 behaves like destroying the repository5788 does destroy the repository5789 with migration state set to import_aborted5790 does not destroy the repository and re enqueue the job5791 behaves like not re enqueuing job if feature flag is disabled5792 behaves like destroying the repository5793 does destroy the repository5794 with migration state set to default5795 behaves like destroying the repository5796 does destroy the repository5797 behaves like not re enqueuing job if feature flag is disabled5798 behaves like destroying the repository5799 does destroy the repository5800 with migration state set to import_done5801 behaves like destroying the repository5802 does destroy the repository5803 behaves like not re enqueuing job if feature flag is disabled5804 behaves like destroying the repository5805 does destroy the repository5806 with migration state set to import_skipped5807 behaves like destroying the repository5808 does destroy the repository5809 behaves like not re enqueuing job if feature flag is disabled5810 behaves like destroying the repository5811 does destroy the repository5812Ci::UpdateInstanceVariablesService5813 #execute5814 without variables5815 is expected to be truthy5816 with insert only variables5817 is expected to be truthy5818 persists all the records5819 persists attributes5820 with update only variables5821 is expected to be truthy5822 does not change the count5823 updates the records in place5824 with insert and update variables5825 is expected to be truthy5826 inserts only one record5827 persists all the records5828 with insert, update, and destroy variables5829 is expected to be truthy5830 persists all the records5831 with invalid variables5832 is expected to be falsey5833 does not insert any records5834 does not update existing records5835 returns errors5836 when deleting non existing variables5837 is expected to raise ActiveRecord::RecordNotFound5838 when updating non existing variables5839 is expected to raise ActiveRecord::RecordNotFound5840PagesDomains::ObtainLetsEncryptCertificateService5841 when there is no acme order5842 creates acme order and schedules next step5843 when there is expired acme order5844 removes acme order and creates new one5845 there is an order in 'pending' status5846 does not raise errors5847 there is an order in 'processing' status5848 does not raise errors5849 when order is ready5850 request certificate and schedules next step5851 when order is valid5852 saves private_key and certificate for domain5853 marks certificate as gitlab_provided5854 removes order from database5855 when order is invalid5856 saves error to domain and deletes acme order5857 sends notification5858Kramdown::Parser::AtlassianDocumentFormat5859 markdown render5860 renders header id to html5861 logs an error with invalid json5862 logs an error if no valid document node5863 invalid node gets ignored5864 behaves like render elements to markdown5865 renders blockquote5866 behaves like render elements to markdown5867 renders bullet_list5868 behaves like render elements to markdown5869 renders code_block5870 behaves like render elements to markdown5871 renders emoji5872 behaves like render elements to markdown5873 renders hard_break5874 behaves like render elements to markdown5875 renders heading5876 behaves like render elements to markdown5877 renders inline_card5878 behaves like render elements to markdown5879 renders media_group5880 behaves like render elements to markdown5881 renders media_single5882 behaves like render elements to markdown5883 renders mention5884 behaves like render elements to markdown5885 renders ordered_list5886 behaves like render elements to markdown5887 renders panel5888 behaves like render elements to markdown5889 renders paragraph5890 behaves like render elements to markdown5891 renders rule5892 behaves like render elements to markdown5893 renders table5894 behaves like render elements to markdown5895 renders strong_em_mark5896 behaves like render elements to markdown5897 renders code_mark5898 behaves like render elements to markdown5899 renders link_mark5900 behaves like render elements to markdown5901 renders strike_sup_sub_mark5902 behaves like render elements to markdown5903 renders underline_text_color_mark5904 behaves like render elements to markdown5905 renders complex_document5906Packages::Composer::CacheUploader5907 behaves like builds correct paths5908 #store_dir5909 behaves like matches the method pattern5910 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/5911 #cache_dir5912 behaves like matches the method pattern5913 is expected to match /\/packages\/tmp\/cache/5914 #work_dir5915 behaves like matches the method pattern5916 is expected to match /\/packages\/tmp\/work/5917 #upload_path5918 behaves like matches the method pattern5919 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5920 #relative_path5921 is relative (PENDING: Path not set, skipping.)5922 .absolute_path5923 behaves like matches the method pattern5924 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5925 .base_dir5926 behaves like matches the method pattern5927 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5928 path traversal exploits5929 throws an exception5930 object store is remote5931 behaves like builds correct paths5932 #store_dir5933 behaves like matches the method pattern5934 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/composer_cache\/\d+$/5935 #cache_dir5936 behaves like matches the method pattern5937 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5938 #work_dir5939 behaves like matches the method pattern5940 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5941 #upload_path5942 behaves like matches the method pattern5943 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5944 #relative_path5945 is relative (PENDING: Path not set, skipping.)5946 .absolute_path5947 behaves like matches the method pattern5948 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5949 .base_dir5950 behaves like matches the method pattern5951 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5952 path traversal exploits5953 throws an exception5954 remote file5955 with object storage enabled5956 can store file remotely5957Integrations::SlackSlashCommands5958 behaves like Integrations::BaseSlashCommands5959 Associations5960 is expected to respond to #token5961 is expected to have many chat_names5962 #valid_token?5963 when the token is empty5964 is false5965 when there is a token5966 accepts equal tokens5967 #trigger5968 no token is passed5969 returns nil5970 with a token passed5971 no user can be found5972 when no url can be generated5973 responds with the authorize url5974 when an auth url can be generated5975 generates the url5976 when the user is authenticated5977 triggers the command5978 when user is blocked5979 behaves like blocks command execution5980 is expected to match "you do not have access to the GitLab project"5981 when user is deactivated5982 behaves like blocks command execution5983 is expected to match "your account has been deactivated by your administrator"5984 #trigger5985 when an auth url is generated5986 uses slack compatible links5987 #chat_responder5988 returns the responder to use for Slack5989Gitlab::Ci::Pipeline::Chain::Limit::Deployments5990 when pipeline deployments limit is exceeded5991 logs the error5992 when saving incompleted pipelines5993 drops the pipeline5994 breaks the chain5995 sets a valid failure reason5996 calls increment_pipeline_failure_reason_counter5997 when not saving incomplete pipelines5998 does not persist the pipeline5999 breaks the chain6000 adds an informative error to the pipeline6001 increments the error metric6002 when pipeline deployments limit is not exceeded6003 does not break the chain6004 does not invalidate the pipeline6005 does not log any error6006SystemNotes::CommitService6007 #add_commits6008 behaves like a system note6009 has the correct attributes6010 note body6011 comparison diff link line6012 adds the comparison text6013 without existing commits6014 adds a message header6015 adds a message for each commit6016 summary line for existing commits6017 with one existing commit6018 includes the existing commit6019 with multiple existing commits6020 with oldrev6021 includes a commit range and count6022 without oldrev6023 includes a commit range and count6024 on a fork6025 includes the project namespace6026 #tag_commit6027 sets the note text6028 behaves like a system note6029 has the correct attributes6030 #new_commit_summary6031 escapes HTML titles6032AppearancesHelper6033 .current_appearance6034 memoizes empty appearance6035 memoizes custom appearance6036 #header_message6037 returns nil when header message field is not set6038 when header message is set6039 includes current message6040 #footer_message6041 returns nil when footer message field is not set6042 when footer message is set6043 includes current message6044 #brand_image6045 when there is a logo6046 returns a path6047 when there is a logo but no associated upload6048 falls back to using the original path6049 #brand_header_logo6050 renders shared/logo by default6051 with header logo6052 renders image tag6053 with add_gitlab_white_text option6054 renders shared/logo_with_white_text partial6055 with add_gitlab_black_text option6056 renders shared/logo_with_black_text partial6057 #brand_title6058 returns the default title when no appearance is present6059UserInteractedProject6060 is expected to validate that :project_id cannot be empty/falsy6061 is expected to validate that :user_id cannot be empty/falsy6062 .track6063 sets project accordingly6064 sets user accordingly6065 only creates a record once per user/project6066 for all actions (event types)6067 creates a record6068 for all actions (event types)6069 creates a record6070 for all actions (event types)6071 creates a record6072 for all actions (event types)6073 creates a record6074 for all actions (event types)6075 creates a record6076 for all actions (event types)6077 creates a record6078 for all actions (event types)6079 creates a record6080 for all actions (event types)6081 creates a record6082 for all actions (event types)6083 creates a record6084 for all actions (event types)6085 creates a record6086 for all actions (event types)6087 creates a record6088 for all actions (event types)6089 creates a record6090 with an event without a project6091 ignores the event6092Gitlab::Kubernetes::Helm::V2::InstallCommand6093 behaves like helm command generator6094 #generate_script6095 returns appropriate command6096 when rbac is true6097 behaves like helm command generator6098 #generate_script6099 returns appropriate command6100 when there is a pre-install script6101 behaves like helm command generator6102 #generate_script6103 returns appropriate command6104 when there is a post-install script6105 behaves like helm command generator6106 #generate_script6107 returns appropriate command6108 when there is no version6109 behaves like helm command generator6110 #generate_script6111 returns appropriate command6112 behaves like helm command6113 HELM_VERSION6114 is expected to match /\d+\.\d+\.\d+/6115 #env6116 is expected to be a kind of Hash6117 #rbac?6118 rbac is enabled6119 is expected to be truthy6120 rbac is not enabled6121 is expected to be falsey6122 #pod_resource6123 rbac is enabled6124 is expected to be an instance of Kubeclient::Resource6125 generates a pod that uses the tiller serviceAccountName6126 rbac is not enabled6127 is expected to be an instance of Kubeclient::Resource6128 generates a pod that uses the default serviceAccountName6129 #config_map_resource6130 returns a KubeClient resource with config map content for the application6131 #service_account_resource6132 rbac is enabled6133 generates a Kubeclient resource for the tiller ServiceAccount6134 rbac is not enabled6135 generates nothing6136 #cluster_role_binding_resource6137 rbac is enabled6138 generates a Kubeclient resource for the ClusterRoleBinding for tiller6139 binds the account in #service_account_resource6140 rbac is not enabled6141 generates nothing6142MergeRequestSerializer6143 widget merge request serialization6144 matches issue json schema6145 sidebar merge request serialization6146 matches merge_request_sidebar json schema6147 sidebar_extras merge request serialization6148 matches merge_request_sidebar_extras json schema6149 basic merge request serialization6150 matches basic merge request json schema6151 noteable merge request serialization6152 matches noteable merge request json schema6153 when merge_request is locked6154 matches noteable merge request json schema6155 when project is archived6156 matches noteable merge request json schema6157 poll cached widget merge request serialization6158 matches basic merge request json schema6159 poll widget merge request serialization6160 matches basic merge request json schema6161 no serializer6162 falls back to the widget entity6163Gitlab::Ci::Config::Extendable::Entry6164 .new6165 when entry key is not included in the context hash6166 raises error6167 #value6168 reads a hash value from the context6169 #extensible?6170 when entry has inheritance defined6171 is extensible6172 when entry does not have inheritance specified6173 is not extensible6174 when entry value is not a hash6175 is not extensible6176 #extends_keys6177 when entry is extensible6178 returns symbolized extends key value6179 when entry is not extensible6180 returns nil6181 #ancestors6182 returns ancestors keys6183 #base_hashes!6184 when base hash is not extensible6185 returns unchanged base hashes6186 when base hash is extensible too6187 extends the base hashes first6188 mutates original context6189 #extend!6190 when extending a non-hash value6191 raises an error6192 when extending unknown key6193 raises an error6194 when extending a hash correctly6195 returns extended part of the hash6196 mutates original context6197 when extending multiple hashes correctly6198 returns extended part of the hash6199 mutates original context6200 when hash is not extensible6201 returns original key value6202 does not mutate orignal context6203 when circular depenency gets detected6204 raises an error6205 when nesting level is too deep6206 raises an error6207Gitlab::Database::LoadBalancing::ServiceDiscovery6208 #initialize6209 :record_type6210 with a supported type6211 is expected to eq 336212 with an unsupported type6213 raises an argument error6214 #start6215 starts service discovery in a new thread6216 #perform_service_discovery6217 without any failures6218 runs once6219 with failures6220 retries service discovery when under the retry limit6221 does not retry service discovery after exceeding the limit6222 reports exceptions to Sentry6223 #refresh_if_necessary6224 when a refresh is necessary6225 refreshes the load balancer hosts6226 when a refresh is not necessary6227 does not refresh the load balancer hosts6228 #replace_hosts6229 replaces the hosts of the load balancer6230 disconnects the old connections6231 #addresses_from_dns6232 with an A record6233 returns a TTL and ordered list of IP addresses6234 with an SRV record6235 returns a TTL and ordered list of hosts6236 when the resolver returns an empty response6237 raises EmptyDnsResponse6238 #new_wait_time_for6239 returns the DNS TTL if greater than the default interval6240 returns the default interval if greater than the DNS TTL6241 returns the default interval if no resources are given6242 #addresses_from_load_balancer6243 returns the ordered host names of the load balancer6244Gitlab::Kubernetes::Helm::V2::BaseCommand6245 HELM_VERSION6246 is expected to match /^2\.\d+\.\d+$/6247 #env6248 is expected to include {:TILLER_NAMESPACE => "gitlab-managed-apps"}6249 behaves like helm command generator6250 #generate_script6251 returns appropriate command6252 #pod_name6253 is expected to eq "install-test-class-name"6254 behaves like helm command6255 HELM_VERSION6256 is expected to match /\d+\.\d+\.\d+/6257 #env6258 is expected to be a kind of Hash6259 #rbac?6260 rbac is enabled6261 is expected to be truthy6262 rbac is not enabled6263 is expected to be falsey6264 #pod_resource6265 rbac is enabled6266 is expected to be an instance of Kubeclient::Resource6267 generates a pod that uses the tiller serviceAccountName6268 rbac is not enabled6269 is expected to be an instance of Kubeclient::Resource6270 generates a pod that uses the default serviceAccountName6271 #config_map_resource6272 returns a KubeClient resource with config map content for the application6273 #service_account_resource6274 rbac is enabled6275 generates a Kubeclient resource for the tiller ServiceAccount6276 rbac is not enabled6277 generates nothing6278 #cluster_role_binding_resource6279 rbac is enabled6280 generates a Kubeclient resource for the ClusterRoleBinding for tiller6281 binds the account in #service_account_resource6282 rbac is not enabled6283 generates nothing6284JiraImport::UsersImporter6285 #execute6286 when Jira import is not configured properly6287 returns an error6288 when Jira instance is of Server deployment type6289 behaves like maps Jira users to GitLab users6290 when Jira import is configured correctly6291 when users mapper service raises an error6292 returns an error response6293 when users mapper service returns result6294 when users mapper service returns an empty array6295 returns nil payload6296 when Jira client returns any users6297 returns the mapped users6298 when Jira instance is of Cloud deployment type6299 behaves like maps Jira users to GitLab users6300 when Jira import is configured correctly6301 when users mapper service raises an error6302 returns an error response6303 when users mapper service returns result6304 when users mapper service returns an empty array6305 returns nil payload6306 when Jira client returns any users6307 returns the mapped users6308JiraImport::ServerUsersMapperService6309 #execute6310 behaves like mapping jira users6311 jira_users is nil6312 returns an empty array6313 when jira_users is present6314 returns users mapped to Gitlab6315 runs only 4 queries6316Sidebars::Projects::Menus::InfrastructureMenu6317 #render?6318 when menu does not have any menu items6319 returns false6320 when menu has menu items6321 returns true6322 #link6323 when Kubernetes menu item is visible6324 menu link points to Kubernetes page6325 when Kubernetes menu item is not visible6326 menu link points to Terraform page6327 when Terraform menu is not visible6328 menu link points to Google Cloud page6329 Menu Items6330 Kubernetes6331 behaves like access rights checks6332 is expected not to be nil6333 when the user does not have access6334 is expected to be nil6335 Terraform6336 behaves like access rights checks6337 is expected not to be nil6338 when the user does not have access6339 is expected to be nil6340 Google Cloud6341 behaves like access rights checks6342 is expected not to be nil6343 when the user does not have access6344 is expected to be nil6345 when feature flag is turned off globally6346 is expected to be nil6347 when feature flag is enabled for specific project6348 behaves like access rights checks6349 is expected not to be nil6350 when the user does not have access6351 is expected to be nil6352 when feature flag is enabled for specific group6353 behaves like access rights checks6354 is expected not to be nil6355 when the user does not have access6356 is expected to be nil6357 when feature flag is enabled for specific project6358 behaves like access rights checks6359 is expected not to be nil6360 when the user does not have access6361 is expected to be nil6362Resolvers::DesignManagement::Version::DesignAtVersionResolver6363 #resolve6364 passing combinations of arguments6365 passing no arguments6366 behaves like a bad argument6367 generates an error6368 passing all arguments6369 behaves like a bad argument6370 generates an error6371 passing any two arguments6372 behaves like a bad argument6373 generates an error6374 passing id6375 finds the design6376 when the user cannot see designs6377 returns nothing6378 passing design_id6379 finds the design6380 when the user cannot see designs6381 returns nothing6382 passing filename6383 finds the design6384 when the user cannot see designs6385 returns nothing6386 attempting to retrieve an object not visible at this version6387 passing id6388 does not find the design6389 passing design_id6390 does not find the design6391 passing filename6392 does not find the design6393Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches6394 .build6395 with non-evaluable operands6396 creates a new instance of the token6397 with evaluable operands6398 creates a new instance of the token6399 .type6400 is an operator6401 .precedence6402 has a precedence6403 #evaluate6404 when left and right do not match6405 is expected to eq true6406 when left and right match6407 is expected to eq false6408 when left is nil6409 is expected to eq true6410 when right is nil6411 is expected to eq true6412 when left and right are nil6413 is expected to eq true6414 when left is an empty string6415 is expected to eq true6416 when left and right are empty strings6417 is expected to eq false6418 when left is a multiline string and matches right6419 is expected to eq false6420 when left is a multiline string and does not match right6421 is expected to eq true6422 when a matching pattern uses regex flags6423 is expected to eq false6424 when a non-matching pattern uses regex flags6425 is expected to eq true6426 when right value is a regexp string6427 when matching6428 is expected to eq false6429 when the FF ci_fix_rules_if_comparison_with_regexp_variable is disabled6430 is expected to eq true6431 when not matching6432 is expected to eq true6433BitbucketServer::Representation::PullRequest6434 #author6435 is expected to eq "root"6436 #author_email6437 is expected to eq "joe.montana@49ers.com"6438 #author_username6439 returns username6440 when username is absent6441 returns slug6442 when slug and username are absent6443 returns displayName6444 #description6445 is expected to eq "Test"6446 #iid6447 is expected to eq 76448 #state6449 is expected to eq "merged"6450 declined pull requests6451 returns closed6452 open pull requests6453 returns open6454 #merged?6455 is expected to be truthy6456 #created_at6457 is expected to eq 15306006356458 #updated_at6459 is expected to eq 15306006486460 #title6461 is expected to eq "Added a new line"6462 #source_branch_name6463 is expected to eq "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006"6464 #source_branch_sha6465 is expected to eq "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8"6466 #target_branch_name6467 is expected to eq "refs/heads/master"6468 #target_branch_sha6469 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"6470projects/notes/_more_actions_dropdown6471 shows Report abuse to admin button if not editable and not current users comment6472 does not show the More actions button if not editable and current users comment6473 shows Report abuse to admin and Delete buttons if editable and not current users comment6474 shows Delete button if editable and current users comment6475HamlLint::Linter::NoPlainNodes6476 reports when a tag has an inline plain node6477 is expected to report a lint with message '`Hello Tanuki` is a plain node. Please use an i18n method like `= _('Hello Tanuki')`'6478 reports when a tag has multiline plain nodes6479 is expected to report a lint6480 reports when a tag has an inline plain node with interpolation6481 is expected to report a lint6482 does not report when a tag has an inline script6483 is expected not to report a lint6484 does not report when a tag is empty6485 is expected not to report a lint6486 reports multiple when a tag has multiline plain nodes split by non-text nodes6487 is expected to report a lint6488 does not report when a html entity6489 is expected not to report a lint6490 does report when something that looks like a html entity6491 is expected to report a lint6492 does not report multiline when one or more html entities6493 >6494 ©6495 »6496 does report multiline when one or more html entities amidst plain text6497 Test6498 Test>6499 ©Hello6500 Hello»6501Resolvers::TreeResolver6502 is expected to have nullable GraphQL type Tree6503 #resolve6504 resolves to a tree6505 resolve to a recursive tree6506 when repository does not exist6507 returns nil6508BackgroundMigration::CiDatabaseWorker6509 behaves like it runs background migration jobs6510 defining the job attributes6511 defines the data_consistency as always6512 defines the retry count in sidekiq_options6513 defines the feature_category as database6514 defines the urgency as throttled6515 defines the loggable_arguments6516 .tracking_database6517 does not raise an error6518 overrides the method to return the tracking database6519 .minimum_interval6520 returns 2 minutes6521 #perform6522 when execute_background_migrations feature flag is disabled6523 does not perform the job, reschedules it in the future, and logs a message6524 when execute_background_migrations feature flag is enabled6525 performs jobs using the coordinator for the worker6526 when lease can be obtained6527 sets up the shared connection before checking replication6528 performs a background migration6529 can run scheduled job and retried job concurrently6530 sets the class that will be executed as the caller_id6531 when lease_attempts is 16532 performs a background migration6533 when lease not obtained (migration of same class was performed recently)6534 reschedules the migration and decrements the lease_attempts6535 when lease_attempts is 16536 reschedules the migration and decrements the lease_attempts6537 when lease_attempts is 06538 gives up performing the migration6539 when database is not healthy6540 reschedules a migration if the database is not healthy6541 increments the unhealthy counter6542 when lease_attempts is 06543 gives up performing the migration6544gitlab:background_migrations namespace rake tasks6545 finalize6546 without the proper arguments6547 exits without finalizing the migration6548 with the proper arguments6549 finalizes the matching migration6550 with a null parameter6551 finalizes the matching migration6552 when multiple database feature is enabled6553 ignores geo6554 without the proper arguments6555 exits without finalizing the migration6556 with the proper arguments6557 finalizes the matching migration6558 when database name is not passed6559 aborts the rake task6560 status6561 outputs the status of background migrations6562 when multiple database feature is enabled6563 with a single database6564 outputs the status of background migrations6565 ignores geo6566 with multiple databases6567 outputs the status for each database6568Mutations::Todos::RestoreMany6569 #resolve6570 restores a single todo6571 handles a todo which is already pending as expected6572 ignores requests for todos which do not belong to the current user6573 restores multiple todos6574 fails if one todo does not belong to the current user6575 fails if too many todos are requested for update6576Gitlab::HealthChecks::DbCheck6577 #metrics6578 Check is passing6579 is expected to include (have attributes {:name => "db_ping_success", :value => 1})6580 is expected to include (have attributes {:name => "db_ping_timeout", :value => 0})6581 is expected to include (have attributes {:name => "db_ping_latency_seconds", :value => (be >= 0)})6582 Check is misbehaving6583 is expected to include (have attributes {:name => "db_ping_success", :value => 0})6584 is expected to include (have attributes {:name => "db_ping_timeout", :value => 0})6585 is expected to include (have attributes {:name => "db_ping_latency_seconds", :value => (be >= 0)})6586 Check is timeouting6587 is expected to include (have attributes {:name => "db_ping_success", :value => 0})6588 is expected to include (have attributes {:name => "db_ping_timeout", :value => 1})6589 is expected to include (have attributes {:name => "db_ping_latency_seconds", :value => (be >= 0)})6590 #readiness6591 Check returns ok6592 is expected to have attributes {:success => true}6593 Check is misbehaving6594 is expected to have attributes {:message => "unexpected Db check result: error!", :success => false}6595 Check is timeouting6596 is expected to have attributes {:message => "Db check timed out", :success => false}6597 Check is raising an unhandled exception6598 is expected to have attributes {:message => "unexpected Db check result: unexpected error", :success => false}6599 with multiple databases6600 checks multiple databases6601PrometheusMetricsFinder6602 #execute6603 with params6604 with appropriate indexes6605 with project6606 is expected to eq [#<PrometheusMetric id: 12, project_id: 1658, title: [FILTERED], query: "avg(metric)", y_label: "y_la...45 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]6607 with group6608 is expected to contain exactly #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 12, project_id: 1658, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...045 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6609 with title6610 is expected to contain exactly #<PrometheusMetric id: 12, project_id: 1658, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...045 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6611 with y_label6612 is expected to contain exactly #<PrometheusMetric id: 12, project_id: 1658, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...045 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6613 with common6614 is expected to contain exactly #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 14, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6615 with ordered6616 is expected to eq [#<PrometheusMetric id: 14, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Uniqu...935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]6617 with indentifier6618 raises an error6619 with common6620 is expected to contain exactly #<PrometheusMetric id: 14, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6621 with id6622 raises an error6623 with id6624 is expected to contain exactly #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6625 with multiple params6626 is expected to contain exactly #<PrometheusMetric id: 13, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...6935 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">6627 without an appropriate index6628 raises an error6629 without params6630 raises an error6631API::Entities::MergeRequestChanges6632 exposes basic entity fields6633 when #expose_raw_diffs? returns false6634 does not access merge_request.raw_diffs6635 when #expose_raw_diffs? returns true6636 does not access merge_request.raw_diffs6637 :overflow field6638 when :access_raw_diffs is true6639 reports false6640Gitlab::Usage::Metric6641 #with_value6642 returns key_path metric with the corresponding value6643 #with_instrumentation6644 returns key_path metric with the corresponding generated query6645 #with_suggested_name6646 returns key_path metric with the corresponding generated query6647 unavailable metric6648 #with_value6649 returns an empty hash6650 #with_instrumentation6651 returns an empty hash6652 #with_suggested_name6653 returns an empty hash6654UserDetail6655 is expected to belong to user required: false6656 is expected to define :registration_objective as an enum backed by an integer with values ‹[:basics, :move_repository, :code_storage, :exploring, :ci, :other, :joining_team]›, suffix: true6657 validations6658 #job_title6659 is expected not to validate that :job_title cannot be empty/falsy6660 is expected to validate that the length of :job_title is at most 2006661 #pronouns6662 is expected not to validate that :pronouns cannot be empty/falsy6663 is expected to validate that the length of :pronouns is at most 506664 #pronunciation6665 is expected not to validate that :pronunciation cannot be empty/falsy6666 is expected to validate that the length of :pronunciation is at most 2556667 #bio6668 is expected to validate that the length of :bio is at most 2556669DraftNotes::DestroyService6670 destroys a single draft note6671 destroys all draft notes for a user in a merge request6672 diff highlight cache clearing6673 when destroying all draft notes of a user6674 clears highlighting cache if unfold required for any6675 when destroying one draft note6676 clears highlighting cache if unfold required6677Gitlab::LegacyGithubImport::ReleaseFormatter6678 #attributes6679 returns formatted attributes6680 with a nil published_at date6681 inserts a timestamp for released_at6682 #valid6683 when release is not a draft6684 returns true6685 when release is draft6686 returns false6687 when release has NULL tag6688 returns false6689Gitlab::LegacyGithubImport::Client6690 convert OAuth2 client options to symbols6691 does not crash (e.g. Settingslogic::MissingSetting) when verify_ssl config is not present6692 when config is missing6693 is still possible to get an Octokit client6694 is not be possible to get an OAuth2 client6695 allow SSL verification to be configurable on API6696 uses supplied value6697 #api_endpoint6698 when provider does not specity an API endpoint6699 uses GitHub root API endpoint6700 when provider specify a custom API endpoint6701 uses the custom API endpoint6702 when given a host6703 builds a endpoint with the given host and the default API version6704 when given an API version6705 does not use the API version without a host6706 when given a host and version6707 builds a endpoint with the given options6708 and hostname6709 builds a endpoint with the given options6710 github rate limit6711WARNING: `Faraday::Connection#authorization` is deprecated; it will be removed in version 2.0.6712While initializing your connection, use `#request(:authorization, ...)` instead.6713See https://lostisland.github.io/faraday/middleware/authentication for more usage info.6714 does not raise error when rate limit is disabled6715 when wait for rate limit is disabled6716 raises the error limit error when requested6717Projects::HashedStorage::RollbackService6718 #execute6719 attachments rollback6720 delegates rollback to Projects::HashedStorage::RollbackAttachmentsService6721 does not delegate rollback if repository is in legacy storage already6722 rollbacks to legacy storage6723 repository rollback6724 delegates rollback to RollbackRepositoryService6725 does not delegate rollback if repository is in legacy storage already6726 rollbacks to legacy storage6727Gitlab::ImportExport::UploadsManager6728 #save6729 when the project has uploads locally stored6730 does not cause errors6731 copies the file in the correct location when there is an upload6732 with orphaned project upload files6733 excludes orphaned upload files6734 with an upload missing its file6735 does not cause errors6736 when upload is in object storage6737 ignores problematic upload and logs exception6738 #restore6739 restores the file6740Packages::CreateDependencyService6741 #execute6742 when packages are published6743 creates dependencies and links6744 with repeated packages6745 creates dependencies and links6746 with dependencies bulk insert conflicts6747 creates dependences and links6748 with existing dependencies6749 reuses them6750 with a dependency not described with a hash6751 creates dependencies and links6752Gitlab::Database::Partitioning::PartitionManager6753 creating partitions (mocked)6754 creates the partition6755 when an error occurs during partition management6756 does not raise an error6757 creating partitions6758 creates partitions6759 detaching partitions (mocked)6760 detaches each extra partition6761 logs an error if the partitions are not detachable6762 #detach_partitions6763 detaches exactly one partition6764 detaches the old partition6765 deletes zero tables6766 creates the appropriate PendingPartitionDrop entry6767 when the model is the target of a foreign key6768 does not detach partitions with a referenced foreign key6769 creating and then detaching partitions for a table6770 creates partitions for the future then drops the oldest one after a month6771NamespaceSetting6772 is expected to define :jobs_to_be_done as an enum backed by an integer with values ‹[:basics, :move_repository, :code_storage, :exploring, :ci, :other]›, suffix: true6773 is expected to define :enabled_git_access_protocol as an enum backed by an integer with values ‹[:all, :ssh, :http]›, suffix: true6774 behaves like sanitizable6775 includes Sanitizable6776 #default_branch_name6777 when input includes javascript tags6778 gets sanitized6779 #default_branch_name validation6780 when input contains pre-escaped html entities6781 is not valid6782 Associations6783 is expected to belong to namespace required: false6784 validations6785 #default_branch_name_content6786 when not set6787 behaves like doesn't return an error6788 doesn't return an error6789 when set6790 behaves like doesn't return an error6791 doesn't return an error6792 when an empty string6793 behaves like doesn't return an error6794 doesn't return an error6795 #allow_mfa_for_group6796 group is top-level group6797 is valid6798 group is a subgroup6799 is invalid6800 #allow_resource_access_token_creation_for_group6801 group is top-level group6802 is valid6803 group is a subgroup6804 is invalid when resource access token creation is not enabled6805 is valid when resource access tokens are enabled6806 #prevent_sharing_groups_outside_hierarchy6807 when this namespace is a root ancestor6808 returns the actual stored value6809 when this namespace is a descendant6810 returns the value stored for the parent settings6811BulkImports::Common::Pipelines::BadgesPipeline6812 #run6813 imports a group badge6814 when project entity6815 imports a project badge & skips group badge6816 #transform6817 return transformed badge hash6818 when data is blank6819 does nothing when the data is blank6820 when project entity & group badge6821 returns6822DependencyProxy::RequestTokenService6823 remote request is successful6824 is expected to eq :success6825 is expected to eq "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"6826 remote request is not found6827 is expected to eq :error6828 is expected to eq 4046829 is expected to eq "Expected 200 response code for an access token"6830 failed to parse response body6831 is expected to eq :error6832 is expected to eq 5006833 is expected to eq "Failed to parse a response body for an access token"6834 net timeout exception6835 is expected to eq :error6836 is expected to eq 5996837 is expected to eq "execution expired"6838MergeRequests::AddSpentTimeService6839 #execute6840 creates a new timelog with the specified duration and summary6841 creates a system note with the time added6842 saves usage data6843 is more efficient than using the full update-service6844 when duration is nil6845 does not create a timelog with the specified duration6846Ci::PipelineArtifacts::CodeCoveragePresenter6847 #for_files6848 when code coverage has data6849 when filenames is empty6850 returns hash without coverage6851 when filenames do not match code coverage data6852 returns hash without coverage6853 when filenames matches code coverage data6854 when asking for one filename6855 returns coverage for the given filename6856 when asking for multiple filenames6857 returns coverage for a the given filenames6858RspecFlaky::FlakyExample6859 #initialize6860 when given an Example hash6861 behaves like a valid FlakyExample instance6862 returns valid attributes6863 when given a FlakyExample hash6864 behaves like a valid FlakyExample instance6865 returns valid attributes6866 #update_flakiness!6867 when given an Example hash6868 behaves like an up-to-date FlakyExample instance6869 sets the first_flaky_at if none exists6870 maintains the first_flaky_at if exists6871 updates the last_flaky_at6872 updates the flaky_reports6873 when passed a :last_attempts_count6874 updates the last_attempts_count6875 when run on the CI6876 updates the last_flaky_job6877 when given a FlakyExample hash6878 behaves like an up-to-date FlakyExample instance6879 sets the first_flaky_at if none exists6880 maintains the first_flaky_at if exists6881 updates the last_flaky_at6882 updates the flaky_reports6883 when passed a :last_attempts_count6884 updates the last_attempts_count6885 when run on the CI6886 updates the last_flaky_job6887 #to_h6888 when given an Example hash6889 behaves like a valid FlakyExample hash6890 returns a valid hash6891 when given a FlakyExample hash6892 behaves like a valid FlakyExample hash6893 returns a valid hash6894Gitlab::Redis::HLL6895 .add6896 when checking key format6897 for invalid keys6898 metric_key: "test", value: 16899 raise an error when using an invalid key format6900 metric_key: "test-{metric", value: 16901 raise an error when using an invalid key format6902 metric_key: "test-{metric}}", value: 16903 raise an error when using an invalid key format6904 for valid keys6905 metric_key: "test-{metric}", value: 16906 doesn't raise error when having correct format6907 metric_key: "test-{metric}-1", value: 16908 doesn't raise error when having correct format6909 metric_key: "test:{metric}-1", value: 16910 doesn't raise error when having correct format6911 metric_key: "2020-216-{project_action}", value: 16912 doesn't raise error when having correct format6913 metric_key: "i_{analytics}_dev_ops_score-2020-32", value: 16914 doesn't raise error when having correct format6915 when adding entries6916 supports single value6917 supports multiple values6918 .count6919 has 3 distinct users for weeks 32, 33, 346920 has 3 distinct users for weeks 32, 336921 has 2 distinct users for weeks 33, 346922 has one distinct user for week 336923 has 4 distinct users when one different user has an action on week 346924Ci::DailyBuildGroupReportResultService#execute6925 creates daily code coverage record for each job in the pipeline that has coverage value6926 creates a project_ci_feature_usage record for the pipeline project6927 when there are multiple builds with the same group name that report coverage6928 creates daily code coverage record with the average as the value6929 when there is an existing daily code coverage for the matching date, project, ref_path, and group name6930 updates the existing record's coverage value and last_pipeline_id6931 does not create a new project_ci_feature_usage record for the pipeline project6932 when the ID of the pipeline is older than the last_pipeline_id6933 updates the existing daily code coverage records6934 when pipeline has no builds with coverage6935 does nothing6936 when pipeline ref_path is the project default branch6937 sets default branch to true6938 creates a project_ci_feature_usage record for the pipeline project for default branch6939 when pipeline ref_path is not the project default branch6940 sets default branch to false6941Ci::JobTokenScope::AddProjectService6942 #execute6943 behaves like editable job token scope6944 when job token scope is disabled for the given project6945 behaves like returns error6946 returns an error response6947 when user does not have permissions to edit the job token scope6948 behaves like returns error6949 returns an error response6950 when user has permissions to edit the job token scope6951 when target project is not provided6952 behaves like returns error6953 returns an error response6954 when target project is provided6955 when user does not have permissions to read the target project6956 behaves like returns error6957 returns an error response6958 when user has permissions on source and target projects6959 adds the project to the scope6960 when target project is same as the source project6961 behaves like returns error6962 returns an error response6963RuboCop::Cop::CodeReuse::Serializer6964 flags the use of a Serializer in a Service class6965 flags the use of a Serializer in a Finder6966 flags the use of a Serializer in a Presenter6967 flags the use of a Serializer in a Serializer6968 flags the use of a Serializer in a model instance method6969 flags the use of a Serializer in a model class method6970 flags the use of a Serializer in a worker6971DesignManagement::CopyDesignCollection::QueueService6972 returns an error if user does not have permission6973 when user has permission6974 returns an error if design collection copy_state is not queuable6975 sets the design collection copy state6976 queues a DesignManagement::CopyDesignCollectionWorker6977 returns success6978X509SerialNumberAttribute6979 #x509_serial_number_attribute6980 when in non-production6981 when the table exists6982 defines a x509 serial number attribute for a binary column6983 raises ArgumentError when the column type is not :binary6984 when the table does not exist6985 allows the attribute to be added and issues a warning6986 when the column does not exist6987 allows the attribute to be added and issues a warning6988 when other execeptions are raised6989 logs and re-rasises the error6990 when in production6991 defines a x509 serial number attribute6992Gitlab::PhabricatorImport::Importer6993 is expected to be async6994 acts like it's importing repositories6995 #execute6996 sets a custom jid that will be kept up to date6997 starts importing tasks6998 marks the import as failed when something goes wrong6999projects/settings/ci_cd/_autodevops_form7000 shows a warning message about Kubernetes cluster7001 when the project has an available kubernetes cluster7002 does not show a warning message about Kubernetes cluster7003 shows a warning message about base domain7004Resolvers::LastCommitResolver7005 #resolve7006 last commit is a merge commit7007 resolves to the merge commit7008 last commit for a different branch and path7009 resolves commit7010 last commit for a wildcard pathspec7011 returns nil7012 last commit with pathspec characters7013 resolves commit7014 last commit does not exist7015 returns nil7016API::Entities::Release7017 evidences7018 when the current user can download code7019 exposes the evidence sha and the json path7020 when the current user cannot download code7021 does not expose any evidence data7022 description_html7023 is inexistent7024 when include_html_description option is true7025 renders special references if current user has access7026 does not render special references if current user has no access7027PipelineHooksWorker7028 #perform7029 when pipeline exists7030 executes hooks for the pipeline7031 when pipeline does not exist7032 does not raise exception7033 when the user is blocked7034 returns early without executing7035 behaves like worker with data consistency7036 .get_data_consistency_feature_flag_enabled?7037 returns true7038 .get_data_consistency7039 returns correct data consistency7040AfterCommitQueue7041 #run_after_commit7042 runs after record is saved7043 runs after transaction is committed7044 #run_after_commit_or_now7045 runs immediately if not within a transction7046 runs after transaction has completed7047 multiple databases - Ci::ApplicationRecord models7048 runs immediately if not within a transaction7049 runs after transaction has completed7050Branches::DeleteService7051 #execute7052 when user has access to push to repository7053 behaves like a deleted branch7054 removes the branch7055 calls the RefDeleteUnlockArtifactsWorker7056 when Gitlab::Git::CommandError is raised7057 handles and returns error7058 when user does not have access to push to repository7059 does not remove branch7060Gitlab::JiraImport::Stage::FinishImportWorker7061 modules7062 behaves like include import workers modules7063 is expected to includes the ApplicationWorker module7064 is expected to includes the Gitlab::JiraImport::QueueOptions module7065 is expected to includes the Gitlab::JiraImport::ImportWorker module7066 #perform7067 when import did not start7068 behaves like cannot do Jira import7069 does not advance to next stage7070 when import started7071 changes import state to finished7072 saves imported issues counts7073Ci::ArtifactBlob7074 #id7075 returns a hash of the path7076 #name7077 returns the entry name7078 #path7079 returns the entry path7080 #size7081 returns the entry size7082 #mode7083 returns the entry mode7084 #external_storage7085 returns :build_artifact7086 #external_url7087 .gif extension7088 returns nil7089 txt extensions7090 returns a URL7091 when port is configured7092 returns an URL with port number7093 #external_link?7094 gif extensions7095 returns false7096 txt extensions7097 returns true7098Projects::AllMergeRequestsCountService7099 behaves like a counter caching service7100 #count7101 caches the count7102 #refresh_cache7103 refreshes the cache7104 #delete_cache7105 removes the cache7106 #uncached_count7107 does not cache the count7108 #count7109 returns the number of all merge requests7110Gitlab::Pagination::Keyset7111 .available_for_type?7112 returns true for Project7113 return false for other types of relations7114 .available?7115 with order-by id asc7116 behaves like keyset pagination is available7117 returns true for Project7118 return false for other types of relations7119 with order-by id desc7120 behaves like keyset pagination is available7121 returns true for Project7122 return false for other types of relations7123 with other order-by columns7124 returns false for Project7125 return false for other types of relations7126admin/application_settings/ci_cd.html.haml7127 CI CD Runner Registration7128 when feature flag is enabled7129 has the setting section7130 renders the correct setting section content7131 when feature flag is disabled7132 does not have the setting section7133 does not render the correct setting section content7134Gitlab::Usage::Metrics::Instrumentations::NumbersMetric7135 #value7136 calculates a correct result7137 with availability defined7138 responds to #available? properly7139 with availability not defined7140 responds to #available? properly7141 with unimplemented operation method used7142 raises an error7143Gitlab::ImportExport::Json::NdjsonWriter7144 #write_attributes7145 writes correct json to root7146 #write_relation7147 when single relation is serialized7148 appends json in correct file7149 when single relation is already serialized7150 raise exception7151 #write_relation_array7152 writes json in correct files7153Atlassian::JiraConnect::Jwt::Symmetric7154 #iss_claim7155 is expected to eq "123"7156 invalid JWT7157 is expected to eq nil7158 #sub_claim7159 is expected to eq "123"7160 invalid JWT7161 is expected to eq nil7162 #valid?7163 invalid JWT7164 is expected to eq false7165 valid JWT7166 is expected to eq true7167 #verify_qsh_claim7168 is expected to eq true7169 qsh does not match7170 is expected to eq false7171 creating query string hash raises an error7172 is expected to eq false7173 #verify_context_qsh_claim7174 is expected to eq true7175 jwt does not contain a context qsh7176 is expected to eq false7177CustomerRelations::Organizations::CreateService7178 #execute7179 creates an organization7180 returns an error when user does not have permission7181 returns an error when the organization is not persisted7182Gitlab::Checks::MatchingMergeRequest7183 #match?7184 matches a merge request7185 does not match any merge request7186 with load balancing enabled7187 behaves like secondary that has caught up to a primary7188 continues to use the secondary7189 only increments total counter7190 on secondary behind primary7191 behaves like secondary that is lagging primary7192 sticks to the primary7193 increments both total and stale counters7194Resolvers::ProjectMembersResolver7195 behaves like querying members with a group7196 #resolve7197 finds all resource members7198 with search7199 when the search term matches a user7200 searches users by user name7201 when the search term does not match any user7202 is empty7203 when user can not see resource members7204 generates an error7205FileSizeValidator7206 options uses an integer7207 attachment exceeds maximum limit7208 attachment under maximum limit7209 options uses a symbol7210 attachment exceeds maximum limit7211 attachment under maximum limit7212Repositories::BranchNamesFinder7213 #execute7214 returns all filtered branch names7215 returns a limited number of offset filtered branch names7216Gitlab::Auth::OAuth::Provider7217 .enabled?7218 when OmniAuth is disabled7219 allows database auth7220 allows LDAP auth7221 does not allow other OmniAuth providers7222 when OmniAuth is enabled7223 allows database auth7224 allows LDAP auth7225 allows other OmniAuth providers7226 .config_for7227 for an LDAP provider7228 when the provider exists7229 returns the config7230 when the provider does not exist7231 returns nil7232 for an OmniAuth provider7233 when the provider exists7234 returns the config7235 merges defaults with the given configuration7236 when the provider does not exist7237 returns nil7238 .label_for7239 when configuration specifies a custom label7240 returns the custom label name7241 when configuration does not specify a custom label7242 when the name does not correspond to a label mapping7243 returns the titleized name7244 when the name corresponds to a label mapping7245 returns the mapped name7246Mutations::BaseMutation7247 argument nullability7248 when using a mutation with correct argument declarations7249 when argument is nullable and required7250 is expected to raise ArgumentError with message matching /must be provided: foo/7251 is expected not to raise Exception7252 is expected not to raise Exception7253 when argument is required and NOT nullable7254 is expected to raise ArgumentError with message matching /must be provided/7255 is expected to raise ArgumentError with message matching /must be provided/7256 is expected not to raise Exception7257AwardEmojisFinder7258 param validation7259 raises an error if `name` is invalid7260 does not raise an error if `name` is numeric7261 raises an error if `awarded_by` is invalid7262 #execute7263 scopes to the awardable7264 filters by emoji name7265 filters by user7266Ci::DeletedObject7267 attributes7268 is expected to respond to #file7269 is expected to respond to #store_dir7270 is expected to respond to #file_store7271 is expected to respond to #pick_up_at7272 .bulk_import7273 with data7274 imports data7275 with invalid data7276 does not import anything7277 with empty data7278 returns successfully7279 ActiveRecord scopes7280 .ready_for_destruction7281 returns objects that are ready7282 .lock_for_destruction7283 returns objects that are ready7284 selects only the id7285 orders by pick_up_at7286 applies limit7287 uses select for update7288 #delete_file_from_storage7289 does not raise errors7290Preloaders::UsersMaxAccessLevelInProjectsPreloader7291 preload maximum access level to avoid querying project_authorizations7292 avoids N+1 queries7293 runs N queries without preloading7294Gitlab::Utils::DelegatorOverride::Validator7295 #add_allowlist7296 adds a method name to the allowlist7297 #add_target7298 adds the target class7299 adds all descendants of the target7300 #expand_on_ancestors7301 adds the allowlist in the ancestors7302 #validate_overrides!7303 does not raise an error when the overrides are allowed7304 raises an error when there is an override7305Ci::ExternalPullRequests::CreatePipelineService7306 #execute7307 when pull request is open7308 when source sha is the head of the source branch7309 enqueues Ci::ExternalPullRequests::CreatePipelineWorker7310 when source sha is not the head of the source branch (force push upon rebase)7311 does nothing7312 when pull request is not opened7313 does nothing7314AccessRequestable7315 Group7316 #request_access7317 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)7318 is expected to eq #<User id:2592 @user1060>7319 #access_requested?7320 is expected to be truthy7321 Project7322 #request_access7323 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...ean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer)7324 #access_requested?7325 is expected to be truthy7326Gitlab::Git::RemoteMirror7327 #update7328 delegates to the Gitaly client7329 wraps gitaly errors7330Gitlab::Ci::Config::Entry::Hidden7331 .matching?7332 when name starts with dot7333 is expected to be truthy7334 when name does not start with dot7335 is expected to be falsey7336 .new7337 validations7338 when entry config value is correct7339 #value7340 returns key value7341 #valid?7342 is valid7343 when entry value is not correct7344 when config is empty7345 #valid7346 is invalid7347 #leaf?7348 is a leaf7349 #relevant?7350 is not a relevant entry7351Packages::Debian::FindOrCreateIncomingService7352 #execute7353 run once7354 creates a new package7355 behaves like assigns the package creator7356 assigns the package creator7357 run twice7358 returns the same object7359Resolvers::UsersResolver7360 is expected to have nullable GraphQL type UserCoreConnection7361 #resolve7362 when no arguments are passed7363 returns all users7364 when both ids and usernames are passed7365 generates an error7366 when a set of IDs is passed7367 returns those users7368 when a set of usernames is passed7369 returns those users7370 when admins is true7371 returns only admins7372 when a search term is passed7373 returns all users who match7374 with anonymous access7375 prohibits search without usernames passed7376 prohibits search by username7377Uniquify7378 #string7379 returns the given string if it does not exist7380 returns the given string with a counter attached if the string exists7381 increments the counter for each candidate string that also exists7382 allows to pass an initial value for the counter7383 allows passing in a base function that defines the location of the counter7384Sidebars::Projects::Menus::DeploymentsMenu7385 #render?7386 when menu does not have any menu items7387 returns false7388 when menu has menu items7389 returns true7390 Menu Items7391 Feature Flags7392 behaves like access rights checks7393 is expected not to be nil7394 when the user does not have access7395 is expected to be nil7396 Environments7397 behaves like access rights checks7398 is expected not to be nil7399 when the user does not have access7400 is expected to be nil7401 Releases7402 behaves like access rights checks7403 is expected not to be nil7404 when the user does not have access7405 is expected to be nil7406Pajamas::CardComponent7407 slots7408 renders card header7409 renders card body7410 renders footer7411 with defaults7412 does not have a header or footer7413 renders the card and body7414 with custom options7415 renders card options7416 renders header options7417 renders body options7418 renders footer options7419Gitlab::Database::Migrations::Observers::QueryStatistics7420 #before7421 with pgss available7422 resets pg_stat_statements7423 without pgss available7424 executes nothing7425 #record7426 with pgss available7427 fetches data from pg_stat_statements and stores on the observation7428 without pgss available7429 executes nothing7430PagesWorker7431 calls UpdatePagesService7432Preloaders::LabelsPreloader7433 project labels7434 behaves like an efficient database query7435 does not make n+1 queries7436 group labels7437 behaves like an efficient database query7438 does not make n+1 queries7439TaskListToggleService7440 checks Task 17441 unchecks Item 17442 checks task in loose list7443 checks task with no-break space7444 returns false if line_source does not match the text7445 tolerates \r\n line endings7446 returns false if markdown is nil7447 returns false if markdown_html is nil7448 properly handles tasks in a blockquote7449 properly handles a GitLab blockquote7450 when clicking an embedded subtask7451 properly handles it inside an unordered list7452 properly handles it inside an ordered list7453Gitlab::ImportExport::DesignRepoSaver7454 bundle a design Git repo7455 bundles the repo successfully7456 when the repo is empty7457 bundles the repo successfully7458Gitlab::GithubImport::PageCounter7459 #initialize7460 sets the initial page number to 1 when no value is cached7461 sets the initial page number to the cached value when one is present7462 #set7463 overwrites the page number when the given number is greater than the current number7464 does not overwrite the page number when the given number is lower than the current number7465 #expire!7466 expires the current page counter7467shared/milestones/_issuables.html.haml7468 shows the issuables count if show_counter is true7469 does not show the issuables count if show_counter is false7470 a high issuables count7471 shows a delimited number if show_counter is true7472AuthorizedProjectUpdate::UserRefreshFromReplicaWorker7473 is labeled as low urgency7474 behaves like an idempotent worker7475 is labeled as idempotent7476 performs multiple times sequentially without raising an exception7477 #perform7478 checks if a project_authorization refresh is needed for the user7479 when there are project authorization records due for either removal or addition for a specific user7480 enqueues a new project authorization update job for the user7481 when there are no additions or removals to be made to project authorizations for a specific user7482 does not enqueue a new project authorization update job for the user7483 with load balancing enabled7484 reads from the replica database7485IdeHelper7486 #ide_data7487 when instance vars are not set7488 returns instance data in the hash as nil7489 when instance vars are set7490 returns instance data in the hash7491 environments guidance experiment7492 when project has no enviornments7493 enables environment guidance7494 and the callout has been dismissed7495 disables environment guidance7496 when the project has environments7497 disables environment guidance7498Gitlab::PerformanceBar::WithTopLevelWarnings7499 #has_warnings?7500 has_warnings: false, results: {:data=>{}}7501 is expected to eq false7502 has_warnings: false, results: {:data=>{:gitaly=>{:warnings=>[]}}}7503 is expected to eq false7504 has_warnings: true, results: {:data=>{:gitaly=>{:warnings=>[1]}}}7505 is expected to eq true7506 has_warnings: true, results: {:data=>{:gitaly=>{:warnings=>[]}, :redis=>{:warnings=>[1]}}}7507 is expected to eq true7508Gitlab::Middleware::RackMultipartTempfileFactory7509 for a multipart request7510 immediately unlinks the temporary file7511 processes the request as normal7512 for a regular request7513 does nothing7514Projects::TriggeredHooks7515 executes hooks by scope7516 applies branch filters, when they match7517 applies branch filters, when they do not match7518ResolvesIds7519 with a single project7520 returns the correct array7521 with a single issue7522 returns the correct array7523 with multiple users7524 returns the correct array7525Gitlab::QueryLimiting7526 .enabled_for_env?7527 returns true in a test environment7528 returns true in a development environment7529 returns false on GitLab.com7530 returns false in a non GitLab.com7531 .disable!7532 raises an ArgumentError when an invalid issue URL is given7533 stops the number of SQL queries from being incremented7534 .enable!7535 allows the number of SQL queries to be incremented7536 #enabled?7537 returns true when enabled7538 returns false when disabled7539projects/project_members/index7540 when user can invite members for the project7541 when modal is enabled7542 renders as expected7543 when project is not allowed to share with group7544 renders as expected7545 when user can not invite members or group for the project7546 when project can be shared7547 renders as expected7548RequestAwareEntity7549 includes URL helpers7550 includes method for checking abilities7551 fetches request from options7552shared/projects/_list7553 with projects7554 renders the list of projects7555 will not show elements a user shouldn't be able to see7556 without projects7557 when @contributed_projects is set7558 and is empty7559 renders a no-content message7560 when @starred_projects is set7561 and is empty7562 renders a no-content message7563 and without a special instance variable7564 for an explore_page7565 renders a no-content message7566 for a non-explore page7567 renders a no-content message7568Types::IncidentManagement::TimelineEventType7569 is expected to eq "TimelineEventType"7570 is expected to require graphql authorizations :read_incident_management_timeline_event7571 exposes the expected fields7572Gitlab::Metrics::ElasticsearchRackMiddleware7573 #call7574 calls the app7575 records elasticsearch metrics7576 records elasticsearch metrics if an error is raised7577 when there are no elasticsearch requests7578 does not record any metrics7579Sidebars::Projects::Menus::CiCdMenu7580 #render?7581 when user cannot read builds7582 returns false7583 when user can read builds7584 returns true7585 Menu items7586 Pipelines Editor7587 when user cannot view pipeline editor7588 does not include pipeline editor menu item7589 when user can view pipeline editor7590 includes pipeline editor menu item7591 Artifacts7592 when feature flag :artifacts_management_page is disabled7593 does not include artifacts menu item7594 when feature flag :artifacts_management_page is enabled7595 includes artifacts menu item7596Gitlab::Saas7597 .canary_toggle_com_url7598 is expected to eq "https://next.gitlab.com"7599Serverless::DomainEntity7600 #as_json7601 has an id7602 has a domain7603ExperimentUser7604 Associations7605 is expected to belong to experiment required: false7606 is expected to belong to user required: false7607 Validations7608 is expected to validate that :group_type cannot be empty/falsy7609SubscribableBannerHelper7610 #display_subscription_banner!7611 is over-written in EE7612Gitlab::Diff::InlineDiffMarker7613 #mark7614 when the rich text is html safe7615 marks the range7616 when the text is not html safe7617 marks the range7618Gitlab::UrlBlockers::DomainAllowlistEntry7619 #initialize7620 initializes without port7621 initializes with port7622 #match?7623 matches when domain and port are equal7624 matches any port when port is nil7625 does not match when port is present but requested_port is nil7626 matches when port and requested_port are nil7627 does not match if domain is not equal7628Gitlab::Ci::Status::Running7629 #text7630 is expected to eq "running"7631 #label7632 is expected to eq "running"7633 #icon7634 is expected to eq "status_running"7635 #favicon7636 is expected to eq "favicon_status_running"7637 #group7638 is expected to eq "running"7639 #details_path7640 is expected to be nil7641Gitlab::Ci::Build::Port7642 when port is defined as an integer7643 populates the object7644 when port is defined as hash7645 populates the object7646SidebarsHelper7647 #sidebar_tracking_attributes_by_object7648 when object is a project7649 returns tracking attrs for project7650 when object is a group7651 returns tracking attrs for group7652 when object is a user7653 returns tracking attrs for user7654 when object is something else7655 returns no attributes7656ProjectMetricsSetting7657 Associations7658 is expected to belong to project required: false7659 Validations7660 when external_dashboard_url is over 255 chars7661 fails validation7662 with unsafe url7663 is expected to be invalid7664 non ascii chars in external_dashboard_url7665 is expected to be invalid7666 internal url in external_dashboard_url7667 is expected to be valid7668 dashboard_timezone7669 is expected to define :dashboard_timezone as an enum backed by an integer with values ‹{local: 0, utc: 1}›7670 defaults to local7671 #dashboard_timezone=7672 downcases string7673projects/hooks/edit7674 renders webhook page with "Recent events"7675 webhook is rate limited7676 renders alert7677 webhook is permanently disabled7678 renders alert7679 webhook is temporarily disabled7680 renders alert7681Gitlab::ImportExport::WikiRepoSaver7682 bundle a wiki Git repo7683 bundles the repo successfully7684 when the repo is empty7685 bundles the repo successfully7686NumbersHelper7687 #limited_counter_with_delimiter7688 count: 9, options: {:limit=>10}, expected_result: "9"7689 is expected to eq "9"7690 count: 10, options: {:limit=>10}, expected_result: "10"7691 is expected to eq "10"7692 count: 11, options: {:limit=>10}, expected_result: "10+"7693 is expected to eq "10+"7694 count: 12, options: {:limit=>10}, expected_result: "10+"7695 is expected to eq "10+"7696 count: 999, options: {}, expected_result: "999"7697 is expected to eq "999"7698 count: 1000, options: {}, expected_result: "1,000"7699 is expected to eq "1,000"7700 count: 1001, options: {}, expected_result: "1,000+"7701 is expected to eq "1,000+"7702 count: 1002, options: {}, expected_result: "1,000+"7703 is expected to eq "1,000+"7704Test coverage of the Project Import7705 ensures that all imported/exported relations are present in test JSONs7706ContainerRegistry::Registry7707 is expected to respond to #client7708 is expected to respond to #uri7709 is expected to respond to #path7710 is expected not to be nil7711 #path7712 path from URL7713 is expected to eq "example.com"7714 custom path7715 is expected to eq "registry.example.com"7716 #gitlab_api_client7717 returns a GitLabApiClient with an import token7718Gitlab::SidekiqDeathHandler7719 .handler7720 when the job class has worker attributes7721 uses the attributes from the worker7722 when the job class does not have worker attributes7723 uses blank attributes7724ContextCommitsDiffEntity7725 as json7726 exposes commits_count7727 exposes showing_context_commits_diff7728 exposes diffs_path7729Gitlab::Ci::Status::Created7730 #text7731 is expected to eq "created"7732 #label7733 is expected to eq "created"7734 #icon7735 is expected to eq "status_created"7736 #favicon7737 is expected to eq "favicon_status_created"7738 #group7739 is expected to eq "created"7740 #details_path7741 is expected to be nil7742Gitlab::Webpack::FileLoader7743 with dev server enabled7744 returns content when respondes succesfully7745 raises error when 4047746 raises error when errors out7747 with dev server enabled and https7748 raises error if catches SSLError7749 with dev server disabled7750 .load7751 returns file content from file path7752 throws error if file cannot be read7753Mutations::AlertManagement::HttpIntegration::Create7754 is expected to require graphql authorizations :admin_operations7755 #resolve7756 user has access to project7757 when HttpIntegrations::CreateService responds with success7758 returns the integration with no errors7759 when HttpIntegrations::CreateService responds with an error7760 returns errors7761 when resource is not accessible to the user7762 raises an error if the resource is not accessible to the user7763API::Entities::BasicProjectDetails7764 #default_branch7765 delegates to Project#default_branch_or_main7766 anonymous user7767 is not included7768Gitlab::Search::AbuseValidators::NoAbusiveCoercionFromStringValidator7769 attribute_value: ["this is an arry"], valid?: false7770 is expected to receive message chain errors.add7771 attribute_value: {:this=>"is a hash"}, valid?: false7772 is expected to receive message chain errors.add7773 attribute_value: 123, valid?: false7774 is expected to receive message chain errors.add7775 attribute_value: 456.78, valid?: false7776 is expected to receive message chain errors.add7777 attribute_value: "now this is a string", valid?: true7778 is expected not to receive errors(*(any args)) 0 times7779Namespaces::ProjectNamespace7780 relationships7781 is expected to have one project inverse_of => project_namespace7782 validations7783 is expected not to validate that :owner cannot be empty/falsy7784 when deleting project namespace7785 also deletes associated project7786Gitlab::Email::Message::InProductMarketing::AdminVerify7787 public methods7788 returns value for series7789 #progress7790 on gitlab.com7791 is expected to eq "This is email 1 of 1 in the Admin series."7792 not on gitlab.com7793 is expected to include "This is email 1 of 1 in the Admin series" and "http://localhost/-/profile/notifications"7794Gitlab::Database::Type::JsonPgSafe7795 #serialize7796 value: nil, json: nil7797 is expected to eq nil7798 value: 1, json: "1"7799 is expected to eq "1"7800 value: 1.0, json: "1.0"7801 is expected to eq "1.0"7802 value: "str\u0000ing\u0000", json: "\"string\""7803 is expected to eq "\"string\""7804 value: ["\u0000arr", "a\u0000y"], json: "[\"arr\",\"ay\"]"7805 is expected to eq "[\"arr\",\"ay\"]"7806 value: {"key\u0000"=>"value\u0000\u0000"}, json: "{\"key\":\"value\"}"7807 is expected to eq "{\"key\":\"value\"}"7808CaseSensitivity7809 .iwhere7810 finds a single instance by a single attribute regardless of case7811 finds multiple instances by a single attribute regardless of case7812 finds instances by multiple attributes7813 finds instances by custom Arel attributes7814 builds a query using LOWER7815DetectRepositoryLanguagesWorker7816 #perform7817 calls de DetectRepositoryLanguages service7818 when invalid ids are used7819 does not raise when the project could not be found7820Gitlab::Utils::LogLimitedArray7821 .log_limited_array7822 when the argument is not an array7823 returns an empty array7824 when the argument is an array7825 when the array is under the limit7826 returns the array unchanged7827 when the array exceeds the limit7828 when no sentinel value is passed7829 replaces arguments after the limit with an ellipsis string7830 when a sentinel value is passed7831 replaces arguments after the limit with the sentinel7832 when the array contains arrays and hashes7833 calculates the size based on the JSON representation7834Packages::GroupOrProjectPackageFinder7835 execute7836 is expected to raise NotImplementedError7837 execute!7838 is expected to raise NotImplementedError7839API::Validations::Validators::Absence7840 empty param7841 does not raise a validation error7842 invalid parameters7843 raises a validation error7844BulkPushEventPayloadService7845 creates a PushEventPayload7846RepositoryCheck::DispatchWorker7847 does nothing when repository checks are disabled7848 does nothing if the exclusive lease is taken7849 dispatches work to RepositoryCheck::BatchWorker7850 with unhealthy shard7851 only triggers RepositoryCheck::BatchWorker for healthy shards7852 logs unhealthy shards7853Mutations::Security::CiConfiguration::BaseSecurityAnalyzer7854 raises a NotImplementedError error if the resolve method is called on the base class7855Gitlab::Usage::Metrics::Instrumentations::RedisMetric7856 raises an exception if event option is not present7857 raises an exception if counter_class option is not present7858 behaves like a correct instrumented metric value7859 has correct value7860 children classes7861 availability not defined7862 returns default availability7863 availability defined7864 returns defined availability7865Gitlab::IncidentManagement::PagerDuty::IncidentIssueDescription7866 #to_s7867 returns description7868 when created_at is missing7869 description contains current time in UTC7870 when there are several assignees7871 assignees is a list of links7872 when there are several impacted services7873 impacted services is a list of links7874projects/imports/new.html.haml7875 when import fails7876 escapes HTML in import errors7877Projects::ReadmeRendererService#execute7878 renders the an ERB readme template7879 with a custom template7880 renders that template file7881 with path traversal in mind7882 template_name: "../path/traversal/bad", exception: [Gitlab::Utils::PathTraversalAttackError, "Invalid path"], expected_path: nil7883 raises the expected exception on bad paths7884 template_name: "/bad/template", exception: [StandardError, "path /bad/template.md.tt is not allowed"], expected_path: nil7885 raises the expected exception on bad paths7886 template_name: "good/template", exception: nil, expected_path: "good/template.md.tt"7887 raises the expected exception on bad paths7888Gitlab::GithubImport::Stage::ImportPullRequestsWorker7889 raises an error7890 #import7891 imports all the pull requests7892SourcegraphHelper7893 #sourcegraph_url_message7894 with .com sourcegraph url7895 is expected to have text "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."7896 with custom sourcegraph url7897 is expected to have text "Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}. This feature is experimental."7898 when not limited by feature or public only7899 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."7900 when limited by feature7901 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and currently limited to certain projects."7902 when limited by public only7903 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and limited to public projects."7904Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker7905 #import7906 imports all the pull request reviews7907RuboCop::Cop::Database::MultipleDatabases7908 flags the use of ActiveRecord::Base.connection7909 flags the use of ::ActiveRecord::Base.connection7910 does not flag use of ActiveRecord::Base.no_touching7911 does not flag use of ActiveRecord::Base.configurations7912Issuables::ClearGroupsIssueCounterWorker7913 #perform7914 does not call count service or rise error when group_ids is empty7915 behaves like an idempotent worker7916 is labeled as idempotent7917 performs multiple times sequentially without raising an exception7918 clears the cached issue count in given groups and ancestors7919Gitlab::Ci::Parsers::Codequality::CodeClimate7920 #parse!7921 when data is code_climate style JSON7922 when there are no degradations7923 returns a codequality report7924 when there are degradations7925 returns a codequality report7926 when data is not a valid JSON string7927 sets error_message7928 when degradations contain an invalid one7929 stops parsing the report7930Gitlab::MultiDestinationLogger7931 with no primary logger set7932 primary_logger raises an error7933 with 2 loggers set7934 logs info to 2 loggers7935Gitlab::Faraday::ErrorCallback7936 #call7937 with no errors7938 is expected to eq "success"7939 with errors7940 with no callback7941 uses the default callback7942 with a custom callback7943 uses the custom callback7944Types::Ci::PipelineType7945 is expected to eq "Pipeline"7946 is expected to expose permissions using Types::PermissionTypes::Ci::Pipeline7947 contains attributes related to a pipeline7948BulkImports::Common::Extractors::JsonExtractor7949 #extract7950 returns ExtractedData7951 #remove_tmpdir7952 removes tmp dir7953Gitlab::Metrics::Dashboard::Validator::Client7954 #execute7955 with no validation errors7956 returns empty array7957 with validation errors7958 returns array of error objects7959Gitlab::Ci::Config::Entry::Release::Assets7960 validation7961 when entry config value is correct7962 #value7963 returns assets configuration7964 #valid?7965 is valid7966 when entry value is not correct7967 #errors7968 when value of assets is invalid7969 reports error7970 when value of assets:links is empty7971 reports error7972 when there is an unknown key present7973 reports error7974import/gitlab_projects/new.html.haml7975 when the user has no other namespaces7976 adds a namespace_id hidden field tag with the namespace id as value7977 when the user can select other namespaces7978 shows a namespace_id select7979BlobViewer::ComposerJson7980 #package_name7981 returns the package name7982Rack::Multipart7983 with Content-Length under the limit7984 extracts multipart message7985 with Content-Length over the limit7986 from environment7987 behaves like logs multipart message7988 extracts multipart message7989 default limit7990 behaves like logs multipart message7991 extracts multipart message7992Gitlab::RepositoryArchiveRateLimiter7993 #check_archive_rate_limit!7994 when archive_rate_limit feature flag is disabled7995 does not check rate limit7996 when archive_rate_limit feature flag is enabled7997 when current user exists7998 checks for project_repositories_archive rate limiting with default threshold7999 when current user does not exist8000 checks for project_repositories_archive rate limiting with threshold 1008001RuboCop::Cop::Gitlab::BulkInsert8002 flags the use of ApplicationRecord.legacy_bulk_insert8003 flags the use of ::ApplicationRecord.legacy_bulk_insert8004VulnerabilityFindingSignatureHelpers8005 #priority8006 returns numeric values of the priority string8007 #self.priority8008 returns the numeric value of the provided string8009CiPlatformMetricsUpdateCronWorker8010 #perform8011 inserts new platform metrics8012Types::CommitActionModeEnum8013 is expected to eq "CommitActionMode"8014 exposes all the existing commit actions8015RuboCop::Cop::Graphql::GraphqlNamePosition8016 adds an offense when graphql_name is not on the first line8017 does not add an offense for classes that have no call to graphql_name8018 does not add an offense for classes that only call graphql_name8019ForceCompanyTrialExperiment8020 when a user is setup_for_company8021 is not excluded8022 when a user is not setup_for_company8023 is excluded8024Banzai::Filter::SuggestionFilter8025 includes `js-render-suggestion` class8026 includes no `js-render-suggestion` when filter is disabled8027 multi-line suggestions8028 element has correct data-lang-params8029BulkImports::Common::Transformers::ProhibitedAttributesTransformer8030 #transform8031 removes prohibited attributes8032 when there is no data to transform8033 returns8034Gitlab::GrapeLogging::Loggers::QueueDurationLogger8035 .parameters8036 when no proxy duration is available8037 returns an empty hash8038 when a proxy duration is available8039 adds the duration to log parameters8040Types::LabelType8041 has the correct fields8042 is expected to require graphql authorizations :read_label8043Gitlab::Kubernetes::ClusterRoleBinding8044 #generate8045 builds a Kubeclient Resource8046Gitlab::LanguageData8047 #extensions8048 loads the extensions once8049Types::DesignManagement::DesignCollectionCopyStateEnum8050 is expected to eq "DesignCollectionCopyState"8051 exposes the correct event states8052Types::PermissionTypes::BasePermissionType8053 .permission_field8054 adds a field for the required permission8055 .ability_field8056 adds a field for the required permission8057 does not add a resolver block if another resolving param is passed8058 .abilities8059 adds a field for the passed permissions8060CronValidator8061 validates valid crontab8062 validates invalid crontab8063 cron field is not whitelisted8064 raises an error8065RuboCop::Cop::UserAdmin8066 flags a method call8067 flags a method call with safe operator8068API::Entities::ProjectImportFailedRelation8069 #as_json8070 includes basic fields8071TrendingProjectsWorker8072 #perform8073 refreshes the trending projects8074MetricImageUploader8075 .workhorse_local_upload_path8076 returns path that includes uploads dir8077Types::ContainerExpirationPolicyKeepEnum8078 behaves like exposing container expiration policy option8079 exposes all options8080 uses all possible options from model8081RunnersTokenPrefixable8082 runners token prefix8083 has the correct value8084Gitlab::LogTimestampFormatter8085 logs the timestamp in UTC and ISO8601.3 format8086Bitbucket::Collection8087 iterates paginator8088Code review events8089 the aggregated metrics contain all the code review metrics8090Banzai::Querying8091 .css8092 optimizes queries for elements with classes8093Types::SubscriptionType8094 has the expected fields8095Knapsack report was generated. Preview:8096{8097 "spec/models/repository_spec.rb": 344.9101800209992,8098 "spec/services/merge_requests/push_options_handler_service_spec.rb": 222.43073876000017,8099 "spec/services/merge_requests/create_from_issue_service_spec.rb": 183.3034516030002,8100 "spec/models/deployment_spec.rb": 181.06022336799833,8101 "spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb": 114.90676106200044,8102 "spec/services/projects/fork_service_spec.rb": 95.46963712599972,8103 "spec/services/projects/destroy_service_spec.rb": 95.66911814299965,8104 "spec/policies/ci/build_policy_spec.rb": 59.036034705999555,8105 "spec/services/projects/prometheus/alerts/notify_service_spec.rb": 34.21938486899853,8106 "spec/lib/gitlab/import_export/project/relation_tree_restorer_spec.rb": 53.175123850998716,8107 "spec/tasks/gitlab/usage_data_rake_spec.rb": 44.71345358799954,8108 "spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb": 24.198759851000432,8109 "spec/models/resource_milestone_event_spec.rb": 36.885853935998966,8110 "spec/services/boards/lists/update_service_spec.rb": 38.973340762999214,8111 "spec/lib/gitlab/import_export/members_mapper_spec.rb": 33.55615433899948,8112 "spec/lib/gitlab/cleanup/project_uploads_spec.rb": 25.998323393998362,8113 "spec/services/merge_requests/after_create_service_spec.rb": 25.967230666001342,8114 "spec/uploaders/personal_file_uploader_spec.rb": 14.642413060999388,8115 "spec/models/terraform/state_version_spec.rb": 21.662404901999253,8116 "spec/finders/group_projects_finder_spec.rb": 22.837863864999235,8117 "spec/lib/gitlab/diff/highlight_cache_spec.rb": 27.309994725999786,8118 "spec/finders/user_recent_events_finder_spec.rb": 11.95612475300004,8119 "spec/models/ci/processable_spec.rb": 16.916726482999366,8120 "spec/services/merge_requests/ff_merge_service_spec.rb": 23.80830788500134,8121 "spec/services/projects/update_repository_storage_service_spec.rb": 26.514269620998675,8122 "spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb": 24.25114774800022,8123 "spec/models/label_spec.rb": 14.54953788900093,8124 "spec/models/merge_request_diff_commit_spec.rb": 25.888870413000404,8125 "spec/services/clusters/applications/check_upgrade_progress_service_spec.rb": 18.064303118999305,8126 "spec/models/active_session_spec.rb": 9.248372746000314,8127 "spec/services/projects/update_pages_service_spec.rb": 12.127655448999576,8128 "spec/finders/events_finder_spec.rb": 16.608865659000003,8129 "spec/lib/gitlab/diff/lines_unfolder_spec.rb": 10.866286453001521,8130 "spec/lib/bulk_imports/projects/pipelines/merge_requests_pipeline_spec.rb": 9.895086112999707,8131 "spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb": 12.263066587998765,8132 "spec/services/metrics/dashboard/custom_dashboard_service_spec.rb": 11.671257265999884,8133 "spec/models/container_expiration_policy_spec.rb": 5.168614643000183,8134 "spec/finders/fork_projects_finder_spec.rb": 10.94912736599872,8135 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 12.531855395998718,8136 "spec/presenters/clusterable_presenter_spec.rb": 12.609477939000499,8137 "spec/workers/container_registry/migration/guard_worker_spec.rb": 8.002393668999503,8138 "spec/models/ci/trigger_spec.rb": 9.81061987999965,8139 "spec/lib/gitlab/ci/config/entry/need_spec.rb": 2.5043112530001963,8140 "spec/services/work_items/task_list_reference_removal_service_spec.rb": 6.930455158000768,8141 "spec/services/clusters/applications/upgrade_service_spec.rb": 7.173547287999099,8142 "spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb": 6.84434540500115,8143 "spec/services/incident_management/timeline_events/destroy_service_spec.rb": 9.341670058998716,8144 "spec/lib/gitlab/verify/uploads_spec.rb": 10.337702196000464,8145 "spec/graphql/mutations/design_management/delete_spec.rb": 8.421685744999195,8146 "spec/models/integrations/emails_on_push_spec.rb": 12.389251096999942,8147 "spec/services/projects/auto_devops/disable_service_spec.rb": 10.458204547001515,8148 "spec/graphql/mutations/container_expiration_policies/update_spec.rb": 5.407660273000147,8149 "spec/services/metrics/dashboard/annotations/delete_service_spec.rb": 7.731090340999799,8150 "spec/workers/container_registry/migration/observer_worker_spec.rb": 9.069527111001662,8151 "spec/models/release_highlight_spec.rb": 6.772640851000688,8152 "spec/views/shared/_label_row.html.haml_spec.rb": 5.176417132999632,8153 "spec/models/clusters/providers/aws_spec.rb": 3.658189558000231,8154 "spec/lib/gitlab/http_io_spec.rb": 1.2995045219995518,8155 "spec/views/notify/pipeline_success_email.html.haml_spec.rb": 9.552790411000387,8156 "spec/lib/gitlab/ci/status/external/common_spec.rb": 6.096351015999971,8157 "spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb": 7.8093716759995,8158 "spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb": 3.390106460001334,8159 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 4.3515012610005215,8160 "spec/services/packages/debian/sign_distribution_service_spec.rb": 3.2207222639990505,8161 "spec/workers/issuable_export_csv_worker_spec.rb": 7.245845792000182,8162 "spec/services/metrics/dashboard/clone_dashboard_service_spec.rb": 4.685926322999876,8163 "spec/lib/gitlab/github_import/importer/labels_importer_spec.rb": 5.724347246999969,8164 "spec/helpers/profiles_helper_spec.rb": 1.4696925089992874,8165 "spec/models/deploy_key_spec.rb": 3.7330010120003863,8166 "spec/lib/banzai/reference_parser/alert_parser_spec.rb": 4.832032070999048,8167 "spec/graphql/mutations/todos/create_spec.rb": 4.24513240899978,8168 "spec/lib/gitlab/pagination/keyset/column_order_definition_spec.rb": 1.5738513300002523,8169 "spec/workers/delete_container_repository_worker_spec.rb": 4.683358214000691,8170 "spec/services/ci/update_instance_variables_service_spec.rb": 2.598676855001031,8171 "spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb": 7.709673104000103,8172 "spec/lib/kramdown/parser/atlassian_document_format_spec.rb": 1.0468906940004672,8173 "spec/uploaders/packages/composer/cache_uploader_spec.rb": 2.7938483790003374,8174 "spec/models/integrations/slack_slash_commands_spec.rb": 3.3360526939995907,8175 "spec/lib/gitlab/ci/pipeline/chain/limit/deployments_spec.rb": 2.3548307660003047,8176 "spec/services/system_notes/commit_service_spec.rb": 5.238559716999589,8177 "spec/helpers/appearances_helper_spec.rb": 2.787812219999978,8178 "spec/models/user_interacted_project_spec.rb": 1.5096938460010279,8179 "spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb": 1.2120610299989494,8180 "spec/serializers/merge_request_serializer_spec.rb": 5.347766058999696,8181 "spec/lib/gitlab/ci/config/extendable/entry_spec.rb": 0.9874082679998537,8182 "spec/lib/gitlab/database/load_balancing/service_discovery_spec.rb": 0.8448091609989206,8183 "spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb": 0.8381995700001426,8184 "spec/services/jira_import/users_importer_spec.rb": 3.341847413999858,8185 "spec/services/jira_import/server_users_mapper_service_spec.rb": 4.53698862499914,8186 "spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb": 1.9824222459992598,8187 "spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb": 3.7755605390011624,8188 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb": 1.3467647880006552,8189 "spec/lib/bitbucket_server/representation/pull_request_spec.rb": 0.8541674890002469,8190 "spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb": 3.3830278610003006,8191 "spec/haml_lint/linter/no_plain_nodes_spec.rb": 0.7330811090014322,8192 "spec/graphql/resolvers/tree_resolver_spec.rb": 3.0582504980011436,8193 "spec/workers/background_migration/ci_database_worker_spec.rb": 0.7101188510005159,8194 "spec/tasks/gitlab/background_migrations_rake_spec.rb": 3.018403981001029,8195 "spec/graphql/mutations/todos/restore_many_spec.rb": 4.292478725999899,8196 "spec/lib/gitlab/health_checks/db_check_spec.rb": 0.8007385340006294,8197 "spec/finders/prometheus_metrics_finder_spec.rb": 1.2692856950015994,8198 "spec/lib/api/entities/merge_request_changes_spec.rb": 1.9187682410010893,8199 "spec/lib/gitlab/usage/metric_spec.rb": 3.3032577079993644,8200 "spec/models/user_detail_spec.rb": 0.4608502619994397,8201 "spec/services/draft_notes/destroy_service_spec.rb": 4.9987231270006305,8202 "spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 2.774633471000925,8203 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 1.005474667001181,8204 "spec/services/projects/hashed_storage/rollback_service_spec.rb": 3.8815473089998704,8205 "spec/lib/gitlab/import_export/uploads_manager_spec.rb": 3.269240109999373,8206 "spec/services/packages/create_dependency_service_spec.rb": 3.78532919799909,8207 "spec/lib/gitlab/database/partitioning/partition_manager_spec.rb": 2.007519934000811,8208 "spec/models/namespace_setting_spec.rb": 3.0478352179998183,8209 "spec/lib/bulk_imports/common/pipelines/badges_pipeline_spec.rb": 2.1847551000009844,8210 "spec/services/dependency_proxy/request_token_service_spec.rb": 1.2456007469991164,8211 "spec/services/merge_requests/add_spent_time_service_spec.rb": 4.231066771000769,8212 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 2.392162232999908,8213 "spec/tooling/rspec_flaky/flaky_example_spec.rb": 1.2867881729998771,8214 "spec/lib/gitlab/redis/hll_spec.rb": 0.6509575559994119,8215 "spec/services/ci/daily_build_group_report_result_service_spec.rb": 2.1654207810006483,8216 "spec/services/ci/job_token_scope/add_project_service_spec.rb": 1.9363573899991025,8217 "spec/rubocop/cop/code_reuse/serializer_spec.rb": 0.5118944969999575,8218 "spec/services/design_management/copy_design_collection/queue_service_spec.rb": 1.7703956450004625,8219 "spec/models/concerns/x509_serial_number_attribute_spec.rb": 0.6919242129988561,8220 "spec/lib/gitlab/phabricator_import/importer_spec.rb": 1.810859380999318,8221 "spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb": 3.611144771000909,8222 "spec/graphql/resolvers/last_commit_resolver_spec.rb": 4.909956534998855,8223 "spec/lib/api/entities/release_spec.rb": 3.3540269329987495,8224 "spec/workers/pipeline_hooks_worker_spec.rb": 2.2563465339990216,8225 "spec/models/concerns/after_commit_queue_spec.rb": 1.338349768999251,8226 "spec/services/branches/delete_service_spec.rb": 4.936448033000488,8227 "spec/workers/gitlab/jira_import/stage/finish_import_worker_spec.rb": 1.4393058810001094,8228 "spec/models/ci/artifact_blob_spec.rb": 1.4261673119999614,8229 "spec/services/projects/all_merge_requests_count_service_spec.rb": 1.4080002440005046,8230 "spec/lib/gitlab/pagination/keyset_spec.rb": 0.3718951390001166,8231 "spec/views/admin/application_settings/ci_cd.html.haml_spec.rb": 0.7558272380010749,8232 "spec/lib/gitlab/usage/metrics/instrumentations/numbers_metric_spec.rb": 2.094132477999665,8233 "spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb": 0.3989586759998929,8234 "spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb": 0.4750467089997983,8235 "spec/services/customer_relations/organizations/create_service_spec.rb": 1.683123513999817,8236 "spec/lib/gitlab/checks/matching_merge_request_spec.rb": 1.4502025640013017,8237 "spec/graphql/resolvers/project_members_resolver_spec.rb": 3.357704329999251,8238 "spec/lib/file_size_validator_spec.rb": 3.0946319220001897,8239 "spec/finders/repositories/branch_names_finder_spec.rb": 2.6340350930004206,8240 "spec/lib/gitlab/auth/o_auth/provider_spec.rb": 0.9853360849992896,8241 "spec/graphql/mutations/base_mutation_spec.rb": 0.3884849660007603,8242 "spec/finders/award_emojis_finder_spec.rb": 2.077022819999911,8243 "spec/models/ci/deleted_object_spec.rb": 2.318720609000593,8244 "spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb": 2.587446005998572,8245 "spec/lib/gitlab/utils/delegator_override/validator_spec.rb": 1.474289162999412,8246 "spec/services/ci/external_pull_requests/create_pipeline_service_spec.rb": 2.054014401999666,8247 "spec/models/concerns/access_requestable_spec.rb": 3.0183404489998793,8248 "spec/lib/gitlab/git/remote_mirror_spec.rb": 2.210324509000202,8249 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.4709161499995389,8250 "spec/services/packages/debian/find_or_create_incoming_service_spec.rb": 0.5637378910014377,8251 "spec/graphql/resolvers/users_resolver_spec.rb": 1.2006108259993198,8252 "spec/models/concerns/uniquify_spec.rb": 0.3629095389987924,8253 "spec/lib/sidebars/projects/menus/deployments_menu_spec.rb": 1.1548758400003862,8254 "spec/components/pajamas/card_component_spec.rb": 0.9390582579999318,8255 "spec/lib/gitlab/database/migrations/observers/query_statistics_spec.rb": 0.3639648779990239,8256 "spec/workers/pages_worker_spec.rb": 1.9642666100007773,8257 "spec/models/preloaders/labels_preloader_spec.rb": 2.652416099999755,8258 "spec/services/task_list_toggle_service_spec.rb": 0.9391034790005506,8259 "spec/lib/gitlab/import_export/design_repo_saver_spec.rb": 1.7154837020007108,8260 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.31701272200007224,8261 "spec/views/shared/milestones/_issuables.html.haml_spec.rb": 0.3657316480002919,8262 "spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb": 0.8554708660012693,8263 "spec/helpers/ide_helper_spec.rb": 1.340848284000458,8264 "spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb": 0.23521738899944467,8265 "spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb": 0.20222400300008303,8266 "spec/models/projects/triggered_hooks_spec.rb": 0.7809001420009736,8267 "spec/graphql/resolvers/concerns/resolves_ids_spec.rb": 0.2415901690001192,8268 "spec/lib/gitlab/query_limiting_spec.rb": 1.217299465000906,8269 "spec/views/projects/project_members/index.html.haml_spec.rb": 1.155432830000791,8270 "spec/serializers/request_aware_entity_spec.rb": 0.15664265600025828,8271 "spec/views/shared/projects/_list.html.haml_spec.rb": 1.0955152149999776,8272 "spec/graphql/types/incident_management/timeline_event_type_spec.rb": 0.36500415800037445,8273 "spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb": 0.13400103799904173,8274 "spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb": 0.5436435529991286,8275 "spec/lib/gitlab/saas_spec.rb": 0.48717637799927616,8276 "spec/serializers/serverless/domain_entity_spec.rb": 0.3528007799995976,8277 "spec/models/experiment_user_spec.rb": 0.2702999369994359,8278 "spec/helpers/subscribable_banner_helper_spec.rb": 0.10512367100091069,8279 "spec/lib/gitlab/diff/inline_diff_marker_spec.rb": 0.3497093900004984,8280 "spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb": 0.5869857289999345,8281 "spec/lib/gitlab/ci/status/running_spec.rb": 0.42061449399989215,8282 "spec/lib/gitlab/ci/build/port_spec.rb": 0.5147001350014762,8283 "spec/helpers/sidebars_helper_spec.rb": 0.5795551000010164,8284 "spec/models/project_metrics_setting_spec.rb": 0.7078510890005418,8285 "spec/views/projects/hooks/edit.html.haml_spec.rb": 1.1713039179994666,8286 "spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.4458063750007568,8287 "spec/helpers/numbers_helper_spec.rb": 0.5246403450000798,8288 "spec/lib/gitlab/import_export/import_test_coverage_spec.rb": 0.2869457959986903,8289 "spec/lib/container_registry/registry_spec.rb": 0.35391389899996284,8290 "spec/lib/gitlab/sidekiq_death_handler_spec.rb": 0.43860136199873523,8291 "spec/serializers/context_commits_diff_entity_spec.rb": 1.5768379639994237,8292 "spec/lib/gitlab/ci/status/created_spec.rb": 0.37837320799917507,8293 "spec/lib/gitlab/webpack/file_loader_spec.rb": 0.48022754799967515,8294 "spec/graphql/mutations/alert_management/http_integration/create_spec.rb": 1.3834798210009467,8295 "spec/lib/api/entities/basic_project_details_spec.rb": 0.5766834699988976,8296 "spec/lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator_spec.rb": 0.3139523330009979,8297 "spec/models/namespaces/project_namespace_spec.rb": 0.5864568800006964,8298 "spec/lib/gitlab/email/message/in_product_marketing/admin_verify_spec.rb": 0.6914346199991996,8299 "spec/lib/gitlab/database/type/json_pg_safe_spec.rb": 0.6026027879997855,8300 "spec/models/concerns/case_sensitivity_spec.rb": 0.3148763129993313,8301 "spec/workers/detect_repository_languages_worker_spec.rb": 0.3851065260005271,8302 "spec/lib/gitlab/utils/log_limited_array_spec.rb": 0.41521553399979894,8303 "spec/finders/packages/group_or_project_package_finder_spec.rb": 0.6872343710001587,8304 "spec/lib/api/validations/validators/absence_spec.rb": 0.5613011909990746,8305 "spec/services/bulk_push_event_payload_service_spec.rb": 0.8057975709998573,8306 "spec/workers/repository_check/dispatch_worker_spec.rb": 0.39797416600049473,8307 "spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb": 1.367557002000467,8308 "spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb": 1.3488534739990428,8309 "spec/lib/gitlab/incident_management/pager_duty/incident_issue_description_spec.rb": 0.4402565520013013,8310 "spec/views/projects/imports/new.html.haml_spec.rb": 0.9012614919993212,8311 "spec/services/projects/readme_renderer_service_spec.rb": 1.2976806170008786,8312 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.7431271549994563,8313 "spec/helpers/sourcegraph_helper_spec.rb": 0.7066925690014614,8314 "spec/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker_spec.rb": 0.9132460310011083,8315 "spec/rubocop/cop/database/multiple_databases_spec.rb": 0.5113338560004195,8316 "spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb": 0.6830046710001625,8317 "spec/lib/gitlab/ci/parsers/codequality/code_climate_spec.rb": 0.27782534600009967,8318 "spec/lib/gitlab/multi_destination_logger_spec.rb": 0.33920088000013493,8319 "spec/lib/gitlab/faraday/error_callback_spec.rb": 0.4083731049995549,8320 "spec/graphql/types/ci/pipeline_type_spec.rb": 0.2792391660004796,8321 "spec/lib/bulk_imports/common/extractors/json_extractor_spec.rb": 0.718514136999147,8322 "spec/lib/gitlab/metrics/dashboard/validator/client_spec.rb": 0.3815529379990039,8323 "spec/lib/gitlab/ci/config/entry/release/assets_spec.rb": 0.25549433800006227,8324 "spec/views/import/gitlab_projects/new.html.haml_spec.rb": 0.37244495800041477,8325 "spec/models/blob_viewer/composer_json_spec.rb": 0.10361024099984206,8326 "spec/initializers/rack_multipart_patch_spec.rb": 0.348943920000238,8327 "spec/lib/gitlab/repository_archive_rate_limiter_spec.rb": 0.4216780730002938,8328 "spec/rubocop/cop/gitlab/bulk_insert_spec.rb": 0.22954888099957316,8329 "spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb": 0.34486586099956185,8330 "spec/workers/ci_platform_metrics_update_cron_worker_spec.rb": 0.4401468529995327,8331 "spec/graphql/types/commit_action_mode_enum_spec.rb": 0.47854305900000327,8332 "spec/rubocop/cop/graphql/graphql_name_position_spec.rb": 0.3654924479997135,8333 "spec/experiments/force_company_trial_experiment_spec.rb": 0.8455240959992807,8334 "spec/lib/banzai/filter/suggestion_filter_spec.rb": 0.11757253999894601,8335 "spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb": 0.3518782800001645,8336 "spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb": 0.47406463000152144,8337 "spec/graphql/types/label_type_spec.rb": 0.34696430999974837,8338 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.29040439399977913,8339 "spec/lib/gitlab/language_data_spec.rb": 0.2805375860007189,8340 "spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb": 0.2036567120012478,8341 "spec/graphql/types/permission_types/base_permission_type_spec.rb": 0.29759275399919716,8342 "spec/validators/cron_validator_spec.rb": 0.23878399999921385,8343 "spec/rubocop/cop/user_admin_spec.rb": 0.240164499000457,8344 "spec/lib/api/entities/project_import_failed_relation_spec.rb": 0.22580914100035443,8345 "spec/workers/trending_projects_worker_spec.rb": 0.625947714999711,8346 "spec/uploaders/metric_image_uploader_spec.rb": 0.14735646799999813,8347 "spec/graphql/types/container_expiration_policy_keep_enum_spec.rb": 0.23734970899931795,8348 "spec/models/concerns/runners_token_prefixable_spec.rb": 0.3538535789994057,8349 "spec/lib/gitlab/log_timestamp_formatter_spec.rb": 0.18455056400125613,8350 "spec/lib/bitbucket/collection_spec.rb": 0.29622449499947834,8351 "spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb": 0.6940743499999371,8352 "spec/lib/banzai/querying_spec.rb": 0.576419220000389,8353 "spec/graphql/types/subscription_type_spec.rb": 0.48339504800060248354}8355Knapsack global time execution for tests: 40m 34s8356Pending: (Failures listed here are expected and do not affect your suite's status)8357 1) Deployment modules 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 blank8358 # No reason given8359 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498360 2) Deployment modules 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 blank8361 # No reason given8362 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578363 3) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #cache_dir behaves like matches the method pattern 8364 # No pattern provided, skipping.8365 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88366 4) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #work_dir behaves like matches the method pattern 8367 # No pattern provided, skipping.8368 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88369 5) PersonalFileUploader object_store is LOCAL behaves like builds correct paths #relative_path is relative8370 # Path not set, skipping.8371 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408372 6) PersonalFileUploader object_store is LOCAL behaves like builds correct paths .base_dir behaves like matches the method pattern 8373 # No pattern provided, skipping.8374 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88375 7) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8376 # No pattern provided, skipping.8377 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88378 8) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8379 # No pattern provided, skipping.8380 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88381 9) PersonalFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative8382 # Path not set, skipping.8383 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408384 10) PersonalFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8385 # No pattern provided, skipping.8386 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88387 11) PersonalFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8388 # No pattern provided, skipping.8389 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88390 12) ReleaseHighlight.paginated with page param when there is another page of results responds with paginated results8391 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8392 # ./spec/models/release_highlight_spec.rb:308393 13) ReleaseHighlight.paginated with page param when there is NOT another page of results responds with paginated results and no next_page8394 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8395 # ./spec/models/release_highlight_spec.rb:398396 14) Packages::Composer::CacheUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8397 # No pattern provided, skipping.8398 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88399 15) Packages::Composer::CacheUploader behaves like builds correct paths #relative_path is relative8400 # Path not set, skipping.8401 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408402 16) Packages::Composer::CacheUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8403 # No pattern provided, skipping.8404 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88405 17) Packages::Composer::CacheUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8406 # No pattern provided, skipping.8407 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88408 18) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8409 # No pattern provided, skipping.8410 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88411 19) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8412 # No pattern provided, skipping.8413 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88414 20) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8415 # No pattern provided, skipping.8416 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88417 21) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths #relative_path is relative8418 # Path not set, skipping.8419 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408420 22) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8421 # No pattern provided, skipping.8422 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88423 23) Packages::Composer::CacheUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8424 # No pattern provided, skipping.8425 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88426Finished in 40 minutes 38 seconds (files took 1 minute 13.72 seconds to load)84273628 examples, 0 failures, 23 pending8428RSpec exited with 0.8429No examples to retry, congrats!8431Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8432Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8434Uploading artifacts...8435coverage/: found 5 matching files and directories 8436crystalball/: found 2 matching files and directories 8437WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 8438knapsack/: found 3 matching files and directories 8439rspec/: found 9 matching files and directories 8440WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8441log/*.log: found 18 matching files and directories 8442WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336982/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8443WARNING: Retrying... context=artifacts-uploader error=request redirected8444Uploading artifacts as "archive" to coordinator... 201 Created id=2673336982 responseStatus=201 Created token=uWfJ6sZ98445Uploading artifacts...8446rspec/junit_rspec.xml: found 1 matching files and directories 8447WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336982/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8448WARNING: Retrying... context=artifacts-uploader error=request redirected8449Uploading artifacts as "junit" to coordinator... 201 Created id=2673336982 responseStatus=201 Created token=uWfJ6sZ98451Job succeeded