rspec unit pg12 21/22
Passed Started
by
@splattael
Peter Leitzen
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv3 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:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d 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:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...18Running on runner-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1656525663-e3b762ea...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: 108133, done. 25remote: Counting objects: 100% (108133/108133), done. 26remote: Compressing objects: 100% (78029/78029), done. 27remote: Total 108133 (delta 41971), reused 69318 (delta 25782), pack-reused 0 28Receiving objects: 100% (108133/108133), 107.22 MiB | 28.89 MiB/s, done.29Resolving deltas: 100% (41971/41971), done.31 * [new ref] refs/pipelines/576349587 -> refs/pipelines/57634958732Checking out ab4209a5 as refs/merge-requests/91088/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2658553241)...44Downloading artifacts from coordinator... ok id=2658553241 responseStatus=200 OK token=nWNntcws45Downloading artifacts for detect-tests (2658553263)...46Downloading artifacts from coordinator... ok id=2658553263 responseStatus=200 OK token=nWNntcws47Downloading artifacts for retrieve-tests-metadata (2658553268)...48Downloading artifacts from coordinator... ok id=2658553268 responseStatus=200 OK token=nWNntcws49Downloading artifacts for setup-test-env (2658553255)...50Downloading artifacts from coordinator... ok id=2658553255 responseStatus=200 OK token=nWNntcws52Using docker image sha256:1c23a0bd0711f9f7944305c4b25ce8e4301c16167671a7873aad77579270806d 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:d0052322332df372b949caf19e910c0ce6859c1e7ed29ff609ebec91b1dead87 ...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 3 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 14 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 44 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.21.2174Using 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 14 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_21_22_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_21_22_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_21_22_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_21_22_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_21_22_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/models/repository_spec.rb239spec/services/merge_requests/refresh_service_spec.rb240spec/lib/gitlab/regex_spec.rb241spec/lib/gitlab/auth_spec.rb242spec/models/concerns/resolvable_discussion_spec.rb243spec/services/boards/issues/list_service_spec.rb244spec/services/projects/destroy_service_spec.rb245spec/services/merge_requests/squash_service_spec.rb246spec/services/users/destroy_service_spec.rb247spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb248spec/lib/gitlab/database/consistency_checker_spec.rb249spec/models/clusters/applications/cilium_spec.rb250spec/lib/gitlab/git_access_snippet_spec.rb251spec/services/resource_access_tokens/create_service_spec.rb252spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb253spec/models/integrations/bamboo_spec.rb254spec/models/integrations/pipelines_email_spec.rb255spec/graphql/mutations/merge_requests/set_labels_spec.rb256spec/services/verify_pages_domain_service_spec.rb257spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb258spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb259spec/graphql/resolvers/merge_requests_resolver_spec.rb260spec/helpers/commits_helper_spec.rb261spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb262spec/services/projects/detect_repository_languages_service_spec.rb263spec/lib/banzai/reference_parser/user_parser_spec.rb264spec/models/projects/build_artifacts_size_refresh_spec.rb265spec/helpers/labels_helper_spec.rb266spec/serializers/merge_request_poll_widget_entity_spec.rb267spec/finders/packages/nuget/package_finder_spec.rb268spec/lib/gitlab/relative_positioning/range_spec.rb269spec/services/issues/zoom_link_service_spec.rb270spec/lib/gitlab/import_export/import_failure_service_spec.rb271spec/lib/gitlab/ci/templates/npm_spec.rb272spec/graphql/mutations/issues/update_spec.rb273spec/services/merge_requests/link_lfs_objects_service_spec.rb274spec/services/issuable/clone/attributes_rewriter_spec.rb275spec/models/merge_request_diff_file_spec.rb276spec/services/design_management/save_designs_service_spec.rb277spec/tasks/gitlab/user_management_rake_spec.rb278spec/models/diff_discussion_spec.rb279spec/models/ci/secure_file_spec.rb280spec/services/ci/archive_trace_service_spec.rb281spec/lib/gitlab/ci/trace/checksum_spec.rb282spec/services/projects/hashed_storage/rollback_repository_service_spec.rb283spec/workers/create_commit_signature_worker_spec.rb284spec/models/integrations/mattermost_slash_commands_spec.rb285spec/services/packages/maven/metadata/sync_service_spec.rb286spec/models/project_feature_usage_spec.rb287spec/graphql/types/merge_request_type_spec.rb288spec/graphql/mutations/issues/create_spec.rb289spec/helpers/todos_helper_spec.rb290spec/routing/git_http_routing_spec.rb291spec/models/release_highlight_spec.rb292spec/views/ci/status/_icon.html.haml_spec.rb293spec/services/clusters/agents/refresh_authorization_service_spec.rb294spec/finders/merge_requests/oldest_per_commit_finder_spec.rb295spec/tasks/gitlab/smtp_rake_spec.rb296spec/models/hooks/project_hook_spec.rb297spec/helpers/invite_members_helper_spec.rb298spec/lib/gitlab/gitaly_client/blob_service_spec.rb299spec/services/issues/reorder_service_spec.rb300spec/services/jira_import/start_import_service_spec.rb301spec/lib/gitlab/import_export/file_importer_spec.rb302spec/models/pages/lookup_path_spec.rb303spec/workers/deployments/update_environment_worker_spec.rb304spec/services/merge_requests/bulk_remove_attention_requested_service_spec.rb305spec/lib/gitlab/deploy_key_access_spec.rb306spec/services/wiki_pages/create_service_spec.rb307spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb308spec/models/lfs_object_spec.rb309spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb310spec/lib/gitlab/template_parser/ast_spec.rb311spec/helpers/page_layout_helper_spec.rb312spec/helpers/badges_helper_spec.rb313spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb314spec/workers/container_expiration_policy_worker_spec.rb315spec/services/prometheus/proxy_service_spec.rb316spec/rubocop/cop/rspec/factory_bot/inline_association_spec.rb317spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb318spec/lib/gitlab/cache/import/caching_spec.rb319spec/graphql/resolvers/group_issues_resolver_spec.rb320spec/lib/banzai/reference_parser/external_issue_parser_spec.rb321spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb322spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb323spec/lib/gitlab/git_access_project_spec.rb324spec/lib/gitlab/safe_request_store_spec.rb325spec/helpers/projects/error_tracking_helper_spec.rb326spec/lib/gitlab/utils/override_spec.rb327spec/lib/gitlab/repo_path_spec.rb328spec/lib/gitlab/template_parser/parser_spec.rb329spec/lib/gitlab/usage_data_counters/note_counter_spec.rb330spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb331spec/lib/gitlab/metrics/background_transaction_spec.rb332spec/initializers/hangouts_chat_http_override_spec.rb333spec/services/clusters/aws/authorize_role_service_spec.rb334spec/lib/gitlab/utils/json_size_estimator_spec.rb335spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb336spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb337spec/lib/gitlab/ci/config/entry/jobs_spec.rb338spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb339spec/lib/pager_duty/webhook_payload_parser_spec.rb340spec/workers/clusters/cleanup/project_namespace_worker_spec.rb341spec/services/packages/terraform_module/create_package_service_spec.rb342spec/services/snippets/update_repository_storage_service_spec.rb343spec/finders/context_commits_finder_spec.rb344spec/lib/gitlab/untrusted_regexp_spec.rb345spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb346spec/initializers/active_record_locking_spec.rb347spec/tooling/lib/tooling/find_codeowners_spec.rb348spec/models/concerns/sanitizable_spec.rb349spec/haml_lint/linter/no_plain_nodes_spec.rb350spec/presenters/issue_presenter_spec.rb351spec/lib/gitlab/kubernetes/node_spec.rb352spec/lib/gitlab/tracking_spec.rb353spec/models/loose_foreign_keys/modification_tracker_spec.rb354spec/routing/uploads_routing_spec.rb355spec/workers/loose_foreign_keys/cleanup_worker_spec.rb356spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb357spec/lib/banzai/filter/color_filter_spec.rb358spec/services/notification_recipients/builder/new_note_spec.rb359spec/models/packages/debian/publication_spec.rb360spec/lib/gitlab/ci/reports/codequality_reports_spec.rb361spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb362spec/graphql/subscriptions/issuable_updated_spec.rb363spec/lib/banzai/reference_parser/design_parser_spec.rb364spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb365spec/workers/namespaces/root_statistics_worker_spec.rb366spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb367spec/helpers/git_helper_spec.rb368spec/lib/gitlab/search_context/controller_concern_spec.rb369spec/lib/api/entities/release_spec.rb370spec/models/ci/group_variable_spec.rb371spec/workers/pipeline_notification_worker_spec.rb372spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb373spec/lib/gitlab/ci/status/build/action_spec.rb374spec/graphql/resolvers/concerns/looks_ahead_spec.rb375spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb376spec/models/concerns/expirable_spec.rb377spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb378spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb379spec/lib/gitlab/sidekiq_config_spec.rb380spec/models/hooks/service_hook_spec.rb381spec/workers/packages/cleanup_package_registry_worker_spec.rb382spec/graphql/types/container_expiration_policy_type_spec.rb383spec/workers/ci/archive_trace_worker_spec.rb384spec/validators/system_hook_url_validator_spec.rb385spec/models/concerns/safe_url_spec.rb386spec/lib/gitlab/auth/saml/identity_linker_spec.rb387spec/lib/gitlab/ci/config/entry/hidden_spec.rb388spec/serializers/integrations/field_entity_spec.rb389spec/workers/flush_counter_increments_worker_spec.rb390spec/models/concerns/nullify_if_blank_spec.rb391spec/workers/purge_dependency_proxy_cache_worker_spec.rb392spec/views/projects/_flash_messages.html.haml_spec.rb393spec/graphql/mutations/environments/canary_ingress/update_spec.rb394spec/lib/gitlab/ci/matching/build_matcher_spec.rb395spec/lib/gitlab/usage_data_non_sql_metrics_spec.rb396spec/tooling/danger/sidekiq_queues_spec.rb397spec/validators/ip_address_validator_spec.rb398spec/helpers/wiki_page_version_helper_spec.rb399spec/rubocop/qa_helpers_spec.rb400spec/lib/gitlab/changelog/release_spec.rb401spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb402spec/lib/gitlab/class_attributes_spec.rb403spec/models/concerns/ignorable_columns_spec.rb404spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb405spec/lib/gitlab/global_id/deprecations_spec.rb406spec/lib/gitlab/ci/pipeline/preloader_spec.rb407spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb408spec/services/issuable/process_assignees_spec.rb409spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb410spec/views/shared/projects/_list.html.haml_spec.rb411spec/graphql/types/merge_requests/assignee_type_spec.rb412spec/policies/protected_branch_policy_spec.rb413spec/lib/sidebars/menu_item_spec.rb414spec/lib/gitlab/manifest_import/metadata_spec.rb415spec/graphql/mutations/customer_relations/organizations/update_spec.rb416spec/models/users/credit_card_validation_spec.rb417spec/models/concerns/taskable_spec.rb418spec/helpers/rss_helper_spec.rb419spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb420spec/workers/pages_domain_ssl_renewal_worker_spec.rb421spec/rubocop/cop/filename_length_spec.rb422spec/workers/object_pool/join_worker_spec.rb423spec/helpers/access_tokens_helper_spec.rb424spec/lib/gitlab/github_import/importer/notes_importer_spec.rb425spec/graphql/mutations/customer_relations/contacts/update_spec.rb426spec/lib/gitlab/x509/commit_spec.rb427spec/services/metrics/sample_metrics_service_spec.rb428spec/lib/api/entities/personal_access_token_spec.rb429spec/graphql/types/packages/conan/file_metadatum_type_spec.rb430spec/finders/packages/pypi/package_finder_spec.rb431spec/lib/gitlab/metrics/dashboard/cache_spec.rb432spec/graphql/mutations/custom_emoji/create_spec.rb433spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb434spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb435spec/lib/api/helpers/label_helpers_spec.rb436spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb437spec/workers/metrics/dashboard/schedule_annotations_prune_worker_spec.rb438spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb439spec/lib/gitlab/git/wiki_page_version_spec.rb440spec/services/users/respond_to_terms_service_spec.rb441spec/views/devise/sessions/new.html.haml_spec.rb442spec/models/term_agreement_spec.rb443spec/lib/gitlab/slash_commands/presenters/run_spec.rb444spec/graphql/types/container_repository_type_spec.rb445spec/serializers/project_mirror_serializer_spec.rb446spec/lib/gitlab/snippet_search_results_spec.rb447spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb448spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb449spec/lib/gitlab/submodule_links_spec.rb450spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb451spec/serializers/group_deploy_key_entity_spec.rb452spec/lib/json_web_token/rsa_token_spec.rb453spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb454spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb455spec/lib/gitlab/event_store/event_spec.rb456spec/lib/gitlab/git/commit_stats_spec.rb457spec/lib/gitlab/import_export/attribute_configuration_spec.rb458spec/workers/stuck_ci_jobs_worker_spec.rb459spec/initializers/100_patch_omniauth_oauth2_spec.rb460spec/models/users/calloutable_spec.rb461spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb462spec/lib/gitlab/graphql_logger_spec.rb463spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb464spec/db/production/import_common_metrics_spec.rb465spec/lib/bitbucket_server/collection_spec.rb466spec/rubocop/cop/code_reuse/finder_spec.rb467spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb468spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb469spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb470spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb471spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb472spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb473spec/rubocop/cop/avoid_becomes_spec.rb474spec/graphql/types/error_tracking/sentry_error_type_spec.rb475spec/models/ci/pipeline_config_spec.rb476spec/graphql/types/ci/config/job_type_spec.rb477spec/lib/gitlab/utils/safe_inline_hash_spec.rb478spec/graphql/types/query_complexity_type_spec.rb479spec/graphql/types/ci/test_report_summary_type_spec.rb480spec/graphql/types/packages/helm/file_metadatum_type_spec.rb481spec/lib/product_analytics/tracker_spec.rb482spec/graphql/types/packages/package_sort_enum_spec.rb483spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb484spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb485spec/lib/gitlab/diff/inline_diff_marker_spec.rb486spec/lib/gitlab/kubernetes/role_binding_spec.rb487spec/helpers/tooling/visual_review_helper_spec.rb488spec/graphql/types/ci/variable_type_enum_spec.rb489spec/models/discussion_note_spec.rb490spec/lib/sidebars/projects/context_spec.rb491spec/helpers/terms_helper_spec.rb492spec/models/concerns/taggable_queries_spec.rb493spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb494spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb495spec/graphql/types/subscription_type_spec.rb496Filter specs:497Running specs:498Running all node tests without filter499spec/models/repository_spec.rb500spec/services/merge_requests/refresh_service_spec.rb501spec/lib/gitlab/regex_spec.rb502spec/lib/gitlab/auth_spec.rb503spec/models/concerns/resolvable_discussion_spec.rb504spec/services/boards/issues/list_service_spec.rb505spec/services/projects/destroy_service_spec.rb506spec/services/merge_requests/squash_service_spec.rb507spec/services/users/destroy_service_spec.rb508spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb509spec/lib/gitlab/database/consistency_checker_spec.rb510spec/models/clusters/applications/cilium_spec.rb511spec/lib/gitlab/git_access_snippet_spec.rb512spec/services/resource_access_tokens/create_service_spec.rb513spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb514spec/models/integrations/bamboo_spec.rb515spec/models/integrations/pipelines_email_spec.rb516spec/graphql/mutations/merge_requests/set_labels_spec.rb517spec/services/verify_pages_domain_service_spec.rb518spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb519spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb520spec/graphql/resolvers/merge_requests_resolver_spec.rb521spec/helpers/commits_helper_spec.rb522spec/lib/gitlab/background_migration/backfill_issue_search_data_spec.rb523spec/services/projects/detect_repository_languages_service_spec.rb524spec/lib/banzai/reference_parser/user_parser_spec.rb525spec/models/projects/build_artifacts_size_refresh_spec.rb526spec/helpers/labels_helper_spec.rb527spec/serializers/merge_request_poll_widget_entity_spec.rb528spec/finders/packages/nuget/package_finder_spec.rb529spec/lib/gitlab/relative_positioning/range_spec.rb530spec/services/issues/zoom_link_service_spec.rb531spec/lib/gitlab/import_export/import_failure_service_spec.rb532spec/lib/gitlab/ci/templates/npm_spec.rb533spec/graphql/mutations/issues/update_spec.rb534spec/services/merge_requests/link_lfs_objects_service_spec.rb535spec/services/issuable/clone/attributes_rewriter_spec.rb536spec/models/merge_request_diff_file_spec.rb537spec/services/design_management/save_designs_service_spec.rb538spec/tasks/gitlab/user_management_rake_spec.rb539spec/models/diff_discussion_spec.rb540spec/models/ci/secure_file_spec.rb541spec/services/ci/archive_trace_service_spec.rb542spec/lib/gitlab/ci/trace/checksum_spec.rb543spec/services/projects/hashed_storage/rollback_repository_service_spec.rb544spec/workers/create_commit_signature_worker_spec.rb545spec/models/integrations/mattermost_slash_commands_spec.rb546spec/services/packages/maven/metadata/sync_service_spec.rb547spec/models/project_feature_usage_spec.rb548spec/graphql/types/merge_request_type_spec.rb549spec/graphql/mutations/issues/create_spec.rb550spec/helpers/todos_helper_spec.rb551spec/routing/git_http_routing_spec.rb552spec/models/release_highlight_spec.rb553spec/views/ci/status/_icon.html.haml_spec.rb554spec/services/clusters/agents/refresh_authorization_service_spec.rb555spec/finders/merge_requests/oldest_per_commit_finder_spec.rb556spec/tasks/gitlab/smtp_rake_spec.rb557spec/models/hooks/project_hook_spec.rb558spec/helpers/invite_members_helper_spec.rb559spec/lib/gitlab/gitaly_client/blob_service_spec.rb560spec/services/issues/reorder_service_spec.rb561spec/services/jira_import/start_import_service_spec.rb562spec/lib/gitlab/import_export/file_importer_spec.rb563spec/models/pages/lookup_path_spec.rb564spec/workers/deployments/update_environment_worker_spec.rb565spec/services/merge_requests/bulk_remove_attention_requested_service_spec.rb566spec/lib/gitlab/deploy_key_access_spec.rb567spec/services/wiki_pages/create_service_spec.rb568spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb569spec/models/lfs_object_spec.rb570spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb571spec/lib/gitlab/template_parser/ast_spec.rb572spec/helpers/page_layout_helper_spec.rb573spec/helpers/badges_helper_spec.rb574spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb575spec/workers/container_expiration_policy_worker_spec.rb576spec/services/prometheus/proxy_service_spec.rb577spec/rubocop/cop/rspec/factory_bot/inline_association_spec.rb578spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb579spec/lib/gitlab/cache/import/caching_spec.rb580spec/graphql/resolvers/group_issues_resolver_spec.rb581spec/lib/banzai/reference_parser/external_issue_parser_spec.rb582spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb583spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb584spec/lib/gitlab/git_access_project_spec.rb585spec/lib/gitlab/safe_request_store_spec.rb586spec/helpers/projects/error_tracking_helper_spec.rb587spec/lib/gitlab/utils/override_spec.rb588spec/lib/gitlab/repo_path_spec.rb589spec/lib/gitlab/template_parser/parser_spec.rb590spec/lib/gitlab/usage_data_counters/note_counter_spec.rb591spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb592spec/lib/gitlab/metrics/background_transaction_spec.rb593spec/initializers/hangouts_chat_http_override_spec.rb594spec/services/clusters/aws/authorize_role_service_spec.rb595spec/lib/gitlab/utils/json_size_estimator_spec.rb596spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb597spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb598spec/lib/gitlab/ci/config/entry/jobs_spec.rb599spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb600spec/lib/pager_duty/webhook_payload_parser_spec.rb601spec/workers/clusters/cleanup/project_namespace_worker_spec.rb602spec/services/packages/terraform_module/create_package_service_spec.rb603spec/services/snippets/update_repository_storage_service_spec.rb604spec/finders/context_commits_finder_spec.rb605spec/lib/gitlab/untrusted_regexp_spec.rb606spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb607spec/initializers/active_record_locking_spec.rb608spec/tooling/lib/tooling/find_codeowners_spec.rb609spec/models/concerns/sanitizable_spec.rb610spec/haml_lint/linter/no_plain_nodes_spec.rb611spec/presenters/issue_presenter_spec.rb612spec/lib/gitlab/kubernetes/node_spec.rb613spec/lib/gitlab/tracking_spec.rb614spec/models/loose_foreign_keys/modification_tracker_spec.rb615spec/routing/uploads_routing_spec.rb616spec/workers/loose_foreign_keys/cleanup_worker_spec.rb617spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb618spec/lib/banzai/filter/color_filter_spec.rb619spec/services/notification_recipients/builder/new_note_spec.rb620spec/models/packages/debian/publication_spec.rb621spec/lib/gitlab/ci/reports/codequality_reports_spec.rb622spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb623spec/graphql/subscriptions/issuable_updated_spec.rb624spec/lib/banzai/reference_parser/design_parser_spec.rb625spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb626spec/workers/namespaces/root_statistics_worker_spec.rb627spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb628spec/helpers/git_helper_spec.rb629spec/lib/gitlab/search_context/controller_concern_spec.rb630spec/lib/api/entities/release_spec.rb631spec/models/ci/group_variable_spec.rb632spec/workers/pipeline_notification_worker_spec.rb633spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb634spec/lib/gitlab/ci/status/build/action_spec.rb635spec/graphql/resolvers/concerns/looks_ahead_spec.rb636spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb637spec/models/concerns/expirable_spec.rb638spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb639spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb640spec/lib/gitlab/sidekiq_config_spec.rb641spec/models/hooks/service_hook_spec.rb642spec/workers/packages/cleanup_package_registry_worker_spec.rb643spec/graphql/types/container_expiration_policy_type_spec.rb644spec/workers/ci/archive_trace_worker_spec.rb645spec/validators/system_hook_url_validator_spec.rb646spec/models/concerns/safe_url_spec.rb647spec/lib/gitlab/auth/saml/identity_linker_spec.rb648spec/lib/gitlab/ci/config/entry/hidden_spec.rb649spec/serializers/integrations/field_entity_spec.rb650spec/workers/flush_counter_increments_worker_spec.rb651spec/models/concerns/nullify_if_blank_spec.rb652spec/workers/purge_dependency_proxy_cache_worker_spec.rb653spec/views/projects/_flash_messages.html.haml_spec.rb654spec/graphql/mutations/environments/canary_ingress/update_spec.rb655spec/lib/gitlab/ci/matching/build_matcher_spec.rb656spec/lib/gitlab/usage_data_non_sql_metrics_spec.rb657spec/tooling/danger/sidekiq_queues_spec.rb658spec/validators/ip_address_validator_spec.rb659spec/helpers/wiki_page_version_helper_spec.rb660spec/rubocop/qa_helpers_spec.rb661spec/lib/gitlab/changelog/release_spec.rb662spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb663spec/lib/gitlab/class_attributes_spec.rb664spec/models/concerns/ignorable_columns_spec.rb665spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb666spec/lib/gitlab/global_id/deprecations_spec.rb667spec/lib/gitlab/ci/pipeline/preloader_spec.rb668spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb669spec/services/issuable/process_assignees_spec.rb670spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb671spec/views/shared/projects/_list.html.haml_spec.rb672spec/graphql/types/merge_requests/assignee_type_spec.rb673spec/policies/protected_branch_policy_spec.rb674spec/lib/sidebars/menu_item_spec.rb675spec/lib/gitlab/manifest_import/metadata_spec.rb676spec/graphql/mutations/customer_relations/organizations/update_spec.rb677spec/models/users/credit_card_validation_spec.rb678spec/models/concerns/taskable_spec.rb679spec/helpers/rss_helper_spec.rb680spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb681spec/workers/pages_domain_ssl_renewal_worker_spec.rb682spec/rubocop/cop/filename_length_spec.rb683spec/workers/object_pool/join_worker_spec.rb684spec/helpers/access_tokens_helper_spec.rb685spec/lib/gitlab/github_import/importer/notes_importer_spec.rb686spec/graphql/mutations/customer_relations/contacts/update_spec.rb687spec/lib/gitlab/x509/commit_spec.rb688spec/services/metrics/sample_metrics_service_spec.rb689spec/lib/api/entities/personal_access_token_spec.rb690spec/graphql/types/packages/conan/file_metadatum_type_spec.rb691spec/finders/packages/pypi/package_finder_spec.rb692spec/lib/gitlab/metrics/dashboard/cache_spec.rb693spec/graphql/mutations/custom_emoji/create_spec.rb694spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb695spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb696spec/lib/api/helpers/label_helpers_spec.rb697spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb698spec/workers/metrics/dashboard/schedule_annotations_prune_worker_spec.rb699spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb700spec/lib/gitlab/git/wiki_page_version_spec.rb701spec/services/users/respond_to_terms_service_spec.rb702spec/views/devise/sessions/new.html.haml_spec.rb703spec/models/term_agreement_spec.rb704spec/lib/gitlab/slash_commands/presenters/run_spec.rb705spec/graphql/types/container_repository_type_spec.rb706spec/serializers/project_mirror_serializer_spec.rb707spec/lib/gitlab/snippet_search_results_spec.rb708spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb709spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb710spec/lib/gitlab/submodule_links_spec.rb711spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb712spec/serializers/group_deploy_key_entity_spec.rb713spec/lib/json_web_token/rsa_token_spec.rb714spec/workers/issuables/clear_groups_issue_counter_worker_spec.rbKnapsack report generator started!715DEPRECATION 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 call716/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 here717 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)718Run options: exclude {:quarantine=>true, :level=>"migration"}719==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.098100473 seconds...720Test environment set up in 1.700568676 seconds721Repository722 #branch_names_contains723 is expected to include "master"724 is expected not to include "feature"725 is expected not to include "fix"726 when storage is broken727 raises a storage error728 #tag_names_contains729 is expected to include "v1.1.0"730 is expected not to include "v1.0.0"731 #tags_sorted_by732 name_desc733 is expected to eq ["v1.1.0", "v1.0.0"]734 name_asc735 is expected to eq ["v1.0.0", "v1.1.0"]736 with pagination737 with limit738 is expected to eq ["v1.0.0"]739 with page token and limit740 is expected to eq ["v1.1.0"]741 with page token only742 raises an ArgumentError743 with negative limit744 returns all tags745 with unknown token746 raises an ArgumentError747 updated748 desc749 is expected to eq ["v0.0.0", "v1.1.0", "v1.0.0"]750 asc751 is expected to eq ["v1.0.0", "v1.1.0", "v0.0.0"]752 annotated tag pointing to a blob753 is expected to eq ["v1.0.0", "v1.1.0", "annotated-tag"]754 unknown option755 is expected to eq ["v1.0.0", "v1.1.0"]756 #ref_exists?757 when ref exists758 returns true759 when ref does not exist760 returns false761 when ref format is incorrect762 returns false763 #search_branch_names764 returns matching branch names765 #list_last_commits_for_tree766 returns the last commits for every entry in the current path767 returns the last commits for every entry in the current path starting from the offset768 returns a limited number of last commits for every entry in the current path starting from the offset769 returns an empty hash when offset is out of bounds770 with a commit with invalid UTF-8 path771 does not raise an error772 #last_commit_for_path773 is expected to eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"774 when storage is broken775 raises a storage error776 with filename with pathspec characters777 returns a commit SHA778 #last_commit_id_for_path779 returns last commit id for a given path780 caches last commit id for a given path781 when storage is broken782 raises a storage error783 with filename with pathspec characters784 returns a commit SHA785 #commits786 when neither the all flag nor a ref are specified787 returns every commit from default branch788 when ref is passed789 returns every commit from the specified ref790 when all791 returns every commit from the repository792 with path793 sets follow when it is a single path794 does not set follow when it is multiple paths795 without path796 does not set follow797 when 'author' is set798 returns commits from that author799 doesn't returns commits from an unknown author800 when 'all' flag is set801 returns every commit from the repository802 when 'order' flag is set803 passes order option to perform the query804 #new_commits805 when there are no new commits806 returns an empty array807 when new commits are found808 returns the commits809 #commits_by810 finds each commit811 returns only Commit instances812 when some commits are not found813 returns only found commits814 when no oids are passed815 does not call #batch_by_oid816 #commits_between817 delegates to Gitlab::Git::Commit#between, returning decorated commits818 defaults to no limit819 #find_commits_by_message820 returns commits with messages containing a given string821 is case insensitive822 when storage is broken823 raises a storage error824 #blob_at825 blank sha826 is expected to be nil827 regular blob828 is expected to be an instance of Blob829 readme blob not on HEAD830 is expected to be an instance of Blob831 #merged_to_root_ref?832 merged branch without ff833 is expected to be truthy834 merged with ff835 is expected to be truthy836 not merged branch837 is expected to be falsey838 default branch839 is expected to be falsey840 non merged branch841 is expected to be falsey842 non existent branch843 is expected to be nil844 #root_ref_sha845 is expected to eq "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"846 #merged_branch_names847 is expected to eq #<Set: {"definitely_merged"}>848 is expected to be a kind of Set849 cache expiry850 is expired when the branches caches are expired851 is expired when the repository caches are expired852 cache is empty853 is expected to eq #<Set: {"definitely_merged"}>854 cache values855 writes the values to redis856 matches the supplied hash857 cache is not empty858 is expected to eq #<Set: {"definitely_merged"}>859 doesn't fetch from the disk860 cache is partially complete861 is expected to eq #<Set: {"definitely_merged"}>862 does fetch from the disk863 requested branches array is empty864 is expected to eq #<Set: {"definitely_merged"}>865 #can_be_merged?866 mergeable branches867 is expected to be truthy868 non-mergeable branches without conflict sides missing869 is expected to be falsey870 non-mergeable branches with conflict sides missing871 is expected to be falsey872 submodule changes that confuse rugged873 is expected to be falsey874 #commit875 when ref exists876 returns commit object877 when ref does not exist878 returns nil879 when ref is not specified880 is using a root ref881 when ref is not valid882 when preceding tree element exists883 returns nil884 when preceding tree element does not exist885 returns nil886 #create_dir887 commits a change that creates a new directory888 when committing to another project889 creates a fork and commit to the forked project890 when an author is specified891 uses the given email/name to set the commit's author892 #create_file893 commits new file successfully894 creates new file and dir when file_path has a forward slash895 respects the autocrlf setting896 when an author is specified897 uses the given email/name to set the commit's author898 #update_file899 updates file successfully900 updates filename successfully901 when an author is specified902 uses the given email/name to set the commit's author903 #delete_file904 removes file successfully905 when an author is specified906 uses the given email/name to set the commit's author907 search_files_by_content908 is expected to be a kind of Array909 regex-escapes the query string910 properly handles an unmatched parenthesis911 properly handles when query is not present912 properly handles query when repo is empty913 when storage is broken914 raises a storage error915 result916 is expected to be a kind of String917 is expected to eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"918 search_files_by_name919 returns result920 ignores leading slashes921 properly handles when query is only slashes922 properly handles when query is not present923 properly handles query when repo is empty924 when storage is broken925 raises a storage error926 #search_files_by_wildcard_path927 when specifying a normal path928 returns the path929 when specifying a wildcard path930 returns files matching the path in the root folder931 when specifying a wildcard path for all932 returns all matching files in all folders933 when specifying a path to subfolders using two asterisks and a slash934 returns all files matching the path935 when specifying a wildcard path to subfolder with just two asterisks936 returns all files in the matching path937 when specifying a wildcard path to subfolder with one asterisk938 returns all files in the matching path939 when specifying a wildcard path for an unknown number of subfolder levels940 returns all matched files in all subfolders941 when specifying a wildcard path to one level of subfolders942 returns all matched files in one subfolder943 when sending regexp944 ignores the regexp and returns an empty array945 when sending another ref946 returns an empty array947 #fetch_as_mirror948 fetches the URL without creating a remote949 #fetch_ref950 when storage is broken951 raises a storage error952 #get_raw_changes953 with non-UTF8 bytes in paths954 returns the changes955 #create_ref956 redirects the call to write_ref957 #changelog958 accepts changelog959 accepts news instead of changelog960 accepts history instead of changelog961 accepts changes instead of changelog962 is case-insensitive963 #license_blob964 handles when HEAD points to non-existent ref965 looks in the root_ref only966 detects license file with no recognizable open-source license content967 detects 'LICENSE'968 detects 'LICENCE'969 detects 'LiCensE'970 detects 'LICENSE.md'971 detects 'LICENSE.foo'972 detects 'COPYING'973 detects 'COPYING.md'974 #license_key975 returns nil when no license is detected976 returns nil when the repository does not exist977 returns other when the content is not recognizable978 returns nil when the commit SHA does not exist979 returns nil when master does not exist980 returns the license key981 #license982 returns nil when no license is detected983 returns nil when the repository does not exist984 returns nil when license_key is not recognized985 returns other when the content is not recognizable986 returns the license987 #gitlab_ci_yml988 returns valid file989 returns nil if not exists990 returns nil for empty repository991 #ambiguous_ref?992 when ref is ambiguous993 is true994 when ref is not ambiguous995 is false996 #has_ambiguous_refs?997 branch_names: nil, tag_names: nil, result: false998 is expected to eq false999 branch_names: [], tag_names: [], result: false1000 is expected to eq false1001 branch_names: ["a", "b"], tag_names: [], result: false1002 is expected to eq false1003 branch_names: [], tag_names: ["c", "d"], result: false1004 is expected to eq false1005 branch_names: ["a", "b"], tag_names: ["c", "d"], result: false1006 is expected to eq false1007 branch_names: ["a/b"], tag_names: ["c/d"], result: false1008 is expected to eq false1009 branch_names: ["a", "b"], tag_names: ["c", "d", "a/z"], result: true1010 is expected to eq true1011 branch_names: ["a", "b", "c/z"], tag_names: ["c", "d"], result: true1012 is expected to eq true1013 branch_names: ["a/b/z"], tag_names: ["a/b"], result: false1014 is expected to eq false1015 branch_names: ["a/b/z"], tag_names: ["a/b", "a"], result: true1016 is expected to eq true1017 branch_names: ["ab"], tag_names: ["abc/d", "a", "b"], result: false1018 is expected to eq false1019 #expand_ref1020 when ref is not tag or branch name1021 returns nil1022 when ref is tag name1023 returns the tag ref1024 when ref is branch name1025 returns the branch ref1026 #add_branch1027 calls Gitaly's OperationService1028 creates_the_branch1029 with a non-existing target1030 returns false and doesn't create the branch1031 #exists?1032 returns true when a repository exists1033 returns false if no full path can be constructed1034 with broken storage1035 raises a storage error1036 behaves like asymmetric cached method1037 asymmetric caching1038 when it returns true1039 caches the output in RequestStore1040 caches the output in RepositoryCache1041 when it returns false1042 caches the output in RequestStore1043 does NOT cache the output in RepositoryCache1044 #has_visible_content?1045 delegates to raw_repository when true1046 delegates to raw_repository when false1047 behaves like asymmetric cached method1048 asymmetric caching1049 when it returns true1050 caches the output in RequestStore1051 caches the output in RepositoryCache1052 when it returns false1053 caches the output in RequestStore1054 does NOT cache the output in RepositoryCache1055 #branch_exists?1056 delegates to branch_names when the cache is empty1057 uses redis set caching when the cache is filled1058 #tag_exists?1059 delegates to tag_names when the cache is empty1060 uses redis set caching when the cache is filled1061 #branch_names1062 gets cached across Repository instances1063 #empty?1064 returns true for an empty repository1065 returns false for a non-empty repository1066 caches the output1067 #blobs_at1068 returns empty array for an empty repository1069 returns blob array for a non-empty repository1070 when Gitaly returns NoRepository1071 returns empty array1072 #root_ref1073 returns a branch name1074 caches the output1075 returns nil if the repository does not exist1076 behaves like asymmetric cached method1077 asymmetric caching1078 when it returns true1079 caches the output in RequestStore1080 caches the output in RepositoryCache1081 when it returns false1082 caches the output in RequestStore1083 does NOT cache the output in RepositoryCache1084 #expire_root_ref_cache1085 expires the root reference cache1086 #expire_branch_cache1087 expires the cache for all branches1088 expires the cache for all branches when the root branch is given1089 expires the cache for a specific branch1090 #expire_emptiness_caches1091 expires the caches for an empty repository1092 does not expire the cache for a non-empty repository1093 expires the memoized repository cache1094 skip_merges option1095 is expected not to include "e56497bb5f03a90a51293fc6d516788730953899"1096 #merge1097 merges the code and returns the commit id1098 sets the `in_progress_merge_commit_sha` flag for the given merge request1099 removes carriage returns from commit message1100 #merge_to_ref1101 writes merge of source SHA and first parent ref to MR merge_ref_path1102 #ff_merge1103 merges the code and return the commit id1104 sets the `in_progress_merge_commit_sha` flag for the given merge request1105 #rebase1106 executes the new Gitaly RPC1107 behaves like a method that can rebase successfully1108 returns the rebase commit sha1109 sets the `rebase_commit_sha` for the given merge request1110 rolling back the `rebase_commit_sha`1111 does not rollback when there are no errors1112 does rollback when a PreReceiveError is encountered in the second step1113 does rollback when a GitError is encountered in the second step1114 #revert1115 when there is a conflict1116 raises an error1117 when commit was already reverted1118 raises an error1119 when commit can be reverted1120 reverts the changes1121 reverting a merge commit1122 reverts the changes1123 #cherry_pick1124 when there is a conflict1125 raises an error1126 when commit was already cherry-picked1127 raises an error1128 when commit can be cherry-picked1129 cherry-picks the changes1130 cherry-picking a merge commit1131 cherry-picks the changes1132 #before_delete1133 when a repository does not exist1134 does not flush caches that depend on repository data1135 flushes the tags cache1136 flushes the branches cache1137 flushes the root ref cache1138 flushes the emptiness caches1139 flushes the exists cache1140 when a repository exists1141 flushes the tags cache1142 flushes the branches cache1143 flushes the root ref cache1144 flushes the emptiness caches1145 #before_change_head1146 flushes the branch cache1147 flushes the root ref cache1148 #after_change_head1149 flushes the method caches1150 calls after_repository_change_head on container1151 #expires_caches_for_tags1152 flushes the cache1153 #before_push_tag1154 logs an event1155 #after_push_commit1156 expires statistics caches1157 #after_create_branch1158 expires the branch caches1159 does not expire the branch caches when specified1160 #after_remove_branch1161 expires the branch caches1162 does not expire the branch caches when specified1163 #lookup1164 uses the lookup cache1165 returns the correct value1166 #after_create1167 calls expire_status_cache1168 logs an event1169 #expire_status_cache1170 flushes the exists cache1171 flushes the root ref cache1172 flushes the emptiness caches1173 #copy_gitattributes1174 returns true with a valid ref1175 returns false with an invalid ref1176 #before_remove_tag1177 flushes the tag cache1178 #branch_count1179 returns the number of branches1180 #tag_count1181 returns the number of tags1182 #expire_branches_cache1183 expires the cache1184 #expire_tags_cache1185 expires the cache1186 #add_tag1187 with a valid target1188 creates the tag1189 returns a Gitlab::Git::Tag object1190 with an invalid target1191 returns false1192 #rm_branch1193 removes a branch1194 when pre hooks failed1195 gets an error and does not delete the branch1196 #rm_tag1197 removes a tag1198 #find_tag1199 finds a tag with specified name by performing FindTag request1200 does not perform Gitaly call when tags are preloaded1201 returns nil when tag does not exists1202 #avatar1203 returns nil if repo does not exist1204 returns the first avatar file found in the repository1205 caches the output1206 #expire_exists_cache1207 expires the cache1208 expires the request store cache1209 #xcode_project?1210 when the root contains a *.xcodeproj directory1211 returns true1212 when the root contains a *.xcworkspace directory1213 returns true1214 when the root contains no Xcode config directory1215 returns false1216 #contribution_guide1217 returns and caches the output1218 #gitignore1219 returns and caches the output1220 #readme1221 with a non-existing repository1222 returns nil1223 with an existing repository1224 when no README exists1225 returns nil1226 #readme_path1227 with a non-existing repository1228 returns nil1229 with an existing repository1230 when no README exists1231 returns nil1232 when a README exists1233 returns the README1234 caches the response1235 #expire_statistics_caches1236 expires the caches1237 #expire_all_method_caches1238 expires the caches of all methods1239 all cache_method definitions are in the lists of method caches1240 #file_on_head1241 with a non-existing repository1242 returns nil1243 with a repository that has no blobs1244 returns nil1245 with an existing repository1246 returns a Gitlab::Git::Tree1247 #head_tree1248 with an existing repository1249 returns a Tree1250 with a non-existing repository1251 returns nil1252 behaves like #tree1253 using a non-existing repository1254 is expected to be nil1255 when path is defined1256 is expected to be nil1257 using an existing repository1258 is expected to be an instance of Tree1259 when different sha is set1260 is expected to be an instance of Tree1261 when recursive is true1262 is expected to be an instance of Tree1263 with pagination parameters1264 is expected to be an instance of Tree1265 #tree? with Rugged enabled1266 behaves like #tree1267 using a non-existing repository1268 is expected to be nil1269 when path is defined1270 is expected to be nil1271 using an existing repository1272 is expected to be an instance of Tree1273 when different sha is set1274 is expected to be an instance of Tree1275 when recursive is true1276 is expected to be an instance of Tree1277 with pagination parameters1278 is expected to be an instance of Tree1279 #size1280 with a non-existing repository1281 returns 01282 with an existing repository1283 returns the repository size as a Float1284 #local_branches1285 returns the local branches1286 #commit_count1287 with a non-existing repository1288 returns 01289 with an existing repository1290 returns the commit count1291 #commit_count_for_ref1292 with a non-existing repository1293 returns 01294 with empty repository1295 returns 01296 when searching for the root ref1297 returns the same count as #commit_count1298 #refresh_method_caches1299 refreshes the caches of the given types1300 #gitlab_ci_yml_for1301 when there is a .gitlab-ci.yml at the commit1302 returns the content1303 when there is no .gitlab-ci.yml at the commit1304 returns nil1305 #route_map_for1306 when there is a .gitlab/route-map.yml at the commit1307 returns the content1308 when there is no .gitlab/route-map.yml at the commit1309 returns nil1310 #ancestor? with Gitaly enabled1311 behaves like #ancestor?1312 is an ancestor1313 is not an ancestor1314 returns false on nil-values1315 returns false for invalid commit IDs1316 caching1317 only calls out to Gitaly once1318 returns the value from the request store1319 returns the value from the redis cache1320 #ancestor? with Rugged enabled1321 calls out to the Rugged implementation1322 behaves like #ancestor?1323 is an ancestor1324 is not an ancestor1325 returns false on nil-values1326 returns false for invalid commit IDs1327 #archive_metadata1328 with hashed storage disabled1329 uses the project path to generate the filename1330 with hashed storage enabled1331 uses the project path to generate the filename1332 commit cache1333 caches based on SHA1334 caches nil values1335 #raw_repository1336 returns a Gitlab::Git::Repository representation of the repository1337 with a wiki repository1338 creates a Gitlab::Git::Repository with the proper attributes1339 #contributors1340 returns the array of Gitlab::Contributor for the repository1341 order_by email1342 asc1343 returns all the contributors ordered by email asc case insensitive1344 desc1345 returns all the contributors ordered by email desc case insensitive1346 order_by name1347 asc1348 returns all the contributors ordered by name asc case insensitive1349 desc1350 returns all the contributors ordered by name desc case insensitive1351 order_by commits1352 asc1353 returns all the contributors ordered by commits asc1354 desc1355 returns all the contributors ordered by commits desc1356 invalid ordering1357 returns the contributors unsorted1358 invalid sorting1359 returns the contributors unsorted1360 #merge_base1361 only makes one gitaly call1362 #create_if_not_exists1363 creates the repository if it did not exist1364 returns true1365 calls out to the repository client to create a repo1366 creates a repository with a default branch name1367 it does nothing if the repository already existed1368 does nothing if the repository already existed1369 returns nil1370 when the repository exists but the cache is not up to date1371 does not raise errors1372 returns nil1373 #create_from_bundle1374 calls out to the raw_repository to create a repo from bundle1375 calls after_create1376 when exception is raised1377 after_create is not executed1378 #blobs_metadata1379 returns blob metadata in batch for HEAD1380 returns blob metadata for a specified ref1381 performs a single gitaly call1382 #project1383 returns the project for a project snippet1384 returns nil for a personal snippet1385 returns the project for a project wiki1386 returns the container if it is a project1387 returns nil if the container is not a project1388 #submodule_links1389 returns an instance of Gitlab::SubmoduleLinks1390 #lfs_enabled?1391 for a project repository1392 returns true when LFS is enabled1393 returns false when LFS is disabled1394 for a project wiki repository1395 delegates to the project1396 for a project snippet repository1397 returns false when LFS is enabled1398 for a personal snippet repository1399 returns false when LFS is enabled1400 for a design repository1401 returns true when LFS is enabled1402 returns false when LFS is disabled1403 .pick_storage_shard1404 when expire is false1405 does not expire existing repository storage value1406 when expire is true1407 expires existing repository storage value1408 #change_head1409 when the branch exists1410 returns truthy1411 does not call container.after_change_head_branch_does_not_exist1412 calls repository hooks1413 copies the gitattributes1414 reloads the default branch1415 when the branch does not exist1416 returns falsey1417 calls container.after_change_head_branch_does_not_exist1418 does not call repository hooks1419MergeRequests::RefreshService1420 #execute1421 push to origin repo source branch1422 executes hooks with update action1423 reloads source branch MRs memoization1424 outdates MR suggestions1425 calls the merge request activity counter1426 query count1427 does not execute a lot of queries1428 when a merge error exists1429 clears merge errors when pushing to the source branch1430 does not clear merge errors when pushing to the target branch1431 when source branch ref does not exists1432 closes MRs without source branch ref1433 does not change the merge request diff1434 when pipeline exists for the source branch1435 updates the head_pipeline_id for @merge_request1436 does not update the head_pipeline_id for @fork_merge_request1437 Pipelines for merge requests1438 when .gitlab-ci.yml has merge_requests keywords1439 create detached merge request pipeline with commits1440 does not create detached merge request pipeline for forked project1441 create detached merge request pipeline for non-fork merge request1442 when "push_options: nil" is passed1443 creates a detached merge request pipeline with commits1444 when ci.skip push_options are passed1445 creates a skipped detached merge request pipeline with commits1446 when service is hooked by target branch1447 does not create detached merge request pipeline1448 when service runs on forked project1449 creates detached merge request pipeline for fork merge request1450 when branch pipeline was created before a detaced merge request pipeline has been created1451 sets the latest detached merge request pipeline as a head pipeline1452 returns pipelines in correct order1453 when MergeRequestUpdateWorker is retried by an exception1454 does not re-create a duplicate detached merge request pipeline1455 when the pipeline should be skipped1456 saves a skipped detached merge request pipeline1457 when .gitlab-ci.yml does not have merge_requests keywords1458 does not create a detached merge request pipeline1459 when .gitlab-ci.yml is invalid1460 persists a pipeline with config error1461 when .gitlab-ci.yml file is valid but has a logical error1462 persists a pipeline with config error1463 push to origin repo source branch1464 executes hooks with update action1465 push to origin repo target branch1466 when all MRs to the target branch had diffs1467 updates the merge state1468 when an MR to be closed was empty already1469 only updates the non-empty MRs1470 manual merge of source branch1471 updates the merge state1472 push to fork repo source branch1473 open fork merge request1474 calls MergeRequests::LinkLfsObjectsService#execute1475 executes hooks with update action1476 outdates opened forked MR suggestions1477 closed fork merge request1478 do not execute hooks with update action1479 updates merge request to closed state1480 push to fork repo target branch1481 changes to merge requests1482 updates the merge request state1483 merge request diff1484 does not reload the diff of the merge request made from fork1485 forked projects with the same source branch name as target branch1486 reloads a new diff for a push to the forked project1487 reloads a new diff for a force push to the source branch1488 reloads a new diff for a force push to the target branch1489 reloads a new diff for a push to the target project that contains a commit in the MR1490 does not increase the diff count for a new push to target branch1491 push to origin repo target branch after fork project was removed1492 updates the merge request state1493 push new branch that exists in a merge request1494 refreshes the merge request1495 merge request metrics1496 when the merge request is sourced from the same project1497 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit1498 when the merge request is sourced from a different project1499 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit1500 marking the merge request as draft1501 marks the merge request as draft from fixup commits1502 references the commit that caused the draft status1503 does not mark as draft based on commits that do not belong to an MR1504 updating merge_commit1505 feature enabled1506 updates merge requests' merge_commits1507 #abort_ff_merge_requests_with_when_pipeline_succeeds1508 when Project#merge_method is set to FF1509 behaves like aborted merge requests for MWPS1510 aborts auto_merge1511 removes merge_user1512 does not add todos for merge user1513 adds todos for merge author1514 with forked project1515 behaves like aborted merge requests for MWPS1516 aborts auto_merge1517 removes merge_user1518 does not add todos for merge user1519 adds todos for merge author1520 with bogus auto merge strategy1521 behaves like maintained merge requests for MWPS1522 does not cancel auto merge1523 does not change merge_user1524 does not add todos1525 when Project#merge_method is set to rebase_merge1526 behaves like aborted merge requests for MWPS1527 aborts auto_merge1528 removes merge_user1529 does not add todos for merge user1530 adds todos for merge author1531 with forked project1532 behaves like aborted merge requests for MWPS1533 aborts auto_merge1534 removes merge_user1535 does not add todos for merge user1536 adds todos for merge author1537 when Project#merge_method is set to merge1538 behaves like maintained merge requests for MWPS1539 does not cancel auto merge1540 does not change merge_user1541 does not add todos1542 with forked project1543 behaves like maintained merge requests for MWPS1544 does not cancel auto merge1545 does not change merge_user1546 does not add todos1547Gitlab::Regex1548 .project_name_regex1549 behaves like project name regex1550 is expected to match "Gitlab++"1551 is expected not to match "?gitlab"1552 is expected not to match "Users's something"1553 behaves like project/group name chars regex1554 is expected to match "gitlab-ce"1555 is expected to match "GitLab CE"1556 is expected to match "100 lines"1557 is expected to match "gitlab.git"1558 is expected to match "Český název"1559 is expected to match "Dash – is this"1560 .group_name_regex1561 allows parenthesis1562 does not start with parenthesis1563 behaves like group name regex1564 is expected not to match "?gitlab"1565 is expected not to match "Users's something"1566 behaves like project/group name chars regex1567 is expected to match "gitlab-ce"1568 is expected to match "GitLab CE"1569 is expected to match "100 lines"1570 is expected to match "gitlab.git"1571 is expected to match "Český název"1572 is expected to match "Dash – is this"1573 .group_name_regex_chars1574 allows partial matches1575 behaves like project/group name chars regex1576 is expected to match "gitlab-ce"1577 is expected to match "GitLab CE"1578 is expected to match "100 lines"1579 is expected to match "gitlab.git"1580 is expected to match "Český název"1581 is expected to match "Dash – is this"1582 .project_name_regex_message1583 is expected to eq "can contain only letters, digits, emojis, '_', '.', '+', dashes, or spaces. It must start with a letter, digit, emoji, or '_'."1584 .group_name_regex_message1585 is expected to eq "can contain only letters, digits, emojis, '_', '.', dash, space, parenthesis. It must start with letter, digit, emoji or '_'."1586 .environment_name_regex1587 is expected to match "foo"1588 is expected to match "a"1589 is expected to match "foo-1"1590 is expected to match "FOO"1591 is expected to match "foo/1"1592 is expected to match "foo.1"1593 is expected not to match "9&foo"1594 is expected not to match "foo-^"1595 is expected not to match "!!()()"1596 is expected not to match "/foo"1597 is expected not to match "foo/"1598 is expected not to match "/foo/"1599 is expected not to match "/"1600 .environment_scope_regex1601 is expected to match "foo"1602 is expected to match "foo*Z"1603 is expected not to match "!!()()"1604 .environment_slug_regex1605 is expected to match "foo"1606 is expected to match "foo-1"1607 is expected not to match "FOO"1608 is expected not to match "foo/1"1609 is expected not to match "foo.1"1610 is expected not to match "foo*1"1611 is expected not to match "9foo"1612 is expected not to match "foo-"1613 .build_trace_section_regex1614 without options1615 is expected to match "section_start:1600445393032:NAME\r\e[0K"1616 is expected to match "section_end:12345678:aBcDeFg1234\r\e[0K"1617 is expected to match "section_start:0:sect_for_alpha-v1.0\r\e[0K"1618 is expected not to match "section_start:section:0\r\e[0K"1619 is expected not to match "section_:1600445393032:NAME\r\e[0K"1620 is expected not to match "SECTION_START:1600445393032:NAME\r\e[0K"1621 with options1622 is expected to match "section_start:1600445393032:NAME[collapsed=true]\r\e[0K"1623 is expected to match "section_start:1600445393032:NAME[collapsed=true, example_option=false]\r\e[0K"1624 is expected to match "section_start:1600445393032:NAME[collapsed=true,example_option=false]\r\e[0K"1625 is expected to match "section_start:1600445393032:NAME[numeric_option=1234567]\r\e[0K"1626 is expected to match "section_end:1600445393032:NAME[collapsed=true]\r\e[0K"1627 is expected not to match "section_start:1600445393032:NAME[collapsed=[]]]\r\e[0K"1628 is expected not to match "section_start:1600445393032:NAME[collapsed = true]\r\e[0K"1629 is expected not to match "section_start:1600445393032:NAME[collapsed = true, example_option=false]\r\e[0K"1630 is expected not to match "section_start:1600445393032:NAME[collapsed=true, example_option=false]\r\e[0K"1631 is expected not to match "section_start:1600445393032:NAME[]\r\e[0K"1632 .container_repository_name_regex1633 is expected to match "image"1634 is expected to match "my/image"1635 is expected to match "my/awesome/image-1"1636 is expected to match "my/awesome/image.test"1637 is expected to match "my/awesome/image--test"1638 is expected to match "my/image__test"1639 is expected to match "user1/project/a_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb------------x"1640 is expected not to match "user1/project/a_bbbbb-------------"1641 is expected not to match "my/image-.test"1642 is expected not to match "my/image___test"1643 is expected not to match "my/image_.test"1644 is expected not to match "my/image_-test"1645 is expected not to match "my/image..test"1646 is expected not to match "my/image\\ntest"1647 is expected not to match ".my/image"1648 is expected not to match "my/image."1649 .aws_account_id_regex1650 is expected to match "123456789012"1651 is expected not to match "12345678901"1652 is expected not to match "1234567890123"1653 is expected not to match "12345678901a"1654 .aws_arn_regex1655 is expected to match "arn:aws:iam::123456789012:role/role-name"1656 is expected to match "arn:aws:s3:::bucket/key"1657 is expected to match "arn:aws:ec2:us-east-1:123456789012:volume/vol-1"1658 is expected to match "arn:aws:rds:us-east-1:123456789012:pg:prod"1659 is expected not to match "123456789012"1660 is expected not to match "role/role-name"1661 .utc_date_regex1662 is expected to match "2019-10-20"1663 is expected to match "1990-01-01"1664 is expected not to match "11-1234-90"1665 is expected not to match "aa-1234-cc"1666 is expected not to match "9/9/2018"1667 .cluster_agent_name_regex1668 is expected to match "foo"1669 is expected to match "foo-bar"1670 is expected to match "1foo-bar"1671 is expected to match "foo-bar2"1672 is expected to match "foo-1bar"1673 is expected not to match "foo.bar"1674 is expected not to match "Foo"1675 is expected not to match "FoO"1676 is expected not to match "FoO-"1677 is expected not to match "-foo-"1678 is expected not to match "foo/bar"1679 .kubernetes_namespace_regex1680 is expected to match "foo"1681 is expected to match "foo-bar"1682 is expected to match "1foo-bar"1683 is expected to match "foo-bar2"1684 is expected to match "foo-1bar"1685 is expected not to match "foo.bar"1686 is expected not to match "Foo"1687 is expected not to match "FoO"1688 is expected not to match "FoO-"1689 is expected not to match "-foo-"1690 is expected not to match "foo/bar"1691 .kubernetes_dns_subdomain_regex1692 is expected to match "foo"1693 is expected to match "foo-bar"1694 is expected to match "foo.bar"1695 is expected to match "foo1.bar"1696 is expected to match "foo1.2bar"1697 is expected to match "foo.bar1"1698 is expected to match "1foo.bar1"1699 is expected not to match "Foo"1700 is expected not to match "FoO"1701 is expected not to match "FoO-"1702 is expected not to match "-foo-"1703 is expected not to match "foo/bar"1704 .conan_package_reference_regex1705 is expected to match "123456789"1706 is expected to match "asdf1234"1707 is expected not to match "@foo"1708 is expected not to match "0/pack+age/1@1/0"1709 is expected not to match "!!()()"1710 .conan_revision_regex1711 is expected to match "0"1712 is expected not to match "foo"1713 is expected not to match "!!()()"1714 .composer_dev_version_regex1715 is expected to match "dev-master"1716 is expected to match "1.x-dev"1717 is expected not to match "foobar"1718 is expected not to match "1.2.3"1719 conan recipe components1720 .conan_recipe_component_regex1721 is expected not to match "_"1722 behaves like accepting valid recipe components values1723 is expected to match "foobar"1724 is expected to match "foo_bar"1725 is expected to match "foo+bar"1726 is expected to match "_foo+bar-baz+1.0"1727 is expected to match "1.0.0"1728 is expected not to match "-foo_bar"1729 is expected not to match "+foo_bar"1730 is expected not to match ".foo_bar"1731 is expected not to match "foo@bar"1732 is expected not to match "foo/bar"1733 is expected not to match "!!()()"1734 is expected not to match "f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"1735 .conan_recipe_user_channel_regex1736 is expected to match "_"1737 behaves like accepting valid recipe components values1738 is expected to match "foobar"1739 is expected to match "foo_bar"1740 is expected to match "foo+bar"1741 is expected to match "_foo+bar-baz+1.0"1742 is expected to match "1.0.0"1743 is expected not to match "-foo_bar"1744 is expected not to match "+foo_bar"1745 is expected not to match ".foo_bar"1746 is expected not to match "foo@bar"1747 is expected not to match "foo/bar"1748 is expected not to match "!!()()"1749 is expected not to match "f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"1750 .package_name_regex1751 is expected to match "123"1752 is expected to match "foo"1753 is expected to match "foo/bar"1754 is expected to match "@foo/bar"1755 is expected to match "com/mycompany/app/my-app"1756 is expected to match "my-package/1.0.0@my+project+path/beta"1757 is expected not to match "my-package/1.0.0@@@@@my+project+path/beta"1758 is expected not to match "$foo/bar"1759 is expected not to match "@foo/@/bar"1760 is expected not to match "@@foo/bar"1761 is expected not to match "my package name"1762 is expected not to match "!!()()"1763 is expected not to match "..\n..\foo"1764 has no backtracking issue1765 .maven_file_name_regex1766 is expected to match "123"1767 is expected to match "foo"1768 is expected to match "foo+bar-2_0.pom"1769 is expected to match "foo.bar.baz-2.0-20190901.47283-1.jar"1770 is expected to match "maven-metadata.xml"1771 is expected to match "1.0-SNAPSHOT"1772 is expected not to match "../../foo"1773 is expected not to match "..\\..\\foo"1774 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"1775 is expected not to match "$foo/bar"1776 is expected not to match "my file name"1777 is expected not to match "!!()()"1778 .maven_path_regex1779 is expected to match "123"1780 is expected to match "foo"1781 is expected to match "foo/bar"1782 is expected to match "@foo/bar"1783 is expected to match "com/mycompany/app/my-app"1784 is expected to match "com/mycompany/app/my-app/1.0-SNAPSHOT"1785 is expected to match "com/mycompany/app/my-app/1.0-SNAPSHOT+debian64"1786 is expected not to match "com/mycompany/app/my+app/1.0-SNAPSHOT"1787 is expected not to match "$foo/bar"1788 is expected not to match "@foo/@/bar"1789 is expected not to match "my package name"1790 is expected not to match "!!()()"1791 .maven_version_regex1792 has no ReDoS issues with long strings1793 has no ReDos issues with long strings ending with an exclamation mark1794 is expected to match "0"1795 is expected to match "1"1796 is expected to match "03"1797 is expected to match "2.0"1798 is expected to match "01.2"1799 is expected to match "10.2.3-beta"1800 is expected to match "1.2-SNAPSHOT"1801 is expected to match "20"1802 is expected to match "20.3"1803 is expected to match "1.2.1"1804 is expected to match "1.4.2-12"1805 is expected to match "1.2-beta-2"1806 is expected to match "12.1.2-2-1"1807 is expected to match "1.1-beta-2"1808 is expected to match "1.3.350.v20200505-1744"1809 is expected to match "2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq"1810 is expected to match "1.2-alpha-1-20050205.060708-1"1811 is expected to match "703220b4e2cea9592caeb9f3013f6b1e5335c293"1812 is expected to match "RELEASE"1813 is expected not to match "..1.2.3"1814 is expected not to match "1.2.3..beta"1815 is expected not to match " 1.2.3"1816 is expected not to match "1.2.3 \r\t"1817 is expected not to match "\r\t 1.2.3"1818 is expected not to match "1./2.3"1819 is expected not to match "1.2.3-4/../../"1820 is expected not to match "1.2.3-4%2e%2e%"1821 is expected not to match "../../../../../1.2.3"1822 is expected not to match "%2e%2e%2f1.2.3"1823 .nuget_version_regex1824 is expected to match "1.2"1825 is expected to match "1.2.3"1826 is expected to match "1.2.3.4"1827 is expected to match "1.2.3.4-stable.1"1828 is expected to match "1.2.3-beta"1829 is expected to match "1.2.3-alpha.3"1830 is expected to match "1.0.7+r3456"1831 is expected not to match "1"1832 is expected not to match "1./2.3"1833 is expected not to match "../../../../../1.2.3"1834 is expected not to match "%2e%2e%2f1.2.3"1835 .nuget_package_name_regex1836 is expected to match "My.Package"1837 is expected to match "My.Package.Mvc"1838 is expected to match "MyPackage"1839 is expected to match "My.23.Package"1840 is expected to match "My23Package"1841 is expected to match "runtime.my-test64.runtime.package.Mvc"1842 is expected to match "my_package"1843 is expected not to match "My/package"1844 is expected not to match "../../../my_package"1845 is expected not to match "%2e%2e%2fmy_package"1846 .terraform_module_package_name_regex1847 is expected to match "my-module/my-system"1848 is expected to match "my/module"1849 is expected not to match "my-module"1850 is expected not to match "My-Module"1851 is expected not to match "my_module"1852 is expected not to match "my.module"1853 is expected not to match "../../../my-module"1854 is expected not to match "%2e%2e%2fmy-module"1855 .pypi_version_regex1856 is expected to match "0.1"1857 is expected to match "2.0"1858 is expected to match "1.2.0"1859 is expected to match "0100!0.0"1860 is expected to match "00!1.2"1861 is expected to match "1.0a"1862 is expected to match "1.0-a"1863 is expected to match "1.0.a1"1864 is expected to match "1.0a1"1865 is expected to match "1.0-a1"1866 is expected to match "1.0alpha1"1867 is expected to match "1.0b1"1868 is expected to match "1.0beta1"1869 is expected to match "1.0rc1"1870 is expected to match "1.0pre1"1871 is expected to match "1.0preview1"1872 is expected to match "1.0.dev1"1873 is expected to match "1.0.DEV1"1874 is expected to match "1.0.post1"1875 is expected to match "1.0.rev1"1876 is expected to match "1.0.r1"1877 is expected to match "1.0c2"1878 is expected to match "2012.15"1879 is expected to match "1.0+5"1880 is expected to match "1.0+abc.5"1881 is expected to match "1!1.1"1882 is expected to match "1.0c3"1883 is expected to match "1.0rc2"1884 is expected to match "1.0c1"1885 is expected to match "1.0b2-346"1886 is expected to match "1.0b2.post345"1887 is expected to match "1.0b2.post345.dev456"1888 is expected to match "1.2.rev33+123456"1889 is expected to match "1.1.dev1"1890 is expected to match "1.0b1.dev456"1891 is expected to match "1.0a12.dev456"1892 is expected to match "1.0b2"1893 is expected to match "1.0.dev456"1894 is expected to match "1.0c1.dev456"1895 is expected to match "1.0.post456"1896 is expected to match "1.0.post456.dev34"1897 is expected to match "1.2+123abc"1898 is expected to match "1.2+abc"1899 is expected to match "1.2+abc123"1900 is expected to match "1.2+abc123def"1901 is expected to match "1.2+1234.abc"1902 is expected to match "1.2+123456"1903 is expected to match "1.2.r32+123456"1904 is expected to match "1!1.2.rev33+123456"1905 is expected to match "1.0a12"1906 is expected to match "1.2.3-45+abcdefgh"1907 is expected to match "v1.2.3"1908 is expected not to match "1.2.3-45-abcdefgh"1909 is expected not to match "..1.2.3"1910 is expected not to match " 1.2.3"1911 is expected not to match "1.2.3 \r\t"1912 is expected not to match "\r\t 1.2.3"1913 is expected not to match "1./2.3"1914 is expected not to match "1.2.3-4/../../"1915 is expected not to match "1.2.3-4%2e%2e%"1916 is expected not to match "../../../../../1.2.3"1917 is expected not to match "%2e%2e%2f1.2.3"1918 .debian_package_name_regex1919 is expected to match "0ad"1920 is expected to match "g++"1921 is expected to match "lua5.1"1922 is expected to match "samba"1923 is expected not to match ""1924 is expected not to match "-a"1925 is expected not to match "+a"1926 is expected not to match ".a"1927 is expected not to match "_a"1928 is expected not to match "a~"1929 is expected not to match "aé"1930 is expected not to match "a"1931 is expected not to match "Aa"1932 is expected not to match "aA"1933 is expected not to match "a_b"1934 .debian_version_regex1935 valid versions1936 is expected to match "1.0"1937 is expected to match "1.0~alpha1"1938 is expected to match "2:4.9.5+dfsg-5+deb10u1"1939 dpkg errors1940 is expected not to match ""1941 is expected not to match "1 0"1942 is expected not to match ":1.0"1943 is expected not to match "a:1.0"1944 is expected not to match "-1:1.0"1945 is expected not to match "9999999999:1.0"1946 is expected not to match "2:"1947 is expected not to match "1.0-"1948 is expected not to match "-1"1949 is expected not to match "2:-1"1950 dpkg warnings1951 is expected not to match "a"1952 is expected not to match "a1.0"1953 is expected not to match "1_0"1954 is expected not to match "1.0-1_0"1955 dpkg accepts1956 is expected not to match " 1.0"1957 is expected not to match "1.0 "1958 is expected not to match "1:2:3"1959 is expected to match "1-2-3-4-5-6-7-8-9-10-11-12-13-14-15"1960 is expected not to match "1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16"1961 .helm_channel_regex1962 is expected to match "release"1963 is expected to match "my-repo"1964 is expected to match "My-Re_po"1965 is expected to match "my_repo42"1966 is expected to match "1.2.3"1967 is expected to match "v1.2.3-beta-12"1968 is expected to match "renovate_https-github.com-operator-framework-operator-lifecycle-manager.git-0.x"1969 is expected not to match ""1970 is expected not to match "hé"1971 is expected not to match ".1.23"1972 is expected not to match "1..23"1973 is expected not to match "1.2.3."1974 is expected not to match "1..2.3."1975 is expected not to match "1/../2.3."1976 is expected not to match "1/..%2F2.3."1977 .helm_package_regex1978 is expected to match "release"1979 is expected to match "my-repo"1980 is expected to match "my-repo42"1981 is expected not to match ""1982 is expected not to match "hé"1983 is expected not to match "my/../repo"1984 is expected not to match "me%2f%2e%2e%2f"1985 .helm_version_regex1986 is expected to match "1.2.3"1987 is expected to match "1.2.3-beta"1988 is expected to match "1.2.3-alpha.3"1989 is expected to match "v1.2.3"1990 is expected to match "v1.2.3-beta"1991 is expected to match "v1.2.3-alpha.3"1992 is expected not to match "1"1993 is expected not to match "1.2"1994 is expected not to match "1./2.3"1995 is expected not to match "../../../../../1.2.3"1996 is expected not to match "%2e%2e%2f1.2.3"1997 is expected not to match "v1"1998 is expected not to match "v1.2"1999 is expected not to match "v1./2.3"2000 is expected not to match "v../../../../../1.2.3"2001 is expected not to match "v%2e%2e%2f1.2.3"2002 .semver_regex2003 is expected to match "1.2.3"2004 is expected to match "1.2.3-beta"2005 is expected to match "1.2.3-alpha.3"2006 is expected not to match "1"2007 is expected not to match "1.2"2008 is expected not to match "1./2.3"2009 is expected not to match "../../../../../1.2.3"2010 is expected not to match "%2e%2e%2f1.2.3"2011 .go_package_regex2012 is expected to match "example.com"2013 is expected to match "example.com/foo"2014 is expected to match "example.com/foo/bar"2015 is expected to match "example.com/foo/bar/baz"2016 is expected to match "tl.dr.foo.bar.baz"2017 .unbounded_semver_regex2018 is expected to match "1.2.3"2019 is expected to match "1.2.3-beta"2020 is expected to match "1.2.3-alpha.3"2021 is expected not to match "1"2022 is expected not to match "1.2"2023 is expected not to match "1./2.3"2024 .generic_package_version_regex2025 is expected to match "1.2.3"2026 is expected to match "1.3.350"2027 is expected to match "1.3.350-20201230123456"2028 is expected to match "1.2.3-rc1"2029 is expected to match "1.2.3g"2030 is expected to match "1.2"2031 is expected to match "1.2.bananas"2032 is expected to match "v1.2.4-build"2033 is expected to match "d50d836eb3de6177ce6c7a5482f27f9c2c84b672"2034 is expected to match "this_is_a_string_only"2035 is expected not to match "..1.2.3"2036 is expected not to match " 1.2.3"2037 is expected not to match "1.2.3 \r\t"2038 is expected not to match "\r\t 1.2.3"2039 is expected not to match "1.2.3-4/../../"2040 is expected not to match "1.2.3-4%2e%2e%"2041 is expected not to match "../../../../../1.2.3"2042 is expected not to match "%2e%2e%2f1.2.3"2043 is expected not to match ""2044 .generic_package_name_regex2045 is expected to match "123"2046 is expected to match "foo"2047 is expected to match "foo.bar.baz-2.0-20190901.47283-1"2048 is expected not to match "../../foo"2049 is expected not to match "..\\..\\foo"2050 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"2051 is expected not to match "$foo/bar"2052 is expected not to match "my file name"2053 is expected not to match "!!()()"2054 .generic_package_file_name_regex2055 is expected to match "123"2056 is expected to match "foo"2057 is expected to match "foo.bar.baz-2.0-20190901.47283-1.jar"2058 is expected not to match "../../foo"2059 is expected not to match "..\\..\\foo"2060 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"2061 is expected not to match "$foo/bar"2062 is expected not to match "my file name"2063 is expected not to match "!!()()"2064 .prefixed_semver_regex2065 is expected to match "v1.2.3"2066 is expected to match "v1.2.3-beta"2067 is expected to match "v1.2.3-alpha.3"2068 is expected not to match "v1"2069 is expected not to match "v1.2"2070 is expected not to match "v1./2.3"2071 is expected not to match "v../../../../../1.2.3"2072 is expected not to match "v%2e%2e%2f1.2.3"2073 Packages::API_PATH_REGEX2074 is expected to match "/api/v4/group/12345/-/packages/composer/p/123456789"2075 is expected to match "/api/v4/group/12345/-/packages/composer/p2/pkg_name"2076 is expected to match "/api/v4/group/12345/-/packages/composer/packages"2077 is expected to match "/api/v4/group/12345/-/packages/composer/pkg_name"2078 is expected to match "/api/v4/groups/1234/-/packages/maven/a/path/file.jar"2079 is expected to match "/api/v4/groups/1234/-/packages/nuget/index"2080 is expected to match "/api/v4/groups/1234/-/packages/nuget/metadata/pkg_name/1.3.4"2081 is expected to match "/api/v4/groups/1234/-/packages/nuget/metadata/pkg_name/index"2082 is expected to match "/api/v4/groups/1234/-/packages/nuget/query"2083 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable"2084 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/digest"2085 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/download_urls"2086 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref"2087 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/digest"2088 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/download_urls"2089 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/upload_urls"2090 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/upload_urls"2091 is expected to match "/api/v4/packages/conan/v1/conans/search"2092 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name"2093 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name/authorize"2094 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name"2095 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name/authorize"2096 is expected to match "/api/v4/packages/conan/v1/ping"2097 is expected to match "/api/v4/packages/conan/v1/users/authenticate"2098 is expected to match "/api/v4/packages/conan/v1/users/check_credentials"2099 is expected to match "/api/v4/packages/maven/a/path/file.jar"2100 is expected to match "/api/v4/packages/npm/-/package/pkg_name/dist-tags"2101 is expected to match "/api/v4/packages/npm/-/package/pkg_name/dist-tags/tag"2102 is expected to match "/api/v4/packages/npm/pkg_name"2103 is expected to match "/api/v4/projects/1234/packages/composer"2104 is expected to match "/api/v4/projects/1234/packages/composer/archives/pkg_name"2105 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable"2106 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/digest"2107 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/download_urls"2108 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref"2109 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/digest"2110 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/download_urls"2111 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/upload_urls"2112 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/upload_urls"2113 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/search"2114 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name"2115 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name/authorize"2116 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name"2117 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name/authorize"2118 is expected to match "/api/v4/projects/1234/packages/conan/v1/ping"2119 is expected to match "/api/v4/projects/1234/packages/conan/v1/users/authenticate"2120 is expected to match "/api/v4/projects/1234/packages/conan/v1/users/check_credentials"2121 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/compon/binary-x64/Packages"2122 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/InRelease"2123 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/Release"2124 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/Release.gpg"2125 is expected to match "/api/v4/projects/1234/packages/debian/file.name"2126 is expected to match "/api/v4/projects/1234/packages/debian/file.name/authorize"2127 is expected to match "/api/v4/projects/1234/packages/debian/pool/compon/e/pkg/file.name"2128 is expected to match "/api/v4/projects/1234/packages/generic/pkg_name/1.3.4/myfile.txt"2129 is expected to match "/api/v4/projects/1234/packages/generic/pkg_name/1.3.4/myfile.txt/authorize"2130 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.info"2131 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.mod"2132 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.zip"2133 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/list"2134 is expected to match "/api/v4/projects/1234/packages/maven/a/path/file.jar"2135 is expected to match "/api/v4/projects/1234/packages/maven/a/path/file.jar/authorize"2136 is expected to match "/api/v4/projects/1234/packages/npm/-/package/pkg_name/dist-tags"2137 is expected to match "/api/v4/projects/1234/packages/npm/-/package/pkg_name/dist-tags/tag"2138 is expected to match "/api/v4/projects/1234/packages/npm/pkg_name"2139 is expected to match "/api/v4/projects/1234/packages/npm/pkg_name/-/tarball.tgz"2140 is expected to match "/api/v4/projects/1234/packages/nuget"2141 is expected to match "/api/v4/projects/1234/packages/nuget/authorize"2142 is expected to match "/api/v4/projects/1234/packages/nuget/download/pkg_name/1.3.4/pkg.npkg"2143 is expected to match "/api/v4/projects/1234/packages/nuget/download/pkg_name/index"2144 is expected to match "/api/v4/projects/1234/packages/nuget/index"2145 is expected to match "/api/v4/projects/1234/packages/nuget/metadata/pkg_name/1.3.4"2146 is expected to match "/api/v4/projects/1234/packages/nuget/metadata/pkg_name/index"2147 is expected to match "/api/v4/projects/1234/packages/nuget/query"2148 is expected to match "/api/v4/projects/1234/packages/pypi"2149 is expected to match "/api/v4/projects/1234/packages/pypi/authorize"2150 is expected to match "/api/v4/projects/1234/packages/pypi/files/1234567890/file.identifier"2151 is expected to match "/api/v4/projects/1234/packages/pypi/simple/pkg_name"2152 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/dependencies"2153 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/gems"2154 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/gems/authorize"2155 is expected to match "/api/v4/projects/1234/packages/rubygems/gems/pkg"2156 is expected to match "/api/v4/projects/1234/packages/rubygems/pkg"2157 is expected to match "/api/v4/projects/1234/packages/rubygems/quick/Marshal.4.8/pkg"2158 is expected not to match ""2159 is expected not to match "foo"2160 is expected not to match "/api/v4"2161 is expected not to match "/api/v4/version"2162 is expected not to match "/api/v4/packages"2163 is expected not to match "/api/v4/packages/"2164 is expected not to match "/api/v4/group"2165 is expected not to match "/api/v4/group/12345"2166 is expected not to match "/api/v4/group/12345/-"2167 is expected not to match "/api/v4/group/12345/-/packages"2168 is expected not to match "/api/v4/group/12345/-/packages/"2169 is expected not to match "/api/v4/group/12345/-/packages/50"2170 is expected not to match "/api/v4/groups"2171 is expected not to match "/api/v4/groups/12345"2172 is expected not to match "/api/v4/groups/12345/-"2173 is expected not to match "/api/v4/groups/12345/-/packages"2174 is expected not to match "/api/v4/groups/12345/-/packages/"2175 is expected not to match "/api/v4/groups/12345/-/packages/50"2176 is expected not to match "/api/v4/groups/12345/packages"2177 is expected not to match "/api/v4/groups/12345/packages/"2178 is expected not to match "/api/v4/groups/12345/badges"2179 is expected not to match "/api/v4/groups/12345/issues"2180 is expected not to match "/api/v4/projects"2181 is expected not to match "/api/v4/projects/1234"2182 is expected not to match "/api/v4/projects/1234/packages"2183 is expected not to match "/api/v4/projects/1234/packages/"2184 is expected not to match "/api/v4/projects/1234/packages/50"2185 is expected not to match "/api/v4/projects/1234/packages/50/package_files"2186 is expected not to match "/api/v4/projects/1234/merge_requests"2187 is expected not to match "/api/v4/projects/1234/registry/repositories"2188 is expected not to match "/api/v4/projects/1234/issues"2189 is expected not to match "/api/v4/projects/1234/members"2190 is expected not to match "/api/v4/projects/1234/milestones"2191 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/compon/binary-compo/Packages"2192 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/InRelease"2193 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/Release"2194 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/Release.gpg"2195 is expected not to match "/api/v4/groups/1234/packages/debian/pool/compon/a/pkg/file.name"2196 .composer_package_version_regex2197 is expected to match "v1.2.3"2198 is expected to match "v1.2.x"2199 is expected to match "v1.2.X"2200 is expected to match "1.2.3"2201 is expected to match "1"2202 is expected to match "v1"2203 is expected to match "1.2"2204 is expected to match "v1.2"2205 is expected not to match "1.2.3-beta"2206 is expected not to match "1.2.x-beta"2207 is expected not to match "1.2.X-beta"2208 is expected not to match "1.2.3-alpha.3"2209 is expected not to match "1./2.3"2210 is expected not to match "v1./2.3"2211 is expected not to match "../../../../../1.2.3"2212 is expected not to match "%2e%2e%2f1.2.3"2213 .saved_reply_name_regex2214 is expected to match "test"2215 is expected to match "test123"2216 is expected to match "test-test"2217 is expected to match "test-test_0123"2218 is expected not to match "test test"2219 is expected not to match "test-"2220 is expected not to match "/z/test_"2221 is expected not to match ".xtest_"2222 is expected not to match ".xt.est_"2223 is expected not to match "0test1"2224 .sha256_regex2225 is expected to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"2226 is expected to match "abcdefABCDEF1234567890abcdefABCDEF1234567890abcdefABCDEF12345678"2227 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"2228 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"2229 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag"2230 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{"2231 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%"2232 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*"2233 is expected not to match "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa#"2234 is expected not to match ""2235 .sep_by_12236 is expected to match "abc"2237 is expected to match "abc.def"2238 is expected to match "abc.def.caf"2239 is expected to match "abc..def"2240 is expected to match "abc..def..caf"2241 is expected to match "abc...def"2242 is expected to match "abc....def........caf"2243 is expected to match "abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc"2244 is expected not to match ""2245 is expected not to match "a"2246 is expected not to match "aaaa"2247 is expected not to match "foo"2248 is expected not to match ".abc"2249 is expected not to match "abc."2250 is expected not to match ".abc.def"2251 is expected not to match "abc.def."2252 is expected not to match "abc.defe.caf"2253 is expected not to match "abc!abc"2254 is expected not to match "abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc.abc!"2255Gitlab::Auth2256 constants2257 API_SCOPES contains all scopes for API access2258 ADMIN_SCOPES contains all scopes for ADMIN access2259 REPOSITORY_SCOPES contains all scopes for REPOSITORY access2260 OPENID_SCOPES contains all scopes for OpenID Connect2261 DEFAULT_SCOPES contains all default scopes2262 optional_scopes contains all non-default scopes2263 available_scopes2264 contains all non-default scopes2265 contains for non-admin user all non-default scopes without ADMIN access2266 contains for admin user all non-default scopes with ADMIN access2267 registry_scopes2268 when registry is disabled2269 is empty2270 when registry is enabled2271 contains all registry related scopes2272 find_for_git_client2273 recognizes other ci services2274 recognizes master passwords2275 allows user authenticating from the same ip2276 blocks user authenticating from two distinct ips2277 returns double nil for invalid credentials2278 throws an error suggesting user create a PAT when internal auth is disabled2279 rate limiting2280 when IP is already banned2281 raises an IpBlacklisted exception2282 for CI registry user2283 skips rate limiting for successful auth2284 skips rate limiting for failed auth2285 for other users2286 resets rate limit for successful auth2287 rate limits a user by unique IPs2288 registers failure for failed auth2289 build token2290 for running build2291 recognises user-less build2292 recognises user token2293 recognises project level bot access token2294 recognises group level bot access token2295 fails with blocked user token2296 username is not gitlab-ci-token2297 fails to authenticate2298 for created build2299 denies authentication2300 for waiting_for_resource build2301 denies authentication2302 for preparing build2303 denies authentication2304 for pending build2305 denies authentication2306 for success build2307 denies authentication2308 for failed build2309 denies authentication2310 for canceled build2311 denies authentication2312 for skipped build2313 denies authentication2314 for manual build2315 denies authentication2316 for scheduled build2317 denies authentication2318 while using LFS authenticate2319 recognizes user lfs tokens2320 recognizes deploy key lfs tokens2321 does not try password auth before oauth2322 grants deploy key write permissions2323 does not grant deploy key write permissions2324 while using OAuth tokens as passwords2325 does not try password auth before oauth2326 with specified scopes2327 scopes: "api", abilities: [:read_project, :download_code, :read_container_image, :push_code, :create_container_image, :admin_container_image]2328 authenticates with correct abilities2329 scopes: "read_api", abilities: [:read_project, :download_code, :read_container_image]2330 authenticates with correct abilities2331 scopes: "read_repository", abilities: [:download_code]2332 authenticates with correct abilities2333 scopes: "write_repository", abilities: [:download_code, :push_code]2334 authenticates with correct abilities2335 scopes: "read_user", abilities: []2336 authenticates with correct abilities2337 scopes: "sudo", abilities: []2338 authenticates with correct abilities2339 scopes: "openid", abilities: []2340 authenticates with correct abilities2341 scopes: "profile", abilities: []2342 authenticates with correct abilities2343 scopes: "email", abilities: []2344 authenticates with correct abilities2345 blocked user2346 behaves like an oauth failure2347 fails2348 orphaned token2349 behaves like an oauth failure2350 fails2351 while using personal access tokens as passwords2352 succeeds for personal access tokens with the `api` scope2353 succeeds for personal access tokens with the `read_repository` scope2354 succeeds for personal access tokens with the `write_repository` scope2355 succeeds if it is an impersonation token2356 fails if it is an impersonation token but impersonation is blocked2357 limits abilities based on scope2358 fails if password is nil2359 when registry is enabled2360 succeeds for personal access tokens with the `read_registry` scope2361 when user is blocked2362 fails if user is blocked2363 when using a resource access token2364 when using a personal namespace project access token2365 when the token belongs to the project2366 behaves like with a valid access token2367 successfully authenticates the project bot2368 successfully authenticates the project bot with a nil project2369 behaves like with an invalid access token2370 fails for a non-member2371 when project bot user is blocked2372 fails for a blocked project bot2373 when in a group namespace2374 when using a project access token2375 when token user belongs to the project2376 behaves like with a valid access token2377 successfully authenticates the project bot2378 successfully authenticates the project bot with a nil project2379 behaves like with an invalid access token2380 fails for a non-member2381 when project bot user is blocked2382 fails for a blocked project bot2383 when using a group access token2384 when the token belongs to the group2385 behaves like with a valid access token2386 successfully authenticates the project bot2387 successfully authenticates the project bot with a nil project2388 behaves like with an invalid access token2389 fails for a non-member2390 when project bot user is blocked2391 fails for a blocked project bot2392 when the token belongs to a group via project share2393 behaves like with a valid access token2394 successfully authenticates the project bot2395 successfully authenticates the project bot with a nil project2396 while using regular user and password2397 fails for a blocked user2398 goes through lfs authentication2399 goes through oauth authentication when the username is oauth22400 when 2fa is enabled globally2401 fails if grace period expired2402 goes through if grace period is not expired yet2403 when 2fa is enabled personally2404 fails2405 while using deploy tokens2406 when deploy token and user have the same username2407 succeeds for the token2408 succeeds for the user2409 when deploy tokens have the same username2410 and belong to the same project2411 succeeds for the right token2412 fails for the wrong token2413 and belong to different projects2414 succeeds for the right token2415 fails for the wrong token2416 when the deploy token has read_repository as scope2417 succeeds when login and token are valid2418 succeeds when custom login and token are valid2419 does not attempt to rate limit unique IPs for a deploy token2420 fails when login is not valid2421 fails when token is not valid2422 fails if token is nil2423 fails if token is not related to project2424 fails if token has been revoked2425 when the deploy token is of group type2426 succeeds when login and a group deploy token are valid2427 fails if token is not related to group2428 when the deploy token has read_registry as a scope2429 when registry enabled2430 succeeds when login and a project token are valid2431 behaves like registry token scope2432 fails when login is not valid2433 fails when token is not valid2434 fails if token is nil2435 fails if token is not related to project2436 fails if token has been revoked2437 behaves like deploy token with disabled feature2438 when registry disabled2439 fails when login and token are valid2440 when repository is disabled2441 fails when login and token are valid2442 when the deploy token has write_registry as a scope2443 when registry enabled2444 succeeds when login and a project token are valid2445 behaves like registry token scope2446 fails when login is not valid2447 fails when token is not valid2448 fails if token is nil2449 fails if token is not related to project2450 fails if token has been revoked2451 behaves like deploy token with disabled feature2452 when registry disabled2453 fails when login and token are valid2454 when repository is disabled2455 fails when login and token are valid2456 #build_access_token_check2457 for running build2458 executes query using primary database2459 find_with_user_password2460 finds user by valid login/password2461 finds user by valid email/password with case-insensitive email2462 finds user by valid username/password with case-insensitive username2463 does not find user with invalid password2464 does not find user with invalid login2465 allows user authenticating from the same ip2466 blocks user authenticating from two distinct ips2467 finds the user in deactivated state2468 does not find user in blocked state2469 does not find user in locked state2470 does not find user in ldap_blocked state2471 does not find user in blocked_pending_approval state2472 with increment_failed_attempts2473 increments failed_attempts when true and password is incorrect2474 resets failed_attempts when true and password is correct2475 does not increment failed_attempts by default2476 when the database is read-only2477 does not increment failed_attempts when true and password is incorrect2478 does not reset failed_attempts when true and password is correct2479 with ldap enabled2480 tries to autheticate with db before ldap2481 does not find user by using ldap as fallback to for authentication2482 find new user by using ldap as fallback to for authentication2483 with password authentication disabled for Git2484 does not find user by valid login/password2485 with ldap enabled2486 does not find non-ldap user by valid login/password2487 .resource_bot_scopes2488 is expected to include :api and :read_api2489 is expected to include :read_repository and :write_repository2490 is expected to include nil2491Discussion ResolvableDiscussion2492 #resolvable?2493 when potentially resolvable2494 when all notes are unresolvable2495 returns false2496 when some notes are unresolvable and some notes are resolvable2497 returns true2498 when all notes are resolvable2499 returns true2500 when not potentially resolvable2501 returns false2502 #resolved?2503 when not resolvable2504 returns false2505 when resolvable2506 when all resolvable notes are resolved2507 returns true2508 when some resolvable notes are not resolved2509 returns false2510 #to_be_resolved?2511 when not resolvable2512 returns false2513 when resolvable2514 when all resolvable notes are resolved2515 returns false2516 when some resolvable notes are not resolved2517 returns true2518 #can_resolve?2519 when not resolvable2520 returns false2521 when resolvable2522 when not signed in2523 returns false2524 when signed in2525 when the signed in user is the noteable author2526 returns true2527 when noteable is locked2528 returns false2529 when the signed in user can push to the project2530 returns true2531 when the noteable has no author2532 returns true2533 when the signed in user is a random user2534 returns false2535 when the noteable has no author2536 returns false2537 #resolve!2538 when not resolvable2539 returns nil2540 doesn't set resolved_at2541 doesn't set resolved_by2542 doesn't mark as resolved2543 when resolvable2544 when all resolvable notes are resolved2545 doesn't change resolved_at on the resolved notes2546 doesn't change resolved_by on the resolved notes2547 doesn't change the resolved state on the resolved notes2548 doesn't change resolved_at2549 doesn't change resolved_by2550 doesn't change resolved state2551 when some resolvable notes are resolved2552 doesn't change resolved_at on the resolved note2553 doesn't change resolved_by on the resolved note2554 doesn't change the resolved state on the resolved note2555 sets resolved_at on the unresolved note2556 sets resolved_by on the unresolved note2557 marks the unresolved note as resolved2558 sets resolved_at2559 sets resolved_by2560 marks as resolved2561 when no resolvable notes are resolved2562 sets resolved_at on the unresolved notes2563 sets resolved_by on the unresolved notes2564 marks the unresolved notes as resolved2565 sets resolved_at2566 sets resolved_by2567 marks as resolved2568 #unresolve!2569 when not resolvable2570 returns nil2571 when resolvable2572 when all resolvable notes are resolved2573 unsets resolved_at on the resolved notes2574 unsets resolved_by on the resolved notes2575 unmarks the resolved notes as resolved2576 unsets resolved_at2577 unsets resolved_by2578 unmarks as resolved2579 when some resolvable notes are resolved2580 unsets resolved_at on the resolved note2581 unsets resolved_by on the resolved note2582 unmarks the resolved note as resolved2583 #first_note_to_resolve2584 returns the first note that still needs to be resolved2585 #last_resolved_note2586 returns the last note that was resolved2587 #clear_memoized_values2588 resets the memoized values2589Boards::Issues::ListService2590 #execute2591 when parent is a project2592 behaves like issues list service2593 delegates search to IssuesFinder2594 #metadata2595 returns issues count for list2596 behaves like items list service2597 avoids N+12598 returns opened items when list_id and list are missing2599 returns opened items when listing items from Backlog2600 returns opened items that have label list applied when listing items from a label list2601 returns closed items when listing items from Closed sorted by closed_at in descending order2602 raises an error if the list does not belong to the board2603 raises an error if list and list id are invalid or missing2604 returns items from all lists if :all_list is used2605 returns opened items that have label list applied when using list param2606 when project is archived2607 behaves like issues list service2608 delegates search to IssuesFinder2609 #metadata2610 returns issues count for list2611 behaves like items list service2612 avoids N+12613 returns opened items when list_id and list are missing2614 returns opened items when listing items from Backlog2615 returns opened items that have label list applied when listing items from a label list2616 returns closed items when listing items from Closed sorted by closed_at in descending order2617 raises an error if the list does not belong to the board2618 raises an error if list and list id are invalid or missing2619 returns items from all lists if :all_list is used2620 returns opened items that have label list applied when using list param2621 when filtering2622 when filtering by type2623 only returns the specified type2624 when filtering by negated type2625 only returns the specified type2626 when parent is a group2627 when the group has no parent2628 behaves like issues list service2629 delegates search to IssuesFinder2630 #metadata2631 returns issues count for list2632 behaves like items list service2633 avoids N+12634 returns opened items when list_id and list are missing2635 returns opened items when listing items from Backlog2636 returns opened items that have label list applied when listing items from a label list2637 returns closed items when listing items from Closed sorted by closed_at in descending order2638 raises an error if the list does not belong to the board2639 raises an error if list and list id are invalid or missing2640 returns items from all lists if :all_list is used2641 returns opened items that have label list applied when using list param2642 when the group is an ancestor2643 behaves like issues list service2644 delegates search to IssuesFinder2645 #metadata2646 returns issues count for list2647 behaves like items list service2648 avoids N+12649 returns opened items when list_id and list are missing2650 returns opened items when listing items from Backlog2651 returns opened items that have label list applied when listing items from a label list2652 returns closed items when listing items from Closed sorted by closed_at in descending order2653 raises an error if the list does not belong to the board2654 raises an error if list and list id are invalid or missing2655 returns items from all lists if :all_list is used2656 returns opened items that have label list applied when using list param2657 .initialize_relative_positions2658 when 'Gitlab::Database::read_write?' is true2659 user cannot move issues2660 does not initialize the relative positions of issues2661 user can move issues2662 initializes the relative positions of issues2663 when 'Gitlab::Database::read_write?' is false2664 does not initialize the relative positions of issues2665Projects::DestroyService2666 invalidates personal_project_count cache2667 deleting a project with merge requests2668 deletes merge request and related records2669 behaves like deleting the project2670 deletes the project2671 publishes a ProjectDeleted event with project id and namespace id2672 with running pipelines2673 bulks-fails with AbortPipelineService and then executes DestroyPipelineService for each pipelines2674 when project has remote mirrors2675 destroys them2676 when project has exports2677 destroys project and export2678 Sidekiq fake2679 is expected not to include #<Project id:672 user364/project726>>2680 is expected to be falsey2681 when flushing caches fail due to Git errors2682 behaves like deleting the project2683 deletes the project2684 publishes a ProjectDeleted event with project id and namespace id2685 when flushing caches fail due to Redis2686 keeps project team intact upon an error2687 with async_execute2688 async delete of project with private issue visibility2689 behaves like deleting the project2690 deletes the project2691 publishes a ProjectDeleted event with project id and namespace id2692 behaves like deleting the project with pipeline and build2693 with pipeline and build related records2694 deletes build and pipeline related records2695 avoids N+1 queries2696 behaves like deleting the project2697 deletes the project2698 publishes a ProjectDeleted event with project id and namespace id2699 when project is undergoing refresh2700 does not log about artifact deletion but continues to delete artifacts2701 errors2702 when `remove_legacy_registry_tags` fails2703 behaves like handles errors thrown during async destroy2704 does not allow the error to bubble up2705 reports the error2706 unmarks the project as "pending deletion"2707 stores an error message in `projects.delete_error`2708 when `remove_repository` fails2709 behaves like handles errors thrown during async destroy2710 does not allow the error to bubble up2711 reports the error2712 unmarks the project as "pending deletion"2713 stores an error message in `projects.delete_error`2714 when `execute` raises expected error2715 behaves like handles errors thrown during async destroy2716 does not allow the error to bubble up2717 reports the error2718 unmarks the project as "pending deletion"2719 stores an error message in `projects.delete_error`2720 when `execute` raises unexpected error2721 allows error to bubble up and rolls back project deletion2722 for an archived project2723 behaves like deleting the project with pipeline and build2724 with pipeline and build related records2725 deletes build and pipeline related records2726 avoids N+1 queries2727 behaves like deleting the project2728 deletes the project2729 publishes a ProjectDeleted event with project id and namespace id2730 when project is undergoing refresh2731 does not log about artifact deletion but continues to delete artifacts2732 container registry2733 when there are regular container repositories2734 when image repository deletion succeeds2735 removes tags2736 when image repository deletion fails2737 raises an exception2738 when registry is disabled2739 does not attempting to remove any tags2740 when there are tags for legacy root repository2741 when image repository tags deletion succeeds2742 removes tags2743 when image repository tags deletion fails2744 raises an exception2745 for a forked project with LFS objects2746 destroys the fork2747 as the root of a fork network2748 updates the fork network with the project name2749 repository removal2750 removal of existing repos2751 snippets2752 does not include snippets when deleting in batches2753 calls the bulk snippet destroy service with the hard_delete param set to true2754 when an error is raised deleting snippets2755 does not delete project2756 when project has webhooks2757 deletes webhooks and logs related to project2758 when an error is raised deleting webhooks2759 behaves like handles errors thrown during async destroy2760 does not allow the error to bubble up2761 reports the error2762 unmarks the project as "pending deletion"2763 stores an error message in `projects.delete_error`2764 when project has project bots2765 deletes bot user as well2766 when project has events2767 deletes events from the project2768 when an error is returned while deleting events2769 does not delete project2770 error while destroying2771 deletes on retry2772MergeRequests::SquashService2773 #execute2774 when there is only one commit in the merge request2775 returns the squashed commit SHA2776 cleans up the temporary directory2777 does not keep the branch push event2778 when there is a single commit in the merge request2779 will still perform the squash2780 when squash message matches commit message2781 returns that commit SHA2782 does not perform any git actions2783 when squash message matches commit message but without trailing new line2784 returns that commit SHA2785 does not perform any git actions2786 the squashed commit2787 copies the author info from the merge request2788 sets the current user as the committer2789 has the same diff as the merge request, but a different SHA2790 has a default squash commit message if no message was provided2791 if a message was provided2792 has the same message as the message provided2793 when squashing only new files2794 returns the squashed commit SHA2795 cleans up the temporary directory2796 does not keep the branch push event2797 when there is a single commit in the merge request2798 will still perform the squash2799 when squash message matches commit message2800 returns that commit SHA2801 does not perform any git actions2802 when squash message matches commit message but without trailing new line2803 returns that commit SHA2804 does not perform any git actions2805 the squashed commit2806 copies the author info from the merge request2807 sets the current user as the committer2808 has the same diff as the merge request, but a different SHA2809 has a default squash commit message if no message was provided2810 if a message was provided2811 has the same message as the message provided2812 when squashing is disabled by default on the project2813 returns the squashed commit SHA2814 cleans up the temporary directory2815 does not keep the branch push event2816 when there is a single commit in the merge request2817 will still perform the squash2818 when squash message matches commit message2819 returns that commit SHA2820 does not perform any git actions2821 when squash message matches commit message but without trailing new line2822 returns that commit SHA2823 does not perform any git actions2824 the squashed commit2825 copies the author info from the merge request2826 sets the current user as the committer2827 has the same diff as the merge request, but a different SHA2828 has a default squash commit message if no message was provided2829 if a message was provided2830 has the same message as the message provided2831 when squashing is forbidden on the project2832 raises a squash error2833 when squashing is enabled by default on the project2834 returns the squashed commit SHA2835 cleans up the temporary directory2836 does not keep the branch push event2837 when there is a single commit in the merge request2838 will still perform the squash2839 when squash message matches commit message2840 returns that commit SHA2841 does not perform any git actions2842 when squash message matches commit message but without trailing new line2843 returns that commit SHA2844 does not perform any git actions2845 the squashed commit2846 copies the author info from the merge request2847 sets the current user as the committer2848 has the same diff as the merge request, but a different SHA2849 has a default squash commit message if no message was provided2850 if a message was provided2851 has the same message as the message provided2852 when squashing with files too large to display2853 returns the squashed commit SHA2854 cleans up the temporary directory2855 does not keep the branch push event2856 when there is a single commit in the merge request2857 will still perform the squash2858 when squash message matches commit message2859 returns that commit SHA2860 does not perform any git actions2861 when squash message matches commit message but without trailing new line2862 returns that commit SHA2863 does not perform any git actions2864 the squashed commit2865 copies the author info from the merge request2866 sets the current user as the committer2867 has the same diff as the merge request, but a different SHA2868 has a default squash commit message if no message was provided2869 if a message was provided2870 has the same message as the message provided2871 git errors2872 with an error in Gitaly UserSquash RPC2873 logs the error2874 returns an error2875 when any other exception is thrown2876 logs the error2877 returns an error2878 cleans up the temporary directory2879Users::DestroyService2880 Deletes a user and all their personal projects2881 no options are given2882 deletes the user2883 deletes user associations in batches2884 does not include snippets when deleting in batches2885 will delete the project2886 calls the bulk snippet destroy service for the user personal snippets2887 calls the bulk snippet destroy service with hard delete option if it is present2888 does not delete project snippets that the user is the author of2889 when an error is raised deleting snippets2890 does not delete user2891 projects in pending_delete2892 destroys a project in pending_delete2893 a deleted user's issues2894 for an issue the user was assigned to2895 does not delete issues the user is assigned to2896 migrates the issue so that it is "Unassigned"2897 a deleted user's merge_requests2898 for an merge request the user was assigned to2899 does not delete merge requests the user is assigned to2900 migrates the merge request so that it is "Unassigned"2901 solo owned groups present2902 returns the user with attached errors2903 does not delete the user2904 deletions with solo owned groups2905 deletes solo owned groups2906 deletes the user2907 deletions with inherited group owners2908 does not delete the group2909 deletes the user2910 migrating associated records2911 delegates to the `MigrateToGhostUser` service to move associated records to the ghost user2912 when hard_delete option is given2913 will not ghost certain records2914 user personal's repository removal2915 storages2916 legacy storage2917 removes repository2918 hashed storage2919 removes repository2920 repository removal status is taken into account2921 raises exception2922 calls the before/after callbacks2923 of project_members2924 of group_members2925 Deletion permission checks2926 does not delete the user when user is not an admin2927 allows users to delete their own account2928 allows user to be deleted if skip_authorization: true2929 when admin mode is enabled2930 allows admins to delete anyone2931 when admin mode is disabled2932 disallows admins to delete anyone2933 batched nullify2934 nullifies related associations in batches2935 nullifies last_updated_issues, closed_issues, resource_label_events2936Gitlab::Database::ConsistencyChecker2937 #over_time_limit?2938 returns true only if the running time has exceeded MAX_RUNTIME2939 #execute2940 when empty tables2941 returns an empty response2942 when the tables contain matching items2943 does not process more than MAX_BATCHES2944 doesn not exceed the MAX_RUNTIME2945 returns the correct number of matches and batches checked2946 returns the min_id as the next_start_id if the check reaches the last element2947 when some items are missing from the first table2948 reports the missing elements2949 when some items are missing from the second table2950 reports the missing elements2951 when elements are different between the two tables2952 reports the difference between the two tables2953Clusters::Applications::Cilium2954 is expected to belong to cluster required: false2955 is expected to validate that :cluster cannot be empty/falsy2956 #can_uninstall?2957 calls allowed_to_uninstall?2958 #name2959 is .application_name2960 is recorded in Clusters::Cluster::APPLICATIONS2961 .association_name2962 is expected to eq :application_cilium2963 #helm_command_module2964 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22965 is expected to eq Gitlab::Kubernetes::Helm::V22966 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32967 is expected to eq Gitlab::Kubernetes::Helm::V32968 #status_states2969 returns a hash of state values2970 returns an integer for installed state value2971 .available2972 is expected to contain exactly #<Clusters::Applications::Cilium id: 1, cluster_id: 12, created_at: "2022-06-29 20:24:18.321670876 +0000", updated_at: "2022-06-29 20:24:18.321670876 +0000", status: 3, status_reason: nil> and #<Clusters::Applications::Cilium id: 2, cluster_id: 18, created_at: "2022-06-29 20:24:19.701349035 +0000", updated_at: "2022-06-29 20:24:19.701349035 +0000", status: 5, status_reason: nil>2973 status state machine2974 #make_installing2975 is installing2976 #make_installed2977 is installed2978 does not update the helm version2979 the cluster has no helm installed2980 runs without errors2981 application is updating2982 is updated2983 does not update the helm version2984 the cluster has no helm installed2985 runs without errors2986 #make_errored2987 is errored2988 application is updating2989 is update_errored2990 application is uninstalling2991 is uninstall_errored2992 #make_externally_installed2993 is installed2994 helm record does not exist2995 does not create a helm record2996 helm record exists2997 does not update helm version2998 application is updated2999 is installed3000 application is errored3001 is installed3002 clears #status_reason3003 #make_externally_uninstalled3004 is uninstalled3005 application is updated3006 is uninstalled3007 application is errored3008 is uninstalled3009 clears #status_reason3010 #make_scheduled3011 is scheduled3012 when installed3013 is scheduled3014 when was errored3015 clears #status_reason3016 when was updated_errored3017 clears #status_reason3018 when was uninstall_errored3019 clears #status_reason3020 #make_uninstalling3021 is uninstalling3022 #available?3023 trait: :not_installable, available: false3024 is expected not to be available3025 trait: :installable, available: false3026 is expected not to be available3027 trait: :scheduled, available: false3028 is expected not to be available3029 trait: :installing, available: false3030 is expected not to be available3031 trait: :installed, available: true3032 is expected to be available3033 trait: :updating, available: false3034 is expected not to be available3035 trait: :updated, available: true3036 is expected to be available3037 trait: :errored, available: false3038 is expected not to be available3039 trait: :update_errored, available: false3040 is expected not to be available3041 trait: :uninstalling, available: false3042 is expected not to be available3043 trait: :uninstall_errored, available: false3044 is expected not to be available3045 trait: :uninstalled, available: false3046 is expected not to be available3047 trait: :timed_out, available: false3048 is expected not to be available3049 trait: :externally_installed, available: true3050 is expected to be available3051 #status3052 sets a default status3053 #allowed_to_uninstall?3054 is expected to equal false3055Gitlab::GitAccessSnippet3056 when actor is a DeployKey3057 does not allow push and pull access3058 when snippet repository is read-only3059 does not allow push and allows pull access3060 #check_snippet_accessibility!3061 when the snippet exists3062 allows access3063 when the snippet is nil3064 blocks access with "not found"3065 when the snippet does not have a repository3066 blocks access with "not found"3067 terms are enforced3068 blocks access when the user did not accept terms3069 allows access when the user accepted the terms3070 behaves like actor is migration bot3071 when user is the migration bot3072 can perform git operations3073 project snippet accessibility3074 when project is public3075 behaves like checks accessibility3076 anonymous3077 respects accessibility3078 non_member3079 respects accessibility3080 guest3081 respects accessibility3082 reporter3083 respects accessibility3084 maintainer3085 respects accessibility3086 admin3087 respects accessibility3088 author3089 respects accessibility3090 behaves like actor is migration bot3091 when user is the migration bot3092 can perform git operations3093 when project is public but snippet feature is private3094 behaves like checks accessibility3095 anonymous3096 respects accessibility3097 non_member3098 respects accessibility3099 guest3100 respects accessibility3101 reporter3102 respects accessibility3103 maintainer3104 respects accessibility3105 admin3106 respects accessibility3107 author3108 respects accessibility3109 behaves like actor is migration bot3110 when user is the migration bot3111 can perform git operations3112 when project is not accessible3113 anonymous3114 respects accessibility3115 non_member3116 respects accessibility3117 behaves like actor is migration bot3118 when user is the migration bot3119 can perform git operations3120 when project is archived3121 anonymous3122 cannot perform git operations3123 non_member3124 cannot perform git operations3125 guest3126 cannot perform git pushes3127 reporter3128 cannot perform git pushes3129 maintainer3130 cannot perform git pushes3131 author3132 cannot perform git pushes3133 admin3134 when admin mode is enabled3135 cannot perform git pushes3136 when admin mode is disabled3137 cannot perform git operations3138 behaves like actor is migration bot3139 when user is the migration bot3140 can perform git operations3141 when snippet feature is disabled3142 anonymous3143 cannot perform git operations3144 non_member3145 cannot perform git operations3146 author3147 cannot perform git operations3148 admin3149 cannot perform git operations3150 behaves like actor is migration bot3151 when user is the migration bot3152 can perform git operations3153 personal snippet accessibility3154 snippet_level: :public, membership: :admin, admin_mode: true, _expected_count: 13155 respects accessibility3156 behaves like actor is migration bot3157 when user is the migration bot3158 can perform git operations3159 snippet_level: :public, membership: :admin, admin_mode: false, _expected_count: 13160 respects accessibility3161 behaves like actor is migration bot3162 when user is the migration bot3163 can perform git operations3164 snippet_level: :public, membership: :author, admin_mode: nil, _expected_count: 13165 respects accessibility3166 behaves like actor is migration bot3167 when user is the migration bot3168 can perform git operations3169 snippet_level: :public, membership: :non_member, admin_mode: nil, _expected_count: 13170 respects accessibility3171 behaves like actor is migration bot3172 when user is the migration bot3173 can perform git operations3174 snippet_level: :public, membership: :anonymous, admin_mode: nil, _expected_count: 13175 respects accessibility3176 behaves like actor is migration bot3177 when user is the migration bot3178 can perform git operations3179 snippet_level: :internal, membership: :admin, admin_mode: true, _expected_count: 13180 respects accessibility3181 behaves like actor is migration bot3182 when user is the migration bot3183 can perform git operations3184 snippet_level: :internal, membership: :admin, admin_mode: false, _expected_count: 13185 respects accessibility3186 behaves like actor is migration bot3187 when user is the migration bot3188 can perform git operations3189 snippet_level: :internal, membership: :author, admin_mode: nil, _expected_count: 13190 respects accessibility3191 behaves like actor is migration bot3192 when user is the migration bot3193 can perform git operations3194 snippet_level: :internal, membership: :non_member, admin_mode: nil, _expected_count: 13195 respects accessibility3196 behaves like actor is migration bot3197 when user is the migration bot3198 can perform git operations3199 snippet_level: :internal, membership: :anonymous, admin_mode: nil, _expected_count: 03200 respects accessibility3201 behaves like actor is migration bot3202 when user is the migration bot3203 can perform git operations3204 snippet_level: :private, membership: :admin, admin_mode: true, _expected_count: 13205 respects accessibility3206 behaves like actor is migration bot3207 when user is the migration bot3208 can perform git operations3209 snippet_level: :private, membership: :admin, admin_mode: false, _expected_count: 03210 respects accessibility3211 behaves like actor is migration bot3212 when user is the migration bot3213 can perform git operations3214 snippet_level: :private, membership: :author, admin_mode: nil, _expected_count: 13215 respects accessibility3216 behaves like actor is migration bot3217 when user is the migration bot3218 can perform git operations3219 snippet_level: :private, membership: :non_member, admin_mode: nil, _expected_count: 03220 respects accessibility3221 behaves like actor is migration bot3222 when user is the migration bot3223 can perform git operations3224 snippet_level: :private, membership: :anonymous, admin_mode: nil, _expected_count: 03225 respects accessibility3226 behaves like actor is migration bot3227 when user is the migration bot3228 can perform git operations3229 when changes are specific3230 behaves like snippet checks3231 does not raise error if SnippetCheck does not raise error3232 raises error if SnippetCheck raises error3233 sets the file count limit from Snippet class3234 when user is migration bot3235 behaves like snippet checks3236 does not raise error if SnippetCheck does not raise error3237 raises error if SnippetCheck raises error3238 sets the file count limit from Snippet class3239 repository size restrictions3240 when GIT_OBJECT_DIRECTORY_RELATIVE env var is set3241 behaves like a push to repository already over the limit3242 errs3243 behaves like migration bot does not err3244 does not err3245 behaves like a push to repository below the limit3246 does not err3247 behaves like migration bot does not err3248 does not err3249 behaves like a push to repository to make it over the limit3250 errs3251 behaves like migration bot does not err3252 does not err3253 a change with GIT_OBJECT_DIRECTORY_RELATIVE env var unset3254 behaves like a push to repository already over the limit3255 errs3256 behaves like migration bot does not err3257 does not err3258 behaves like a push to repository below the limit3259 does not err3260 behaves like migration bot does not err3261 does not err3262 behaves like a push to repository to make it over the limit3263 errs3264 behaves like migration bot does not err3265 does not err3266ResourceAccessTokens::CreateService3267 #execute3268 when resource is a project3269 behaves like when user does not have permission to create a resource bot3270 returns the permission error message3271 behaves like token creation fails3272 does not add the project bot as a member3273 immediately destroys the bot user if one was created3274 user with valid permission3275 behaves like allows creation of bot with valid params3276 is expected to change `User.count` by 13277 creates resource bot user3278 logs the event3279 email confirmation status3280 when created by an admin3281 when admin mode is enabled3282 behaves like creates a user that has their email confirmed3283 creates a user that has their email confirmed3284 when admin mode is disabled3285 returns error3286 when created by a non-admin3287 behaves like creates a user that has their email confirmed3288 creates a user that has their email confirmed3289 bot name3290 when no name is passed3291 uses default name3292 when user provides name3293 overrides the default name value3294 bot email3295 check email domain3296 access level3297 when user does not specify an access level3298 adds the bot user as a maintainer in the resource3299 when user specifies an access level3300 adds the bot user with the specified access level in the resource3301 when user is external3302 creates resource bot user with external status3303 personal access token3304 is expected to change `PersonalAccessToken.count` by 13305 when user does not provide scope3306 has default scopes3307 when user provides scope explicitly3308 overrides the default scope value3309 expires_at3310 when no expiration value is passed3311 uses nil expiration value3312 expiry of the project bot member3313 project bot membership does not expire3314 when user provides expiration value3315 overrides the default expiration value3316 expiry of the project bot member3317 sets the project bot to expire on the same day as the token3318 when invalid scope is passed3319 returns the scope error message3320 behaves like token creation fails3321 does not add the project bot as a member3322 immediately destroys the bot user if one was created3323 when access provisioning fails3324 returns the provisioning error message3325 behaves like token creation fails3326 does not add the project bot as a member3327 immediately destroys the bot user if one was created3328 when user specifies an access level of OWNER for the bot3329 when the executor is a MAINTAINER3330 does not add the bot user with the specified access level in the resource3331 when the executor is an OWNER3332 adds the bot user with the specified access level in the resource3333 when resource is a group3334 behaves like when user does not have permission to create a resource bot3335 returns the permission error message3336 behaves like token creation fails3337 does not add the project bot as a member3338 immediately destroys the bot user if one was created3339 user with valid permission3340 behaves like allows creation of bot with valid params3341 is expected to change `User.count` by 13342 creates resource bot user3343 logs the event3344 email confirmation status3345 when created by an admin3346 when admin mode is enabled3347 behaves like creates a user that has their email confirmed3348 creates a user that has their email confirmed3349 when admin mode is disabled3350 returns error3351 when created by a non-admin3352 behaves like creates a user that has their email confirmed3353 creates a user that has their email confirmed3354 bot name3355 when no name is passed3356 uses default name3357 when user provides name3358 overrides the default name value3359 bot email3360 check email domain3361 access level3362 when user does not specify an access level3363 adds the bot user as a maintainer in the resource3364 when user specifies an access level3365 adds the bot user with the specified access level in the resource3366 when user is external3367 creates resource bot user with external status3368 personal access token3369 is expected to change `PersonalAccessToken.count` by 13370 when user does not provide scope3371 has default scopes3372 when user provides scope explicitly3373 overrides the default scope value3374 expires_at3375 when no expiration value is passed3376 uses nil expiration value3377 expiry of the project bot member3378 project bot membership does not expire3379 when user provides expiration value3380 overrides the default expiration value3381 expiry of the project bot member3382 sets the project bot to expire on the same day as the token3383 when invalid scope is passed3384 returns the scope error message3385 behaves like token creation fails3386 does not add the project bot as a member3387 immediately destroys the bot user if one was created3388 when access provisioning fails3389 returns the provisioning error message3390 behaves like token creation fails3391 does not add the project bot as a member3392 immediately destroys the bot user if one was created3393 when user specifies an access level of OWNER for the bot3394 adds the bot user with the specified access level in the resource3395Gitlab::LegacyGithubImport::PullRequestFormatter3396 when importing a GitHub project3397 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes3398 when pull request is open3399 returns formatted attributes3400 when pull request is closed3401 returns formatted attributes3402 when pull request is merged3403 returns formatted attributes3404 when it is assigned to someone3405 returns nil as assignee_id when is not a GitLab user3406 returns GitLab user id associated with GitHub id as assignee_id3407 returns GitLab user id associated with GitHub email as assignee_id3408 when author is a GitLab user3409 returns project creator_id as author_id when is not a GitLab user3410 returns GitLab user id associated with GitHub id as author_id3411 returns GitLab user id associated with GitHub email as author_id3412 returns description without created at tag line3413 when it has a milestone3414 returns nil when milestone does not exist3415 returns milestone when it exists3416 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number3417 returns pull request number3418 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name3419 when source branch exists3420 returns branch ref3421 when source branch does not exist3422 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3423 when source branch is from a fork3424 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3425 when source branch is from a deleted fork3426 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3427 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name3428 when target branch exists3429 returns branch ref3430 when target branch does not exist3431 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3432 when importing a Gitea project3433 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes3434 when pull request is open3435 returns formatted attributes3436 when pull request is closed3437 returns formatted attributes3438 when pull request is merged3439 returns formatted attributes3440 when it is assigned to someone3441 returns nil as assignee_id when is not a GitLab user3442 returns GitLab user id associated with GitHub id as assignee_id3443 returns GitLab user id associated with GitHub email as assignee_id3444 when author is a GitLab user3445 returns project creator_id as author_id when is not a GitLab user3446 returns GitLab user id associated with GitHub id as author_id3447 returns GitLab user id associated with GitHub email as author_id3448 returns description without created at tag line3449 when it has a milestone3450 returns nil when milestone does not exist3451 returns milestone when it exists3452 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number3453 returns pull request number3454 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name3455 when source branch exists3456 returns branch ref3457 when source branch does not exist3458 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3459 when source branch is from a fork3460 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3461 when source branch is from a deleted fork3462 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3463 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name3464 when target branch exists3465 returns branch ref3466 when target branch does not exist3467 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision3468 #valid?3469 when source, and target repos are not a fork3470 returns true3471 when source repo is a fork3472 returns true3473 when target repo is a fork3474 returns true3475 #cross_project?3476 when source and target repositories are different3477 returns true3478 when source repository does not exist anymore3479 returns true3480 when source and target repositories are the same3481 returns false3482 #source_branch_exists?3483 returns false when is a cross_project3484 #url3485 return raw url3486 #opened?3487 returns true when state is "open"3488Integrations::Bamboo3489 accessors3490 is expected to respond to #enable_ssl_verification3491 is expected to respond to #enable_ssl_verification?3492 #initialize_properties3493 enables the setting by default3494 does not enable the setting if the record is already persisted3495 does not enable the setting if a custom value was set3496 #fields3497 inserts the checkbox field after the first URL field, or at the end3498 does not insert the field repeatedly3499 Validations3500 when active3501 is expected to validate that :build_key cannot be empty/falsy3502 is expected to validate that :bamboo_url cannot be empty/falsy3503 behaves like issue tracker integration URL attribute3504 is expected to allow :bamboo_url to be ‹"https://example.com"›3505 is expected not to allow :bamboo_url to be ‹"example.com"›3506 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›3507 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›3508 #username3509 does not validate the presence of username if password is nil3510 validates the presence of username if password is present3511 #password3512 does not validate the presence of password if username is nil3513 validates the presence of password if username is present3514 when inactive3515 is expected not to validate that :build_key cannot be empty/falsy3516 is expected not to validate that :bamboo_url cannot be empty/falsy3517 is expected not to validate that :username cannot be empty/falsy3518 is expected not to validate that :password cannot be empty/falsy3519 Callbacks3520 before_validation :reset_password3521 saves password if new url is set together with password when no password was previously set3522 when a password was previously set3523 resets password if url changed3524 does not reset password if username changed3525 does not reset password if new url is set together with password, even if it's the same password3526 #execute3527 runs update and build action3528 #build_page3529 returns the contents of the reactive cache3530 #commit_status3531 returns the contents of the reactive cache3532 #calculate_reactive_cache3533 when Bamboo API returns single result3534 behaves like reactive cache calculation3535 #build_page3536 returns a specific URL when status is 5003537 returns a specific URL when response has no results3538 returns a build URL when bamboo_url has no trailing slash3539 bamboo_url has trailing slash3540 returns a build URL3541 #commit_status3542 sets commit status to :error when status is 5003543 sets commit status to "pending" when status is 4043544 sets commit status to "pending" when response has no results3545 sets commit status to "success" when build state contains Success3546 sets commit status to "failed" when build state contains Failed3547 sets commit status to "pending" when build state contains Pending3548 sets commit status to :error when build state is unknown3549 sets commit status to :error with a Net::OpenTimeout error3550 sets commit status to :error with a Net::ReadTimeout error3551 sets commit status to :error with a Net::WriteTimeout error3552 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3553 sets commit status to :error with a EOFError error3554 sets commit status to :error with a SocketError error3555 sets commit status to :error with a OpenSSL::SSL::SSLError error3556 sets commit status to :error with a OpenSSL::OpenSSLError error3557 sets commit status to :error with a Errno::ECONNRESET error3558 sets commit status to :error with a Errno::ECONNREFUSED error3559 sets commit status to :error with a Errno::EHOSTUNREACH error3560 sets commit status to :error with a Errno::ENETUNREACH error3561 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3562 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3563 when Bamboo API returns an array of results and we only consider the last one3564 behaves like reactive cache calculation3565 #build_page3566 returns a specific URL when status is 5003567 returns a specific URL when response has no results3568 returns a build URL when bamboo_url has no trailing slash3569 bamboo_url has trailing slash3570 returns a build URL3571 #commit_status3572 sets commit status to :error when status is 5003573 sets commit status to "pending" when status is 4043574 sets commit status to "pending" when response has no results3575 sets commit status to "success" when build state contains Success3576 sets commit status to "failed" when build state contains Failed3577 sets commit status to "pending" when build state contains Pending3578 sets commit status to :error when build state is unknown3579 sets commit status to :error with a Net::OpenTimeout error3580 sets commit status to :error with a Net::ReadTimeout error3581 sets commit status to :error with a Net::WriteTimeout error3582 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3583 sets commit status to :error with a EOFError error3584 sets commit status to :error with a SocketError error3585 sets commit status to :error with a OpenSSL::SSL::SSLError error3586 sets commit status to :error with a OpenSSL::OpenSSLError error3587 sets commit status to :error with a Errno::ECONNRESET error3588 sets commit status to :error with a Errno::ECONNREFUSED error3589 sets commit status to :error with a Errno::EHOSTUNREACH error3590 sets commit status to :error with a Errno::ENETUNREACH error3591 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3592 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3593Integrations::PipelinesEmail3594 Validations3595 when integration is active3596 is expected to validate that :recipients cannot be empty/falsy3597 when integration is inactive3598 is expected not to validate that :recipients cannot be empty/falsy3599 validates number of recipients3600 valid number of recipients3601 does not count empty emails3602 invalid number of recipients3603 is expected not to be valid3604 adds an error message3605 when integration is not active3606 is expected to be valid3607 #test3608 when pipeline is failed and on default branch3609 behaves like sending email3610 sends email3611 when pipeline is succeeded3612 behaves like sending email3613 sends email3614 when the pipeline failed3615 on default branch3616 notifications are enabled only for default branch3617 behaves like sending email3618 sends email3619 notifications are enabled only for protected branch3620 behaves like sending email3621 sends email3622 notifications are enabled only for default and protected branches3623 behaves like sending email3624 sends email3625 notifications are enabled only for all branches3626 behaves like sending email3627 sends email3628 on a protected branch3629 notifications are enabled only for default branch3630 behaves like sending email3631 sends email3632 notifications are enabled only for protected branch3633 behaves like sending email3634 sends email3635 notifications are enabled only for default and protected branches3636 behaves like sending email3637 sends email3638 notifications are enabled only for all branches3639 behaves like sending email3640 sends email3641 on a neither protected nor default branch3642 notifications are enabled only for default branch3643 behaves like sending email3644 sends email3645 notifications are enabled only for protected branch3646 behaves like sending email3647 sends email3648 notifications are enabled only for default and protected branches3649 behaves like sending email3650 sends email3651 notifications are enabled only for all branches3652 behaves like sending email3653 sends email3654 #execute3655 with recipients3656 with failed pipeline3657 behaves like sending email3658 sends email3659 with succeeded pipeline3660 behaves like not sending email3661 does not send email3662 with notify_only_broken_pipelines on3663 with failed pipeline3664 behaves like sending email3665 sends email3666 with succeeded pipeline3667 behaves like not sending email3668 does not send email3669 when the pipeline failed3670 on default branch3671 notifications are enabled only for default branch3672 behaves like sending email3673 sends email3674 notifications are enabled only for protected branch3675 behaves like not sending email3676 does not send email3677 notifications are enabled only for default and protected branches3678 behaves like sending email3679 sends email3680 notifications are enabled only for all branches3681 behaves like sending email3682 sends email3683 on a protected branch3684 notifications are enabled only for default branch3685 behaves like not sending email3686 does not send email3687 notifications are enabled only for protected branch3688 behaves like sending email3689 sends email3690 notifications are enabled only for default and protected branches3691 behaves like sending email3692 sends email3693 notifications are enabled only for all branches3694 behaves like sending email3695 sends email3696 on a neither protected nor default branch3697 notifications are enabled only for default branch3698 behaves like not sending email3699 does not send email3700 notifications are enabled only for protected branch3701 behaves like not sending email3702 does not send email3703 notifications are enabled only for default and protected branches3704 behaves like not sending email3705 does not send email3706 notifications are enabled only for all branches3707 behaves like sending email3708 sends email3709 with empty recipients list3710 with failed pipeline3711 behaves like not sending email3712 does not send email3713 with recipients list separating with newlines3714 with failed pipeline3715 behaves like sending email3716 sends email3717Mutations::MergeRequests::SetLabels3718 is expected to require graphql authorizations :update_merge_request3719 #resolve3720 behaves like permission level for merge request mutation is correctly verified3721 when the user is not a project member3722 behaves like when the user does not have access to the resource3723 raises an error3724 even if assigned to the merge request3725 does not modify merge request3726 even if reviewer of the merge request3727 raises an error3728 even if author of the merge request3729 raises an error3730 when the user is a project member3731 with guest role3732 behaves like when the user does not have access to the resource3733 raises an error3734 even if assigned to the merge request3735 does not modify merge request3736 even if reviewer of the merge request3737 raises an error3738 even if author of the merge request3739 raises an error3740 with reporter role3741 behaves like when the user does not have access to the resource3742 raises an error3743 even if assigned to the merge request3744 does not modify merge request3745 even if reviewer of the merge request3746 raises an error3747 even if author of the merge request3748 raises an error3749 when the user can update the merge request3750 sets the labels, removing all others3751 returns errors merge request could not be updated3752 when passing an empty array3753 removes all labels3754 when passing operation_mode as APPEND3755 sets the labels, without removing others3756 when passing operation_mode as REMOVE3757 removes the labels, without removing others3758VerifyPagesDomainService3759 #execute3760 domain_sym: :domain, code_sym: :verification_code3761 when domain is disabled(or new)3762 when txt record contains verification code3763 verifies and enables the domain3764 when txt record contains verification code with other text3765 verifies and enables the domain3766 when txt record does not contain verification code3767 unverifies domain3768 disables domain and shedules it for removal in 1 week3769 when txt record does not contain verification code3770 unverifies domain3771 disables domain and shedules it for removal in 1 week3772 when no txt records are present3773 unverifies domain3774 disables domain and shedules it for removal in 1 week3775 when domain is verified3776 when txt record contains verification code3777 verifies and enables the domain3778 when txt record contains verification code with other text3779 verifies and enables the domain3780 when txt record does not contain verification code3781 unverifies but does not disable domain3782 does not schedule domain for removal3783 when no txt records are present3784 unverifies but does not disable domain3785 does not schedule domain for removal3786 when domain is expired3787 when the right code is present3788 verifies and enables the domain3789 when the right code is not present3790 unverifies domain3791 disables domain and shedules it for removal in 1 week3792 when domain is disabled and scheduled for removal3793 when the right code is present3794 verifies and enables domain3795 prevent domain from being removed3796 when the right code is not present3797 keeps domain scheduled for removal but does not change removal time3798 invalid domain3799 can be disabled3800 domain_sym: :domain, code_sym: :keyed_verification_code3801 when domain is disabled(or new)3802 when txt record contains verification code3803 verifies and enables the domain3804 when txt record contains verification code with other text3805 verifies and enables the domain3806 when txt record does not contain verification code3807 unverifies domain3808 disables domain and shedules it for removal in 1 week3809 when txt record does not contain verification code3810 unverifies domain3811 disables domain and shedules it for removal in 1 week3812 when no txt records are present3813 unverifies domain3814 disables domain and shedules it for removal in 1 week3815 when domain is verified3816 when txt record contains verification code3817 verifies and enables the domain3818 when txt record contains verification code with other text3819 verifies and enables the domain3820 when txt record does not contain verification code3821 unverifies but does not disable domain3822 does not schedule domain for removal3823 when no txt records are present3824 unverifies but does not disable domain3825 does not schedule domain for removal3826 when domain is expired3827 when the right code is present3828 verifies and enables the domain3829 when the right code is not present3830 unverifies domain3831 disables domain and shedules it for removal in 1 week3832 when domain is disabled and scheduled for removal3833 when the right code is present3834 verifies and enables domain3835 prevent domain from being removed3836 when the right code is not present3837 keeps domain scheduled for removal but does not change removal time3838 invalid domain3839 can be disabled3840 domain_sym: :verification_domain, code_sym: :verification_code3841 when domain is disabled(or new)3842 when txt record contains verification code3843 verifies and enables the domain3844 when txt record contains verification code with other text3845 verifies and enables the domain3846 when txt record does not contain verification code3847 unverifies domain3848 disables domain and shedules it for removal in 1 week3849 when txt record does not contain verification code3850 unverifies domain3851 disables domain and shedules it for removal in 1 week3852 when no txt records are present3853 unverifies domain3854 disables domain and shedules it for removal in 1 week3855 when domain is verified3856 when txt record contains verification code3857 verifies and enables the domain3858 when txt record contains verification code with other text3859 verifies and enables the domain3860 when txt record does not contain verification code3861 unverifies but does not disable domain3862 does not schedule domain for removal3863 when no txt records are present3864 unverifies but does not disable domain3865 does not schedule domain for removal3866 when domain is expired3867 when the right code is present3868 verifies and enables the domain3869 when the right code is not present3870 unverifies domain3871 disables domain and shedules it for removal in 1 week3872 when domain is disabled and scheduled for removal3873 when the right code is present3874 verifies and enables domain3875 prevent domain from being removed3876 when the right code is not present3877 keeps domain scheduled for removal but does not change removal time3878 invalid domain3879 can be disabled3880 domain_sym: :verification_domain, code_sym: :keyed_verification_code3881 when domain is disabled(or new)3882 when txt record contains verification code3883 verifies and enables the domain3884 when txt record contains verification code with other text3885 verifies and enables the domain3886 when txt record does not contain verification code3887 unverifies domain3888 disables domain and shedules it for removal in 1 week3889 when txt record does not contain verification code3890 unverifies domain3891 disables domain and shedules it for removal in 1 week3892 when no txt records are present3893 unverifies domain3894 disables domain and shedules it for removal in 1 week3895 when domain is verified3896 when txt record contains verification code3897 verifies and enables the domain3898 when txt record contains verification code with other text3899 verifies and enables the domain3900 when txt record does not contain verification code3901 unverifies but does not disable domain3902 does not schedule domain for removal3903 when no txt records are present3904 unverifies but does not disable domain3905 does not schedule domain for removal3906 when domain is expired3907 when the right code is present3908 verifies and enables the domain3909 when the right code is not present3910 unverifies domain3911 disables domain and shedules it for removal in 1 week3912 when domain is disabled and scheduled for removal3913 when the right code is present3914 verifies and enables domain3915 prevent domain from being removed3916 when the right code is not present3917 keeps domain scheduled for removal but does not change removal time3918 invalid domain3919 can be disabled3920 timeout behaviour3921 sets a timeout on the DNS query3922 email notifications3923 factory: nil, verification_succeeds: true, expected_notification: nil3924 sends a notification if appropriate3925 factory: nil, verification_succeeds: false, expected_notification: :verification_failed3926 sends a notification if appropriate3927 factory: :reverify, verification_succeeds: true, expected_notification: nil3928 sends a notification if appropriate3929 factory: :reverify, verification_succeeds: false, expected_notification: :verification_failed3930 sends a notification if appropriate3931 factory: :unverified, verification_succeeds: true, expected_notification: :verification_succeeded3932 sends a notification if appropriate3933 factory: :unverified, verification_succeeds: false, expected_notification: nil3934 sends a notification if appropriate3935 factory: :expired, verification_succeeds: true, expected_notification: nil3936 sends a notification if appropriate3937 factory: :expired, verification_succeeds: false, expected_notification: :disabled3938 sends a notification if appropriate3939 factory: :disabled, verification_succeeds: true, expected_notification: :enabled3940 sends a notification if appropriate3941 factory: :disabled, verification_succeeds: false, expected_notification: nil3942 sends a notification if appropriate3943 pages verification disabled3944 skips email notifications3945 no verification code3946 returns an error3947 pages domain verification is disabled3948 extends domain validity by unconditionally reverifying3949 does not shorten any grace period3950Gitlab::Ci::Build::Rules::Rule::Clause::Exists3951 #satisfied_by?3952 when context is Build::Context::Build3953 behaves like an exists rule with a context3954 behaves like a glob matching rule3955 exact top-level match3956 is expected to eq true3957 exact top-level no match3958 is expected to eq false3959 pattern top-level match3960 is expected to eq true3961 pattern top-level no match3962 is expected to eq false3963 exact nested match3964 is expected to eq true3965 exact nested no match3966 is expected to eq false3967 pattern nested match3968 is expected to eq true3969 pattern nested no match3970 is expected to eq false3971 ext top-level match3972 is expected to eq true3973 ext nested no match3974 is expected to eq false3975 ext slash no match3976 is expected to eq false3977 after pattern comparision limit is reached3978 is expected to be truthy3979 when context is Build::Context::Global3980 behaves like an exists rule with a context3981 behaves like a glob matching rule3982 exact top-level match3983 is expected to eq true3984 exact top-level no match3985 is expected to eq false3986 pattern top-level match3987 is expected to eq true3988 pattern top-level no match3989 is expected to eq false3990 exact nested match3991 is expected to eq true3992 exact nested no match3993 is expected to eq false3994 pattern nested match3995 is expected to eq true3996 pattern nested no match3997 is expected to eq false3998 ext top-level match3999 is expected to eq true4000 ext nested no match4001 is expected to eq false4002 ext slash no match4003 is expected to eq false4004 after pattern comparision limit is reached4005 is expected to be truthy4006 when context is Config::External::Context4007 behaves like an exists rule with a context4008 behaves like a glob matching rule4009 exact top-level match4010 is expected to eq true4011 exact top-level no match4012 is expected to eq false4013 pattern top-level match4014 is expected to eq true4015 pattern top-level no match4016 is expected to eq false4017 exact nested match4018 is expected to eq true4019 exact nested no match4020 is expected to eq false4021 pattern nested match4022 is expected to eq true4023 pattern nested no match4024 is expected to eq false4025 ext top-level match4026 is expected to eq true4027 ext nested no match4028 is expected to eq false4029 ext slash no match4030 is expected to eq false4031 after pattern comparision limit is reached4032 is expected to be truthy4033Resolvers::MergeRequestsResolver4034 #resolve4035 without arguments4036 returns all merge requests4037 returns only merge requests that the current user can see4038 with iid alone4039 batch-resolves by target project full path and individual IID4040 batch-resolves by target project full path and IIDS4041 batch-resolves by target project full path and IIDS, single or plural4042 can batch-resolve merge requests from different projects4043 resolves an unknown iid to be empty4044 resolves empty iids to be empty4045 resolves an unknown project to be nil when single4046 resolves an unknown project to be empty4047 with source branches argument4048 takes one argument4049 takes more than one argument4050 with target branches argument4051 takes one argument4052 takes more than one argument4053 with state argument4054 takes one argument4055 with draft argument4056 with draft: true argument4057 takes one argument4058 with draft: false argument4059 takes one argument4060 with label argument4061 takes one argument4062 takes multiple arguments, with semantics of ALL MUST MATCH4063 with negated label argument4064 excludes merge requests with given label from selection4065 with merged_after and merged_before arguments4066 returns merge requests merged between the given period4067 does not return anything4068 with created_after and created_before arguments4069 returns merge requests created within a given period4070 returns some values filtered with created_before4071 returns some values filtered with created_after4072 does not return anything for dates (even in the future) not matching any MRs4073 does not return anything for dates not matching any MRs4074 does not return any values for an impossible set4075 with milestone argument4076 filters merge requests by milestone title4077 does not find anything4078 with negated milestone argument4079 filters out merge requests with given milestone title4080 combinations4081 requires all filters4082 sorting4083 when sorting by created4084 sorts merge requests ascending4085 sorts merge requests descending4086 when sorting by merged at4087 sorts merge requests ascending4088 sorts merge requests descending4089 when sorting by closed at4090 sorts merge requests ascending4091 sorts merge requests descending4092 when sorting by title4093 sorts issues ascending4094 sorts issues descending4095CommitsHelper4096 commit_author_link4097 escapes the author email4098 escapes the author name4099 commit_committer_link4100 escapes the committer email4101 escapes the committer name4102 #view_file_button4103 links to project files4104 #view_on_environment_button4105 returns a link tag linking to the file in the environment4106 #diff_mode_swap_button4107 for rendered4108 renders the correct select-rendered button4109 for raw4110 renders the correct select-raw button4111 #commit_to_html4112 renders HTML representation of a commit4113 commit_path4114 returns a persisted merge request commit path4115 returns a non-persisted merge request commit path which commits still reside in the source project4116 returns a project commit path4117 #conditionally_paginate_diff_files4118 pagination is enabled4119 has been paginated4120 can change the number of items per page4121 page 14122 has 20 diffs4123 page 54124 has the remaining 5 out of 85 diffs4125 pagination is disabled4126 returns a standard DiffCollection4127 #cherry_pick_projects_data4128 returns data for cherry picking into a project4129 #commit_options_dropdown_data4130 when user is logged in4131 returns data as expected4132 when can not collaborate on project4133 returns data as expected4134 when commit has already been reverted4135 returns data as expected4136 when user is not logged in4137 returns data as expected4138 #commit_partial_cache_key4139 is expected to be a kind of Array4140 is expected to include #<CommitPresenter(#<Commit id:570e7b2abdd848b95f2f578043fc23bd6f6fd24d namespace1179/project1086@570e7b2abdd848b95f2f578043fc23bd6f6fd24d>)>4141 is expected to include #<User id:1109 @user840>4142 is expected to include "master"4143 is expected to include {:merge_request => "merge_requests/340-20220629202906946726", :pipeline_status => "pipelines/87-20220629202906379105", :xhr => true, :controller => "commits", :path => "test"}4144 final cache key output4145 is expected to include "commit:570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4146 is expected to include "pipelines/89-20220629202910706439"4147 #commit_path_template4148 is expected to eq "/namespace1197/project1104/-/commit/$COMMIT_SHA"4149Projects::DetectRepositoryLanguagesService4150 #execute4151 without previous detection4152 inserts new programming languages in the database4153 inserts the repository langauges4154 updates detected_repository_languages flag4155 with a previous detection4156 updates the repository languages4157 doesn't touch detected_repository_languages flag4158 when no repository exists4159 has no languages4160Banzai::ReferenceParser::UserParser4161 #referenced_by4162 when the link has a data-group attribute4163 using an existing group ID4164 returns an empty Array when the group has no users4165 when group has members4166 returns the users of the group4167 returns an empty Array when the group has mentions disabled4168 using a non-existing group ID4169 returns an empty Array4170 when the link has a data-user attribute4171 returns an Array of users4172 when RequestStore is active4173 does not return users from the first call in the second4174 when the link has a data-project attribute4175 using an existing project ID4176 returns the members of a project4177 using a non-existing project ID4178 returns an empty Array4179 #nodes_visible_to_user4180 when the link has a data-group attribute4181 using an existing group ID4182 returns the nodes if the user can read the group4183 returns an empty Array if the user can not read the group4184 when the link does not have a data-group attribute4185 with a data-project attribute4186 returns the nodes if the attribute value equals the current project ID4187 returns the nodes if the user can read the project4188 returns an empty Array if the user can not read the project4189 without a data-project attribute4190 returns the nodes4191 #nodes_user_can_reference4192 when the link has a data-author attribute4193 returns the nodes when the user is a member of the project4194 returns an empty Array when the project could not be found4195 returns an empty Array when the user could not be found4196 returns an empty Array when the user is not a team member4197 returns the nodes if the project attribute value equals the current project ID4198 when the link does not have a data-author attribute4199 returns the nodes4200Projects::BuildArtifactsSizeRefresh4201 associations4202 is expected to belong to project required: false4203 validations4204 is expected to validate that :project cannot be empty/falsy4205 scopes4206 stale4207 returns records in running state and has not been updated for more than 2 hours4208 remaining4209 returns stale, created, and pending records4210 processing_queue4211 prioritizes pending -> stale -> created4212 state machine4213 initial state4214 defaults to created4215 #process!4216 when refresh state is created4217 transitions the state to running4218 sets the refresh_started_at4219 sets last_job_artifact_id_on_refresh_start4220 bumps the updated_at4221 resets the build artifacts size stats4222 resets the counter attribute to zero4223 when refresh state is pending4224 transitions the state to running4225 bumps the updated_at4226 when refresh state is running4227 keeps the state at running4228 bumps the updated_at4229 #requeue!4230 transitions refresh state from running to pending4231 bumps updated_at4232 updates last_job_artifact_id4233 .process_next_refresh!4234 picks the first record from the remaining work4235 .enqueue_refresh4236 creates refresh records for each given project, skipping duplicates4237 #next_batch4238 returns the job artifact records that were created not later than the refresh_started_at and IDs greater than the last_job_artifact_id4239 when created_at is set before artifact id is persisted4240 returns ordered job artifacts4241 #started?4242 refresh_state: :created, result: false4243 is expected to eq false4244 refresh_state: :pending, result: true4245 is expected to eq true4246 refresh_state: :running, result: true4247 is expected to eq true4248LabelsHelper4249 #show_label_issuables_link?4250 with a project label4251 when asking for an issue link4252 behaves like a valid response to show_label_issuables_link?4253 when asking for a issues link4254 when issues are enabled for the project4255 is expected to equal true4256 when issues are disabled for the project4257 is expected to equal false4258 when asking for a merge requests link4259 behaves like a valid response to show_label_issuables_link?4260 when asking for a merge_requests link4261 when merge_requests are enabled for the project4262 is expected to equal true4263 when merge_requests are disabled for the project4264 is expected to equal false4265 with a group label4266 when asking for an issue link4267 behaves like a valid response to show_label_issuables_link?4268 when asking for a issues link4269 when issues are enabled for the project4270 is expected to equal true4271 when issues are disabled for the project4272 is expected to equal true4273 when asking for a merge requests link4274 behaves like a valid response to show_label_issuables_link?4275 when asking for a merge_requests link4276 when merge_requests are enabled for the project4277 is expected to equal true4278 when merge_requests are disabled for the project4279 is expected to equal true4280 link_to_label4281 without subject4282 uses the label's project4283 with a project as subject4284 links to project issues page4285 with a group as subject4286 links to group issues page4287 with a type argument4288 set to issue4289 links to correct page4290 set to issue4291 links to correct page4292 set to merge_request4293 links to correct page4294 set to merge_request4295 links to correct page4296 with a tooltip argument4297 set to false4298 does not include the has-tooltip class4299 with block4300 passes the block to link_to4301 without block4302 uses render_colored_label as the link content4303 text_color_for_bg4304 uses light text on dark backgrounds4305 uses dark text on light backgrounds4306 supports RGB triplets4307 create_label_title4308 with a group as subject4309 returns "Create group label"4310 with a project as subject4311 returns "Create project label"4312 with no subject4313 returns "Create new label"4314 manage_labels_title4315 with a group as subject4316 returns "Manage group labels"4317 with a project as subject4318 returns "Manage project labels"4319 with no subject4320 returns "Manage labels"4321 view_labels_title4322 with a group as subject4323 returns "View group labels"4324 with a project as subject4325 returns "View project labels"4326 with no subject4327 returns "View labels"4328 labels_filter_path4329 links to the dashboard labels page4330 links to the group labels page4331 links to the project labels page4332 supports json format4333 presented_labels_sorted_by_title4334 sorts labels alphabetically4335 returns an array of label presenters4336 #label_status_tooltip4337 with a project label4338 is expected to eq "Subscribe at project level"4339 with a group label4340 is expected to eq "Subscribe at group level"4341 #label_tooltip_title4342 removes HTML4343 #show_labels_full_path?4344 within a project4345 returns truthy4346 within a subgroup4347 returns truthy4348 within a group4349 returns falsey4350 within the admin area4351 returns falsey4352MergeRequestPollWidgetEntity4353 has default_merge_commit_message_with_description4354 new_blob_path4355 when user can push to project4356 returns path4357 when user cannot push to project4358 returns nil4359 auto merge4360 when auto merge is enabled4361 returns auto merge related information4362 when auto merge is not enabled4363 returns auto merge related information4364 when head pipeline is running4365 returns available auto merge strategies4366 squash defaults for projects4367 squash_option: "always", value: true, default: true, readonly: true4368 the key reflects the correct value4369 squash_option: "never", value: false, default: false, readonly: true4370 the key reflects the correct value4371 squash_option: "default_on", value: false, default: true, readonly: false4372 the key reflects the correct value4373 squash_option: "default_off", value: false, default: false, readonly: false4374 the key reflects the correct value4375 when head pipeline is finished4376 returns available auto merge strategies4377 pipeline4378 when user has access to pipelines4379 when is up to date4380 does not return pipeline4381 returns ci_status4382 when is not up to date4383 returns nil4384 when user does not have access to pipelines4385 does not return ci_status4386 #builds_with_coverage4387 serializes the builds with coverage4388 #mergeable4389 shows whether a merge request is mergeable4390 when merge request is in checking state4391 calculates mergeability and returns true4392 #mergeable_discussions_state?4393 when change_response_code_merge_status is true4394 returns mergeable discussions state4395 when change_response_code_merge_status is false4396 when merge request is in a mergeable state4397 returns mergeable discussions state4398 when merge request is not in a mergeable state4399 returns mergeable discussions state4400Packages::Nuget::PackageFinder4401 #execute!4402 with a project4403 behaves like handling all the conditions4404 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4405 with lower case package name4406 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4407 with unknown package name4408 is expected to be empty4409 with an uninstallable package4410 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4411 with valid version4412 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4413 with unknown version4414 is expected to be empty4415 with limit hit4416 is expected to contain exactly #<Packages::Package id: 7, project_id: 1126, created_at: "2022-06-29 20:30:53.494554783 +0000", updat...name: "NugetPackage1", version: "1.0.4", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 8, project_id: 1126, created_at: "2022-06-29 20:30:53.524981501 +0000", updat...name: "NugetPackage1", version: "1.0.5", package_type: "nuget", creator_id: 2050, status: "default">4417 with downcase package name4418 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4419 with prefix wildcard4420 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4421 with suffix wildcard4422 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4423 with surrounding wildcards4424 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4425 with a subgroup4426 behaves like handling all the conditions4427 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4428 with lower case package name4429 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4430 with unknown package name4431 is expected to be empty4432 with an uninstallable package4433 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4434 with valid version4435 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4436 with unknown version4437 is expected to be empty4438 with limit hit4439 is expected to contain exactly #<Packages::Package id: 10, project_id: 1126, created_at: "2022-06-29 20:30:56.940593109 +0000", upda...name: "NugetPackage1", version: "1.0.7", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 11, project_id: 1126, created_at: "2022-06-29 20:30:56.968193848 +0000", upda...name: "NugetPackage1", version: "1.0.8", package_type: "nuget", creator_id: 2050, status: "default">4440 with downcase package name4441 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4442 with prefix wildcard4443 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4444 with suffix wildcard4445 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4446 with surrounding wildcards4447 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4448 with a group4449 behaves like handling all the conditions4450 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4451 with lower case package name4452 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4453 with unknown package name4454 is expected to be empty4455 with an uninstallable package4456 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4457 with valid version4458 is expected to contain exactly #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4459 with unknown version4460 is expected to be empty4461 with limit hit4462 is expected to contain exactly #<Packages::Package id: 13, project_id: 1126, created_at: "2022-06-29 20:31:00.494460760 +0000", upda...ame: "NugetPackage1", version: "1.0.10", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 14, project_id: 1126, created_at: "2022-06-29 20:31:00.524245128 +0000", upda...ame: "NugetPackage1", version: "1.0.11", package_type: "nuget", creator_id: 2050, status: "default">4463 with downcase package name4464 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4465 with prefix wildcard4466 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4467 with suffix wildcard4468 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4469 with surrounding wildcards4470 is expected to contain exactly #<Packages::Package id: 1, project_id: 1126, created_at: "2022-06-29 20:30:50.949830000 +0000", updat...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 2050, status: "default"> and #<Packages::Package id: 2, project_id: 1126, created_at: "2022-06-29 20:30:51.063011842 +0000", updat...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 2050, status: "default">4471 with nil4472 is expected to be empty4473Gitlab::RelativePositioning::Range4474 infers neighbours correctly4475 RelativePositioning.range4476 raises if lhs and rhs are nil4477 raises an error if there is no extent4478 constructs a closed range when both termini are provided4479 constructs a starting-from range when only the LHS is provided4480 constructs an ending-at range when only the RHS is provided4481 #open_on_left?4482 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4483 is true if there is no LHS terminus4484 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false4485 is true if there is no LHS terminus4486 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4487 is true if there is no LHS terminus4488 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: false4489 is true if there is no LHS terminus4490 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4491 is true if there is no LHS terminus4492 #open_on_right?4493 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4494 is true if there is no RHS terminus4495 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false4496 is true if there is no RHS terminus4497 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4498 is true if there is no RHS terminus4499 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: true4500 is true if there is no RHS terminus4501 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false4502 is true if there is no RHS terminus4503 #cover?4504 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4505 is true when the object is within the bounds of the range4506 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true4507 is true when the object is within the bounds of the range4508 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true4509 is true when the object is within the bounds of the range4510 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4511 is true when the object is within the bounds of the range4512 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4513 is true when the object is within the bounds of the range4514 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4515 is true when the object is within the bounds of the range4516 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4517 is true when the object is within the bounds of the range4518 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4519 is true when the object is within the bounds of the range4520 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false4521 is true when the object is within the bounds of the range4522 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4523 is true when the object is within the bounds of the range4524 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true4525 is true when the object is within the bounds of the range4526 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true4527 is true when the object is within the bounds of the range4528 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4529 is true when the object is within the bounds of the range4530 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4531 is true when the object is within the bounds of the range4532 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4533 is true when the object is within the bounds of the range4534 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4535 is true when the object is within the bounds of the range4536 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4537 is true when the object is within the bounds of the range4538 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false4539 is true when the object is within the bounds of the range4540 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4541 is true when the object is within the bounds of the range4542 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true4543 is true when the object is within the bounds of the range4544 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true4545 is true when the object is within the bounds of the range4546 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4547 is true when the object is within the bounds of the range4548 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4549 is true when the object is within the bounds of the range4550 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4551 is true when the object is within the bounds of the range4552 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4553 is true when the object is within the bounds of the range4554 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4555 is true when the object is within the bounds of the range4556 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: nil, expected_result: false4557 is true when the object is within the bounds of the range4558 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4559 is true when the object is within the bounds of the range4560 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4561 is true when the object is within the bounds of the range4562 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false4563 is true when the object is within the bounds of the range4564 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: true4565 is true when the object is within the bounds of the range4566 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4567 is true when the object is within the bounds of the range4568 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4569 is true when the object is within the bounds of the range4570 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4571 is true when the object is within the bounds of the range4572 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4573 is true when the object is within the bounds of the range4574 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: nil, expected_result: false4575 is true when the object is within the bounds of the range4576 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false4577 is true when the object is within the bounds of the range4578 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true4579 is true when the object is within the bounds of the range4580 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false4581 is true when the object is within the bounds of the range4582 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4583 is true when the object is within the bounds of the range4584 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: true4585 is true when the object is within the bounds of the range4586 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4587 is true when the object is within the bounds of the range4588 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4589 is true when the object is within the bounds of the range4590 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4591 is true when the object is within the bounds of the range4592 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: nil, expected_result: false4593 is true when the object is within the bounds of the range4594Issues::ZoomLinkService4595 #add_link4596 without existing Zoom meeting4597 when updating an issue4598 appends the new meeting to zoom_meetings4599 tracks the add event4600 creates a zoom_link_added notification4601 issue is incident type4602 behaves like an incident management tracked event4603 .track_event4604 tracks the event using redis4605 with insufficient issue update permissions4606 cannot add the meeting4607 creates no notification4608 when creating an issue4609 creates a new zoom meeting4610 with insufficient issue create permissions4611 cannot add the meeting4612 creates no notification4613 with invalid Zoom url4614 cannot add the meeting4615 creates no notification4616 with "added" Zoom meeting4617 cannot add the meeting4618 creates no notification4619 with "added" Zoom meeting and race condition4620 cannot add the meeting4621 creates no notification4622 #can_add_link?4623 without "added" zoom meeting4624 is expected to eq true4625 with insufficient issue update permissions4626 is expected to eq false4627 with Zoom meeting in the issue description4628 is expected to eq false4629 #remove_link4630 with Zoom meeting4631 with existing issue4632 creates no notification4633 can remove the meeting4634 tracks the remove event4635 without existing issue4636 cannot remove the meeting4637 creates no notification4638 with insufficient issue update permissions4639 cannot remove the meeting4640 creates no notification4641 without "added" Zoom meeting4642 cannot remove the meeting4643 creates no notification4644 #can_remove_link?4645 without Zoom meeting4646 is expected to eq false4647 with only "removed" zoom meetings4648 is expected to eq false4649 with "added" Zoom meeting4650 is expected to eq true4651 with "removed" zoom meetings4652 is expected to eq true4653 with insufficient issue update permissions4654 is expected to eq false4655 #parse_link4656 with valid Zoom links4657 description: "Some text https://zoom.us/j/123456789 more text"4658 is expected to eq "https://zoom.us/j/123456789"4659 description: "Mixed https://zoom.us/j/123456789 http://example.com"4660 is expected to eq "https://zoom.us/j/123456789"4661 description: "Multiple link https://zoom.us/my/name https://zoom.us/j/123456789"4662 is expected to eq "https://zoom.us/j/123456789"4663 with invalid Zoom links4664 description: nil4665 is expected to eq nil4666 description: ""4667 is expected to eq nil4668 description: "Text only"4669 is expected to eq nil4670 description: "Non-Zoom http://example.com"4671 is expected to eq nil4672 description: "Almost Zoom http://zoom.us"4673 is expected to eq nil4674Gitlab::ImportExport::ImportFailureService4675 #log_import_failure4676 when importable is a group4677 behaves like log import failure4678 tracks error4679 saves data to ImportFailure4680 when importable is a project4681 behaves like log import failure4682 tracks error4683 saves data to ImportFailure4684 when ImportFailure does not support importable class4685 raise exception4686 #with_retry4687 when exceptions are retriable4688 exception: GRPC::DeadlineExceeded4689 when retry succeeds4690 retries and logs import failure once with correct params4691 when retry continues to fail with intermittent errors4692 retries the number of times allowed and raise exception4693 logs import failure each time and raise exception4694 exception: ActiveRecord::QueryCanceled4695 when retry succeeds4696 retries and logs import failure once with correct params4697 when retry continues to fail with intermittent errors4698 retries the number of times allowed and raise exception4699 logs import failure each time and raise exception4700 when exception is not retriable4701 raise the exception4702npm.gitlab-ci.yml4703 the created pipeline4704 on default branch4705 when package.json has been changed4706 behaves like publish job created4707 creates a pipeline with a single job: publish4708 when package.json does not exist or has not been changed4709 behaves like no pipeline created4710 does not create a pipeline because the only job (publish) is not created4711 when the branch name is v1.0.04712 behaves like publish job created4713 creates a pipeline with a single job: publish4714 when the tag name is v1.0.04715 behaves like publish job created4716 creates a pipeline with a single job: publish4717 when the branch name is v2.1.0-alpha4718 behaves like publish job created4719 creates a pipeline with a single job: publish4720 when the tag name is v2.1.0-alpha4721 behaves like publish job created4722 creates a pipeline with a single job: publish4723 when the branch name is patch-14724 behaves like no pipeline created4725 does not create a pipeline because the only job (publish) is not created4726 when the tag name is patch-14727 behaves like no pipeline created4728 does not create a pipeline because the only job (publish) is not created4729 when the branch name is my-feature-branch4730 behaves like no pipeline created4731 does not create a pipeline because the only job (publish) is not created4732 when the tag name is my-feature-branch4733 behaves like no pipeline created4734 does not create a pipeline because the only job (publish) is not created4735 when the branch name is v14736 behaves like no pipeline created4737 does not create a pipeline because the only job (publish) is not created4738 when the tag name is v14739 behaves like no pipeline created4740 does not create a pipeline because the only job (publish) is not created4741 when the branch name is v1.04742 behaves like no pipeline created4743 does not create a pipeline because the only job (publish) is not created4744 when the tag name is v1.04745 behaves like no pipeline created4746 does not create a pipeline because the only job (publish) is not created4747 when the branch name is 2.1.04748 behaves like no pipeline created4749 does not create a pipeline because the only job (publish) is not created4750 when the tag name is 2.1.04751 behaves like no pipeline created4752 does not create a pipeline because the only job (publish) is not created4753Mutations::Issues::Update4754 is expected to require graphql authorizations :update_issue4755 #resolve4756 behaves like permission level for issue mutation is correctly verified4757 when the user is not a project member4758 behaves like when the user does not have access to the resource4759 raises an error4760 even if assigned to the issue4761 does not modify issue4762 even if author of the issue4763 does not modify issue4764 when the user is a project member4765 with guest role4766 behaves like when the user does not have access to the resource4767 raises an error4768 even if assigned to the issue4769 does not modify issue4770 even if author of the issue4771 does not modify issue4772 when the user can update the issue4773 updates issue with correct values4774 when iid does not exist4775 raises resource not available error4776 when setting milestone to nil4777 changes the milestone corrrectly4778 when changing state4779 closes issue4780 reopens issue4781 when changing labels4782 adds and removes labels correctly4783 does not add label if label id is nil4784 does not add label if label is not found4785 does not modify labels if label is already present4786 does not modify labels if label is addded and removed in the same request4787 when setting labels with label_ids4788 replaces existing labels with provided ones4789 raises error when label_ids is combined with remove_label_ids4790 raises error when label_ids is combined with add_label_ids4791 when changing type4792 changes the type of the issue4793MergeRequests::LinkLfsObjectsService4794 when no oldrev and newrev passed4795 behaves like linking LFS objects4796 when source project is the same as target project4797 does not call Projects::LfsPointers::LfsLinkService#execute4798 when source project is different from target project4799 and there are changes4800 and there are LFS objects added4801 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request4802 but there are no LFS objects added4803 does not call Projects::LfsPointers::LfsLinkService#execute4804 and there are no changes4805 does not call Projects::LfsPointers::LfsLinkService#execute4806 when oldrev and newrev are passed4807 behaves like linking LFS objects4808 when source project is the same as target project4809 does not call Projects::LfsPointers::LfsLinkService#execute4810 when source project is different from target project4811 and there are changes4812 and there are LFS objects added4813 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request4814 but there are no LFS objects added4815 does not call Projects::LfsPointers::LfsLinkService#execute4816 and there are no changes4817 does not call Projects::LfsPointers::LfsLinkService#execute4818Issuable::Clone::AttributesRewriter4819 setting labels4820 sets labels present in the new project and group labels4821 does not set any labels when not used on the original issue4822 copies the resource label events4823 setting milestones4824 sets milestone to nil when old issue milestone is not in the new project4825 copies the milestone when old issue milestone title is in the new project4826 copies the milestone when old issue milestone is a group milestone4827 with existing milestone events4828 copies existing resource milestone events4829 with existing state events4830 copies existing state events as expected4831MergeRequestDiffFile4832 behaves like a BulkInsertSafe model4833 when calling class methods directly4834 raises an error when method is not bulk-insert safe4835 does not raise an error when method is bulk-insert safe4836 .bulk_insert!4837 when all items are valid4838 inserts them all4839 returns an empty array4840 when some items are invalid4841 does not insert any of them and raises an error4842 inserts them anyway when bypassing validations4843 #diff4844 when diff is not stored4845 when the diff is marked as binary4846 unpacks from base 644847 invalid base644848 returns the raw diff4849 when the diff is not marked as binary4850 returns the raw diff4851 when diff is stored in DB4852 returns UTF-8 string4853 when diff is stored in external storage4854 returns UTF-8 string4855 #utf8_diff4856 does not raise error when the diff is binary4857 calls #diff once4858DesignManagement::SaveDesignsService4859 #execute4860 when the feature is not available4861 does not create an event in the activity stream4862 behaves like a service error4863 returns an error4864 when the feature is available4865 creates a commit, an event in the activity stream and updates the creation count4866 can run the same command in parallel4867 repository existence4868 is ensured when the service runs4869 when the design collection is in the process of being copied4870 behaves like a service error4871 returns an error4872 when the design collection has a copy error4873 resets the copy state4874 the response4875 includes designs with the expected properties4876 saving the file to LFS4877 saves the design to LFS and saves the repository_type of the LfsObjectsProject as design4878 when HEAD branch is different from master4879 does not raise an exception during update4880 when a design is being updated4881 creates a new version for the existing design and updates the file4882 updates UsageData for changed designs4883 records the correct events4884 when uploading a new design4885 does not link the new version to the existing design4886 when a design has not changed since its previous version4887 does not create a new version, and returns the design in `skipped_designs`4888 when doing a mixture of updates and creations4889 has the correct side-effects4890 when uploading multiple files4891 returns information about both designs in the response4892 has the correct side-effects4893 when uploading too many files4894 returns the correct error4895 when uploading duplicate files4896 returns the correct error4897 when the user is not allowed to upload designs4898 behaves like a service error4899 returns an error4900 failure modes4901 when creating the commit fails4902 behaves like an execution error4903 returns an error4904 when creating the versions fails4905 behaves like a service error4906 returns an error4907 when a design already existed in the repo but we didn't know about it in the database4908 creates the design and a new version for it4909 scalability4910 runs the same queries for all requests, regardless of number of files (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/213169)4911gitlab:user_management tasks4912 disable_project_and_group_creation4913 returns output info4914 with users4915 in the group4916 behaves like updates proper users4917 updates members4918 does not update other users4919 in the descendant groups4920 behaves like updates proper users4921 updates members4922 does not update other users4923 in the children projects4924 behaves like updates proper users4925 updates members4926 does not update other users4927DiffDiscussion4928 #reply_attributes4929 includes position and original_position4930 #merge_request_version_params4931 when the discussion is active4932 returns an empty hash, which will end up showing the latest version4933 when the discussion is on an older merge request version4934 when commit_id is not present4935 returns the diff ID for the version to show4936 when commit_id is present4937 includes the commit_id in the result4938 when the discussion is on a comparison between merge request versions4939 when commit_id is not present4940 returns the diff ID and start sha of the versions to compare4941 when commit_id is present4942 includes the commit_id in the result4943 when the discussion does not have a merge request version4944 when commit_id is not present4945 returns empty hash4946 when commit_id is present4947 returns the commit_id4948 #cache_key4949 returns the cache key with the position sha4950 when first note of discussion has diff_note_position4951 includes sha of diff_note_positions position4952Ci::SecureFile4953 is expected to be a kind of FileStoreMounter4954 is expected to belong to project required: true4955 behaves like includes Limitable concern4956 #exceeds_limits?4957 without plan limits configured4958 is expected to eq false4959 without plan limits configured4960 is expected to eq false4961 with an existing model4962 is expected to eq true4963 validations4964 is expected to be a kind of Limitable4965 without plan limits configured4966 can create new models4967 with plan limits configured4968 can create new models4969 with an existing model4970 cannot create new models exceeding the plan limits4971 validations4972 is expected to validate that :checksum cannot be empty/falsy4973 is expected to validate that :file_store cannot be empty/falsy4974 is expected to validate that :name cannot be empty/falsy4975 is expected to validate that :project_id cannot be empty/falsy4976 unique filename4977 ensures the file name is unique within a given project4978 allows duplicate file names in different projects4979 ordered scope4980 returns the newest item first4981 #checksum4982 computes SHA256 checksum on the file before encrypted4983 #checksum_algorithm4984 returns the configured checksum_algorithm4985 #file4986 returns the saved file4987Ci::ArchiveTraceService#execute4988 when job is finished4989 creates an archived trace4990 integration hooks4991 is expected not to raise Exception4992 with feature flag disabled4993 when trace is already archived4994 ignores an exception4995 does not create an archived trace4996 when live trace chunks still exist4997 removes the trace chunks4998 when associated data does not exist4999 removes the trace artifact and builds a new one5000 when job does not have trace5001 leaves a warning message in sidekiq log5002 when the job is out of archival attempts5003 skips archiving5004 leaves a warning message in sidekiq log5005 job has archive and chunks5006 removes trace chunks5007 archive is not completed5008 cleanups any stale archive data5009 when the archival process is backed off5010 skips archiving5011 leaves a warning message in sidekiq log5012 when job failed to archive trace but did not raise an exception5013 leaves a warning message in sidekiq log5014 when job is running5015 increments Prometheus counter, sends crash report to Sentry and ignore an error for continuing to archive5016Gitlab::Ci::Trace::Checksum5017 when build pending state exists5018 when matching persisted trace chunks exist5019 calculates combined trace chunks CRC32 correctly5020 when trace chunks were persisted in a wrong order5021 makes trace checksum invalid but not corrupted5022 when one of the trace chunks is missing5023 makes trace checksum invalid and corrupted5024 when checksums of persisted trace chunks do not match5025 makes trace checksum invalid but not corrupted5026 when persisted trace chunks are missing5027 makes trace checksum invalid5028 when build pending state is missing5029 #state_crc325030 returns nil5031 #valid?5032 is expected not to be valid5033 #trace_chunks5034 does not load raw_data from a database store5035 #last_chunk5036 when there are no chunks5037 returns nil5038 is not a valid trace5039 is not a corrupted trace5040 when there are multiple chunks5041 returns chunk with the highest index5042 is not a valid trace5043 is not a corrupted trace5044 #trace_size5045 returns total trace size in bytes5046Projects::HashedStorage::RollbackRepositoryService5047 #execute5048 works even when project validation fails5049 repository lock5050 tries to lock the repository5051 fails when a git operation is in progress5052 when repository doesnt exist on disk5053 skips the disk change but decrease the version5054 when succeeds5055 renames project, wiki and design repositories5056 updates project to be legacy and not read-only5057 move operation is called for both repositories5058 writes project full path to .git/config5059 when exception happens5060 handles OpenSSL::Cipher::CipherError5061 ensures rollback when OpenSSL::Cipher::CipherError5062 handles Gitlab::Git::CommandError5063 ensures rollback when Gitlab::Git::CommandError5064 when one move fails5065 rolls repositories back to original name5066 when rollback fails5067 does not try to move nil repository over existing5068CreateCommitSignatureWorker5069 when a signature is found5070 calls Gitlab::Gpg::Commit#signature5071 can recover from exception and continue the signature process5072 calls Gitlab::X509::Commit#signature5073 can recover from exception and continue the X509 signature process5074 behaves like an idempotent worker5075 is labeled as idempotent5076 performs multiple times sequentially without raising an exception5077 handles when a string is passed in for the commit SHA5078 creates a signature once5079 when Commit is not found5080 does not raise errors5081 when Project is not found5082 does not raise errors5083 does not call Gitlab::Gpg::Commit#signature5084 does not call Gitlab::X509::Commit#signature5085 fetching signatures5086 X5095087 performs a single query for commit signatures5088 PGP5089 performs a single query for commit signatures5090Integrations::MattermostSlashCommands5091 behaves like Integrations::BaseSlashCommands5092 Associations5093 is expected to respond to #token5094 is expected to have many chat_names5095 #valid_token?5096 when the token is empty5097 is false5098 when there is a token5099 accepts equal tokens5100 #trigger5101 no token is passed5102 returns nil5103 with a token passed5104 no user can be found5105 when no url can be generated5106 responds with the authorize url5107 when an auth url can be generated5108 generates the url5109 when the user is authenticated5110 triggers the command5111 when user is blocked5112 behaves like blocks command execution5113 is expected to match "you do not have access to the GitLab project"5114 when user is deactivated5115 behaves like blocks command execution5116 is expected to match "your account has been deactivated by your administrator"5117 Mattermost API5118 #configure5119 when the request succeeds5120 saves the integration5121 saves the token5122 when an error is received5123 shows error messages5124 #list_teams5125 when the request succeeds5126 returns a list of teams5127 when an error is received5128 shows error messages5129 #chat_responder5130 returns the responder to use for Mattermost5131Packages::Maven::Metadata::SyncService5132 #execute5133 permissions5134 role: :anonymous, expected_result: :rejected5135 behaves like returning an error service response5136 returns an error service response5137 role: :developer, expected_result: :rejected5138 behaves like returning an error service response5139 returns an error service response5140 role: :maintainer, expected_result: :accepted5141 behaves like returning a success service response5142 returns a success service response5143 with a maintainer5144 with a jar package5145 with no changes5146 behaves like returning a success service response5147 returns a success service response5148 with changes5149 behaves like returning a success service response5150 returns a success service response5151 with empty versions5152 behaves like returning a success service response5153 returns a success service response5154 with a too big maven metadata file for versions5155 behaves like returning an error service response5156 returns an error service response5157 an error from the create versions xml service5158 behaves like returning an error service response5159 returns an error service response5160 an error from the append package file service5161 behaves like returning an error service response5162 returns an error service response5163 without a package name5164 behaves like returning an error service response5165 returns an error service response5166 without a versionless package for version5167 behaves like returning a success service response5168 returns a success service response5169 without a metadata package file for versions5170 behaves like returning a success service response5171 returns a success service response5172 without a project5173 behaves like returning an error service response5174 returns an error service response5175 with a maven plugin package5176 with no changes5177 behaves like returning a success service response5178 returns a success service response5179 with changes in the versions xml5180 behaves like returning a success service response5181 returns a success service response5182 with changes in the plugin xml5183 behaves like returning a success service response5184 returns a success service response5185 with empty versions5186 behaves like returning a success service response5187 returns a success service response5188 with a too big maven metadata file for plugins5189 behaves like returning an error service response5190 returns an error service response5191 an error from the create versions xml service5192 behaves like returning an error service response5193 returns an error service response5194 an error from the append package file service5195 behaves like returning an error service response5196 returns an error service response5197 without a versionless package for plugins5198 behaves like returning a success service response5199 returns a success service response5200 without a versionless package for versions5201 behaves like returning a success service response5202 returns a success service response5203 without a metadata package file for plugins5204 behaves like returning a success service response5205 returns a success service response5206ProjectFeatureUsage5207 .jira_dvcs_integrations_enabled_count5208 returns count of projects with Jira DVCS Cloud enabled5209 returns count of projects with Jira DVCS Server enabled5210 #log_jira_dvcs_integration_usage5211 when the feature usage has not been created yet5212 logs Jira DVCS Cloud last sync5213 logs Jira DVCS Server last sync5214 when the feature usage already exists5215 cloud: true, timestamp_field: :jira_dvcs_cloud_last_sync_at5216 when Jira DVCS Cloud last sync has not been logged5217 logs Jira DVCS Cloud last sync5218 when Jira DVCS Cloud last sync was logged today5219 does not log Jira DVCS Cloud last sync5220 when Jira DVCS Cloud last sync was logged yesterday5221 logs Jira DVCS Cloud last sync5222 cloud: false, timestamp_field: :jira_dvcs_server_last_sync_at5223 when Jira DVCS Cloud last sync has not been logged5224 logs Jira DVCS Cloud last sync5225 when Jira DVCS Cloud last sync was logged today5226 does not log Jira DVCS Cloud last sync5227 when Jira DVCS Cloud last sync was logged yesterday5228 logs Jira DVCS Cloud last sync5229 when log_jira_dvcs_integration_usage is called simultaneously for the same project5230 logs the latest call5231 ProjectFeatureUsage with DB Load Balancing5232 #log_jira_dvcs_integration_usage5233 database load balancing is configured5234 logs Jira DVCS Cloud last sync5235 does not stick to primary5236 database load balancing is not cofigured5237 logs Jira DVCS Cloud last sync5238Types::MergeRequestType5239 is expected to expose permissions using Types::PermissionTypes::MergeRequest5240 is expected to require graphql authorizations :read_merge_request5241 is expected to include Types::Notes::NoteableInterface5242 is expected to include Types::CurrentUserTodos5243 is expected to include Types::TodoableInterface5244 has the expected fields5245 #pipelines5246 is expected to have attributes {:max_page_size => 500}5247 #diff_stats_summary5248 when MR metrics has additions and deletions5249 pulls out data from metrics object5250 #diverged_from_target_branch5251 delegates the diverged_from_target_branch? call to the merge request entity5252 merge_status_enum5253 has the type MergeStatus5254 when the the DB value is preparing5255 serializes correctly5256 when the the DB value is unchecked5257 serializes correctly5258 when the the DB value is cannot_be_merged_recheck5259 serializes correctly5260 when the the DB value is checking5261 serializes correctly5262 when the the DB value is cannot_be_merged_rechecking5263 serializes correctly5264 when the the DB value is can_be_merged5265 serializes correctly5266 when the the DB value is cannot_be_merged5267 serializes correctly5268 #merge_user5269 when MR is merged5270 is not nil5271 when MR is set to merge when pipeline succeeds5272 is not nil5273Mutations::Issues::Create5274 is expected to require graphql authorizations :create_issue5275 #resolve5276 when the user does not have permission to create an issue5277 raises an error5278 when the user has exceeded the rate limit5279 raises an error5280 when the user can create an issue5281 when creating an issue a developer5282 creates issue with correct values5283 when passing in label_ids5284 creates issue with correct values5285 when trying to create issue with restricted params5286 ignores the special params5287 when creating a non-default issue type5288 creates issue with correct values5289 when creating an issue as owner5290 sets the special params5291 #ready?5292 when passing in both labels and label_ids5293 raises exception when mutually exclusive params are given5294 when passing only `discussion_to_resolve` param5295 raises exception when mutually exclusive params are given5296 when passing only `merge_request_to_resolve_discussions_of` param5297 raises exception when mutually exclusive params are given5298TodosHelper5299 #todos_count_format5300 shows fuzzy count for 100 or more items5301 shows exact count for 99 or fewer items5302 #todo_target_link5303 when given a design5304 produces a good link5305 #todo_target_title5306 when the target does not exist5307 returns an empty string5308 when given a design todo5309 returns an empty string5310 when given a non-design todo5311 returns the title5312 #todo_target_path5313 when given a design5314 responds with an appropriate path5315 when given an alert5316 responds with an appropriate path5317 #todo_target_type_name5318 when given a design todo5319 responds with an appropriate target type name5320 when given an alert todo5321 responds with an appropriate target type name5322 #todo_types_options5323 includes a match for a design todo5324 #todo_target_state_pill5325 merge request todo5326 behaves like no state pill5327 is expected to eq nil5328 closed MR5329 behaves like a rendered state pill5330 returns expected html5331 merged MR5332 behaves like a rendered state pill5333 returns expected html5334 issue todo5335 behaves like no state pill5336 is expected to eq nil5337 closed issue5338 behaves like a rendered state pill5339 returns expected html5340 alert todo5341 behaves like no state pill5342 is expected to eq nil5343 resolved alert5344 behaves like a rendered state pill5345 returns expected html5346 #todo_author_display?5347 action: 3, result: false5348 is expected to eq false5349 action: 6, result: false5350 is expected to eq false5351 action: 1, result: true5352 is expected to eq true5353git_http routing5354 code repositories5355 behaves like git repository routes5356 routes Git endpoints5357 routes LFS endpoints5358 requests without .git format5359 redirects requests to /info/refs5360 behaves like git repository routes with fallback for git-upload-pack5361 routes LFS endpoints for unmatched routes5362 requests without .git format5363 does not redirect other requests5364 wiki repositories5365 in project5366 behaves like git repository routes5367 routes Git endpoints5368 routes LFS endpoints5369 requests without .git format5370 redirects requests to /info/refs5371 behaves like git repository routes with fallback for git-upload-pack5372 routes LFS endpoints for unmatched routes5373 requests without .git format5374 does not redirect other requests5375 redirects5376 redirects namespace/project.wiki.git to the project wiki5377 preserves query parameters5378 only redirects when the format is .git5379 in toplevel group5380 behaves like git repository routes5381 routes Git endpoints5382 routes LFS endpoints5383 requests without .git format5384 redirects requests to /info/refs5385 behaves like git repository routes with fallback for git-upload-pack5386 routes LFS endpoints for unmatched routes5387 requests without .git format5388 does not redirect other requests5389 in child group5390 behaves like git repository routes5391 routes Git endpoints5392 routes LFS endpoints5393 requests without .git format5394 redirects requests to /info/refs5395 behaves like git repository routes with fallback for git-upload-pack5396 routes LFS endpoints for unmatched routes5397 requests without .git format5398 does not redirect other requests5399 snippet repositories5400 personal snippet5401 behaves like git repository routes5402 routes Git endpoints5403 routes LFS endpoints5404 requests without .git format5405 redirects requests to /info/refs5406 behaves like git repository routes without fallback5407 routes LFS endpoints for unmatched routes5408 requests without .git format5409 does not redirect other requests5410 project snippet5411 behaves like git repository routes5412 routes Git endpoints5413 routes LFS endpoints5414 requests without .git format5415 redirects requests to /info/refs5416 behaves like git repository routes with fallback5417 routes LFS endpoints5418 requests without .git format5419 does not redirect other requests5420ReleaseHighlight5421 .paginated5422 with page param5423 when there is another page of results5424 responds with paginated results5425 when there is NOT another page of results5426Skipping ./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.5427 responds with paginated results and no next_page (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)5428 when that specific page does not exist5429 returns nil5430 with no page param5431 uses multiple levels of cache5432 returns platform specific items5433 parses the body as markdown and returns html, and links are target="_blank"5434 logs an error if theres an error parsing markdown for an item, and skips it5435 when Gitlab.com5436 responds with a different set of data5437 YAML parsing throws an exception5438 fails gracefully and logs an error5439 .most_recent_item_count5440 uses process memory cache5441 when recent release items exist5442 returns the count from the most recent file5443 when recent release items do NOT exist5444 returns nil5445 .most_recent_version_digest5446 uses process memory cache5447 when recent release items exist5448 returns a digest from the release of the first item of the most recent file5449 when recent release items do NOT exist5450 returns nil5451 .load_items5452 whats new for all tiers5453 returns all items5454 whats new for current tier only5455 returns items with package=Free5456 QueryResult5457 responds to map5458 .current_package5459 returns Free5460 .file_paths5461 joins relative file paths with the root path to avoid caching the root url5462ci/status/_icon5463 when rendering status for build5464 when user has ability to see details5465 has link to build details page5466 when user do not have ability to see build details5467 contains build status text5468 does not contain links5469 when rendering status for external job5470 when user has ability to see commit status details5471 status has external target url5472 contains valid commit status text5473 has link to external status page5474 status do not have external target url5475 contains valid commit status text5476 has link to external status page5477Clusters::Agents::RefreshAuthorizationService5478 #execute5479 group authorization5480 refreshes authorizations for the agent5481 config contains too many groups5482 authorizes groups up to the limit5483 config contains no groups5484 removes all authorizations5485 config contains groups outside of the configuration project hierarchy5486 removes all authorizations5487 configuration project does not belong to a group5488 removes all authorizations5489 project authorization5490 refreshes authorizations for the agent5491 project does not belong to a group, and is authorizing itself5492 creates an authorization record for the project5493 config contains too many projects5494 authorizes projects up to the limit5495 config contains no groups5496 removes all authorizations5497 config contains groups outside of the configuration project hierarchy5498 removes all authorizations5499 configuration project does not belong to a group5500 removes all authorizations5501MergeRequests::OldestPerCommitFinder5502 #execute5503 returns a Hash mapping commit SHAs to their oldest merge requests5504 skips merge requests that are not merged5505 includes the merge request for a merge commit5506 includes a merge request that was squashed into the target branch5507 includes a merge request for both a squash and merge commit5508 includes the oldest merge request when a merge commit is present in a newer merge request5509gitlab:smtp:secret rake tasks5510 :show5511 displays error when file does not exist5512 displays error when key does not exist5513 displays error when key is changed5514 outputs the unencrypted content when present5515 edit5516# password: '123'5517# user_name: 'gitlab-inst'5518 creates encrypted file5519 displays error when key does not exist5520 displays error when key is changed5521 displays error when write directory does not exist5522somevalue shows a warning when content is invalid5523 displays error when $EDITOR is not set5524 write5525 creates encrypted file from stdin5526 displays error when key does not exist5527 displays error when write directory does not exist5528somevalue shows a warning when content is invalid5529ProjectHook5530 associations5531 is expected to belong to project required: false5532 validations5533 is expected to validate that :project cannot be empty/falsy5534 behaves like includes Limitable concern5535 #exceeds_limits?5536 without plan limits configured5537 is expected to eq false5538 without plan limits configured5539 is expected to eq false5540 with an existing model5541 is expected to eq true5542 validations5543 is expected to be a kind of Limitable5544 without plan limits configured5545 can create new models5546 with plan limits configured5547 can create new models5548 with an existing model5549 cannot create new models exceeding the plan limits5550 .push_hooks5551 returns hooks for push events only5552 .tag_push_hooks5553 returns hooks for tag push events only5554 #parent5555 returns the associated project5556 #application_context5557 includes the type and project5558InviteMembersHelper5559 #common_invite_group_modal_data5560 has expected common attributes5561 when sharing with groups outside the hierarchy is disabled5562 provides the correct attributes5563 when sharing with groups outside the hierarchy is enabled5564 does not return filter attributes5565 #common_invite_modal_dataset5566 has expected common attributes5567 tasks_to_be_done5568 inviting members for tasks5569 open_modal_param_present?: true, logged_in?: true, expected?: true5570 when the source is a project5571 behaves like including the tasks to be done attributes5572 includes the tasks to be done attributes when expected5573 when the source is a group5574 behaves like including the tasks to be done attributes5575 includes the tasks to be done attributes when expected5576 open_modal_param_present?: true, logged_in?: false, expected?: false5577 when the source is a project5578 behaves like including the tasks to be done attributes5579 includes the tasks to be done attributes when expected5580 when the source is a group5581 behaves like including the tasks to be done attributes5582 includes the tasks to be done attributes when expected5583 open_modal_param_present?: false, logged_in?: true, expected?: false5584 when the source is a project5585 behaves like including the tasks to be done attributes5586 includes the tasks to be done attributes when expected5587 when the source is a group5588 behaves like including the tasks to be done attributes5589 includes the tasks to be done attributes when expected5590 open_modal_param_present?: false, logged_in?: false, expected?: false5591 when the source is a project5592 behaves like including the tasks to be done attributes5593 includes the tasks to be done attributes when expected5594 when the source is a group5595 behaves like including the tasks to be done attributes5596 includes the tasks to be done attributes when expected5597 the invite_for_help_continuous_onboarding experiment5598 invite_for_help_continuous_onboarding?: true, logged_in?: true, expected?: true5599 when the source is a project5600 behaves like including the tasks to be done attributes5601 includes the tasks to be done attributes when expected5602 when the source is a group5603 behaves like including the tasks to be done attributes5604 includes the tasks to be done attributes when expected5605 invite_for_help_continuous_onboarding?: true, logged_in?: false, expected?: false5606 when the source is a project5607 behaves like including the tasks to be done attributes5608 includes the tasks to be done attributes when expected5609 when the source is a group5610 behaves like including the tasks to be done attributes5611 includes the tasks to be done attributes when expected5612 invite_for_help_continuous_onboarding?: false, logged_in?: true, expected?: false5613 when the source is a project5614 behaves like including the tasks to be done attributes5615 includes the tasks to be done attributes when expected5616 when the source is a group5617 behaves like including the tasks to be done attributes5618 includes the tasks to be done attributes when expected5619 invite_for_help_continuous_onboarding?: false, logged_in?: false, expected?: false5620 when the source is a project5621 behaves like including the tasks to be done attributes5622 includes the tasks to be done attributes when expected5623 when the source is a group5624 behaves like including the tasks to be done attributes5625 includes the tasks to be done attributes when expected5626 with project5627 #can_invite_members_for_project?5628 when the user can_admin_project_member5629 returns true5630 when the user can not manage project members5631 returns false5632Gitlab::GitalyClient::BlobService5633 #get_new_lfs_pointers5634 sends a get_new_lfs_pointers message5635 with not_in = :all5636 sends the correct message5637 with hook environment5638 sends a list_all_lfs_pointers message5639 #get_all_lfs_pointers5640 sends a get_all_lfs_pointers message5641 #list_blobs5642 with a single revision5643 sends a list_blobs message5644 with multiple revisions5645 sends a list_blobs message5646 with multiple revisions and limits5647 sends a list_blobs message5648 with paths5649 sends a list_blobs message5650 with split contents5651 sends a list_blobs message5652Issues::ReorderService5653 #execute5654 when ordering issues in a project5655 behaves like issues reorder service5656 when reordering issues5657 returns false with no params5658 returns false with both invalid params5659 sorts issues5660 sorts issues if only given one neighbour, on the left5661 sorts issues if only given one neighbour, on the right5662 when ordering issues in a group5663 behaves like issues reorder service5664 when reordering issues5665 returns false with no params5666 returns false with both invalid params5667 sorts issues5668 sorts issues if only given one neighbour, on the left5669 sorts issues if only given one neighbour, on the right5670 when ordering in a group issue list5671 sorts issues5672JiraImport::StartImportService5673 when an error is returned from the project validation5674 behaves like responds with error5675 returns error5676 when project validation is ok5677 when Jira project key is not provided5678 behaves like responds with error5679 returns error5680 when correct data provided5681 when import is already running5682 behaves like responds with error5683 returns error5684 when an error is raised while scheduling import5685 saves the error message5686 behaves like responds with error5687 returns error5688 when everything is ok5689 with complete mapping5690 returns success response5691 schedules Jira import5692 creates Jira import data5693 creates Jira import label5694 creates Jira label title with correct number5695 when mapping is nil5696 returns success response5697 when no mapping value is complete5698 returns success response5699 when multiple Jira imports for same Jira project5700 creates Jira label title with correct number5701Gitlab::ImportExport::FileImporter5702 normal run5703 removes symlinks in root folder5704 removes hidden symlinks in root folder5705 removes evil symlinks in root folder5706 removes symlinks in subfolders5707 removes symlinks without any file permissions5708 does not remove a valid file5709 does not change a valid file permissions5710 creates the file in the right subfolder5711 when the import file is not remote5712 downloads the file from a remote object storage5713 when the import file is remote5714 downloads the file from a remote object storage5715 error5716 removes symlinks in root folder5717 removes hidden symlinks in root folder5718 removes symlinks in subfolders5719 does not remove a valid file5720 when file exceeds acceptable decompressed size5721 when validate_import_decompressed_archive_size feature flag is enabled5722 returns false5723 when validate_import_decompressed_archive_size feature flag is disabled5724 skips validation5725Pages::LookupPath5726 #project_id5727 delegates to Project#id5728 #access_control5729 delegates to Project#private_pages?5730 #https_only5731 when no domain provided5732 delegates to Project#pages_https_only?5733 when there is domain provided5734 takes into account the https setting of the domain5735 #source5736 returns nil5737 when there is pages deployment5738 uses deployment from object storage5739 when deployment is in the local storage5740 uses file protocol5741 when deployment were created during migration5742 uses deployment from object storage5743 #prefix5744 returns "/" for pages group root projects5745 returns the project full path with the provided prefix removed5746Deployments::UpdateEnvironmentWorker5747 when successful deployment5748 executes Deployments::UpdateEnvironmentService5749 when canceled deployment5750 does not execute Deployments::UpdateEnvironmentService5751 when deploy record does not exist5752 does not execute Deployments::UpdateEnvironmentService5753 idempotent5754 is labeled as idempotent5755 performs multiple times sequentially without raising an exception5756 updates merge requests metrics5757MergeRequests::BulkRemoveAttentionRequestedService5758 #execute5759 invalid permissions5760 returns an error5761 updates reviewers and assignees5762 returns success5763 updates reviewers state5764 behaves like invalidates attention request cache5765 invalidates the merge requests requiring attention count5766Gitlab::DeployKeyAccess5767 #can_create_tag?5768 push tag that matches a protected tag pattern via a deploy key5769 still pushes that tag5770 #can_push_for_ref?5771 push to a protected branch of this project via a deploy key5772 when the project has active deploy key owned by this user5773 returns true5774 when the project has active deploy keys, but not by this user5775 returns false5776 when there is another branch no one can push to5777 returns false when trying to push to that other branch5778 and the deploy key added for the first protected branch is also added for this other branch5779 returns true for both protected branches5780WikiPages::CreateService5781 behaves like WikiPages::CreateService#execute5782DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5783 creates wiki page with valid attributes5784 executes webhooks5785DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5786 counts wiki page creation5787 the new page is at the top level5788DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5789 creates appropriate events5790 the new page is in a subsection5791DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 6.2. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from wiki_event at /builds/gitlab-org/gitlab/app/services/event_create_service.rb:151)5792 creates appropriate events5793 when the options are bad5794 does not count a creation event5795 does not record the activity5796 reports the error5797 #execute5798 when wiki create fails due to git error5799 catches the thrown error and returns a ServiceResponse error5800Resolvers::Clusters::AgentTokensResolver5801 is expected to eq Types::Clusters::AgentTokenType5802 is expected to be truthy5803 is expected to contain exactly "status"5804 #resolve5805 returns tokens associated with the agent, ordered by last_used_at5806 token status is specified5807 is expected to contain exactly #<Clusters::AgentToken id: 7, created_at: "2022-06-29 20:37:14.098112217 +0000", updated_at: "2022-06...ted_by_user_id: 2502, description: nil, name: "agent-token-7", last_used_at: nil, status: "revoked">5808 user does not have permission5809 is expected to be empty5810LfsObject5811 has a distinct has_many :projects relation through lfs_objects_projects5812 scopes5813 .not_existing_in_project5814 contains only lfs objects not linked to the project5815 .for_oids5816 returns the correct LfsObjects5817 #local_store?5818 returns true when file_store is equal to LfsObjectUploader::Store::LOCAL5819 returns false when file_store is equal to LfsObjectUploader::Store::REMOTE5820 #project_allowed_access?5821 returns true when project is linked5822 returns false when project is not linked5823 when project is a member of a fork network5824 returns true for all members when forked project is linked5825 returns true for all members when root of network is linked5826 returns false when no member of fork network is linked5827 #schedule_background_upload5828 when object storage is disabled5829 does not schedule the migration5830 when object storage is enabled5831 when background upload is enabled5832 when is licensed5833 schedules the model for migration5834 schedules the model for migration once5835 when background upload is disabled5836 schedules the model for migration5837 file is being stored5838 when existing object has local store5839 behaves like mounted file in local store5840 is stored locally5841 when direct upload is enabled5842 behaves like mounted file in object store5843 is stored remotely5844 .calculate_oid5845 returns SHA256 sum of the file5846 when an lfs object is associated with a project5847 cannot be deleted5848 .unreferenced_in_batches5849 returns lfs objects in batches5850Gitlab::Ci::Pipeline::Expression::Lexer5851 #tokens5852 returns single value5853 does ignore whitespace characters5854 returns multiple values of the same token5855 returns multiple values with different tokens5856 returns tokens and operators5857 limits statement to specified amount of tokens5858 raises syntax error in case of finding unknown tokens5859 with complex expressions5860 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5861 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5862 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]5863 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]5864 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]5865 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]5866 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]5867 is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]5868 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]5869 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]5870 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]5871 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]5872 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]5873 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]5874 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]5875 is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]5876 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]5877 is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]5878 with parentheses are used5879 expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5880 is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]5881 expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]5882 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]5883 expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]5884 is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]5885 #lexemes5886 returns an array of syntax lexemes5887Gitlab::TemplateParser::AST::Identifier5888 #evaluate5889 evaluates a selector5890 returns nil if the key is not set5891 returns nil if the input is not a Hash5892 returns the current data when using the special identifier "it"5893Gitlab::TemplateParser::AST::Integer5894 #evaluate5895 evaluates a selector5896 returns nil if the index is not set5897 returns nil if the input is not an Array5898Gitlab::TemplateParser::AST::Selector5899 #evaluate5900 evaluates a selector5901 evaluates a selector that returns nil5902Gitlab::TemplateParser::AST::Variable5903 #evaluate5904 evaluates a variable5905 evaluates an undefined variable5906 evaluates the special variable "it"5907Gitlab::TemplateParser::AST::Expressions5908 #evaluate5909 evaluates all expressions5910Gitlab::TemplateParser::AST::Text5911 #evaluate5912 returns the text5913Gitlab::TemplateParser::AST::If5914 #evaluate5915 evaluates a truthy if expression without an else clause5916 evaluates a falsy if expression without an else clause5917 evaluates a falsy if expression with an else clause5918 #truthy?5919 returns true for a non-empty String5920 returns true for a non-empty Array5921 returns true for a Boolean true5922 returns false for an empty String5923 returns true for an empty Array5924 returns false for a Boolean false5925Gitlab::TemplateParser::AST::Each5926 #evaluate5927 evaluates the expression5928 returns an empty string when the input is not a collection5929 disallows too many nested loops5930PageLayoutHelper5931 page_description5932 defaults to nil5933 returns the last-pushed description5934 squishes multiple newlines5935 truncates5936 sanitizes all HTML5937 truncates before sanitizing5938 page_image5939 defaults to the GitLab logo5940 with @project assigned5941 uses Project avatar full url5942 when avatar_url is nil5943 falls back to the default when avatar_url is nil5944 with no assignments5945 falls back to the default5946 with @user assigned5947 uses User avatar full url5948 when avatar_url is nil5949 falls back to the default when avatar_url is nil5950 with no assignments5951 falls back to the default5952 with @group assigned5953 uses Group avatar full url5954 when avatar_url is nil5955 falls back to the default when avatar_url is nil5956 with no assignments5957 falls back to the default5958 page_card_attributes5959 raises ArgumentError when given more than two attributes5960 rejects blank values5961 page_card_meta_tags5962 returns the twitter:label and twitter:data tags5963 escapes content5964 #search_context5965 a bare controller5966 returns an empty context5967 #page_canonical_link5968 when link is passed5969 stores and returns the link value5970 when no link is provided5971 behaves like generates the canonical url using the params in the context5972 is expected to eq "http://test.host/foo"5973 behaves like generates the canonical url using the params in the context5974 is expected to eq "http://test.host/foo"5975 behaves like does not return a canonical url5976 is expected to be nil5977 behaves like does not return a canonical url5978 is expected to be nil5979 #page_itemtype5980 when itemtype is passed5981 stores and returns the itemtype value5982 when no itemtype is provided5983 returns an empty hash5984 #user_status_properties5985 when the user has no status5986 returns default properties5987 when user has a status5988 merges the status properties with the defaults5989BadgesHelper5990 #gl_badge_tag5991 creates a badge with given text5992 adds style classes5993 adds custom classes5994 applies custom html attributes5995 block content5996 renders block content5997 changes the function signature5998 variants5999 defaults to muted6000 falls back to default given an unknown variant6001 variant: :muted6002 sets the variant class6003 variant: :neutral6004 sets the variant class6005 variant: :info6006 sets the variant class6007 variant: :success6008 sets the variant class6009 variant: :warning6010 sets the variant class6011 variant: :danger6012 sets the variant class6013 sizes6014 defaults to md6015 falls back to default given an unknown size6016 size: :sm6017 sets the size class6018 size: :md6019 sets the size class6020 size: :lg6021 sets the size class6022 icons6023 with text6024 renders an icon6025 adds a spacing class and any custom classes to the icon6026 icon only6027 adds an img role to element6028 adds aria-label to element6029 does not add a spacing class to the icon6030 given an href6031 creates a badge link6032Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules6033 #perform!6034 when pipeline has been skipped by workflow configuration6035 does not save the pipeline6036 breaks the chain6037 attaches an error to the pipeline6038 saves workflow_rules_result6039 when pipeline has not been skipped by workflow configuration6040 continues the pipeline processing chain6041 does not skip the pipeline6042 attaches no errors6043 saves workflow_rules_result6044ContainerExpirationPolicyWorker6045 #perform6046 process cleanups6047 calls the limited capacity worker6048 with exclusive lease taken6049 does not do anything6050 process stale ongoing cleanups6051 set them as unfinished6052 policies without container repositories6053 disables them6054 counts logging6055 logs all the counts6056 with load balancing enabled6057 reads the counts from the replica6058Prometheus::ProxyService6059 configuration6060 ReactiveCaching refresh is not needed6061 #initialize6062 initializes attributes6063 converts ActionController::Parameters into hash6064 with unknown params6065 filters unknown params6066 with series method6067 allows match, start and end parameters6068 #execute6069 when prometheus_adapter is nil6070 returns error6071 when prometheus_adapter cannot query6072 returns error6073 cannot proxy6074 returns error6075 with caching6076 when value present in cache6077 returns cached value6078 when value not present in cache6079 returns nil6080 call prometheus api6081 connection to prometheus server succeeds6082 returns the http status code and body from prometheus6083 connection to prometheus server fails6084 prometheus client raises Gitlab::PrometheusClient::Error6085 returns error6086 with series API6087 calls PrometheusClient with given parameters6088 .from_cache6089 initializes an instance of ProxyService class6090RuboCop::Cop::RSpec::FactoryBot::InlineAssociation6091 offenses6092 recognizes `add_attribute`6093 recognizes `transient` attributes6094 code_snippet: "create(:user)", autocorrected: "association(:user)"6095 registers an offense and corrects6096 code_snippet: "FactoryBot.create(:user)", autocorrected: "association(:user)"6097 registers an offense and corrects6098 code_snippet: "::FactoryBot.create(:user)", autocorrected: "association(:user)"6099 registers an offense and corrects6100 code_snippet: "create(:user, :admin)", autocorrected: "association(:user, :admin)"6101 registers an offense and corrects6102 code_snippet: "create(:user, name: \"any\")", autocorrected: "association(:user, name: \"any\")"6103 registers an offense and corrects6104 code_snippet: "build(:user)", autocorrected: "association(:user)"6105 registers an offense and corrects6106 code_snippet: "FactoryBot.build(:user)", autocorrected: "association(:user)"6107 registers an offense and corrects6108 code_snippet: "::FactoryBot.build(:user)", autocorrected: "association(:user)"6109 registers an offense and corrects6110 code_snippet: "build(:user, :admin)", autocorrected: "association(:user, :admin)"6111 registers an offense and corrects6112 code_snippet: "build(:user, name: \"any\")", autocorrected: "association(:user, name: \"any\")"6113 registers an offense and corrects6114 no offenses6115 for `association(:user)`6116 does not register any offenses6117 for `association(:user, :admin)`6118 does not register any offenses6119 for `association(:user, name: "any")`6120 does not register any offenses6121 for `after(:build) do |object|`6122 does not register any offenses6123 for `initialize_with do`6124 does not register any offenses6125 for `user_id { create(:user).id }`6126 does not register any offenses6127Gitlab::SidekiqMigrateJobs6128 #execute6129 scheduled jobs6130 behaves like processing a set6131 when the set is empty6132 returns the number of scanned and migrated jobs6133 when the set is not empty6134 returns the number of scanned and migrated jobs6135 when there are no matching jobs6136 does not change any queue names6137 when there are matching jobs6138 migrates only the workers matching the given worker from the set6139 allows migrating multiple workers at once6140 allows migrating multiple workers to the same queue6141 does not try to migrate jobs that are removed from the set during the migration6142 does not try to migrate unmatched jobs that are added to the set during the migration6143 iterates through the entire set of jobs6144 logs output at the start, finish, and every LOG_FREQUENCY jobs6145 retried jobs6146 behaves like processing a set6147 when the set is empty6148 returns the number of scanned and migrated jobs6149 when the set is not empty6150 returns the number of scanned and migrated jobs6151 when there are no matching jobs6152 does not change any queue names6153 when there are matching jobs6154 migrates only the workers matching the given worker from the set6155 allows migrating multiple workers at once6156 allows migrating multiple workers to the same queue6157 does not try to migrate jobs that are removed from the set during the migration6158 does not try to migrate unmatched jobs that are added to the set during the migration6159 iterates through the entire set of jobs6160 logs output at the start, finish, and every LOG_FREQUENCY jobs6161Gitlab::Cache::Import::Caching6162 .read6163 reads a value from the cache6164 returns nil if the cache key does not exist6165 refreshes the cache key if a value is present6166 does not refresh the cache key if a value is empty6167 .read_integer6168 returns an Integer6169 returns nil if no value was found6170 .write6171 writes a value to the cache and returns the written value6172 .increment6173 increment a key and returns the current value6174 .set_add6175 adds a value to a set6176 .set_includes?6177 returns false when the key does not exist6178 returns false when the value is not present in the set6179 returns true when the set includes the given value6180 .values_from_set6181 returns empty list when the set is empty6182 returns the set list of values6183 .hash_add6184 adds a value to a hash6185 .values_from_hash6186 returns empty hash when the hash is empty6187 returns the set list of values6188 .write_multiple6189 sets multiple keys when key_prefix not set6190 sets multiple keys with correct prefix6191 .expire6192 sets the expiration time of a key6193Resolvers::GroupIssuesResolver6194 #resolve6195 finds all group issues6196 finds all group and subgroup issues6197 returns issues without the specified issue_type6198 confidential issues6199 when user is allowed to view confidential issues6200 returns all viewable issues by default6201 filtering for confidential issues6202 returns only the non-confidential issues for the group when filter is set to false6203 returns only the confidential issues for the group when filter is set to true6204 when user is not allowed to see confidential issues6205 returns all viewable issues by default6206 filtering for confidential issues6207 does not return the confidential issues when filter is set to false6208 does not return the confidential issues when filter is set to true6209 release_tag filter6210 generates an error when trying to filter by negated release_tag6211Banzai::ReferenceParser::ExternalIssueParser6212 #nodes_visible_to_user6213 when the link has a data-issue attribute6214 creates reference when the feature is 06215 creates reference when the feature is 106216 creates reference when the feature is 206217 #referenced_by6218 when the link has a data-project attribute6219 when the link has a data-external-issue attribute6220 returns an Array of ExternalIssue instances6221 when the link does not have a data-external-issue attribute6222 returns an empty Array6223 when the link does not have a data-project attribute6224 returns an empty Array6225 #issue_ids_per_project6226 returns a Hash containing range IDs per project6227 does not add a project when the data-external-issue attribute is empty6228Gitlab::ImportExport::Group::RelationTreeRestorer6229 restores group tree6230 logs top-level relation creation6231Ci::JobArtifacts::ExpireProjectBuildArtifactsService6232 #execute6233 with job containing erasable artifacts6234 unlocks erasable job artifacts6235 expires erasable job artifacts6236 with job containing trace artifacts6237 does not unlock trace artifacts6238 does not expire trace artifacts6239 with job from artifact locked pipeline6240 does not unlock locked artifacts6241 does not expire locked artifacts6242 with job containing both erasable and trace artifacts6243 unlocks erasable artifacts6244 expires erasable artifacts6245 does not unlock trace artifacts6246 does not expire trace artifacts6247 with multiple pipelines6248 unlocks artifacts across pipelines6249 expires artifacts across pipelines6250 with artifacts belonging to another project6251 does not unlock erasable artifacts in other projects6252 does not expire erasable artifacts in other projects6253Gitlab::GitAccessProject6254 #check_namespace!6255 when namespace is nil6256 does not allow push and pull access6257 #check_project_accessibility!6258 when the project is nil6259 when user is allowed to create project in namespace6260 blocks pull access with "not found"6261 allows push access6262 when user is not allowed to create project in namespace6263 blocks push and pull with "not found"6264 #ensure_project_on_push!6265 when push6266 when project does not exist6267 when changes is _any6268 when authentication abilities include push code6269 when user can create project in namespace6270 creates a new project in the correct namespace6271 when namespace is blank6272 behaves like no project is created6273 does not create a new project6274 when namespace does not exist6275 behaves like no project is created6276 does not create a new project6277 when user cannot create project in namespace6278 behaves like no project is created6279 does not create a new project6280 when authentication abilities do not include push code6281 when user can create project in namespace6282 behaves like no project is created6283 does not create a new project6284 when check contains actual changes6285 behaves like no project is created6286 does not create a new project6287 when project exists6288 behaves like no project is created6289 does not create a new project6290 when deploy key is used6291 behaves like no project is created6292 does not create a new project6293 when pull6294 when project does not exist6295 behaves like no project is created6296 does not create a new project6297Gitlab::SafeRequestStore6298 .store6299 when RequestStore is active6300 uses RequestStore6301 when RequestStore is NOT active6302 does not use RequestStore6303 .begin!6304 when RequestStore is active6305 uses RequestStore6306 when RequestStore is NOT active6307 uses RequestStore6308 .clear!6309 when RequestStore is active6310 uses RequestStore6311 when RequestStore is NOT active6312 uses RequestStore6313 .end!6314 when RequestStore is active6315 uses RequestStore6316 when RequestStore is NOT active6317 uses RequestStore6318 .write6319 when RequestStore is active6320 uses RequestStore6321 does not pass the options hash to the underlying store implementation6322 when RequestStore is NOT active6323 does not use RequestStore6324 does not pass the options hash to the underlying store implementation6325 .[]=6326 when RequestStore is active6327 uses RequestStore6328 when RequestStore is NOT active6329 does not use RequestStore6330 .read6331 when RequestStore is active6332 uses RequestStore6333 when RequestStore is NOT active6334 does not use RequestStore6335 .[]6336 when RequestStore is active6337 uses RequestStore6338 when RequestStore is NOT active6339 does not use RequestStore6340 .exist?6341 when RequestStore is active6342 uses RequestStore6343 when RequestStore is NOT active6344 does not use RequestStore6345 .fetch6346 when RequestStore is active6347 uses RequestStore6348 when RequestStore is NOT active6349 does not use RequestStore6350 .delete6351 when RequestStore is active6352 uses RequestStore6353 when given a block and the key exists6354 does not execute the block6355 when given a block and the key does not exist6356 yields the key and returns the block result6357 when RequestStore is NOT active6358 does not use RequestStore6359 when given a block6360 yields the key and returns the block result6361Projects::ErrorTrackingHelper6362 #error_tracking_data6363 without error_tracking_setting6364 returns frontend configuration6365 with error_tracking_setting6366 when enabled6367 show error tracking enabled6368 when disabled6369 show error tracking not enabled6370 with integrated error tracking feature6371 feature_flag: false, enabled: true, integrated: true, show_alert: true6372 is expected to include {"show-integrated-tracking-disabled-alert" => "true"}6373 feature_flag: false, enabled: true, integrated: false, show_alert: false6374 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6375 feature_flag: false, enabled: false, integrated: true, show_alert: false6376 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6377 feature_flag: false, enabled: false, integrated: false, show_alert: false6378 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6379 feature_flag: true, enabled: true, integrated: true, show_alert: false6380 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6381 feature_flag: true, enabled: true, integrated: false, show_alert: false6382 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6383 feature_flag: true, enabled: false, integrated: true, show_alert: false6384 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6385 feature_flag: true, enabled: false, integrated: false, show_alert: false6386 is expected to include {"show-integrated-tracking-disabled-alert" => "false"}6387 when user is not maintainer6388 shows error tracking enablement as disabled6389 #error_details_data6390 returns the correct issue id6391 returns the correct project path6392 returns the correct stack trace path6393 creates an issue and redirects to issue show page6394Gitlab::Utils::Override6395 #override6396 when instance is klass.new(0)6397 when STATIC_VERIFICATION is set6398 when subject is a class6399 behaves like checking as intended6400 checks ok for overriding method6401 checks ok for overriding method using negative arity6402 raises NotImplementedError when it is not overriding anything6403 raises NotImplementedError when overriding a method with different arity6404 when subject is a module, and class is prepending it6405 behaves like checking as intended6406 checks ok for overriding method6407 checks ok for overriding method using negative arity6408 raises NotImplementedError when it is not overriding anything6409 raises NotImplementedError when overriding a method with different arity6410 when subject is a module, and class is including it6411 behaves like checking as intended, nothing was overridden6412 raises NotImplementedError because it is not overriding it6413 raises NotImplementedError when it is not overriding anything6414 when ActiveSupport::Concern and class_methods are used6415 when it is defining a overriding method6416 verifies6417 when it is not defining a overriding method6418 raises NotImplementedError6419 when STATIC_VERIFICATION is not set6420 when subject is a class6421 behaves like nothing happened6422 does not complain when it is overriding something6423 does not complain when it is not overriding anything6424 when subject is a module, and class is prepending it6425 behaves like nothing happened6426 does not complain when it is overriding something6427 does not complain when it is not overriding anything6428 when subject is a module, and class is including it6429 does not complain when it is overriding something6430 does not complain when it is not overriding anything6431 when instance is klass6432 when STATIC_VERIFICATION is set6433 when subject is a module, and class is prepending it6434 behaves like checking as intended6435 checks ok for overriding method6436 checks ok for overriding method using negative arity6437 raises NotImplementedError when it is not overriding anything6438 raises NotImplementedError when overriding a method with different arity6439 when subject is a module, and class is extending it6440 behaves like checking as intended, nothing was overridden6441 raises NotImplementedError because it is not overriding it6442 raises NotImplementedError when it is not overriding anything6443Gitlab::RepoPath6444 .parse6445 returns the default type for non existent paths6446 a repository storage path6447 parses a full project repository path6448 parses a full project wiki repository path6449 parses a personal snippet repository path6450 parses a project snippet repository path6451 a relative path6452 parses a relative repository path6453 parses a relative wiki path6454 parses a relative path starting with /6455 of a redirected project6456 parses a relative repository path6457 parses a relative wiki path6458 parses a relative path starting with /6459 parses a redirected project snippet repository path6460 .find_project6461 when finding a project by its canonical path6462 when the cases match6463 returns the project6464 when the cases do not match6465 returns the project6466 when finding a project via a redirect6467 returns the project6468 .find_snippet6469 extracts path and id from personal snippet route6470 extracts path and id from project snippet route6471 returns nil for invalid snippet paths6472 returns nil for snippets not associated with the project6473 when finding a project snippet via a redirect6474 returns the project snippet6475Gitlab::TemplateParser::Parser6476 #root6477 parses an empty template6478 parses a variable with a single identifier step6479 parses a variable with a single integer step6480 parses a variable with multiple selector steps6481 parses a variable with an integer selector step6482 parses the special "it" variable6483 parses a text node6484 parses an if expression6485 parses an if-else expression6486 parses an each expression6487 parses an escaped newline6488 parses a regular newline6489 parses the default changelog template6490 raises an error when parsing an integer selector that is too large6491 #parse_and_transform6492 parses and transforms a template6493 raises parsing errors using a custom error class6494Gitlab::UsageDataCounters::NoteCounter6495 behaves like a note usage counter6496 .count(create)6497 increments the Note create counter by 16498 .read(create)6499 returns the total number of create events6500 behaves like a note usage counter6501 .count(create)6502 increments the Note create counter by 16503 .read(create)6504 returns the total number of create events6505 behaves like a note usage counter6506 .count(create)6507 increments the Note create counter by 16508 .read(create)6509 returns the total number of create events6510 .totals6511 can report all totals6512 unknown events or noteable_type6513 event: :create, noteable_type: "Snippet", expected_count: 1, should_raise: false6514 handles event6515 event: :wibble, noteable_type: "Snippet", expected_count: 0, should_raise: true6516 handles event6517 event: :create, noteable_type: "MergeRequest", expected_count: 1, should_raise: false6518 handles event6519 event: :wibble, noteable_type: "MergeRequest", expected_count: 0, should_raise: true6520 handles event6521 event: :create, noteable_type: "Commit", expected_count: 1, should_raise: false6522 handles event6523 event: :wibble, noteable_type: "Commit", expected_count: 0, should_raise: true6524 handles event6525 event: :create, noteable_type: "Issue", expected_count: 0, should_raise: false6526 handles event6527 event: :wibble, noteable_type: "Issue", expected_count: 0, should_raise: false6528 handles event6529Gitlab::MergeRequests::Mergeability::CheckResult6530 .default_payload6531 returns the expected defaults6532 .success6533 creates a success result6534 uses the default payload6535 when given a payload6536 uses the payload passed6537 .failed6538 creates a failure result6539 uses the default payload6540 when given a payload6541 uses the payload passed6542 .from_hash6543 returns the expected status and payload6544 #to_hash6545 returns the expected hash6546 #failed?6547 when it has failed6548 returns true6549 when it has succeeded6550 returns false6551 #success?6552 when it has failed6553 returns false6554 when it has succeeded6555 returns true6556Gitlab::Metrics::BackgroundTransaction6557 #run6558 yields the supplied block6559 stores the transaction in the current thread6560 removes the transaction from the current thread upon completion6561 #labels6562 when the worker queue is accessible6563 provides labels with endpoint_id, feature_category and queue6564 when the worker name does not exist6565 provides labels with endpoint_id and feature_category6566 when the worker queue is not accessible6567 provides labels with endpoint_id and feature_category6568 behaves like transaction metrics with labels6569 .prometheus_metric6570 adds a metric6571 #method_call_for6572 returns a MethodCall6573 #add_event6574 adds a metric6575 allows tracking of custom tags6576 with sensitive tags6577 filters tags6578 #increment6579 adds a metric6580 with block6581 overrides docstring6582 overrides labels6583 filters sensitive tags6584 #set6585 adds a metric6586 with block6587 overrides docstring6588 overrides labels6589 filters sensitive tags6590 #observe6591 adds a metric6592 with block6593 overrides docstring6594 overrides labels6595 filters sensitive tags6596HangoutsChat::Sender Gitlab::HTTP override6597 HangoutsChat::Sender::HTTP#post6598 calls Gitlab::HTTP.post with default protection settings6599 behaves like a request using Gitlab::UrlBlocker6600 when local requests are not allowed6601 allows an external request with http6602 allows an external request with https6603 raises error when it is a request that resolves to a local address6604 raises error when it is a request that resolves to a localhost address6605 raises error when it is a request to local address6606 raises error when it is a request to localhost address6607 when port different from URL scheme is used6608 allows the request6609 raises error when it is a request to local address6610 raises error when it is a request to localhost address6611 when DNS rebinding protection is disabled6612 allows the request6613 when http(s) proxy environment variable is set6614 allows the request6615 when local requests are allowed6616 allows an external request6617 allows an external request that resolves to a local address6618 allows an external request that resolves to a localhost address6619 allows a local address request6620 allows a localhost address request6621Clusters::Aws::AuthorizeRoleService6622 role exists6623 updates the existing Aws::Role record and returns a set of credentials6624 errors6625 role does not exist6626 returns an empty hash6627 logs the error6628 supplied ARN is invalid6629 returns an empty hash6630 logs the error6631 client errors6632 error fetching credentials6633 returns an empty hash6634 logs the error6635 error in assuming role6636 returns an empty hash6637 logs the error6638 credentials not configured6639 returns an empty hash6640 logs the error6641 role not configured6642 returns an empty hash6643 logs the error6644Gitlab::Utils::JsonSizeEstimator6645 is expected to match json bytesize of6646 is expected to match json bytesize of [[[]]]6647 is expected to match json bytesize of 1, "str", 3.14, and ["str", {:a=>-1}]6648 is expected to match json bytesize of {}6649 is expected to match json bytesize of {:a=>{}}6650 is expected to match json bytesize of {:a=>{:b=>{:c=>[1, 2, 3], :e=>2022-06-29 20:03:40.998104828 +0000, :f=>nil}}}6651 is expected to match json bytesize of {100=>500}6652 is expected to match json bytesize of {"狸"=>"狸"}6653 is expected to match json bytesize of nil6654 calls #to_s on unknown object6655Gitlab::Database::Count::ReltuplesCountStrategy6656 #count6657 when reltuples is up to date6658 uses statistics to do the count6659 when models using single-type inheritance are used6660 returns nil counts for inherited tables6661 insufficient permissions6662 returns an empty hash6663Import::GitlabProjects::FileAcquisitionStrategies::RemoteFile6664 validation6665 is expected to be valid6666 file_url validation6667 validates the file_url scheme6668 when localhost urls are not allowed6669 validates the file_url6670 when import_project_from_remote_file_s3 is enabled6671 validates the remote content-length6672 validates the remote content-type6673 when the HTTP request fail to recover the headers6674 adds the error message6675 when trying to import from AWS S36676 adds an error suggesting to use `projects/remote-import-s3`6677 when import_project_from_remote_file_s3 is disabled6678 when trying to import from AWS S36679 does not validate the remote content-length or content-type6680 when NOT trying to import from AWS S36681 validates content-length and content-type6682 #project_params6683 returns import_export_upload in the params6684Gitlab::Ci::Config::Entry::Jobs6685 .all_types6686 is expected to include Gitlab::Ci::Config::Entry::Hidden6687 is expected to include Gitlab::Ci::Config::Entry::Job6688 is expected to include Gitlab::Ci::Config::Entry::Bridge6689 .find_type6690 name: :".hidden_job", type: Gitlab::Ci::Config::Entry::Hidden6691 is expected to eq Gitlab::Ci::Config::Entry::Hidden6692 name: :".hidden_bridge", type: Gitlab::Ci::Config::Entry::Hidden6693 is expected to eq Gitlab::Ci::Config::Entry::Hidden6694 name: :regular_job, type: Gitlab::Ci::Config::Entry::Job6695 is expected to eq Gitlab::Ci::Config::Entry::Job6696 name: :my_trigger, type: Gitlab::Ci::Config::Entry::Bridge6697 is expected to eq Gitlab::Ci::Config::Entry::Bridge6698 name: :invalid_job, type: nil6699 is expected to eq nil6700 validations6701 when entry config value is correct6702 #valid?6703 is valid6704 when entry value is not correct6705 #errors6706 incorrect config value type6707 returns error about incorrect type6708 when job is invalid6709 reports error6710 when the job name cannot be cast directly to a symbol6711 properly parses the job name without raising a NoMethodError6712 when no visible jobs present6713 returns error about no visible jobs defined6714 .compose!6715 when valid job entries composed6716 #value6717 returns key value6718 #descendants6719 creates valid descendant nodes6720 #value6721 returns value of visible jobs only6722Gitlab::Ci::Pipeline::Expression::Lexeme::Matches6723 .build6724 with non-evaluable operands6725 creates a new instance of the token6726 with evaluable operands6727 creates a new instance of the token6728 .type6729 is an operator6730 .precedence6731 has a precedence6732 #evaluate6733 when left and right do not match6734 is expected to eq false6735 when left and right match6736 is expected to eq true6737 when left is nil6738 is expected to eq false6739 when right is nil6740 is expected to eq false6741 when left and right are nil6742 is expected to eq false6743 when left is an empty string6744 is expected to eq false6745 when left and right are empty strings6746 is expected to eq true6747 when left is a multiline string and matches right6748 is expected to eq true6749 when left is a multiline string and does not match right6750 is expected to eq false6751 when a matching pattern uses regex flags6752 is expected to eq true6753 when a non-matching pattern uses regex flags6754 is expected to eq false6755 when right value is a regexp string6756 when matching6757 is expected to eq true6758 when the FF ci_fix_rules_if_comparison_with_regexp_variable is disabled6759 is expected to eq false6760 when not matching6761 is expected to eq false6762PagerDuty::WebhookPayloadParser6763 .call6764 when payload is a correct PagerDuty payload6765 returns parsed payload6766 when assignments summary and html_url are blank6767 returns parsed payload with blank assignees6768 when impacted_services summary and html_url are blank6769 returns parsed payload with blank assignees6770 when payload schema is invalid6771 returns payload with blank incidents6772 when payload consists of two messages6773 when one of the messages has no incident data6774 returns parsed payload with valid events only6775 when one of the messages has unknown event6776 returns parsed payload6777Clusters::Cleanup::ProjectNamespaceWorker6778 #perform6779 when cluster.cleanup_status is cleanup_removing_project_namespaces6780 calls Clusters::Cleanup::ProjectNamespaceService6781 behaves like cluster cleanup worker base specs6782 transitions to errored if sidekiq retries exhausted6783 when exceeded the execution limit6784 logs the error6785 when cluster.cleanup_status is not cleanup_removing_project_namespaces6786 does not call Clusters::Cleanup::ProjectNamespaceService6787Packages::TerraformModule::CreatePackageService6788 #execute6789 valid package6790 behaves like creating a package6791 creates a package6792 package already exists elsewhere6793 is expected to eq 4036794 is expected to equal "Access Denied"6795 marked as pending_destruction6796 behaves like creating a package6797 creates a package6798 version already exists6799 is expected to eq 4036800 is expected to equal "Package version already exists."6801 marked as pending_destruction6802 behaves like creating a package6803 creates a package6804 with empty version6805 is expected to eq 4006806 is expected to eq "Version is empty."6807Snippets::UpdateRepositoryStorageService6808 #execute6809 when the move succeeds6810 moves the repository to the new storage and unmarks the repository as read-only6811 when the filesystems are the same6812 updates the database without trying to move the repostory6813 when the move fails6814 unmarks the repository as read-only without updating the repository storage6815 when the cleanup fails6816 sets the correct state6817 when the checksum does not match6818 unmarks the repository as read-only without updating the repository storage6819 when the repository move is finished6820 is idempotent6821 when the repository move is failed6822 is idempotent6823ContextCommitsFinder6824 #execute6825 filters commits by valid sha/commit message6826 returns nothing when searched by invalid sha/commit message6827Gitlab::UntrustedRegexp6828 #initialize6829 invalid regexp6830 is expected to raise RegexpError6831 #replace_all6832 replaces all instances of the match in a string6833 #replace6834 replaces the first instance of the match in a string6835 #===6836 returns true for a match6837 returns false for no match6838 can handle regular expressions in multiline mode6839 #match?6840 malicious regexp6841 takes under a second6842 matching regexp6843 returns an array of nil matches6844 non-matching regexp6845 returns an array of nil matches6846 #scan6847 malicious regexp6848 takes under a second6849 empty regexp6850 returns an array of nil matches6851 empty capture group regexp6852 returns an array of nil matches in an array6853 no capture group6854 returns the whole match6855 one capture group6856 returns the captured part6857 two capture groups6858 returns the captured parts6859 #match6860 when there are matches6861 returns a match object6862 when there are no matches6863 returns nil6864Gitlab::Import::StuckProjectImportJobsWorker6865 with scheduled import_status6866 behaves like stuck import job detection6867 when the job has completed6868 when the import status was already updated6869 does not mark the import as failed6870 when the import status was not updated6871 marks the import as failed6872 when the job is still in Sidekiq6873 does not mark the import as failed6874 with started import_status6875 behaves like stuck import job detection6876 when the job has completed6877 when the import status was already updated6878 does not mark the import as failed6879 when the import status was not updated6880 marks the import as failed6881 when the job is still in Sidekiq6882 does not mark the import as failed6883ActiveRecord locking6884 when lock_version is NULL6885 behaves like locked model6886 can be updated6887 can be deleted6888 when lock_version is 06889 behaves like locked model6890 can be updated6891 can be deleted6892 when lock_version is 16893 behaves like locked model6894 can be updated6895 can be deleted6896Tooling::FindCodeowners6897 #execute6898 prints CODEOWNERS as configured6899 #load_definitions6900 expands the allow and deny list with keywords and patterns6901 expands the auth group6902 #load_config6903 loads the config with symbolized keys6904 when YAML has safe_load_file6905 calls safe_load_file6906 when YAML does not have safe_load_file6907 calls load_file6908 #path_matches?6909 passes flags we are expecting to File.fnmatch?6910 #normalize_pattern6911 returns /**/* if the input is *6912 prepends /** if the input does not start with /6913 returns the pattern if the input starts with /6914 appends **/* if the input ends with /6915 #consolidate_paths6916 when the directory has the same number of entries6917 consolidates into the directory6918 when the directory has different number of entries6919 returns the original paths6920Sanitizable6921 behaves like a non-sanitizable field6922 id6923 has no effect6924 behaves like a non-sanitizable field6925 html_body6926 has no effect6927 behaves like a sanitizable field6928 name6929 when input is nil6930 behaves like noop6931 has no effect6932 when input does not contain any html6933 behaves like noop6934 has no effect6935 when input contains html6936 sanitizes the input6937 when input includes html entities6938 does not escape them6939 when input contains pre-escaped html entities6940 is not valid6941 behaves like noop6942 has no effect6943 behaves like a sanitizable field6944 description6945 when input is nil6946 behaves like noop6947 has no effect6948 when input does not contain any html6949 behaves like noop6950 has no effect6951 when input contains html6952 sanitizes the input6953 when input includes html entities6954 does not escape them6955 when input contains pre-escaped html entities6956 is not valid6957 behaves like noop6958 has no effect6959HamlLint::Linter::NoPlainNodes6960 reports when a tag has an inline plain node6961 is expected to report a lint with message '`Hello Tanuki` is a plain node. Please use an i18n method like `= _('Hello Tanuki')`'6962 reports when a tag has multiline plain nodes6963 is expected to report a lint6964 reports when a tag has an inline plain node with interpolation6965 is expected to report a lint6966 does not report when a tag has an inline script6967 is expected not to report a lint6968 does not report when a tag is empty6969 is expected not to report a lint6970 reports multiple when a tag has multiline plain nodes split by non-text nodes6971 is expected to report a lint6972 does not report when a html entity6973 is expected not to report a lint6974 does report when something that looks like a html entity6975 is expected to report a lint6976 does not report multiline when one or more html entities6977 >6978 ©6979 »6980 does report multiline when one or more html entities amidst plain text6981 Test6982 Test>6983 ©Hello6984 Hello»6985IssuePresenter6986 #web_url6987 returns correct path6988 when issue type is task6989 when work_items feature flag is enabled6990 returns a work item url for the task6991 when work_items feature flag is disabled6992 returns an issue url for the task6993 #subscribed?6994 returns not subscribed6995 returns subscribed6996 #issue_path6997 returns correct path6998 when issue type is task6999 when work_items feature flag is enabled7000 returns a work item path for the task7001 when work_items feature flag is disabled7002 returns an issue path for the task7003 #project_emails_disabled?7004 returns false when emails notifications is enabled for project7005 when emails notifications is disabled for project7006 is expected to equal true7007Gitlab::Kubernetes::Node7008 #all7009 when connection to the cluster is successful7010 is expected to eq {:nodes=>[{"metadata"=>{"name"=>"gke-cluster-applications-default-pool-49b7f225-v527"}, "status"=>{"a...ity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}, "usage"=>{"cpu"=>"144208668n", "memory"=>"1789048Ki"}}]}7011 when an uncategorised error is raised7012 is expected to eq {:node_connection_error=>:unknown_error}7013 notifies Sentry7014Gitlab::Tracking7015 .options7016 when feature flag is disabled7017 when destination is Snowplow7018 returns useful client options7019 behaves like delegates to destination7020 delegates to Gitlab::Tracking::Destinations::Snowplow destination7021 when destination is SnowplowMicro7022 returns useful client options7023 behaves like delegates to destination7024 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination7025 .event7026 tracks errors7027 when destination is Snowplow7028 behaves like delegates to destination7029 delegates to Gitlab::Tracking::Destinations::Snowplow destination7030 when destination is SnowplowMicro7031 behaves like delegates to destination7032 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination7033 .definition7034 dispatchs the data to .event7035LooseForeignKeys::ModificationTracker7036 #over_limit?7037 is true when deletion MAX_DELETES is exceeded7038 is false when MAX_DELETES is not exceeded7039 is true when deletion MAX_UPDATES is exceeded7040 is false when MAX_UPDATES is not exceeded7041 is true when max runtime is exceeded7042 is false when max runtime is not exceeded7043 #add_deletions7044 increments a Prometheus counter7045 #add_updates7046 increments a Prometheus counter7047 #stats7048 exposes stats7049Uploads routing7050 allows creating uploads for personal snippets7051 allows creating uploads for users7052 allows fetching alert metric metric images7053 does not allow creating uploads for other models7054 legacy paths7055 redirects project uploads to canonical path under project namespace7056LooseForeignKeys::CleanupWorker7057-- create_table(:_test_loose_fk_parent_table_1)7058 -> 0.0042s7059-- create_table(:_test_loose_fk_parent_table_2)7060 -> 0.0028s7061-- create_table(:_test_loose_fk_child_table_1_1)7062 -> 0.0028s7063-- create_table(:_test_loose_fk_child_table_1_2)7064 -> 0.0032s7065-- create_table(:_test_loose_fk_child_table_2_1)7066 -> 0.0030s7067-- execute("CREATE TRIGGER _test_loose_fk_parent_table_1_loose_fk_trigger\nAFTER DELETE ON _test_loose_fk_parent_table_1 REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")7068 -> 0.0119s7069-- execute("CREATE TRIGGER _test_loose_fk_parent_table_2_loose_fk_trigger\nAFTER DELETE ON _test_loose_fk_parent_table_2 REFERENCING OLD TABLE AS old_table\nFOR EACH STATEMENT\nEXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();\n")7070 -> 0.0015s7071 cleans up all rows7072 when deleting in batches7073 cleans up all rows7074 when the deleted rows count limit have been reached7075 cleans up 2 rows7076 multi-database support7077 current_minute: 2, configured_base_models: {:main=>"ActiveRecord::Base", :ci=>"Ci::ApplicationRecord"}, expected_connection_model: "ActiveRecord::Base"7078 uses the correct connection7079 current_minute: 3, configured_base_models: {:main=>"ActiveRecord::Base", :ci=>"Ci::ApplicationRecord"}, expected_connection_model: "Ci::ApplicationRecord"7080 uses the correct connection7081 current_minute: 2, configured_base_models: {:main=>"ActiveRecord::Base"}, expected_connection_model: "ActiveRecord::Base"7082 uses the correct connection7083 current_minute: 3, configured_base_models: {:main=>"ActiveRecord::Base"}, expected_connection_model: "ActiveRecord::Base"7084 uses the correct connection7085-- drop_table(:_test_loose_fk_parent_table_1)7086 -> 0.0046s7087-- drop_table(:_test_loose_fk_parent_table_2)7088 -> 0.0024s7089-- drop_table(:_test_loose_fk_child_table_1_1)7090 -> 0.0022s7091-- drop_table(:_test_loose_fk_child_table_1_2)7092 -> 0.0021s7093-- drop_table(:_test_loose_fk_child_table_2_1)7094 -> 0.0020s7095Ci::PrometheusMetrics::ObserveHistogramsService7096 with empty data7097 does not raise errors7098 observes metrics successfully7099 increments the metrics7100 returns an empty body and status code7101 with unknown histograms7102 raises ActiveRecord::RecordNotFound error7103Banzai::Filter::ColorFilter7104 inserts color chip for supported color format #1237105 inserts color chip for supported color format #12347106 inserts color chip for supported color format #1234567107 inserts color chip for supported color format #123456787108 inserts color chip for supported color format rgb(0,0,0)7109 inserts color chip for supported color format RGB(0, 0, 0)7110 inserts color chip for supported color format rgba(0,0,0,1)7111 inserts color chip for supported color format RGBA(0,0,0,0.7)7112 inserts color chip for supported color format hsl(270,30%,50%)7113 inserts color chip for supported color format HSLA(270, 30%, 50%, .7)7114 ignores valid color code without backticks(code tags)7115 ignores valid color code with prepended space7116 ignores valid color code with appended space7117 ignores valid color code surrounded by spaces7118 ignores invalid color code7119NotificationRecipients::Builder::NewNote7120 #notification_recipients7121 for public notes7122 adds all participants, watchers and subscribers7123 for confidential notes7124 adds all participants, watchers and subscribers that are project memebrs7125Packages::Debian::Publication7126 relationships7127 is expected to belong to package class_name => Packages::Package required: false inverse_of => debian_publication7128 is expected to belong to distribution class_name => Packages::Debian::ProjectDistribution required: false inverse_of => publications7129 validations7130 #package7131 is expected to validate that :package cannot be empty/falsy7132 #valid_debian_package_type7133 with package type not being Debian7134 will not allow package type not being Debian7135 with package not being a Debian package7136 will not allow package not being a distribution7137 #distribution7138 is expected to validate that :distribution cannot be empty/falsy7139Gitlab::Ci::Reports::CodequalityReports7140 is expected to eq {}7141 #add_degradation7142 when there is a degradation7143 adds degradation to codequality report7144 when a required property is missing in the degradation7145 sets location as an error7146 #set_error_message7147 when there is an error7148 sets errors7149 #degradations_count7150 when there are many degradations7151 returns the number of degradations7152 #all_degradations7153 when there are many degradations7154 returns all degradations7155 #sort_degradations!7156 sorts degradations based on severity7157 with non-existence and uppercase severities7158 sorts unknown last7159Gitlab::GithubImport::RefreshImportJidWorker7160 .perform_in_the_future7161 schedules a job in the future7162 #perform7163 when the project does not exist7164 does nothing7165 when the job is running7166 refreshes the import JID and reschedules itself7167 when the job is no longer running7168 returns7169 #find_import_state7170 returns a ProjectImportState7171 returns nil for a import state for which the import process failed7172 returns nil for a non-existing find_import_state7173Subscriptions::IssuableUpdated7174 is expected to have graphql arguments :issuable_id7175 is expected to eq Types::IssuableType7176 #resolve7177 initial subscription7178 returns nil7179 when user is unauthorized7180 raises an exception7181 when issue does not exist7182 raises an exception7183 subscription updates7184 returns the resolved object7185 when user is unauthorized7186 unsubscribes the user7187Banzai::ReferenceParser::DesignParser7188 #nodes_visible_to_user7189 behaves like referenced feature visibility7190 when feature is disabled7191 does not create reference7192 when feature is enabled only for team members7193 does not create reference for non member7194 creates reference for member7195 when feature is enabled7196 creates reference7197 specific states7198 redacts links we should not have access to7199 design management is not available7200 redacts all nodes7201 #process7202 returns the correct designs7203Gitlab::SidekiqMiddleware::WorkerContext::Client7204 #call7205 applies a context for jobs scheduled in batch7206 root_caller_id7207 uses caller_id of the current context7208 uses root_caller_id instead of caller_id of the current context7209 when the feature category is set in the context_proc7210 takes the feature category from the worker, not the caller7211 takes the feature category from the caller if the worker is not owned7212 does not set any explicit feature category for mailers7213 when the feature category is already set in the surrounding block7214 takes the feature category from the worker, not the caller7215 takes the feature category from the caller if the worker is not owned7216Namespaces::RootStatisticsWorker#perform7217 with a namespace7218 executes refresher service7219 deletes namespace aggregated schedule row7220 when something goes wrong when updating7221 does not delete the aggregation schedule7222 logs the error7223 with no namespace7224 does not execute the refresher service7225 with a namespace with no aggregation scheduled7226 does not execute the refresher service7227 behaves like an idempotent worker7228 is labeled as idempotent7229 performs multiple times sequentially without raising an exception7230 deletes one aggregation schedule7231Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder7232 scopes the query for the given project7233 author_username param7234 returns stage events associated with the given author7235 returns empty result when unknown author is given7236 milestone_title param7237 returns stage events associated with the milestone7238 returns empty result when unknown milestone is given7239 label_name param7240 returns stage events associated with multiple labels7241 does not include records with partial label match7242 assignee_username param7243 returns stage events associated assignee7244 timestamp filtering7245 filters by the end event time range7246 when in_progress items are requested7247 filters by the start event time range7248GitHelper7249 #short_sha7250 is expected to eq "d4e043f6"7251 #strip_signature7252 strips PGP SIGNATURE7253 is expected to eq "Version 1.69.0\n\n"7254 strips PGP MESSAGE7255 is expected to eq "Version 1.69.0\n\n"7256 strips SIGNED MESSAGE7257 is expected to eq "this is Roger's signed tag\n\n"7258Gitlab::SearchContext::ControllerConcern7259 exposing @project7260 behaves like has the proper context7261 aggregate_failures7262 when the project is owned by a group7263 behaves like has the proper context7264 aggregate_failures7265 exposing @group7266 behaves like has the proper context7267 aggregate_failures7268 exposing @snippet, @snippets7269 behaves like has the proper context7270 aggregate_failures7271 exposing @ref7272 behaves like has the proper context7273 aggregate_failures7274API::Entities::Release7275 evidences7276 when the current user can download code7277 exposes the evidence sha and the json path7278 when the current user cannot download code7279 does not expose any evidence data7280 description_html7281 is inexistent7282 when include_html_description option is true7283 renders special references if current user has access7284 does not render special references if current user has no access7285Ci::GroupVariable7286 is expected to includes the Presentable module7287 is expected to includes the Ci::Maskable module7288 is expected to includes the HasEnvironmentScope module7289 is expected to validate that :key is case-sensitively unique within the scope of :group_id and :environment_scope, producing a custom validation error on failure7290 behaves like CI variable7291 is expected to includes the Ci::HasVariable module7292 strips whitespaces when assigning key7293 can convert to runner variable7294 variable type7295 defines variable types7296 defaults variable type to env_var7297 supports variable type file7298 .by_environment_scope7299 is expected to contain exactly #<Ci::GroupVariable id: 2, key: [FILTERED], value: nil, encrypted_value: "XC/hIur9ufFmVQoo3mvzkw==\n"...5085798 +0000", masked: false, variable_type: "env_var", environment_scope: "production", raw: true>7300 .unprotected7301 when variable is protected7302 returns nothing7303 when variable is not protected7304 returns the variable7305 .for_groups7306 is expected to eq [#<Ci::GroupVariable id: 6, key: [FILTERED], value: nil, encrypted_value: "y4uNpL4AwboE4f3ZJNsiew==\n...39:39.698564671 +0000", masked: false, variable_type: "env_var", environment_scope: "*", raw: true>]7307 behaves like cleanup by a loose foreign key7308 cleans up (delete or nullify) the model7309PipelineNotificationWorker7310 #execute7311 calls NotificationService#pipeline_finished when the pipeline exists7312 does nothing when the pipeline does not exist7313 when the user is blocked7314 does nothing7315 behaves like worker with data consistency7316 .get_data_consistency_feature_flag_enabled?7317 returns true7318 .get_data_consistency7319 returns correct data consistency7320Gitlab::Metrics::Subscribers::RailsCache7321 #cache_read7322 increments the cache_read duration7323 with a transaction7324 with hit event7325 when super operation is fetch7326 does not increment cache read miss total7327 with miss event7328 increments the cache_read_miss total7329 when super operation is fetch7330 does not increment cache read miss total7331 #cache_write7332 observes write duration7333 #cache_delete7334 observes delete duration7335 #cache_exist?7336 observes the exists duration7337 #cache_fetch_hit7338 without a transaction7339 returns7340 with a transaction7341 increments the cache_read_hit count7342 #cache_generate7343 without a transaction7344 returns7345 with a transaction7346 increments the cache_fetch_miss count and cache_read_miss total7347 #observe7348 without a transaction7349 returns7350 with a transaction7351 observes cache metric7352 increments the operations total7353Gitlab::Ci::Status::Build::Action7354 #label7355 when status has action7356 does not append text7357 when status does not have action7358 appends text about action not allowed7359 .matches?7360 when build is playable action7361 is a correct match7362 when build is not playable action7363 does not match7364 #badge_tooltip7365 returns the status7366LooksAhead7367 preloads labels on issues7368 issues fewer queries than the naive approach7369 behaves like a working query on the test schema7370 has a good test setup7371Gitlab::Ci::Config::Entry::Trigger::Forward7372 when entry config is correct7373 returns set values7374 is expected to be valid7375 when entry config value is empty7376 returns empty7377 is expected to be valid7378 when entry value is not correct7379 invalid attribute7380 is expected not to be valid7381 reports error7382 non-boolean value7383 is expected not to be valid7384 reports error7385Expirable7386 ProjectMember7387 .expired7388 is expected to contain exactly #<ProjectMember id: 1874, access_level: 40, source_id: 1570, source_type: "Project", user_id: 2705, n...-30", ldap: false, override: false, state: 0, invite_email_success: true, member_namespace_id: 4530>7389 #expired?7390 is expected to eq false7391 is expected to eq false7392 is expected to eq true7393 #expires?7394 is expected to eq false7395 is expected to eq true7396 is expected to eq true7397 #expires_soon?7398 is expected to eq false7399 is expected to eq true7400 is expected to eq true7401Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated7402 behaves like value stream analytics event7403 is expected to be a kind of String7404 is expected to be a kind of Symbol7405 is expected to include ApplicationRecord(abstract)7406 is expected to respond to #timestamp_projection7407 is expected to respond to #html_description7408 is expected to be a kind of Array7409 #apply_query_customization7410 expects an ActiveRecord::Relation object as argument and returns a modified version of it7411 #hash_code7412 returns a hash that uniquely identifies an event7413 does not differ when the same object is built with the same params7414 behaves like LEFT JOIN-able value stream analytics event7415 can use the event as LEFT JOIN7416 when looking at the record with data7417 contains the timestamp expression7418 when looking at the record without data7419 returns nil for the timestamp expression7420Gitlab::Usage::ServicePing::InstrumentedPayload7421 when building service ping with values7422 builds the service ping payload for the metrics key_paths7423 when building service ping with instrumentations7424 builds the service ping payload for the metrics key_paths7425 when missing instrumentation class7426 returns empty hash7427Gitlab::SidekiqConfig7428 .workers7429 includes all workers7430 .worker_queues7431 includes all queues7432 .workers_for_all_queues_yml7433 returns a tuple with FOSS workers first7434 .all_queues_yml_outdated?7435 returns true if the YAML file does not match the application code7436 returns false if the YAML file matches the application code7437 .queues_for_sidekiq_queues_yml7438 returns queues and weights, aggregating namespaces with the same weight7439 .sidekiq_queues_yml_outdated?7440 returns true if the YAML file does not match the application code7441 returns false if the YAML file matches the application code7442 .worker_queue_mappings7443 returns the worker class => queue mappings based on the current routing configuration7444 .current_worker_queue_mappings7445 returns worker queue mappings that have queues in the current Sidekiq options7446 .routing_queues7447 returns worker queue mappings that have queues in the current Sidekiq options7448ServiceHook7449 associations7450 is expected to belong to integration required: false7451 validations7452 is expected to validate that :integration cannot be empty/falsy7453 execute7454 #execute7455 #parent7456 with a project-level integration7457 returns the associated project7458 with a group-level integration7459 returns the associated group7460 with an instance-level integration7461 returns nil7462 #application_context7463 includes the type7464Packages::CleanupPackageRegistryWorker7465 #perform7466 with package files pending destruction7467 queues the cleanup job7468 behaves like an idempotent worker7469 is labeled as idempotent7470 performs multiple times sequentially without raising an exception7471 with no package files pending destruction7472 does not queue the cleanup job7473 behaves like an idempotent worker7474 is labeled as idempotent7475 performs multiple times sequentially without raising an exception7476 counts logging7477 logs all the counts7478 with load balancing enabled7479 reads the count from the replica7480Types::ContainerExpirationPolicyType7481 is expected to eq "ContainerExpirationPolicy"7482 is expected to eq "A tag expiration policy designed to keep only the images that matter most"7483 is expected to require graphql authorizations :admin_container_image7484 older_than field7485 returns older_than enum7486 keep n field7487 returns keep enum7488 name_regex field7489 returns untrusted regexp type7490 name_regex_keep field7491 returns untrusted regexp type7492Ci::ArchiveTraceWorker7493 #perform7494 when job is found7495 executes service7496 has preloaded the arguments for archiving7497 when sticky_ci_archive_trace_worker is disabled7498 does not preload associations7499 when job is not found7500 does not execute service7501SystemHookUrlValidator7502 #validate7503 with no options7504 allows http,https schemes by default7505 checks that the url structure is valid7506 with schemes7507 allows urls with the defined schemes7508 add error if the url scheme does not match the selected ones7509 by default7510 blocks urls pointing to localhost7511 blocks urls pointing to the local network7512 when local requests are allowed7513 does not block urls pointing to localhost7514 does not block urls pointing to the local network7515SafeUrl7516 #safe_url7517 is expected to eq "http://example.com"7518 when URL contains credentials7519 masks username and password7520 when username is allowed7521 masks the password, but not the username7522 when URL is empty7523 is expected to be nil7524 when URI raises an error7525 is expected to be nil7526Gitlab::Auth::Saml::IdentityLinker7527 with valid GitLab initiated request7528 linked identity exists7529 doesn't create new identity7530 sets #changed? to false7531 identity needs to be created7532 creates linked identity7533 sets identity provider7534 sets identity extern_uid7535 sets #changed? to true7536 with identity provider initiated request7537 attempting to link accounts raises an exception7538Gitlab::Ci::Config::Entry::Hidden7539 .matching?7540 when name starts with dot7541 is expected to be truthy7542 when name does not start with dot7543 is expected to be falsey7544 .new7545 validations7546 when entry config value is correct7547 #value7548 returns key value7549 #valid?7550 is valid7551 when entry value is not correct7552 when config is empty7553 #valid7554 is invalid7555 #leaf?7556 is a leaf7557 #relevant?7558 is not a relevant entry7559Integrations::FieldEntity7560 #as_json7561 with Jira integration7562 with field with type text7563 exposes correct attributes7564 with field with type password7565 exposes correct attributes but hides password7566 with EmailsOnPush integration7567 with field with type checkbox7568 exposes correct attributes and casts value to Boolean7569 with field with type select7570 exposes correct attributes7571FlushCounterIncrementsWorker7572 #perform7573 flushes increments to database7574 when model class does not exist7575 does nothing7576 when record does not exist7577 does nothing7578NullifyIfBlank7579 attribute exists7580 attribute is blank7581 is expected to be nil7582 attribute is nil7583 is expected to be nil7584 attribute is not blank7585 is expected to eq "name"7586 attribute does not exist7587 is expected to raise ActiveModel::UnknownAttributeError7588PurgeDependencyProxyCacheWorker7589 #perform7590 an admin user7591 when admin mode is enabled7592 is labeled as idempotent7593 performs multiple times sequentially without raising an exception7594 marks the blobs as pending_destruction and returns ok7595 when admin mode is disabled7596 behaves like not expiring blobs and manifests7597 does not expire blobs and manifests7598 a non-admin user7599 behaves like not expiring blobs and manifests7600 does not expire blobs and manifests7601 an invalid user id7602 behaves like not expiring blobs and manifests7603 does not expire blobs and manifests7604 an invalid group7605 behaves like not expiring blobs and manifests7606 does not expire blobs and manifests7607projects/_flash_messages7608 when current_user has download_code permission7609 when user has a terraform state7610 doesn't show the terraform notification banner7611 when there are no .tf files in the repository7612 doesn't show the terraform notification banner7613 when .tf files are present in the repository and user does not have any terraform states7614 shows the terraform notification banner7615Mutations::Environments::CanaryIngress::Update7616 #resolve7617 when service execution succeeded7618 returns no errors7619 with certificate_based_clusters disabled7620 returns notice about feature removal7621 when service encounters a problem7622 returns an error7623 when user is reporter who does not have permission to access the environment7624 raises an error7625Gitlab::Ci::Matching::BuildMatcher7626 .new7627 when attributes are missing7628 is expected to raise KeyError7629 with attributes7630 is expected to eq true7631 is expected to eq ["tag1", "tag2"]7632 is expected to eq [1, 2, 3]7633 is expected to eq :my_project7634 #protected?7635 when protected is set to true7636 is expected to be truthy7637 when protected is set to false7638 is expected to be falsey7639 #has_tags?7640 when tags are present7641 is expected to be truthy7642 when tags are empty7643 is expected to be falsey7644Gitlab::UsageDataNonSqlMetrics7645 #add_metric7646 computes the metric value for given metric7647 .count7648 returns default value for count7649 .distinct_count7650 returns default value for distinct count7651 .estimate_batch_distinct_count7652 returns default value for estimate_batch_distinct_count7653 .sum7654 returns default value for sum7655 .histogram7656 returns default value for histogram7657 min/max methods7658 model: User(id: integer, email: string, encrypted_password: string, reset_password_token: string, reset_password_sent_at: datetime, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, created_at: datetime, updated_at: datetime, name: string, admin: boolean, projects_limit: integer, skype: string, linkedin: string, twitter: string, failed_attempts: integer, locked_at: datetime, username: string, can_create_group: boolean, can_create_team: boolean, state: string, color_scheme_id: integer, password_expires_at: datetime, created_by_id: integer, last_credential_check_at: datetime, avatar: string, confirmation_token: string, confirmed_at: datetime, confirmation_sent_at: datetime, unconfirmed_email: string, hide_no_ssh_key: boolean, website_url: string, admin_email_unsubscribed_at: datetime, notification_email: string, hide_no_password: boolean, password_automatically_set: boolean, location: string, encrypted_otp_secret: string, encrypted_otp_secret_iv: string, encrypted_otp_secret_salt: string, otp_required_for_login: boolean, otp_backup_codes: text, public_email: string, dashboard: integer, project_view: integer, consumed_timestep: integer, layout: integer, hide_project_limit: boolean, note: text, unlock_token: string, otp_grace_period_started_at: datetime, external: boolean, incoming_email_token: string, organization: string, auditor: boolean, require_two_factor_authentication_from_group: boolean, two_factor_grace_period: integer, last_activity_on: date, notified_of_own_activity: boolean, preferred_language: string, email_opted_in: boolean, email_opted_in_ip: string, email_opted_in_source_id: integer, email_opted_in_at: datetime, theme_id: integer, accepted_term_id: integer, feed_token: string, private_profile: boolean, roadmap_layout: integer, include_private_contributions: boolean, commit_email: string, group_view: integer, managing_group_id: integer, first_name: string, last_name: string, static_object_token: string, role: integer, user_type: integer, static_object_token_encrypted: text, otp_secret_expires_at: datetime_with_timezone, otp_secret: ), result: nil7659 returns nil7660 model: Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer), result: nil7661 returns nil7662 model: Deployment(id: integer, iid: integer, project_id: integer, environment_id: integer, ref: string, tag: boolean, sha: string, user_id: integer, deployable_type: string, created_at: datetime, updated_at: datetime, on_stop: string, status: integer, finished_at: datetime_with_timezone, cluster_id: integer, deployable_id: integer, archived: boolean), result: nil7663 returns nil7664 model: Project(id: integer, name: string, path: string, description: text, created_at: datetime, updated_at: datetime, creator_id: integer, namespace_id: integer, last_activity_at: datetime, import_url: string, visibility_level: integer, archived: boolean, avatar: string, merge_requests_template: text, star_count: integer, merge_requests_rebase_enabled: boolean, import_type: string, import_source: string, approvals_before_merge: integer, reset_approvals_on_push: boolean, merge_requests_ff_only_enabled: boolean, issues_template: text, mirror: boolean, mirror_user_id: integer, shared_runners_enabled: boolean, runners_token: string, build_coverage_regex: string, build_allow_git_fetch: boolean, build_timeout: integer, mirror_trigger_builds: boolean, pending_delete: boolean, public_builds: boolean, last_repository_check_failed: boolean, last_repository_check_at: datetime, only_allow_merge_if_pipeline_succeeds: boolean, has_external_issue_tracker: boolean, repository_storage: string, repository_read_only: boolean, request_access_enabled: boolean, has_external_wiki: boolean, ci_config_path: string, lfs_enabled: boolean, description_html: text, only_allow_merge_if_all_discussions_are_resolved: boolean, repository_size_limit: integer, printing_merge_request_link_enabled: boolean, auto_cancel_pending_pipelines: integer, service_desk_enabled: boolean, cached_markdown_version: integer, delete_error: text, last_repository_updated_at: datetime, disable_overriding_approvers_per_merge_request: boolean, storage_version: integer, resolve_outdated_diff_discussions: boolean, remote_mirror_available_overridden: boolean, only_mirror_protected_branches: boolean, pull_mirror_available_overridden: boolean, jobs_cache_index: integer, external_authorization_classification_label: string, mirror_overwrites_diverged_branches: boolean, pages_https_only: boolean, external_webhook_token: string, packages_enabled: boolean, merge_requests_author_approval: boolean, pool_repository_id: integer, runners_token_encrypted: string, bfg_object_map: string, detected_repository_languages: boolean, merge_requests_disable_committers_approval: boolean, require_password_to_approve: boolean, emails_disabled: boolean, max_pages_size: integer, max_artifacts_size: integer, remove_source_branch_after_merge: boolean, marked_for_deletion_at: date, marked_for_deletion_by_user_id: integer, autoclose_referenced_issues: boolean, suggestion_commit_message: string, project_namespace_id: integer, hidden: boolean), result: nil7665 returns nil7666Tooling::Danger::SidekiqQueues7667 #changed_queue_files7668 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]7669 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"7670 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]7671 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"7672 modified_files: ["app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml"]7673 is expected to contain exactly "app/workers/all_queues.yml"7674 modified_files: ["ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["ee/app/workers/all_queues.yml"]7675 is expected to contain exactly "ee/app/workers/all_queues.yml"7676 modified_files: ["foo"], changed_queue_files: []7677 is expected to contain exactly7678 modified_files: [], changed_queue_files: []7679 is expected to contain exactly7680 #added_queue_names7681 returns queue names added by this change7682 #changed_queue_names7683 returns names for queues whose attributes were changed7684 ignores removed queues7685IpAddressValidator7686 ip_address: "invalid IP", validity: false, errors: {:ip_address=>["must be a valid IPv4 or IPv6 address"]}7687 is expected to eq false7688 is expected to eq {:ip_address=>["must be a valid IPv4 or IPv6 address"]}7689 ip_address: "192.168.17.43", validity: true, errors: {}7690 is expected to eq true7691 is expected to eq {}7692 ip_address: "2001:0db8:85a3::8a2e:0370:7334", validity: true, errors: {}7693 is expected to eq true7694 is expected to eq {}7695 ip_address: nil, validity: true, errors: {}7696 is expected to eq true7697 is expected to eq {}7698 ip_address: "", validity: true, errors: {}7699 is expected to eq true7700 is expected to eq {}7701WikiPageVersionHelper7702 #wiki_page_version_author_url7703 when user exists7704 returns the link to the user profile7705 when user does not exist7706 returns the mailto link7707 #wiki_page_version_author_avatar7708 returns the user avatar7709 #wiki_page_version_author_header7710 when user exists7711 renders commit header with user info7712 when user does not exist7713 renders commit header with info from commit7714 when user info has XSS7715 sets the right href and escapes HTML chars7716RuboCop::QAHelpers7717 #in_qa_file?7718 returns true for a node in the qa/ directory7719 returns false for a node outside the qa/ directory7720Gitlab::Changelog::Release7721 #to_markdown7722 when there are no entries7723 includes a notice about the lack of entries7724 when all data is present7725 includes all data7726 when no merge request is present7727 doesn't include a merge request link7728 when the author is not a contributor7729 doesn't include the author7730 when the author should always be credited7731 includes the author7732 when a category has no entries7733 isn't included in the output7734 when template parser raises an error7735 raises a Changelog error7736 #header_start_position7737 returns a regular expression for finding the start of a release section7738BulkImports::Groups::Graphql::GetGroupQuery7739 has a valid query7740 #variables7741 returns query variables based on entity information7742 #data_path7743 returns data path7744 #page_info_path7745 returns pagination information path7746Gitlab::ClassAttributes7747 returns values set on the class7748 returns values set on a superclass7749 returns values from the subclass over attributes from a superclass7750 triggers after hooks after set class values7751IgnorableColumns7752 adds columns to ignored_columns7753 adds columns to ignored_columns (array version)7754 requires remove_after attribute to be set7755 requires remove_after attribute to be set7756 requires remove_with attribute to be set7757 .ignored_columns_details7758 defaults to empty Hash7759 with single column7760 behaves like storing removal information7761 storing removal information7762 with array column7763 behaves like storing removal information7764 storing removal information7765 when called on a subclass without setting the ignored columns7766 does not raise Deadlock error7767 IgnorableColumns::ColumnIgnore7768 #safe_to_remove?7769 after remove_after date has passed7770 returns true (safe to remove)7771 before remove_after date has passed7772 returns false (not safe to remove)7773Gitlab::Graphql::Pagination::Keyset::LastItems7774 when the `count` parameter is nil7775 returns a single record7776 when the `count` parameter is given7777 returns an array7778Gitlab::GlobalId::Deprecations7779 .deprecated?7780 returns a boolean to signal if model name has a deprecation7781 .deprecation_for7782 returns the deprecation for the model if it exists7783 .deprecation_by7784 returns the deprecation by the model if it exists7785 .apply_to_graphql_name7786 returns the corresponding graphql_name of the GID for the new model7787 returns the same value if there is no deprecation7788Gitlab::Ci::Pipeline::Preloader7789 .preload!7790 preloads commit authors, number of warnings and ref commits7791 returns original collection7792 when preloading multiple commits7793 preloads all commits once7794BulkImports::Groups::Graphql::GetProjectsQuery7795 has a valid query7796 with invalid variables7797 raises an error7798 #data_path7799 returns data path7800 #page_info_path7801 returns pagination information path7802Issuable::ProcessAssignees7803 #execute7804 returns assignee_ids when add_assignee_ids and remove_assignee_ids are not specified7805 combines other ids when assignee_ids is nil7806 combines other ids when both add_assignee_ids and remove_assignee_ids are not empty7807 combines other ids when remove_assignee_ids is not empty7808 combines other ids when add_assignee_ids is not empty7809 combines ids when existing_assignee_ids and extra_assignee_ids are omitted7810Gitlab::SlashCommands::Presenters::IssueClose7811 is expected to be a kind of Hash7812 shows the issue7813 confidential issue7814 shows an ephemeral response7815shared/projects/_list7816 with projects7817 renders the list of projects7818 will not show elements a user shouldn't be able to see7819 without projects7820 when @contributed_projects is set7821 and is empty7822 renders a no-content message7823 when @starred_projects is set7824 and is empty7825 renders a no-content message7826 and without a special instance variable7827 for an explore_page7828 renders a no-content message7829 for a non-explore page7830 renders a no-content message7831Types::MergeRequests::AssigneeType7832 behaves like a user type with merge request interaction type7833 is expected to require graphql authorizations :read_user7834 has the expected fields7835 #merge_request_interaction7836 returns the correct type7837 has the correct arguments7838ProtectedBranchPolicy7839 branches can be updated via project maintainers7840 branches can't be updated by guests7841Sidebars::MenuItem7842 includes by default aria-label attribute set to the title7843 when aria-label is overridde during initialization7844 sets the aria-label to the new attribute7845Gitlab::ManifestImport::Metadata7846 #save7847 stores data in Redis with an expiry of EXPIRY_TIME7848 #repositories7849 allows repositories to round-trip with symbol keys7850 uses the fallback when there is nothing in Redis7851 #group_id7852 returns the group ID as an integer7853 uses the fallback when there is nothing in Redis7854Mutations::CustomerRelations::Organizations::Update7855 is expected to require graphql authorizations :admin_crm_organization7856 #resolve7857 when the user does not have permission to update an organization7858 raises an error7859 when the organization does not exist7860 raises an error7861 when the user has permission to update an organization7862 updates the organization with correct values7863 when the feature is disabled7864 raises an error7865Users::CreditCardValidation7866 is expected to belong to user required: false7867 is expected to validate that the length of :holder_name is at most 507868 is expected to validate that the length of :network is at most 327869 is expected to validate that :last_digits looks like a number less than or equal to 99997870 .similar_records7871 returns matches with the same last_digits, expiration and network, ordered by credit_card_validated_at7872Taskable7873 .get_tasks7874 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"- [x]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"* [x]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"* [ ]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"+ [ ]\", source=\"No-break space (U+00A0)\">", "#<struct TaskList::Item checkbox_text=\"+ [ ]\", source=\"Figure space (U+2007)\">", "#<struct TaskList::Item checkbox_text=\"+ [ ]\", source=\"Narrow no-break space (U+202F)\">", "#<struct TaskList::Item checkbox_text=\"+ [ ]\", source=\"Thin space (U+2009)\">"]7875 #task_list_items7876 issuable_type: :issue7877 when description is present7878 gets tasks from markdown7879 when description is blank7880 returns empty array7881 does not try to get tasks from markdown7882 issuable_type: :merge_request7883 when description is present7884 gets tasks from markdown7885 when description is blank7886 returns empty array7887 does not try to get tasks from markdown7888RssHelper7889 #rss_url_options7890 when signed in7891 includes the current_user's feed_token7892 when signed out7893 does not have a feed_token7894 when feed_token disabled7895 does not have a feed_token7896projects/generic_commit_statuses/_generic_commit_status.html.haml7897 won't include a column with a link to its pipeline by default7898 can include a column with a link to its pipeline7899PagesDomainSslRenewalWorker7900 #perform7901 delegates to ObtainLetsEncryptCertificateService7902 when domain was deleted7903 does nothing7904 when domain is disabled7905 does nothing7906RuboCop::Cop::FilenameLength7907 does not flag files with names 100 characters long7908 tags files with names 101 characters long7909 tags files with names 256 characters long7910 tags files with filepath 256 characters long7911 tags files with filepath 257 characters long7912ObjectPool::JoinWorker7913 #perform7914 when the pool is not joinable7915 doesn't raise an error7916 when the pool has been joined before7917 succeeds in joining7918AccessTokensHelper7919 #scope_description7920 prefix: :personal_access_token, description_location: [:doorkeeper, :scope_desc]7921 is expected to eq [:doorkeeper, :scope_desc]7922 prefix: :project_access_token, description_location: [:doorkeeper, :project_access_token_scope_desc]7923 is expected to eq [:doorkeeper, :project_access_token_scope_desc]7924 #tokens_app_data7925 returns expected json7926 #expires_at_field_data7927 returns expected hash7928Gitlab::GithubImport::Importer::NotesImporter7929 #parallel?7930 returns true when running in parallel mode7931 returns false when running in sequential mode7932 #execute7933 when running in parallel mode7934 imports notes in parallel7935 when running in sequential mode7936 imports notes in sequence7937 #sequential_import7938 imports each note in sequence7939 #parallel_import7940 imports each note in parallel7941 #id_for_already_imported_cache7942 returns the ID of the given note7943 #collection_options7944 returns an empty Hash7945Mutations::CustomerRelations::Contacts::Update7946 is expected to require graphql authorizations :admin_crm_contact7947 #resolve7948 when the user does not have permission to update a contact7949 raises an error7950 when the contact does not exist7951 raises an error7952 when the user has permission to update a contact7953 updates the organization with correct values7954Gitlab::X509::Commit7955 #signature7956 returns the cached signature7957 on second call7958 unsigned commit7959 returns nil7960Metrics::SampleMetricsService7961 query7962 when the file is not found7963 is expected to be nil7964 when the file is found7965 loads data from the sample file correctly7966 when the identifier is for a path outside of sample_metrics7967 is expected to be nil7968API::Entities::PersonalAccessToken7969 #as_json7970 returns token data7971Types::Packages::Conan::FileMetadatumType7972 includes conan file metadatum fields7973Packages::Pypi::PackageFinder7974 execute7975 within a project7976 is expected to eq #<Packages::Package id: 33, project_id: 1604, created_at: "2022-06-29 20:40:44.897006928 +0000", upda...name: "pypi-package-2", version: "1.0.2", package_type: "pypi", creator_id: 2772, status: "default">7977 within a group7978 is expected to eq #<Packages::Package id: 33, project_id: 1604, created_at: "2022-06-29 20:40:44.897006928 +0000", upda...name: "pypi-package-2", version: "1.0.2", package_type: "pypi", creator_id: 2772, status: "default">7979Gitlab::Metrics::Dashboard::Cache7980 .fetch7981 stores data correctly7982 .for7983 returns a new instance7984 #fetch7985 stores data correctly7986 #delete_all!7987 deletes keys of the given project7988 does not fail when nothing to delete7989 multiple fetches and deletes7990 aggregate_failures7991Mutations::CustomEmoji::Create7992 #resolve7993 creates the custom emoji7994 sets the creator to be the user who added the emoji7995Gitlab::Ci::Reports::Security::Locations::SecretDetection7996 behaves like vulnerability location7997 #initialize7998 when all params are given7999 initializes an instance8000 param: :file_path8001 when param file_path is missing8002 raises an error8003 param: :start_line8004 when param start_line is missing8005 raises an error8006 #fingerprint8007 generates expected fingerprint8008 #fingerprint_path8009 generates expected fingerprint8010 #==8011 returns true when fingerprints are equal8012 returns false when fingerprints are different8013BulkImports::Projects::Transformers::ProjectAttributesTransformer8014 #transform8015 transforms name to destination name8016 adds path as parameterized name8017 transforms visibility level8018 adds import type8019 converts all keys to symbols8020 namespace_id8021 when destination namespace is present8022 adds namespace_id8023 when destination namespace is blank8024 does not add namespace_id key8025API::Helpers::LabelHelpers8026 create_service_params8027 when a project is given8028 returns the expected params8029 when a group is given8030 returns the expected params8031 when something else is given8032 raises a type error8033Gitlab::QuickActions::SpendTimeAndDateSeparator8034 #execute8035 invalid paramenter in arg line8036 empty arg line8037 behaves like arg line with invalid parameters8038 return nil8039 future date in arg line8040 behaves like arg line with invalid parameters8041 return nil8042 unparseable date(invalid mixes of delimiters)8043 behaves like arg line with invalid parameters8044 return nil8045 trash in arg line8046 return nil as time value8047 only time present in arg line8048 behaves like arg line with valid parameters8049 return time and date array8050 simple time with date in arg line8051 behaves like arg line with valid parameters8052 return time and date array8053 composite time with date in arg line8054 behaves like arg line with valid parameters8055 return time and date array8056Metrics::Dashboard::ScheduleAnnotationsPruneWorker8057 #perform8058 schedules annotations prune job with default cut off date8059Autocomplete::ActsAsTaggableOn::TagsFinder8060 #execute8061 with empty params8062 returns all tags8063 filter by search8064 with an empty search term8065 returns all tags8066 with a search containing 2 characters8067 returns the tag that strictly matches the search term8068 with a search containing 3 characters8069 returns the tag that partially matches the search term8070 limit8071 limits the result set by the limit constant8072Gitlab::Git::WikiPageVersion8073 #author8074 user exists in gitlab8075 returns the user8076 user does not exist in gitlab8077 returns nil8078Users::RespondToTermsService8079 #execute8080 creates a new agreement if it did not exist8081 updates an agreement if it existed8082 adds the accepted terms to the user8083 removes accepted terms when declining8084devise/sessions/new8085 marketing text8086 when flash is anything it renders marketing text8087 when flash notice is devise confirmed message it hides marketing text8088 ldap8089 is shown when enabled8090 is not shown when LDAP sign in is disabled8091TermAgreement8092 validations8093 is expected to validate that :term cannot be empty/falsy8094 is expected to validate that :user cannot be empty/falsy8095 .accepted8096 only includes accepted terms8097Gitlab::SlashCommands::Presenters::Run8098 #present8099 when no builds are present8100 returns an error8101 when a responder could be found8102 returns the output for a scheduled pipeline8103 when a responder could not be found8104 returns an error8105 #unsupported_chat_service8106 returns an ephemeral response8107 #failed_to_schedule8108 returns an ephemeral response8109Types::ContainerRepositoryType8110 is expected to eq "ContainerRepository"8111 is expected to eq "A container repository"8112 is expected to require graphql authorizations :read_container_image8113 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :project, :migration_state, and :last_cleanup_deleted_tags_count8114 status field8115 returns status enum8116 expiration_policy_cleanup_status field8117 returns cleanup status enum8118ProjectMirrorSerializer8119 represents ProjectMirror entities8120Gitlab::SnippetSearchResults8121 #snippet_titles_count8122 returns the amount of matched snippet titles8123 #formatted_count8124 returns the expected formatted count8125 #highlight_map8126 returns the expected highlight map8127 #objects8128 uses page and per_page to paginate results8129Gitlab::DependencyLinker::GoSumLinker8130 .support?8131 supports go.sum8132 does not support other files8133 #link8134 links modules8135 links checksums8136Ci::JobArtifacts::ExpireProjectBuildArtifactsWorker8137 #perform8138 executes ExpireProjectArtifactsService service with the project8139 when project does not exist8140 does nothing8141Gitlab::SubmoduleLinks8142 #for8143 when there is no .gitmodules file8144 returns no links8145 when the submodule is unknown8146 returns no links8147 when the submodule is known8148 returns links and caches the by ref8149 when ref name contains a dash8150 returns links8151 and the diff information is available8152 the returned links include the compare link8153 but the submodule url has changed8154 the returned links do not include the compare link8155Resolvers::Projects::GrafanaIntegrationResolver8156 #resolve8157 when object is not a project8158 is expected to eq nil8159 when object is a project8160 is expected to eq #<GrafanaIntegration id: 1, project_id: 1610, created_at: "2022-06-29 20:40:57.864668807 +0000", upda...ken_iv: "eO4GtlrZ9RujkOl5\n", grafana_url: "https://grafana.example.com", enabled: true, token: nil>8161 when object is nil8162 is expected to eq nil8163GroupDeployKeyEntity8164 returns group deploy keys with a group a user can read8165 is expected to eq {:can_edit=>false, :created_at=>2022-06-29 20:40:58.543117660 +0000, :fingerprint=>"7c:55:a6:c4:ac:a3..., :id=>1, :title=>"My title 1232", :updated_at=>2022-06-29 20:40:58.543117660 +0000, :user_id=>2792}8166JSONWebToken::RSAToken8167 token8168 for valid key to be validated8169 is expected not to raise Exception8170 is expected to include {"key" => "value"}8171 is expected to eq {"alg"=>"RS256", "kid"=>"OGXY:4TR7:FAVO:WEM2:XXEW:E4FP:TKL7:7ACK:TZAF:D54P:SUIA:P3B2", "typ"=>"JWT"}8172 for invalid key to raise an exception8173 is expected to raise JWT::DecodeError8174Issuables::ClearGroupsIssueCounterWorker8175 #perform8176 does not call count service or rise error when group_ids is empty8177 behaves like an idempotent worker8178 is labeled as idempotent8179 performs multiple times sequentially without raising an exception8180 clears the cached issue count in given groups and ancestors8181Gitlab::Email::Message::InProductMarketing::Helper8182 unsubscribe_message8183 gitlab.com8184 format is HTML8185 returns the correct HTML8186 format is text8187 returns the correct string8188 self-managed8189 format is HTML8190 returns the correct HTML8191 format is text8192 returns the correct string8193Gitlab::EventStore::Event8194 when schema is not defined8195 raises an error on initialization8196 when schema is defined8197 schema validation8198 when data matches the schema8199 initializes the event correctly8200 when required properties are present as well as unknown properties8201 initializes the event correctly8202 when some properties are missing8203 expects all properties to be present8204 when data is not a Hash8205 raises an error8206Gitlab::Git::CommitStats8207 returns commit stats and caches them8208Import/Export attribute configuration8209 has no new columns8210StuckCiJobsWorker8211 #perform8212 enqueues a Ci::StuckBuilds::DropRunningWorker job8213 enqueues a Ci::StuckBuilds::DropScheduledWorker job8214 executes an instance of Ci::StuckBuilds::DropPendingService8215OmniAuth::Strategies::OAuth28216 verifies the gem version8217 when a Faraday exception is raised8218 exception: Faraday::TimeoutError8219 passes the exception to OmniAuth8220 exception: Faraday::ConnectionFailed8221 passes the exception to OmniAuth8222Users::Calloutable8223 Associations8224 is expected to belong to user required: false8225 validations8226 is expected to validate that :user cannot be empty/falsy8227 #dismissed_after?8228 returns whether a callout dismissed after specified date8229Gitlab::Prometheus::Queries::KnativeInvocationQuery8230 verify queries8231 has the query, but no data8232Gitlab::GraphqlLogger8233 builds a logger once8234 logging a GraphQL query8235 logs a query from JSON8236Gitlab::Database::Partitioning::PartitionMonitoring8237 #report_metrics8238 reports number of present partitions8239 reports number of missing partitions8240 reports number of extra partitions8241Import metrics on production seed8242 imports all prometheus metrics8243BitbucketServer::Collection8244 #current_page8245 returns 18246 #prev_page8247 returns nil8248 #next_page8249 returns 28250RuboCop::Cop::CodeReuse::Finder8251 flags the use of a Finder inside another Finder8252 flags the use of a Finder inside a model class method8253 does not flag the use of a Finder in a non Finder file8254 does not flag the use of a Finder in a regular class method8255Gitlab::GitalyClient::PraefectInfoService8256 #repository_replicas8257 sends an RPC request8258Banzai::Pipeline::BroadcastMessagePipeline8259 allows `a` elements8260 is expected to eq "<p><a>Link</a></p>"8261 allows `br` elements8262 is expected to eq "<p>Hello<br>World</p>"8263Gitlab::UsageDataCounters::GitLabCliActivityUniqueCounter8264 when tracking a gitlab cli request8265 behaves like a request from an extension8266 tracks when the user agent is matching8267 does not track when the user agent is not matching8268 does not track if user agent is not present8269 does not track if user is not present8270BulkImports::Groups::Extractors::SubgroupsExtractor8271 #extract8272 returns ExtractedData response8273Types::ErrorTracking::SentryErrorStackTraceType8274 is expected to eq "SentryErrorStackTrace"8275 is expected to require graphql authorizations :read_sentry_issue8276 exposes the expected fields8277Gitlab::Database::PostgresqlDatabaseTasks::LoadSchemaVersionsMixin8278 calls SchemaMigrations load_all8279RuboCop::Cop::AvoidBecomes8280 flags the use of becomes with a constant parameter8281 flags the use of becomes with a namespaced constant parameter8282 flags the use of becomes with a dynamic parameter8283Types::ErrorTracking::SentryErrorType8284 is expected to eq "SentryError"8285 exposes the expected fields8286Ci::PipelineConfig8287 is expected to belong to pipeline required: false8288 is expected to validate that :pipeline cannot be empty/falsy8289 is expected to validate that :content cannot be empty/falsy8290Types::Ci::Config::JobType8291 is expected to eq "CiConfigJob"8292 exposes the expected fields8293Gitlab::Utils::SafeInlineHash8294 .merge_keys!8295 when hash is too big8296 raises an exception8297 when hash has an acceptaable size8298 returns a result of InlineHash8299Types::QueryComplexityType8300 is expected to have graphql fields :limit and :score8301 works when executed8302Types::Ci::TestReportSummaryType8303 is expected to eq "TestReportSummary"8304 contains attributes related to a pipeline test report summary8305Types::Packages::Helm::FileMetadatumType8306 is expected to eq "HelmFileMetadata"8307 includes helm file metadatum fields8308ProductAnalytics::Tracker8309 is expected to eq "http://localhost/-/sp.js"8310 is expected to eq "localhost/-/collector"8311Types::Packages::PackageSortEnum8312 exposes all package sort values8313Gitlab::Kubernetes::Kubeconfig::Entry::Context8314 #to_h8315 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}8316 with a namespace8317 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}8318Gitlab::Graphql::Tracers::ApplicationContextTracer8319 sets application context during execute_query and cleans up afterwards8320 sets caller_id when operation is not known8321Gitlab::Diff::InlineDiffMarker8322 #mark8323 when the rich text is html safe8324 marks the range8325 when the text is not html safe8326 marks the range8327Gitlab::Kubernetes::RoleBinding#generate8328 builds a Kubeclient Resource8329Tooling::VisualReviewHelper8330 #visual_review_toolbar_options8331 returns the correct params8332Types::Ci::VariableTypeEnum8333 matches the keys of Ci::Variable.variable_types8334DiscussionNote8335 #to_ability_name8336 is expected to eq "note"8337Sidebars::Projects::Context8338 sets project attribute reader8339TermsHelper8340 #terms_data8341 returns correct json8342TaggableQueries8343 keeps MAX_TAGS_IDS in sync with TAGS_LIMIT8344Gitlab::GithubImport::Representation::ExposeAttribute8345 defines a getter method that returns an attribute value8346Code review events8347 the aggregated metrics contain all the code review metrics8348Types::SubscriptionType8349 has the expected fields8350Knapsack report was generated. Preview:8351{8352 "spec/models/repository_spec.rb": 281.57078413,8353 "spec/services/merge_requests/refresh_service_spec.rb": 292.0865335369999,8354 "spec/lib/gitlab/regex_spec.rb": 30.026262238000527,8355 "spec/lib/gitlab/auth_spec.rb": 147.60567380800057,8356 "spec/models/concerns/resolvable_discussion_spec.rb": 87.63273107900022,8357 "spec/services/boards/issues/list_service_spec.rb": 107.39180542400027,8358 "spec/services/projects/destroy_service_spec.rb": 85.62661795200074,8359 "spec/services/merge_requests/squash_service_spec.rb": 68.83332214300026,8360 "spec/services/users/destroy_service_spec.rb": 63.51565315799962,8361 "spec/lib/gitlab/database/consistency_checker_spec.rb": 62.44122731199968,8362 "spec/models/clusters/applications/cilium_spec.rb": 48.07474020999871,8363 "spec/lib/gitlab/git_access_snippet_spec.rb": 29.699871300999803,8364 "spec/services/resource_access_tokens/create_service_spec.rb": 30.042496689999098,8365 "spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb": 33.362786252999285,8366 "spec/models/integrations/bamboo_spec.rb": 18.33233789299993,8367 "spec/models/integrations/pipelines_email_spec.rb": 31.614838846000566,8368 "spec/graphql/mutations/merge_requests/set_labels_spec.rb": 27.842456247000882,8369 "spec/services/verify_pages_domain_service_spec.rb": 8.375948814000367,8370 "spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb": 26.158391716999176,8371 "spec/graphql/resolvers/merge_requests_resolver_spec.rb": 21.01029113000004,8372 "spec/helpers/commits_helper_spec.rb": 22.427697916000398,8373 "spec/services/projects/detect_repository_languages_service_spec.rb": 28.346289509998314,8374 "spec/lib/banzai/reference_parser/user_parser_spec.rb": 19.926290538000103,8375 "spec/models/projects/build_artifacts_size_refresh_spec.rb": 19.298836242000107,8376 "spec/helpers/labels_helper_spec.rb": 13.61551508499906,8377 "spec/serializers/merge_request_poll_widget_entity_spec.rb": 17.285680409000634,8378 "spec/finders/packages/nuget/package_finder_spec.rb": 11.828102280000167,8379 "spec/lib/gitlab/relative_positioning/range_spec.rb": 3.2539345269997284,8380 "spec/services/issues/zoom_link_service_spec.rb": 10.083107182999811,8381 "spec/lib/gitlab/import_export/import_failure_service_spec.rb": 17.00670478400025,8382 "spec/lib/gitlab/ci/templates/npm_spec.rb": 16.415463555000315,8383 "spec/graphql/mutations/issues/update_spec.rb": 14.37958626299951,8384 "spec/services/merge_requests/link_lfs_objects_service_spec.rb": 14.88880068600156,8385 "spec/services/issuable/clone/attributes_rewriter_spec.rb": 16.704448599999523,8386 "spec/models/merge_request_diff_file_spec.rb": 17.95171503399979,8387 "spec/services/design_management/save_designs_service_spec.rb": 11.023045552999974,8388 "spec/tasks/gitlab/user_management_rake_spec.rb": 15.28977078599928,8389 "spec/models/diff_discussion_spec.rb": 15.383489530000588,8390 "spec/models/ci/secure_file_spec.rb": 12.046148748000633,8391 "spec/services/ci/archive_trace_service_spec.rb": 11.95181591400069,8392 "spec/lib/gitlab/ci/trace/checksum_spec.rb": 10.210673355999461,8393 "spec/services/projects/hashed_storage/rollback_repository_service_spec.rb": 10.785195045000364,8394 "spec/workers/create_commit_signature_worker_spec.rb": 8.600372091999816,8395 "spec/models/integrations/mattermost_slash_commands_spec.rb": 7.310917150000023,8396 "spec/services/packages/maven/metadata/sync_service_spec.rb": 6.430875668000226,8397 "spec/models/project_feature_usage_spec.rb": 8.988579331000437,8398 "spec/graphql/types/merge_request_type_spec.rb": 6.39227666899933,8399 "spec/graphql/mutations/issues/create_spec.rb": 9.045117098999981,8400 "spec/helpers/todos_helper_spec.rb": 8.141105416001665,8401 "spec/routing/git_http_routing_spec.rb": 5.988991091000571,8402 "spec/models/release_highlight_spec.rb": 7.894629809001344,8403 "spec/views/ci/status/_icon.html.haml_spec.rb": 9.189756220999698,8404 "spec/services/clusters/agents/refresh_authorization_service_spec.rb": 10.013029567000558,8405 "spec/finders/merge_requests/oldest_per_commit_finder_spec.rb": 9.9595277490007,8406 "spec/tasks/gitlab/smtp_rake_spec.rb": 5.691673716000878,8407 "spec/models/hooks/project_hook_spec.rb": 7.5671919569995225,8408 "spec/helpers/invite_members_helper_spec.rb": 2.8304352590002964,8409 "spec/lib/gitlab/gitaly_client/blob_service_spec.rb": 5.280635798999356,8410 "spec/services/issues/reorder_service_spec.rb": 7.01719683599913,8411 "spec/services/jira_import/start_import_service_spec.rb": 7.088575772000695,8412 "spec/lib/gitlab/import_export/file_importer_spec.rb": 4.626763504000337,8413 "spec/models/pages/lookup_path_spec.rb": 4.9895063139993,8414 "spec/workers/deployments/update_environment_worker_spec.rb": 7.017582425998626,8415 "spec/services/merge_requests/bulk_remove_attention_requested_service_spec.rb": 7.4838144310015196,8416 "spec/lib/gitlab/deploy_key_access_spec.rb": 5.034497021999414,8417 "spec/services/wiki_pages/create_service_spec.rb": 7.607539054999506,8418 "spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb": 7.037690924998969,8419 "spec/models/lfs_object_spec.rb": 5.402674111999659,8420 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 1.2390403839999635,8421 "spec/lib/gitlab/template_parser/ast_spec.rb": 2.376904464999825,8422 "spec/helpers/page_layout_helper_spec.rb": 2.1136847580000904,8423 "spec/helpers/badges_helper_spec.rb": 2.0130767330010713,8424 "spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb": 6.489631423999526,8425 "spec/workers/container_expiration_policy_worker_spec.rb": 3.9838939080000273,8426 "spec/services/prometheus/proxy_service_spec.rb": 1.464385322000453,8427 "spec/rubocop/cop/rspec/factory_bot/inline_association_spec.rb": 1.3689469969995116,8428 "spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb": 1.5381064880002668,8429 "spec/lib/gitlab/cache/import/caching_spec.rb": 1.056687112999498,8430 "spec/graphql/resolvers/group_issues_resolver_spec.rb": 4.967086255999675,8431 "spec/lib/banzai/reference_parser/external_issue_parser_spec.rb": 5.553979684000296,8432 "spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb": 8.581218912999248,8433 "spec/services/ci/job_artifacts/expire_project_build_artifacts_service_spec.rb": 3.313323553000373,8434 "spec/lib/gitlab/git_access_project_spec.rb": 3.13342681299946,8435 "spec/lib/gitlab/safe_request_store_spec.rb": 1.3687927770006354,8436 "spec/helpers/projects/error_tracking_helper_spec.rb": 2.04141301099844,8437 "spec/lib/gitlab/utils/override_spec.rb": 1.1887771970014,8438 "spec/lib/gitlab/repo_path_spec.rb": 2.910334235000846,8439 "spec/lib/gitlab/template_parser/parser_spec.rb": 0.8031425369990757,8440 "spec/lib/gitlab/usage_data_counters/note_counter_spec.rb": 0.8482965450002666,8441 "spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb": 0.6025363680000737,8442 "spec/lib/gitlab/metrics/background_transaction_spec.rb": 1.1527272990006168,8443 "spec/initializers/hangouts_chat_http_override_spec.rb": 2.0884660289993917,8444 "spec/services/clusters/aws/authorize_role_service_spec.rb": 3.035883857999579,8445 "spec/lib/gitlab/utils/json_size_estimator_spec.rb": 0.4208575779994135,8446 "spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb": 5.190853763000632,8447 "spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb": 1.2800497819989687,8448 "spec/lib/gitlab/ci/config/entry/jobs_spec.rb": 0.8126688570009719,8449 "spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb": 0.8337047559998609,8450 "spec/lib/pager_duty/webhook_payload_parser_spec.rb": 0.5440088110008219,8451 "spec/workers/clusters/cleanup/project_namespace_worker_spec.rb": 4.516081529998701,8452 "spec/services/packages/terraform_module/create_package_service_spec.rb": 2.3798165330008487,8453 "spec/services/snippets/update_repository_storage_service_spec.rb": 1.1641846780003107,8454 "spec/finders/context_commits_finder_spec.rb": 3.6676627849992656,8455 "spec/lib/gitlab/untrusted_regexp_spec.rb": 0.8082191359990247,8456 "spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb": 3.8839490020000085,8457 "spec/initializers/active_record_locking_spec.rb": 4.2619498030016985,8458 "spec/tooling/lib/tooling/find_codeowners_spec.rb": 1.4160662140002387,8459 "spec/models/concerns/sanitizable_spec.rb": 0.9731174180014932,8460 "spec/haml_lint/linter/no_plain_nodes_spec.rb": 0.7415251109996461,8461 "spec/presenters/issue_presenter_spec.rb": 1.5961483849987417,8462 "spec/lib/gitlab/kubernetes/node_spec.rb": 2.8244137090005097,8463 "spec/lib/gitlab/tracking_spec.rb": 1.5349536779995105,8464 "spec/models/loose_foreign_keys/modification_tracker_spec.rb": 0.44056411599922285,8465 "spec/routing/uploads_routing_spec.rb": 0.4028391880001436,8466 "spec/workers/loose_foreign_keys/cleanup_worker_spec.rb": 2.6407737389999966,8467 "spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb": 2.50291883600039,8468 "spec/lib/banzai/filter/color_filter_spec.rb": 0.699862581999696,8469 "spec/services/notification_recipients/builder/new_note_spec.rb": 3.931886100999691,8470 "spec/models/packages/debian/publication_spec.rb": 1.6105345039995882,8471 "spec/lib/gitlab/ci/reports/codequality_reports_spec.rb": 0.5215641119993961,8472 "spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb": 2.3624574639998173,8473 "spec/graphql/subscriptions/issuable_updated_spec.rb": 1.3068834109999443,8474 "spec/lib/banzai/reference_parser/design_parser_spec.rb": 3.6637658149993513,8475 "spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb": 0.5253000609991432,8476 "spec/workers/namespaces/root_statistics_worker_spec.rb": 2.131029916999978,8477 "spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb": 2.1349867160006397,8478 "spec/helpers/git_helper_spec.rb": 0.41638052800044534,8479 "spec/lib/gitlab/search_context/controller_concern_spec.rb": 2.6252483400003257,8480 "spec/lib/api/entities/release_spec.rb": 3.8595555140000215,8481 "spec/models/ci/group_variable_spec.rb": 2.5669634339992626,8482 "spec/workers/pipeline_notification_worker_spec.rb": 0.9757993780003744,8483 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.7873840479987848,8484 "spec/lib/gitlab/ci/status/build/action_spec.rb": 2.4335473000010097,8485 "spec/graphql/resolvers/concerns/looks_ahead_spec.rb": 2.6573280390002765,8486 "spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb": 0.6257314659997064,8487 "spec/models/concerns/expirable_spec.rb": 2.2612054599994735,8488 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb": 1.1479531489985675,8489 "spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb": 4.2850954410005215,8490 "spec/lib/gitlab/sidekiq_config_spec.rb": 1.870841341000414,8491 "spec/models/hooks/service_hook_spec.rb": 0.6010835879988008,8492 "spec/workers/packages/cleanup_package_registry_worker_spec.rb": 2.09692589900078,8493 "spec/graphql/types/container_expiration_policy_type_spec.rb": 0.4623286049991293,8494 "spec/workers/ci/archive_trace_worker_spec.rb": 2.353950464999798,8495 "spec/validators/system_hook_url_validator_spec.rb": 1.6154015739994065,8496 "spec/models/concerns/safe_url_spec.rb": 0.36944700999993074,8497 "spec/lib/gitlab/auth/saml/identity_linker_spec.rb": 1.6946906499997567,8498 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.5201639620008791,8499 "spec/serializers/integrations/field_entity_spec.rb": 2.7638787729993055,8500 "spec/workers/flush_counter_increments_worker_spec.rb": 0.7576546290001716,8501 "spec/models/concerns/nullify_if_blank_spec.rb": 0.40890519799904723,8502 "spec/workers/purge_dependency_proxy_cache_worker_spec.rb": 1.0824250019995816,8503 "spec/views/projects/_flash_messages.html.haml_spec.rb": 2.7424183540006197,8504 "spec/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.3372661590001371,8505 "spec/lib/gitlab/ci/matching/build_matcher_spec.rb": 0.4072231690006447,8506 "spec/lib/gitlab/usage_data_non_sql_metrics_spec.rb": 0.4989203630011616,8507 "spec/tooling/danger/sidekiq_queues_spec.rb": 0.43241356699945754,8508 "spec/validators/ip_address_validator_spec.rb": 0.49264532400047756,8509 "spec/helpers/wiki_page_version_helper_spec.rb": 1.0358221549995505,8510 "spec/rubocop/qa_helpers_spec.rb": 0.1564496009996219,8511 "spec/lib/gitlab/changelog/release_spec.rb": 1.1509896690004098,8512 "spec/lib/bulk_imports/groups/graphql/get_group_query_spec.rb": 0.452652975998717,8513 "spec/lib/gitlab/class_attributes_spec.rb": 0.2996083939997334,8514 "spec/models/concerns/ignorable_columns_spec.rb": 0.5093967630000407,8515 "spec/lib/gitlab/graphql/pagination/keyset/last_items_spec.rb": 1.0841807819997484,8516 "spec/lib/gitlab/global_id/deprecations_spec.rb": 0.4397886459992151,8517 "spec/lib/gitlab/ci/pipeline/preloader_spec.rb": 0.7869380579995777,8518 "spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb": 0.3719984210001712,8519 "spec/services/issuable/process_assignees_spec.rb": 0.4047472080001171,8520 "spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 1.8963989690000744,8521 "spec/views/shared/projects/_list.html.haml_spec.rb": 1.1211347299995396,8522 "spec/graphql/types/merge_requests/assignee_type_spec.rb": 0.34542881199922704,8523 "spec/policies/protected_branch_policy_spec.rb": 1.9970134239993058,8524 "spec/lib/sidebars/menu_item_spec.rb": 0.15726659199935966,8525 "spec/lib/gitlab/manifest_import/metadata_spec.rb": 0.31741817299916875,8526 "spec/graphql/mutations/customer_relations/organizations/update_spec.rb": 1.2593315030007943,8527 "spec/models/users/credit_card_validation_spec.rb": 1.392197885999849,8528 "spec/models/concerns/taskable_spec.rb": 0.6072314570010349,8529 "spec/helpers/rss_helper_spec.rb": 0.5427080110002862,8530 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.2861331580006663,8531 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 1.243041102999996,8532 "spec/rubocop/cop/filename_length_spec.rb": 0.25182565600152884,8533 "spec/workers/object_pool/join_worker_spec.rb": 1.4323039440005232,8534 "spec/helpers/access_tokens_helper_spec.rb": 0.31156553300024825,8535 "spec/lib/gitlab/github_import/importer/notes_importer_spec.rb": 0.48263185499854444,8536 "spec/graphql/mutations/customer_relations/contacts/update_spec.rb": 1.0181771549996483,8537 "spec/lib/gitlab/x509/commit_spec.rb": 1.3254545700001472,8538 "spec/services/metrics/sample_metrics_service_spec.rb": 0.2698579459993198,8539 "spec/lib/api/entities/personal_access_token_spec.rb": 0.25472589699893433,8540 "spec/graphql/types/packages/conan/file_metadatum_type_spec.rb": 0.18527942000037,8541 "spec/finders/packages/pypi/package_finder_spec.rb": 1.443299823000416,8542 "spec/lib/gitlab/metrics/dashboard/cache_spec.rb": 0.5161282919998484,8543 "spec/graphql/mutations/custom_emoji/create_spec.rb": 1.4315870940008608,8544 "spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb": 0.47090246500010835,8545 "spec/lib/bulk_imports/projects/transformers/project_attributes_transformer_spec.rb": 1.1553027680001833,8546 "spec/lib/api/helpers/label_helpers_spec.rb": 0.8417181750010059,8547 "spec/lib/gitlab/quick_actions/spend_time_and_date_separator_spec.rb": 0.527468610998767,8548 "spec/workers/metrics/dashboard/schedule_annotations_prune_worker_spec.rb": 0.2226009879996127,8549 "spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb": 0.39405389900093724,8550 "spec/lib/gitlab/git/wiki_page_version_spec.rb": 0.7574239990008209,8551 "spec/services/users/respond_to_terms_service_spec.rb": 1.1799937670002691,8552 "spec/views/devise/sessions/new.html.haml_spec.rb": 1.148260998999831,8553 "spec/models/term_agreement_spec.rb": 0.6305889159993967,8554 "spec/lib/gitlab/slash_commands/presenters/run_spec.rb": 0.27844728600030066,8555 "spec/graphql/types/container_repository_type_spec.rb": 0.3102789029999258,8556 "spec/serializers/project_mirror_serializer_spec.rb": 0.10209454499999993,8557 "spec/lib/gitlab/snippet_search_results_spec.rb": 0.6725536129997636,8558 "spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb": 0.41838388799988024,8559 "spec/workers/ci/job_artifacts/expire_project_build_artifacts_worker_spec.rb": 0.6825951440005156,8560 "spec/lib/gitlab/submodule_links_spec.rb": 0.41274234800039267,8561 "spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb": 0.7723891790010384,8562 "spec/serializers/group_deploy_key_entity_spec.rb": 0.7803514280003583,8563 "spec/lib/json_web_token/rsa_token_spec.rb": 0.2887395150009979,8564 "spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb": 0.7487837900007435,8565 "spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb": 0.2620679060000839,8566 "spec/lib/gitlab/event_store/event_spec.rb": 0.2974184939994302,8567 "spec/lib/gitlab/git/commit_stats_spec.rb": 0.6323745360004978,8568 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 1.101793911000641,8569 "spec/workers/stuck_ci_jobs_worker_spec.rb": 0.3110973439997906,8570 "spec/initializers/100_patch_omniauth_oauth2_spec.rb": 0.2585753860003024,8571 "spec/models/users/calloutable_spec.rb": 0.5917456189999939,8572 "spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb": 0.6466440350013727,8573 "spec/lib/gitlab/graphql_logger_spec.rb": 0.18565659999876516,8574 "spec/lib/gitlab/database/partitioning/partition_monitoring_spec.rb": 0.20647231899965846,8575 "spec/db/production/import_common_metrics_spec.rb": 0.5768867999995564,8576 "spec/lib/bitbucket_server/collection_spec.rb": 0.1890506589988945,8577 "spec/rubocop/cop/code_reuse/finder_spec.rb": 0.26978102499924717,8578 "spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb": 0.6187067569990177,8579 "spec/lib/banzai/pipeline/broadcast_message_pipeline_spec.rb": 0.7751970389999769,8580 "spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb": 0.44865245599976333,8581 "spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.4032000080005673,8582 "spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb": 0.16184443200108944,8583 "spec/lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin_spec.rb": 0.10016956400068011,8584 "spec/rubocop/cop/avoid_becomes_spec.rb": 0.18795142999988457,8585 "spec/graphql/types/error_tracking/sentry_error_type_spec.rb": 0.17516354100007447,8586 "spec/models/ci/pipeline_config_spec.rb": 0.26229062600032194,8587 "spec/graphql/types/ci/config/job_type_spec.rb": 0.1695513310005481,8588 "spec/lib/gitlab/utils/safe_inline_hash_spec.rb": 0.1622686610007804,8589 "spec/graphql/types/query_complexity_type_spec.rb": 0.12469689399949857,8590 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.21628203799991752,8591 "spec/graphql/types/packages/helm/file_metadatum_type_spec.rb": 0.15912242100057483,8592 "spec/lib/product_analytics/tracker_spec.rb": 0.17190878099972906,8593 "spec/graphql/types/packages/package_sort_enum_spec.rb": 0.11475290399903315,8594 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.2071992990004219,8595 "spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb": 0.2124083390008309,8596 "spec/lib/gitlab/diff/inline_diff_marker_spec.rb": 0.14317742200000794,8597 "spec/lib/gitlab/kubernetes/role_binding_spec.rb": 0.12534232399957546,8598 "spec/helpers/tooling/visual_review_helper_spec.rb": 0.12439855399861699,8599 "spec/graphql/types/ci/variable_type_enum_spec.rb": 0.1229951829991478,8600 "spec/models/discussion_note_spec.rb": 0.11335115399924689,8601 "spec/lib/sidebars/projects/context_spec.rb": 0.20161540899971442,8602 "spec/helpers/terms_helper_spec.rb": 0.1292649730003177,8603 "spec/models/concerns/taggable_queries_spec.rb": 0.21416642800068075,8604 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.12229378399933921,8605 "spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb": 0.22703797800022585,8606 "spec/graphql/types/subscription_type_spec.rb": 0.105275944000823078607}8608Knapsack global time execution for tests: 37m 23s8609Pending: (Failures listed here are expected and do not affect your suite's status)8610 1) DesignManagement::SaveDesignsService#execute when the feature is available scalability runs the same queries for all requests, regardless of number of files8612 # ./spec/services/design_management/save_designs_service_spec.rb:3758613 2) ReleaseHighlight.paginated with page param when there is NOT another page of results responds with paginated results and no next_page8614 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example8615 # ./spec/models/release_highlight_spec.rb:398616Finished in 37 minutes 29 seconds (files took 1 minute 29.14 seconds to load)86174126 examples, 0 failures, 2 pending8618RSpec exited with 0.8619No examples to retry, congrats!8621Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8622Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8624Uploading artifacts...8625coverage/: found 5 matching files and directories 8626crystalball/: found 2 matching files and directories 8627deprecations/: found 9 matching files and directories 8628knapsack/: found 3 matching files and directories 8629rspec/: found 9 matching files and directories 8630WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8631log/*.log: found 19 matching files and directories 8632WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553376/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8633WARNING: Retrying... context=artifacts-uploader error=request redirected8634Uploading artifacts as "archive" to coordinator... 201 Created id=2658553376 responseStatus=201 Created token=nWNntcws8635Uploading artifacts...8636rspec/junit_rspec.xml: found 1 matching files and directories 8637WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2658553376/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8638WARNING: Retrying... context=artifacts-uploader error=request redirected8639Uploading artifacts as "junit" to coordinator... 201 Created id=2658553376 responseStatus=201 Created token=nWNntcws8641Job succeeded