rspec unit pg12 17/22
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-3.shared-gitlab-org.runners-manager.gitlab.com/default sUrYYgEG3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256: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-suryygeg-project-278964-concurrent-0 via runner-suryygeg-shared-gitlab-org-1656405993-687ee316...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: 113684, done. 25remote: Counting objects: 100% (113684/113684), done. 26remote: Compressing objects: 100% (80120/80120), done. 27remote: Total 113684 (delta 47013), reused 73436 (delta 29194), pack-reused 0 28Receiving objects: 100% (113684/113684), 107.95 MiB | 28.64 MiB/s, done.29Resolving deltas: 100% (47013/47013), done.31 * [new ref] refs/pipelines/574770947 -> refs/pipelines/57477094732Checking out f470b997 as refs/merge-requests/90613/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 (2649391517)...44Downloading artifacts from coordinator... ok id=2649391517 responseStatus=200 OK token=Gnzm2SsK45Downloading artifacts for detect-tests (2649391533)...46Downloading artifacts from coordinator... ok id=2649391533 responseStatus=200 OK token=Gnzm2SsK47Downloading artifacts for retrieve-tests-metadata (2649391540)...48Downloading artifacts from coordinator... ok id=2649391540 responseStatus=200 OK token=Gnzm2SsK49Downloading artifacts for setup-test-env (2649391527)...50Downloading artifacts from coordinator... ok id=2649391527 responseStatus=200 OK token=Gnzm2SsK52Using 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 11 seconds.84Using decomposed database config (config/database.yml.decomposed-postgresql)85$ setup_db_user_only86CREATE ROLE87GRANT88==> 'setup_db_user_only' succeeded in 0 seconds.89$ bundle exec rake db:drop db:create db:schema:load db:migrate90Dropped database 'gitlabhq_test'91Dropped database 'gitlabhq_test_ci'92Dropped database 'gitlabhq_geo_test'93Created database 'gitlabhq_test'94Created database 'gitlabhq_test_ci'95Created database 'gitlabhq_geo_test'96==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 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 0 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$ source ./scripts/rspec_helpers.sh222==> 'scripts/gitaly-test-spawn' succeeded in 14 seconds.223$ 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_17_22_report.json231FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json232FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_17_22_report.json233NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_17_22_report.json234SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_17_22_report.txt235RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_17_22_report.txt236CRYSTALBALL: 237Knapsack node specs:238spec/services/ci/register_job_service_spec.rb239spec/services/merge_requests/push_options_handler_service_spec.rb240spec/lib/gitlab/import_export/group/tree_restorer_spec.rb241spec/services/projects/overwrite_project_service_spec.rb242spec/policies/issue_policy_spec.rb243spec/models/clusters/platforms/kubernetes_spec.rb244spec/models/clusters/applications/ingress_spec.rb245spec/models/todo_spec.rb246spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb247spec/lib/gitlab/ci/status/build/factory_spec.rb248spec/services/packages/debian/generate_distribution_service_spec.rb249spec/models/broadcast_message_spec.rb250spec/lib/gitlab/ci/parsers/security/common_spec.rb251spec/models/alert_management/alert_spec.rb252spec/models/wiki_page_spec.rb253spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb254spec/lib/banzai/filter/references/user_reference_filter_spec.rb255spec/lib/gitlab/gitaly_client/commit_service_spec.rb256spec/helpers/issues_helper_spec.rb257spec/services/search_service_spec.rb258spec/models/deploy_token_spec.rb259spec/services/snippets/create_service_spec.rb260spec/services/projects/lfs_pointers/lfs_download_service_spec.rb261spec/services/packages/nuget/update_package_from_metadata_service_spec.rb262spec/lib/gitlab/ci/status/bridge/factory_spec.rb263spec/lib/gitlab/cycle_analytics/permissions_spec.rb264spec/models/namespace/root_storage_statistics_spec.rb265spec/services/projects/update_repository_storage_service_spec.rb266spec/services/clusters/applications/check_uninstall_progress_service_spec.rb267spec/services/namespaces/in_product_marketing_emails_service_spec.rb268spec/models/ci/build_runner_session_spec.rb269spec/lib/gitlab/import_export/import_failure_service_spec.rb270spec/services/git/tag_hooks_service_spec.rb271spec/finders/starred_projects_finder_spec.rb272spec/services/ci/pipeline_trigger_service_spec.rb273spec/tasks/gitlab/user_management_rake_spec.rb274spec/presenters/clusterable_presenter_spec.rb275spec/lib/container_registry/path_spec.rb276spec/lib/banzai/reference_parser/commit_range_parser_spec.rb277spec/services/clusters/kubernetes/configure_istio_ingress_service_spec.rb278spec/services/projects/participants_service_spec.rb279spec/lib/gitlab/database/background_migration/batched_job_spec.rb280spec/lib/gitlab/pagination/keyset/order_spec.rb281spec/routing/git_http_routing_spec.rb282spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb283spec/lib/gitlab/relative_positioning/range_spec.rb284spec/services/projects/protect_default_branch_service_spec.rb285spec/serializers/paginated_diff_entity_spec.rb286spec/helpers/nav/top_nav_helper_spec.rb287spec/models/integrations/packagist_spec.rb288spec/models/clusters/kubernetes_namespace_spec.rb289spec/lib/gitlab/slash_commands/deploy_spec.rb290spec/services/preview_markdown_service_spec.rb291spec/workers/new_merge_request_worker_spec.rb292spec/routing/import_routing_spec.rb293spec/serializers/ci/lint/result_serializer_spec.rb294spec/models/project_auto_devops_spec.rb295spec/models/lfs_object_spec.rb296spec/services/ci/play_manual_stage_service_spec.rb297spec/services/draft_notes/create_service_spec.rb298spec/graphql/resolvers/projects_resolver_spec.rb299spec/tasks/gitlab/artifacts/migrate_rake_spec.rb300spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb301spec/lib/gitlab/utils/override_spec.rb302spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb303spec/lib/banzai/reference_redactor_spec.rb304spec/lib/gitlab/http_io_spec.rb305spec/lib/gitlab/background_migration/set_legacy_open_source_license_available_for_non_public_projects_spec.rb306spec/lib/banzai/filter/commit_trailers_filter_spec.rb307spec/models/sentry_issue_spec.rb308spec/lib/gitlab/repo_path_spec.rb309spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb310spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb311spec/lib/gitlab/metrics/sli_spec.rb312spec/finders/packages/debian/distributions_finder_spec.rb313spec/models/concerns/project_features_compatibility_spec.rb314spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb315spec/lib/gitlab/import_export/group/tree_saver_spec.rb316spec/workers/merge_requests/handle_assignees_change_worker_spec.rb317spec/services/ci/create_pipeline_service/parallel_spec.rb318spec/models/container_registry/event_spec.rb319spec/lib/gitaly/server_spec.rb320spec/policies/work_item_policy_spec.rb321spec/lib/api/entities/project_spec.rb322spec/lib/gitlab/hotlinking_detector_spec.rb323spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb324spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb325spec/lib/gitlab/fogbugz_import/importer_spec.rb326spec/workers/ci/pending_builds/update_group_worker_spec.rb327spec/lib/gitlab/data_builder/deployment_spec.rb328spec/lib/gitlab/ci/status/build/play_spec.rb329spec/models/concerns/has_environment_scope_spec.rb330spec/services/packages/helm/process_file_service_spec.rb331spec/models/concerns/ci/artifactable_spec.rb332spec/routing/environments_spec.rb333spec/models/project_authorization_spec.rb334spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb335spec/workers/external_service_reactive_caching_worker_spec.rb336spec/uploaders/import_export_uploader_spec.rb337spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb338spec/lib/mattermost/session_spec.rb339spec/models/concerns/taskable_spec.rb340spec/lib/gitlab/ci/status/build/retried_spec.rb341spec/services/metrics/users_starred_dashboards/create_service_spec.rb342spec/models/ci/freeze_period_spec.rb343spec/lib/gitlab/ci/parsers/security/sast_spec.rb344spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb345spec/lib/gitlab/experiment/rollout/feature_spec.rb346spec/rubocop/cop/migration/background_migration_base_class_spec.rb347spec/finders/sentry_issue_finder_spec.rb348spec/lib/gitlab/git/push_spec.rb349spec/lib/bitbucket_server/representation/comment_spec.rb350spec/lib/gitlab/diff/formatters/image_formatter_spec.rb351spec/lib/gitlab/hook_data/issue_builder_spec.rb352spec/serializers/integrations/field_entity_spec.rb353spec/services/packages/debian/generate_distribution_key_service_spec.rb354spec/lib/sidebars/groups/menus/group_information_menu_spec.rb355spec/services/packages/composer/composer_json_service_spec.rb356spec/workers/clusters/cleanup/project_namespace_worker_spec.rb357spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb358spec/graphql/resolvers/users/participants_resolver_spec.rb359spec/models/snippet_input_action_collection_spec.rb360spec/graphql/resolvers/releases_resolver_spec.rb361spec/graphql/mutations/security/ci_configuration/configure_secret_detection_spec.rb362spec/lib/gitlab/ci/tags/bulk_insert_spec.rb363spec/services/error_tracking/collect_error_service_spec.rb364spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb365spec/workers/incident_management/add_severity_system_note_worker_spec.rb366spec/models/integrations/pushover_spec.rb367spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb368spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb369spec/lib/gitlab/verify/lfs_objects_spec.rb370spec/lib/gitlab/ci/trace/backoff_spec.rb371spec/graphql/types/invitation_interface_spec.rb372spec/lib/gitlab/usage/service_ping/legacy_metric_timing_decorator_spec.rb373spec/models/spam_log_spec.rb374spec/workers/cluster_configure_istio_worker_spec.rb375spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb376spec/finders/merge_request/metrics_finder_spec.rb377spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb378spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb379spec/policies/alert_management/http_integration_policy_spec.rb380spec/models/list_user_preference_spec.rb381spec/models/uploads/local_spec.rb382spec/services/metrics/dashboard/default_embed_service_spec.rb383spec/lib/gitlab/crypto_helper_spec.rb384spec/graphql/resolvers/users/snippets_resolver_spec.rb385spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb386spec/services/users/keys_count_service_spec.rb387spec/serializers/job_artifact_report_entity_spec.rb388spec/serializers/ci/downloadable_artifact_entity_spec.rb389spec/views/admin/application_settings/ci_cd.html.haml_spec.rb390spec/lib/gitlab/git/conflict/file_spec.rb391spec/models/fork_network_member_spec.rb392spec/services/chat_names/authorize_user_service_spec.rb393spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb394spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb395spec/serializers/deploy_keys/deploy_key_entity_spec.rb396spec/lib/gitlab/noteable_metadata_spec.rb397spec/graphql/types/untrusted_regexp_spec.rb398spec/services/design_management/move_designs_service_spec.rb399spec/lib/container_registry/registry_spec.rb400spec/lib/gitlab/github_import/importer/notes_importer_spec.rb401spec/rubocop/migration_helpers_spec.rb402spec/serializers/move_to_project_entity_spec.rb403spec/views/layouts/_search.html.haml_spec.rb404spec/models/preloaders/group_policy_preloader_spec.rb405spec/helpers/instance_configuration_helper_spec.rb406spec/services/packages/composer/version_parser_service_spec.rb407spec/lib/gitlab/ci/variables/helpers_spec.rb408spec/lib/gitlab/monitor/demo_projects_spec.rb409spec/lib/gitlab/phabricator_import/issues/importer_spec.rb410spec/lib/gitlab/git/blame_spec.rb411spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb412spec/lib/gitlab/metrics/delta_spec.rb413spec/services/google_cloud/create_service_accounts_service_spec.rb414spec/lib/gitlab/app_text_logger_spec.rb415spec/presenters/packages/nuget/packages_versions_presenter_spec.rb416spec/lib/gitlab/diff/stats_cache_spec.rb417spec/lib/error_tracking/collector/sentry_request_parser_spec.rb418spec/lib/gitlab/database/pg_class_spec.rb419spec/initializers/mailer_retries_spec.rb420spec/lib/gitlab/config_checker/external_database_checker_spec.rb421spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb422spec/lib/gitlab/kubernetes/service_account_spec.rb423spec/lib/gitlab/auth/result_spec.rb424spec/lib/gitlab/alert_management/alert_status_counts_spec.rb425spec/validators/array_members_validator_spec.rb426spec/lib/gitlab/service_desk_spec.rb427spec/lib/gitlab/gitlab_import/project_creator_spec.rb428spec/lib/api/ci/helpers/runner_helpers_spec.rb429spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb430spec/models/projects/project_topic_spec.rb431spec/lib/gitlab/favicon_spec.rb432spec/lib/gitlab/ci/trace/metrics_spec.rb433spec/views/groups/milestones/index.html.haml_spec.rb434spec/models/projects/ci_feature_usage_spec.rb435spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb436spec/lib/gitlab/git/changed_path_spec.rb437spec/models/dependency_proxy/image_ttl_group_policy_spec.rb438spec/workers/x509_certificate_revoke_worker_spec.rb439spec/lib/constraints/admin_constrainer_spec.rb440spec/lib/gitlab/middleware/basic_health_check_spec.rb441spec/workers/concerns/cronjob_queue_spec.rb442spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb443spec/tooling/rspec_flaky/listener_spec.rb444spec/serializers/evidences/release_entity_spec.rb445spec/services/alert_management/http_integrations/destroy_service_spec.rb446spec/lib/gitlab/diff/pair_selector_spec.rb447spec/serializers/blob_entity_spec.rb448spec/models/badges/project_badge_spec.rb449spec/models/preloaders/commit_status_preloader_spec.rb450spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb451spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb452spec/services/boards/destroy_service_spec.rb453spec/lib/csv_builders/stream_spec.rb454spec/lib/gitlab/git/lfs_changes_spec.rb455spec/lib/banzai/filter/plantuml_filter_spec.rb456spec/graphql/types/customer_relations/contact_type_spec.rb457spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb458spec/lib/gitlab/markdown_cache/redis/store_spec.rb459spec/support_specs/matchers/be_sorted_spec.rb460spec/lib/serializers/symbolized_json_spec.rb461spec/rubocop/cop/database/multiple_databases_spec.rb462spec/lib/gitlab/app_logger_spec.rb463spec/lib/microsoft_teams/notifier_spec.rb464spec/lib/atlassian/jira_connect_spec.rb465spec/lib/banzai/commit_renderer_spec.rb466spec/rubocop/cop/scalability/idempotent_worker_spec.rb467spec/workers/todos_destroyer/confidential_issue_worker_spec.rb468spec/graphql/types/ci/config/include_type_spec.rb469spec/validators/sha_validator_spec.rb470spec/lib/api/api_spec.rb471spec/lib/gitlab/uploads_transfer_spec.rb472spec/graphql/types/saved_reply_type_spec.rb473spec/serializers/diff_line_serializer_spec.rb474spec/graphql/types/ci/config/stage_type_spec.rb475spec/lib/gitlab/render_timeout_spec.rb476spec/models/concerns/presentable_spec.rb477spec/helpers/components_helper_spec.rb478spec/lib/gitlab/rugged_instrumentation_spec.rb479spec/helpers/recaptcha_helper_spec.rb480spec/lib/gitlab/auth/otp/strategies/devise_spec.rb481spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb482spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb483spec/helpers/terms_helper_spec.rb484spec/graphql/types/mutation_type_spec.rb485spec/lib/gitlab/gitaly_client/util_spec.rb486spec/graphql/types/resolvable_interface_spec.rb487spec/graphql/types/container_repository_cleanup_status_enum_spec.rb488spec/lib/gitlab/graphql/query_analyzers/ast/recursion_analyzer_spec.rb489spec/rubocop/cop/rspec/web_mock_enable_spec.rb490spec/workers/partition_creation_worker_spec.rb491spec/spam/concerns/has_spam_action_response_fields_spec.rb492spec/graphql/types/deployment_tier_enum_spec.rb493spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb494spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb495Filter specs:496Running specs:497Running all node tests without filter498spec/services/ci/register_job_service_spec.rb499spec/services/merge_requests/push_options_handler_service_spec.rb500spec/lib/gitlab/import_export/group/tree_restorer_spec.rb501spec/services/projects/overwrite_project_service_spec.rb502spec/policies/issue_policy_spec.rb503spec/models/clusters/platforms/kubernetes_spec.rb504spec/models/clusters/applications/ingress_spec.rb505spec/models/todo_spec.rb506spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb507spec/lib/gitlab/ci/status/build/factory_spec.rb508spec/services/packages/debian/generate_distribution_service_spec.rb509spec/models/broadcast_message_spec.rb510spec/lib/gitlab/ci/parsers/security/common_spec.rb511spec/models/alert_management/alert_spec.rb512spec/models/wiki_page_spec.rb513spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb514spec/lib/banzai/filter/references/user_reference_filter_spec.rb515spec/lib/gitlab/gitaly_client/commit_service_spec.rb516spec/helpers/issues_helper_spec.rb517spec/services/search_service_spec.rb518spec/models/deploy_token_spec.rb519spec/services/snippets/create_service_spec.rb520spec/services/projects/lfs_pointers/lfs_download_service_spec.rb521spec/services/packages/nuget/update_package_from_metadata_service_spec.rb522spec/lib/gitlab/ci/status/bridge/factory_spec.rb523spec/lib/gitlab/cycle_analytics/permissions_spec.rb524spec/models/namespace/root_storage_statistics_spec.rb525spec/services/projects/update_repository_storage_service_spec.rb526spec/services/clusters/applications/check_uninstall_progress_service_spec.rb527spec/services/namespaces/in_product_marketing_emails_service_spec.rb528spec/models/ci/build_runner_session_spec.rb529spec/lib/gitlab/import_export/import_failure_service_spec.rb530spec/services/git/tag_hooks_service_spec.rb531spec/finders/starred_projects_finder_spec.rb532spec/services/ci/pipeline_trigger_service_spec.rb533spec/tasks/gitlab/user_management_rake_spec.rb534spec/presenters/clusterable_presenter_spec.rb535spec/lib/container_registry/path_spec.rb536spec/lib/banzai/reference_parser/commit_range_parser_spec.rb537spec/services/clusters/kubernetes/configure_istio_ingress_service_spec.rb538spec/services/projects/participants_service_spec.rb539spec/lib/gitlab/database/background_migration/batched_job_spec.rb540spec/lib/gitlab/pagination/keyset/order_spec.rb541spec/routing/git_http_routing_spec.rb542spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb543spec/lib/gitlab/relative_positioning/range_spec.rb544spec/services/projects/protect_default_branch_service_spec.rb545spec/serializers/paginated_diff_entity_spec.rb546spec/helpers/nav/top_nav_helper_spec.rb547spec/models/integrations/packagist_spec.rb548spec/models/clusters/kubernetes_namespace_spec.rb549spec/lib/gitlab/slash_commands/deploy_spec.rb550spec/services/preview_markdown_service_spec.rb551spec/workers/new_merge_request_worker_spec.rb552spec/routing/import_routing_spec.rb553spec/serializers/ci/lint/result_serializer_spec.rb554spec/models/project_auto_devops_spec.rb555spec/models/lfs_object_spec.rb556spec/services/ci/play_manual_stage_service_spec.rb557spec/services/draft_notes/create_service_spec.rb558spec/graphql/resolvers/projects_resolver_spec.rb559spec/tasks/gitlab/artifacts/migrate_rake_spec.rb560spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb561spec/lib/gitlab/utils/override_spec.rb562spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb563spec/lib/banzai/reference_redactor_spec.rb564spec/lib/gitlab/http_io_spec.rb565spec/lib/gitlab/background_migration/set_legacy_open_source_license_available_for_non_public_projects_spec.rb566spec/lib/banzai/filter/commit_trailers_filter_spec.rb567spec/models/sentry_issue_spec.rb568spec/lib/gitlab/repo_path_spec.rb569spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb570spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb571spec/lib/gitlab/metrics/sli_spec.rb572spec/finders/packages/debian/distributions_finder_spec.rb573spec/models/concerns/project_features_compatibility_spec.rb574spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb575spec/lib/gitlab/import_export/group/tree_saver_spec.rb576spec/workers/merge_requests/handle_assignees_change_worker_spec.rb577spec/services/ci/create_pipeline_service/parallel_spec.rb578spec/models/container_registry/event_spec.rb579spec/lib/gitaly/server_spec.rb580spec/policies/work_item_policy_spec.rb581spec/lib/api/entities/project_spec.rb582spec/lib/gitlab/hotlinking_detector_spec.rb583spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb584spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb585spec/lib/gitlab/fogbugz_import/importer_spec.rb586spec/workers/ci/pending_builds/update_group_worker_spec.rb587spec/lib/gitlab/data_builder/deployment_spec.rb588spec/lib/gitlab/ci/status/build/play_spec.rb589spec/models/concerns/has_environment_scope_spec.rb590spec/services/packages/helm/process_file_service_spec.rb591spec/models/concerns/ci/artifactable_spec.rb592spec/routing/environments_spec.rb593spec/models/project_authorization_spec.rb594spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb595spec/workers/external_service_reactive_caching_worker_spec.rb596spec/uploaders/import_export_uploader_spec.rb597spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb598spec/lib/mattermost/session_spec.rb599spec/models/concerns/taskable_spec.rb600spec/lib/gitlab/ci/status/build/retried_spec.rb601spec/services/metrics/users_starred_dashboards/create_service_spec.rb602spec/models/ci/freeze_period_spec.rb603spec/lib/gitlab/ci/parsers/security/sast_spec.rb604spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb605spec/lib/gitlab/experiment/rollout/feature_spec.rb606spec/rubocop/cop/migration/background_migration_base_class_spec.rb607spec/finders/sentry_issue_finder_spec.rb608spec/lib/gitlab/git/push_spec.rb609spec/lib/bitbucket_server/representation/comment_spec.rb610spec/lib/gitlab/diff/formatters/image_formatter_spec.rb611spec/lib/gitlab/hook_data/issue_builder_spec.rb612spec/serializers/integrations/field_entity_spec.rb613spec/services/packages/debian/generate_distribution_key_service_spec.rb614spec/lib/sidebars/groups/menus/group_information_menu_spec.rb615spec/services/packages/composer/composer_json_service_spec.rb616spec/workers/clusters/cleanup/project_namespace_worker_spec.rb617spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb618spec/graphql/resolvers/users/participants_resolver_spec.rb619spec/models/snippet_input_action_collection_spec.rb620spec/graphql/resolvers/releases_resolver_spec.rb621spec/graphql/mutations/security/ci_configuration/configure_secret_detection_spec.rb622spec/lib/gitlab/ci/tags/bulk_insert_spec.rb623spec/services/error_tracking/collect_error_service_spec.rb624spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb625spec/workers/incident_management/add_severity_system_note_worker_spec.rb626spec/models/integrations/pushover_spec.rb627spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb628spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb629spec/lib/gitlab/verify/lfs_objects_spec.rb630spec/lib/gitlab/ci/trace/backoff_spec.rb631spec/graphql/types/invitation_interface_spec.rb632spec/lib/gitlab/usage/service_ping/legacy_metric_timing_decorator_spec.rb633spec/models/spam_log_spec.rb634spec/workers/cluster_configure_istio_worker_spec.rb635spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb636spec/finders/merge_request/metrics_finder_spec.rb637spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb638spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb639spec/policies/alert_management/http_integration_policy_spec.rb640spec/models/list_user_preference_spec.rb641spec/models/uploads/local_spec.rb642spec/services/metrics/dashboard/default_embed_service_spec.rb643spec/lib/gitlab/crypto_helper_spec.rb644spec/graphql/resolvers/users/snippets_resolver_spec.rb645spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb646spec/services/users/keys_count_service_spec.rb647spec/serializers/job_artifact_report_entity_spec.rb648spec/serializers/ci/downloadable_artifact_entity_spec.rb649spec/views/admin/application_settings/ci_cd.html.haml_spec.rb650spec/lib/gitlab/git/conflict/file_spec.rb651spec/models/fork_network_member_spec.rb652spec/services/chat_names/authorize_user_service_spec.rb653spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb654spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb655spec/serializers/deploy_keys/deploy_key_entity_spec.rb656spec/lib/gitlab/noteable_metadata_spec.rb657spec/graphql/types/untrusted_regexp_spec.rb658spec/services/design_management/move_designs_service_spec.rb659spec/lib/container_registry/registry_spec.rb660spec/lib/gitlab/github_import/importer/notes_importer_spec.rb661spec/rubocop/migration_helpers_spec.rb662spec/serializers/move_to_project_entity_spec.rb663spec/views/layouts/_search.html.haml_spec.rb664spec/models/preloaders/group_policy_preloader_spec.rb665spec/helpers/instance_configuration_helper_spec.rb666spec/services/packages/composer/version_parser_service_spec.rb667spec/lib/gitlab/ci/variables/helpers_spec.rb668spec/lib/gitlab/monitor/demo_projects_spec.rb669spec/lib/gitlab/phabricator_import/issues/importer_spec.rb670spec/lib/gitlab/git/blame_spec.rb671spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb672spec/lib/gitlab/metrics/delta_spec.rb673spec/services/google_cloud/create_service_accounts_service_spec.rb674spec/lib/gitlab/app_text_logger_spec.rb675spec/presenters/packages/nuget/packages_versions_presenter_spec.rb676spec/lib/gitlab/diff/stats_cache_spec.rb677spec/lib/error_tracking/collector/sentry_request_parser_spec.rb678spec/lib/gitlab/database/pg_class_spec.rb679spec/initializers/mailer_retries_spec.rb680spec/lib/gitlab/config_checker/external_database_checker_spec.rb681spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb682spec/lib/gitlab/kubernetes/service_account_spec.rb683spec/lib/gitlab/auth/result_spec.rb684spec/lib/gitlab/alert_management/alert_status_counts_spec.rb685spec/validators/array_members_validator_spec.rb686spec/lib/gitlab/service_desk_spec.rb687spec/lib/gitlab/gitlab_import/project_creator_spec.rb688spec/lib/api/ci/helpers/runner_helpers_spec.rb689spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb690spec/models/projects/project_topic_spec.rb691spec/lib/gitlab/favicon_spec.rb692spec/lib/gitlab/ci/trace/metrics_spec.rb693spec/views/groups/milestones/index.html.haml_spec.rb694spec/models/projects/ci_feature_usage_spec.rb695spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb696spec/lib/gitlab/git/changed_path_spec.rb697spec/models/dependency_proxy/image_ttl_group_policy_spec.rb698spec/workers/x509_certificate_revoke_worker_spec.rb699spec/lib/constraints/admin_constrainer_spec.rb700spec/lib/gitlab/middleware/basic_health_check_spec.rb701spec/workers/concerns/cronjob_queue_spec.rb702spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb703spec/tooling/rspec_flaky/listener_spec.rb704spec/serializers/evidences/release_entity_spec.rb705spec/services/alert_management/http_integrations/destroy_service_spec.rb706spec/lib/gitlab/diff/pair_selector_spec.rb707spec/serializers/blob_entity_spec.rb708spec/models/badges/project_badge_spec.rb709spec/models/preloaders/commit_status_preloader_spec.rb710spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb711spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb712spec/services/boards/destroy_service_spec.rb713spec/lib/csv_builders/stream_spec.rbKnapsack report generator started!714DEPRECATION 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 call715/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 here716 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)717Run options: exclude {:quarantine=>true, :level=>"migration"}718==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.044299615 seconds...719Test environment set up in 2.301417616 seconds720Ci::RegisterJobService721 #execute722 checks database loadbalancing stickiness723 result is valid if replica did caught-up724 result is invalid if replica did not caught-up725 when a long queue is created726 picks builds one-by-one727 runner follow tag list728 picks build with the same tag729 does not pick build with different tag730 picks build without tag731 does not pick build with tag732 pick build without tag733 deleted projects734 for shared runners735 does not pick a build736 for specific runner737 does not pick a build738 allow shared runners739 when build owner has been blocked740 does not pick the build and drops the build741 for multiple builds742 when using fair scheduling743 when all builds are pending744 prefers projects without builds first745 when some builds transition to success746 equalises number of running builds747 when using DEFCON mode that disables fair scheduling748 when all builds are pending749 returns builds in order of creation (FIFO)750 when some builds transition to success751 returns builds in order of creation (FIFO)752 shared runner753 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )754 is expected to be valid755 is expected to be running756 is expected to eq #<Ci::Runner id: 55, token: nil, created_at: "2022-06-28 10:21:18.699481381 +0000", updated_at: "2022...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>757 is expected to eq 40758 specific runner759 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )760 is expected to be valid761 is expected to be running762 is expected to eq #<Ci::Runner id: 71, token: nil, created_at: "2022-06-28 10:21:23.076671964 +0000", updated_at: "2022...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>763 disallow shared runners764 shared runner765 is expected to be nil766 specific runner767 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )768 is expected to be valid769 is expected to be running770 is expected to eq #<Ci::Runner id: 86, token: nil, created_at: "2022-06-28 10:21:26.793901493 +0000", updated_at: "2022...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>771 disallow when builds are disabled772 and uses shared runner773 is expected to be nil774 and uses group runner775 is expected to be nil776 and uses project runner777 does not pick a build778 allow group runners779 for multiple builds780 does not consider builds from other group runners781 group runner782 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )783 is expected to be valid784 is expected to be running785 is expected to eq #<Ci::Runner id: 112, token: nil, created_at: "2022-06-28 10:21:36.581725661 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>786 disallow group runners787 group runner788 is expected to be nil789 when first build is stalled790 with multiple builds are in queue791 receives second build from the queue792 when single build is in queue793 does not receive any valid result794 when there is no build in queue795 does not receive builds but result is valid796 when access_level of runner is not_protected797 when a job is protected798 picks the job799 when a job is unprotected800 picks the job801 when protected attribute of a job is nil802 picks the job803 when access_level of runner is ref_protected804 when a job is protected805 picks the job806 when a job is unprotected807 does not pick the job808 when protected attribute of a job is nil809 does not pick the job810 runner feature set is verified811 when feature is missing by runner812 does not pick the build and drops the build813 when feature is supported by runner814 does pick job815 when "dependencies" keyword is specified816 behaves like validation is active817 when depended job has not been completed yet818 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...r_resource_at: nil, processed: false, scheduling_type: "stage", id: 77, stage_id: 61, tag_list: nil>819 when artifacts of depended job has been expired820 when the pipeline is locked821 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...r_resource_at: nil, processed: false, scheduling_type: "stage", id: 79, stage_id: 62, tag_list: nil>822 when the pipeline is unlocked823 behaves like not pick824 does not pick the build and drops the build825 when artifacts of depended job has been erased826 behaves like not pick827 does not pick the build and drops the build828 when job object is staled829 does not drop nor pick830 when build is degenerated831 does not pick the build and drops the build832 when build has data integrity problem833 does drop the build and logs both failures834 when build fails to be run!835 does drop the build and logs failure836 when an exception is raised during a persistent ref creation837 picks the build838 when only some builds can be matched by runner839 observes queue size of only matching jobs840 observes queue processing time by the runner type841 when ci_register_job_temporary_lock is enabled842 when a build is temporarily locked843 skips this build and marks queue as invalid844 when there is another build in queue845 skips this build and picks another build846 when using pending builds table847 with ci_queuing_use_denormalized_data_strategy enabled848 runner follow tag list849 picks build with the same tag850 does not pick build with different tag851 picks build without tag852 does not pick build with tag853 pick build without tag854 deleted projects855 for shared runners856 does not pick a build857 for specific runner858 does not pick a build859 allow shared runners860 when build owner has been blocked861 does not pick the build and drops the build862 for multiple builds863 when using fair scheduling864 when all builds are pending865 prefers projects without builds first866 when some builds transition to success867 equalises number of running builds868 when using DEFCON mode that disables fair scheduling869 when all builds are pending870 returns builds in order of creation (FIFO)871 when some builds transition to success872 returns builds in order of creation (FIFO)873 shared runner874 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )875 is expected to be valid876 is expected to be running877 is expected to eq #<Ci::Runner id: 233, token: nil, created_at: "2022-06-28 10:22:15.723406710 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>878 is expected to eq 138879 specific runner880 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )881 is expected to be valid882 is expected to be running883 is expected to eq #<Ci::Runner id: 249, token: nil, created_at: "2022-06-28 10:22:20.334307691 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>884 disallow shared runners885 shared runner886 is expected to be nil887 specific runner888 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )889 is expected to be valid890 is expected to be running891 is expected to eq #<Ci::Runner id: 264, token: nil, created_at: "2022-06-28 10:22:24.204822137 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>892 disallow when builds are disabled893 and uses shared runner894 is expected to be nil895 and uses group runner896 is expected to be nil897 and uses project runner898 does not pick a build899 allow group runners900 for multiple builds901 does not consider builds from other group runners902 group runner903 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )904 is expected to be valid905 is expected to be running906 is expected to eq #<Ci::Runner id: 290, token: nil, created_at: "2022-06-28 10:22:34.354910035 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>907 disallow group runners908 group runner909 is expected to be nil910 when first build is stalled911 with multiple builds are in queue912 receives second build from the queue913 when single build is in queue914 does not receive any valid result915 when there is no build in queue916 does not receive builds but result is valid917 when access_level of runner is not_protected918 when a job is protected919 picks the job920 when a job is unprotected921 picks the job922 when protected attribute of a job is nil923 picks the job924 when access_level of runner is ref_protected925 when a job is protected926 picks the job927 when a job is unprotected928 does not pick the job929 when protected attribute of a job is nil930 does not pick the job931 runner feature set is verified932 when feature is missing by runner933 does not pick the build and drops the build934 when feature is supported by runner935 does pick job936 when "dependencies" keyword is specified937 behaves like validation is active938 when depended job has not been completed yet939 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 175, stage_id: 131, tag_list: nil>940 when artifacts of depended job has been expired941 when the pipeline is locked942 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 177, stage_id: 132, tag_list: nil>943 when the pipeline is unlocked944 behaves like not pick945 does not pick the build and drops the build946 when artifacts of depended job has been erased947 behaves like not pick948 does not pick the build and drops the build949 when job object is staled950 does not drop nor pick951 when build is degenerated952 does not pick the build and drops the build953 when build has data integrity problem954 does drop the build and logs both failures955 when build fails to be run!956 does drop the build and logs failure957 when an exception is raised during a persistent ref creation958 picks the build959 when only some builds can be matched by runner960 observes queue size of only matching jobs961 observes queue processing time by the runner type962 when ci_register_job_temporary_lock is enabled963 when a build is temporarily locked964 skips this build and marks queue as invalid965 when there is another build in queue966 skips this build and picks another build967 with ci_queuing_use_denormalized_data_strategy disabled968 runner follow tag list969 picks build with the same tag (PENDING: Skipping because multiple databases are set up)970 does not pick build with different tag (PENDING: Skipping because multiple databases are set up)971 picks build without tag (PENDING: Skipping because multiple databases are set up)972 does not pick build with tag (PENDING: Skipping because multiple databases are set up)973 pick build without tag (PENDING: Skipping because multiple databases are set up)974 deleted projects975 for shared runners976 does not pick a build (PENDING: Skipping because multiple databases are set up)977 for specific runner978 does not pick a build (PENDING: Skipping because multiple databases are set up)979 allow shared runners980 when build owner has been blocked981 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)982 for multiple builds983 when using fair scheduling984 when all builds are pending985 prefers projects without builds first (PENDING: Skipping because multiple databases are set up)986 when some builds transition to success987 equalises number of running builds (PENDING: Skipping because multiple databases are set up)988 when using DEFCON mode that disables fair scheduling989 when all builds are pending990 returns builds in order of creation (FIFO) (PENDING: Skipping because multiple databases are set up)991 when some builds transition to success992 returns builds in order of creation (FIFO) (PENDING: Skipping because multiple databases are set up)993 shared runner994 example at ./spec/services/ci/register_job_service_spec.rb:202 (PENDING: Skipping because multiple databases are set up)995 example at ./spec/services/ci/register_job_service_spec.rb:203 (PENDING: Skipping because multiple databases are set up)996 example at ./spec/services/ci/register_job_service_spec.rb:204 (PENDING: Skipping because multiple databases are set up)997 example at ./spec/services/ci/register_job_service_spec.rb:205 (PENDING: Skipping because multiple databases are set up)998 example at ./spec/services/ci/register_job_service_spec.rb:206 (PENDING: Skipping because multiple databases are set up)999 specific runner1000 example at ./spec/services/ci/register_job_service_spec.rb:212 (PENDING: Skipping because multiple databases are set up)1001 example at ./spec/services/ci/register_job_service_spec.rb:213 (PENDING: Skipping because multiple databases are set up)1002 example at ./spec/services/ci/register_job_service_spec.rb:214 (PENDING: Skipping because multiple databases are set up)1003 example at ./spec/services/ci/register_job_service_spec.rb:215 (PENDING: Skipping because multiple databases are set up)1004 disallow shared runners1005 shared runner1006 example at ./spec/services/ci/register_job_service_spec.rb:227 (PENDING: Skipping because multiple databases are set up)1007 specific runner1008 example at ./spec/services/ci/register_job_service_spec.rb:233 (PENDING: Skipping because multiple databases are set up)1009 example at ./spec/services/ci/register_job_service_spec.rb:234 (PENDING: Skipping because multiple databases are set up)1010 example at ./spec/services/ci/register_job_service_spec.rb:235 (PENDING: Skipping because multiple databases are set up)1011 example at ./spec/services/ci/register_job_service_spec.rb:236 (PENDING: Skipping because multiple databases are set up)1012 disallow when builds are disabled1013 and uses shared runner1014 example at ./spec/services/ci/register_job_service_spec.rb:251 (PENDING: Skipping because multiple databases are set up)1015 and uses group runner1016 example at ./spec/services/ci/register_job_service_spec.rb:257 (PENDING: Skipping because multiple databases are set up)1017 and uses project runner1018 does not pick a build (PENDING: Skipping because multiple databases are set up)1019 allow group runners1020 for multiple builds1021 does not consider builds from other group runners (PENDING: Skipping because multiple databases are set up)1022 group runner1023 example at ./spec/services/ci/register_job_service_spec.rb:325 (PENDING: Skipping because multiple databases are set up)1024 example at ./spec/services/ci/register_job_service_spec.rb:326 (PENDING: Skipping because multiple databases are set up)1025 example at ./spec/services/ci/register_job_service_spec.rb:327 (PENDING: Skipping because multiple databases are set up)1026 example at ./spec/services/ci/register_job_service_spec.rb:328 (PENDING: Skipping because multiple databases are set up)1027 disallow group runners1028 group runner1029 example at ./spec/services/ci/register_job_service_spec.rb:342 (PENDING: Skipping because multiple databases are set up)1030 when first build is stalled1031 with multiple builds are in queue1032 receives second build from the queue (PENDING: Skipping because multiple databases are set up)1033 when single build is in queue1034 does not receive any valid result (PENDING: Skipping because multiple databases are set up)1035 when there is no build in queue1036 does not receive builds but result is valid (PENDING: Skipping because multiple databases are set up)1037 when access_level of runner is not_protected1038 when a job is protected1039 picks the job (PENDING: Skipping because multiple databases are set up)1040 when a job is unprotected1041 picks the job (PENDING: Skipping because multiple databases are set up)1042 when protected attribute of a job is nil1043 picks the job (PENDING: Skipping because multiple databases are set up)1044 when access_level of runner is ref_protected1045 when a job is protected1046 picks the job (PENDING: Skipping because multiple databases are set up)1047 when a job is unprotected1048 does not pick the job (PENDING: Skipping because multiple databases are set up)1049 when protected attribute of a job is nil1050 does not pick the job (PENDING: Skipping because multiple databases are set up)1051 runner feature set is verified1052 when feature is missing by runner1053 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1054 when feature is supported by runner1055 does pick job (PENDING: Skipping because multiple databases are set up)1056 when "dependencies" keyword is specified1057 behaves like validation is active1058 when depended job has not been completed yet1059 example at ./spec/services/ci/register_job_service_spec.rb:500 (PENDING: Skipping because multiple databases are set up)1060 when artifacts of depended job has been expired1061 when the pipeline is locked1062 example at ./spec/services/ci/register_job_service_spec.rb:511 (PENDING: Skipping because multiple databases are set up)1063 when the pipeline is unlocked1064 behaves like not pick1065 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1066 when artifacts of depended job has been erased1067 behaves like not pick1068 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1069 when job object is staled1070 does not drop nor pick (PENDING: Skipping because multiple databases are set up)1071 when build is degenerated1072 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1073 when build has data integrity problem1074 does drop the build and logs both failures (PENDING: Skipping because multiple databases are set up)1075 when build fails to be run!1076 does drop the build and logs failure (PENDING: Skipping because multiple databases are set up)1077 when an exception is raised during a persistent ref creation1078 picks the build (PENDING: Skipping because multiple databases are set up)1079 when only some builds can be matched by runner1080 observes queue size of only matching jobs (PENDING: Skipping because multiple databases are set up)1081 observes queue processing time by the runner type (PENDING: Skipping because multiple databases are set up)1082 when ci_register_job_temporary_lock is enabled1083 when a build is temporarily locked1084 skips this build and marks queue as invalid (PENDING: Skipping because multiple databases are set up)1085 when there is another build in queue1086 skips this build and picks another build (PENDING: Skipping because multiple databases are set up)1087 with ci_queuing_use_denormalized_data_strategy enabled1088 runner follow tag list1089 picks build with the same tag1090 does not pick build with different tag1091 picks build without tag1092 does not pick build with tag1093 pick build without tag1094 deleted projects1095 for shared runners1096 does not pick a build1097 for specific runner1098 does not pick a build1099 allow shared runners1100 when build owner has been blocked1101 does not pick the build and drops the build1102 for multiple builds1103 when using fair scheduling1104 when all builds are pending1105 prefers projects without builds first1106 when some builds transition to success1107 equalises number of running builds1108 when using DEFCON mode that disables fair scheduling1109 when all builds are pending1110 returns builds in order of creation (FIFO)1111 when some builds transition to success1112 returns builds in order of creation (FIFO)1113 shared runner1114 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )1115 is expected to be valid1116 is expected to be running1117 is expected to eq #<Ci::Runner id: 588, token: nil, created_at: "2022-06-28 10:23:36.828675495 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>1118 is expected to eq 2951119 specific runner1120 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )1121 is expected to be valid1122 is expected to be running1123 is expected to eq #<Ci::Runner id: 604, token: nil, created_at: "2022-06-28 10:23:41.598488301 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>1124 disallow shared runners1125 shared runner1126 is expected to be nil1127 specific runner1128 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )1129 is expected to be valid1130 is expected to be running1131 is expected to eq #<Ci::Runner id: 619, token: nil, created_at: "2022-06-28 10:23:45.421839832 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>1132 disallow when builds are disabled1133 and uses shared runner1134 is expected to be nil1135 and uses group runner1136 is expected to be nil1137 and uses project runner1138 does not pick a build1139 allow group runners1140 for multiple builds1141 does not consider builds from other group runners1142 group runner1143 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, trace: text, created_at: datetime, updated_at: datet..._timezone, processed: boolean, scheduling_type: integer, id: integer, stage_id: integer, tag_list: )1144 is expected to be valid1145 is expected to be running1146 is expected to eq #<Ci::Runner id: 645, token: nil, created_at: "2022-06-28 10:23:55.041912827 +0000", updated_at: "202...pe: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], semver: nil, tag_list: nil>1147 disallow group runners1148 group runner1149 is expected to be nil1150 when first build is stalled1151 with multiple builds are in queue1152 receives second build from the queue1153 when single build is in queue1154 does not receive any valid result1155 when there is no build in queue1156 does not receive builds but result is valid1157 when access_level of runner is not_protected1158 when a job is protected1159 picks the job1160 when a job is unprotected1161 picks the job1162 when protected attribute of a job is nil1163 picks the job1164 when access_level of runner is ref_protected1165 when a job is protected1166 picks the job1167 when a job is unprotected1168 does not pick the job1169 when protected attribute of a job is nil1170 does not pick the job1171 runner feature set is verified1172 when feature is missing by runner1173 does not pick the build and drops the build1174 when feature is supported by runner1175 does pick job1176 when "dependencies" keyword is specified1177 behaves like validation is active1178 when depended job has not been completed yet1179 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 332, stage_id: 260, tag_list: nil>1180 when artifacts of depended job has been expired1181 when the pipeline is locked1182 is expected to eq #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2022-06-28 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 334, stage_id: 261, tag_list: nil>1183 when the pipeline is unlocked1184 behaves like not pick1185 does not pick the build and drops the build1186 when artifacts of depended job has been erased1187 behaves like not pick1188 does not pick the build and drops the build1189 when job object is staled1190 does not drop nor pick1191 when build is degenerated1192 does not pick the build and drops the build1193 when build has data integrity problem1194 does drop the build and logs both failures1195 when build fails to be run!1196 does drop the build and logs failure1197 when an exception is raised during a persistent ref creation1198 picks the build1199 when only some builds can be matched by runner1200 observes queue size of only matching jobs1201 observes queue processing time by the runner type1202 when ci_register_job_temporary_lock is enabled1203 when a build is temporarily locked1204 skips this build and marks queue as invalid1205 when there is another build in queue1206 skips this build and picks another build1207 when a conflicting data is stored in denormalized table1208 removes queuing entry upon build assignment attempt1209 when not using pending builds table1210 runner follow tag list1211 picks build with the same tag (PENDING: Skipping because multiple databases are set up)1212 does not pick build with different tag (PENDING: Skipping because multiple databases are set up)1213 picks build without tag (PENDING: Skipping because multiple databases are set up)1214 does not pick build with tag (PENDING: Skipping because multiple databases are set up)1215 pick build without tag (PENDING: Skipping because multiple databases are set up)1216 deleted projects1217 for shared runners1218 does not pick a build (PENDING: Skipping because multiple databases are set up)1219 for specific runner1220 does not pick a build (PENDING: Skipping because multiple databases are set up)1221 allow shared runners1222 when build owner has been blocked1223 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1224 for multiple builds1225 when using fair scheduling1226 when all builds are pending1227 prefers projects without builds first (PENDING: Skipping because multiple databases are set up)1228 when some builds transition to success1229 equalises number of running builds (PENDING: Skipping because multiple databases are set up)1230 when using DEFCON mode that disables fair scheduling1231 when all builds are pending1232 returns builds in order of creation (FIFO) (PENDING: Skipping because multiple databases are set up)1233 when some builds transition to success1234 returns builds in order of creation (FIFO) (PENDING: Skipping because multiple databases are set up)1235 shared runner1236 example at ./spec/services/ci/register_job_service_spec.rb:202 (PENDING: Skipping because multiple databases are set up)1237 example at ./spec/services/ci/register_job_service_spec.rb:203 (PENDING: Skipping because multiple databases are set up)1238 example at ./spec/services/ci/register_job_service_spec.rb:204 (PENDING: Skipping because multiple databases are set up)1239 example at ./spec/services/ci/register_job_service_spec.rb:205 (PENDING: Skipping because multiple databases are set up)1240 example at ./spec/services/ci/register_job_service_spec.rb:206 (PENDING: Skipping because multiple databases are set up)1241 specific runner1242 example at ./spec/services/ci/register_job_service_spec.rb:212 (PENDING: Skipping because multiple databases are set up)1243 example at ./spec/services/ci/register_job_service_spec.rb:213 (PENDING: Skipping because multiple databases are set up)1244 example at ./spec/services/ci/register_job_service_spec.rb:214 (PENDING: Skipping because multiple databases are set up)1245 example at ./spec/services/ci/register_job_service_spec.rb:215 (PENDING: Skipping because multiple databases are set up)1246 disallow shared runners1247 shared runner1248 example at ./spec/services/ci/register_job_service_spec.rb:227 (PENDING: Skipping because multiple databases are set up)1249 specific runner1250 example at ./spec/services/ci/register_job_service_spec.rb:233 (PENDING: Skipping because multiple databases are set up)1251 example at ./spec/services/ci/register_job_service_spec.rb:234 (PENDING: Skipping because multiple databases are set up)1252 example at ./spec/services/ci/register_job_service_spec.rb:235 (PENDING: Skipping because multiple databases are set up)1253 example at ./spec/services/ci/register_job_service_spec.rb:236 (PENDING: Skipping because multiple databases are set up)1254 disallow when builds are disabled1255 and uses shared runner1256 example at ./spec/services/ci/register_job_service_spec.rb:251 (PENDING: Skipping because multiple databases are set up)1257 and uses group runner1258 example at ./spec/services/ci/register_job_service_spec.rb:257 (PENDING: Skipping because multiple databases are set up)1259 and uses project runner1260 does not pick a build (PENDING: Skipping because multiple databases are set up)1261 allow group runners1262 for multiple builds1263 does not consider builds from other group runners (PENDING: Skipping because multiple databases are set up)1264 group runner1265 example at ./spec/services/ci/register_job_service_spec.rb:325 (PENDING: Skipping because multiple databases are set up)1266 example at ./spec/services/ci/register_job_service_spec.rb:326 (PENDING: Skipping because multiple databases are set up)1267 example at ./spec/services/ci/register_job_service_spec.rb:327 (PENDING: Skipping because multiple databases are set up)1268 example at ./spec/services/ci/register_job_service_spec.rb:328 (PENDING: Skipping because multiple databases are set up)1269 disallow group runners1270 group runner1271 example at ./spec/services/ci/register_job_service_spec.rb:342 (PENDING: Skipping because multiple databases are set up)1272 when first build is stalled1273 with multiple builds are in queue1274 receives second build from the queue (PENDING: Skipping because multiple databases are set up)1275 when single build is in queue1276 does not receive any valid result (PENDING: Skipping because multiple databases are set up)1277 when there is no build in queue1278 does not receive builds but result is valid (PENDING: Skipping because multiple databases are set up)1279 when access_level of runner is not_protected1280 when a job is protected1281 picks the job (PENDING: Skipping because multiple databases are set up)1282 when a job is unprotected1283 picks the job (PENDING: Skipping because multiple databases are set up)1284 when protected attribute of a job is nil1285 picks the job (PENDING: Skipping because multiple databases are set up)1286 when access_level of runner is ref_protected1287 when a job is protected1288 picks the job (PENDING: Skipping because multiple databases are set up)1289 when a job is unprotected1290 does not pick the job (PENDING: Skipping because multiple databases are set up)1291 when protected attribute of a job is nil1292 does not pick the job (PENDING: Skipping because multiple databases are set up)1293 runner feature set is verified1294 when feature is missing by runner1295 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1296 when feature is supported by runner1297 does pick job (PENDING: Skipping because multiple databases are set up)1298 when "dependencies" keyword is specified1299 behaves like validation is active1300 when depended job has not been completed yet1301 example at ./spec/services/ci/register_job_service_spec.rb:500 (PENDING: Skipping because multiple databases are set up)1302 when artifacts of depended job has been expired1303 when the pipeline is locked1304 example at ./spec/services/ci/register_job_service_spec.rb:511 (PENDING: Skipping because multiple databases are set up)1305 when the pipeline is unlocked1306 behaves like not pick1307 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1308 when artifacts of depended job has been erased1309 behaves like not pick1310 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1311 when job object is staled1312 does not drop nor pick (PENDING: Skipping because multiple databases are set up)1313 when build is degenerated1314 does not pick the build and drops the build (PENDING: Skipping because multiple databases are set up)1315 when build has data integrity problem1316 does drop the build and logs both failures (PENDING: Skipping because multiple databases are set up)1317 when build fails to be run!1318 does drop the build and logs failure (PENDING: Skipping because multiple databases are set up)1319 when an exception is raised during a persistent ref creation1320 picks the build (PENDING: Skipping because multiple databases are set up)1321 when only some builds can be matched by runner1322 observes queue size of only matching jobs (PENDING: Skipping because multiple databases are set up)1323 observes queue processing time by the runner type (PENDING: Skipping because multiple databases are set up)1324 when ci_register_job_temporary_lock is enabled1325 when a build is temporarily locked1326 skips this build and marks queue as invalid (PENDING: Skipping because multiple databases are set up)1327 when there is another build in queue1328 skips this build and picks another build (PENDING: Skipping because multiple databases are set up)1329 #register_success1330 when shared runner is used1331 behaves like metrics collector1332 behaves like attempt counter collector1333 increments attempt counter1334 behaves like jobs queueing time histogram collector1335 counts job queuing time histogram with expected labels1336 when project already has running jobs1337 counts job queuing time histogram with expected labels1338 when using denormalized data is disabled1339 behaves like jobs queueing time histogram collector1340 counts job queuing time histogram with expected labels1341 when project already has running jobs1342 counts job queuing time histogram with expected labels1343 when metrics_shard tag is defined1344 behaves like metrics collector1345 behaves like attempt counter collector1346 increments attempt counter1347 behaves like jobs queueing time histogram collector1348 counts job queuing time histogram with expected labels1349 when project already has running jobs1350 counts job queuing time histogram with expected labels1351 when using denormalized data is disabled1352 behaves like jobs queueing time histogram collector1353 counts job queuing time histogram with expected labels1354 when project already has running jobs1355 counts job queuing time histogram with expected labels1356 when multiple metrics_shard tag is defined1357 behaves like metrics collector1358 behaves like attempt counter collector1359 increments attempt counter1360 behaves like jobs queueing time histogram collector1361 counts job queuing time histogram with expected labels1362 when project already has running jobs1363 counts job queuing time histogram with expected labels1364 when using denormalized data is disabled1365 behaves like jobs queueing time histogram collector1366 counts job queuing time histogram with expected labels1367 when project already has running jobs1368 counts job queuing time histogram with expected labels1369 when max running jobs bucket size is exceeded1370 behaves like metrics collector1371 behaves like attempt counter collector1372 increments attempt counter1373 behaves like jobs queueing time histogram collector1374 counts job queuing time histogram with expected labels1375 when project already has running jobs1376 counts job queuing time histogram with expected labels1377 when using denormalized data is disabled1378 behaves like jobs queueing time histogram collector1379 counts job queuing time histogram with expected labels1380 when project already has running jobs1381 counts job queuing time histogram with expected labels1382 when pending job with queued_at=nil is used1383 doesn't count job queuing time histogram1384 behaves like attempt counter collector1385 increments attempt counter1386 when specific runner is used1387 behaves like metrics collector1388 behaves like attempt counter collector1389 increments attempt counter1390 behaves like jobs queueing time histogram collector1391 counts job queuing time histogram with expected labels1392 when project already has running jobs1393 counts job queuing time histogram with expected labels1394 when using denormalized data is disabled1395 behaves like jobs queueing time histogram collector1396 counts job queuing time histogram with expected labels1397 when project already has running jobs1398 counts job queuing time histogram with expected labels1399 when runner_session params are1400 present sets runner session configuration in the build1401 not present it does not configure the runner session1402 when max queue depth is reached1403 returns 409 conflict1404MergeRequests::PushOptionsHandlerService1405 `create` push option1406 with a new branch1407 behaves like a service that can create a merge request1408 creates a merge request with the correct target branch1409 when project has been forked1410 sets the correct source and target project1411 with an existing branch but no open MR1412 behaves like a service that can create a merge request1413 creates a merge request with the correct target branch1414 when project has been forked1415 sets the correct source and target project1416 with an existing branch that has a merge request open1417 behaves like a service that does not create a merge request1418 is expected not to change `MergeRequest.count`1419 behaves like with a deleted branch1420 behaves like a service that does nothing1421 is expected not to change `MergeRequest.count`1422 is expected not to change `MergeRequest.maximum(:updated_at)`1423 behaves like with the project default branch1424 behaves like a service that does nothing1425 is expected not to change `MergeRequest.count`1426 is expected not to change `MergeRequest.maximum(:updated_at)`1427 `merge_when_pipeline_succeeds` push option1428 with a new branch1429 adds an error to the service1430 behaves like a service that does not create a merge request1431 is expected not to change `MergeRequest.count`1432 when coupled with the `create` push option1433 behaves like a service that can create a merge request1434 creates a merge request with the correct target branch1435 when project has been forked1436 sets the correct source and target project1437 behaves like a service that can set the merge request to merge when pipeline succeeds1438 sets auto_merge_enabled1439 with an existing branch but no open MR1440 adds an error to the service1441 behaves like a service that does not create a merge request1442 is expected not to change `MergeRequest.count`1443 when coupled with the `create` push option1444 behaves like a service that can create a merge request1445 creates a merge request with the correct target branch1446 when project has been forked1447 sets the correct source and target project1448 behaves like a service that can set the merge request to merge when pipeline succeeds1449 sets auto_merge_enabled1450 with an existing branch that has a merge request open1451 behaves like a service that does not create a merge request1452 is expected not to change `MergeRequest.count`1453 behaves like a service that can set the merge request to merge when pipeline succeeds1454 sets auto_merge_enabled1455 behaves like with a deleted branch1456 behaves like a service that does nothing1457 is expected not to change `MergeRequest.count`1458 is expected not to change `MergeRequest.maximum(:updated_at)`1459 behaves like with the project default branch1460 behaves like a service that does nothing1461 is expected not to change `MergeRequest.count`1462 is expected not to change `MergeRequest.maximum(:updated_at)`1463 `remove_source_branch` push option1464 with a new branch1465 adds an error to the service1466 behaves like a service that does not create a merge request1467 is expected not to change `MergeRequest.count`1468 when coupled with the `create` push option1469 behaves like a service that can create a merge request1470 creates a merge request with the correct target branch1471 when project has been forked1472 sets the correct source and target project1473 behaves like a service that can remove the source branch when it is merged1474 returns true to force_remove_source_branch?1475 with an existing branch but no open MR1476 adds an error to the service1477 behaves like a service that does not create a merge request1478 is expected not to change `MergeRequest.count`1479 when coupled with the `create` push option1480 behaves like a service that can create a merge request1481 creates a merge request with the correct target branch1482 when project has been forked1483 sets the correct source and target project1484 behaves like a service that can remove the source branch when it is merged1485 returns true to force_remove_source_branch?1486 with an existing branch that has a merge request open1487 behaves like a service that does not create a merge request1488 is expected not to change `MergeRequest.count`1489 behaves like a service that can remove the source branch when it is merged1490 returns true to force_remove_source_branch?1491 behaves like with a deleted branch1492 behaves like a service that does nothing1493 is expected not to change `MergeRequest.count`1494 is expected not to change `MergeRequest.maximum(:updated_at)`1495 behaves like with the project default branch1496 behaves like a service that does nothing1497 is expected not to change `MergeRequest.count`1498 is expected not to change `MergeRequest.maximum(:updated_at)`1499 `target` push option1500 with a new branch1501 adds an error to the service1502 behaves like a service that does not create a merge request1503 is expected not to change `MergeRequest.count`1504 when coupled with the `create` push option1505 behaves like a service that can create a merge request1506 creates a merge request with the correct target branch1507 when project has been forked1508 sets the correct source and target project1509 behaves like a service that can set the target of a merge request1510 sets the target_branch1511 with an existing branch but no open MR1512 adds an error to the service1513 behaves like a service that does not create a merge request1514 is expected not to change `MergeRequest.count`1515 when coupled with the `create` push option1516 behaves like a service that can create a merge request1517 creates a merge request with the correct target branch1518 when project has been forked1519 sets the correct source and target project1520 behaves like a service that can set the target of a merge request1521 sets the target_branch1522 with an existing branch that has a merge request open1523 behaves like a service that does not create a merge request1524 is expected not to change `MergeRequest.count`1525 behaves like a service that can set the target of a merge request1526 sets the target_branch1527 behaves like with a deleted branch1528 behaves like a service that does nothing1529 is expected not to change `MergeRequest.count`1530 is expected not to change `MergeRequest.maximum(:updated_at)`1531 behaves like with the project default branch1532 behaves like a service that does nothing1533 is expected not to change `MergeRequest.count`1534 is expected not to change `MergeRequest.maximum(:updated_at)`1535 `title` push option1536 with a new branch1537 adds an error to the service1538 behaves like a service that does not create a merge request1539 is expected not to change `MergeRequest.count`1540 when coupled with the `create` push option1541 behaves like a service that can create a merge request1542 creates a merge request with the correct target branch1543 when project has been forked1544 sets the correct source and target project1545 behaves like a service that can set the title of a merge request1546 sets the title1547 with an existing branch but no open MR1548 adds an error to the service1549 behaves like a service that does not create a merge request1550 is expected not to change `MergeRequest.count`1551 when coupled with the `create` push option1552 behaves like a service that can create a merge request1553 creates a merge request with the correct target branch1554 when project has been forked1555 sets the correct source and target project1556 behaves like a service that can set the title of a merge request1557 sets the title1558 with an existing branch that has a merge request open1559 behaves like a service that does not create a merge request1560 is expected not to change `MergeRequest.count`1561 behaves like a service that can set the title of a merge request1562 sets the title1563 behaves like with a deleted branch1564 behaves like a service that does nothing1565 is expected not to change `MergeRequest.count`1566 is expected not to change `MergeRequest.maximum(:updated_at)`1567 behaves like with the project default branch1568 behaves like a service that does nothing1569 is expected not to change `MergeRequest.count`1570 is expected not to change `MergeRequest.maximum(:updated_at)`1571 `description` push option1572 with a new branch1573 adds an error to the service1574 behaves like a service that does not create a merge request1575 is expected not to change `MergeRequest.count`1576 when coupled with the `create` push option1577 behaves like a service that can create a merge request1578 creates a merge request with the correct target branch1579 when project has been forked1580 sets the correct source and target project1581 behaves like a service that can set the description of a merge request1582 sets the description1583 with an existing branch but no open MR1584 adds an error to the service1585 behaves like a service that does not create a merge request1586 is expected not to change `MergeRequest.count`1587 when coupled with the `create` push option1588 behaves like a service that can create a merge request1589 creates a merge request with the correct target branch1590 when project has been forked1591 sets the correct source and target project1592 behaves like a service that can set the description of a merge request1593 sets the description1594 with an existing branch that has a merge request open1595 behaves like a service that does not create a merge request1596 is expected not to change `MergeRequest.count`1597 behaves like a service that can set the description of a merge request1598 sets the description1599 with a multiline description1600 behaves like a service that does not create a merge request1601 is expected not to change `MergeRequest.count`1602 behaves like a service that can set the multiline description of a merge request1603 sets the multiline description1604 behaves like with a deleted branch1605 behaves like a service that does nothing1606 is expected not to change `MergeRequest.count`1607 is expected not to change `MergeRequest.maximum(:updated_at)`1608 behaves like with the project default branch1609 behaves like a service that does nothing1610 is expected not to change `MergeRequest.count`1611 is expected not to change `MergeRequest.maximum(:updated_at)`1612 `draft` push option1613 with a new branch1614 adds an error to the service1615 behaves like a service that does not create a merge request1616 is expected not to change `MergeRequest.count`1617 when coupled with the `create` push option1618 behaves like a service that can create a merge request1619 creates a merge request with the correct target branch1620 when project has been forked1621 sets the correct source and target project1622 behaves like a service that can set the draft of a merge request1623 sets the draft1624 with an existing branch but no open MR1625 adds an error to the service1626 behaves like a service that does not create a merge request1627 is expected not to change `MergeRequest.count`1628 when coupled with the `create` push option1629 behaves like a service that can create a merge request1630 creates a merge request with the correct target branch1631 when project has been forked1632 sets the correct source and target project1633 behaves like a service that can set the draft of a merge request1634 sets the draft1635 with an existing branch that has a merge request open1636 behaves like a service that does not create a merge request1637 is expected not to change `MergeRequest.count`1638 behaves like a service that can set the draft of a merge request1639 sets the draft1640 draft title provided while `draft` push option is set to false1641 behaves like a service that can create a merge request1642 creates a merge request with the correct target branch1643 when project has been forked1644 sets the correct source and target project1645 behaves like a service that can set the draft of a merge request1646 sets the draft1647 behaves like with a deleted branch1648 behaves like a service that does nothing1649 is expected not to change `MergeRequest.count`1650 is expected not to change `MergeRequest.maximum(:updated_at)`1651 behaves like with the project default branch1652 behaves like a service that does nothing1653 is expected not to change `MergeRequest.count`1654 is expected not to change `MergeRequest.maximum(:updated_at)`1655 `label` push option1656 with a new branch1657 adds an error to the service1658 behaves like a service that does not create a merge request1659 is expected not to change `MergeRequest.count`1660 when coupled with the `create` push option1661 behaves like a service that can create a merge request1662 creates a merge request with the correct target branch1663 when project has been forked1664 sets the correct source and target project1665 behaves like a service that can change labels of a merge request1666 changes label count1667 with an existing branch but no open MR1668 adds an error to the service1669 behaves like a service that does not create a merge request1670 is expected not to change `MergeRequest.count`1671 when coupled with the `create` push option1672 behaves like a service that can create a merge request1673 creates a merge request with the correct target branch1674 when project has been forked1675 sets the correct source and target project1676 behaves like a service that can change labels of a merge request1677 changes label count1678 with an existing branch that has a merge request open1679 behaves like a service that does not create a merge request1680 is expected not to change `MergeRequest.count`1681 behaves like a service that can change labels of a merge request1682 changes label count1683 behaves like with a deleted branch1684 behaves like a service that does nothing1685 is expected not to change `MergeRequest.count`1686 is expected not to change `MergeRequest.maximum(:updated_at)`1687 behaves like with the project default branch1688 behaves like a service that does nothing1689 is expected not to change `MergeRequest.count`1690 is expected not to change `MergeRequest.maximum(:updated_at)`1691 `unlabel` push option1692 with a new branch1693 adds an error to the service1694 behaves like a service that does not create a merge request1695 is expected not to change `MergeRequest.count`1696 when coupled with the `create` push option1697 behaves like a service that can create a merge request1698 creates a merge request with the correct target branch1699 when project has been forked1700 sets the correct source and target project1701 behaves like a service that can change labels of a merge request1702 changes label count1703 with an existing branch but no open MR1704 adds an error to the service1705 behaves like a service that does not create a merge request1706 is expected not to change `MergeRequest.count`1707 when coupled with the `create` push option1708 behaves like a service that can create a merge request1709 creates a merge request with the correct target branch1710 when project has been forked1711 sets the correct source and target project1712 behaves like a service that can change labels of a merge request1713 changes label count1714 with an existing branch that has a merge request open1715 behaves like a service that does not create a merge request1716 is expected not to change `MergeRequest.count`1717 behaves like a service that can change labels of a merge request1718 changes label count1719 behaves like with a deleted branch1720 behaves like a service that does nothing1721 is expected not to change `MergeRequest.count`1722 is expected not to change `MergeRequest.maximum(:updated_at)`1723 behaves like with the project default branch1724 behaves like a service that does nothing1725 is expected not to change `MergeRequest.count`1726 is expected not to change `MergeRequest.maximum(:updated_at)`1727 `milestone` push option1728 with a valid milestone1729 with a new branch1730 adds an error to the service1731 behaves like a service that does not create a merge request1732 is expected not to change `MergeRequest.count`1733 when coupled with the `create` push option1734 behaves like a service that can create a merge request1735 creates a merge request with the correct target branch1736 when project has been forked1737 sets the correct source and target project1738 behaves like a service that can set the milestone of a merge request1739 sets the milestone1740 with an existing branch but no open MR1741 adds an error to the service1742 behaves like a service that does not create a merge request1743 is expected not to change `MergeRequest.count`1744 when coupled with the `create` push option1745 behaves like a service that can create a merge request1746 creates a merge request with the correct target branch1747 when project has been forked1748 sets the correct source and target project1749 behaves like a service that can set the milestone of a merge request1750 sets the milestone1751 with an existing branch that has a merge request open1752 behaves like a service that does not create a merge request1753 is expected not to change `MergeRequest.count`1754 behaves like a service that can set the milestone of a merge request1755 sets the milestone1756 behaves like with a deleted branch1757 behaves like a service that does nothing1758 is expected not to change `MergeRequest.count`1759 is expected not to change `MergeRequest.maximum(:updated_at)`1760 behaves like with the project default branch1761 behaves like a service that does nothing1762 is expected not to change `MergeRequest.count`1763 is expected not to change `MergeRequest.maximum(:updated_at)`1764 with invalid milestone1765 behaves like a service that can set the milestone of a merge request1766 sets the milestone1767 with an ancestor milestone1768 with immediate parent milestone1769 behaves like a service that can create a merge request1770 creates a merge request with the correct target branch1771 when project has been forked1772 sets the correct source and target project1773 behaves like a service that can set the milestone of a merge request1774 sets the milestone1775 with multi-level ancestor milestone1776 behaves like a service that can create a merge request1777 creates a merge request with the correct target branch1778 when project has been forked1779 sets the correct source and target project1780 behaves like a service that can set the milestone of a merge request1781 sets the milestone1782 `assign` push option1783 behaves like with a new branch1784 adds an error to the service1785 behaves like a service that does not create a merge request1786 is expected not to change `MergeRequest.count`1787 behaves like when coupled with the `create` push option1788 behaves like a service that can create a merge request1789 creates a merge request with the correct target branch1790 when project has been forked1791 sets the correct source and target project1792 behaves like a service that can change assignees of a merge request1793 changes assignee count1794 behaves like with an existing branch but no open MR1795 adds an error to the service1796 behaves like a service that does not create a merge request1797 is expected not to change `MergeRequest.count`1798 behaves like when coupled with the `create` push option1799 behaves like a service that can create a merge request1800 creates a merge request with the correct target branch1801 when project has been forked1802 sets the correct source and target project1803 behaves like a service that can change assignees of a merge request1804 changes assignee count1805 behaves like with an existing branch that has a merge request open in foss1806 behaves like a service that does not create a merge request1807 is expected not to change `MergeRequest.count`1808 behaves like a service that can change assignees of a merge request1809 changes assignee count1810 behaves like with a deleted branch1811 behaves like a service that does nothing1812 is expected not to change `MergeRequest.count`1813 is expected not to change `MergeRequest.maximum(:updated_at)`1814 behaves like with the project default branch1815 behaves like a service that does nothing1816 is expected not to change `MergeRequest.count`1817 is expected not to change `MergeRequest.maximum(:updated_at)`1818 `unassign` push option1819 behaves like with a new branch1820 adds an error to the service1821 behaves like a service that does not create a merge request1822 is expected not to change `MergeRequest.count`1823 behaves like when coupled with the `create` push option1824 behaves like a service that can create a merge request1825 creates a merge request with the correct target branch1826 when project has been forked1827 sets the correct source and target project1828 behaves like a service that can change assignees of a merge request1829 changes assignee count1830 behaves like with an existing branch but no open MR1831 adds an error to the service1832 behaves like a service that does not create a merge request1833 is expected not to change `MergeRequest.count`1834 behaves like when coupled with the `create` push option1835 behaves like a service that can create a merge request1836 creates a merge request with the correct target branch1837 when project has been forked1838 sets the correct source and target project1839 behaves like a service that can change assignees of a merge request1840 changes assignee count1841 behaves like with an existing branch that has a merge request open in foss1842 behaves like a service that does not create a merge request1843 is expected not to change `MergeRequest.count`1844 behaves like a service that can change assignees of a merge request1845 changes assignee count1846 behaves like with a deleted branch1847 behaves like a service that does nothing1848 is expected not to change `MergeRequest.count`1849 is expected not to change `MergeRequest.maximum(:updated_at)`1850 behaves like with the project default branch1851 behaves like a service that does nothing1852 is expected not to change `MergeRequest.count`1853 is expected not to change `MergeRequest.maximum(:updated_at)`1854 multiple pushed branches1855 creates a merge request per branch1856 when there are too many pushed branches1857 records an error1858 no push options1859 behaves like a service that does nothing1860 is expected not to change `MergeRequest.count`1861 is expected not to change `MergeRequest.maximum(:updated_at)`1862 no user1863 records an error1864 unauthorized user1865 records an error1866 handling unexpected exceptions1867 records an error1868 writes to Gitlab::AppLogger1869 when target is not a valid branch name1870 records an error1871 when MRs are not enabled1872 records an error1873 when MR has ActiveRecord errors1874 adds the error to its errors property1875Gitlab::ImportExport::Group::TreeRestorer1876 when import_relation_object_persistence feature flag is enabled1877 restore group tree1878 has the group description1879 has group labels1880 has badges1881 has milestones1882 has group children1883 has group members1884 issue boards1885 has issue boards1886 has board label lists1887 child with no parent1888 captures import failures when a child group does not have a valid parent_id1889 when child group creation fails1890 captures import failure1891 excluded attributes1892 does not import root group name1893 does not import root group path1894 does not allow override of excluded attributes1895 does not allow override of excluded attributes1896 does not allow override of excluded attributes1897 does not allow override of excluded attributes1898 does not allow override of excluded attributes1899 does not allow override of excluded attributes1900 does not allow override of excluded attributes1901 does not allow override of excluded attributes1902 group.json file access check1903 does not read a symlink1904 group visibility levels1905 when visibility level is public1906 imports all subgroups as public1907 when visibility level is private1908 imports all subgroups as private1909 when visibility level is internal1910 imports all subgroups as internal1911 when import_relation_object_persistence feature flag is disabled1912 restore group tree1913 has the group description1914 has group labels1915 has badges1916 has milestones1917 has group children1918 has group members1919 issue boards1920 has issue boards1921 has board label lists1922 child with no parent1923 captures import failures when a child group does not have a valid parent_id1924 when child group creation fails1925 captures import failure1926 excluded attributes1927 does not import root group name1928 does not import root group path1929 does not allow override of excluded attributes1930 does not allow override of excluded attributes1931 does not allow override of excluded attributes1932 does not allow override of excluded attributes1933 does not allow override of excluded attributes1934 does not allow override of excluded attributes1935 does not allow override of excluded attributes1936 does not allow override of excluded attributes1937 group.json file access check1938 does not read a symlink1939 group visibility levels1940 when visibility level is public1941 imports all subgroups as public1942 when visibility level is private1943 imports all subgroups as private1944 when visibility level is internal1945 imports all subgroups as internal1946Projects::OverwriteProjectService1947 #execute1948 when project does not have any relation1949 behaves like overwrite actions1950 moves deploy keys1951 moves notification settings1952 moves users stars1953 moves project group links1954 moves memberships and authorizations1955 schedules original project for deletion1956 renames the project1957 renames source project to temp name1958 moves lfs objects relationships1959 is expected to eq 31960 when project rename fails1961 source rename1962 moves relations back to source project and raises an exception1963 new project rename1964 moves relations back, renames source project back to original name and raises1965 when project with elements1966 behaves like overwrite actions1967 moves deploy keys1968 moves notification settings1969 moves users stars1970 moves project group links1971 moves memberships and authorizations1972 schedules original project for deletion1973 renames the project1974 renames source project to temp name1975 moves lfs objects relationships1976 is expected to eq 31977 when project rename fails1978 source rename1979 moves relations back to source project and raises an exception1980 new project rename1981 moves relations back, renames source project back to original name and raises1982 forks1983 when moving a root forked project1984 moves the descendant forks1985 updates the fork network1986 when moving a intermediate forked project1987 moves the descendant forks1988 moves the ascendant fork1989 does not update fork network1990 if an exception is raised1991 rollbacks changes1992 removes fork network member1993IssuePolicy1994 a private project1995 allows guests to read issues1996 allows reporters to read, update, and admin issues1997 allows reporters from group links to read, update, and admin issues1998 allows issue authors to read and update their issues1999 allows issue assignees to read and update their issues2000 does not allow non-members to read, update or create issues2001 behaves like support bot with service desk disabled2002 does not allow support_bot to read issues, create and set metadata on new issues2003 behaves like support bot with service desk enabled2004 allows support_bot to read issues, create and set metadata on new issues2005 with confidential issues2006 does not allow non-members to read confidential issues2007 does not allow guests to read confidential issues2008 allows reporters to read, update, and admin confidential issues2009 allows reporters from group links to read, update, and admin confidential issues2010 allows issue authors to read and update their confidential issues2011 does not allow issue author to read or update confidential issue moved to an private project2012 allows issue assignees to read and update their confidential issues2013 does not allow issue assignees to read or update confidential issue moved to an private project2014 a public project2015 does not allow anonymous user to create todos2016 allows guests to read issues2017 allows reporters to read, update, reopen, and admin issues2018 allows reporters from group links to read, update, reopen and admin issues2019 allows issue authors to read, reopen and update their issues2020 allows issue assignees to read, reopen and update their issues2021 allows non-members to read and create issues2022 allows non-members to read issues2023 does not allow non-members to update, admin or set metadata except for set confidential flag2024 allows support_bot to read issues2025 behaves like support bot with service desk enabled2026 allows support_bot to read issues, create and set metadata on new issues2027 when issues are private2028 forbids visitors from viewing issues2029 forbids visitors from commenting2030 forbids visitors from subscribing2031 allows guests to view2032 allows guests to comment2033 allows guests to subscribe2034 does not allow non-members to update or create issues2035 when admin mode is enabled2036 allows admins to view2037 allows admins to comment2038 when admin mode is disabled2039 forbids admins to view2040 forbids admins to comment2041 behaves like support bot with service desk disabled2042 does not allow support_bot to read issues, create and set metadata on new issues2043 behaves like support bot with service desk enabled2044 allows support_bot to read issues, create and set metadata on new issues2045 with confidential issues2046 does not allow guests to read confidential issues2047 allows reporters to read, update, and admin confidential issues2048 allows reporter from group links to read, update, and admin confidential issues2049 allows issue authors to read and update their confidential issues2050 allows issue assignees to read and update their confidential issues2051 with a hidden issue2052 does not allow non-admin user to read the issue2053 allows admin to read the issue2054 with external authorization enabled2055 can read the issue iid without accessing the external service2056 crm permissions2057 when project reporter2058 is disallowed2059 when subgroup reporter2060 is allowed2061 when root group reporter2062 is allowed2063 when crm disabled on subgroup2064 is disallowed2065 when peronsal namespace2066 is disallowed2067Clusters::Platforms::Kubernetes2068 is expected to belong to cluster required: false2069 is expected to be a kind of Gitlab::Kubernetes2070 is expected to respond to #ca_pem2071 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›2072 is expected to validate that :api_url cannot be empty/falsy2073 is expected to validate that :token cannot be empty/falsy2074 is expected to delegate #enabled? to the #cluster object2075 is expected to delegate #provided_by_user? to the #cluster object2076 is expected to nullify if blank :namespace2077 behaves like having unique enum values2078 has unique values in "authorization_type"2079 before_validation2080 when namespace includes upper case2081 converts to lower case2082 validation2083 when validates namespace2084 when namespace is nil2085 is expected to be truthy2086 when namespace is longer than 632087 is expected to be falsey2088 when namespace includes invalid character2089 is expected to be falsey2090 when namespace is vaild2091 is expected to be truthy2092 for group cluster2093 is expected to be falsey2094 when validates api_url2095 when api_url is invalid url2096 is expected to be falsey2097 when api_url is nil2098 is expected to be falsey2099 when api_url is valid url2100 is expected to be truthy2101 when api_url is localhost2102 is expected to be falsey2103 Application settings allows local requests2104 is expected to be truthy2105 when validates token2106 when token is nil2107 is expected to be falsey2108 ca_cert2109 with a valid certificate2110 is expected to be truthy2111 with an invalid certificate2112 is expected to be falsey2113 but the certificate is not being updated2114 is expected to be truthy2115 with no certificate2116 is expected to be truthy2117 when using reserved namespaces2118 when no namespace is manually assigned2119 is expected to be valid2120 when no reserved namespace is assigned2121 is expected to be valid2122 when reserved namespace is assigned2123 is expected not to be valid2124 #kubeclient2125 is expected to be an instance of Gitlab::Kubernetes::KubeClient2126 ca_pem is a single certificate2127 adds it to cert_store2128 ca_pem is a chain2129 fixture_path: "spec/fixtures/clusters/root_certificate.pem"2130 includes chain of certificates2131 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"2132 includes chain of certificates2133 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"2134 includes chain of certificates2135 #rbac?2136 is expected to be truthy2137 #predefined_variables2138 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}2139 platform has a CA certificate2140 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}2141 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}2142 cluster is managed by project2143 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2144 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2145 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2146 kubernetes namespace exists2147 is expected to include {:key => :fake_key, :value => "fake_value"}2148 kubernetes namespace does not exist2149 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2150 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2151 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2152 cluster is unmanaged2153 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2154 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2155 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2156 custom namespace is provided2157 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2158 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}2159 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2160 cluster variables2161 is expected to include {:key => :fake_key, :value => "fake_value"}2162 #terminals2163 with invalid pods2164 returns no terminals2165 with valid pods2166 returns terminals2167 uses max session time from settings2168 #calculate_reactive_cache_for2169 when kubernetes responds with valid deployments2170 on a project level cluster2171 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2172 on a group level cluster2173 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2174 on an instance level cluster2175 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2176 when the kubernetes integration is disabled2177 is expected to be nil2178 when there are ignored K8s connections errors2179 Gitlab::UrlBlocker::BlockedUrlError2180 does not raise error2181 returns empty array for the K8s component keys2182 logs the error2183 Kubeclient::HttpError2184 does not raise error2185 returns empty array for the K8s component keys2186 logs the error2187 Errno::ECONNREFUSED2188 does not raise error2189 returns empty array for the K8s component keys2190 logs the error2191 URI::InvalidURIError2192 does not raise error2193 returns empty array for the K8s component keys2194 logs the error2195 Errno::EHOSTUNREACH2196 does not raise error2197 returns empty array for the K8s component keys2198 logs the error2199 OpenSSL::X509::StoreError2200 does not raise error2201 returns empty array for the K8s component keys2202 logs the error2203 OpenSSL::SSL::SSLError2204 does not raise error2205 returns empty array for the K8s component keys2206 logs the error2207 when kubernetes responds with 500s2208 does not raise kubeclient http error2209 when kubernetes responds with 404s2210 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}2211 #rollout_status2212 legacy deployments based on app label2213 only legacy deployments2214 contains nothing2215 deployment with no pods2216 returns a valid status with matching deployments2217 new deployment based on annotations2218 contains only matching deployments2219 with no deployments but there are pods2220 returns an empty array2221 with valid deployments2222 creates a matching RolloutStatus2223 with canary ingress2224 has canary ingress2225 with empty list of deployments2226 creates a matching RolloutStatus2227 when the pod track does not match the deployment track2228 does not return the pod2229 when the pod track is not stable2230 the pod is not stable2231 when the pod track is stable2232 the pod is stable2233 when the pod track is not provided2234 the pod is stable2235 when the number of matching pods does not match the number of replicas2236 returns a pending pod for each missing replica2237 when pending pods are returned for missing replicas2238 returns the correct track for the pending pods2239 when two deployments with the same track are missing instances2240 returns the correct number of pending pods2241 with multiple matching deployments2242 returns each pod once2243 when cache keys are defaulted2244 does not raise error2245 #ingresses2246 when there is an ingress in the namespace2247 returns an ingress2248 when there are no ingresss in the namespace2249 returns nothing2250 #patch_ingress2251 when there is an ingress in the namespace2252 returns an ingress2253 when there are no ingresss in the namespace2254 raises an error2255Clusters::Applications::Ingress2256 is expected to belong to cluster required: false2257 is expected to validate that :cluster cannot be empty/falsy2258 behaves like having unique enum values2259 has unique values in "ingress_type"2260 #can_uninstall?2261 calls allowed_to_uninstall?2262 #name2263 is .application_name2264 is recorded in Clusters::Cluster::APPLICATIONS2265 .association_name2266 is expected to eq :application_ingress2267 #helm_command_module2268 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22269 is expected to eq Gitlab::Kubernetes::Helm::V22270 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32271 is expected to eq Gitlab::Kubernetes::Helm::V32272 #status_states2273 returns a hash of state values2274 returns an integer for installed state value2275 .available2276 is expected to contain exactly #<Clusters::Applications::Ingress id: 1, cluster_id: 150, created_at: "2022-06-28 10:38:07.682538346 ...", version: "1.40.2", cluster_ip: nil, status_reason: nil, external_ip: nil, external_hostname: nil> and #<Clusters::Applications::Ingress id: 2, cluster_id: 156, created_at: "2022-06-28 10:38:09.033215513 ...", version: "1.40.2", cluster_ip: nil, status_reason: nil, external_ip: nil, external_hostname: nil>2277 status state machine2278 #make_installing2279 is installing2280 #make_installed2281 is installed2282 does not update the helm version2283 the cluster has no helm installed2284 runs without errors2285 application is updating2286 is updated2287 does not update the helm version2288 the cluster has no helm installed2289 runs without errors2290 #make_errored2291 is errored2292 application is updating2293 is update_errored2294 application is uninstalling2295 is uninstall_errored2296 #make_externally_installed2297 is installed2298 helm record does not exist2299 does not create a helm record2300 helm record exists2301 does not update helm version2302 application is updated2303 is installed2304 application is errored2305 is installed2306 clears #status_reason2307 #make_externally_uninstalled2308 is uninstalled2309 application is updated2310 is uninstalled2311 application is errored2312 is uninstalled2313 clears #status_reason2314 #make_scheduled2315 is scheduled2316 when installed2317 is scheduled2318 when was errored2319 clears #status_reason2320 when was updated_errored2321 clears #status_reason2322 when was uninstall_errored2323 clears #status_reason2324 #make_uninstalling2325 is uninstalling2326 #available?2327 trait: :not_installable, available: false2328 is expected not to be available2329 trait: :installable, available: false2330 is expected not to be available2331 trait: :scheduled, available: false2332 is expected not to be available2333 trait: :installing, available: false2334 is expected not to be available2335 trait: :installed, available: true2336 is expected to be available2337 trait: :updating, available: false2338 is expected not to be available2339 trait: :updated, available: true2340 is expected to be available2341 trait: :errored, available: false2342 is expected not to be available2343 trait: :update_errored, available: false2344 is expected not to be available2345 trait: :uninstalling, available: false2346 is expected not to be available2347 trait: :uninstall_errored, available: false2348 is expected not to be available2349 trait: :uninstalled, available: false2350 is expected not to be available2351 trait: :timed_out, available: false2352 is expected not to be available2353 trait: :externally_installed, available: true2354 is expected to be available2355 update_available?2356 version is not the same as VERSION2357 is expected to be truthy2358 version is the same as VERSION2359 is expected to be falsey2360 #make_installed2361 sets the correct version of the application2362 application is updating2363 updates the version of the application2364 #make_externally_installed2365 sets to a special version2366 #uninstall_command2367 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand2368 has files2369 is rbac2370 on a non rbac enabled cluster2371 is expected not to be rbac2372 #files2373 does not include cert files2374 when cluster does not have helm installed2375 does not include cert files2376 #status2377 sets a default status2378 #can_uninstall?2379 with jupyter installed2380 returns false if external_ip_or_hostname? is true2381 returns false if external_ip_or_hostname? is false2382 with jupyter installable2383 returns true if external_ip_or_hostname? is true2384 returns false if external_ip_or_hostname? is false2385 with jupyter nil2386 returns false if external_ip_or_hostname? is false2387 if external_ip_or_hostname? is true2388 with IP2389 is expected to be truthy2390 with hostname2391 is expected to be truthy2392 #make_installed!2393 schedules a ClusterWaitForIngressIpAddressWorker2394 #schedule_status_update2395 schedules a ClusterWaitForIngressIpAddressWorker2396 when the application is not installed2397 does not schedule a ClusterWaitForIngressIpAddressWorker2398 when there is already an external_ip2399 does not schedule a ClusterWaitForIngressIpAddressWorker2400 when there is already an external_hostname2401 does not schedule a ClusterWaitForIngressIpAddressWorker2402 #install_command2403 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand2404 is initialized with ingress arguments2405 on a non rbac enabled cluster2406 is expected not to be rbac2407 application failed to install previously2408 is initialized with the locked version2409 #files2410 includes ingress valid keys in values2411Todo2412 relationships2413 is expected to belong to author class_name => User required: false2414 is expected to belong to note required: false2415 is expected to belong to project required: false2416 is expected to belong to group required: false2417 is expected to belong to target required: false2418 is expected to belong to user required: false2419 respond to2420 is expected to respond to #author_name2421 is expected to respond to #author_email2422 validations2423 is expected to validate that :action cannot be empty/falsy2424 is expected to validate that :target_type cannot be empty/falsy2425 is expected to validate that :user cannot be empty/falsy2426 is expected to validate that :author cannot be empty/falsy2427 for commits2428 is expected to validate that :commit_id cannot be empty/falsy2429 is expected not to validate that :target_id cannot be empty/falsy2430 for issuables2431 is expected to validate that :target_id cannot be empty/falsy2432 is expected not to validate that :commit_id cannot be empty/falsy2433 #body2434 returns target title when note is blank2435 returns note when note is present2436 #done2437 changes state to done2438 does not raise error when is already done2439 #for_commit?2440 returns true when target is a commit2441 returns false when target is an issuable2442 #for_design?2443 returns true when target is a Design2444 returns false when target is not a Design2445 #for_alert?2446 returns true when target is a Alert2447 returns false when target is not a Alert2448 #target2449 returns the issuable for issuables2450 for commits2451 returns an instance of Commit when exists2452 returns nil when does not exists2453 #target_reference2454 returns commit full reference with short id2455 returns full reference for issuables2456 #self_added?2457 is true when the user is the author2458 is false when the user is not the author2459 #done?2460 returns true for todos with done state2461 returns false for todos with state pending2462 #self_assigned?2463 when self_added2464 returns true for ASSIGNED2465 returns true for REVIEW_REQUESTED2466 returns false for other action2467 when todo is not self_added2468 returns false2469 .for_action2470 returns the todos for a given action2471 .for_author2472 returns the todos for a given author2473 .for_project2474 returns the todos for a given project2475 returns the todos for many projects2476 .for_undeleted_projects2477 returns the todos for a given project2478 when todo belongs to deleted project2479 excludes todos of deleted projects2480 .for_group2481 returns the todos for a given group2482 .for_type2483 returns the todos for a given target type2484 .for_target2485 returns the todos for a given target2486 .for_commit2487 returns the todos for a commit ID2488 .for_group_ids_and_descendants2489 returns the todos for a group and its descendants2490 .for_user2491 returns the expected todos2492 .for_note2493 returns todos that belongs to notes2494 .group_by_user_id_and_state2495 is expected to eq {[1135, "done"]=>1, [1135, "pending"]=>2, [1136, "pending"]=>1}2496 .any_for_target?2497 returns true if there are todos for a given target2498 returns true if there is at least one todo for a given target with state pending2499 returns false if there are only todos for a given target with state done while searching for pending2500 returns false if there are no todos for a given target2501 .batch_update2502 updates the state of todos2503 does not update todos that already have the given state2504 updates updated_at2505 .distinct_user_ids2506 is expected to contain exactly 1160 and 11612507Gitlab::Database::Migrations::BackgroundMigrationHelpers2508 when the migration is running against the main database2509 behaves like helpers that enqueue background migrations2510 #queue_background_migration_jobs_by_range_at_intervals2511 when the model has an ID column2512-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2513The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:29 UTC."2514 returns the final expected delay2515-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2516The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:30 UTC."2517 returns zero when nothing gets queued2518 when the delay_interval is smaller than the minimum2519-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.2520The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-06-28 10:44:30 UTC."2521 sets the delay_interval to the minimum value2522 with batch_size option2523-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2524The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:31 UTC."2525 queues jobs correctly2526 without batch_size option2527-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2528The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:31 UTC."2529 queues jobs correctly2530 with other_job_arguments option2531-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2532The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:32 UTC."2533 queues jobs correctly2534 with initial_delay option2535-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2536The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:32 UTC."2537 queues jobs correctly2538 with track_jobs option2539-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2540The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:33 UTC."2541 creates a record for each job in the database2542 without track_jobs option2543-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2544The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:33 UTC."2545 does not create records in the database2546 when the model specifies a primary_column_name2547-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2548The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:34 UTC."2549 returns the final expected delay2550 when the primary_column_name is a string2551-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2552The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:35 UTC."2553 does not raise error2554 when the primary_column_name is not an integer or a string2555 raises error2556 when the primary_column_name does not exist2557 raises error2558 when the model doesn't have an ID or primary_column_name column2559 raises error (for now)2560 when using Migration[2.0]2561 when restriction is set to gitlab_shared2562 does raise an exception2563 when within transaction2564 does raise an exception2565 #requeue_background_migration_jobs_by_range_at_intervals2566-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2567The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:39 UTC."2568 returns the expected duration2569-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2570The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:39 UTC."2571 queues pending jobs2572 when using Migration[2.0]2573main: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.2574The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:39 UTC."2575 does re-enqueue pending jobs2576 when restriction is set2577 does raise an exception2578 when within transaction2579 does raise an exception2580 when nothing is queued2581-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.2582The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:39 UTC."2583 returns expected duration of zero when nothing gets queued2584 with batch_size option2585-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2586The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:40 UTC."2587 returns the expected duration2588-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2589The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:40 UTC."2590 queues pending jobs2591-- Scheduled 0 TestJob jobs with an interval of 600 seconds.2592The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:40 UTC."2593 retrieve jobs in batches2594 with initial_delay option2595-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2596The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2022-06-28 11:03:40 UTC."2597 returns the expected duration2598-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2599The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2022-06-28 11:03:40 UTC."2600 queues pending jobs2601 when nothing is queued2602-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.2603The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:40 UTC."2604 returns expected duration of zero when nothing gets queued2605 #finalize_background_migration2606 behaves like finalized tracked background migration2607 processed the scheduled sidekiq queue2608 processed the async sidekiq queue2609 removes 'pending' tracked jobs2610 removes 'succeeded' tracked jobs2611 when within transaction2612 does raise an exception2613 when using Migration[2.0]2614 behaves like finalized tracked background migration2615 processed the scheduled sidekiq queue2616 processed the async sidekiq queue2617 removes 'pending' tracked jobs2618 removes 'succeeded' tracked jobs2619 when restriction is set2620 does raise an exception2621 when running migration in reconfigured ActiveRecord::Base context2622 behaves like reconfigures connection stack2623 does restore connection hierarchy2624 when removing all tracked job records2625 behaves like finalized tracked background migration2626 processed the scheduled sidekiq queue2627 processed the async sidekiq queue2628 removes 'pending' tracked jobs2629 removes 'succeeded' tracked jobs2630 behaves like removed tracked jobs2631 removes 'pending' tracked jobs2632 behaves like removed tracked jobs2633 removes 'succeeded' tracked jobs2634 when retaining all tracked job records2635 retains 'succeeded' tracked jobs2636 behaves like finalized background migration2637 processed the scheduled sidekiq queue2638 processed the async sidekiq queue2639 removes 'pending' tracked jobs2640 during retry race condition2641 behaves like finalized tracked background migration2642 processed the scheduled sidekiq queue2643 processed the async sidekiq queue2644 removes 'pending' tracked jobs2645 removes 'succeeded' tracked jobs2646 #migrate_in2647 calls perform_in for the correct worker2648 pushes a context with the current class name as caller_id2649 when a specific coordinator is given2650 uses that coordinator2651 #delete_queued_jobs2652 deletes all queued jobs for the given background migration2653 when the migration is running against the ci database2654 behaves like helpers that enqueue background migrations2655 #queue_background_migration_jobs_by_range_at_intervals2656 when the model has an ID column2657-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2658The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:45 UTC."2659 returns the final expected delay2660-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2661The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:45 UTC."2662 returns zero when nothing gets queued2663 when the delay_interval is smaller than the minimum2664-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.2665The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-06-28 10:44:46 UTC."2666 sets the delay_interval to the minimum value2667 with batch_size option2668-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2669The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:46 UTC."2670 queues jobs correctly2671 without batch_size option2672-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2673The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:47 UTC."2674 queues jobs correctly2675 with other_job_arguments option2676-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2677The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:47 UTC."2678 queues jobs correctly2679 with initial_delay option2680-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2681The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:48 UTC."2682 queues jobs correctly2683 with track_jobs option2684-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2685The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:48 UTC."2686 creates a record for each job in the database2687 without track_jobs option2688-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2689The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:49 UTC."2690 does not create records in the database2691 when the model specifies a primary_column_name2692-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.2693The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:49 UTC."2694 returns the final expected delay2695 when the primary_column_name is a string2696-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.2697The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2022-06-28 10:50:51 UTC."2698 does not raise error2699 when the primary_column_name is not an integer or a string2700 raises error2701 when the primary_column_name does not exist2702 raises error2703 when the model doesn't have an ID or primary_column_name column2704 raises error (for now)2705 when using Migration[2.0]2706 when restriction is set to gitlab_shared2707 does raise an exception2708 when within transaction2709 does raise an exception2710 #requeue_background_migration_jobs_by_range_at_intervals2711-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2712The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:54 UTC."2713 returns the expected duration2714-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2715The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:54 UTC."2716 queues pending jobs2717 when using Migration[2.0]2718ci: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.2719The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:54 UTC."2720 does re-enqueue pending jobs2721 when restriction is set2722 does raise an exception2723 when within transaction2724 does raise an exception2725 when nothing is queued2726-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.2727The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:55 UTC."2728 returns expected duration of zero when nothing gets queued2729 with batch_size option2730-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2731The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:55 UTC."2732 returns the expected duration2733-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2734The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2022-06-28 11:00:55 UTC."2735 queues pending jobs2736-- Scheduled 0 TestJob jobs with an interval of 600 seconds.2737The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:55 UTC."2738 retrieve jobs in batches2739 with initial_delay option2740-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2741The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2022-06-28 11:03:55 UTC."2742 returns the expected duration2743-- Scheduled 2 TestJob jobs with an interval of 600 seconds.2744The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2022-06-28 11:03:56 UTC."2745 queues pending jobs2746 when nothing is queued2747-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.2748The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2022-06-28 10:40:56 UTC."2749 returns expected duration of zero when nothing gets queued2750 #finalize_background_migration2751 behaves like finalized tracked background migration2752 processed the scheduled sidekiq queue2753 processed the async sidekiq queue2754 removes 'pending' tracked jobs2755 removes 'succeeded' tracked jobs2756 when within transaction2757 does raise an exception2758 when using Migration[2.0]2759 behaves like finalized tracked background migration2760 processed the scheduled sidekiq queue2761 processed the async sidekiq queue2762 removes 'pending' tracked jobs2763 removes 'succeeded' tracked jobs2764 when restriction is set2765 does raise an exception2766 when running migration in reconfigured ActiveRecord::Base context2767 behaves like reconfigures connection stack2768 does restore connection hierarchy2769 when removing all tracked job records2770 behaves like finalized tracked background migration2771 processed the scheduled sidekiq queue2772 processed the async sidekiq queue2773 removes 'pending' tracked jobs2774 removes 'succeeded' tracked jobs2775 behaves like removed tracked jobs2776 removes 'pending' tracked jobs2777 behaves like removed tracked jobs2778 removes 'succeeded' tracked jobs2779 when retaining all tracked job records2780 retains 'succeeded' tracked jobs2781 behaves like finalized background migration2782 processed the scheduled sidekiq queue2783 processed the async sidekiq queue2784 removes 'pending' tracked jobs2785 during retry race condition2786 behaves like finalized tracked background migration2787 processed the scheduled sidekiq queue2788 processed the async sidekiq queue2789 removes 'pending' tracked jobs2790 removes 'succeeded' tracked jobs2791 #migrate_in2792 calls perform_in for the correct worker2793 pushes a context with the current class name as caller_id2794 when a specific coordinator is given2795 uses that coordinator2796 #delete_queued_jobs2797 deletes all queued jobs for the given background migration2798 #delete_job_tracking2799 with default status2800 retains 'pending' tracked jobs2801 removes 'succeeded' tracked jobs2802 with explicit status2803 removes 'pending' tracked jobs2804 removes 'succeeded' tracked jobs2805Gitlab::Ci::Status::Build::Factory2806 when build is successful2807 matches correct core status2808 matches correct extended statuses2809 fabricates a retryable build status2810 fabricates status with correct details2811 when build is erased2812 matches correct core status2813 matches correct extended statuses2814 fabricates a retryable build status2815 fabricates status with correct details2816 when build is failed2817 when build is not allowed to fail2818 matches correct core status2819 matches correct extended statuses2820 fabricates a failed build status2821 fabricates status with correct details2822 when build is allowed to fail2823 matches correct core status2824 matches correct extended statuses2825 fabricates a failed but allowed build status2826 fabricates status with correct details2827 when build has unmet prerequisites2828 matches correct core status2829 matches correct extended statuses2830 fabricates a failed with unmet prerequisites build status2831 fabricates status with correct details2832 when build is a canceled2833 matches correct core status2834 matches correct extended statuses2835 fabricates a retryable build status2836 fabricates status with correct details2837 when build is running2838 matches correct core status2839 matches correct extended statuses2840 fabricates a canceable build status2841 fabricates status with correct details2842 when build is pending2843 matches correct core status2844 matches correct extended statuses2845 fabricates a cancelable build status2846 fabricates status with correct details2847 when build is skipped2848 matches correct core status2849 matches correct extended statuses2850 fabricates a skipped build status2851 fabricates status with correct details2852 when build is a manual action2853 when build is a play action2854 matches correct core status2855 matches correct extended statuses2856 fabricates action detailed status2857 fabricates status with correct details2858 when user has ability to play action2859 fabricates status that has action2860 when user does not have ability to play action2861 fabricates status that has no action2862 when build is an environment stop action2863 matches correct core status2864 matches correct extended statuses2865 fabricates action detailed status2866 when user is not allowed to execute manual action2867 fabricates status with correct details2868 when build is a delayed action2869 matches correct core status2870 matches correct extended statuses2871 fabricates action detailed status2872 fabricates status with correct details2873 when user has ability to play action2874 fabricates status that has action2875 when user does not have ability to play action2876 fabricates status that has no action2877Packages::Debian::GenerateDistributionService2878 #execute2879 for project2880 behaves like Generate Debian Distribution and component files2881 with Debian components and architectures2882 generates Debian distribution and component files2883 without components and architectures2884 generates minimal distribution2885 for group2886 behaves like Generate Debian Distribution and component files2887 with Debian components and architectures2888 generates Debian distribution and component files2889 without components and architectures2890 generates minimal distribution2891BroadcastMessage2892 is expected to be valid2893 validations2894 is expected to allow :color to be ‹nil›2895 is expected to allow :color to be ‹"#000"›2896 is expected to allow :color to be ‹"#AABBCC"›2897 is expected not to allow :color to be ‹"000"›2898 is expected to allow :font to be ‹nil›2899 is expected to allow :font to be ‹"#000"›2900 is expected to allow :font to be ‹"#AABBCC"›2901 is expected not to allow :font to be ‹"000"›2902 is expected to allow :broadcast_type to be ‹1›2903 is expected not to allow :broadcast_type to be ‹nil›2904 is expected not to allow :target_access_levels to be ‹nil›2905 is expected to validate that :target_access_levels is either ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›2906 .current2907 returns both types2908 behaves like time constrainted2909 returns message if time match2910 returns multiple messages if time match2911 returns empty list if time not come2912 returns empty list if time has passed2913 behaves like message cache2914 caches the output of the query for two weeks2915 expires the value if a broadcast message has ended2916 does not create new records2917 includes messages that need to be displayed in the future2918 does not clear the cache if only a future message should be displayed2919 behaves like matches with current path2920 returns message if it matches the target path2921 returns message if part of the target path matches2922 returns message if provided a path without a preceding slash2923 returns the message for empty target path2924 returns the message if target path is nil2925 does not return message if target path does not match2926 does not return message if target path does not match when using wildcard2927 does not return message if target path has no wild card at the end2928 does not return message if target path has wild card at the end2929 does return message if target path has wild card at the beginning and the end2930 does not return message if the target path is set but no current path is provided2931 behaves like matches with user access level2932 when feature flag is disabled2933 when message is role-targeted2934 does not return the message2935 when message is not role-targeted2936 returns the message2937 when target_access_levels is empty2938 returns the message if user access level is not nil2939 returns the message if user access level is nil2940 when target_access_levels is not empty2941 does not return the message if user access level is nil2942 returns the message if user access level is in target_access_levels2943 does not return the message if user access level is not in target_access_levels2944 behaves like handles stale cache data gracefully2945 when cache returns stale data (e.g. nil target_access_levels)2946 does not raise error (e.g. NoMethodError from nil.empty?)2947 when feature flag is disabled2948 does not raise error (e.g. NoMethodError from nil.empty?)2949 when message is from cache2950 behaves like matches with current path2951 returns message if it matches the target path2952 returns message if part of the target path matches2953 returns message if provided a path without a preceding slash2954 returns the message for empty target path2955 returns the message if target path is nil2956 does not return message if target path does not match2957 does not return message if target path does not match when using wildcard2958 does not return message if target path has no wild card at the end2959 does not return message if target path has wild card at the end2960 does return message if target path has wild card at the beginning and the end2961 does not return message if the target path is set but no current path is provided2962 behaves like matches with user access level2963 when feature flag is disabled2964 when message is role-targeted2965 does not return the message2966 when message is not role-targeted2967 returns the message2968 when target_access_levels is empty2969 returns the message if user access level is not nil2970 returns the message if user access level is nil2971 when target_access_levels is not empty2972 does not return the message if user access level is nil2973 returns the message if user access level is in target_access_levels2974 does not return the message if user access level is not in target_access_levels2975 behaves like matches with current path2976 returns message if it matches the target path2977 returns message if part of the target path matches2978 returns message if provided a path without a preceding slash2979 returns the message for empty target path2980 returns the message if target path is nil2981 does not return message if target path does not match2982 does not return message if target path does not match when using wildcard2983 does not return message if target path has no wild card at the end2984 does not return message if target path has wild card at the end2985 does return message if target path has wild card at the beginning and the end2986 does not return message if the target path is set but no current path is provided2987 behaves like matches with user access level2988 when feature flag is disabled2989 when message is role-targeted2990 does not return the message2991 when message is not role-targeted2992 returns the message2993 when target_access_levels is empty2994 returns the message if user access level is not nil2995 returns the message if user access level is nil2996 when target_access_levels is not empty2997 does not return the message if user access level is nil2998 returns the message if user access level is in target_access_levels2999 does not return the message if user access level is not in target_access_levels3000 .current_banner_messages3001 only returns banners3002 behaves like time constrainted3003 returns message if time match3004 returns multiple messages if time match3005 returns empty list if time not come3006 returns empty list if time has passed3007 behaves like message cache3008 caches the output of the query for two weeks3009 expires the value if a broadcast message has ended3010 does not create new records3011 includes messages that need to be displayed in the future3012 does not clear the cache if only a future message should be displayed3013 behaves like matches with current path3014 returns message if it matches the target path3015 returns message if part of the target path matches3016 returns message if provided a path without a preceding slash3017 returns the message for empty target path3018 returns the message if target path is nil3019 does not return message if target path does not match3020 does not return message if target path does not match when using wildcard3021 does not return message if target path has no wild card at the end3022 does not return message if target path has wild card at the end3023 does return message if target path has wild card at the beginning and the end3024 does not return message if the target path is set but no current path is provided3025 behaves like matches with user access level3026 when feature flag is disabled3027 when message is role-targeted3028 does not return the message3029 when message is not role-targeted3030 returns the message3031 when target_access_levels is empty3032 returns the message if user access level is not nil3033 returns the message if user access level is nil3034 when target_access_levels is not empty3035 does not return the message if user access level is nil3036 returns the message if user access level is in target_access_levels3037 does not return the message if user access level is not in target_access_levels3038 behaves like handles stale cache data gracefully3039 when cache returns stale data (e.g. nil target_access_levels)3040 does not raise error (e.g. NoMethodError from nil.empty?)3041 when feature flag is disabled3042 does not raise error (e.g. NoMethodError from nil.empty?)3043 when message is from cache3044 behaves like matches with current path3045 returns message if it matches the target path3046 returns message if part of the target path matches3047 returns message if provided a path without a preceding slash3048 returns the message for empty target path3049 returns the message if target path is nil3050 does not return message if target path does not match3051 does not return message if target path does not match when using wildcard3052 does not return message if target path has no wild card at the end3053 does not return message if target path has wild card at the end3054 does return message if target path has wild card at the beginning and the end3055 does not return message if the target path is set but no current path is provided3056 behaves like matches with user access level3057 when feature flag is disabled3058 when message is role-targeted3059 does not return the message3060 when message is not role-targeted3061 returns the message3062 when target_access_levels is empty3063 returns the message if user access level is not nil3064 returns the message if user access level is nil3065 when target_access_levels is not empty3066 does not return the message if user access level is nil3067 returns the message if user access level is in target_access_levels3068 does not return the message if user access level is not in target_access_levels3069 .current_notification_messages3070 only returns notifications3071 behaves like time constrainted3072 returns message if time match3073 returns multiple messages if time match3074 returns empty list if time not come3075 returns empty list if time has passed3076 behaves like message cache3077 caches the output of the query for two weeks3078 expires the value if a broadcast message has ended3079 does not create new records3080 includes messages that need to be displayed in the future3081 does not clear the cache if only a future message should be displayed3082 behaves like matches with current path3083 returns message if it matches the target path3084 returns message if part of the target path matches3085 returns message if provided a path without a preceding slash3086 returns the message for empty target path3087 returns the message if target path is nil3088 does not return message if target path does not match3089 does not return message if target path does not match when using wildcard3090 does not return message if target path has no wild card at the end3091 does not return message if target path has wild card at the end3092 does return message if target path has wild card at the beginning and the end3093 does not return message if the target path is set but no current path is provided3094 behaves like matches with user access level3095 when feature flag is disabled3096 when message is role-targeted3097 does not return the message3098 when message is not role-targeted3099 returns the message3100 when target_access_levels is empty3101 returns the message if user access level is not nil3102 returns the message if user access level is nil3103 when target_access_levels is not empty3104 does not return the message if user access level is nil3105 returns the message if user access level is in target_access_levels3106 does not return the message if user access level is not in target_access_levels3107 behaves like handles stale cache data gracefully3108 when cache returns stale data (e.g. nil target_access_levels)3109 does not raise error (e.g. NoMethodError from nil.empty?)3110 when feature flag is disabled3111 does not raise error (e.g. NoMethodError from nil.empty?)3112 when message is from cache3113 behaves like matches with current path3114 returns message if it matches the target path3115 returns message if part of the target path matches3116 returns message if provided a path without a preceding slash3117 returns the message for empty target path3118 returns the message if target path is nil3119 does not return message if target path does not match3120 does not return message if target path does not match when using wildcard3121 does not return message if target path has no wild card at the end3122 does not return message if target path has wild card at the end3123 does return message if target path has wild card at the beginning and the end3124 does not return message if the target path is set but no current path is provided3125 behaves like matches with user access level3126 when feature flag is disabled3127 when message is role-targeted3128 does not return the message3129 when message is not role-targeted3130 returns the message3131 when target_access_levels is empty3132 returns the message if user access level is not nil3133 returns the message if user access level is nil3134 when target_access_levels is not empty3135 does not return the message if user access level is nil3136 returns the message if user access level is in target_access_levels3137 does not return the message if user access level is not in target_access_levels3138 #attributes3139 includes message_html field3140 #active?3141 is truthy when started and not ended3142 is falsey when ended3143 is falsey when not started3144 #started?3145 is truthy when starts_at has passed3146 is falsey when starts_at is in the future3147 #ended?3148 is truthy when ends_at has passed3149 is falsey when ends_at is in the future3150 #flush_redis_cache3151 flushes the Redis cache3152Gitlab::Ci::Parsers::Security::Common3153 #parse!3154 vulnerability_finding_signatures_enabled: true3155 schema validation3156 when the validate flag is set to `false`3157 instantiates the validator with correct params3158 when the report data is not valid according to the schema3159 adds warnings to the report3160 keeps the execution flow as normal3161 when the report data is valid according to the schema3162 does not add errors to the report3163 does not add warnings to the report3164 keeps the execution flow as normal3165 when the validate flag is set to `true`3166 instantiates the validator with correct params3167 when the report data is not valid according to the schema3168 adds errors to the report3169 does not try to create report entities3170 when the report data is valid according to the schema3171 does not add errors to the report3172 does not add warnings to the report3173 keeps the execution flow as normal3174 report parsing3175 parsing finding.name3176 when message is provided3177 sets message from the report as a finding name3178 when message is not provided3179 and name is provided3180 sets name from the report as a name3181 and name is not provided3182 when CVE identifier exists3183 combines identifier with location to create name3184 when CWE identifier exists3185 combines identifier with location to create name3186 when neither CVE nor CWE identifier exist3187 combines identifier with location to create name3188 parsing finding.details3189 when details are provided3190 sets details from the report3191 when details are not provided3192 sets empty hash3193 top-level scanner3194 is the primary scanner3195 returns nil report has no scanner3196 parsing scanners3197 when vendor is not missing in scanner3198 returns scanner with parsed vendor value3199 parsing scan3200 returns scan object for each finding3201 returns nil when scan is not a hash3202 parsing schema version3203 parses the version3204 returns nil when there is no version3205 parsing analyzer3206 associates analyzer with report3207 returns nil when analyzer data is not available3208 parsing flags3209 returns flags object for each finding3210 parsing links3211 returns links object for each finding3212 parsing evidence3213 returns evidence object for each finding3214 setting the uuid3215 sets the UUIDv5 for findings3216 parsing tracking3217 with valid tracking information3218 creates signatures for each algorithm3219 with invalid tracking information3220 ignores invalid algorithm types3221 with valid tracking information3222 creates signatures for each signature algorithm3223 sets the uuid according to the higest priority signature3224 vulnerability_finding_signatures_enabled: false3225 schema validation3226 when the validate flag is set to `false`3227 instantiates the validator with correct params3228 when the report data is not valid according to the schema3229 adds warnings to the report3230 keeps the execution flow as normal3231 when the report data is valid according to the schema3232 does not add errors to the report3233 does not add warnings to the report3234 keeps the execution flow as normal3235 when the validate flag is set to `true`3236 instantiates the validator with correct params3237 when the report data is not valid according to the schema3238 adds errors to the report3239 does not try to create report entities3240 when the report data is valid according to the schema3241 does not add errors to the report3242 does not add warnings to the report3243 keeps the execution flow as normal3244 report parsing3245 parsing finding.name3246 when message is provided3247 sets message from the report as a finding name3248 when message is not provided3249 and name is provided3250 sets name from the report as a name3251 and name is not provided3252 when CVE identifier exists3253 combines identifier with location to create name3254 when CWE identifier exists3255 combines identifier with location to create name3256 when neither CVE nor CWE identifier exist3257 combines identifier with location to create name3258 parsing finding.details3259 when details are provided3260 sets details from the report3261 when details are not provided3262 sets empty hash3263 top-level scanner3264 is the primary scanner3265 returns nil report has no scanner3266 parsing scanners3267 when vendor is not missing in scanner3268 returns scanner with parsed vendor value3269 parsing scan3270 returns scan object for each finding3271 returns nil when scan is not a hash3272 parsing schema version3273 parses the version3274 returns nil when there is no version3275 parsing analyzer3276 associates analyzer with report3277 returns nil when analyzer data is not available3278 parsing flags3279 returns flags object for each finding3280 parsing links3281 returns links object for each finding3282 parsing evidence3283 returns evidence object for each finding3284 setting the uuid3285 sets the UUIDv5 for findings3286 parsing tracking3287 with valid tracking information3288 creates signatures for each algorithm3289 with invalid tracking information3290 ignores invalid algorithm types3291 with valid tracking information3292 creates signatures for each signature algorithm3293 sets the uuid according to the higest priority signature3294AlertManagement::Alert3295 associations3296 is expected to belong to project required: false3297 is expected to belong to issue optional: true3298 is expected to belong to prometheus_alert optional: true3299 is expected to belong to environment optional: true3300 is expected to have many assignees through alert_assignees3301 is expected to have many notes3302 is expected to have many ordered_notes3303 is expected to have many user_mentions3304 validations3305 is expected to validate that :title cannot be empty/falsy3306 is expected to validate that :events cannot be empty/falsy3307 is expected to validate that :severity cannot be empty/falsy3308 is expected to validate that :status cannot be empty/falsy3309 is expected to validate that :started_at cannot be empty/falsy3310 is expected to validate that the length of :title is at most 2003311 is expected to validate that the length of :description is at most 10003312 is expected to validate that the length of :service is at most 1003313 is expected to validate that the length of :monitoring_tool is at most 1003314 fingerprint3315 adding an alert with the same fingerprint3316 same project, various states3317 existing_status_event: :resolve, new_status: :triggered, valid: true3318 is expected to be valid3319 existing_status_event: :resolve, new_status: :acknowledged, valid: true3320 is expected to be valid3321 existing_status_event: :resolve, new_status: :ignored, valid: true3322 is expected to be valid3323 existing_status_event: :resolve, new_status: :resolved, valid: true3324 is expected to be valid3325 existing_status_event: :trigger, new_status: :triggered, valid: false3326 is expected to be invalid3327 existing_status_event: :trigger, new_status: :acknowledged, valid: false3328 is expected to be invalid3329 existing_status_event: :trigger, new_status: :ignored, valid: false3330 is expected to be invalid3331 existing_status_event: :trigger, new_status: :resolved, valid: true3332 is expected to be valid3333 existing_status_event: :acknowledge, new_status: :triggered, valid: false3334 is expected to be invalid3335 existing_status_event: :acknowledge, new_status: :acknowledged, valid: false3336 is expected to be invalid3337 existing_status_event: :acknowledge, new_status: :ignored, valid: false3338 is expected to be invalid3339 existing_status_event: :acknowledge, new_status: :resolved, valid: true3340 is expected to be valid3341 existing_status_event: :ignore, new_status: :triggered, valid: false3342 is expected to be invalid3343 existing_status_event: :ignore, new_status: :acknowledged, valid: false3344 is expected to be invalid3345 existing_status_event: :ignore, new_status: :ignored, valid: false3346 is expected to be invalid3347 existing_status_event: :ignore, new_status: :resolved, valid: true3348 is expected to be valid3349 different project3350 is expected to be valid3351 hosts3352 over 255 total chars3353 is expected not to be valid3354 under 255 chars3355 is expected to be valid3356 nested array3357 is expected not to be valid3358 enums3359 is expected to define :severity as an enum backed by an integer with values ‹{critical: 0, high: 1, medium: 2, low: 3, info: 4, unknown: 5}›3360 scopes3361 .for_iid3362 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3363 .for_fingerprint3364 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3365 .for_environment3366 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3367 .for_assignee_username3368 when matching assignee_username3369 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3370 when unknown assignee_username3371 is expected to be empty3372 with empty assignee_username3373 is expected to be empty3374 .order_severity_with_open_prometheus_alert3375 is expected to eq [#<AlertManagement::Alert id:8 namespace423/project625^alert#2>, #<AlertManagement::Alert id:9 namespace423/project625^alert#3>]3376 .counts_by_project_id3377 is expected to eq {619=>2, 620=>2}3378 .not_resolved3379 is expected to contain exactly #<AlertManagement::Alert id:2 namespace420/project622^alert#2>, #<AlertManagement::Alert id:1 namespace420/project622^alert#1>, and #<AlertManagement::Alert id:4 namespace421/project623^alert#2>3380 behaves like a model including Escalatable3381 validations3382 is expected to validate that :status cannot be empty/falsy3383 when status is triggered3384 when resolved_at is blank3385 is expected to be valid3386 when resolved_at is present3387 is expected to be invalid3388 when status is acknowledged3389 when resolved_at is blank3390 is expected to be valid3391 when resolved_at is present3392 is expected to be invalid3393 when status is resolved3394 when resolved_at is blank3395 is expected to be invalid3396 when resolved_at is present3397 is expected to be valid3398 when status is ignored3399 when resolved_at is blank3400 is expected to be valid3401 when resolved_at is present3402 is expected to be invalid3403 scopes3404 .order_status3405 descending3406 is expected to eq [#<AlertManagement::Alert id:10 namespace424/project626^alert#1>, #<AlertManagement::Alert id:11 name...2 namespace426/project628^alert#1>, #<AlertManagement::Alert id:13 namespace427/project629^alert#1>]3407 ascending3408 is expected to eq [#<AlertManagement::Alert id:13 namespace427/project629^alert#1>, #<AlertManagement::Alert id:12 name...1 namespace425/project627^alert#1>, #<AlertManagement::Alert id:10 namespace424/project626^alert#1>]3409 .open3410 is expected to contain exactly #<AlertManagement::Alert id:11 namespace425/project627^alert#1> and #<AlertManagement::Alert id:10 namespace424/project626^alert#1>3411 .status_value3412 status: :triggered, status_value: 03413 returns status value by its name3414 status: :acknowledged, status_value: 13415 returns status value by its name3416 status: :resolved, status_value: 23417 returns status value by its name3418 status: :ignored, status_value: 33419 returns status value by its name3420 status: :unknown, status_value: nil3421 returns status value by its name3422 .status_name3423 raw_status: 0, status: :triggered3424 returns status name by its values3425 raw_status: 1, status: :acknowledged3426 returns status name by its values3427 raw_status: 2, status: :resolved3428 returns status name by its values3429 raw_status: 3, status: :ignored3430 returns status name by its values3431 raw_status: -1, status: nil3432 returns status name by its values3433 .open_status?3434 status: :triggered, is_open_status: true3435 returns true when the status is open status3436 status: :acknowledged, is_open_status: true3437 returns true when the status is open status3438 status: :resolved, is_open_status: false3439 returns true when the status is open status3440 status: :ignored, is_open_status: false3441 returns true when the status is open status3442 status: nil, is_open_status: false3443 returns true when the status is open status3444 #trigger3445 when escalatable is in triggered state3446 does not change the escalatable status3447 when escalatable is not in triggered state3448 changes the escalatable status to triggered3449 resets resolved at3450 #acknowledge3451 changes the escalatable status to acknowledged3452 resets ended at3453 #resolve3454 when escalatable is already resolved3455 does not change the escalatable status3456 when escalatable is not resolved3457 changes escalatable status to "resolved"3458 #ignore3459 changes the escalatable status to ignored3460 resets ended at3461 #status_event_for3462 for_status: :triggered, event: :trigger3463 returns event by status name3464 for_status: "triggered", event: :trigger3465 returns event by status name3466 for_status: :acknowledged, event: :acknowledge3467 returns event by status name3468 for_status: "acknowledged", event: :acknowledge3469 returns event by status name3470 for_status: :resolved, event: :resolve3471 returns event by status name3472 for_status: "resolved", event: :resolve3473 returns event by status name3474 for_status: :ignored, event: :ignore3475 returns event by status name3476 for_status: "ignored", event: :ignore3477 returns event by status name3478 for_status: :unknown, event: nil3479 returns event by status name3480 for_status: nil, event: nil3481 returns event by status name3482 for_status: "", event: nil3483 returns event by status name3484 for_status: 1, event: nil3485 returns event by status name3486 #open?3487 returns true when the status is open status3488 .counts_by_status3489 is expected to eq {:acknowledged=>1, :ignored=>1, :resolved=>1, :triggered=>1}3490 .find_unresolved_alert3491 is expected to eq #<AlertManagement::Alert id:16 namespace420/project622^alert#4>3492 .last_prometheus_alert_by_project_id3493 returns the latest alert for each project3494 .search3495 does not contain search string3496 is expected to be empty3497 title includes query3498 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3499 description includes query3500 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3501 service includes query3502 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3503 monitoring tool includes query3504 is expected to contain exactly #<AlertManagement::Alert id:1 namespace420/project622^alert#1>3505 .reference_pattern3506 is expected to match "gitlab-org/gitlab^alert#123"3507 .link_reference_pattern3508 is expected to match "http://localhost/namespace420/project622/-/alert_management/1/details"3509 is expected not to match "http://localhost/gitlab-org/gitlab/alert_management/123"3510 is expected not to match "http://localhost/gitlab-org/gitlab/issues/123"3511 is expected not to match "gitlab-org/gitlab/-/alert_management/123"3512 .reference_valid?3513 ref: "123456", result: true3514 is expected to eq true3515 ref: "1", result: true3516 is expected to eq true3517 ref: "-1", result: false3518 is expected to eq false3519 ref: nil, result: false3520 is expected to eq false3521 ref: "123456891012345678901234567890", result: false3522 is expected to eq false3523 #to_reference3524 is expected to eq "^alert#1"3525 #register_new_event!3526 increments the events count by 13527 #resolved_at3528 is expected to eq 2022-06-28 10:44:01.684558000 +00003529 #resolved_at=3530 sets ended_at3531WikiPage3532 #front_matter3533 the wiki page has front matter3534 has front-matter3535 strips the front matter from the content3536 the wiki page does not have front matter3537 behaves like a page without front-matter3538 is expected to have attributes {:content => "My actual content", :front_matter => {}}3539 the wiki page has fenced blocks, but nothing in them3540 behaves like a page without front-matter3541 is expected to have attributes {:content => "---\n---\n\nMy actual content\n", :front_matter => {}}3542 the wiki page has invalid YAML type in fenced blocks3543 behaves like a page without front-matter3544 is expected to have attributes {:content => "---\nthis isn't YAML\n---\n\nMy actual content\n", :front_matter => {}}3545 the wiki page has a disallowed class in fenced block3546 behaves like a page without front-matter3547 is expected to have attributes {:content => "---\ndate: 2010-02-11 11:02:57\n---\n\nMy actual content\n", :front_matter => {}}3548 the wiki page has invalid YAML in fenced block3549 behaves like a page without front-matter3550 is expected to have attributes {:content => "---\ninvalid-use-of-reserved-indicator: @text\n---\n\nMy actual content\n", :front_matter => {}}3551 .unhyphenize3552 removes hyphens from a name3553 #initialize3554 when initialized with an existing page3555 sets the slug attribute3556 sets the title attribute3557 sets the formatted content attribute3558 sets the format attribute3559 sets the message attribute3560 sets the version attribute3561 validations3562 validates presence of title3563 does not validate presence of content3564 #validate_content_size_limit3565 with a new page3566 accepts content below the limit3567 rejects content exceeding the limit3568 counts content size in bytes rather than characters3569 with an existing page exceeding the limit3570 accepts content when it has not changed3571 rejects content when it has changed3572 #validate_path_limits3573 character: "a"3574 accepts page titles below the limit3575 accepts directories below the limit3576 accepts a path with page title and directory below the limit3577 rejects page titles exceeding the limit3578 rejects directories exceeding the limit3579 rejects a page with both title and directory exceeding the limit3580 character: "ä"3581 accepts page titles below the limit3582 accepts directories below the limit3583 accepts a path with page title and directory below the limit3584 rejects page titles exceeding the limit3585 rejects directories exceeding the limit3586 rejects a page with both title and directory exceeding the limit3587 character: "🙈"3588 accepts page titles below the limit3589 accepts directories below the limit3590 accepts a path with page title and directory below the limit3591 rejects page titles exceeding the limit3592 rejects directories exceeding the limit3593 rejects a page with both title and directory exceeding the limit3594 with an existing page title exceeding the limit3595 accepts the exceeding title length when unchanged3596 rejects the exceeding title length when changed3597 #create3598 with valid attributes3599 saves the wiki page3600 returns true3601 saves the wiki page with message3602 if the title is preceded by a / it is removed3603 with invalid attributes3604 does not create the page3605 dot in the title3606 #create3607 saves the wiki page and returns true3608 #update3609 updates the content of the page and returns true3610 #update3611 with valid attributes3612 updates the content of the page3613 updates the title of the page3614 returns true3615 updating front_matter3616 updates the wiki-page front-matter and content together3617 behaves like able to update front-matter3618 updates the wiki-page front-matter3619 the front matter is too long3620 raises an error3621 with same last commit sha3622 returns true3623 with different last commit sha3624 raises exception3625 in subdir3626 keeps the page in the same dir when the content is updated3627 when renaming a page3628 raises an error if the page already exists3629 updates the content and rename the file3630 when moving a page3631 raises an error if the page already exists3632 updates the content and moves the file3633 in subdir3634 moves the page to the root folder if the title is preceded by /3635 does nothing if it has the same title3636 in root dir3637 does nothing if the title is preceded by /3638 with invalid attributes3639 aborts update if title blank3640 #delete3641 deletes the page and returns true3642 #versions3643 returns an array of all commits for the page3644 #title_changed?3645 page: :untitled_page, title: nil, changed: false3646 returns the expected value3647 page: :untitled_page, title: "new title", changed: true3648 returns the expected value3649 page: :unsaved_page, title: nil, changed: true3650 returns the expected value3651 page: :unsaved_page, title: "test page", changed: true3652 returns the expected value3653 page: :unsaved_page, title: "test-page", changed: true3654 returns the expected value3655 page: :unsaved_page, title: "test+page", changed: true3656 returns the expected value3657 page: :unsaved_page, title: "new title", changed: true3658 returns the expected value3659 page: :existing_page, title: nil, changed: false3660 returns the expected value3661 page: :existing_page, title: "test page", changed: false3662 returns the expected value3663 page: :existing_page, title: "test-page", changed: false3664 returns the expected value3665 page: :existing_page, title: "/test page", changed: false3666 returns the expected value3667 page: :existing_page, title: "/test-page", changed: false3668 returns the expected value3669 page: :existing_page, title: "test+page", changed: true3670 returns the expected value3671 page: :existing_page, title: " test page ", changed: true3672 returns the expected value3673 page: :existing_page, title: "new title", changed: true3674 returns the expected value3675 page: :existing_page, title: "new-title", changed: true3676 returns the expected value3677 page: :directory_page, title: nil, changed: false3678 returns the expected value3679 page: :directory_page, title: "parent directory/child page", changed: false3680 returns the expected value3681 page: :directory_page, title: "parent-directory/child page", changed: false3682 returns the expected value3683 page: :directory_page, title: "parent-directory/child-page", changed: false3684 returns the expected value3685 page: :directory_page, title: "child page", changed: false3686 returns the expected value3687 page: :directory_page, title: "child-page", changed: false3688 returns the expected value3689 page: :directory_page, title: "/child page", changed: true3690 returns the expected value3691 page: :directory_page, title: "parent directory/other", changed: true3692 returns the expected value3693 page: :directory_page, title: "parent-directory/other", changed: true3694 returns the expected value3695 page: :directory_page, title: "parent-directory / child-page", changed: true3696 returns the expected value3697 page: :directory_page, title: "other directory/child page", changed: true3698 returns the expected value3699 page: :directory_page, title: "other-directory/child page", changed: true3700 returns the expected value3701 page: :page_with_special_characters, title: nil, changed: false3702 returns the expected value3703 page: :page_with_special_characters, title: "test+page", changed: false3704 returns the expected value3705 page: :page_with_special_characters, title: "test-page", changed: true3706 returns the expected value3707 page: :page_with_special_characters, title: "test page", changed: true3708 returns the expected value3709 #content_changed?3710 with a new page3711 returns true if content is set3712 returns false if content is blank3713 with an existing page3714 returns false3715 returns false if content is set to the same value3716 returns true if content is changed3717 returns true if content is changed to a blank string3718 returns false if only the newline format has changed3719 #path3720 returns the path when persisted3721 returns nil when not persisted3722 #directory3723 when the page is at the root directory3724 returns an empty string3725 when the page is inside an actual directory3726 returns the full directory hierarchy3727 #historical?3728 returns true when requesting an old version3729 returns false when requesting latest version3730 returns false when version is nil3731 returns false when the last version is nil3732 returns false when the version is nil3733 #persisted?3734 returns true for a persisted page3735 returns false for an unpersisted page3736 #to_partial_path3737 returns the relative path to the partial to be used3738 #==3739 returns true for identical wiki page3740 returns true for updated wiki page3741 returns false for a completely different wiki page3742 returns false for page with different slug on same container3743 returns false for page with the same slug on a different container3744 #last_commit_sha3745 returns commit sha3746 is changed after page updated3747 #hook_attrs3748 adds absolute urls for images in the content3749 #version_commit_timestamp3750 for a new page3751 returns nil3752 for page that exists3753 returns the timestamp of the commit3754 #diffs3755 returns a diff instance3756Gitlab::UsageMetricDefinitionGenerator3757 Creating metric definition file3758 without ee option3759 creates a metric definition file using the template3760 with ee option3761 creates a metric definition file using the template3762 Validation3763 does not raise an error3764 with a missing directory3765 raises an error3766 with an invalid directory3767 raises an error3768 with an already existing metric with the same key_path3769 raises an error3770 Name suggestions3771 adds name key to metric definition3772 with multiple file names3773 creates multiple files3774Banzai::Filter::References::UserReferenceFilter3775 requires project context3776 ignores invalid users3777 ignores references with text before the @ sign3778 ignores valid references contained inside 'pre' element3779 ignores valid references contained inside 'code' element3780 ignores valid references contained inside 'a' element3781 ignores valid references contained inside 'style' element3782 links with adjacent text3783 includes default classes3784 behaves like user reference or project reference3785 supports an :only_path context3786 mentioning a resource3787 links to a resource3788 links to a resource with a period3789 links to a resource with an underscore3790 links to a resource with different case-sensitivity3791 behaves like a reference containing an element node3792 does not escape inner html3793 behaves like it contains a data- attribute3794 includes a data- attribute3795 referencing a resource in a link href3796 links to the resource3797 links with adjacent text3798 behaves like it contains a data- attribute3799 includes a data- attribute3800 mentioning @all3801 supports a special @all mention3802 includes a data-author attribute when there is an author3803 does not include a data-author attribute when there is no author3804 ignores reference to all when the user is not a project member3805 behaves like a reference containing an element node3806 does not escape inner html3807 mentioning a group3808 links to the Group3809 includes a data-group attribute3810 behaves like a reference containing an element node3811 does not escape inner html3812 mentioning a nested group3813 links to the nested group3814 has the full group name as a title3815 behaves like a reference containing an element node3816 does not escape inner html3817 when a project is not specified3818 does not link a User3819 when skip_project_check set to true3820 links to a User3821 does not link users using @all reference3822 in group context3823 supports a special @all mention3824 supports mentioning a single user3825 supports mentioning a group3826 #namespaces3827 returns a Hash containing all Namespaces3828 #usernames3829 returns the usernames mentioned in a document3830 checking N+13831 does not have N+1 per multiple user references3832Gitlab::GitalyClient::CommitService3833 #diff_from_parent3834 returns a Gitlab::GitalyClient::DiffStitcher3835 encodes paths correctly3836 when a commit has a parent3837 sends an RPC request with the parent ID as left commit3838 when a commit does not have a parent3839 sends an RPC request with empty tree ref as left commit3840 #commit_deltas3841 when a commit has a parent3842 sends an RPC request with the parent ID as left commit3843 when a commit does not have a parent3844 sends an RPC request with empty tree ref as left commit3845 #diff_stats3846 sends an RPC request and returns the stats3847 #find_changed_paths3848 sends an RPC request and returns the stats3849 #tree_entries3850 sends a get_tree_entries message3851 with UTF-8 params strings3852 handles string encodings correctly3853 with pagination parameters3854 responds with a pagination cursor3855 #commit_count3856 sends a commit_count message3857 with UTF-8 params strings3858 handles string encodings correctly3859 #find_commit3860 sends an RPC request3861 caching3862 when passed revision is a branch name3863 calls Gitaly3864 when passed revision is a commit ID3865 returns a cached commit3866 when caching of the ref name is enabled3867 caches negative entries3868 returns a cached commit3869 #list_commits3870 behaves like a ListCommits request3871 sends a list_commits message3872 with multiple revisions3873 behaves like a ListCommits request3874 sends a list_commits message3875 with reverse: true3876 behaves like a ListCommits request3877 sends a list_commits message3878 with pagination params3879 behaves like a ListCommits request3880 sends a list_commits message3881 #list_new_commits3882 with hook environment3883 reject commits which exist in target repository3884 behaves like a #list_all_commits message3885 sends a list_all_commits message3886 keep commits which do not exist in target repository3887 behaves like a #list_all_commits message3888 sends a list_all_commits message3889 mixed existing and nonexisting commits3890 behaves like a #list_all_commits message3891 sends a list_all_commits message3892 without hook environment3893 behaves like a #list_commits message3894 sends a list_commits message3895 #commit_stats3896 sends an RPC request3897 #find_commits3898 sends an RPC request with NONE when default3899 sends an RPC request3900 sends an RPC request with an author3901 #object_existence_map3902 with empty request3903 behaves like a CheckObjectsExistRequest3904 returns expected results3905 when revision exists3906 behaves like a CheckObjectsExistRequest3907 returns expected results3908 when revision does not exist3909 behaves like a CheckObjectsExistRequest3910 returns expected results3911 when request contains mixed revisions3912 behaves like a CheckObjectsExistRequest3913 returns expected results3914 when requesting many revisions3915 behaves like a CheckObjectsExistRequest3916 returns expected results3917 #commits_by_message3918 when only the query is provided3919 sends an RPC request with the correct payload3920 when all arguments are provided3921 sends an RPC request with the correct payload3922 when limit and offset are not integers3923 sends an RPC request with the correct payload3924 when revision and path contain non-ASCII characters3925 sends an RPC request with the correct payload3926 #list_commits_by_ref_name3927 lists latest commits grouped by a ref name3928 #raw_blame3929 without a range3930 blames a whole file3931 with a range3932 blames part of a file3933IssuesHelper3934 #work_item_type_icon3935 returns icon of all standard base types3936 defaults to issue icon if type is unknown3937 #award_user_list3938 returns a comma-separated list of the first X users3939 displays the current user's name as 'You'3940 truncates lists3941 displays the current user in front of other users3942 #award_state_class3943 returns disabled string for unauthenticated user3944 returns disabled for a user that does not have access to the awardable3945 returns selected class for author3946 is blank for a user that has access to the awardable3947 awards_sort3948 sorts a hash so thumbsup and thumbsdown are always on top3949 #link_to_discussions_to_resolve3950 passing only a merge request3951 links just the merge request3952 contains the reference to the merge request3953 when passing a discussion3954 links to the merge request with first note if a single discussion was passed3955 contains both the reference to the merge request and a mention of the discussion3956 #show_new_issue_link?3957 is false when no project there is no project3958 is true when there is a project and no logged in user3959 is true when the current user does not have access to the project3960 #issue_closed_link3961 with linked issue3962 with moved issue3963 when user has permission to see new issue3964 behaves like successfully displays link to issue and with css class3965 returns link3966 when user has no permission to see new issue3967 behaves like does not display link3968 returns nil3969 with duplicated issue3970 when user has permission to see new issue3971 behaves like successfully displays link to issue and with css class3972 returns link3973 when user has no permission to see new issue3974 behaves like does not display link3975 returns nil3976 without linked issue3977 behaves like does not display link3978 returns nil3979 #show_moved_service_desk_issue_warning?3980 is true when moved issue project has service desk disabled3981 is false when moved issue project has service desk enabled3982 #issue_header_actions_data3983 returns expected result3984 #project_issues_list_data3985 when user is signed in3986 behaves like issues list data3987 returns expected result3988 when user is anonymous3989 behaves like issues list data3990 returns expected result3991 when restricted visibility levels is nil3992 behaves like issues list data3993 returns expected result3994 #group_issues_list_data3995 returns expected result3996 #issues_form_data3997 returns expected result3998 #issue_manual_ordering_class3999 when sorting by relative position4000 returns manual ordering class4001 when manual sorting disabled4002 returns nil4003 #issue_repositioning_disabled?4004 for project4005 is expected to eq false4006 when block_issue_repositioning feature flag is enabled4007 is expected to eq true4008 for group4009 is expected to eq false4010 when block_issue_repositioning feature flag is enabled4011 is expected to eq true4012 #status_box_class4013 when object is expired4014 returns orange background4015 when object is merged4016 returns blue background4017 when object is closed4018 returns red background4019 when object is upcoming4020 returns gray background4021 when object is opened4022 returns green background4023 #issue_hidden?4024 when issue is hidden4025 when `ban_user_feature_flag` feature flag is enabled4026 returns `true`4027 when `ban_user_feature_flag` feature flag is disabled4028 returns `false`4029 when issue is not hidden4030 returns `false`4031 #hidden_issue_icon4032 when issue is hidden4033 returns icon with tooltip4034 when issue is not hidden4035 returns `nil`4036SearchService4037 #project4038 when the project is accessible4039 returns the project4040 returns the project for guests4041 when the project is not accessible4042 returns nil4043 when there is no project_id4044 returns nil4045 #group4046 when the group is accessible4047 returns the group4048 when the group is not accessible4049 returns nil4050 when there is no group_id4051 returns nil4052 #show_snippets?4053 when :snippets is 'true'4054 returns true4055 when :snippets is not 'true'4056 returns false4057 when :snippets is missing4058 returns false4059 #scope4060 with accessible project_id4061 and allowed scope4062 returns the specified scope4063 and disallowed scope4064 returns the default scope4065 and no scope4066 returns the default scope4067 with 'true' snippets4068 and allowed scope4069 returns the specified scope4070 and disallowed scope4071 returns the default scope4072 and no scope4073 returns the default scope4074 with no project_id, no snippets4075 and allowed scope4076 returns the specified scope4077 and disallowed scope4078 returns the default scope4079 and no scope4080 returns the default scope4081 #search_results4082 with accessible project_id4083 returns an instance of Gitlab::ProjectSearchResults4084 with accessible project_id and 'true' snippets4085 returns an instance of Gitlab::ProjectSearchResults4086 with 'true' snippets4087 returns an instance of Gitlab::SnippetSearchResults4088 with no project_id and no snippets4089 returns an instance of Gitlab::SearchResults4090 #search_objects4091 per_page: parameter4092 when nil4093 defaults to 204094 when empty string4095 defaults to 204096 when negative4097 defaults to 204098 when present4099 converts to integer and passes to search results4100 when greater than 2004101 passes 2004102 page: parameter4103 when < 14104 defaults to 14105 when nil4106 defaults to 14107 with accessible project_id4108 returns objects in the project4109 with accessible project_id and 'true' snippets4110 returns objects in the project4111 with 'true' snippets4112 returns objects in snippets4113 with accessible group_id4114 returns objects in the group4115 with no project_id, group_id or snippets4116 returns objects in global4117 redacting search results4118 issues4119 redacts the inaccessible issue4120 notes4121 redacts the inaccessible note4122 merge_requests4123 redacts the inaccessible merge request4124 with :with_api_entity_associations4125 behaves like redaction limits N+1 queries4126 does not exceed the query limit4127 project repository blobs4128 redacts the inaccessible blob4129 project wiki blobs4130 redacts the inaccessible blob4131 project snippets4132 redacts the inaccessible snippet4133 with :with_api_entity_associations4134 behaves like redaction limits N+1 queries4135 does not exceed the query limit4136 personal snippets4137 redacts the inaccessible snippet4138 with :with_api_entity_associations4139 behaves like redaction limits N+1 queries4140 does not exceed the query limit4141 commits4142 redacts the inaccessible commit4143 users4144 passes the users through4145 #valid_request?4146 is the return value of params.valid?4147 #abuse_messages4148 returns an empty array when not abusive4149 calls on abuse_detection.errors.full_messages when abusive4150 abusive search handling4151 a search is abusive4152 does NOT execute search service4153 a search is NOT abusive4154 executes search service4155DeployToken4156 is expected to have many project_deploy_tokens4157 is expected to have many projects through project_deploy_tokens4158 is expected to have many group_deploy_tokens4159 is expected to have many groups through group_deploy_tokens4160 is expected to belong to user required: false4161 behaves like having unique enum values4162 has unique values in "deploy_token_type"4163 validations4164 is expected to validate that the length of :username is at most 2554165 is expected to allow :username to be ‹"GitLab+deploy_token-3.14"›4166 is expected not to allow :username to be ‹"<script>"›, producing a custom validation error on failure4167 is expected not to allow :username to be ‹""›, producing a custom validation error on failure4168 is expected to validate that :deploy_token_type cannot be empty/falsy4169 deploy_token_type validations4170 when a deploy token is associated to a group4171 does not allow setting a project to it4172 when a deploy token is associated to a project4173 does not allow setting a group to it4174 #ensure_token4175 ensures a token4176 #ensure_at_least_one_scope4177 with at least one scope4178 is valid4179 with no scopes4180 is invalid4181 #valid_for_dependency_proxy?4182 is expected to eq true4183 behaves like invalid group deploy token4184 revoked4185 is expected to eq false4186 expired4187 is expected to eq false4188 project type4189 is expected to eq false4190 insufficient scopes4191 is expected to eq false4192 #has_access_to_group?4193 is expected to eq true4194 behaves like invalid group deploy token4195 revoked4196 is expected to eq false4197 expired4198 is expected to eq false4199 project type4200 is expected to eq false4201 for a sub group4202 is expected to eq true4203 for a different group4204 is expected to eq false4205 #scopes4206 with all the scopes4207 returns scopes assigned to DeployToken4208 with only one scope4209 returns scopes assigned to DeployToken4210 #revoke!4211 updates revoke attribute4212 #active?4213 when it has been revoked4214 returns false4215 when it hasn't been revoked and is not expired4216 returns true4217 when it hasn't been revoked and is expired4218 returns true4219 when it hasn't been revoked and has no expiry4220 returns true4221 #deactivated?4222 when it has been revoked4223 returns true4224 when it hasn't been revoked and is not expired4225 returns false4226 when it hasn't been revoked and is expired4227 returns false4228 when it hasn't been revoked and has no expiry4229 returns false4230 #username4231 persisted records4232 returns a default username if none is set4233 returns the username provided if one is set4234 new records4235 returns nil if no username is set4236 returns the username provided if one is set4237 #holder4238 when the token is of project type4239 returns the relevant holder token4240 when the token is of group type4241 returns the relevant holder token4242 #has_access_to?4243 when a project is not passed in4244 is expected to be falsy4245 when a project is passed in4246 when deploy token is active and related to project4247 is expected to be truthy4248 when deploy token is active but not related to project4249 is expected to be falsy4250 when deploy token is revoked and related to project4251 is expected to be falsy4252 when deploy token is revoked and not related to the project4253 is expected to be falsy4254 and when the token is of group type4255 and the passed-in project does not belong to any group4256 is expected to be falsy4257 and the passed-in project belongs to the token group4258 is true4259 and the passed-in project belongs to a subgroup4260 and the token group is an ancestor (grand-parent) of this group4261 is expected to be truthy4262 and the token group is not ancestor of this group4263 is false4264 and the passed-in project does not belong to the token group4265 is expected to be falsy4266 and the project belongs to a group that is parent of the token group4267 is false4268 and the token is of project type4269 and the passed-in project is the same as the token project4270 is expected to be truthy4271 and the passed-in project is not the same as the token project4272 is expected to be falsey4273 #expires_at4274 when using Forever.date4275 returns nil4276 when using a personalized date4277 returns the personalized date4278 #expires_at=4279 when passing nil4280 assigns Forever.date4281 when passing a value4282 respects the value4283 .gitlab_deploy_token4284 with a gitlab deploy token associated4285 returns the gitlab deploy token4286 with no gitlab deploy token associated4287 returns nil4288 #accessible_projects4289 when a deploy token is associated to a project4290 returns only projects directly associated with the token4291 when a deploy token is associated to a group4292 returns all projects from the group4293 .impersonated?4294 returns false4295Snippets::CreateService4296 #execute4297 when ProjectSnippet4298 behaves like a service that creates a snippet4299 creates a snippet with the provided attributes4300 behaves like public visibility level restrictions apply4301 when user is not an admin4302 responds with an error4303 does not create a public snippet4304 when user is an admin4305 responds with success4306 creates a public snippet4307 when visibility level is passed as a string4308 assigns the correct visibility level4309 behaves like checking spam4310 executes SpamActionService4311 behaves like snippet create data is tracked4312 increments count when create succeeds4313 when create fails4314 does not increment count4315 behaves like an error service response when save fails4316 responds with an error4317 does not create the snippet4318 behaves like creates repository and files4319 creates repository4320 commits the files to the repository4321 when repository creation action fails4322 does not create the snippet4323 returns a generic creation error4324 does not return a snippet with an id4325 when repository creation fails with invalid file name4326 returns an appropriate error4327 when the commit action fails4328 does not create the snippet4329 destroys the created repository4330 destroys the snippet_repository4331 logs the error4332 returns a generic error4333 when snippet creation fails4334 does not create repository4335 behaves like after_save callback to store_mentions4336 when mentionable attributes change4337 saves mentions4338 when mentionable attributes do not change4339 does not call store_mentions4340 when save fails4341 does not call store_mentions4342 behaves like when snippet_actions param is present4343 creates a snippet with the provided attributes4344 commit the files to the repository4345 when content or file_name params are present4346 a validation error is raised4347 when snippet_actions param is invalid4348 a validation error is raised4349 when snippet_actions contain an action different from "create"4350 a validation error is raised4351 when "create" operation does not have file_path or is empty4352 generates the file path for the files4353 behaves like invalid params error response4354 responds to errors appropriately4355 when uploaded files are passed to the service4356 does not move uploaded files to the snippet4357 when PersonalSnippet4358 behaves like a service that creates a snippet4359 creates a snippet with the provided attributes4360 behaves like public visibility level restrictions apply4361 when user is not an admin4362 responds with an error4363 does not create a public snippet4364 when user is an admin4365 responds with success4366 creates a public snippet4367 when visibility level is passed as a string4368 assigns the correct visibility level4369 behaves like checking spam4370 executes SpamActionService4371 behaves like snippet create data is tracked4372 increments count when create succeeds4373 when create fails4374 does not increment count4375 behaves like an error service response when save fails4376 responds with an error4377 does not create the snippet4378 behaves like creates repository and files4379 creates repository4380 commits the files to the repository4381 when repository creation action fails4382 does not create the snippet4383 returns a generic creation error4384 does not return a snippet with an id4385 when repository creation fails with invalid file name4386 returns an appropriate error4387 when the commit action fails4388 does not create the snippet4389 destroys the created repository4390 destroys the snippet_repository4391 logs the error4392 returns a generic error4393 when snippet creation fails4394 does not create repository4395 behaves like after_save callback to store_mentions4396 when mentionable attributes change4397 saves mentions4398 when mentionable attributes do not change4399 does not call store_mentions4400 when save fails4401 does not call store_mentions4402 behaves like when snippet_actions param is present4403 creates a snippet with the provided attributes4404 commit the files to the repository4405 when content or file_name params are present4406 a validation error is raised4407 when snippet_actions param is invalid4408 a validation error is raised4409 when snippet_actions contain an action different from "create"4410 a validation error is raised4411 when "create" operation does not have file_path or is empty4412 generates the file path for the files4413 behaves like invalid params error response4414 responds to errors appropriately4415 when the snippet description contains files4416 stores the snippet description correctly4417 when there is a validation error4418 does not move uploaded files to the snippet4419Projects::LfsPointers::LfsDownloadService4420 #execute4421 when file download succeeds4422 has the same oid4423 has the same size4424 stores the content4425 streams the download4426 skips read_total_timeout4427 behaves like lfs object is created4428 creates and associate the LFS object to project4429 returns success result4430 behaves like lfs temporal file is removed4431 is expected to equal false4432 when file download fails4433 raise StandardError exception4434 behaves like no lfs object is created4435 is expected not to change `LfsObject.count`4436 returns error result4437 an error is logged4438 behaves like lfs temporal file is removed4439 is expected to equal false4440 when file download returns a redirect4441 correctly stores lfs object4442 behaves like lfs object is created4443 creates and associate the LFS object to project4444 returns success result4445 behaves like lfs temporal file is removed4446 is expected to equal false4447 when downloaded lfs file has a different size4448 raise SizeError exception4449 behaves like no lfs object is created4450 is expected not to change `LfsObject.count`4451 returns error result4452 an error is logged4453 behaves like lfs temporal file is removed4454 is expected to equal false4455 when downloaded lfs file has a different oid4456 raise OidError exception4457 behaves like no lfs object is created4458 is expected not to change `LfsObject.count`4459 returns error result4460 an error is logged4461 behaves like lfs temporal file is removed4462 is expected to equal false4463 when an lfs object with the same oid already exists4464 does not update the file attached to the existing LfsObject4465 behaves like no lfs object is created4466 is expected not to change `LfsObject.count`4467 returns error result4468 an error is logged4469 behaves like lfs temporal file is removed4470 is expected to equal false4471 when credentials present4472 the request adds authorization headers4473 when Authorization header is present4474 request uses the header auth4475 when localhost requests are allowed4476 behaves like lfs object is created4477 creates and associate the LFS object to project4478 returns success result4479 behaves like lfs temporal file is removed4480 is expected to equal false4481 when a bad URL is used4482 download_link: "/etc/passwd"4483 does not download the file4484 download_link: "ftp://example.com"4485 does not download the file4486 download_link: "http://127.0.0.2"4487 does not download the file4488 download_link: "http://192.168.2.120"4489 does not download the file4490 when the URL points to a redirected URL4491 that is blocked4492 redirect_link: "ftp://example.com"4493 behaves like no lfs object is created4494 is expected not to change `LfsObject.count`4495 returns error result4496 an error is logged4497 behaves like lfs temporal file is removed4498 is expected to equal false4499 redirect_link: "http://127.0.0.2"4500 behaves like no lfs object is created4501 is expected not to change `LfsObject.count`4502 returns error result4503 an error is logged4504 behaves like lfs temporal file is removed4505 is expected to equal false4506 redirect_link: "http://192.168.2.120"4507 behaves like no lfs object is created4508 is expected not to change `LfsObject.count`4509 returns error result4510 an error is logged4511 behaves like lfs temporal file is removed4512 is expected to equal false4513 that is not blocked4514 behaves like lfs object is created4515 creates and associate the LFS object to project4516 returns success result4517 behaves like lfs temporal file is removed4518 is expected to equal false4519 when the lfs object attributes are invalid4520 does not download the file4521 behaves like no lfs object is created4522 is expected not to change `LfsObject.count`4523 returns error result4524 an error is logged4525 behaves like lfs temporal file is removed4526 is expected to equal false4527 when a large lfs object with the same oid already exists4528 and first fragments are the same4529 returns success4530 links existing lfs object to the project4531 when lfs_link_existing_object feature flag disabled4532 does not call link_existing_lfs_object!4533 and first fragments diverges4534 raises oid mismatch error4535 does not change lfs objects4536Packages::Nuget::UpdatePackageFromMetadataService4537 #execute4538 with no existing package4539 updates package and package file4540 behaves like taking the lease4541 takes the lease4542 behaves like not updating the package if the lease is taken4543 without obtaining the exclusive lease4544 does not update the package4545 with existing package4546 link existing package and updates package file4547 behaves like taking the lease4548 takes the lease4549 behaves like not updating the package if the lease is taken4550 without obtaining the exclusive lease4551 does not update the package4552 marked as pending_destruction4553 reuses the processing package4554 with a nuspec file with metadata4555 creates tags4556 creates nuget metadatum4557 with existing package and tags4558 creates tags and deletes those not in metadata4559 with too long url4560 behaves like raising an4561 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4562 with nuspec file with dependencies4563 updates package and package file4564 with package file not containing a nuspec file4565 behaves like raising an4566 raises an Packages::Nuget::MetadataExtractionService::ExtractionError4567 with a symbol package4568 with no existing package4569 behaves like raising an4570 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4571 with existing package4572 link existing package and updates package file4573 behaves like taking the lease4574 takes the lease4575 behaves like not updating the package if the lease is taken4576 without obtaining the exclusive lease4577 does not update the package4578 with an invalid package name4579 behaves like raising an4580 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4581 behaves like raising an4582 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4583 behaves like raising an4584 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4585 behaves like raising an4586 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4587 with an invalid package version4588 behaves like raising an4589 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4590 behaves like raising an4591 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4592 behaves like raising an4593 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4594 behaves like raising an4595 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4596 behaves like raising an4597 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4598 behaves like raising an4599 raises an Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError4600Gitlab::Ci::Status::Bridge::Factory4601 when bridge is created4602 matches correct core status4603 fabricates status with correct details4604 when bridge is failed4605 matches correct core status4606 matches correct extended statuses4607 fabricates a failed bridge status4608 fabricates status with correct details4609 failed with downstream_pipeline_creation_failed4610 fabricates correct status_tooltip4611 when bridge is a manual action4612 matches correct core status4613 matches correct extended statuses4614 fabricates action detailed status4615 fabricates status with correct details4616 when user has ability to play action4617 fabricates status that has action4618 when user does not have ability to play action4619 fabricates status that has no action4620 when bridge is waiting for resource4621 matches correct core status4622 fabricates status with correct details4623Gitlab::CycleAnalytics::Permissions4624 user with no relation to the project4625 has no permissions to issue stage4626 has no permissions to test stage4627 has no permissions to staging stage4628 has no permissions to code stage4629 has no permissions to review stage4630 has no permissions to plan stage4631 user is maintainer4632 has permissions to issue stage4633 has permissions to test stage4634 has permissions to staging stage4635 has permissions to code stage4636 has permissions to review stage4637 has permissions to plan stage4638 user has no build permissions4639 has permissions to issue stage4640 has no permissions to test stage4641 has no permissions to staging stage4642 user has no merge request permissions4643 has permissions to issue stage4644 has no permissions to code stage4645 has no permissions to review stage4646 user has no issue permissions4647 has permissions to code stage4648 has no permissions to issue stage4649Namespace::RootStorageStatistics4650 is expected to belong to namespace required: false4651 is expected to have one route through namespace4652 is expected to delegate #all_projects to the #namespace object4653 scopes4654 .for_namespace_ids4655 returns only requested namespaces4656 #recalculate!4657 behaves like project data refresh4658 aggregates project statistics4659 aggregates container_repositories_size and storage_size4660 works when there are no projects4661 behaves like does not include personal snippets4662 is expected not to receive from_personal_snippets(*(any args)) 0 times4663 with subgroups4664 behaves like project data refresh4665 aggregates project statistics4666 aggregates container_repositories_size and storage_size4667 works when there are no projects4668 behaves like does not include personal snippets4669 is expected not to receive from_personal_snippets(*(any args)) 0 times4670 with a group namespace4671 aggregates namespace statistics4672 works when there are no namespace statistics4673 with a personal namespace4674 does not aggregate namespace statistics4675 behaves like project data refresh4676 aggregates project statistics4677 aggregates container_repositories_size and storage_size4678 works when there are no projects4679 when user has personal snippets4680 aggregates personal and project snippets size4681 when personal snippets do not have statistics4682 does not raise any error4683Projects::UpdateRepositoryStorageService4684 #execute4685 without wiki and design repository4686 when the move succeeds4687 moves the repository to the new storage and unmarks the repository as read-only4688 when the filesystems are the same4689 updates the database without trying to move the repostory4690 when the move fails4691 unmarks the repository as read-only without updating the repository storage4692 when the cleanup fails4693 sets the correct state4694 when the checksum does not match4695 unmarks the repository as read-only without updating the repository storage4696 when a object pool was joined4697 leaves the pool4698 when the repository move is finished4699 is idempotent4700 when the repository move is failed4701 is idempotent4702 project with no repositories4703 updates the database4704 with wiki repository4705 when the move succeeds4706 moves the project and its wiki repository to the new storage and unmarks the repository as read-only4707 :repack_after_shard_migration feature flag disabled4708 does not enqueue a GC run4709 :repack_after_shard_migration feature flag enabled4710 does not enqueue a GC run if housekeeping is disabled4711 enqueues a GC run4712 when the filesystems are the same4713 updates the database without trying to move the repostory4714 when the move of the wiki repository fails4715 unmarks the repository as read-only without updating the repository storage4716 when the cleanup of the wiki repository fails4717 sets the correct state4718 when the checksum of the wiki repository does not match4719 unmarks the repository as read-only without updating the repository storage4720 with design repository4721 when the move succeeds4722 moves the project and its design repository to the new storage and unmarks the repository as read-only4723 :repack_after_shard_migration feature flag disabled4724 does not enqueue a GC run4725 :repack_after_shard_migration feature flag enabled4726 does not enqueue a GC run if housekeeping is disabled4727 enqueues a GC run4728 when the filesystems are the same4729 updates the database without trying to move the repostory4730 when the move of the design repository fails4731 unmarks the repository as read-only without updating the repository storage4732 when the cleanup of the design repository fails4733 sets the correct state4734 when the checksum of the design repository does not match4735 unmarks the repository as read-only without updating the repository storage4736Clusters::Applications::CheckUninstallProgressService4737 when application is uninstalling4738 behaves like a not yet terminated installation4739 when phase is Pending4740 when not timed_out4741 reschedule a new check4742 behaves like a not yet terminated installation4743 when phase is Running4744 when not timed_out4745 reschedule a new check4746 behaves like a not yet terminated installation4747 when phase is Unknown4748 when not timed_out4749 reschedule a new check4750 when installation POD succeeded4751 removes the installation POD4752 runs application post_uninstall4753 destroys the application4754 an error occurs while destroying4755 still removes the installation POD4756 makes the application uninstall_errored4757 when installation POD failed4758 make the application errored4759 when timed out4760 make the application errored4761 when installation raises a Kubeclient::HttpError4762 logs into kubernetes.log and Sentry4763 shows the response code from the error4764Namespaces::InProductMarketingEmailsService#execute4765 records sent emails4766 for each track and series with the right conditions4767 track: :create, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4768 is expected to send in product marketing email 1869, 3196, :create, and 04769 track: :create, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4770 is expected to send in product marketing email 1869, 3196, :create, and 14771 track: :create, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4772 is expected to send in product marketing email 1869, 3196, :create, and 24773 track: :team_short, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4774 is expected to send in product marketing email 1869, 3196, :team_short, and 04775 track: :trial_short, interval: 2, actions_completed: {:created_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00}4776 is expected to send in product marketing email 1869, 3196, :trial_short, and 04777 track: :admin_verify, interval: 3, actions_completed: {:created_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00}4778 is expected to send in product marketing email 1869, 3196, :admin_verify, and 04779 track: :verify, interval: 4, actions_completed: {:created_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00}4780 is expected to send in product marketing email 1869, 3196, :verify, and 04781 track: :verify, interval: 8, actions_completed: {:created_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00}4782 is expected to send in product marketing email 1869, 3196, :verify, and 14783 track: :verify, interval: 13, actions_completed: {:created_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00}4784 is expected to send in product marketing email 1869, 3196, :verify, and 24785 track: :trial, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4786 is expected to send in product marketing email 1869, 3196, :trial, and 04787 track: :trial, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4788 is expected to send in product marketing email 1869, 3196, :trial, and 14789 track: :trial, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4790 is expected to send in product marketing email 1869, 3196, :trial, and 24791 track: :team, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4792 is expected to send in product marketing email 1869, 3196, :team, and 04793 track: :team, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4794 is expected to send in product marketing email 1869, 3196, :team, and 14795 track: :team, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4796 is expected to send in product marketing email 1869, 3196, :team, and 24797 track: :experience, interval: 30, actions_completed: {:created_at=>Sat, 20 Feb 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Feb 2021 10:14:40.000000000 UTC +00:00}4798 is expected to send in product marketing email 1869, 3196, :experience, and 04799 when initialized with a different track4800 is expected not to send in product marketing email4801 when the previous track actions have been completed4802 is expected to send in product marketing email 1869, 3196, :team_short, and 04803 when initialized with a different interval4804 is expected not to send in product marketing email4805 when the previous track action was completed within the intervals range4806 is expected to send in product marketing email 1869, 3196, :create, and 14807 when the previous track action is not yet completed4808 is expected not to send in product marketing email4809 when the previous track action is completed outside the intervals range4810 is expected not to send in product marketing email4811 when the current track action is completed4812 is expected not to send in product marketing email4813 when the user cannot perform the current track's action4814 is expected not to send in product marketing email4815 when the user has not opted into marketing emails4816 is expected not to send in product marketing email4817 do not send emails twice4818 when user already got a specific email4819 is expected not to send in product marketing email 1871, anything, :create, and 04820 when user already got sent the whole track4821 does not send any of the emails anymore4822 when user is in two groups4823 when both groups would get the same email4824 does not send the same email twice4825 when other group gets a different email4826 sends both emails4827 when invoked with a non existing track4828 is expected to raise ArgumentError with "Track foo not defined"4829 when group is a sub-group4830 does not raise an exception4831Ci::BuildRunnerSession4832 is expected to belong to build required: false4833 is expected to validate that :build cannot be empty/falsy4834 is expected to validate that :url cannot be empty/falsy, producing a custom validation error on failure4835 nested attribute assignment4836 creates a new session4837 updates session with new attributes4838 #terminal_specification4839 returns terminal.gitlab.com protocol4840 returns a wss url4841 returns empty hash if no url4842 when url is present4843 returns ca_pem nil if empty certificate4844 adds Authorization header if authorization is present4845 #service_specification4846 returns service proxy url4847 returns default service proxy websocket subprotocol4848 returns empty hash if no url4849 when port is not present4850 uses the default port name4851 when the service is not present4852 uses the service name "build" as default4853 when url is present4854 returns ca_pem nil if empty certificate4855 adds Authorization header if authorization is present4856 when subprotocol is present4857 returns the new subprotocol4858Gitlab::ImportExport::ImportFailureService4859 #log_import_failure4860 when importable is a group4861 behaves like log import failure4862 tracks error4863 saves data to ImportFailure4864 when importable is a project4865 behaves like log import failure4866 tracks error4867 saves data to ImportFailure4868 when ImportFailure does not support importable class4869 raise exception4870 #with_retry4871 when exceptions are retriable4872 exception: GRPC::DeadlineExceeded4873 when retry succeeds4874 retries and logs import failure once with correct params4875 when retry continues to fail with intermittent errors4876 retries the number of times allowed and raise exception4877 logs import failure each time and raise exception4878 exception: ActiveRecord::QueryCanceled4879 when retry succeeds4880 retries and logs import failure once with correct params4881 when retry continues to fail with intermittent errors4882 retries the number of times allowed and raise exception4883 logs import failure each time and raise exception4884 when exception is not retriable4885 raise the exception4886Git::TagHooksService4887 System hooks4888 executes system hooks4889 Webhooks4890 executes hooks on the project4891 Pipelines4892 creates a new pipeline4893 Push data4894 annotated tag4895 has expected push data attributes4896 with repository data4897 has expected repository attributes4898 with commits4899 is expected to be a kind of Array4900 has 1 element4901 the commit4902 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4903 has expected commit attributes4904 with an author4905 has expected author attributes4906 lightweight tag4907 has expected push data attributes4908 with repository data4909 has expected repository attributes4910 with commits4911 is expected to be a kind of Array4912 has 1 element4913 the commit4914 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4915 has expected commit attributes4916 with an author4917 has expected author attributes4918StarredProjectsFinder4919 #execute4920 user has a public profile4921 as same user4922 is expected to contain exactly #<Project id:952 namespace748/project965>>, #<Project id:953 namespace749/project966>>, and #<Project id:954 namespace750/project967>>4923 as other user4924 is expected to contain exactly #<Project id:955 namespace751/project968>> and #<Project id:956 namespace752/project969>>4925 as no user4926 is expected to contain exactly #<Project id:958 namespace754/project971>> and #<Project id:959 namespace755/project972>>4927 user has a private profile4928 as same user4929 is expected to contain exactly #<Project id:961 namespace757/project974>>, #<Project id:962 namespace758/project975>>, and #<Project id:963 namespace759/project976>>4930 as other user4931 user does not have access to view the private profile4932 is expected to be empty4933 user has access to view the private profile4934 is expected to contain exactly #<Project id:967 namespace763/project980>>, #<Project id:968 namespace764/project981>>, and #<Project id:969 namespace765/project982>>4935 as no user4936 is expected to be empty4937Ci::PipelineTriggerService4938 #execute4939 with a trigger token4940 when trigger belongs to a different project4941 does nothing4942 when trigger owner does not have a permission to read a project4943 does nothing4944 when params have an existing trigger token4945 when params have an existing ref4946 triggers a pipeline4947 stores the payload as a variable4948 when commit message has [ci skip]4949 ignores [ci skip] and create as general4950 when params have a variable4951 has variables4952 when params have duplicate variables4953 creates a failed pipeline without variables4954 behaves like detecting an unprocessable pipeline trigger4955 when the pipeline was not created successfully4956 has the correct status code4957 when params have a non-existant ref4958 does not trigger a pipeline4959 when params have a non-existant trigger token4960 does not trigger a pipeline4961 with a pipeline job token4962 when job user does not have a permission to read a project4963 does nothing4964 when job is not running4965 does nothing4966 when job does not have a project4967 does nothing4968 when params have an existsed job token4969 when params have an existsed ref4970 triggers a pipeline4971 behaves like logs downstream pipeline creation4972 logs details4973 when commit message has [ci skip]4974 ignores [ci skip] and create as general4975 when params have a variable4976 has variables4977 when params have duplicate variables4978 creates a failed pipeline without variables4979 behaves like detecting an unprocessable pipeline trigger4980 when the pipeline was not created successfully4981 has the correct status code4982 when params have a non-existant ref4983 does not trigger a job in the pipeline4984 when params have a non-existsed trigger token4985 does not trigger a pipeline4986gitlab:user_management tasks4987 disable_project_and_group_creation4988 returns output info4989 with users4990 in the group4991 behaves like updates proper users4992 updates members4993 does not update other users4994 in the descendant groups4995 behaves like updates proper users4996 updates members4997 does not update other users4998 in the children projects4999 behaves like updates proper users5000 updates members5001 does not update other users5002ClusterablePresenter5003 .fabricate5004 creates an object from a descendant presenter5005 #can_create_cluster?5006 when clusterable is a group5007 behaves like appropriate member permissions5008 with a developer5009 is expected to be falsy5010 with a maintainer5011 is expected to be truthy5012 when clusterable is a project5013 behaves like appropriate member permissions5014 with a developer5015 is expected to be falsy5016 with a maintainer5017 is expected to be truthy5018 #can_add_cluster?5019 when clusterable is a group5020 behaves like appropriate member permissions5021 with a developer5022 is expected to be falsy5023 with a maintainer5024 is expected to be truthy5025 when clusterable is a project5026 behaves like appropriate member permissions5027 with a developer5028 is expected to be falsy5029 with a maintainer5030 is expected to be truthy5031 #can_admin_cluster?5032 when clusterable is a group5033 behaves like appropriate member permissions5034 with a developer5035 is expected to be falsy5036 with a maintainer5037 is expected to be truthy5038 when clusterable is a project5039 behaves like appropriate member permissions5040 with a developer5041 is expected to be falsy5042 with a maintainer5043 is expected to be truthy5044 #environments_cluster_path5045 is expected to be nil5046 #index_path5047 without options5048 is expected to eq "/groups/group685/-/clusters"5049 with options5050 is expected to eq "/groups/group686/-/clusters.json"5051ContainerRegistry::Path5052 #components5053 splits components by a forward slash5054 #nodes5055 when repository path is valid5056 return all project path like node in reverse order5057 when repository path is invalid5058 rasises en error5059 #to_s5060 when path does not have uppercase characters5061 return a string with a repository path5062 when path has uppercase characters5063 return a string with a repository path5064 #valid?5065 when path has less than two components5066 is expected not to be valid5067 when path has more than allowed number of components5068 is expected not to be valid5069 when path has invalid characters5070 is expected not to be valid5071 when path has two or more components5072 is expected to be valid5073 when path is related to multi-level image5074 is expected to be valid5075 when path contains uppercase letters5076 is expected to be valid5077 when path contains double underscore5078 is expected to be valid5079 when path contains invalid separator with dot5080 is expected not to be valid5081 when path contains invalid separator with underscore5082 is expected not to be valid5083 #has_repository?5084 when project exists5085 when path already has matching repository5086 is expected to have repository5087 is expected to have project5088 when path does not have matching repository5089 is expected not to have repository5090 is expected to have project5091 when project does not exist5092 is expected not to have repository5093 is expected not to have project5094 #repository_project5095 when project for given path exists5096 returns a correct project5097 when project for given path does not exist5098 returns nil5099 when matching multi-level path5100 when using the zero-level path5101 supports zero-level path5102 when using first-level path5103 supports first-level path5104 when using second-level path5105 supports second-level path5106 when using too deep nesting in the path5107 does not support three-levels of nesting5108 #repository_name5109 when project does not exist5110 returns nil5111 when project exists5112 when project path equal repository path5113 returns an empty string5114 when repository path has one additional level5115 returns a correct repository name5116 when repository path has two additional levels5117 returns a correct repository name5118 #project_path5119 when project does not exist5120 returns nil5121 when project with uppercase characters in path exists5122 returns downcased project path5123Banzai::ReferenceParser::CommitRangeParser5124 #nodes_visible_to_user5125 when the link has a data-issue attribute5126 behaves like referenced feature visibility5127 when feature is disabled5128 does not create reference5129 when feature is enabled only for team members5130 does not create reference for non member5131 creates reference for member5132 when feature is enabled5133 creates reference5134 #referenced_by5135 when the link has a data-project attribute5136 when the link as a data-commit-range attribute5137 returns an Array of commit ranges5138 returns an empty Array when the commit range could not be found5139 when the link does not have a data-commit-range attribute5140 returns an empty Array5141 when the link does not have a data-project attribute5142 returns an empty Array5143 #commit_range_ids_per_project5144 returns a Hash containing range IDs per project5145 does not add a project when the data-commit-range attribute is empty5146 #find_ranges5147 returns an Array of range objects5148 skips ranges that could not be found5149 #find_object5150 when the range has valid commits5151 returns the commit range5152 when the range does not have any valid commits5153 returns nil5154 group context5155 returns nil5156Clusters::Kubernetes::ConfigureIstioIngressService#execute5157 without a serverless_domain_cluster5158 configures gateway to use PASSTHROUGH5159 with a serverless_domain_cluster5160 configures certificates5161 configures gateway to use MUTUAL5162 when there is an error5163 Kubeclient::HttpError5164 puts Knative into an errored state5165 StandardError5166 puts Knative into an errored state5167Projects::ParticipantsService5168 #execute5169 does not return duplicate author5170 N+1 checks5171 avoids N+1 UserDetail queries5172 avoids N+1 groups queries5173 group items5174 group user counts5175 returns correct user counts for groups5176 avatar_url5177 returns an url for the avatar5178 returns an url for the avatar with relative url5179 #project_members5180 behaves like return project members5181 when there is a project in group namespace5182 returns members of a group5183 when there is a private group and a public project5184 when the private group is invited to the public project5185 when a user who is outside the public project and the private group is signed in5186 does not return the private group5187 does not return private group members5188 returns the project maintainer5189 returns project members from an invited public group5190 does not return ancestors of the private group5191 when private group owner is signed in5192 returns private group members5193 returns ancestors of the the private group5194 when the namespace owner of the public project is signed in5195 returns private group members5196 does not return members of the ancestral groups of the private group5197Gitlab::Database::BackgroundMigration::BatchedJob5198 is expected to be a kind of Gitlab::Database::SharedModel(abstract)5199 is expected to contain exactly ActiveRecord::StatementTimeout, ActiveRecord::ConnectionTimeoutError, ActiveRecord::AdapterTimeout, and ActiveRecord::LockWaitTimeout5200 associations5201 is expected to belong to batched_migration required: false5202 is expected to have many batched_job_transition_logs5203 state machine5204 is expected to eql :pending, :running, :failed, and :succeeded5205 when a job is running5206 logs the transition5207 when a job succeed5208 logs the transition5209 updates the finished_at5210 creates a new transition log5211 when a job fails the number of max times5212 when job can be split5213 splits the job into two retriable jobs5214 when the job cannot be split5215 does not split the job5216 keeps the same job attributes5217 logs the error5218 when a job fails5219 logs the transition5220 tracks the exception5221 updates the finished_at5222 creates a new transition log5223 scopes5224 .except_succeeded5225 returns not succeeded jobs5226 .active5227 returns active jobs5228 .stuck5229 returns stuck jobs5230 .retriable5231 returns retriable jobs5232 .created_since5233 returns jobs since a given time5234 delegated batched_migration attributes5235 #migration_job_class5236 returns the migration job_class5237 #migration_table_name5238 returns the migration table_name5239 #migration_column_name5240 returns the migration column_name5241 #migration_job_arguments5242 returns the migration job_arguments5243 #migration_job_class_name5244 returns the migration job_class_name5245 #can_split?5246 when the number of attempts is greater than the limit and the batch_size is greater than the sub_batch_size5247 when is a timeout exception5248 is expected to be truthy5249 when is not a timeout exception5250 is expected to be falsey5251 when the number of attempts is lower than the limit and the batch_size is greater than the sub_batch_size5252 when is a timeout exception5253 is expected to be falsey5254 when is not a timeout exception5255 is expected to be falsey5256 when the batch_size is lower than the sub_batch_size5257 is expected to be falsey5258 #time_efficiency5259 when job has not yet succeeded5260 returns nil5261 when finished_at is not set5262 returns nil5263 when started_at is not set5264 returns nil5265 when job has finished5266 returns ratio of duration to interval, here: 0.55267 returns ratio of duration to interval, here: 15268 #split_and_retry!5269 when job can be split5270 sets the correct attributes5271 splits the jobs into retriable jobs5272 when job is not failed5273 raises an exception5274 when batch size is already 15275 raises an exception5276 when computed midpoint is larger than the max value of the batch5277 lowers the batch size and resets the number of attempts5278Gitlab::Pagination::Keyset::Order5279 paginate over items correctly5280 when ordering by a distinct column5281 behaves like order examples5282 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5283 when paginating forwards5284 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5285 with different page size5286 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5287 when using the conditions in an UNION query5288 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5289 when the cursor attributes are SQL literals5290 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5291 when using the conditions in an UNION query5292 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]5293 when paginating backwards5294 is expected to eq [{"id"=>2, "month"=>0, "year"=>0}, {"id"=>3, "month"=>0, "year"=>0}, {"id"=>4, "month"=>0, "year"=>0}..."id"=>7, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>9, "month"=>0, "year"=>0}]5295 when ordering by two non-nullable columns and a distinct column5296 uses the row comparison method5297 behaves like order examples5298 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5299 when paginating forwards5300 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5301 with different page size5302 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5303 when using the conditions in an UNION query5304 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5305 when the cursor attributes are SQL literals5306 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5307 when using the conditions in an UNION query5308 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]5309 when paginating backwards5310 is expected to eq [{"id"=>8, "month"=>4, "year"=>2012}, {"id"=>5, "month"=>1, "year"=>2011}, {"id"=>4, "month"=>1, "yea..."month"=>2, "year"=>2010}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>3, "month"=>2, "year"=>2009}]5311 when ordering by nullable columns and a distinct column5312 behaves like order examples5313 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5314 when paginating forwards5315 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5316 with different page size5317 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5318 when using the conditions in an UNION query5319 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5320 when the cursor attributes are SQL literals5321 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5322 when using the conditions in an UNION query5323 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]5324 when paginating backwards5325 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>4, "month"=>5, "year"=>nil}, {"id"=>9, "month"=>2, "yea...nth"=>nil, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>7, "month"=>2, "year"=>2010}]5326 when ordering by nullable columns with nulls first ordering and a distinct column5327 behaves like order examples5328 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5329 when paginating forwards5330 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5331 with different page size5332 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5333 when using the conditions in an UNION query5334 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5335 when the cursor attributes are SQL literals5336 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5337 when using the conditions in an UNION query5338 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]5339 when paginating backwards5340 is expected to eq [{"id"=>6, "month"=>2, "year"=>2011}, {"id"=>2, "month"=>2, "year"=>2011}, {"id"=>11, "month"=>2, "ye...onth"=>2, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}]5341 when ordering by non-nullable columns with mixed directions and a distinct column5342 takes out a slice between two cursors5343 when ordering by the named function LOWER5344 uses downcased value for encoding and decoding a cursor5345 when the passed cursor values do not match with the order definition5346 when values are missing5347 raises error5348 when extra values are present5349 raises error5350 when values are missing and extra values are present5351 raises error5352 when no values are passed5353 returns empty array5354 extract and apply cursor attributes5355 when string attribute name is given5356 behaves like cursor attribute examples5357 #cursor_attributes_for_node5358 is expected to eq {"id"=>"100"}5359 #apply_cursor_conditions5360 when params with string keys are passed5361 is expected to include "\"projects\".\"id\" < 100)"5362 when params with symbol keys are passed5363 is expected to include "\"projects\".\"id\" < 100)"5364 when symbol attribute name is given5365 behaves like cursor attribute examples5366 #cursor_attributes_for_node5367 is expected to eq {"id"=>"100"}5368 #apply_cursor_conditions5369 when params with string keys are passed5370 is expected to include "\"projects\".\"id\" < 100)"5371 when params with symbol keys are passed5372 is expected to include "\"projects\".\"id\" < 100)"5373 with projections5374 when additional_projections is empty5375 has correct projections5376 when there are additional_projections5377 has correct projections5378 UNION optimization5379 when UNION optimization is off5380 returns items in the correct order5381 when UNION optimization is on5382 returns items in the correct order5383 calls Gitlab::SQL::Union5384 builds UNION query5385git_http routing5386 code repositories5387 behaves like git repository routes5388 routes Git endpoints5389 routes LFS endpoints5390 requests without .git format5391 redirects requests to /info/refs5392 behaves like git repository routes with fallback for git-upload-pack5393 routes LFS endpoints for unmatched routes5394 requests without .git format5395 does not redirect other requests5396 wiki repositories5397 in project5398 behaves like git repository routes5399 routes Git endpoints5400 routes LFS endpoints5401 requests without .git format5402 redirects requests to /info/refs5403 behaves like git repository routes with fallback for git-upload-pack5404 routes LFS endpoints for unmatched routes5405 requests without .git format5406 does not redirect other requests5407 redirects5408 redirects namespace/project.wiki.git to the project wiki5409 preserves query parameters5410 only redirects when the format is .git5411 in toplevel group5412 behaves like git repository routes5413 routes Git endpoints5414 routes LFS endpoints5415 requests without .git format5416 redirects requests to /info/refs5417 behaves like git repository routes with fallback for git-upload-pack5418 routes LFS endpoints for unmatched routes5419 requests without .git format5420 does not redirect other requests5421 in child group5422 behaves like git repository routes5423 routes Git endpoints5424 routes LFS endpoints5425 requests without .git format5426 redirects requests to /info/refs5427 behaves like git repository routes with fallback for git-upload-pack5428 routes LFS endpoints for unmatched routes5429 requests without .git format5430 does not redirect other requests5431 snippet repositories5432 personal snippet5433 behaves like git repository routes5434 routes Git endpoints5435 routes LFS endpoints5436 requests without .git format5437 redirects requests to /info/refs5438 behaves like git repository routes without fallback5439 routes LFS endpoints for unmatched routes5440 requests without .git format5441 does not redirect other requests5442 project snippet5443 behaves like git repository routes5444 routes Git endpoints5445 routes LFS endpoints5446 requests without .git format5447 redirects requests to /info/refs5448 behaves like git repository routes with fallback5449 routes LFS endpoints5450 requests without .git format5451 does not redirect other requests5452Gitlab::UsageDataCounters::IssueActivityUniqueCounter5453 can return the count of actions per user deduplicated5454 for Issue title edit actions5455 behaves like a daily tracked issuable event5456 is expected to eq 25457 does not track edit actions if author is not present5458 for Issue description edit actions5459 behaves like a daily tracked issuable event5460 is expected to eq 25461 does not track edit actions if author is not present5462 for Issue assignee edit actions5463 behaves like a daily tracked issuable event5464 is expected to eq 25465 does not track edit actions if author is not present5466 for Issue make confidential actions5467 behaves like a daily tracked issuable event5468 is expected to eq 25469 does not track edit actions if author is not present5470 for Issue make visible actions5471 behaves like a daily tracked issuable event5472 is expected to eq 25473 does not track edit actions if author is not present5474 for Issue created actions5475 behaves like a daily tracked issuable event5476 is expected to eq 25477 does not track edit actions if author is not present5478 for Issue closed actions5479 behaves like a daily tracked issuable event5480 is expected to eq 25481 does not track edit actions if author is not present5482 for Issue reopened actions5483 behaves like a daily tracked issuable event5484 is expected to eq 25485 does not track edit actions if author is not present5486 for Issue label changed actions5487 behaves like a daily tracked issuable event5488 is expected to eq 25489 does not track edit actions if author is not present5490 for Issue cross-referenced actions5491 behaves like a daily tracked issuable event5492 is expected to eq 25493 does not track edit actions if author is not present5494 for Issue moved actions5495 behaves like a daily tracked issuable event5496 is expected to eq 25497 does not track edit actions if author is not present5498 for Issue cloned actions5499 behaves like a daily tracked issuable event5500 is expected to eq 25501 does not track edit actions if author is not present5502 for Issue relate actions5503 behaves like a daily tracked issuable event5504 is expected to eq 25505 does not track edit actions if author is not present5506 for Issue unrelate actions5507 behaves like a daily tracked issuable event5508 is expected to eq 25509 does not track edit actions if author is not present5510 for Issue marked as duplicate actions5511 behaves like a daily tracked issuable event5512 is expected to eq 25513 does not track edit actions if author is not present5514 for Issue locked actions5515 behaves like a daily tracked issuable event5516 is expected to eq 25517 does not track edit actions if author is not present5518 for Issue unlocked actions5519 behaves like a daily tracked issuable event5520 is expected to eq 25521 does not track edit actions if author is not present5522 for Issue designs added actions5523 behaves like a daily tracked issuable event5524 is expected to eq 25525 does not track edit actions if author is not present5526 for Issue designs modified actions5527 behaves like a daily tracked issuable event5528 is expected to eq 25529 does not track edit actions if author is not present5530 for Issue designs removed actions5531 behaves like a daily tracked issuable event5532 is expected to eq 25533 does not track edit actions if author is not present5534 for Issue due date changed actions5535 behaves like a daily tracked issuable event5536 is expected to eq 25537 does not track edit actions if author is not present5538 for Issue time estimate changed actions5539 behaves like a daily tracked issuable event5540 is expected to eq 25541 does not track edit actions if author is not present5542 for Issue time spent changed actions5543 behaves like a daily tracked issuable event5544 is expected to eq 25545 does not track edit actions if author is not present5546 for Issue comment added actions5547 behaves like a daily tracked issuable event5548 is expected to eq 25549 does not track edit actions if author is not present5550 for Issue comment edited actions5551 behaves like a daily tracked issuable event5552 is expected to eq 25553 does not track edit actions if author is not present5554 for Issue comment removed actions5555 behaves like a daily tracked issuable event5556 is expected to eq 25557 does not track edit actions if author is not present5558Gitlab::RelativePositioning::Range5559 infers neighbours correctly5560 RelativePositioning.range5561 raises if lhs and rhs are nil5562 raises an error if there is no extent5563 constructs a closed range when both termini are provided5564 constructs a starting-from range when only the LHS is provided5565 constructs an ending-at range when only the RHS is provided5566 #open_on_left?5567 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5568 is true if there is no LHS terminus5569 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false5570 is true if there is no LHS terminus5571 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5572 is true if there is no LHS terminus5573 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: false5574 is true if there is no LHS terminus5575 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5576 is true if there is no LHS terminus5577 #open_on_right?5578 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5579 is true if there is no RHS terminus5580 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false5581 is true if there is no RHS terminus5582 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5583 is true if there is no RHS terminus5584 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: true5585 is true if there is no RHS terminus5586 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false5587 is true if there is no RHS terminus5588 #cover?5589 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: true5590 is true when the object is within the bounds of the range5591 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: true5592 is true when the object is within the bounds of the range5593 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: true5594 is true when the object is within the bounds of the range5595 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: false5596 is true when the object is within the bounds of the range5597 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: false5598 is true when the object is within the bounds of the range5599 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: false5600 is true when the object is within the bounds of the range5601 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: false5602 is true when the object is within the bounds of the range5603 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: false5604 is true when the object is within the bounds of the range5605 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false5606 is true when the object is within the bounds of the range5607 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5608 is true when the object is within the bounds of the range5609 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5610 is true when the object is within the bounds of the range5611 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true5612 is true when the object is within the bounds of the range5613 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5614 is true when the object is within the bounds of the range5615 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5616 is true when the object is within the bounds of the range5617 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5618 is true when the object is within the bounds of the range5619 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5620 is true when the object is within the bounds of the range5621 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5622 is true when the object is within the bounds of the range5623 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false5624 is true when the object is within the bounds of the range5625 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5626 is true when the object is within the bounds of the range5627 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5628 is true when the object is within the bounds of the range5629 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true5630 is true when the object is within the bounds of the range5631 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5632 is true when the object is within the bounds of the range5633 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5634 is true when the object is within the bounds of the range5635 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5636 is true when the object is within the bounds of the range5637 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5638 is true when the object is within the bounds of the range5639 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5640 is true when the object is within the bounds of the range5641 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: nil, expected_result: false5642 is true when the object is within the bounds of the range5643 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true5644 is true when the object is within the bounds of the range5645 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false5646 is true when the object is within the bounds of the range5647 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false5648 is true when the object is within the bounds of the range5649 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: true5650 is true when the object is within the bounds of the range5651 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false5652 is true when the object is within the bounds of the range5653 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5654 is true when the object is within the bounds of the range5655 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5656 is true when the object is within the bounds of the range5657 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5658 is true when the object is within the bounds of the range5659 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: nil, expected_result: false5660 is true when the object is within the bounds of the range5661 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false5662 is true when the object is within the bounds of the range5663 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true5664 is true when the object is within the bounds of the range5665 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false5666 is true when the object is within the bounds of the range5667 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false5668 is true when the object is within the bounds of the range5669 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: true5670 is true when the object is within the bounds of the range5671 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false5672 is true when the object is within the bounds of the range5673 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false5674 is true when the object is within the bounds of the range5675 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false5676 is true when the object is within the bounds of the range5677 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: nil, expected_result: false5678 is true when the object is within the bounds of the range5679Projects::ProtectDefaultBranchService5680 #execute5681 without a default branch5682 does nothing5683 with a default branch5684 protects the default branch5685 #protect_default_branch5686 when branch protection is needed5687 changes the HEAD of the project5688 protects the default branch5689 when branch protection is not needed5690 changes the HEAD of the project5691 does not protect the default branch5692 when protected branch does not exist5693 changes the HEAD of the project5694 protects the default branch5695 when protected branch already exists5696 changes the HEAD of the project5697 does not protect the default branch5698 #create_protected_branch5699 creates the protected branch5700 #protect_branch?5701 when default branch protection is disabled5702 returns false5703 when default branch protection is enabled5704 returns false if the branch is already protected5705 returns true if the branch is not yet protected5706 #default_branch5707 returns the default branch of the project5708 #push_access_level5709 when developers can push5710 returns the DEVELOPER access level5711 when developers can not push5712 returns the MAINTAINER access level5713 #merge_access_level5714 when developers can merge5715 returns the DEVELOPER access level5716 when developers can not merge5717 returns the MAINTAINER access level5718PaginatedDiffEntity5719 exposes diff_files5720 exposes pagination data5721 when there are conflicts5722 conflicts are highlighted5723 merge ref head diff is not chosen to be displayed5724 conflicts are not calculated5725 when conflicts cannot be resolved5726 conflicts are not highlighted5727 when allow_tree_conflicts is set to true5728 conflicts are still highlighted5729Nav::TopNavHelper5730 #top_nav_view_model5731 has :activeTitle5732 when current_user is nil (anonymous)5733 has expected :primary5734 has expected :shortcuts5735 has expected :secondary5736 with current nav as project5737 has expected :active5738 when current_user is non-admin5739 has no menu items or views by default5740 with projects5741 has expected :primary5742 has expected :shortcuts5743 projects5744 has expected :currentUserName5745 has expected :namespace5746 has expected :linksPrimary5747 has expected :linksSecondary5748 with current nav as project5749 has expected :active5750 with persisted project5751 has project as :container5752 with groups5753 has expected :primary5754 has expected :shortcuts5755 groups5756 has expected :currentUserName5757 has expected :namespace5758 has expected :linksPrimary5759 has expected :linksSecondary5760 with external user5761 does not have create group link5762 with current nav as group5763 has expected :active5764 with persisted group5765 has expected :container5766 with milestones5767 has expected :primary5768 has expected :shortcuts5769 with snippets5770 has expected :primary5771 has expected :shortcuts5772 with activity5773 has expected :primary5774 has expected :shortcuts5775 when current_user is admin5776 has admin as first :secondary item5777 with header link admin_mode true5778 has leave_admin_mode as last :secondary item5779 with header link admin_mode false5780 has enter_admin_mode as last :secondary item5781 #top_nav_responsive_view_model5782 has nil new subview5783 has nil search subview5784 with search5785 has search subview5786 with new5787 has new subview5788 with new and no menu_sections5789 has new subview5790Integrations::Packagist5791 behaves like Integrations::HasWebHook5792 callbacks5793 calls #update_web_hook! when enabled5794 does not call #update_web_hook! when disabled5795 does not call #update_web_hook! when validation fails5796 #hook_url5797 returns a string5798 #hook_ssl_verification5799 returns a boolean5800 delegates to #enable_ssl_verification if the concern is included5801 #update_web_hook!5802 creates or updates a service hook5803 raises an error if the service hook could not be saved5804 does not attempt to save the service hook if there are no changes5805 #execute_web_hook!5806 creates the webhook if necessary and executes it5807 raises an error if the service hook could not be saved5808 #execute5809 calls Packagist API5810Clusters::KubernetesNamespace5811 is expected to belong to cluster_project required: false5812 is expected to belong to project required: false5813 is expected to belong to cluster required: false5814 is expected to have one platform_kubernetes5815 has_service_account_token5816 namespace has service_account_token5817 is expected to include #<Clusters::KubernetesNamespace id: 14, cluster_id: 585, project_id: 1064, cluster_project_id: 57, cr..._account_name: "project1068-1064--service-account", environment_id: nil, service_account_token: nil>5818 namespace has no service_account_token5819 is expected not to include #<Clusters::KubernetesNamespace id: 15, cluster_id: 588, project_id: 1065, cluster_project_id: 58, cr..._account_name: "project1069-1065--service-account", environment_id: nil, service_account_token: nil>5820 .with_environment_name5821 there is no associated environment5822 is expected to be empty5823 there is an assicated environment5824 with a matching name5825 is expected to eq [#<Clusters::KubernetesNamespace id: 17, cluster_id: 590, project_id: 1067, cluster_project_id: nil, ...name: "project1071-1067-production-service-account", environment_id: 8, service_account_token: nil>]5826 without a matching name5827 is expected to be empty5828 namespace uniqueness validation5829 when cluster is using the namespace5830 is expected not to be valid5831 when cluster is not using the namespace5832 is expected to be valid5833 #predefined_variables5834 sets the variables5835Gitlab::SlashCommands::Deploy5836 #execute5837 if no environment is defined5838 does not execute an action5839 with environment5840 without actions5841 does not execute an action5842 when single action has been matched5843 returns success result5844 when more than one action has been matched5845 when there is no specific actions with a environment name5846 returns error about too many actions defined5847 when one of the actions is environement specific action5848 deploys to production5849 when one of the actions is a teardown action5850 deploys to production5851 with extra spaces in the deploy command5852 deploys to production5853 self.match5854 matches the environment5855 matches the environment with spaces in it5856 matches the environment name with surrounding spaces5857 returns nil for text that is not a deploy command5858 returns nil for a partial command5859 with ReDoS attempts5860 has smaller than linear execution time growth with a malformed "to"5861PreviewMarkdownService5862 user references5863 returns users referenced in text5864 suggestions5865 when preview markdown param is present5866 returns suggestions referenced in text5867 when user is not authorized5868 returns no suggestions5869 when preview markdown param is not present5870 returns suggestions referenced in text5871 new note with quick actions5872 removes quick actions from text5873 explains quick actions effect5874 merge request description5875 removes quick actions from text5876 explains quick actions effect5877 commit description5878 removes quick actions from text5879 explains quick actions effect5880NewMergeRequestWorker5881 #perform5882 when a merge request not found5883 does not call Services5884 logs an error5885 when a user not found5886 does not call Services5887 logs an error5888 with a user5889 when the merge request author is blocked5890 behaves like a new merge request where the author cannot trigger notifications5891 does not create a notification for the mentioned user5892 when the merge request author is a ghost5893 behaves like a new merge request where the author cannot trigger notifications5894 does not create a notification for the mentioned user5895 when everything is ok5896 creates a new event record5897 creates a notification for the mentioned user5898Import::GithubController routing5899 to #personal_access_token5900 behaves like importer routing5901 to #create5902 to #new5903 to #status5904 to #callback5905 to #jobs5906 to #realtime_changes5907Import::GiteaController routing5908 to #personal_access_token5909 behaves like importer routing5910 to #create5911 to #new5912 to #status5913 to #callback5914 to #jobs5915 to #realtime_changes5916Import::GitlabController routing5917 behaves like importer routing5918 to #create5919 to #new5920 to #status5921 to #callback5922 to #jobs5923 to #realtime_changes5924Import::BitbucketController routing5925 behaves like importer routing5926 to #create5927 to #new5928 to #status5929 to #callback5930 to #jobs5931 to #realtime_changes5932Import::BitbucketServerController routing5933 behaves like importer routing5934 to #create5935 to #new5936 to #status5937 to #callback5938 to #jobs5939 to #realtime_changes5940Import::FogbugzController routing5941 to #callback5942 to #new_user_map5943 to #create_user_map5944 behaves like importer routing5945 to #create5946 to #new5947 to #status5948 to #callback5949 to #jobs5950 to #realtime_changes5951Import::GitlabProjectsController routing5952 to #create5953 to #new5954Import::PhabricatorController routing5955 to #create5956 to #new5957Ci::Lint::ResultSerializer5958 when config is invalid5959 returns expected validity5960 returns job data5961 behaves like matches schema5962 is expected to match schema "entities/lint_result_entity"5963 when config is valid5964 returns expected validity5965 returns job data5966 behaves like matches schema5967 is expected to match schema "entities/lint_result_entity"5968 when dry run is enabled5969 returns expected validity5970 returns job data5971 behaves like matches schema5972 is expected to match schema "entities/lint_result_entity"5973 when only is not nil in the yaml5974 when only: is hash5975 renders only:refs as hash5976 behaves like matches schema5977 is expected to match schema "entities/lint_result_entity"5978 when only is an array of strings in the yaml5979 renders only: list as hash5980 behaves like matches schema5981 is expected to match schema "entities/lint_result_entity"5982 when except is not nil in the yaml5983 when except: is hash5984 renders except as hash5985 behaves like matches schema5986 is expected to match schema "entities/lint_result_entity"5987 when except is an array of strings in the yaml5988 renders only: list as hash5989 behaves like matches schema5990 is expected to match schema "entities/lint_result_entity"5991 with minimal job configuration5992 renders the job with defaults5993 behaves like matches schema5994 is expected to match schema "entities/lint_result_entity"5995 with environment defined5996 when formatted as a hash in yaml5997 renders the environment as a string5998 behaves like matches schema5999 is expected to match schema "entities/lint_result_entity"6000 when formatted as a string in yaml6001 renders the environment as a string6002 behaves like matches schema6003 is expected to match schema "entities/lint_result_entity"6004 when script values are formatted as arrays in the yaml6005 renders the scripts as arrays6006 behaves like matches schema6007 is expected to match schema "entities/lint_result_entity"6008ProjectAutoDevops6009 is expected to belong to project required: false6010 is expected to define :deploy_strategy as an enum backed by an integer6011 is expected to respond to #created_at6012 is expected to respond to #updated_at6013 behaves like having unique enum values6014 has unique values in "deploy_strategy"6015 #predefined_variables6016 when deploy_strategy is manual6017 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6018 when deploy_strategy is continuous6019 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6020 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"6021 when deploy_strategy is timed_incremental6022 is expected to include {:key => "INCREMENTAL_ROLLOUT_MODE", :value => "timed"}6023 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}6024 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"6025 when auto-devops is explicitly disabled6026 is expected to be empty6027 #create_gitlab_deploy_token6028 when the project is public6029 does not create a gitlab deploy token6030 when the project is internal6031 creates a gitlab deploy token6032 when the project is private6033 creates a gitlab deploy token6034 when autodevops is enabled at project level6035 creates a deploy token6036 when autodevops is enabled at instance level6037 creates a deploy token6038 when autodevops is disabled6039 does not create a deploy token6040 when the project already has an active gitlab-deploy-token6041 does not create a deploy token6042 when the project already has a revoked gitlab-deploy-token6043 does not create a deploy token6044LfsObject6045 has a distinct has_many :projects relation through lfs_objects_projects6046 scopes6047 .not_existing_in_project6048 contains only lfs objects not linked to the project6049 .for_oids6050 returns the correct LfsObjects6051 #local_store?6052 returns true when file_store is equal to LfsObjectUploader::Store::LOCAL6053 returns false when file_store is equal to LfsObjectUploader::Store::REMOTE6054 #project_allowed_access?6055 returns true when project is linked6056 returns false when project is not linked6057 when project is a member of a fork network6058 returns true for all members when forked project is linked6059 returns true for all members when root of network is linked6060 returns false when no member of fork network is linked6061 #schedule_background_upload6062 when object storage is disabled6063 does not schedule the migration6064 when object storage is enabled6065 when background upload is enabled6066 when is licensed6067 schedules the model for migration6068 schedules the model for migration once6069 when background upload is disabled6070 schedules the model for migration6071 file is being stored6072 when existing object has local store6073 behaves like mounted file in local store6074 is stored locally6075 when direct upload is enabled6076 behaves like mounted file in object store6077 is stored remotely6078 .calculate_oid6079 returns SHA256 sum of the file6080 when an lfs object is associated with a project6081 cannot be deleted6082 .unreferenced_in_batches6083 returns lfs objects in batches6084Ci::PlayManualStageService#execute6085 when pipeline has manual processables6086 starts manual processables from pipeline6087 updates manual processables6088 when pipeline has no manual processables6089 does not update the processables6090 when user does not have permission on a specific processable6091 logs the error6092DraftNotes::CreateService6093 creates a simple draft note6094 tracks the start event when the draft is persisted6095 does not track the start event when the draft is not persisted6096 cannot resolve when there is nothing to resolve6097 creates a draft note with a position in a diff6098 in a thread6099 creates a draft note with discussion_id6100 creates a draft that resolves the thread6101 diff highlight cache clearing6102 when diff file is unfolded and it is not a reply6103 clears diff highlighting cache6104 when diff file is not unfolded and it is not a reply6105 clears diff highlighting cache6106Resolvers::ProjectsResolver6107 #resolve6108 when user is not logged in6109 when no filters are applied6110 returns all public projects6111 when search filter is provided6112 returns matching project6113 when membership filter is provided6114 returns empty list6115 when searchNamespaces filter is provided6116 returns projects in a matching namespace6117 when searchNamespaces filter false6118 returns ignores namespace matches6119 when topics filter is provided6120 returns matching project6121 when user is logged in6122 when no filters are applied6123 returns all visible projects for the user6124 when search filter is provided6125 returns matching project6126 when membership filter is provided6127 returns projects that user is member of6128 when searchNamespaces filter is provided6129 returns projects from matching group6130 when searchNamespaces filter false6131 returns ignores namespace matches6132 when ids filter is provided6133 returns matching project6134 when sorting6135 when sorting by similarity6136 returns projects in order of similarity to search6137 when no sort is provided6138 returns projects in descending order by id6139 when topics filter is provided6140 returns matching project6141gitlab:artifacts namespace rake task6142 gitlab:artifacts:migrate6143 when local storage is used6144 and remote storage is defined6145 migrates file to remote storage6146 and remote storage is not defined6147 fails to migrate to remote storage6148 when remote storage is used6149 file stays on remote storage6150 gitlab:artifacts:migrate_to_local6151 when remote storage is used6152 and job has remote file store defined6153 migrates file to local storage6154 when local storage is used6155 file stays on local storage6156Projects::LfsPointers::LfsObjectDownloadListService6157 #execute6158 when no lfs pointer is linked6159 retrieves all lfs pointers in the project repository6160 when no LFS objects exist6161 retrieves all LFS objects6162 when some LFS objects already exist6163 retrieves the download links of non-existent objects6164 when lfsconfig file exists6165 when url points to the same import url host6166 downloads lfs object using the new endpoint6167 when import url has credentials6168 adds the credentials to the new endpoint6169 when url has its own credentials6170 does not add the import url credentials6171 when url points to a third party service6172 disables lfs from the project6173 does not download anything6174 #default_endpoint_uri6175 adds suffix .git if the url does not have it6176Gitlab::Utils::Override6177 #override6178 when instance is klass.new(0)6179 when STATIC_VERIFICATION is set6180 when subject is a class6181 behaves like checking as intended6182 checks ok for overriding method6183 checks ok for overriding method using negative arity6184 raises NotImplementedError when it is not overriding anything6185 raises NotImplementedError when overriding a method with different arity6186 when subject is a module, and class is prepending it6187 behaves like checking as intended6188 checks ok for overriding method6189 checks ok for overriding method using negative arity6190 raises NotImplementedError when it is not overriding anything6191 raises NotImplementedError when overriding a method with different arity6192 when subject is a module, and class is including it6193 behaves like checking as intended, nothing was overridden6194 raises NotImplementedError because it is not overriding it6195 raises NotImplementedError when it is not overriding anything6196 when ActiveSupport::Concern and class_methods are used6197 when it is defining a overriding method6198 verifies6199 when it is not defining a overriding method6200 raises NotImplementedError6201 when STATIC_VERIFICATION is not set6202 when subject is a class6203 behaves like nothing happened6204 does not complain when it is overriding something6205 does not complain when it is not overriding anything6206 when subject is a module, and class is prepending it6207 behaves like nothing happened6208 does not complain when it is overriding something6209 does not complain when it is not overriding anything6210 when subject is a module, and class is including it6211 does not complain when it is overriding something6212 does not complain when it is not overriding anything6213 when instance is klass6214 when STATIC_VERIFICATION is set6215 when subject is a module, and class is prepending it6216 behaves like checking as intended6217 checks ok for overriding method6218 checks ok for overriding method using negative arity6219 raises NotImplementedError when it is not overriding anything6220 raises NotImplementedError when overriding a method with different arity6221 when subject is a module, and class is extending it6222 behaves like checking as intended, nothing was overridden6223 raises NotImplementedError because it is not overriding it6224 raises NotImplementedError when it is not overriding anything6225Gitlab::ImportExport::Json::StreamingSerializer6226 #execute6227 calls json_writer.write_attributes with proper params6228 with many relations6229 calls json_writer.write_relation_array with proper params6230 default relation ordering6231 orders exported issues by primary key(:id)6232 custom relation ordering ascending6233 orders exported issues by custom column(relative_position)6234 custom relation ordering descending6235 orders exported issues by custom column(relative_position)6236 with single relation6237 calls json_writer.write_relation with proper params6238 with array relation6239 calls json_writer.write_relation_array with proper params6240 load balancing6241 reads from replica6242 .batch_size6243 returns default batch size6244Banzai::ReferenceRedactor6245 #redact6246 when reference not visible to user6247 redacts an array of documents6248 replaces redacted reference with inner HTML6249 when data-original attribute provided6250 replaces redacted reference with original content6251 does not replace redacted reference with original content if href is given6252 uses the original content as the link content if given6253 when project is in pending delete6254 redacts an issue attached6255 redacts an external issue6256 when reference visible to user6257 does not redact an array of documents6258 when the user cannot read cross project6259 skips links to issues within the same project6260 removes info from a cross project reference6261 #redact_nodes6262 redacts an Array of nodes6263 #nodes_visible_to_user6264 returns a Set containing the visible nodes6265 handles invalid references gracefully6266Gitlab::HttpIO6267 #close6268 is expected to be nil6269 #binmode6270 is expected to be nil6271 #binmode?6272 is expected to be truthy6273 #path6274 is expected to be nil6275 #url6276 is expected to eq "http://object-storage/trace"6277 #seek6278 when moves pos to end of the file6279 is expected to eq 1924416280 when moves pos to middle of the file6281 is expected to eq 962206282 when moves pos around6283 matches the result6284 #eof?6285 when current pos is at end of the file6286 is expected to be truthy6287 when current pos is not at end of the file6288 is expected to be falsey6289 #each_line6290 yields lines6291 when buckets on GCS6292 when BUFFER_SIZE is larger than file size6293 calls get_chunk only once6294 #read6295 when there are no network issue6296 when read whole size6297 when BUFFER_SIZE is smaller than file size6298 reads a trace6299 when BUFFER_SIZE is larger than file size6300 reads a trace6301 when read only first 100 bytes6302 when BUFFER_SIZE is smaller than file size6303 reads a trace6304 when BUFFER_SIZE is larger than file size6305 reads a trace6306 when tries to read oversize6307 when BUFFER_SIZE is smaller than file size6308 reads a trace6309 when BUFFER_SIZE is larger than file size6310 reads a trace6311 when tries to read 0 bytes6312 when BUFFER_SIZE is smaller than file size6313 reads a trace6314 when BUFFER_SIZE is larger than file size6315 reads a trace6316 when there is anetwork issue6317 reads a trace6318 #readline6319 when there is anetwork issue6320 reads a trace6321 when BUFFER_SIZE is smaller than file size6322 behaves like all line matching6323 reads a line6324 when BUFFER_SIZE is larger than file size6325 behaves like all line matching6326 reads a line6327 when pos is at middle of the file6328 reads from pos6329 #write6330 is expected to raise NotImplementedError6331 #truncate6332 is expected to raise NotImplementedError6333 #flush6334 is expected to raise NotImplementedError6335 #present?6336 is expected to be truthy6337 #send6338 does not set the "accept-encoding" header6339Banzai::Filter::CommitTrailersFilter6340 detects6341 trailers in the form of *-by and replace users with links6342 trailers prefixed with whitespaces6343 GitLab users via a secondary email6344 multiple trailers in the same message6345 non GitLab users6346 when Gravatar is disabled6347 behaves like mailto links6348 replaces them with mailto links6349 when Gravatar is enabled6350 behaves like mailto links6351 replaces them with mailto links6352 special names6353 name: "John S. Doe"6354 is expected to match "qui\\-by:\\ John\\ S\\.\\ Doe\\ <clemente_sauer@gleason\\.name>"6355 name: "L33t H@x0r"6356 is expected to match "nulla\\-by:\\ L33t\\ H@x0r\\ <hwa\\.barton@gibson\\.biz>"6357 ignores6358 commit messages without trailers6359 trailers that are inline the commit message body6360 structure6361 starts with two newlines to separate with actual commit message6362 preserves the commit trailer structure6363 preserves the original name used in the commit message6364 preserves the original email used in the commit message6365 only replaces trailer lines not the full commit message6366 with Gitlab-hosted avatars in commit trailers6367 returns a full path for avatar urls6368SentryIssue6369 associations6370 is expected to belong to issue required: false6371 validations6372 is expected to validate that :issue cannot be empty/falsy6373 is expected to validate that :issue is case-sensitively unique6374 is expected to validate that :sentry_issue_identifier cannot be empty/falsy6375 allows duplicated sentry_issue_identifier6376 validates uniqueness of sentry_issue_identifier per project6377 when importing6378 is expected not to validate that :issue cannot be empty/falsy6379 callbacks6380 after create commit do6381 updates Sentry with a reciprocal link on creation6382 .for_project_and_identifier6383 finds the most recent per project and sentry_issue_identifier6384Gitlab::RepoPath6385 .parse6386 returns the default type for non existent paths6387 a repository storage path6388 parses a full project repository path6389 parses a full project wiki repository path6390 parses a personal snippet repository path6391 parses a project snippet repository path6392 a relative path6393 parses a relative repository path6394 parses a relative wiki path6395 parses a relative path starting with /6396 of a redirected project6397 parses a relative repository path6398 parses a relative wiki path6399 parses a relative path starting with /6400 parses a redirected project snippet repository path6401 .find_project6402 when finding a project by its canonical path6403 when the cases match6404 returns the project6405 when the cases do not match6406 returns the project6407 when finding a project via a redirect6408 returns the project6409 .find_snippet6410 extracts path and id from personal snippet route6411 extracts path and id from project snippet route6412 returns nil for invalid snippet paths6413 returns nil for snippets not associated with the project6414 when finding a project snippet via a redirect6415 returns the project snippet6416Gitlab::ImportExport::Base::RelationObjectSaver6417 #save6418 saves relation object6419 when subrelation is present6420 saves relation object with subrelations6421 when subrelation is not a collection6422 saves subrelation as part of the relation object itself6423 when subrelation collection count is small6424 saves subrelation as part of the relation object itself6425 when some subrelations are invalid6426 saves valid subrelations and logs invalid subrelation6427 when importable is group6428 logs invalid subrelation for a group6429Analytics::CycleAnalytics::IssueStageEvent6430 is expected to validate that :stage_event_hash_id cannot be empty/falsy6431 is expected to validate that :issue_id cannot be empty/falsy6432 is expected to validate that :group_id cannot be empty/falsy6433 is expected to validate that :project_id cannot be empty/falsy6434 is expected to validate that :start_event_timestamp cannot be empty/falsy6435 has state enum6436 behaves like StageEventModel6437 .upsert_data6438 inserts the data6439 does not produce duplicate rows6440 inserts the data correctly6441 scopes6442 filters by stage_event_hash_id6443 filters by project_id6444 filters by group_id6445 filters by author_id6446 filters by assignee6447 filters by milestone_id6448 start_event_timestamp filtering6449 when range is given6450 when specifying upper bound6451 when specifying the lower bound6452 end_event_timestamp filtering6453 when range is given6454 when specifying upper bound6455 when specifying the lower bound6456 #total_time6457 calcualtes total time from the start_event_timestamp and end_event_timestamp columns6458 when total time is calculated in SQL as an extra column6459 returns the SQL calculated time6460Gitlab::Metrics::Sli6461 Class methods6462 does not allow them to be called on the parent module6463 allows different SLIs to be defined on each subclass6464 Gitlab::Metrics::Sli::Apdex6465 Class methods6466 .[]6467 returns and stores a new, uninitialized SLI6468 returns the same object for multiple accesses6469 .initialize_sli6470 returns and stores a new initialized SLI6471 does not change labels for an already-initialized SLI6472 .initialized?6473 is true when an SLI was initialized with labels6474 is false when an SLI was not initialized with labels6475 #initialize_counters6476 initializes counters for the passed label combinations6477 #increment6478 increments both counters for labels when success is true6479 only increments the total counters for labels when success is false6480 Gitlab::Metrics::Sli::ErrorRate6481 Class methods6482 .[]6483 returns and stores a new, uninitialized SLI6484 returns the same object for multiple accesses6485 .initialize_sli6486 returns and stores a new initialized SLI6487 does not change labels for an already-initialized SLI6488 .initialized?6489 is true when an SLI was initialized with labels6490 is false when an SLI was not initialized with labels6491 #initialize_counters6492 initializes counters for the passed label combinations6493 #increment6494 increments both counters for labels when error is true6495 only increments the total counters for labels when error is false6496Packages::Debian::DistributionsFinder6497 behaves like Debian Distributions Finder6498 by codename6499 with existing codename6500 finds distributions by codename6501 with non-existing codename6502 finds nothing6503 by suite6504 with existing suite6505 finds distribution by suite6506 with non-existing suite6507 finds nothing6508 by codename_or_suite6509 with existing codename6510 finds distribution by codename6511 with existing suite6512 finds distribution by suite6513 with non-existing suite6514 finds nothing6515 behaves like Debian Distributions Finder6516 by codename6517 with existing codename6518 finds distributions by codename6519 with non-existing codename6520 finds nothing6521 by suite6522 with existing suite6523 finds distribution by suite6524 with non-existing suite6525 finds nothing6526 by codename_or_suite6527 with existing codename6528 finds distribution by codename6529 with existing suite6530 finds distribution by suite6531 with non-existing suite6532 finds nothing6533 with nil container6534 raises error6535 with unexpected container type6536 raises error6537ProjectFeaturesCompatibility6538 converts fields from 'true' to ProjectFeature::ENABLED6539 converts fields from 'false' to ProjectFeature::DISABLED6540 converts fields from true to ProjectFeature::ENABLED6541 converts fields from false to ProjectFeature::DISABLED6542 access levels6543 access_level: "disabled", expected_result: 06544 accepts access level6545 access_level: "private", expected_result: 106546 accepts access level6547 access_level: "enabled", expected_result: 206548 accepts access level6549 access_level: "public", expected_result: 306550 accepts access level6551Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern6552 #initialize6553 when the value is a valid regular expression6554 initializes the pattern6555 when the value is a valid regular expression with escaped slashes6556 initializes the pattern6557 when the value is not a valid regular expression6558 raises an error6559 .build6560 creates a new instance of the token6561 raises an error if pattern is invalid6562 .build_and_evaluate6563 when the value is a valid regular expression6564 returns the value as a Gitlab::UntrustedRegexp6565 when the value is a Gitlab::UntrustedRegexp6566 returns the value itself6567 when the value is not a valid regular expression6568 returns the value itself6569 .type6570 is a value lexeme6571 .scan6572 correctly identifies a pattern token6573 does not allow to use an empty pattern6574 support single flag6575 support multiple flags6576 ignores unsupported flags6577 is an eager scanner for regexp boundaries6578 does not match on escaped regexp boundaries6579 recognizes \ as an escape character for /6580 does not recognize \ as an escape character for $6581 #evaluate6582 returns a regular expression6583 raises error if evaluated regexp is not valid6584Gitlab::ImportExport::Group::TreeSaver6585 saves the group tree into a json object6586 saves the group successfully6587 fails to export a group6588 exported files6589 has one group per line6590 has a file per group6591 has a file for each group association6592 group attributes file6593 has a file for each group with its attributes6594 does not contain excluded attribute6595 does not contain excluded attribute6596 does not contain excluded attribute6597 does not contain excluded attribute6598 does not contain excluded attribute6599 does not contain excluded attribute6600MergeRequests::HandleAssigneesChangeWorker6601 behaves like an idempotent worker6602 is labeled as idempotent6603 performs multiple times sequentially without raising an exception6604 #perform6605 calls MergeRequests::HandleAssigneesChangeService#execute to handle the changes6606 when there are no changes6607 still calls MergeRequests::HandleAssigneesChangeService#execute6608 when the old assignees cannot be found6609 still calls MergeRequests::HandleAssigneesChangeService#execute6610 with a non-existing merge request6611 does nothing6612 with a non-existing user6613 does nothing6614Ci::CreatePipelineService6615 job:parallel6616 numeric6617 creates the pipeline6618 creates 3 jobs6619 matrix6620 creates the pipeline6621 creates 4 builds with the corresponding matrix variables6622 when a bridge is using parallel:matrix6623 creates the pipeline6624 creates 1 build and 4 bridges with the corresponding matrix variables6625ContainerRegistry::Event6626 #supported?6627 action: "delete", supported: true6628 is expected to eq true6629 action: "push", supported: true6630 is expected to eq true6631 action: "mount", supported: false6632 is expected to eq false6633 action: "pull", supported: false6634 is expected to eq false6635 #handle!6636 enqueues a project statistics update6637 clears the cache for the namespace container repositories size6638 with no target tag6639 behaves like event without project statistics update6640 does not queue a project statistics update6641 with an unsupported action6642 behaves like event without project statistics update6643 does not queue a project statistics update6644 with an invalid project repository path6645 behaves like event without project statistics update6646 does not queue a project statistics update6647 with no project repository path6648 behaves like event without project statistics update6649 does not queue a project statistics update6650 #track!6651 with a respository target6652 repository_path: "group/test/container", action: "push", tracking_action: "push_repository"6653 creates a tracking event6654 repository_path: "group/test/container", action: "delete", tracking_action: "delete_repository"6655 creates a tracking event6656 repository_path: "foo/bar", action: "push", tracking_action: "create_repository"6657 creates a tracking event6658 repository_path: "foo/bar", action: "delete", tracking_action: "delete_repository"6659 creates a tracking event6660 with a tag target6661 repository_path: "group/test/container", action: "push", tracking_action: "push_tag"6662 creates a tracking event6663 repository_path: "group/test/container", action: "delete", tracking_action: "delete_tag"6664 creates a tracking event6665 repository_path: "foo/bar", action: "push", tracking_action: "push_tag"6666 creates a tracking event6667 repository_path: "foo/bar", action: "delete", tracking_action: "delete_tag"6668 creates a tracking event6669Gitaly::Server6670 is expected to respond to #server_version6671 is expected to respond to #git_binary_version6672 is expected to respond to #up_to_date?6673 is expected to respond to #address6674 is expected to respond to #replication_factor6675 .all6676 includes all storages6677 readable?6678 when the storage is readable6679 returns true6680 when the storage is not readable6681 returns false6682 writeable?6683 when the storage is writeable6684 returns true6685 when the storage is not writeable6686 returns false6687 #filesystem_type6688 is expected to be present6689 request memoization6690 when requesting multiple properties6691 uses memoization for the info request6692 when examining disk statistics for a given server6693 #disk_available6694 is expected to be present6695 returns disk available for the storage of the instantiated server6696 #disk_used6697 is expected to be present6698 returns disk used for the storage of the instantiated server6699 #disk_stats6700 is expected to be present6701 returns the storage of the instantiated server6702 #expected_version?6703 expected_version: "1.1.1", server_version: "1.1.1", result: true6704 is expected to eq true6705 expected_version: "1.1.2", server_version: "1.1.1", result: false6706 is expected to eq false6707 expected_version: "1.73.0", server_version: "1.73.0-18-gf756ebe2", result: false6708 is expected to eq false6709 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-45-g594c3ea3", result: true6710 is expected to eq true6711 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-46-gabc123ff", result: false6712 is expected to eq false6713 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6", result: false6714 is expected to eq false6715 replication_factor6716 when examining for a given server6717 is expected to eq 26718WorkItemPolicy6719 read_work_item6720 when project is public6721 when user is not a member of the project6722 is expected to be allowed :read_work_item6723 when user is a member of the project6724 is expected to be allowed :read_work_item6725 when work_item is confidential6726 is expected not to be allowed :read_work_item6727 when project is private6728 when user is not a member of the project6729 is expected to be disallowed :read_work_item6730 when user is a member of the project6731 is expected to be allowed :read_work_item6732 update_work_item6733 when user is reporter6734 is expected to be allowed :update_work_item6735 when user is guest6736 is expected to be disallowed :update_work_item6737 when guest authored the work item6738 is expected to be allowed :update_work_item6739 delete_work_item6740 when user is a member of the project6741 when the user is not the author of the work item6742 is expected to be disallowed :delete_work_item6743 when guest authored the work item6744 is expected to be allowed :delete_work_item6745 when user is member of the project's group6746 when the user is not the author of the work item6747 is expected to be disallowed :delete_work_item6748 when user authored the work item6749 is expected to be allowed :delete_work_item6750 when user is not a member of the project6751 when the user authored the work item6752 is expected to be disallowed :delete_work_item6753 when the user is not the author of the work item6754 is expected to be disallowed :delete_work_item6755API::Entities::Project6756 .service_desk_address6757 when a user can admin issues6758 is present6759 when a user can not admin project6760 is empty6761 .shared_with_groups6762 when the current user does not have access to the group6763 is empty6764 when the current user has access to the group6765 contains information about the shared group6766Gitlab::HotlinkingDetector6767 .intercept_hotlinking?6768 hotlinked as media6769 return_value: false, accept_header: "*/*"6770 is expected to equal false6771 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"6772 is expected to equal false6773 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"6774 is expected to equal false6775 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"6776 is expected to equal false6777 return_value: false, accept_header: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"6778 is expected to equal false6779 return_value: false, accept_header: "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*"6780 is expected to equal false6781 return_value: false, accept_header: "text/html, application/xhtml+xml, image/jxr, */*"6782 is expected to equal false6783 return_value: false, accept_header: "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1"6784 is expected to equal false6785 return_value: true, accept_header: "image/webp,*/*"6786 is expected to equal true6787 return_value: true, accept_header: "image/png,image/*;q=0.8,*/*;q=0.5"6788 is expected to equal true6789 return_value: true, accept_header: "image/webp,image/apng,image/*,*/*;q=0.8"6790 is expected to equal true6791 return_value: true, accept_header: "image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5"6792 is expected to equal true6793 return_value: true, accept_header: "video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"6794 is expected to equal true6795 return_value: true, accept_header: "audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5"6796 is expected to equal true6797 return_value: true, accept_header: "text/css,*/*;q=0.1"6798 is expected to equal true6799 return_value: true, accept_header: "text/css"6800 is expected to equal true6801 return_value: true, accept_header: "text/css,*/*;q=0.1"6802 is expected to equal true6803 hotlinked as a script6804 return_value: false, fetch_mode: "navigate"6805 is expected to equal false6806 return_value: false, fetch_mode: "nested-navigate"6807 is expected to equal false6808 return_value: false, fetch_mode: "same-origin"6809 is expected to equal false6810 return_value: true, fetch_mode: "cors"6811 is expected to equal true6812 return_value: true, fetch_mode: "no-cors"6813 is expected to equal true6814 return_value: true, fetch_mode: "websocket"6815 is expected to equal true6816Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated6817 behaves like value stream analytics event6818 is expected to be a kind of String6819 is expected to be a kind of Symbol6820 is expected to include ApplicationRecord(abstract)6821 is expected to respond to #timestamp_projection6822 is expected to respond to #html_description6823 is expected to be a kind of Array6824 #apply_query_customization6825 expects an ActiveRecord::Relation object as argument and returns a modified version of it6826 #hash_code6827 returns a hash that uniquely identifies an event6828 does not differ when the same object is built with the same params6829 behaves like LEFT JOIN-able value stream analytics event6830 can use the event as LEFT JOIN6831 when looking at the record with data6832 contains the timestamp expression6833 when looking at the record without data6834 returns nil for the timestamp expression6835Ci::CreatePipelineService6836 when the variable is set6837 uses the evaluated variable6838 when the tag is composed by two variables6839 uses the evaluated variables6840 when the variable is not set6841 uses the variable as a regular string6842 when the tag uses group variables6843 uses the evaluated variables6844 when the tag has the same variable name defined for both group and project6845 uses the project variable instead of group due to variable precedence6846 with parallel:matrix config6847 uses the evaluated variables6848Gitlab::FogbugzImport::Importer6849 imports bugs6850 imports opened bugs6851 imports closed bugs6852 verify url6853 when host is localhost6854 does not allow localhost requests6855 when host is on local network6856 does not allow localhost requests6857 when host is ftp protocol6858 only accept http and https requests6859Ci::PendingBuilds::UpdateGroupWorker6860 #perform6861 when a group is not provided6862 does not call the service6863 when everything is ok6864 calls the service6865 is labeled as idempotent6866 performs multiple times sequentially without raising an exception6867 updates the pending builds6868Gitlab::DataBuilder::Deployment6869 .build6870 returns the object kind for a deployment6871 returns data for the given build6872 does not include the deployable URL when there is no deployable6873 when commit does not exist in the repository6874 returns nil for commit_url6875 returns nil for commit_title6876 when deployed_by is nil6877 returns nil for user6878 returns nil for user_url6879Gitlab::Ci::Status::Build::Play6880 #label6881 has a label that says it is a manual action6882 #status_tooltip6883 does not override status status_tooltip6884 #badge_tooltip6885 does not override status badge_tooltip6886 #has_action?6887 when user is allowed to update build6888 when user is allowed to trigger protected action6889 is expected to have action6890 when user can not push to the branch6891 is expected not to have action6892 when user is not allowed to update build6893 is expected not to have action6894 #action_path6895 is expected to include "697/play"6896 #action_icon6897 is expected to eq "play"6898 #action_title6899 is expected to eq "Play"6900 #action_button_title6901 is expected to eq "Trigger this manual action"6902 .matches?6903 when build is playable6904 when build stops an environment6905 does not match6906 when build does not stop an environment6907 is a correct match6908 when build is not playable6909 does not match6910HasEnvironmentScope6911 is expected to allow :environment_scope to be ‹"*"›6912 is expected to allow :environment_scope to be ‹"review/*"›6913 is expected not to allow :environment_scope to be ‹""›6914 is expected not to allow :environment_scope to be ‹"!!()()"›6915 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure6916 .on_environment6917 returns scoped objects6918 returns only the most relevant object if relevant_only is true6919 returns scopes ordered by lowest precedence first6920 #environment_scope=6921 when the new environment_scope is nil6922 strips leading and trailing whitespaces6923 when the new environment_scope has leadind and trailing whitespaces6924 strips leading and trailing whitespaces6925 .for_environment6926 when the environment is present6927 is expected to eq [#<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "zAXnOfV8dyGWx4OksUK1Nw==\n", e...cted: false, environment_scope: "production/*", masked: false, variable_type: "env_var", raw: true>]6928 when the environment is nil6929 is expected to eq [#<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "zAXnOfV8dyGWx4OksUK1Nw==\n", e...1237, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: true>]6930Packages::Helm::ProcessFileService6931 #execute6932 without a file6933 returns error6934 with existing package6935 reuses existing package6936 marked as pending_destruction6937 reuses the processing package6938 with a valid file6939 processes file6940 without Chart.yaml6941 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"6942 with Chart.yaml at root6943 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"6944 with an invalid YAML6945 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1"6946Ci::Artifactable6947 artifact properties are included6948 when enum is defined6949 is expected to define :file_format as an enum backed by an integer with values ‹{raw: 1, zip: 2, gzip: 3}›, suffix: true6950 when const is defined6951 is expected to be const defined :FILE_FORMAT_ADAPTERS6952 #each_blob6953 when file format is gzip6954 when gzip file contains one file6955 iterates blob once6956 when gzip file contains three files6957 iterates blob three times6958 when file format is raw6959 iterates blob once6960 when there are no adapters for the file format6961 raises an error6962 ActiveRecord scopes6963 .expired_before6964 returns expired artifacts6965 .expired6966 returns all expired artifacts6967 .with_files_stored_locally6968 returns artifacts stored locally6969 .with_files_stored_remotely6970 returns artifacts stored remotely6971 .project_id_in6972 when artifacts belongs to projects6973 returns artifacts belonging to projects6974environments routing6975 routing environment folders6976 when using JSON format6977 correctly matches environment name and JSON format6978 when using HTML format6979 correctly matches environment name and HTML format6980 when using implicit format6981 correctly matches environment name6982ProjectAuthorization6983 unique user, project authorizations6984 with duplicate user and project authorization6985 is expected to be invalid6986 after validation6987 contains duplicate error6988 with multiple access levels for the same user and project6989 is expected to be invalid6990 after validation6991 contains duplicate error6992 relations6993 is expected to belong to user required: false6994 is expected to belong to project required: false6995 validations6996 is expected to validate that :project cannot be empty/falsy6997 is expected to validate that :user cannot be empty/falsy6998 is expected to validate that :access_level cannot be empty/falsy6999 is expected to validate that :access_level is either ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›7000 .insert_all7001 skips duplicates and inserts the remaining rows without error7002 .insert_all_in_batches7003 inserts the rows in batches, as per the `per_batch` size7004Gitlab::HealthChecks::Redis::TraceChunksCheck7005 #metrics7006 Check is passing7007 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 1})7008 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})7009 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})7010 Check is misbehaving7011 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})7012 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})7013 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})7014 Check is timeouting7015 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})7016 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 1})7017 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})7018 #readiness7019 Check returns ok7020 is expected to have attributes {:success => true}7021 Check is misbehaving7022 is expected to have attributes {:message => "unexpected Trace_chunks check result: error!", :success => false}7023 Check is timeouting7024 is expected to have attributes {:message => "Trace_chunks check timed out", :success => false}7025 Check is raising an unhandled exception7026 is expected to have attributes {:message => "unexpected Trace_chunks check result: unexpected error", :success => false}7027ExternalServiceReactiveCachingWorker7028 behaves like reactive cacheable worker7029 #perform7030 when reactive cache worker class is found7031 calls #exclusively_update_reactive_cache!7032 when ReactiveCaching::ExceededReactiveCacheLimit is raised7033 avoids failing the job and tracks via Gitlab::ErrorTracking7034 when reactive cache worker class is not found7035 raises no error7036 when reactive cache worker class is invalid7037 raises no error7038 worker context7039 sets the related class on the job7040 sets the related class on the job when it was passed as a class7041ImportExportUploader7042 local store7043 #move_to_cache7044 returns false7045 with project export7046 returns true7047 #move_to_store7048 returns true7049 object_store is REMOTE7050 behaves like builds correct paths7051 #store_dir7052 behaves like matches the method pattern7053 is expected to match /import_export_upload\/import_file\//7054 #cache_dir7055 behaves like matches the method pattern7056 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7057 #work_dir7058 behaves like matches the method pattern7059 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7060 #upload_path7061 behaves like matches the method pattern7062 is expected to match /import_export_upload\/import_file\//7063 #relative_path7064 is relative (PENDING: Path not set, skipping.)7065 .absolute_path7066 behaves like matches the method pattern7067 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7068 .base_dir7069 behaves like matches the method pattern7070 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)7071 path traversal exploits7072 throws an exception7073 #move_to_cache7074 returns false7075 with project export7076 returns true7077 #move_to_store7078 returns false7079 with an export file directly uploaded7080 cleans up cached file7081 .workhorse_local_upload_path7082 returns path that includes uploads dir7083IncidentManagement::PagerDuty::CreateIncidentIssueService7084 #execute7085 when PagerDuty webhook setting is active7086 when issue can be created7087 creates a new issue7088 responds with success7089 the issue author is Alert bot7090 issue has a correct title7091 issue has a correct description7092 when the payload does not contain a title7093 does not create a GitLab issue7094 responds with error7095 when PagerDuty webhook setting is not active7096 does not create a GitLab issue7097 responds with forbidden7098Mattermost::Session7099 is expected to respond to #current_resource_owner7100 is expected to respond to #request7101 is expected to respond to #authorization7102 is expected to respond to #strategy7103 #with session7104 without oauth uri7105 makes a request to the oauth uri7106 returns nill on calling a non exisitng method on request7107 with oauth_uri7108 without token_uri7109 can not create a session7110 with token_uri7111 can set up a session7112 returns the value of the block7113 exclusive lease7114 tries to obtain a lease7115 returns a NoSessionError error without lease7116Taskable7117 .get_tasks7118 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)\">"]7119 #task_list_items7120 issuable_type: :issue7121 when description is present7122 gets tasks from markdown7123 when description is blank7124 returns empty array7125 does not try to get tasks from markdown7126 issuable_type: :merge_request7127 when description is present7128 gets tasks from markdown7129 when description is blank7130 returns empty array7131 does not try to get tasks from markdown7132Gitlab::Ci::Status::Build::Retried7133 #text7134 does not override status text7135 #icon7136 does not override status icon7137 #group7138 does not override status group7139 #favicon7140 does not override status label7141 #label7142 does not override status label7143 #badge_tooltip7144 returns status7145 #status_tooltip7146 with a failed build7147 does override status_tooltip7148 with another build7149 does override status_tooltip7150 .matches?7151 with a retried build7152 is expected to be truthy7153 with a build that has not been retried7154 is expected to be falsy7155Metrics::UsersStarredDashboards::CreateService7156 .execute7157 with anonymous user7158 behaves like prevented starred dashboard creation7159 returns error response7160 with reporter user7161 incorrect dashboard_path7162 behaves like prevented starred dashboard creation7163 returns error response7164 with valid dashboard path7165 creates starred dashboard and returns success response7166 Metrics::UsersStarredDashboard has validation errors7167 returns error response7168Ci::FreezePeriod7169 is expected to belong to project required: false7170 is expected to respond to #freeze_start7171 is expected to respond to #freeze_end7172 is expected to respond to #cron_timezone7173 behaves like cleanup by a loose foreign key7174 cleans up (delete or nullify) the model7175 cron validations7176 allows valid cron patterns7177 does not allow invalid cron patterns on freeze_start7178 does not allow invalid cron patterns on freeze_end7179 does not allow an invalid timezone7180 when cron contains trailing whitespaces7181 strips the attribute7182Gitlab::Ci::Parsers::Security::Sast7183 #parse!7184 when parsing valid reports7185 report_format: :sast, report_version: "14.0.0", scanner_length: 1, finding_length: 5, identifier_length: 6, file_path: "groovy/src/main/java/com/gitlab/security_products/tests/App.groovy", line: 477186 parses all identifiers and findings7187 generates expected location7188 generates expected metadata_version7189 report_format: :sast_deprecated, report_version: "1.2", scanner_length: 3, finding_length: 33, identifier_length: 17, file_path: "python/hardcoded/hardcoded-tmp.py", line: 17190 parses all identifiers and findings7191 generates expected location7192 generates expected metadata_version7193 when parsing an empty report7194 is expected to be empty7195Sidebars::Projects::Menus::PackagesRegistriesMenu7196 #render?7197 when menu does not have any menu item to show7198 returns false7199 when menu has menu items to show7200 returns true7201 #link7202 when Packages Registry is visible7203 menu link points to Packages Registry page7204 when Packages Registry is not visible7205 menu link points to Container Registry page7206 when Container Registry is not visible7207 does not display menu link7208 Menu items7209 Packages Registry7210 when user can read packages7211 when config package setting is disabled7212 the menu item is not added to list of menu items7213 when config package setting is enabled7214 the menu item is added to list of menu items7215 when user cannot read packages7216 the menu item is not added to list of menu items7217 Container Registry7218 when user can read container images7219 when config registry setting is disabled7220 the menu item is not added to list of menu items7221 when config registry setting is enabled7222 the menu item is added to list of menu items7223 when user cannot read container images7224 the menu item is not added to list of menu items7225 Infrastructure Registry7226 the menu item is added to list of menu items7227 when config package setting is disabled7228 does not add the menu item to the list7229 when user cannot read packages7230 does not add the menu item to the list7231 Harbor Registry7232 when config harbor registry setting is disabled7233 does not add the menu item to the list7234 when config harbor registry setting is enabled7235 the menu item is added to list of menu items7236Gitlab::Experiment::Rollout::Feature7237 #enabled?7238 is enabled when all criteria are met7239 isn't enabled if the feature definition doesn't exist7240 isn't enabled if we're not in dev or dotcom environments7241 isn't enabled if the feature flag state is :off7242 isn't enabled if the gitlab_experiment feature flag is false7243 #execute_assignment7244 uses the default value as specified in the yaml7245 returns an assigned name7246 #flipper_id7247 returns the expected flipper id if the experiment doesn't provide one7248 lets the experiment provide a flipper id so it can override the default7249RuboCop::Cop::Migration::BackgroundMigrationBaseClass7250 when the migration class inherits from BatchedMigrationJob7251 does not register any offenses7252 when the migration class inherits from the namespaced BatchedMigrationJob7253 does not register any offenses7254 when the migration class inherits from the top-level namespaced BatchedMigrationJob7255 does not register any offenses7256 when a nested class is used inside the job class7257 does not register any offenses7258 when the migration class inherits from another class7259 registers an offense7260 when the migration class does not inherit from anything7261 registers an offense7262SentryIssueFinder7263 #execute7264 when the user is not part of the project7265 is expected to be nil7266 when the user is a project developer7267 is expected to eq #<SentryIssue id: 14, issue_id: 272, sentry_issue_identifier: 10000013>7268 when identifier is incorrect7269 is expected to be nil7270 when accessing another projects identifier7271 is expected to be nil7272Gitlab::Git::Push7273 #branch_name7274 when it is a branch push7275 returns branch name7276 when it is a tag push7277 returns nil7278 #branch_push?7279 when pushing a branch ref7280 is expected to be branch push7281 when it is a tag push7282 is expected not to be branch push7283 #branch_updated?7284 when it is a branch push with correct old and new revisions7285 is expected to be branch updated7286 when it is not a branch push7287 is expected not to be branch updated7288 when old revision is blank7289 is expected not to be branch updated7290 when it is not a branch push7291 is expected not to be branch updated7292 when oldrev is nil7293 is expected not to be branch updated7294 #force_push?7295 when old revision is an ancestor of the new revision7296 is expected not to be force push7297 when old revision is not an ancestor of the new revision7298 is expected to be force push7299 when called mulitiple times7300 does not make make multiple calls to the force push check7301 #branch_added?7302 when old revision is defined7303 is expected not to be branch added7304 when old revision is not defined7305 is expected to be branch added7306 #branch_removed?7307 when new revision is defined7308 is expected not to be branch removed7309 when new revision is not defined7310 is expected to be branch removed7311 #modified_paths7312 when a push is a branch update7313 returns modified paths7314 when a push is not a branch update7315 raises an error7316 #oldrev7317 when a valid oldrev is provided7318 returns oldrev7319 when a nil valud is provided7320 returns blank SHA7321 #newrev7322 when valid newrev is provided7323 returns newrev7324 when a nil valud is provided7325 returns blank SHA7326BitbucketServer::Representation::Comment7327 #id7328 is expected to eq 97329 #author_username7330 returns username7331 when username is absent7332 returns slug7333 when slug and username are absent7334 returns displayName7335 #author_email7336 is expected to eq "test.user@example.com"7337 #note7338 is expected to eq "is this a new line?"7339 #created_at7340 is expected to be a kind of Time7341 #updated_at7342 is expected to be a kind of Time7343 #comments7344 is expected to eq 47345 is expected to all be a kind of BitbucketServer::Representation::Comment7346 is expected to contain exactly "Hello world", "Ok", "hello", and "hi"7347 comments have the right parent7348Gitlab::Diff::Formatters::ImageFormatter7349 behaves like position formatter7350 #key7351 is expected to eq [123, 456, 789, "8b5f87754bd090b9e0837feef68f1737103de62b", "5b972068ce0905d88056d0c4b788554d34949d27", 1, 2]7352 #complete?7353 when there are missing key attributes7354 is expected to be truthy7355 when old_line and new_line are nil7356 is expected to be falsy7357 #to_h7358 is expected to eq {:base_sha=>123, :head_sha=>789, :height=>100, :new_path=>"new_image.png", :old_path=>"old_image.png", :position_type=>"image", :start_sha=>456, :width=>100, :x=>1, :y=>2}7359 #==7360 is expected to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c4258de90 @x=1, @y=2, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7361 #==7362 is expected to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c43ee5a78 @x=1, @y=2, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7363 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c382f04d0 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7364 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c0a98fcd8 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7365 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c0a2034d8 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7366 is expected not to eq #<Gitlab::Diff::Formatters::ImageFormatter:0x00007f1c09b69118 @x=1, @y=9, @width=100, @height=100, @old_path="old_image.png", @new_path="new_image.png", @base_sha=123, @start_sha=456, @head_sha=789>7367Gitlab::HookData::IssueBuilder7368 #build7369 includes safe attribute7370 includes additional attrs7371 when the issue has an image in the description7372 sets the image to use an absolute URL7373 for incident7374 includes additional attr7375Integrations::FieldEntity7376 #as_json7377 with Jira integration7378 with field with type text7379 exposes correct attributes7380 with field with type password7381 exposes correct attributes but hides password7382 with EmailsOnPush integration7383 with field with type checkbox7384 exposes correct attributes and casts value to Boolean7385 with field with type select7386 exposes correct attributes7387Packages::Debian::GenerateDistributionKeyService7388 returns an Hash7389Sidebars::Groups::Menus::GroupInformationMenu7390 #title7391 when group is a root group7392 is expected to eq "Group information"7393 when group is a child group7394 is expected to eq "Subgroup information"7395 #sprite_icon7396 when group is a root group7397 is expected to eq "group"7398 when group is a child group7399 is expected to eq "subgroup"7400 Menu Items7401 Activity7402 is expected not to be nil7403 behaves like menu access rights7404 is expected not to be nil7405 when the user does not have access7406 is expected to be nil7407 Labels7408 behaves like menu access rights7409 is expected not to be nil7410 when the user does not have access7411 is expected to be nil7412 Members7413 behaves like menu access rights7414 is expected not to be nil7415 when the user does not have access7416 is expected to be nil7417Packages::Composer::ComposerJsonService7418 #execute7419 with an existing file7420 with a valid file7421 returns the parsed json7422 with an invalid file7423 raises an error7424 without the composer.json file7425 raises an error7426Clusters::Cleanup::ProjectNamespaceWorker7427 #perform7428 when cluster.cleanup_status is cleanup_removing_project_namespaces7429 calls Clusters::Cleanup::ProjectNamespaceService7430 behaves like cluster cleanup worker base specs7431 transitions to errored if sidekiq retries exhausted7432 when exceeded the execution limit7433 logs the error7434 when cluster.cleanup_status is not cleanup_removing_project_namespaces7435 does not call Clusters::Cleanup::ProjectNamespaceService7436Gitlab::Import::StuckProjectImportJobsWorker7437 with scheduled import_status7438 behaves like stuck import job detection7439 when the job has completed7440 when the import status was already updated7441 does not mark the import as failed7442 when the import status was not updated7443 marks the import as failed7444 when the job is still in Sidekiq7445 does not mark the import as failed7446 with started import_status7447 behaves like stuck import job detection7448 when the job has completed7449 when the import status was already updated7450 does not mark the import as failed7451 when the import status was not updated7452 marks the import as failed7453 when the job is still in Sidekiq7454 does not mark the import as failed7455Resolvers::Users::ParticipantsResolver7456 #resolve7457 when current user is not set7458 returns only publicly visible participants for this user7459 when current user does not have enough permissions7460 returns only publicly visible participants for this user7461 when current user has access to confidential notes7462 returns all participants for this user7463 N+1 queries7464 does not execute N+1 for project relation7465 does not execute N+1 for system note metadata relation7466SnippetInputActionCollection7467 is expected to delegate #empty? to the #actions object7468 is expected to delegate #any? to the #actions object7469 is expected to delegate #[] to the #actions object7470 #to_commit_actions7471 translates all actions to commit actions7472 #valid?7473 returns true7474 when any of the actions is invalid7475 returns false7476 when allowed_actions param is passed7477 builds SnippetInputAction with that param7478Resolvers::ReleasesResolver7479 #resolve7480 when the user does not have access to the project7481 returns an empty array7482 when the user has full access to the project's releases7483 returns all releases associated to the project7484 sorting behavior7485 with sort: :released_at_desc7486 returns the releases ordered by released_at in descending order7487 with sort: :released_at_asc7488 returns the releases ordered by released_at in ascending order7489 with sort: :created_desc7490 returns the releases ordered by created_at in descending order7491 with sort: :created_asc7492 returns the releases ordered by created_at in ascending order7493Mutations::Security::CiConfiguration::ConfigureSecretDetection7494 is expected to require graphql authorizations :push_code7495 #resolve7496 generates an error if the resource is not accessible to the user7497 when user does not have enough permissions7498 generates an error7499 when user is a maintainer of a different project7500 generates an error7501 when the user does not have permission to create a new branch7502 returns an array of errors7503 when the user can create a merge request7504 when service successfully generates a path to create a new merge request7505 returns a success path7506 when service can not generate any path to create a new merge request7507 returns an array of errors7508Gitlab::Ci::Tags::BulkInsert7509 gem version7510 is expected to eq "9.0.0"7511 #insert!7512 without tags7513 is expected to be falsey7514 with tags7515 persists tags7516 when batching inserts for tags7517 inserts tags in batches7518 when batching inserts for taggings7519 inserts taggings in batches7520 with tags for only one job7521 persists tags7522ErrorTracking::CollectErrorService7523 #execute7524 creates Error and creates ErrorEvent7525 updates Error and created ErrorEvent on second hit7526 has correct values set7527 python sdk event7528 creates a valid event7529 with unusual payload7530 when transaction is missing7531 builds actor from stacktrace7532 when transaction is an empty string7533 builds actor from stacktrace7534 when timestamp is numeric7535 parses timestamp7536 go payload7537 has correct values set7538 with two exceptions7539 reports using second exception7540Tooling::ParallelRSpecRunner7541 #run7542 given filter tests7543 reads filter tests file for list of tests7544 runs rspec filter tests that are allocated for this node7545 when there is no intersect between allocated tests and filtered tests7546 does not run rspec7547 with empty filter tests file7548 behaves like runs node tests7549 runs rspec with tests allocated for this node7550 without filter_tests_file option7551 behaves like runs node tests7552 runs rspec with tests allocated for this node7553 if filter_tests_file does not exist7554 behaves like runs node tests7555 runs rspec with tests allocated for this node7556 without rspec args7557 runs rspec with without extra arguments7558IncidentManagement::AddSeveritySystemNoteWorker7559 #perform7560 when incident and user exist7561 creates a system note7562 when incident does not exist7563 behaves like does not add a system note7564 does not change incident notes count7565 when incident_id is nil7566 behaves like does not add a system note7567 does not change incident notes count7568 when issue is not an incident7569 behaves like does not add a system note7570 does not change incident notes count7571 when user does not exist7572 behaves like does not add a system note7573 does not change incident notes count7574 when user_id is nil7575 behaves like does not add a system note7576 does not change incident notes count7577Integrations::Pushover7578 Validations7579 when integration is active7580 is expected to validate that :api_key cannot be empty/falsy7581 is expected to validate that :user_key cannot be empty/falsy7582 is expected to validate that :priority cannot be empty/falsy7583 when integration is inactive7584 is expected not to validate that :api_key cannot be empty/falsy7585 is expected not to validate that :user_key cannot be empty/falsy7586 is expected not to validate that :priority cannot be empty/falsy7587 Execute7588 calls Pushover API7589Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog7590 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7591 associations7592 is expected to belong to batched_job required: false7593 validations7594 is expected to validate that :previous_status cannot be empty/falsy7595 is expected to validate that :next_status cannot be empty/falsy7596 is expected to validate that :batched_job cannot be empty/falsy7597 is expected to validate that the length of :exception_class is at most 1007598 is expected to validate that the length of :exception_message is at most 10007599 is expected to define :previous_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true7600 is expected to define :next_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true7601TokenAuthenticatableStrategies::EncryptionHelper7602 .encrypt_token7603 when dynamic_nonce feature flag is switched on7604 adds nonce identifier on the beginning7605 adds nonce at the end7606 encrypts token7607 when dynamic_nonce feature flag is switched off7608 does not add nonce identifier on the beginning7609 does not add nonce in the end7610 encrypts token with static iv7611 .decrypt_token7612 with feature flag switched off7613 decrypts token with static iv7614 decrypts token if feature flag changed after encryption7615 decrypts token with dynamic iv7616 with feature flag switched on7617 decrypts token with dynamic iv7618 decrypts token if feature flag changed after encryption7619Gitlab::Verify::LfsObjects7620 behaves like Gitlab::Verify::BatchVerifier subclass7621 batching7622 iterates through objects in batches7623 allows the starting ID to be specified7624 allows the finishing ID to be specified7625 #run_batches7626 passes LFS objects with the correct file7627 fails LFS objects with a missing file7628 fails LFS objects with a mismatched oid7629 with remote files7630 passes LFS objects in object storage that exist7631 fails LFS objects in object storage that do not exist7632Gitlab::Ci::Trace::Backoff7633 keeps the MAX_ATTEMPTS limit in sync7634 keeps the Redis TTL limit in sync7635 all retries are happening under the 7 days limit7636 #value7637 archival_attempts: 1, result: 9.67638 is expected to eq 9.6 hours7639 archival_attempts: 2, result: 19.27640 is expected to eq 19.2 hours7641 archival_attempts: 3, result: 28.87642 is expected to eq 28.8 hours7643 archival_attempts: 4, result: 38.47644 is expected to eq 38.4 hours7645 archival_attempts: 5, result: 48.07646 is expected to eq 48.0 hours7647 #value_with_jitter7648 archival_attempts: 1, min_value: 9.6, max_value: 13.67649 is expected to be in 9.6 hours..13.6 hours7650 archival_attempts: 2, min_value: 19.2, max_value: 23.27651 is expected to be in 19.2 hours..23.2 hours7652 archival_attempts: 3, min_value: 28.8, max_value: 32.87653 is expected to be in 28.8 hours..32.8 hours7654 archival_attempts: 4, min_value: 38.4, max_value: 42.47655 is expected to be in 38.4 hours..42.4 hours7656 archival_attempts: 5, min_value: 48.0, max_value: 52.07657 is expected to be in 48.0 hours..52.0 hours7658Types::InvitationInterface7659 exposes the expected fields7660 .resolve_type7661 for project member7662 is expected to equal Types::ProjectInvitationType7663 for group member7664 is expected to equal Types::GroupInvitationType7665 for an unknown type7666 raises an error7667Gitlab::Usage::ServicePing::LegacyMetricTimingDecorator7668 metric_value: 1, metric_class: Integer7669 exposes a duration with the correct value7670 imitates wrapped class7671 metric_value: "value", metric_class: String7672 exposes a duration with the correct value7673 imitates wrapped class7674 metric_value: true, metric_class: TrueClass7675 exposes a duration with the correct value7676 imitates wrapped class7677 metric_value: false, metric_class: FalseClass7678 exposes a duration with the correct value7679 imitates wrapped class7680 metric_value: nil, metric_class: NilClass7681 exposes a duration with the correct value7682 imitates wrapped class7683SpamLog7684 associations7685 is expected to belong to user required: false7686 validations7687 is expected to validate that :user cannot be empty/falsy7688 #remove_user7689 blocks the user7690 when admin mode is enabled7691 removes the user7692 when admin mode is disabled7693 does not allow to remove the user7694 .verify_recaptcha!7695 the record cannot be found7696 updates nothing7697 does not error despite not finding a record7698 the record exists7699 updates recaptcha_verified7700ClusterConfigureIstioWorker7701 #perform7702 when provider type is gcp7703 behaves like configure istio service7704 configures istio7705 when provider type is aws7706 behaves like configure istio service7707 configures istio7708 when provider type is user7709 behaves like configure istio service7710 configures istio7711 when cluster does not exist7712 does not provision a cluster7713Gitlab::Analytics::CycleAnalytics::Average7714 #seconds7715 when no results7716 is expected to eq nil7717 returns the average duration in seconds7718 is expected to be within 0.5 of 648000.07719 #days7720 when no results7721 is expected to eq nil7722 returns the average duration in days7723 is expected to be within 0.01 of 7.57724MergeRequest::MetricsFinder7725 when target project is missing7726 is expected to be empty7727 when the user is not part of the project7728 is expected to be empty7729 when user is part of the project7730 returns merge request records7731 excludes not merged records7732 when only merged_before is given7733 is expected to eq [#<MergeRequest::Metrics id: 364, merge_request_id: 146, latest_build_started_at: nil, latest_build_f...d_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 1324>]7734 when only merged_after is given7735 is expected to eq [#<MergeRequest::Metrics id: 364, merge_request_id: 146, latest_build_started_at: nil, latest_build_f...d_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 1324>]7736 when no records matching the date range7737 is expected to be empty7738Gitlab::FormBuilders::GitlabUiFormBuilder7739 #gitlab_ui_checkbox_component7740 when not using slots7741 without optional arguments7742 renders correct html7743 with optional arguments7744 renders help text7745 with checkbox_options: { multiple: true }7746 renders labels with correct for attributes7747 when using slots7748 renders correct html7749 #gitlab_ui_radio_component7750 when not using slots7751 without optional arguments7752 renders correct html7753 with optional arguments7754 renders help text7755 when using slots7756 renders correct html7757Gitlab::Ci::Reports::Security::Locations::Sast7758 behaves like vulnerability location7759 #initialize7760 when all params are given7761 initializes an instance7762 param: :file_path7763 when param file_path is missing7764 raises an error7765 param: :start_line7766 when param start_line is missing7767 raises an error7768 #fingerprint7769 generates expected fingerprint7770 #fingerprint_path7771 generates expected fingerprint7772 #==7773 returns true when fingerprints are equal7774 returns false when fingerprints are different7775AlertManagement::HttpIntegrationPolicy7776 rules7777 is expected to be disallowed :admin_operations7778 when maintainer7779 is expected to be allowed :admin_operations7780ListUserPreference7781 relationships7782 is expected to belong to list required: false7783 is expected to belong to user required: false7784 is expected to validate that :user_id is case-sensitively unique within the scope of :list_id, producing a custom validation error on failure7785Uploads::Local7786 model with uploads7787 #keys7788 returns keys7789 #delete_keys7790 deletes multiple data7791Metrics::Dashboard::DefaultEmbedService7792 .valid_params?7793 is expected to be truthy7794 missing embedded7795 is expected to be falsey7796 not embedded7797 is expected to be falsey7798 #get_dashboard7799 caches the unprocessed dashboard for subsequent calls7800 behaves like valid embedded dashboard service response7801 behaves like valid dashboard service response for schema7802 returns a json representation of the dashboard7803 behaves like raises error for users with insufficient permissions7804 when the user does not have sufficient access7805 behaves like misconfigured dashboard service response7806 returns an appropriate message and status code7807 when the user is anonymous7808 behaves like misconfigured dashboard service response7809 returns an appropriate message and status code7810 when called with a non-system dashboard7811 behaves like valid embedded dashboard service response7812 behaves like valid dashboard service response for schema7813 returns a json representation of the dashboard7814Gitlab::CryptoHelper7815 .sha2567816 generates SHA256 digest Base46 encoded7817 .aes256_gcm_encrypt7818 is Base64 encoded string without new line character7819 encrypts using static iv7820 with provided iv7821 encrypts using provided iv7822 .aes256_gcm_decrypt7823 when token was encrypted using static nonce7824 correctly decrypts encrypted string7825 decrypts a value when it ends with a new line character7826 when token was encrypted using random nonce7827 correctly decrypts encrypted string7828Resolvers::Users::SnippetsResolver7829 #resolve7830 calls SnippetsFinder7831 when using no filter7832 returns expected authored snippets7833 when using filters7834 returns the snippets by visibility7835 returns the snippets by type7836 returns the snippets by single gid7837 returns the snippets by array of gid7838 when user profile is private7839 does not return snippets for that user7840Gitlab::ImportExport::WikiRepoSaver7841 bundle a wiki Git repo7842 bundles the repo successfully7843 when the repo is empty7844 bundles the repo successfully7845Users::KeysCountService7846 behaves like a counter caching service7847 #count7848 caches the count7849 #refresh_cache7850 refreshes the cache7851 #delete_cache7852 removes the cache7853 #uncached_count7854 does not cache the count7855 #count7856 returns the number of SSH keys as an Integer7857 #uncached_count7858 returns the number of SSH keys7859 #cache_key7860 returns the cache key7861JobArtifactReportEntity7862 #as_json7863 exposes file_type7864 exposes file_format7865 exposes size7866 exposes download path7867Ci::DownloadableArtifactEntity7868 #as_json7869 contains required fields7870 when user cannot read job artifact7871 returns only artifacts readable by user7872admin/application_settings/ci_cd.html.haml7873 CI CD Runner Registration7874 when feature flag is enabled7875 has the setting section7876 renders the correct setting section content7877 when feature flag is disabled7878 does not have the setting section7879 does not render the correct setting section content7880Gitlab::Git::Conflict::File7881 #lines7882 when the content contains non-UTF-8 characters7883 raises UnsupportedEncoding7884 when the content can be converted to UTF-87885 sets lines to the lines7886 sets the type to text7887 #content7888 when the content contains non-UTF-8 characters7889 raises UnsupportedEncoding7890 when the content can be converted to UTF-87891 returns a valid UTF-8 string7892 #path7893 returns our_path7894 when our_path is not present7895 returns their_path7896ForkNetworkMember7897 validations7898 is expected to validate that :project cannot be empty/falsy7899 is expected to validate that :fork_network cannot be empty/falsy7900 destroying a ForkNetworkMember7901 removes the fork network if it was the last member7902 does not destroy the fork network if there are members left7903ChatNames::AuthorizeUserService7904 #execute7905 when all parameters are valid7906 produces a valid HTTP URL7907 requests a new token7908 when there are missing parameters7909 does not produce a URL7910 does not request a new token7911Gitlab::Pagination::OffsetHeaderBuilder7912 pagination7913 returns correct result for the first page7914 returns correct result for the second page7915 pagination heders7916 adds next page header7917 adds only the specified params to the lnk7918Gitlab::SidekiqMiddleware::SizeLimiter::Client7919 #call7920 when the validator rejects the job7921 raises an exception when scheduling job with #perform_at7922 raises an exception when scheduling job with #perform_async7923 raises an exception when scheduling job with #perform_in7924 when the validator validates the job suscessfully7925 raises an exception when scheduling job with #perform_at7926 raises an exception when scheduling job with #perform_async7927 raises an exception when scheduling job with #perform_in7928DeployKeys::DeployKeyEntity7929 returns deploy keys with projects a user can read7930 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2022-06-28 10:59:48.198000853 +0000, :deploy...", :id=>24, :title=>"My title 516", :updated_at=>2022-06-28 10:59:48.198000853 +0000, :user_id=>nil}7931Gitlab::NoteableMetadata7932 returns an empty Hash if an empty collection is provided7933 raises an error when given a collection with no limit7934 snippets7935 aggregates stats on snippets7936Types::UntrustedRegexp7937 is expected to eq "UntrustedRegexp"7938 is expected to eq "A regexp containing patterns sourced from user input"7939 .coerce_input7940 input: ".*", expected_result: ".*"7941 with input .*7942 is expected to eq ".*"7943 input: "(.*)", expected_result: "(.*)"7944 with input (.*)7945 is expected to eq "(.*)"7946 input: "[test*]+", expected_result: "[test*]+"7947 with input [test*]+7948 is expected to eq "[test*]+"7949 input: "*v1", expected_result: :raise_error7950 with input *v17951 raises a coercion error7952 input: "[test*", expected_result: :raise_error7953 with input [test*7954 raises a coercion error7955 input: "test*+", expected_result: :raise_error7956 with input test*+7957 raises a coercion error7958 .coerce_result7959 input: "1", expected_result: "1"7960 with input 17961 is expected to eq "1"7962 input: 1, expected_result: "1"7963 with input 17964 is expected to eq "1"7965 input: true, expected_result: "true"7966 with input true7967 is expected to eq "true"7968DesignManagement::MoveDesignsService7969 #execute7970 the user cannot move designs7971 raises cannot_move7972 the designs are not distinct7973 raises not_distinct7974 the designs are not on the same issue7975 raises not_same_issue7976 no focus is passed7977 raises no_focus7978 no neighbours are passed7979 raises no_neighbors7980 moving a design with neighbours7981 repositions existing designs and correctly places the given design7982ContainerRegistry::Registry7983 is expected to respond to #client7984 is expected to respond to #uri7985 is expected to respond to #path7986 is expected not to be nil7987 #path7988 path from URL7989 is expected to eq "example.com"7990 custom path7991 is expected to eq "registry.example.com"7992 #gitlab_api_client7993 returns a GitLabApiClient with an import token7994Gitlab::GithubImport::Importer::NotesImporter7995 #parallel?7996 returns true when running in parallel mode7997 returns false when running in sequential mode7998 #execute7999 when running in parallel mode8000 imports notes in parallel8001 when running in sequential mode8002 imports notes in sequence8003 #sequential_import8004 imports each note in sequence8005 #parallel_import8006 imports each note in parallel8007 #id_for_already_imported_cache8008 returns the ID of the given note8009 #collection_options8010 returns an empty Hash8011RuboCop::MigrationHelpers8012 #in_migration?8013 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8014 is expected to eq true8015 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8016 is expected to eq true8017 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8018 is expected to eq true8019 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8020 is expected to eq true8021 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8022 is expected to eq false8023 #in_post_deployment_migration?8024 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8025 is expected to eq false8026 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8027 is expected to eq true8028 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8029 is expected to eq false8030 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8031 is expected to eq true8032 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8033 is expected to eq false8034 #version8035 is expected to eq 202002101844208036MoveToProjectEntity8037 #as_json8038 includes the project ID8039 includes the human-readable full path8040 includes the full path8041layouts/_search8042 when doing project level search8043 behaves like search context scope is set8044 when rendering8045 sets the placeholder8046 when on issues8047 sets scope to issues8048 when on merge requests8049 sets scope to merge_requests8050 when doing group level search8051 behaves like search context scope is set8052 when rendering8053 sets the placeholder8054 when on issues8055 sets scope to issues8056 when on merge requests8057 sets scope to merge_requests8058Preloaders::GroupPolicyPreloader8059 avoids N+1 queries when authorizing a list of groups8060InstanceConfigurationHelper8061 #instance_configuration_cell_html8062 boolean are valid values to display8063 if not block is passed8064 returns the parameter if present8065 returns "-" if the parameter is blank8066 if a block is passed8067 returns the result of the block8068 returns "-" if the parameter is blank8069 #instance_configuration_human_size_cell8070 returns "-" if the parameter is blank8071 accepts the value in bytes8072 returns the value in human size readable format8073 #instance_configuration_disabled_cell_html8074 returns "-" if parameter is 08075 return parameter if not 08076Packages::Composer::VersionParserService8077 #execute8078 tagname: nil, branchname: "master", expected_version: "dev-master"8079 is expected to eq "dev-master"8080 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"8081 is expected to eq "dev-my-feature"8082 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"8083 is expected to eq "dev-12-feature"8084 tagname: nil, branchname: "v1", expected_version: "1.x-dev"8085 is expected to eq "1.x-dev"8086 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"8087 is expected to eq "1.x-dev"8088 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"8089 is expected to eq "1.7.x-dev"8090 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"8091 is expected to eq "1.7.x-dev"8092 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"8093 is expected to eq "1.7.x-dev"8094 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"8095 is expected to eq "1.0.0"8096 tagname: "v1.0", branchname: nil, expected_version: "1.0"8097 is expected to eq "1.0"8098 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8099 is expected to eq "1.0.1+meta"8100 tagname: "1.0", branchname: nil, expected_version: "1.0"8101 is expected to eq "1.0"8102 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"8103 is expected to eq "1.0.2"8104 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"8105 is expected to eq "1.0.2-beta2"8106 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"8107 is expected to eq "1.0.1+meta"8108Gitlab::Ci::Variables::Helpers8109 .merge_variables8110 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8111 when new variables is a hash8112 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8113 when new variables is a hash with symbol keys8114 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8115 when new variables is nil8116 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value2"}]8117 .transform_to_yaml_variables8118 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value2"}]8119 when variables is nil8120 is expected to eq []8121 .transform_from_yaml_variables8122 is expected to eq {"key1"=>"value1", "key2"=>"value2"}8123 when variables is nil8124 is expected to eq {}8125 when variables is a hash8126 is expected to eq {"key1"=>"value1", "key2"=>"value2"}8127 .inherit_yaml_variables8128 is expected to eq [{:key=>"key1", :public=>true, :value=>"value1"}, {:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8129 when inheritance is false8130 is expected to eq [{:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8131 when inheritance is array8132 is expected to eq [{:key=>"key2", :public=>true, :value=>"value22"}, {:key=>"key3", :public=>true, :value=>"value3"}]8133Gitlab::Monitor::DemoProjects8134 #primary_keys8135 fetches primary_keys when on gitlab.com8136 fetches primary_keys when on staging8137 fetches all keys when in the dev or test env8138 falls back on empty array8139Gitlab::PhabricatorImport::Issues::Importer8140 #execute8141 imports each task in the response8142 stubbed task import8143 schedules the next batch if there is one8144 does not reschedule when there is no next page8145Gitlab::Git::Blame8146 blaming a file8147 has the right number of lines8148 blaming a range8149 only returns the range8150 ISO-8859 encoding8151 converts to UTF-88152 unknown encoding8153 converts to UTF-88154 renamed file8155 includes the previous path8156BulkImports::Groups::Transformers::MemberAttributesTransformer8157 returns nil when receives no data8158 returns nil when no user is found8159 when the user is not confirmed8160 returns nil even when the primary email match8161 returns nil even when a secondary email match8162 when the user is confirmed8163 finds the user by the primary email8164 finds the user by the secondary email8165 format access level8166 ignores record if no access level is given8167 ignores record if is not a valid access level8168 source user id caching8169 when user gid is present8170 caches source user id8171 when user gid is missing8172 does not use caching8173Gitlab::Metrics::Delta8174 #compared_with8175 returns the delta as a Numeric8176 bases the delta on a previously used value8177GoogleCloud::CreateServiceAccountsService8178 #execute8179 creates unprotected vars8180 creates protected vars8181Gitlab::AppTextLogger8182 logs a hash as string8183 logs a string unchanged8184 logs time in UTC with ISO8601.3 standard8185Packages::Nuget::PackagesVersionsPresenter8186 #versions8187 is expected to contain exactly "1.0.28", "1.0.29", "1.0.30", "1.0.31", and "1.0.32"8188Gitlab::Diff::StatsCache8189 VERSION is set8190 #read8191 returns the expected stats8192 #write_if_empty8193 when the cache already exists8194 does not write the stats8195 when the cache does not exist8196 writes the stats8197 when given non utf-8 characters8198 writes the stats8199 when given empty stats8200 does not write the stats8201 #clear8202 clears cache8203 with multiple cache versions8204 does not read from a stale cache8205ErrorTracking::Collector::SentryRequestParser8206 .parse8207 with empty body content8208 fails with exception8209 with plain text sentry request8210 behaves like valid parser8211 returns a valid hash8212Gitlab::Database::PgClass8213 #cardinality_estimate8214 when no information is available8215 returns nil for the estimate8216 with reltuples available8217 returns the reltuples for the estimate8218 .for_table8219 returns PgClass for this table8220 matches the relname8221Mailer retries8222 sets retries for mailers to 38223Gitlab::ConfigChecker::ExternalDatabaseChecker8224 #check8225 when database meets minimum supported version8226 is expected to be empty8227 when database does not meet minimum supported version8228 reports deprecated database notice8229Gitlab::Ci::Status::WaitingForResource8230 #text8231 is expected to eq "waiting"8232 #label8233 is expected to eq "waiting for resource"8234 #icon8235 is expected to eq "status_pending"8236 #favicon8237 is expected to eq "favicon_pending"8238 #group8239 is expected to eq "waiting-for-resource"8240 #details_path8241 is expected to be nil8242Gitlab::Kubernetes::ServiceAccount8243 is expected to eq "a_service_account"8244 is expected to eq "a_namespace"8245 #generate8246 builds a Kubeclient Resource8247Gitlab::Auth::Result8248 when actor is User8249 returns auth_user8250 does not return deploy token8251 when actor is Deploy token8252 returns deploy token8253 does not return auth_user8254 #authentication_abilities_include?8255 when authentication abilities are empty8256 returns false8257 when authentication abilities are not empty8258 returns false when ability is not allowed8259 returns true when ability is allowed8260 #can_perform_action_on_project?8261 returns if actor can do perform given action on given project8262 returns if actor cannot do perform given action on given project8263 #can?8264 returns if actor can do perform given action on given project8265 returns if actor cannot do perform given action on given project8266Gitlab::AlertManagement::AlertStatusCounts8267 #execute8268 for an unauthorized user8269 returns zero for all statuses8270 for an authorized user8271 returns the correct counts for each status8272 when filtering params are included8273 returns the correct counts for each status8274 when search param is included8275 returns the correct countss8276ArrayMembersValidator8277 children: [#<#<Class:0x00007f1c29e62908>:0x00007f1c29e61c38>], is_valid: true8278 only accepts valid children nodes8279 children: [#<#<Class:0x00007f1c29e61a30>:0x00007f1c29e619e0>], is_valid: false8280 only accepts valid children nodes8281 children: [#<#<Class:0x00007f1c29e62908>:0x00007f1c29e618a0>, #<#<Class:0x00007f1c29e61878>:0x00007f1c29e61828>], is_valid: false8282 only accepts valid children nodes8283 children: [], is_valid: false8284 only accepts valid children nodes8285 children: #<#<Class:0x00007f1c29e62908>:0x00007f1c29e615a8>, is_valid: false8286 only accepts valid children nodes8287 children: [#<#<Class:0x00007f1c29e61350>:0x00007f1c29e61300>], is_valid: false8288 only accepts valid children nodes8289 validation message8290 with default object name8291 uses attribute name8292 with custom object name8293 uses that name8294Gitlab::ServiceDesk8295 enabled?8296 is expected to be truthy8297 when service desk is not supported8298 is expected to be falsy8299 when service desk is disabled for project8300 is expected to be falsy8301 supported?8302 is expected to be truthy8303 when incoming emails are disabled8304 is expected to be falsy8305 when email key is not supported8306 is expected to be falsy8307Gitlab::GitlabImport::ProjectCreator8308 creates project8309API::Ci::Helpers::Runner8310 #get_runner_details_from_request8311 when no runner info is present8312 returns the runner IP8313 when runner info is present8314 extracts the runner details8315 #log_artifact_size8316 behaves like storing arguments in the application context8317 places the expected params in the application context8318 behaves like not executing any extra queries for the application context8319 does not execute more queries than without adding anything to the application context8320Security::CiConfiguration::SastIacBuildAction8321 with existing .gitlab-ci.yml and when the ci config file configuration was not set8322 behaves like existing .gitlab-ci.yml tests8323 with existing .gitlab-ci.yml8324 sast iac has not been included8325 template includes are an array8326 generates the correct YML8327 template include is not an array8328 generates the correct YML8329 secret_detection has been included8330 secret_detection template include are an array8331 generates the correct YML8332 secret_detection template include is not an array8333 generates the correct YML8334 with existing .gitlab-ci.yml and when the ci config file configuration was deleted8335 behaves like existing .gitlab-ci.yml tests8336 with existing .gitlab-ci.yml8337 sast iac has not been included8338 template includes are an array8339 generates the correct YML8340 template include is not an array8341 generates the correct YML8342 secret_detection has been included8343 secret_detection template include are an array8344 generates the correct YML8345 secret_detection template include is not an array8346 generates the correct YML8347 with no .gitlab-ci.yml8348 autodevops disabled8349 generates the correct YML8350 with autodevops enabled8351 generates the correct YML8352Projects::ProjectTopic8353 is expected to be valid8354 associations8355 is expected to belong to project required: false8356 is expected to belong to topic required: false8357Gitlab::Favicon8358 .main8359 defaults to favicon.png8360 has yellow favicon for canary8361 uses the custom favicon if a favicon appearance is present8362 asset host8363 returns a relative url when the asset host is not configured8364 returns a full url when the asset host is configured8365 .status_overlay8366 returns the overlay for the status8367 .available_status_names8368 returns the available status names8369Gitlab::Ci::Trace::Metrics8370 #increment_trace_bytes8371 when incrementing by more than one8372 increments a single counter8373 #increment_error_counter8374 when the error reason is known8375 increments the counter8376 when the error reason is unknown8377 raises an exception8378groups/milestones/index.html.haml8379 behaves like milestone empty states8380 with no milestones8381 shows empty state8382 does not show tabs or searchbar8383 with no open milestones8384 shows tabs and searchbar8385 shows empty state8386 with no closed milestones8387 shows tabs and searchbar8388 shows empty state on closed milestones8389Projects::CiFeatureUsage8390 associations8391 is expected to belong to project required: false8392 behaves like having unique enum values8393 has unique values in "feature"8394 validations8395 is expected to validate that :project cannot be empty/falsy8396 is expected to validate that :feature cannot be empty/falsy8397 .insert_usage8398 when data is not a duplicate8399 creates a new record8400 when data is a duplicate8401 does not create a new record8402Gitlab::Pagination::GitalyKeysetPager8403 .paginate8404 with branch_list_keyset_pagination feature off8405 without keyset pagination option8406 behaves like offset pagination8407 uses offset pagination8408 with keyset pagination option8409 behaves like offset pagination8410 uses offset pagination8411 with branch_list_keyset_pagination feature on8412 without keyset pagination option8413 when first page is requested8414 keyset pagination is used with offset headers8415 when second page is requested8416 behaves like offset pagination8417 uses offset pagination8418 with keyset pagination option8419 when next page could be available8420 uses keyset pagination and adds link headers8421 when the current page is the last page8422 uses keyset pagination without link headers8423Gitlab::Git::ChangedPath8424 #new_file?8425 when it is a new file8426 returns true8427 when it is not a new file8428 returns false8429DependencyProxy::ImageTtlGroupPolicy8430 relationships8431 is expected to belong to group required: false8432 validations8433 is expected to validate that :group cannot be empty/falsy8434 #enabled8435 is expected to allow :enabled to be ‹true›8436 is expected to allow :enabled to be ‹false›8437 is expected not to allow :enabled to be ‹nil›8438 #ttl8439 is expected to validate that :ttl looks like a number greater than 0 as long as it is not nil8440 .enabled8441 returns policies that are enabled8442X509CertificateRevokeWorker8443 #perform8444 with a revoked certificate8445 is labeled as idempotent8446 performs multiple times sequentially without raising an exception8447 executes the revoke service8448 executes the revoke service8449Constraints::AdminConstrainer8450 #matches8451 application setting :admin_mode is enabled8452 when user is a regular user8453 forbids access8454 when user is an admin8455 admin mode is disabled8456 forbids access8457 admin mode is enabled8458 allows access8459 application setting :admin_mode is disabled8460 when user is a regular user8461 forbids access8462 when user is an admin8463 allows access8464Gitlab::Middleware::BasicHealthCheck8465 #call8466 outside IP8467 returns a 4048468 forwards the call for other paths8469 with X-Forwarded-For headers8470 returns 200 response when endpoint is allowed8471 returns 404 when whitelist is not configured8472 whitelisted IP8473 returns 200 response when endpoint is hit8474 forwards the call for other paths8475CronjobQueue8476 sets the queue name of a worker8477 disables retrying of failed jobs8478 automatically clears project, user and namespace from the context8479 gets scheduled with caller_id set to Cronjob8480 gets root_caller_id from the cronjob8481 does not set the caller_id if there was already one in the context8482Banzai::Filter::References::AbstractReferenceFilter8483 #data_attributes_for8484 is not an XSS vector8485 abstract methods8486 #find_object8487 raises NotImplementedError8488 #url_for_object8489 raises NotImplementedError8490RspecFlaky::Listener8491 #initialize8492 when no report file exists8493 behaves like a valid Listener instance8494 returns a valid Listener instance8495 when FLAKY_RSPEC_SUITE_REPORT_PATH is set8496 and report file exists8497 delegates the load to RspecFlaky::Report8498 and report file does not exist8499 return an empty hash8500 #example_passed8501 when the RSpec example does not respond to attempts8502 behaves like a non-flaky example8503 does not change the flaky examples hash8504 when the RSpec example has 1 attempt8505 behaves like a non-flaky example8506 does not change the flaky examples hash8507 when the RSpec example has 2 attempts8508 behaves like a new flaky example8509 changes the all flaky examples hash8510 with an existing flaky example8511 behaves like an existing flaky example8512 changes the flaky examples hash8513 #dump_summary8514 when a report file path is set by FLAKY_RSPEC_REPORT_PATH8515 delegates the writes to RspecFlaky::Report8516Evidences::ReleaseEntity8517 exposes the expected fields8518 when the release has milestones8519 exposes these milestones8520 when the release has no milestone8521 exposes an empty array for milestones8522AlertManagement::HttpIntegrations::DestroyService8523 #execute8524 successfully returns the integration8525 when the current_user is anonymous8526 behaves like error response8527 has an informative message8528 when current_user does not have permission to create integrations8529 behaves like error response8530 has an informative message8531 when an error occurs during removal8532 behaves like error response8533 has an informative message8534Gitlab::Diff::PairSelector8535 #to_a8536 finds all pairs8537 when there are empty lines8538 is expected not to raise Exception8539 when there are only removals8540 returns empty collection8541 when there are only additions8542 returns empty collection8543 when there are no changes8544 returns empty collection8545BlobEntity8546 as json8547 contains needed attributes8548ProjectBadge8549 associations8550 is expected to belong to project required: false8551 validations8552 is expected to validate that :project cannot be empty/falsy8553 methods8554 #rendered_link_url8555 behaves like rendered_links8556 uses the badge project information to populate the url placeholders8557 #rendered_image_url8558 behaves like rendered_links8559 uses the badge project information to populate the url placeholders8560Preloaders::CommitStatusPreloader8561 #execute8562 prevents N+1 for specified relations8563Gitlab::Analytics::CycleAnalytics::Sorting8564 when invalid sorting params are given8565 falls back to end_event DESC sorting8566 sorting end_event8567 direction desc8568 is expected to eq [#<Arel::Nodes::Descending:0x00007f1c1ee8a008 @expr=#<struct Arel::Attributes::Attribute relation=#<A...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]8569 direction asc8570 is expected to eq [#<Arel::Nodes::Ascending:0x00007f1c1ebdbde8 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...nteger, removed_lines: integer, target_project_id: integer)>, @table_alias=nil>, name="merged_at">>]8571 sorting duration8572 direction desc8573 is expected to eq [#<Arel::Nodes::Descending:0x00007f1c1e914920 @expr=#<Arel::Nodes::Subtraction:0x00007f1c1e914010 @le...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]8574 direction asc8575 is expected to eq [#<Arel::Nodes::Ascending:0x00007f1c1e69b0b8 @expr=#<Arel::Nodes::Subtraction:0x00007f1c1e69ba40 @lef...ger, merge_ref_sha: binary, draft: boolean)>, @table_alias=nil>, name="created_at">, @operator=:->>]8576RuboCop::Cop::AvoidBreakFromStrongMemoize8577 flags violation for break inside strong_memoize8578 flags violation for break inside strong_memoize nested blocks8579 doesn't flag violation for next inside strong_memoize8580 doesn't flag violation for break inside blocks8581 doesn't call add_offense twice for nested blocks8582 doesn't check when block is empty8583Boards::DestroyService8584 with project board8585 behaves like board destroy service8586 #execute8587 when there is more than one board8588 destroys the board8589 when there is only one board8590 does not remove board8591 with group board8592 behaves like board destroy service8593 #execute8594 when there is more than one board8595 destroys the board8596 when there is only one board8597 does not remove board8598CsvBuilders::Stream8599 #render8600 returns a lazy enumerator8601 returns all rows up to default max value8602 truncates to max rows8603Gitlab::Git::LfsChanges8604 #new_pointers8605 filters new objects to find lfs pointers8606 limits new_objects using object_limit8607 times out if given a small dynamic timeout8608Banzai::Filter::PlantumlFilter8609 replaces plantuml pre tag with img tag8610 does not replace plantuml pre tag with img tag if disabled8611 does not replace plantuml pre tag with img tag if url is invalid8612Types::CustomerRelations::ContactType8613 is expected to eq "CustomerRelationsContact"8614 is expected to have graphql fields "id", "organization", "first_name", "last_name", "phone", "email", "description", "active", "created_at", and "updated_at"8615 is expected to require graphql authorizations :read_crm_contact8616Gitlab::Ci::Build::Artifacts::Adapters::GzipStream8617 #initialize8618 when stream is passed8619 initialized8620 when stream is not passed8621 raises an error8622 #each_blob8623 when stream is gzip file8624 when gzip file contains one file8625 iterates content and file_name8626 when gzip file contains three files8627 iterates content and file_name8628 when stream is zip file8629 raises an error8630Gitlab::MarkdownCache::Redis::Store8631 .bulk_read8632 returns a hash of values from store8633 #save8634 stores updates to html fields and version8635 #read8636 reads the html fields and version from redis if they were stored8637 is mared loaded after reading8638be_sorted8639 matches empty collections, regardless of arguments8640 matches in both directions8641 can match on a projection8642Serializers::SymbolizedJson8643 .dump8644 returns a hash8645 .load8646 when loading a hash8647 decodes a string8648 allows to access with symbols8649 when loading a nil8650 returns nil8651RuboCop::Cop::Database::MultipleDatabases8652 flags the use of ActiveRecord::Base.connection8653 flags the use of ::ActiveRecord::Base.connection8654 does not flag use of ActiveRecord::Base.no_touching8655 does not flag use of ActiveRecord::Base.configurations8656Gitlab::AppLogger8657 builds a Gitlab::Logger object twice8658 logs info to AppLogger and AppJsonLogger8659 logs info to only the AppJsonLogger when unstructured logs are disabled8660MicrosoftTeams::Notifier8661 #ping8662 expects to receive successful answer8663 #body8664 returns Markdown-based body when HTML was passed8665 fails when empty Hash was passed8666Atlassian::JiraConnect8667 .app_name8668 is expected to eq "GitLab for Jira (localhost)"8669 .app_key8670 is expected to eq "gitlab-jira-connect-localhost"8671 host name is too long8672 truncates the key to be no longer than 64 characters8673Banzai::CommitRenderer8674 .render8675 renders a commit description and title8676RuboCop::Cop::Scalability::IdempotentWorker8677 adds an offense when not defining idempotent method8678 adds an offense when not defining idempotent method8679TodosDestroyer::ConfidentialIssueWorker8680 calls the Todos::Destroy::ConfidentialIssueService with issue_id parameter8681 calls the Todos::Destroy::ConfidentialIssueService with project_id parameter8682Types::Ci::Config::IncludeType8683 is expected to eq "CiConfigInclude"8684 exposes the expected fields8685ShaValidator8686 with empty value8687 does not add any error if value is empty8688 with valid sha8689 does not add any error8690 with invalid sha8691 adds error to the record8692API::API8693 .prefix8694 has a prefix defined8695 .version8696 uses most recent version of the API8697 .versions8698 returns all available versions8699Gitlab::UploadsTransfer8700 leaves avatar uploads where they are8701Types::SavedReplyType8702 is expected to eq "SavedReply"8703 has all the required fields8704 is expected to require graphql authorizations :read_saved_replies8705DiffLineSerializer8706 #to_json8707 matches the schema8708 when lines are parallel8709 matches the schema8710Types::Ci::Config::StageType8711 is expected to eq "CiConfigStage"8712 exposes the expected fields8713Gitlab::RenderTimeout8714 utilizes timeout for web8715 utilizes longer timeout for sidekiq8716Presentable8717 #present8718 returns a presenter8719 takes optional attributes8720ComponentsHelper8721 #gitlab_workhorse_version8722 without a Gitlab-Workhorse header8723 shows the version from Gitlab::Workhorse.version8724 with a Gitlab-Workhorse header8725 shows the actual GitLab Workhorse version currently in use8726Gitlab::RuggedInstrumentation8727 .query_time8728 increments query times8729 .increment_query_count8730 tracks query counts8731RecaptchaHelper8732 .show_recaptcha_sign_up?8733 when reCAPTCHA is disabled8734 returns false8735 when reCAPTCHA is enabled8736 returns true8737Gitlab::Auth::Otp::Strategies::Devise8738 calls Devise8739Gitlab::Usage::Metrics::Instrumentations::ActiveUserCountMetric8740 behaves like a correct instrumented metric value8741 has correct value8742RuboCop::Cop::AvoidRouteRedirectLeadingSlash8743 registers an offense when redirect has a leading slash and corrects8744 does not register an offense when redirect does not have a leading slash8745TermsHelper8746 #terms_data8747 returns correct json8748Types::MutationType8749 is expected to have the MergeRequestSetDraft8750Gitlab::GitalyClient::Util8751 .repository8752 creates a Gitaly::Repository with the given data8753Types::ResolvableInterface8754 exposes the expected fields8755Types::ContainerRepositoryCleanupStatusEnum8756 exposes all statuses8757Gitlab::Graphql::QueryAnalyzers::AST::RecursionAnalyzer8758 when recursion threshold not exceeded8759 returns the complexity, depth, duration, etc8760 when recursion threshold exceeded8761 returns error8762RuboCop::Cop::RSpec::WebMockEnable8763 when calling WebMock.disable_net_connect!8764 registers an offence and autocorrects it8765PartitionCreationWorker8766 #perform8767 forwards to the Database::PartitionManagementWorker8768Spam::Concerns::HasSpamActionResponseFields8769 #with_spam_action_response_fields8770 merges in spam action fields from spammable8771Types::DeploymentTierEnum8772 includes a value for each supported environment tier8773Types::Packages::Conan::MetadatumFileTypeEnum8774 uses all possible options from model8775Gitlab::APIAuthentication::SentThroughBuilder8776 #sent_through8777 adds a strategy for each of locators x resolvers8778Knapsack report was generated. Preview:8779{8780 "spec/services/ci/register_job_service_spec.rb": 268.39682712799913,8781 "spec/services/merge_requests/push_options_handler_service_spec.rb": 231.59584381599961,8782 "spec/lib/gitlab/import_export/group/tree_restorer_spec.rb": 192.5718378900001,8783 "spec/services/projects/overwrite_project_service_spec.rb": 154.37640013500004,8784 "spec/policies/issue_policy_spec.rb": 113.90171968600043,8785 "spec/models/clusters/platforms/kubernetes_spec.rb": 83.67103083999973,8786 "spec/models/clusters/applications/ingress_spec.rb": 84.12713140899996,8787 "spec/models/todo_spec.rb": 61.79683409500012,8788 "spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb": 31.709404274000008,8789 "spec/lib/gitlab/ci/status/build/factory_spec.rb": 51.19349888799934,8790 "spec/services/packages/debian/generate_distribution_service_spec.rb": 60.07696048799971,8791 "spec/models/broadcast_message_spec.rb": 28.757594874999995,8792 "spec/lib/gitlab/ci/parsers/security/common_spec.rb": 39.20248553100009,8793 "spec/models/alert_management/alert_spec.rb": 20.191081347999898,8794 "spec/models/wiki_page_spec.rb": 29.93897330100026,8795 "spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb": 61.860458510999706,8796 "spec/lib/banzai/filter/references/user_reference_filter_spec.rb": 29.31638458499947,8797 "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 26.32747592800024,8798 "spec/helpers/issues_helper_spec.rb": 25.111136473999977,8799 "spec/services/search_service_spec.rb": 21.844880526999987,8800 "spec/models/deploy_token_spec.rb": 21.813017512999977,8801 "spec/services/snippets/create_service_spec.rb": 21.017772596000214,8802 "spec/services/projects/lfs_pointers/lfs_download_service_spec.rb": 17.631855824000013,8803 "spec/services/packages/nuget/update_package_from_metadata_service_spec.rb": 19.083743718999358,8804 "spec/lib/gitlab/ci/status/bridge/factory_spec.rb": 21.620811800999945,8805 "spec/lib/gitlab/cycle_analytics/permissions_spec.rb": 17.292001617000096,8806 "spec/models/namespace/root_storage_statistics_spec.rb": 18.231031758000427,8807 "spec/services/projects/update_repository_storage_service_spec.rb": 19.446651774000202,8808 "spec/services/clusters/applications/check_uninstall_progress_service_spec.rb": 20.435053670000343,8809 "spec/services/namespaces/in_product_marketing_emails_service_spec.rb": 12.74667705399952,8810 "spec/models/ci/build_runner_session_spec.rb": 16.77222229600011,8811 "spec/lib/gitlab/import_export/import_failure_service_spec.rb": 15.932155424000484,8812 "spec/services/git/tag_hooks_service_spec.rb": 14.046675480999511,8813 "spec/finders/starred_projects_finder_spec.rb": 13.72771067099984,8814 "spec/services/ci/pipeline_trigger_service_spec.rb": 12.571233219000533,8815 "spec/tasks/gitlab/user_management_rake_spec.rb": 14.465562012000191,8816 "spec/presenters/clusterable_presenter_spec.rb": 10.919532435000292,8817 "spec/lib/container_registry/path_spec.rb": 11.146103303000018,8818 "spec/lib/banzai/reference_parser/commit_range_parser_spec.rb": 10.70224518499981,8819 "spec/services/clusters/kubernetes/configure_istio_ingress_service_spec.rb": 14.641174534999664,8820 "spec/services/projects/participants_service_spec.rb": 11.689955642999848,8821 "spec/lib/gitlab/database/background_migration/batched_job_spec.rb": 5.609910422000212,8822 "spec/lib/gitlab/pagination/keyset/order_spec.rb": 4.604322256999694,8823 "spec/routing/git_http_routing_spec.rb": 7.629201863999697,8824 "spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb": 3.3188831679999566,8825 "spec/lib/gitlab/relative_positioning/range_spec.rb": 2.7802197889996023,8826 "spec/services/projects/protect_default_branch_service_spec.rb": 10.001810580999518,8827 "spec/serializers/paginated_diff_entity_spec.rb": 8.975045207000221,8828 "spec/helpers/nav/top_nav_helper_spec.rb": 3.041682194999339,8829 "spec/models/integrations/packagist_spec.rb": 8.004077678999238,8830 "spec/models/clusters/kubernetes_namespace_spec.rb": 7.980933220999759,8831 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 9.42278623600032,8832 "spec/services/preview_markdown_service_spec.rb": 10.654166348999752,8833 "spec/workers/new_merge_request_worker_spec.rb": 8.198050739999417,8834 "spec/routing/import_routing_spec.rb": 3.2163723790017684,8835 "spec/serializers/ci/lint/result_serializer_spec.rb": 3.902046213000176,8836 "spec/models/project_auto_devops_spec.rb": 5.315041571999245,8837 "spec/models/lfs_object_spec.rb": 4.98567470099988,8838 "spec/services/ci/play_manual_stage_service_spec.rb": 8.410481900999912,8839 "spec/services/draft_notes/create_service_spec.rb": 8.697599594000167,8840 "spec/graphql/resolvers/projects_resolver_spec.rb": 5.22807216900037,8841 "spec/tasks/gitlab/artifacts/migrate_rake_spec.rb": 8.65969511700041,8842 "spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb": 7.124757420999231,8843 "spec/lib/gitlab/utils/override_spec.rb": 1.7372330259995579,8844 "spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb": 7.50351003600008,8845 "spec/lib/banzai/reference_redactor_spec.rb": 6.010837705000085,8846 "spec/lib/gitlab/http_io_spec.rb": 2.6145695750001323,8847 "spec/lib/banzai/filter/commit_trailers_filter_spec.rb": 2.9294459449993155,8848 "spec/models/sentry_issue_spec.rb": 6.86032906499986,8849 "spec/lib/gitlab/repo_path_spec.rb": 3.5931716129998676,8850 "spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb": 5.796394426000006,8851 "spec/models/analytics/cycle_analytics/issue_stage_event_spec.rb": 3.018779945999995,8852 "spec/lib/gitlab/metrics/sli_spec.rb": 1.461504832999708,8853 "spec/finders/packages/debian/distributions_finder_spec.rb": 3.2183162369992715,8854 "spec/models/concerns/project_features_compatibility_spec.rb": 6.7638575740002125,8855 "spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb": 2.1593782370000554,8856 "spec/lib/gitlab/import_export/group/tree_saver_spec.rb": 6.871124394000617,8857 "spec/workers/merge_requests/handle_assignees_change_worker_spec.rb": 2.5687057489994913,8858 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 3.3766457729998365,8859 "spec/models/container_registry/event_spec.rb": 1.9997818519996144,8860 "spec/lib/gitaly/server_spec.rb": 2.066931016000126,8861 "spec/policies/work_item_policy_spec.rb": 4.326146764000441,8862 "spec/lib/api/entities/project_spec.rb": 4.598795838000115,8863 "spec/lib/gitlab/hotlinking_detector_spec.rb": 1.8890530819999185,8864 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb": 1.7562608549997094,8865 "spec/services/ci/create_pipeline_service/evaluate_runner_tags_spec.rb": 4.238012551999418,8866 "spec/lib/gitlab/fogbugz_import/importer_spec.rb": 6.188171278999107,8867 "spec/workers/ci/pending_builds/update_group_worker_spec.rb": 3.766941126999882,8868 "spec/lib/gitlab/data_builder/deployment_spec.rb": 4.689507740000408,8869 "spec/lib/gitlab/ci/status/build/play_spec.rb": 4.369338550000066,8870 "spec/models/concerns/has_environment_scope_spec.rb": 2.076986024000689,8871 "spec/services/packages/helm/process_file_service_spec.rb": 4.194931146000272,8872 "spec/models/concerns/ci/artifactable_spec.rb": 5.204695600999912,8873 "spec/routing/environments_spec.rb": 1.7555540849998579,8874 "spec/models/project_authorization_spec.rb": 3.955206567999994,8875 "spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb": 1.19088063900017,8876 "spec/workers/external_service_reactive_caching_worker_spec.rb": 3.1087686989994836,8877 "spec/uploaders/import_export_uploader_spec.rb": 1.9691574250000485,8878 "spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb": 4.420484073999432,8879 "spec/lib/mattermost/session_spec.rb": 4.82335068699922,8880 "spec/models/concerns/taskable_spec.rb": 0.8932034859999476,8881 "spec/lib/gitlab/ci/status/build/retried_spec.rb": 4.033659101000012,8882 "spec/services/metrics/users_starred_dashboards/create_service_spec.rb": 2.8993968679997124,8883 "spec/models/ci/freeze_period_spec.rb": 3.706394401999205,8884 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 4.6017489269997895,8885 "spec/lib/sidebars/projects/menus/packages_registries_menu_spec.rb": 2.2711560770003416,8886 "spec/lib/gitlab/experiment/rollout/feature_spec.rb": 1.1083131660006984,8887 "spec/rubocop/cop/migration/background_migration_base_class_spec.rb": 0.75724050899953,8888 "spec/finders/sentry_issue_finder_spec.rb": 4.214844963999894,8889 "spec/lib/gitlab/git/push_spec.rb": 2.5518347400002312,8890 "spec/lib/bitbucket_server/representation/comment_spec.rb": 1.1956833179992827,8891 "spec/lib/gitlab/diff/formatters/image_formatter_spec.rb": 1.083628368999598,8892 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 1.930132939000032,8893 "spec/serializers/integrations/field_entity_spec.rb": 2.9252468750000844,8894 "spec/services/packages/debian/generate_distribution_key_service_spec.rb": 3.692415073999655,8895 "spec/lib/sidebars/groups/menus/group_information_menu_spec.rb": 2.4012458440001865,8896 "spec/services/packages/composer/composer_json_service_spec.rb": 2.510573454999758,8897 "spec/workers/clusters/cleanup/project_namespace_worker_spec.rb": 4.52655253499961,8898 "spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb": 3.7215147400002024,8899 "spec/graphql/resolvers/users/participants_resolver_spec.rb": 3.511174029999893,8900 "spec/models/snippet_input_action_collection_spec.rb": 0.7231565319998481,8901 "spec/graphql/resolvers/releases_resolver_spec.rb": 2.839464193999447,8902 "spec/graphql/mutations/security/ci_configuration/configure_secret_detection_spec.rb": 2.8393668030003028,8903 "spec/lib/gitlab/ci/tags/bulk_insert_spec.rb": 1.1987135370000033,8904 "spec/services/error_tracking/collect_error_service_spec.rb": 2.0200943809995806,8905 "spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb": 0.8020446140008062,8906 "spec/workers/incident_management/add_severity_system_note_worker_spec.rb": 1.439894545000243,8907 "spec/models/integrations/pushover_spec.rb": 1.5416132450000077,8908 "spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb": 0.8741846379998606,8909 "spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb": 1.044091501999901,8910 "spec/lib/gitlab/verify/lfs_objects_spec.rb": 1.3362900540005285,8911 "spec/lib/gitlab/ci/trace/backoff_spec.rb": 1.3626061519998984,8912 "spec/graphql/types/invitation_interface_spec.rb": 0.5556730070002232,8913 "spec/lib/gitlab/usage/service_ping/legacy_metric_timing_decorator_spec.rb": 1.053382031000183,8914 "spec/models/spam_log_spec.rb": 2.461730329000602,8915 "spec/workers/cluster_configure_istio_worker_spec.rb": 4.712476087999676,8916 "spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb": 0.9119101550004416,8917 "spec/finders/merge_request/metrics_finder_spec.rb": 2.122005729999728,8918 "spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb": 0.4234199809998245,8919 "spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb": 0.35341977600000973,8920 "spec/policies/alert_management/http_integration_policy_spec.rb": 1.6749306130004697,8921 "spec/models/list_user_preference_spec.rb": 1.3135906970001088,8922 "spec/models/uploads/local_spec.rb": 1.1889250579997679,8923 "spec/services/metrics/dashboard/default_embed_service_spec.rb": 1.8950678720002543,8924 "spec/lib/gitlab/crypto_helper_spec.rb": 0.3714723650000451,8925 "spec/graphql/resolvers/users/snippets_resolver_spec.rb": 2.708066456000779,8926 "spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.5132196869999461,8927 "spec/services/users/keys_count_service_spec.rb": 1.5840859820000333,8928 "spec/serializers/job_artifact_report_entity_spec.rb": 2.6549037699996916,8929 "spec/serializers/ci/downloadable_artifact_entity_spec.rb": 2.4123454430000493,8930 "spec/views/admin/application_settings/ci_cd.html.haml_spec.rb": 0.7565564889991947,8931 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.35165044700079306,8932 "spec/models/fork_network_member_spec.rb": 2.272602815999562,8933 "spec/services/chat_names/authorize_user_service_spec.rb": 2.3453154600001653,8934 "spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb": 2.9426963939995403,8935 "spec/lib/gitlab/sidekiq_middleware/size_limiter/client_spec.rb": 0.3455558670002574,8936 "spec/serializers/deploy_keys/deploy_key_entity_spec.rb": 1.4129158080004345,8937 "spec/lib/gitlab/noteable_metadata_spec.rb": 1.2528709429998344,8938 "spec/graphql/types/untrusted_regexp_spec.rb": 0.5968168139997942,8939 "spec/services/design_management/move_designs_service_spec.rb": 1.700347089999923,8940 "spec/lib/container_registry/registry_spec.rb": 0.40044518200011225,8941 "spec/lib/gitlab/github_import/importer/notes_importer_spec.rb": 0.38683781400050066,8942 "spec/rubocop/migration_helpers_spec.rb": 0.6599725580008453,8943 "spec/serializers/move_to_project_entity_spec.rb": 0.35443866700006765,8944 "spec/views/layouts/_search.html.haml_spec.rb": 3.080954631000168,8945 "spec/models/preloaders/group_policy_preloader_spec.rb": 2.322364342000583,8946 "spec/helpers/instance_configuration_helper_spec.rb": 0.4927476940001725,8947 "spec/services/packages/composer/version_parser_service_spec.rb": 0.6998165540007903,8948 "spec/lib/gitlab/ci/variables/helpers_spec.rb": 0.6241641220003658,8949 "spec/lib/gitlab/monitor/demo_projects_spec.rb": 0.6529097480006385,8950 "spec/lib/gitlab/phabricator_import/issues/importer_spec.rb": 1.7060126099995614,8951 "spec/lib/gitlab/git/blame_spec.rb": 1.4153709869997328,8952 "spec/lib/bulk_imports/groups/transformers/member_attributes_transformer_spec.rb": 1.1461595519995171,8953 "spec/lib/gitlab/metrics/delta_spec.rb": 0.2380667879997418,8954 "spec/services/google_cloud/create_service_accounts_service_spec.rb": 1.3059070670005894,8955 "spec/lib/gitlab/app_text_logger_spec.rb": 0.19103778200042143,8956 "spec/presenters/packages/nuget/packages_versions_presenter_spec.rb": 2.090724573999978,8957 "spec/lib/gitlab/diff/stats_cache_spec.rb": 0.5187476609999067,8958 "spec/lib/error_tracking/collector/sentry_request_parser_spec.rb": 0.24562396700002864,8959 "spec/lib/gitlab/database/pg_class_spec.rb": 0.3435877679994519,8960 "spec/initializers/mailer_retries_spec.rb": 0.2566420160001144,8961 "spec/lib/gitlab/config_checker/external_database_checker_spec.rb": 0.16270723500019812,8962 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.3312214799998401,8963 "spec/lib/gitlab/kubernetes/service_account_spec.rb": 0.1942088319992763,8964 "spec/lib/gitlab/auth/result_spec.rb": 0.7182537329999832,8965 "spec/lib/gitlab/alert_management/alert_status_counts_spec.rb": 1.4782053610006187,8966 "spec/validators/array_members_validator_spec.rb": 0.46293839600002684,8967 "spec/lib/gitlab/service_desk_spec.rb": 0.727708621999227,8968 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 1.3094315070002267,8969 "spec/lib/api/ci/helpers/runner_helpers_spec.rb": 1.3335159150001346,8970 "spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb": 0.4842178139997486,8971 "spec/models/projects/project_topic_spec.rb": 0.6638178080002035,8972 "spec/lib/gitlab/favicon_spec.rb": 0.669730566999533,8973 "spec/lib/gitlab/ci/trace/metrics_spec.rb": 1.522267727000326,8974 "spec/views/groups/milestones/index.html.haml_spec.rb": 0.7216568719995848,8975 "spec/models/projects/ci_feature_usage_spec.rb": 0.8863509459997658,8976 "spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb": 0.8695254980002574,8977 "spec/lib/gitlab/git/changed_path_spec.rb": 0.13194361700061563,8978 "spec/models/dependency_proxy/image_ttl_group_policy_spec.rb": 0.6589222389993665,8979 "spec/workers/x509_certificate_revoke_worker_spec.rb": 0.6748290470004576,8980 "spec/lib/constraints/admin_constrainer_spec.rb": 0.929385743000239,8981 "spec/lib/gitlab/middleware/basic_health_check_spec.rb": 0.40232367200042063,8982 "spec/workers/concerns/cronjob_queue_spec.rb": 0.38815796299968497,8983 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 0.6809175659991524,8984 "spec/tooling/rspec_flaky/listener_spec.rb": 0.507533443000284,8985 "spec/serializers/evidences/release_entity_spec.rb": 0.8195469739994223,8986 "spec/services/alert_management/http_integrations/destroy_service_spec.rb": 1.016060773999925,8987 "spec/lib/gitlab/diff/pair_selector_spec.rb": 0.3104957409996132,8988 "spec/serializers/blob_entity_spec.rb": 0.7407003810003516,8989 "spec/models/badges/project_badge_spec.rb": 0.6910874859995602,8990 "spec/models/preloaders/commit_status_preloader_spec.rb": 0.792739294999592,8991 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.4651080459998411,8992 "spec/rubocop/cop/avoid_break_from_strong_memoize_spec.rb": 0.3216448800003491,8993 "spec/services/boards/destroy_service_spec.rb": 1.0237593239999114,8994 "spec/lib/csv_builders/stream_spec.rb": 0.17360685399944487,8995 "spec/lib/gitlab/git/lfs_changes_spec.rb": 0.6179278310000882,8996 "spec/lib/banzai/filter/plantuml_filter_spec.rb": 0.3346196279999276,8997 "spec/graphql/types/customer_relations/contact_type_spec.rb": 0.223518478999722,8998 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.4104271010000957,8999 "spec/lib/gitlab/markdown_cache/redis/store_spec.rb": 0.28035937399999966,9000 "spec/support_specs/matchers/be_sorted_spec.rb": 0.27623021399995196,9001 "spec/lib/serializers/symbolized_json_spec.rb": 0.3009739120006998,9002 "spec/rubocop/cop/database/multiple_databases_spec.rb": 0.3779357550001805,9003 "spec/lib/gitlab/app_logger_spec.rb": 0.16838060400004906,9004 "spec/lib/microsoft_teams/notifier_spec.rb": 0.21466109999983018,9005 "spec/lib/atlassian/jira_connect_spec.rb": 0.2402091570002085,9006 "spec/lib/banzai/commit_renderer_spec.rb": 0.7428582300008202,9007 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.2203835190002792,9008 "spec/workers/todos_destroyer/confidential_issue_worker_spec.rb": 0.3214214899999206,9009 "spec/graphql/types/ci/config/include_type_spec.rb": 0.15839344500000152,9010 "spec/validators/sha_validator_spec.rb": 0.3688719760002641,9011 "spec/lib/api/api_spec.rb": 0.19596040099986567,9012 "spec/lib/gitlab/uploads_transfer_spec.rb": 0.702388783999595,9013 "spec/graphql/types/saved_reply_type_spec.rb": 0.16308699500041257,9014 "spec/serializers/diff_line_serializer_spec.rb": 0.12836450800023158,9015 "spec/graphql/types/ci/config/stage_type_spec.rb": 0.1596767450000698,9016 "spec/lib/gitlab/render_timeout_spec.rb": 0.20905544000015652,9017 "spec/models/concerns/presentable_spec.rb": 0.1266480780004713,9018 "spec/helpers/components_helper_spec.rb": 0.17559564400016825,9019 "spec/lib/gitlab/rugged_instrumentation_spec.rb": 0.11355877899950428,9020 "spec/helpers/recaptcha_helper_spec.rb": 0.16383716499967704,9021 "spec/lib/gitlab/auth/otp/strategies/devise_spec.rb": 0.30267757100045856,9022 "spec/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric_spec.rb": 0.3013071919995127,9023 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 0.1489711959993656,9024 "spec/helpers/terms_helper_spec.rb": 0.37065998500020214,9025 "spec/graphql/types/mutation_type_spec.rb": 0.07687614299993584,9026 "spec/lib/gitlab/gitaly_client/util_spec.rb": 0.09276820099967154,9027 "spec/graphql/types/resolvable_interface_spec.rb": 0.19341208199966786,9028 "spec/graphql/types/container_repository_cleanup_status_enum_spec.rb": 0.21544884000013553,9029 "spec/lib/gitlab/graphql/query_analyzers/ast/recursion_analyzer_spec.rb": 0.1910121220007568,9030 "spec/rubocop/cop/rspec/web_mock_enable_spec.rb": 0.11559635899993737,9031 "spec/workers/partition_creation_worker_spec.rb": 0.0685867740003232,9032 "spec/spam/concerns/has_spam_action_response_fields_spec.rb": 0.15363384600004792,9033 "spec/graphql/types/deployment_tier_enum_spec.rb": 0.24163933699946938,9034 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.07788803299990832,9035 "spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb": 0.15070565600035489036}9037Knapsack global time execution for tests: 40m 05s9038Pending: (Failures listed here are expected and do not affect your suite's status)9039 1) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner follow tag list picks build with the same tag9040 # Skipping because multiple databases are set up9041 # ./spec/services/ci/register_job_service_spec.rb:419042 2) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner follow tag list does not pick build with different tag9043 # Skipping because multiple databases are set up9044 # ./spec/services/ci/register_job_service_spec.rb:499045 3) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner follow tag list picks build without tag9046 # Skipping because multiple databases are set up9047 # ./spec/services/ci/register_job_service_spec.rb:579048 4) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner follow tag list does not pick build with tag9049 # Skipping because multiple databases are set up9050 # ./spec/services/ci/register_job_service_spec.rb:619051 5) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner follow tag list pick build without tag9052 # Skipping because multiple databases are set up9053 # ./spec/services/ci/register_job_service_spec.rb:689054 6) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled deleted projects for shared runners does not pick a build9055 # Skipping because multiple databases are set up9056 # ./spec/services/ci/register_job_service_spec.rb:849057 7) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled deleted projects for specific runner does not pick a build9058 # Skipping because multiple databases are set up9059 # ./spec/services/ci/register_job_service_spec.rb:909060 8) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners when build owner has been blocked does not pick the build and drops the build9061 # Skipping because multiple databases are set up9062 # ./spec/services/ci/register_job_service_spec.rb:1139063 9) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners for multiple builds when using fair scheduling when all builds are pending prefers projects without builds first9064 # Skipping because multiple databases are set up9065 # ./spec/services/ci/register_job_service_spec.rb:1349066 10) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners for multiple builds when using fair scheduling when some builds transition to success equalises number of running builds9067 # Skipping because multiple databases are set up9068 # ./spec/services/ci/register_job_service_spec.rb:1509069 11) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners for multiple builds when using DEFCON mode that disables fair scheduling when all builds are pending returns builds in order of creation (FIFO)9070 # Skipping because multiple databases are set up9071 # ./spec/services/ci/register_job_service_spec.rb:1719072 12) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners for multiple builds when using DEFCON mode that disables fair scheduling when some builds transition to success returns builds in order of creation (FIFO)9073 # Skipping because multiple databases are set up9074 # ./spec/services/ci/register_job_service_spec.rb:1839075 13) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners shared runner 9076 # Skipping because multiple databases are set up9077 # ./spec/services/ci/register_job_service_spec.rb:2029078 14) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners shared runner 9079 # Skipping because multiple databases are set up9080 # ./spec/services/ci/register_job_service_spec.rb:2039081 15) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners shared runner 9082 # Skipping because multiple databases are set up9083 # ./spec/services/ci/register_job_service_spec.rb:2049084 16) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners shared runner 9085 # Skipping because multiple databases are set up9086 # ./spec/services/ci/register_job_service_spec.rb:2059087 17) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners shared runner 9088 # Skipping because multiple databases are set up9089 # ./spec/services/ci/register_job_service_spec.rb:2069090 18) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners specific runner 9091 # Skipping because multiple databases are set up9092 # ./spec/services/ci/register_job_service_spec.rb:2129093 19) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners specific runner 9094 # Skipping because multiple databases are set up9095 # ./spec/services/ci/register_job_service_spec.rb:2139096 20) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners specific runner 9097 # Skipping because multiple databases are set up9098 # ./spec/services/ci/register_job_service_spec.rb:2149099 21) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow shared runners specific runner 9100 # Skipping because multiple databases are set up9101 # ./spec/services/ci/register_job_service_spec.rb:2159102 22) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow shared runners shared runner 9103 # Skipping because multiple databases are set up9104 # ./spec/services/ci/register_job_service_spec.rb:2279105 23) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow shared runners specific runner 9106 # Skipping because multiple databases are set up9107 # ./spec/services/ci/register_job_service_spec.rb:2339108 24) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow shared runners specific runner 9109 # Skipping because multiple databases are set up9110 # ./spec/services/ci/register_job_service_spec.rb:2349111 25) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow shared runners specific runner 9112 # Skipping because multiple databases are set up9113 # ./spec/services/ci/register_job_service_spec.rb:2359114 26) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow shared runners specific runner 9115 # Skipping because multiple databases are set up9116 # ./spec/services/ci/register_job_service_spec.rb:2369117 27) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow when builds are disabled and uses shared runner 9118 # Skipping because multiple databases are set up9119 # ./spec/services/ci/register_job_service_spec.rb:2519120 28) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow when builds are disabled and uses group runner 9121 # Skipping because multiple databases are set up9122 # ./spec/services/ci/register_job_service_spec.rb:2579123 29) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow when builds are disabled and uses project runner does not pick a build9124 # Skipping because multiple databases are set up9125 # ./spec/services/ci/register_job_service_spec.rb:2639126 30) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow group runners for multiple builds does not consider builds from other group runners9127 # Skipping because multiple databases are set up9128 # ./spec/services/ci/register_job_service_spec.rb:2969129 31) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow group runners group runner 9130 # Skipping because multiple databases are set up9131 # ./spec/services/ci/register_job_service_spec.rb:3259132 32) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow group runners group runner 9133 # Skipping because multiple databases are set up9134 # ./spec/services/ci/register_job_service_spec.rb:3269135 33) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow group runners group runner 9136 # Skipping because multiple databases are set up9137 # ./spec/services/ci/register_job_service_spec.rb:3279138 34) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled allow group runners group runner 9139 # Skipping because multiple databases are set up9140 # ./spec/services/ci/register_job_service_spec.rb:3289141 35) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled disallow group runners group runner 9142 # Skipping because multiple databases are set up9143 # ./spec/services/ci/register_job_service_spec.rb:3429144 36) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when first build is stalled with multiple builds are in queue receives second build from the queue9145 # Skipping because multiple databases are set up9146 # ./spec/services/ci/register_job_service_spec.rb:3649147 37) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when first build is stalled when single build is in queue does not receive any valid result9148 # Skipping because multiple databases are set up9149 # ./spec/services/ci/register_job_service_spec.rb:3779150 38) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when first build is stalled when there is no build in queue does not receive builds but result is valid9151 # Skipping because multiple databases are set up9152 # ./spec/services/ci/register_job_service_spec.rb:3899153 39) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is not_protected when a job is protected picks the job9154 # Skipping because multiple databases are set up9155 # ./spec/services/ci/register_job_service_spec.rb:4029156 40) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is not_protected when a job is unprotected picks the job9157 # Skipping because multiple databases are set up9158 # ./spec/services/ci/register_job_service_spec.rb:4109159 41) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is not_protected when protected attribute of a job is nil picks the job9160 # Skipping because multiple databases are set up9161 # ./spec/services/ci/register_job_service_spec.rb:4229162 42) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is ref_protected when a job is protected picks the job9163 # Skipping because multiple databases are set up9164 # ./spec/services/ci/register_job_service_spec.rb:4349165 43) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is ref_protected when a job is unprotected does not pick the job9166 # Skipping because multiple databases are set up9167 # ./spec/services/ci/register_job_service_spec.rb:4429168 44) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when access_level of runner is ref_protected when protected attribute of a job is nil does not pick the job9169 # Skipping because multiple databases are set up9170 # ./spec/services/ci/register_job_service_spec.rb:4549171 45) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner feature set is verified when feature is missing by runner does not pick the build and drops the build9172 # Skipping because multiple databases are set up9173 # ./spec/services/ci/register_job_service_spec.rb:4699174 46) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled runner feature set is verified when feature is supported by runner does pick job9175 # Skipping because multiple databases are set up9176 # ./spec/services/ci/register_job_service_spec.rb:4819177 47) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when "dependencies" keyword is specified behaves like validation is active when depended job has not been completed yet 9178 # Skipping because multiple databases are set up9179 # ./spec/services/ci/register_job_service_spec.rb:5009180 48) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been expired when the pipeline is locked 9181 # Skipping because multiple databases are set up9182 # ./spec/services/ci/register_job_service_spec.rb:5119183 49) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been expired when the pipeline is unlocked behaves like not pick does not pick the build and drops the build9184 # Skipping because multiple databases are set up9185 # ./spec/services/ci/register_job_service_spec.rb:4899186 50) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been erased behaves like not pick does not pick the build and drops the build9187 # Skipping because multiple databases are set up9188 # ./spec/services/ci/register_job_service_spec.rb:4899189 51) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when "dependencies" keyword is specified behaves like validation is active when job object is staled does not drop nor pick9190 # Skipping because multiple databases are set up9191 # ./spec/services/ci/register_job_service_spec.rb:5459192 52) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when build is degenerated does not pick the build and drops the build9193 # Skipping because multiple databases are set up9194 # ./spec/services/ci/register_job_service_spec.rb:5939195 53) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when build has data integrity problem does drop the build and logs both failures9196 # Skipping because multiple databases are set up9197 # ./spec/services/ci/register_job_service_spec.rb:6139198 54) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when build fails to be run! does drop the build and logs failure9199 # Skipping because multiple databases are set up9200 # ./spec/services/ci/register_job_service_spec.rb:6399201 55) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when an exception is raised during a persistent ref creation picks the build9202 # Skipping because multiple databases are set up9203 # ./spec/services/ci/register_job_service_spec.rb:6619204 56) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when only some builds can be matched by runner observes queue size of only matching jobs9205 # Skipping because multiple databases are set up9206 # ./spec/services/ci/register_job_service_spec.rb:6799207 57) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when only some builds can be matched by runner observes queue processing time by the runner type9208 # Skipping because multiple databases are set up9209 # ./spec/services/ci/register_job_service_spec.rb:6879210 58) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when ci_register_job_temporary_lock is enabled when a build is temporarily locked skips this build and marks queue as invalid9211 # Skipping because multiple databases are set up9212 # ./spec/services/ci/register_job_service_spec.rb:7149213 59) Ci::RegisterJobService#execute when using pending builds table with ci_queuing_use_denormalized_data_strategy disabled when ci_register_job_temporary_lock is enabled when a build is temporarily locked when there is another build in queue skips this build and picks another build9214 # Skipping because multiple databases are set up9215 # ./spec/services/ci/register_job_service_spec.rb:7269216 60) Ci::RegisterJobService#execute when not using pending builds table runner follow tag list picks build with the same tag9217 # Skipping because multiple databases are set up9218 # ./spec/services/ci/register_job_service_spec.rb:419219 61) Ci::RegisterJobService#execute when not using pending builds table runner follow tag list does not pick build with different tag9220 # Skipping because multiple databases are set up9221 # ./spec/services/ci/register_job_service_spec.rb:499222 62) Ci::RegisterJobService#execute when not using pending builds table runner follow tag list picks build without tag9223 # Skipping because multiple databases are set up9224 # ./spec/services/ci/register_job_service_spec.rb:579225 63) Ci::RegisterJobService#execute when not using pending builds table runner follow tag list does not pick build with tag9226 # Skipping because multiple databases are set up9227 # ./spec/services/ci/register_job_service_spec.rb:619228 64) Ci::RegisterJobService#execute when not using pending builds table runner follow tag list pick build without tag9229 # Skipping because multiple databases are set up9230 # ./spec/services/ci/register_job_service_spec.rb:689231 65) Ci::RegisterJobService#execute when not using pending builds table deleted projects for shared runners does not pick a build9232 # Skipping because multiple databases are set up9233 # ./spec/services/ci/register_job_service_spec.rb:849234 66) Ci::RegisterJobService#execute when not using pending builds table deleted projects for specific runner does not pick a build9235 # Skipping because multiple databases are set up9236 # ./spec/services/ci/register_job_service_spec.rb:909237 67) Ci::RegisterJobService#execute when not using pending builds table allow shared runners when build owner has been blocked does not pick the build and drops the build9238 # Skipping because multiple databases are set up9239 # ./spec/services/ci/register_job_service_spec.rb:1139240 68) Ci::RegisterJobService#execute when not using pending builds table allow shared runners for multiple builds when using fair scheduling when all builds are pending prefers projects without builds first9241 # Skipping because multiple databases are set up9242 # ./spec/services/ci/register_job_service_spec.rb:1349243 69) Ci::RegisterJobService#execute when not using pending builds table allow shared runners for multiple builds when using fair scheduling when some builds transition to success equalises number of running builds9244 # Skipping because multiple databases are set up9245 # ./spec/services/ci/register_job_service_spec.rb:1509246 70) Ci::RegisterJobService#execute when not using pending builds table allow shared runners for multiple builds when using DEFCON mode that disables fair scheduling when all builds are pending returns builds in order of creation (FIFO)9247 # Skipping because multiple databases are set up9248 # ./spec/services/ci/register_job_service_spec.rb:1719249 71) Ci::RegisterJobService#execute when not using pending builds table allow shared runners for multiple builds when using DEFCON mode that disables fair scheduling when some builds transition to success returns builds in order of creation (FIFO)9250 # Skipping because multiple databases are set up9251 # ./spec/services/ci/register_job_service_spec.rb:1839252 72) Ci::RegisterJobService#execute when not using pending builds table allow shared runners shared runner 9253 # Skipping because multiple databases are set up9254 # ./spec/services/ci/register_job_service_spec.rb:2029255 73) Ci::RegisterJobService#execute when not using pending builds table allow shared runners shared runner 9256 # Skipping because multiple databases are set up9257 # ./spec/services/ci/register_job_service_spec.rb:2039258 74) Ci::RegisterJobService#execute when not using pending builds table allow shared runners shared runner 9259 # Skipping because multiple databases are set up9260 # ./spec/services/ci/register_job_service_spec.rb:2049261 75) Ci::RegisterJobService#execute when not using pending builds table allow shared runners shared runner 9262 # Skipping because multiple databases are set up9263 # ./spec/services/ci/register_job_service_spec.rb:2059264 76) Ci::RegisterJobService#execute when not using pending builds table allow shared runners shared runner 9265 # Skipping because multiple databases are set up9266 # ./spec/services/ci/register_job_service_spec.rb:2069267 77) Ci::RegisterJobService#execute when not using pending builds table allow shared runners specific runner 9268 # Skipping because multiple databases are set up9269 # ./spec/services/ci/register_job_service_spec.rb:2129270 78) Ci::RegisterJobService#execute when not using pending builds table allow shared runners specific runner 9271 # Skipping because multiple databases are set up9272 # ./spec/services/ci/register_job_service_spec.rb:2139273 79) Ci::RegisterJobService#execute when not using pending builds table allow shared runners specific runner 9274 # Skipping because multiple databases are set up9275 # ./spec/services/ci/register_job_service_spec.rb:2149276 80) Ci::RegisterJobService#execute when not using pending builds table allow shared runners specific runner 9277 # Skipping because multiple databases are set up9278 # ./spec/services/ci/register_job_service_spec.rb:2159279 81) Ci::RegisterJobService#execute when not using pending builds table disallow shared runners shared runner 9280 # Skipping because multiple databases are set up9281 # ./spec/services/ci/register_job_service_spec.rb:2279282 82) Ci::RegisterJobService#execute when not using pending builds table disallow shared runners specific runner 9283 # Skipping because multiple databases are set up9284 # ./spec/services/ci/register_job_service_spec.rb:2339285 83) Ci::RegisterJobService#execute when not using pending builds table disallow shared runners specific runner 9286 # Skipping because multiple databases are set up9287 # ./spec/services/ci/register_job_service_spec.rb:2349288 84) Ci::RegisterJobService#execute when not using pending builds table disallow shared runners specific runner 9289 # Skipping because multiple databases are set up9290 # ./spec/services/ci/register_job_service_spec.rb:2359291 85) Ci::RegisterJobService#execute when not using pending builds table disallow shared runners specific runner 9292 # Skipping because multiple databases are set up9293 # ./spec/services/ci/register_job_service_spec.rb:2369294 86) Ci::RegisterJobService#execute when not using pending builds table disallow when builds are disabled and uses shared runner 9295 # Skipping because multiple databases are set up9296 # ./spec/services/ci/register_job_service_spec.rb:2519297 87) Ci::RegisterJobService#execute when not using pending builds table disallow when builds are disabled and uses group runner 9298 # Skipping because multiple databases are set up9299 # ./spec/services/ci/register_job_service_spec.rb:2579300 88) Ci::RegisterJobService#execute when not using pending builds table disallow when builds are disabled and uses project runner does not pick a build9301 # Skipping because multiple databases are set up9302 # ./spec/services/ci/register_job_service_spec.rb:2639303 89) Ci::RegisterJobService#execute when not using pending builds table allow group runners for multiple builds does not consider builds from other group runners9304 # Skipping because multiple databases are set up9305 # ./spec/services/ci/register_job_service_spec.rb:2969306 90) Ci::RegisterJobService#execute when not using pending builds table allow group runners group runner 9307 # Skipping because multiple databases are set up9308 # ./spec/services/ci/register_job_service_spec.rb:3259309 91) Ci::RegisterJobService#execute when not using pending builds table allow group runners group runner 9310 # Skipping because multiple databases are set up9311 # ./spec/services/ci/register_job_service_spec.rb:3269312 92) Ci::RegisterJobService#execute when not using pending builds table allow group runners group runner 9313 # Skipping because multiple databases are set up9314 # ./spec/services/ci/register_job_service_spec.rb:3279315 93) Ci::RegisterJobService#execute when not using pending builds table allow group runners group runner 9316 # Skipping because multiple databases are set up9317 # ./spec/services/ci/register_job_service_spec.rb:3289318 94) Ci::RegisterJobService#execute when not using pending builds table disallow group runners group runner 9319 # Skipping because multiple databases are set up9320 # ./spec/services/ci/register_job_service_spec.rb:3429321 95) Ci::RegisterJobService#execute when not using pending builds table when first build is stalled with multiple builds are in queue receives second build from the queue9322 # Skipping because multiple databases are set up9323 # ./spec/services/ci/register_job_service_spec.rb:3649324 96) Ci::RegisterJobService#execute when not using pending builds table when first build is stalled when single build is in queue does not receive any valid result9325 # Skipping because multiple databases are set up9326 # ./spec/services/ci/register_job_service_spec.rb:3779327 97) Ci::RegisterJobService#execute when not using pending builds table when first build is stalled when there is no build in queue does not receive builds but result is valid9328 # Skipping because multiple databases are set up9329 # ./spec/services/ci/register_job_service_spec.rb:3899330 98) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is not_protected when a job is protected picks the job9331 # Skipping because multiple databases are set up9332 # ./spec/services/ci/register_job_service_spec.rb:4029333 99) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is not_protected when a job is unprotected picks the job9334 # Skipping because multiple databases are set up9335 # ./spec/services/ci/register_job_service_spec.rb:4109336 100) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is not_protected when protected attribute of a job is nil picks the job9337 # Skipping because multiple databases are set up9338 # ./spec/services/ci/register_job_service_spec.rb:4229339 101) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is ref_protected when a job is protected picks the job9340 # Skipping because multiple databases are set up9341 # ./spec/services/ci/register_job_service_spec.rb:4349342 102) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is ref_protected when a job is unprotected does not pick the job9343 # Skipping because multiple databases are set up9344 # ./spec/services/ci/register_job_service_spec.rb:4429345 103) Ci::RegisterJobService#execute when not using pending builds table when access_level of runner is ref_protected when protected attribute of a job is nil does not pick the job9346 # Skipping because multiple databases are set up9347 # ./spec/services/ci/register_job_service_spec.rb:4549348 104) Ci::RegisterJobService#execute when not using pending builds table runner feature set is verified when feature is missing by runner does not pick the build and drops the build9349 # Skipping because multiple databases are set up9350 # ./spec/services/ci/register_job_service_spec.rb:4699351 105) Ci::RegisterJobService#execute when not using pending builds table runner feature set is verified when feature is supported by runner does pick job9352 # Skipping because multiple databases are set up9353 # ./spec/services/ci/register_job_service_spec.rb:4819354 106) Ci::RegisterJobService#execute when not using pending builds table when "dependencies" keyword is specified behaves like validation is active when depended job has not been completed yet 9355 # Skipping because multiple databases are set up9356 # ./spec/services/ci/register_job_service_spec.rb:5009357 107) Ci::RegisterJobService#execute when not using pending builds table when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been expired when the pipeline is locked 9358 # Skipping because multiple databases are set up9359 # ./spec/services/ci/register_job_service_spec.rb:5119360 108) Ci::RegisterJobService#execute when not using pending builds table when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been expired when the pipeline is unlocked behaves like not pick does not pick the build and drops the build9361 # Skipping because multiple databases are set up9362 # ./spec/services/ci/register_job_service_spec.rb:4899363 109) Ci::RegisterJobService#execute when not using pending builds table when "dependencies" keyword is specified behaves like validation is active when artifacts of depended job has been erased behaves like not pick does not pick the build and drops the build9364 # Skipping because multiple databases are set up9365 # ./spec/services/ci/register_job_service_spec.rb:4899366 110) Ci::RegisterJobService#execute when not using pending builds table when "dependencies" keyword is specified behaves like validation is active when job object is staled does not drop nor pick9367 # Skipping because multiple databases are set up9368 # ./spec/services/ci/register_job_service_spec.rb:5459369 111) Ci::RegisterJobService#execute when not using pending builds table when build is degenerated does not pick the build and drops the build9370 # Skipping because multiple databases are set up9371 # ./spec/services/ci/register_job_service_spec.rb:5939372 112) Ci::RegisterJobService#execute when not using pending builds table when build has data integrity problem does drop the build and logs both failures9373 # Skipping because multiple databases are set up9374 # ./spec/services/ci/register_job_service_spec.rb:6139375 113) Ci::RegisterJobService#execute when not using pending builds table when build fails to be run! does drop the build and logs failure9376 # Skipping because multiple databases are set up9377 # ./spec/services/ci/register_job_service_spec.rb:6399378 114) Ci::RegisterJobService#execute when not using pending builds table when an exception is raised during a persistent ref creation picks the build9379 # Skipping because multiple databases are set up9380 # ./spec/services/ci/register_job_service_spec.rb:6619381 115) Ci::RegisterJobService#execute when not using pending builds table when only some builds can be matched by runner observes queue size of only matching jobs9382 # Skipping because multiple databases are set up9383 # ./spec/services/ci/register_job_service_spec.rb:6799384 116) Ci::RegisterJobService#execute when not using pending builds table when only some builds can be matched by runner observes queue processing time by the runner type9385 # Skipping because multiple databases are set up9386 # ./spec/services/ci/register_job_service_spec.rb:6879387 117) Ci::RegisterJobService#execute when not using pending builds table when ci_register_job_temporary_lock is enabled when a build is temporarily locked skips this build and marks queue as invalid9388 # Skipping because multiple databases are set up9389 # ./spec/services/ci/register_job_service_spec.rb:7149390 118) Ci::RegisterJobService#execute when not using pending builds table when ci_register_job_temporary_lock is enabled when a build is temporarily locked when there is another build in queue skips this build and picks another build9391 # Skipping because multiple databases are set up9392 # ./spec/services/ci/register_job_service_spec.rb:7269393 119) ImportExportUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 9394 # No pattern provided, skipping.9395 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89396 120) ImportExportUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 9397 # No pattern provided, skipping.9398 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89399 121) ImportExportUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative9400 # Path not set, skipping.9401 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409402 122) ImportExportUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 9403 # No pattern provided, skipping.9404 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89405 123) ImportExportUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 9406 # No pattern provided, skipping.9407 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89408Finished in 40 minutes 11 seconds (files took 1 minute 23.52 seconds to load)94094033 examples, 0 failures, 123 pending9410RSpec exited with 0.9411No examples to retry, congrats!9413Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy9414Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy9416Uploading artifacts...9417coverage/: found 5 matching files and directories 9418crystalball/: found 2 matching files and directories 9419WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 9420knapsack/: found 3 matching files and directories 9421rspec/: found 8 matching files and directories 9422WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 9423log/*.log: found 19 matching files and directories 9424WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2649391736/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9425WARNING: Retrying... context=artifacts-uploader error=request redirected9426Uploading artifacts as "archive" to coordinator... 201 Created id=2649391736 responseStatus=201 Created token=Gnzm2SsK9427Uploading artifacts...9428rspec/junit_rspec.xml: found 1 matching files and directories 9429WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2649391736/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9430WARNING: Retrying... context=artifacts-uploader error=request redirected9431Uploading artifacts as "junit" to coordinator... 201 Created id=2649391736 responseStatus=201 Created token=Gnzm2SsK9433Job succeeded