rspec unit pg12 20/22
Passed Started
by
@sselhorn

Suzanne Selhorn
1Running with gitlab-runner 14.6.0~beta.71.gf035ecbf (f035ecbf)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:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:f1a5e4852a8c335ef0f1a3aae30c39c8484660d5aa7dfd5bb8756ee473575da5 for postgres:12 with digest postgres@sha256:0854202db0b3378c46909bab43a85b01dc1b92cc44520480e47dd4fbc22714ee ...10Starting service redis:5.0-alpine ...11Pulling docker image redis:5.0-alpine ...12Using docker image sha256:1746b159f8934fe63cae3984643ee8c5651bcfc80ae107032a60f2871a0e7cdb for redis:5.0-alpine with digest redis@sha256:a04b57e05b784a406bc818f6b450233328c4115a1e1f104d84ce916eb1583925 ...13Waiting for services to be up and running...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 ...16Using docker image sha256:5b9920187fd97abe77ba8b8a3c8029b970dbace758fd2dc8756c2976a4bff96d for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:4ab23b0728c6791b71363fe9413ab1d284f8d163988ebd8823dfb84f31aafe00 ...18Running on runner-suryygeg-project-278964-concurrent-0 via runner-suryygeg-shared-gitlab-org-1640008739-cdda5d2e...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: 121839, done. 25remote: Counting objects: 100% (121839/121839), done. 26remote: Compressing objects: 100% (83159/83159), done. 27remote: Total 121839 (delta 53730), reused 83033 (delta 34037), pack-reused 0 28Receiving objects: 100% (121839/121839), 116.76 MiB | 28.52 MiB/s, done.29Resolving deltas: 100% (53730/53730), done.31 * [new ref] a97668e1c6ce02835ce25d669c0aef89f6c2c400 -> refs/pipelines/43345824232Checking out a97668e1 as refs/merge-requests/76253/merge...33Skipping Git submodules setup35Checking cache for ruby-gems-v1-9...36Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-v1-9 37Successfully extracted cache38Checking cache for gitaly-ruby-gems-v1-9...39Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-v1-9 40Successfully extracted cache42Downloading artifacts for compile-test-assets (1904366238)...43Downloading artifacts from coordinator... ok id=1904366238 responseStatus=200 OK token=-yEmsZHS44Downloading artifacts for detect-tests (1904366266)...45Downloading artifacts from coordinator... ok id=1904366266 responseStatus=200 OK token=9stx6yy246Downloading artifacts for retrieve-tests-metadata (1904366282)...47Downloading artifacts from coordinator... ok id=1904366282 responseStatus=200 OK token=M7L1Bvz248Downloading artifacts for setup-test-env (1904366255)...49Downloading artifacts from coordinator... ok id=1904366255 responseStatus=200 OK token=wN13kysJ51Using docker image sha256:5b9920187fd97abe77ba8b8a3c8029b970dbace758fd2dc8756c2976a4bff96d for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:4ab23b0728c6791b71363fe9413ab1d284f8d163988ebd8823dfb84f31aafe00 ...52$ echo $FOSS_ONLY53$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb54$ export GOPATH=$CI_PROJECT_DIR/.go55$ mkdir -p $GOPATH56$ source scripts/utils.sh57$ source scripts/prepare_build.sh58Bundler version 2.1.459production:development60Settings are listed in order of priority. The top value will be used.61path62Set for the current user (/root/.bundle/config): "/builds/gitlab-org/gitlab/vendor"63clean64Set for the current user (/root/.bundle/config): "true"65without66Set via BUNDLE_WITHOUT: [:production, :development]67install_flags68Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"69$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check70The Gemfile's dependencies are satisfied71==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 1 seconds.72$ bundle pristine pg73Installing pg 1.2.3 with native extensions74==> 'bundle pristine pg' succeeded in 10 seconds.75$ setup_db_user_only76CREATE ROLE77GRANT78==> 'setup_db_user_only' succeeded in 0 seconds.79$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee80Dropped database 'gitlabhq_test'81Dropped database 'gitlabhq_geo_test'82Created database 'gitlabhq_test'83Created database 'gitlabhq_geo_test'84DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)85Dropped database 'gitlabhq_geo_test'86Created database 'gitlabhq_geo_test'87==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 29 seconds.88$ run_timed_command "gem install knapsack --no-document"89$ gem install knapsack --no-document90Successfully installed knapsack-4.0.0911 gem installed92==> 'gem install knapsack --no-document' succeeded in 0 seconds.93$ run_timed_command "scripts/gitaly-test-spawn"94$ scripts/gitaly-test-spawn95Don't run Bundler as root. Bundler can ask for sudo if it is needed, and96installing your bundle as root will break this application for all non-root97users on this machine.98Using abstract_type 0.0.799Using concurrent-ruby 1.1.9100Using i18n 1.8.10101Using minitest 5.14.4102Using tzinfo 2.0.4103Using zeitwerk 2.4.2104Using activesupport 6.1.4.1105Using builder 3.2.4106Using erubi 1.10.0107Using mini_portile2 2.5.1108Using racc 1.5.2109Using nokogiri 1.11.7 (x86_64-linux)110Using rails-dom-testing 2.0.3111Using crass 1.0.6112Using loofah 2.12.0113Using rails-html-sanitizer 1.4.2114Using actionview 6.1.4.1115Using rack 2.2.3116Using rack-test 1.1.0117Using actionpack 6.1.4.1118Using ice_nine 0.11.2119Using thread_safe 0.3.6120Using memoizable 0.4.2121Using adamantium 0.2.0122Using public_suffix 4.0.6123Using addressable 2.7.0124Using ast 2.4.2125Using binding_ninja 0.2.3126Using bundler 2.1.4127Using charlock_holmes 0.7.7128Using coderay 1.1.2129Using equalizer 0.0.11130Using concord 0.1.5131Using diff-lcs 1.3132Using dotenv 2.7.6133Using escape_utils 1.2.1134Using factory_bot 5.0.2135Using multipart-post 2.1.1136Using faraday 1.0.1137Using ffi 1.15.3138Using json 2.5.1139Using gemojione 3.3.0140Using mini_mime 1.0.2141Using rugged 1.2.0142Using github-linguist 7.12.1143Using github-markup 1.7.0144Using mime-types-data 3.2020.1104145Using mime-types 3.3.1146Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1147Using rouge 3.26.0148Using nokogumbo 1.5.0149Using sanitize 4.6.6150Using stringex 2.8.5151Using gitlab-gollum-lib 4.2.7.10.gitlab.1152Using google-protobuf 3.17.3 (x86_64-linux)153Using googleapis-common-protos-types 1.1.0154Using grpc 1.30.2 (x86_64-linux)155Using opentracing 0.5.0156Using thrift 0.15.0157Using jaeger-client 1.1.0158Using pg_query 2.1.1159Using redis 4.4.0160Using gitlab-labkit 0.21.2161Using rubyzip 2.3.2162Using thor 1.1.0163Using tomlrb 2.0.1164Using with_env 1.1.0165Using rexml 3.2.4166Using xml-simple 1.1.9167Using gitlab-license_finder 6.14.2.1168Using gitlab-markup 1.7.1169Using grpc-tools 1.30.2170Using sawyer 0.8.2171Using octokit 4.20.0172Using reverse_markdown 1.4.0173Using licensee 9.14.1174Using method_source 0.9.2175Using msgpack 1.3.3176Using optimist 3.0.1177Using parallel 1.19.2178Using parser 3.0.3.2179Using procto 0.0.3180Using unparser 0.4.7181Using proc_to_ast 0.1.0182Using pry 0.12.2183Using rainbow 3.0.0184Using rbtrace 0.4.14185Using rdoc 6.3.2186Using regexp_parser 1.8.1187Using rspec-support 3.8.0188Using rspec-core 3.8.0189Using rspec-expectations 3.8.3190Using rspec-mocks 3.8.0191Using rspec 3.8.0192Using rspec-parameterized 0.4.2193Using rubocop-ast 0.2.0194Using ruby-progressbar 1.10.1195Using unicode-display_width 1.7.0196Using rubocop 0.86.0197Using sentry-raven 3.0.4198Using timecop 0.9.1199Bundle complete! 22 Gemfile dependencies, 101 gems now installed.200Gems in the groups production and development were not installed.201Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`202Checking gitaly-ruby Gemfile...203Checking gitaly-ruby bundle...204The Gemfile's dependencies are satisfied205Trying to connect to gitaly: ............................................... OK206Trying to connect to gitaly2: ............................................................... OK207Trying to connect to praefect: .......... OK208==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.209$ source ./scripts/rspec_helpers.sh210$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"211KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb212SKIP_FLAKY_TESTS_AUTOMATICALLY: true213Knapsack node specs:214spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb215spec/services/merge_requests/push_options_handler_service_spec.rb216spec/models/clusters/cluster_spec.rb217spec/models/integrations/jira_spec.rb218spec/services/groups/destroy_service_spec.rb219spec/policies/group_policy_spec.rb220spec/models/integrations/microsoft_teams_spec.rb221spec/services/packages/debian/generate_distribution_service_spec.rb222spec/lib/gitlab/email/handler/service_desk_handler_spec.rb223spec/policies/environment_policy_spec.rb224spec/helpers/packages_helper_spec.rb225spec/finders/notes_finder_spec.rb226spec/lib/gitlab/background_migration/backfill_artifact_expiry_date_spec.rb227spec/services/clusters/applications/create_service_spec.rb228spec/lib/gitlab/reference_extractor_spec.rb229spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb230spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb231spec/lib/gitlab/contributions_calendar_spec.rb232spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb233spec/graphql/resolvers/todo_resolver_spec.rb234spec/lib/gitlab/git/wiki_spec.rb235spec/graphql/resolvers/board_list_issues_resolver_spec.rb236spec/lib/gitlab/bitbucket_import/importer_spec.rb237spec/models/active_session_spec.rb238spec/services/issue_links/create_service_spec.rb239spec/models/broadcast_message_spec.rb240spec/serializers/merge_request_poll_widget_entity_spec.rb241spec/models/ci/build_runner_session_spec.rb242spec/services/projects/container_repository/cleanup_tags_service_spec.rb243spec/services/ci/stuck_builds/drop_running_service_spec.rb244spec/models/key_spec.rb245spec/models/concerns/deprecated_assignee_spec.rb246spec/lib/gitlab/search/abuse_detection_spec.rb247spec/lib/gitlab/cycle_analytics/permissions_spec.rb248spec/services/notification_recipients/build_service_spec.rb249spec/lib/gitlab/redis/rate_limiting_spec.rb250spec/lib/gitlab/metrics/dashboard/finder_spec.rb251spec/services/container_expiration_policies/update_service_spec.rb252spec/serializers/stage_entity_spec.rb253spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb254spec/lib/gitlab/changelog/config_spec.rb255spec/models/ci/pending_build_spec.rb256spec/lib/gitlab/ci/config/entry/bridge_spec.rb257spec/workers/remove_expired_group_links_worker_spec.rb258spec/models/deployment_metrics_spec.rb259spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb260spec/serializers/ci/lint/result_serializer_spec.rb261spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb262spec/lib/banzai/filter/emoji_filter_spec.rb263spec/helpers/todos_helper_spec.rb264spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb265spec/models/alert_management/http_integration_spec.rb266spec/graphql/resolvers/group_milestones_resolver_spec.rb267spec/models/ci/build_trace_chunks/database_spec.rb268spec/lib/feature/definition_spec.rb269spec/lib/gitlab/static_site_editor/config/file_config/entry/global_spec.rb270spec/models/event_collection_spec.rb271spec/services/system_notes/time_tracking_service_spec.rb272spec/lib/gitlab/chat/output_spec.rb273spec/presenters/snippet_blob_presenter_spec.rb274spec/lib/gitlab/application_context_spec.rb275spec/lib/gitlab/metrics/web_transaction_spec.rb276spec/services/users/refresh_authorized_projects_service_spec.rb277spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb278spec/initializers/direct_upload_support_spec.rb279spec/models/wiki_page/slug_spec.rb280spec/services/merge_requests/resolved_discussion_notification_service_spec.rb281spec/lib/gitlab/subscription_portal_spec.rb282spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb283spec/models/integrations/ewm_spec.rb284spec/lib/gitlab/git_access_project_spec.rb285spec/models/instance_configuration_spec.rb286spec/workers/ci/archive_traces_cron_worker_spec.rb287spec/models/experiment_subject_spec.rb288spec/finders/deploy_tokens/tokens_finder_spec.rb289spec/views/notify/pipeline_failed_email.text.erb_spec.rb290spec/services/ci/create_pipeline_service/logger_spec.rb291spec/lib/json_web_token/hmac_token_spec.rb292spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb293spec/workers/ci/delete_unit_tests_worker_spec.rb294spec/workers/expire_build_instance_artifacts_worker_spec.rb295spec/lib/gitlab/ci/build/policy/changes_spec.rb296spec/lib/gitlab/untrusted_regexp_spec.rb297spec/lib/gitlab/ci/parsers/security/sast_spec.rb298spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb299spec/views/projects/merge_requests/edit.html.haml_spec.rb300spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb301spec/models/packages/debian/project_component_spec.rb302spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb303spec/models/tree_spec.rb304spec/services/dependency_proxy/download_blob_service_spec.rb305spec/lib/gitlab/ci/config/entry/commands_spec.rb306spec/lib/gitlab/ci/status/build/scheduled_spec.rb307spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb308spec/lib/gitlab/bare_repository_import/repository_spec.rb309spec/lib/gitlab/ci/config/entry/artifacts_spec.rb310spec/services/personal_access_tokens/revoke_service_spec.rb311spec/serializers/stage_serializer_spec.rb312spec/services/prometheus/create_default_alerts_service_spec.rb313spec/lib/gitlab/database/loose_index_scan_distinct_count_spec.rb314spec/lib/gitlab/database/gitlab_schema_spec.rb315spec/services/users/update_canonical_email_service_spec.rb316spec/lib/gitlab/ci/config/entry/prefix_spec.rb317spec/validators/array_members_validator_spec.rb318spec/validators/qualified_domain_array_validator_spec.rb319spec/finders/clusters_finder_spec.rb320spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb321spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb322spec/lib/gitlab/import_export/shared_spec.rb323spec/rubocop/cop/graphql/resolver_type_spec.rb324spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb325spec/lib/safe_zip/extract_params_spec.rb326spec/services/users/dismiss_group_callout_service_spec.rb327spec/lib/banzai/filter/wiki_link_filter_spec.rb328spec/services/clusters/aws/provision_service_spec.rb329spec/workers/clusters/applications/activate_service_worker_spec.rb330spec/serializers/deployment_serializer_spec.rb331spec/rubocop/cop/migration/timestamps_spec.rb332spec/rubocop/cop/put_group_routes_under_scope_spec.rb333spec/graphql/types/base_argument_spec.rb334spec/lib/api/entities/project_spec.rb335spec/models/legacy_diff_discussion_spec.rb336spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb337spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb338spec/graphql/mutations/customer_relations/contacts/create_spec.rb339spec/lib/gitlab/graphql/markdown_field_spec.rb340spec/lib/gitlab/auth/ip_rate_limiter_spec.rb341spec/services/ci/after_requeue_job_service_spec.rb342spec/graphql/mutations/clusters/agents/delete_spec.rb343spec/services/ci/build_cancel_service_spec.rb344spec/lib/gitlab/import_export/lfs_saver_spec.rb345spec/finders/users_star_projects_finder_spec.rb346spec/lib/gitlab/sidekiq_signals_spec.rb347spec/services/projects/enable_deploy_key_service_spec.rb348spec/lib/gitlab/prometheus/metric_group_spec.rb349spec/models/ci/build_need_spec.rb350spec/finders/milestones_finder_spec.rb351spec/lib/gitlab/diff/formatters/text_formatter_spec.rb352spec/lib/feature/gitaly_spec.rb353spec/lib/gitlab/terraform_registry_token_spec.rb354spec/lib/gitlab/zoom_link_extractor_spec.rb355spec/initializers/trusted_proxies_spec.rb356spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb357spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb358spec/lib/gitlab/import_export/uploads_saver_spec.rb359spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb360spec/lib/gitlab/diff/pair_selector_spec.rb361spec/lib/system_check/orphans/repository_check_spec.rb362spec/graphql/resolvers/user_resolver_spec.rb363spec/serializers/ci/daily_build_group_report_result_entity_spec.rb364spec/lib/api/entities/package_spec.rb365spec/lib/api/validations/validators/git_sha_spec.rb366spec/workers/update_external_pull_requests_worker_spec.rb367spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb368spec/validators/any_field_validator_spec.rb369spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb370spec/validators/public_url_validator_spec.rb371spec/lib/sidebars/projects/menus/deployments_menu_spec.rb372spec/lib/gitlab/process_memory_cache/helper_spec.rb373spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb374spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb375spec/services/events/destroy_service_spec.rb376spec/lib/gitlab/language_detection_spec.rb377spec/helpers/time_helper_spec.rb378spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb379spec/graphql/resolvers/paginated_tree_resolver_spec.rb380spec/views/shared/milestones/_top.html.haml_spec.rb381spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb382spec/lib/gitlab/metrics/sli_spec.rb383spec/graphql/types/packages/tag_type_spec.rb384spec/lib/gitlab/request_endpoints_spec.rb385spec/lib/gitlab/database/async_indexes_spec.rb386spec/models/loose_foreign_keys/modification_tracker_spec.rb387spec/services/ci/compare_accessibility_reports_service_spec.rb388spec/workers/object_pool/destroy_worker_spec.rb389spec/lib/gitlab/manifest_import/manifest_spec.rb390spec/workers/auto_merge_process_worker_spec.rb391spec/services/milestones/merge_requests_count_service_spec.rb392spec/services/reset_project_cache_service_spec.rb393spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb394spec/lib/bulk_imports/pipeline/extracted_data_spec.rb395spec/lib/gitlab/ci/status/manual_spec.rb396spec/rubocop/cop/code_reuse/worker_spec.rb397spec/lib/bitbucket_server/paginator_spec.rb398spec/workers/propagate_integration_inherit_descendant_worker_spec.rb399spec/rubocop/cop/migration/prevent_strings_spec.rb400spec/tooling/danger/product_intelligence_spec.rb401spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb402spec/views/notify/push_to_merge_request_email.text.haml_spec.rb403spec/services/packages/rubygems/metadata_extraction_service_spec.rb404spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb405spec/services/projects/container_repository/destroy_service_spec.rb406spec/graphql/types/ci/pipeline_type_spec.rb407spec/lib/gitlab/github_import/page_counter_spec.rb408spec/lib/bulk_imports/groups/stage_spec.rb409spec/lib/gitlab/static_site_editor/config/file_config/entry/mounts_spec.rb410spec/lib/gitlab/exception_log_formatter_spec.rb411spec/lib/gitlab/ci/config/entry/tags_spec.rb412spec/services/analytics/cycle_analytics/stages/list_service_spec.rb413spec/lib/gitlab/import_export/import_export_spec.rb414spec/db/development/import_common_metrics_spec.rb415spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb416spec/serializers/import/fogbugz_provider_repo_entity_spec.rb417spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb418spec/models/oauth_access_grant_spec.rb419spec/lib/gitlab/diff/inline_diff_spec.rb420spec/lib/api/validations/validators/git_ref_spec.rb421spec/finders/repositories/changelog_tag_finder_spec.rb422spec/rubocop/cop/rspec/timecop_travel_spec.rb423spec/lib/gitlab/tcp_checker_spec.rb424spec/lib/gitlab/git_access_design_spec.rb425spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb426spec/lib/gitlab/gon_helper_spec.rb427spec/lib/gitlab/cluster/rack_timeout_observer_spec.rb428spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb429spec/lib/api/ci/helpers/runner_helpers_spec.rb430spec/helpers/pagination_helper_spec.rb431spec/services/bulk_imports/get_importable_data_service_spec.rb432spec/rubocop/cop/user_admin_spec.rb433spec/serializers/admin/user_serializer_spec.rb434spec/services/emails/confirm_service_spec.rb435spec/serializers/ci/lint/result_entity_spec.rb436spec/lib/gitlab/import_export/import_test_coverage_spec.rb437spec/workers/todos_destroyer/project_private_worker_spec.rb438spec/workers/schedule_migrate_external_diffs_worker_spec.rb439spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb440spec/graphql/types/permission_types/ci/runner_spec.rb441spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rb442spec/models/gpg_key_subkey_spec.rb443spec/graphql/types/packages/composer/metadatum_type_spec.rb444spec/models/issues/csv_import_spec.rb445spec/workers/environments/auto_stop_cron_worker_spec.rb446spec/models/concerns/database_reflection_spec.rb447spec/graphql/types/ci/job_artifact_file_type_enum_spec.rb448spec/helpers/ci/pipeline_editor_helper_spec.rb449spec/lib/gitlab/config/entry/attributable_spec.rb450spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb451spec/models/integrations/base_issue_tracker_spec.rb452spec/services/ide/terminal_config_service_spec.rb453spec/workers/concerns/repository_check_queue_spec.rb454Filter specs:455Running specs:456Running all node tests without filter457spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb458spec/services/merge_requests/push_options_handler_service_spec.rb459spec/models/clusters/cluster_spec.rb460spec/models/integrations/jira_spec.rb461spec/services/groups/destroy_service_spec.rb462spec/policies/group_policy_spec.rb463spec/models/integrations/microsoft_teams_spec.rb464spec/services/packages/debian/generate_distribution_service_spec.rb465spec/lib/gitlab/email/handler/service_desk_handler_spec.rb466spec/policies/environment_policy_spec.rb467spec/helpers/packages_helper_spec.rb468spec/finders/notes_finder_spec.rb469spec/lib/gitlab/background_migration/backfill_artifact_expiry_date_spec.rb470spec/services/clusters/applications/create_service_spec.rb471spec/lib/gitlab/reference_extractor_spec.rb472spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb473spec/lib/gitlab/background_migration/migrate_merge_request_diff_commit_users_spec.rb474spec/lib/gitlab/contributions_calendar_spec.rb475spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb476spec/graphql/resolvers/todo_resolver_spec.rb477spec/lib/gitlab/git/wiki_spec.rb478spec/graphql/resolvers/board_list_issues_resolver_spec.rb479spec/lib/gitlab/bitbucket_import/importer_spec.rb480spec/models/active_session_spec.rb481spec/services/issue_links/create_service_spec.rb482spec/models/broadcast_message_spec.rb483spec/serializers/merge_request_poll_widget_entity_spec.rb484spec/models/ci/build_runner_session_spec.rb485spec/services/projects/container_repository/cleanup_tags_service_spec.rb486spec/services/ci/stuck_builds/drop_running_service_spec.rb487spec/models/key_spec.rb488spec/models/concerns/deprecated_assignee_spec.rb489spec/lib/gitlab/search/abuse_detection_spec.rb490spec/lib/gitlab/cycle_analytics/permissions_spec.rb491spec/services/notification_recipients/build_service_spec.rb492spec/lib/gitlab/redis/rate_limiting_spec.rb493spec/lib/gitlab/metrics/dashboard/finder_spec.rb494spec/services/container_expiration_policies/update_service_spec.rb495spec/serializers/stage_entity_spec.rb496spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb497spec/lib/gitlab/changelog/config_spec.rb498spec/models/ci/pending_build_spec.rb499spec/lib/gitlab/ci/config/entry/bridge_spec.rb500spec/workers/remove_expired_group_links_worker_spec.rb501spec/models/deployment_metrics_spec.rb502spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb503spec/serializers/ci/lint/result_serializer_spec.rb504spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb505spec/lib/banzai/filter/emoji_filter_spec.rb506spec/helpers/todos_helper_spec.rb507spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb508spec/models/alert_management/http_integration_spec.rb509spec/graphql/resolvers/group_milestones_resolver_spec.rb510spec/models/ci/build_trace_chunks/database_spec.rb511spec/lib/feature/definition_spec.rb512spec/lib/gitlab/static_site_editor/config/file_config/entry/global_spec.rb513spec/models/event_collection_spec.rb514spec/services/system_notes/time_tracking_service_spec.rb515spec/lib/gitlab/chat/output_spec.rb516spec/presenters/snippet_blob_presenter_spec.rb517spec/lib/gitlab/application_context_spec.rb518spec/lib/gitlab/metrics/web_transaction_spec.rb519spec/services/users/refresh_authorized_projects_service_spec.rb520spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb521spec/initializers/direct_upload_support_spec.rb522spec/models/wiki_page/slug_spec.rb523spec/services/merge_requests/resolved_discussion_notification_service_spec.rb524spec/lib/gitlab/subscription_portal_spec.rb525spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb526spec/models/integrations/ewm_spec.rb527spec/lib/gitlab/git_access_project_spec.rb528spec/models/instance_configuration_spec.rb529spec/workers/ci/archive_traces_cron_worker_spec.rb530spec/models/experiment_subject_spec.rb531spec/finders/deploy_tokens/tokens_finder_spec.rb532spec/views/notify/pipeline_failed_email.text.erb_spec.rb533spec/services/ci/create_pipeline_service/logger_spec.rb534spec/lib/json_web_token/hmac_token_spec.rb535spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb536spec/workers/ci/delete_unit_tests_worker_spec.rb537spec/workers/expire_build_instance_artifacts_worker_spec.rb538spec/lib/gitlab/ci/build/policy/changes_spec.rb539spec/lib/gitlab/untrusted_regexp_spec.rb540spec/lib/gitlab/ci/parsers/security/sast_spec.rb541spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb542spec/views/projects/merge_requests/edit.html.haml_spec.rb543spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb544spec/models/packages/debian/project_component_spec.rb545spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb546spec/models/tree_spec.rb547spec/services/dependency_proxy/download_blob_service_spec.rb548spec/lib/gitlab/ci/config/entry/commands_spec.rb549spec/lib/gitlab/ci/status/build/scheduled_spec.rb550spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb551spec/lib/gitlab/bare_repository_import/repository_spec.rb552spec/lib/gitlab/ci/config/entry/artifacts_spec.rb553spec/services/personal_access_tokens/revoke_service_spec.rb554spec/serializers/stage_serializer_spec.rb555spec/services/prometheus/create_default_alerts_service_spec.rb556spec/lib/gitlab/database/loose_index_scan_distinct_count_spec.rb557spec/lib/gitlab/database/gitlab_schema_spec.rb558spec/services/users/update_canonical_email_service_spec.rb559spec/lib/gitlab/ci/config/entry/prefix_spec.rb560spec/validators/array_members_validator_spec.rb561spec/validators/qualified_domain_array_validator_spec.rb562spec/finders/clusters_finder_spec.rb563spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb564spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb565spec/lib/gitlab/import_export/shared_spec.rb566spec/rubocop/cop/graphql/resolver_type_spec.rb567spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb568spec/lib/safe_zip/extract_params_spec.rb569spec/services/users/dismiss_group_callout_service_spec.rb570spec/lib/banzai/filter/wiki_link_filter_spec.rb571spec/services/clusters/aws/provision_service_spec.rb572spec/workers/clusters/applications/activate_service_worker_spec.rb573spec/serializers/deployment_serializer_spec.rb574spec/rubocop/cop/migration/timestamps_spec.rb575spec/rubocop/cop/put_group_routes_under_scope_spec.rb576spec/graphql/types/base_argument_spec.rb577spec/lib/api/entities/project_spec.rb578spec/models/legacy_diff_discussion_spec.rb579spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb580spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb581spec/graphql/mutations/customer_relations/contacts/create_spec.rb582spec/lib/gitlab/graphql/markdown_field_spec.rb583spec/lib/gitlab/auth/ip_rate_limiter_spec.rb584spec/services/ci/after_requeue_job_service_spec.rb585spec/graphql/mutations/clusters/agents/delete_spec.rb586spec/services/ci/build_cancel_service_spec.rb587spec/lib/gitlab/import_export/lfs_saver_spec.rb588spec/finders/users_star_projects_finder_spec.rb589spec/lib/gitlab/sidekiq_signals_spec.rb590spec/services/projects/enable_deploy_key_service_spec.rb591spec/lib/gitlab/prometheus/metric_group_spec.rb592spec/models/ci/build_need_spec.rb593spec/finders/milestones_finder_spec.rb594spec/lib/gitlab/diff/formatters/text_formatter_spec.rb595spec/lib/feature/gitaly_spec.rb596spec/lib/gitlab/terraform_registry_token_spec.rb597spec/lib/gitlab/zoom_link_extractor_spec.rb598spec/initializers/trusted_proxies_spec.rb599spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb600spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb601spec/lib/gitlab/import_export/uploads_saver_spec.rb602spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb603spec/lib/gitlab/diff/pair_selector_spec.rb604spec/lib/system_check/orphans/repository_check_spec.rb605spec/graphql/resolvers/user_resolver_spec.rb606spec/serializers/ci/daily_build_group_report_result_entity_spec.rb607spec/lib/api/entities/package_spec.rb608spec/lib/api/validations/validators/git_sha_spec.rb609spec/workers/update_external_pull_requests_worker_spec.rb610spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb611spec/validators/any_field_validator_spec.rb612spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb613spec/validators/public_url_validator_spec.rb614spec/lib/sidebars/projects/menus/deployments_menu_spec.rb615spec/lib/gitlab/process_memory_cache/helper_spec.rb616spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb617spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb618spec/services/events/destroy_service_spec.rb619spec/lib/gitlab/language_detection_spec.rb620spec/helpers/time_helper_spec.rb621spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb622spec/graphql/resolvers/paginated_tree_resolver_spec.rb623spec/views/shared/milestones/_top.html.haml_spec.rb624spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb625spec/lib/gitlab/metrics/sli_spec.rb626spec/graphql/types/packages/tag_type_spec.rb627spec/lib/gitlab/request_endpoints_spec.rb628spec/lib/gitlab/database/async_indexes_spec.rb629spec/models/loose_foreign_keys/modification_tracker_spec.rb630spec/services/ci/compare_accessibility_reports_service_spec.rb631spec/workers/object_pool/destroy_worker_spec.rb632spec/lib/gitlab/manifest_import/manifest_spec.rb633spec/workers/auto_merge_process_worker_spec.rb634spec/services/milestones/merge_requests_count_service_spec.rb635spec/services/reset_project_cache_service_spec.rb636spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb637spec/lib/bulk_imports/pipeline/extracted_data_spec.rb638spec/lib/gitlab/ci/status/manual_spec.rb639spec/rubocop/cop/code_reuse/worker_spec.rb640spec/lib/bitbucket_server/paginator_spec.rb641spec/workers/propagate_integration_inherit_descendant_worker_spec.rb642spec/rubocop/cop/migration/prevent_strings_spec.rb643spec/tooling/danger/product_intelligence_spec.rb644spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb645spec/views/notify/push_to_merge_request_email.text.haml_spec.rb646spec/services/packages/rubygems/metadata_extraction_service_spec.rb647spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb648spec/services/projects/container_repository/destroy_service_spec.rb649spec/graphql/types/ci/pipeline_type_spec.rb650spec/lib/gitlab/github_import/page_counter_spec.rb651spec/lib/bulk_imports/groups/stage_spec.rb652spec/lib/gitlab/static_site_editor/config/file_config/entry/mounts_spec.rb653spec/lib/gitlab/exception_log_formatter_spec.rb654spec/lib/gitlab/ci/config/entry/tags_spec.rb655spec/services/analytics/cycle_analytics/stages/list_service_spec.rb656spec/lib/gitlab/import_export/import_export_spec.rb657spec/db/development/import_common_metrics_spec.rb658spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb659spec/serializers/import/fogbugz_provider_repo_entity_spec.rb660spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb661spec/models/oauth_access_grant_spec.rb662spec/lib/gitlab/diff/inline_diff_spec.rb663spec/lib/api/validations/validators/git_ref_spec.rb664spec/finders/repositories/changelog_tag_finder_spec.rb665spec/rubocop/cop/rspec/timecop_travel_spec.rb666spec/lib/gitlab/tcp_checker_spec.rb667spec/lib/gitlab/git_access_design_spec.rb668spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb669spec/lib/gitlab/gon_helper_spec.rb670spec/lib/gitlab/cluster/rack_timeout_observer_spec.rb671spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb672spec/lib/api/ci/helpers/runner_helpers_spec.rb673spec/helpers/pagination_helper_spec.rb674spec/services/bulk_imports/get_importable_data_service_spec.rb675spec/rubocop/cop/user_admin_spec.rb676spec/serializers/admin/user_serializer_spec.rb677spec/services/emails/confirm_service_spec.rb678spec/serializers/ci/lint/result_entity_spec.rb679spec/lib/gitlab/import_export/import_test_coverage_spec.rb680spec/workers/todos_destroyer/project_private_worker_spec.rb681spec/workers/schedule_migrate_external_diffs_worker_spec.rb682spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb683spec/graphql/types/permission_types/ci/runner_spec.rb684spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rbKnapsack report generator started!685Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}686==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.034812228 seconds...687Test environment set up in 0.835306289 seconds688Ci::PipelineProcessing::AtomicProcessingService689 Pipeline Processing Service Tests With Yaml690 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_on_failure.yml"691 follows transitions692 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_fails_with_allow_failure.yml"693 follows transitions694 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test.yml"695 follows transitions696 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_with_allow_failure_test_on_failure.yml"697 follows transitions698 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_stage_needs.yml"699 follows transitions700 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails.yml"701 follows transitions702 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_manual_allow_failure_true.yml"703 follows transitions704 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_on_failure.yml"705 follows transitions706 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_delayed_and_needs_test.yml"707 follows transitions708 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_test_manual_review_deploy.yml"709 follows transitions710 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_test.yml"711 follows transitions712 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_rules_out_test_needs_build_with_optional.yml"713 follows transitions714 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_always.yml"715 follows transitions716 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_always.yml"717 follows transitions718 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails.yml"719 follows transitions720 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_fails_with_allow_failure.yml"721 follows transitions722 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure.yml"723 follows transitions724 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_on_failure.yml"725 follows transitions726 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test.yml"727 follows transitions728 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure_deploy_needs_test.yml"729 follows transitions730 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_on_failure.yml"731 follows transitions732 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test_when_always.yml"733 follows transitions734 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_other_test_succeeds_deploy_needs_both.yml"735 follows transitions736 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_manual_and_needs_test.yml"737 follows transitions738 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_post_test_needs_deploy_is_stage.yml"739 follows transitions740 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_two_manual_review_test_staging_production.yml"741 follows transitions742 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test.yml"743 follows transitions744 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_both.yml"745 follows transitions746 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build2_build1_rules_out_test_needs_build1_with_optional.yml"747 follows transitions748 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_succeeds.yml"749 follows transitions750 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_test_on_failure.yml"751 follows transitions752 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure_deploy_needs_test.yml"753 follows transitions754 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_with_allow_failure_test_on_failure.yml"755 follows transitions756 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_false.yml"757 follows transitions758 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_manual_review_deploy.yml"759 follows transitions760 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_always.yml"761 follows transitions762 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure.yml"763 follows transitions764 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false.yml"765 follows transitions766 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_other_test_succeeds_deploy_needs_both.yml"767 follows transitions768 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_fails.yml"769 follows transitions770 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test_when_always.yml"771 follows transitions772 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test_when_always.yml"773 follows transitions774 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true.yml"775 follows transitions776 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_and_different_stage_needs.yml"777 follows transitions778 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_deploy_needs_empty.yml"779 follows transitions780 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stages.yml"781 follows transitions782 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_always.yml"783 follows transitions784 Pipeline Processing Service785 when simple pipeline is defined786 processes a pipeline787 does not process pipeline if existing stage is running788 custom stage with first job allowed to fail789 automatically triggers a next stage when build finishes790 when optional manual actions are defined791 when builds are successful792 properly processes the pipeline793 when test job fails794 properly processes the pipeline795 when test and test_failure jobs fail796 properly processes the pipeline797 when deploy job fails798 properly processes the pipeline799 when build is canceled in the second stage800 does not schedule builds after build has been canceled801 when listing optional manual actions802 returns only for skipped builds803 when delayed jobs are defined804 when the scene is timed incremental rollout805 when builds are successful806 properly processes the pipeline807 when build job fails808 properly processes the pipeline809 when rollout 10% is unscheduled810 properly processes the pipeline811 when user plays rollout 10%812 schedules rollout100%813 when rollout 10% fails814 properly processes the pipeline815 when user retries rollout 10%816 does not schedule rollout10% again817 when rollout 10% is played immidiately818 properly processes the pipeline819 when only one scheduled job exists in a pipeline820 properly processes the pipeline821 when there are two delayed jobs in a stage822 blocks the stage until all scheduled jobs finished823 when a delayed job is allowed to fail824 blocks the stage and continues after it failed825 when an exception is raised during a persistent ref creation826 process the pipeline827 when there are manual action in earlier stages828 when first stage has only optional manual actions829 starts from the second stage830 when second stage has only optional manual actions831 skips second stage and continues on third stage832 when there are only manual actions in stages833 processes all jobs until blocking actions encountered834 when there is only one manual action835 skips the pipeline836 when the action was played837 queues the action and pipeline838 when blocking manual actions are defined839 when first stage succeeds840 blocks pipeline on stage with first manual action841 when first stage fails842 does not take blocking action into account843 when pipeline is promoted sequentially up to the end844 properly processes entire pipeline845 when second stage has only on_failure jobs846 skips second stage and continues on third stage847 when failed build in the middle stage is retried848 when failed build is the only unsuccessful build in the stage849 does trigger builds in the next stage850 when builds with auto-retries are configured851 automatically retries builds in a valid order852 when pipeline with needs is created853 when linux:* finishes first it runs it out of order854 when one of the jobs is run on a failure855 when another job in build phase fails first856 does skip linux:notify857 when linux:build job fails first858 does run linux:notify859 when there is a job scheduled with dag but no need (needs: [])860 runs deploy_pages without waiting prior stages861 when a needed job is skipped862 skips the jobs depending on it863 when a needed job is manual864 makes deploy DAG to be skipped865 when a bridge job has parallel:matrix config866 creates pipeline with bridges, then passes the matrix variables to downstream jobs867 when a bridge job has invalid downstream project868 creates a pipeline, then fails the bridge job869MergeRequests::PushOptionsHandlerService870 `create` push option871 with a new branch872 behaves like a service that can create a merge request873 creates a merge request with the correct target branch874 when project has been forked875 sets the correct source and target project876 with an existing branch but no open MR877 behaves like a service that can create a merge request878 creates a merge request with the correct target branch879 when project has been forked880 sets the correct source and target project881 with an existing branch that has a merge request open882 behaves like a service that does not create a merge request883 is expected not to change `MergeRequest.count`884 behaves like with a deleted branch885 behaves like a service that does nothing886 is expected not to change `MergeRequest.count`887 is expected not to change `MergeRequest.maximum(:updated_at)`888 behaves like with the project default branch889 behaves like a service that does nothing890 is expected not to change `MergeRequest.count`891 is expected not to change `MergeRequest.maximum(:updated_at)`892 `merge_when_pipeline_succeeds` push option893 with a new branch894 adds an error to the service895 behaves like a service that does not create a merge request896 is expected not to change `MergeRequest.count`897 when coupled with the `create` push option898 behaves like a service that can create a merge request899 creates a merge request with the correct target branch900 when project has been forked901 sets the correct source and target project902 behaves like a service that can set the merge request to merge when pipeline succeeds903 sets auto_merge_enabled904 with an existing branch but no open MR905 adds an error to the service906 behaves like a service that does not create a merge request907 is expected not to change `MergeRequest.count`908 when coupled with the `create` push option909 behaves like a service that can create a merge request910 creates a merge request with the correct target branch911 when project has been forked912 sets the correct source and target project913 behaves like a service that can set the merge request to merge when pipeline succeeds914 sets auto_merge_enabled915 with an existing branch that has a merge request open916 behaves like a service that does not create a merge request917 is expected not to change `MergeRequest.count`918 behaves like a service that can set the merge request to merge when pipeline succeeds919 sets auto_merge_enabled920 behaves like with a deleted branch921 behaves like a service that does nothing922 is expected not to change `MergeRequest.count`923 is expected not to change `MergeRequest.maximum(:updated_at)`924 behaves like with the project default branch925 behaves like a service that does nothing926 is expected not to change `MergeRequest.count`927 is expected not to change `MergeRequest.maximum(:updated_at)`928 `remove_source_branch` push option929 with a new branch930 adds an error to the service931 behaves like a service that does not create a merge request932 is expected not to change `MergeRequest.count`933 when coupled with the `create` push option934 behaves like a service that can create a merge request935 creates a merge request with the correct target branch936 when project has been forked937 sets the correct source and target project938 behaves like a service that can remove the source branch when it is merged939 returns true to force_remove_source_branch?940 with an existing branch but no open MR941 adds an error to the service942 behaves like a service that does not create a merge request943 is expected not to change `MergeRequest.count`944 when coupled with the `create` push option945 behaves like a service that can create a merge request946 creates a merge request with the correct target branch947 when project has been forked948 sets the correct source and target project949 behaves like a service that can remove the source branch when it is merged950 returns true to force_remove_source_branch?951 with an existing branch that has a merge request open952 behaves like a service that does not create a merge request953 is expected not to change `MergeRequest.count`954 behaves like a service that can remove the source branch when it is merged955 returns true to force_remove_source_branch?956 behaves like with a deleted branch957 behaves like a service that does nothing958 is expected not to change `MergeRequest.count`959 is expected not to change `MergeRequest.maximum(:updated_at)`960 behaves like with the project default branch961 behaves like a service that does nothing962 is expected not to change `MergeRequest.count`963 is expected not to change `MergeRequest.maximum(:updated_at)`964 `target` push option965 with a new branch966 adds an error to the service967 behaves like a service that does not create a merge request968 is expected not to change `MergeRequest.count`969 when coupled with the `create` push option970 behaves like a service that can create a merge request971 creates a merge request with the correct target branch972 when project has been forked973 sets the correct source and target project974 behaves like a service that can set the target of a merge request975 sets the target_branch976 with an existing branch but no open MR977 adds an error to the service978 behaves like a service that does not create a merge request979 is expected not to change `MergeRequest.count`980 when coupled with the `create` push option981 behaves like a service that can create a merge request982 creates a merge request with the correct target branch983 when project has been forked984 sets the correct source and target project985 behaves like a service that can set the target of a merge request986 sets the target_branch987 with an existing branch that has a merge request open988 behaves like a service that does not create a merge request989 is expected not to change `MergeRequest.count`990 behaves like a service that can set the target of a merge request991 sets the target_branch992 behaves like with a deleted branch993 behaves like a service that does nothing994 is expected not to change `MergeRequest.count`995 is expected not to change `MergeRequest.maximum(:updated_at)`996 behaves like with the project default branch997 behaves like a service that does nothing998 is expected not to change `MergeRequest.count`999 is expected not to change `MergeRequest.maximum(:updated_at)`1000 `title` push option1001 with a new branch1002 adds an error to the service1003 behaves like a service that does not create a merge request1004 is expected not to change `MergeRequest.count`1005 when coupled with the `create` push option1006 behaves like a service that can create a merge request1007 creates a merge request with the correct target branch1008 when project has been forked1009 sets the correct source and target project1010 behaves like a service that can set the title of a merge request1011 sets the title1012 with an existing branch but no open MR1013 adds an error to the service1014 behaves like a service that does not create a merge request1015 is expected not to change `MergeRequest.count`1016 when coupled with the `create` push option1017 behaves like a service that can create a merge request1018 creates a merge request with the correct target branch1019 when project has been forked1020 sets the correct source and target project1021 behaves like a service that can set the title of a merge request1022 sets the title1023 with an existing branch that has a merge request open1024 behaves like a service that does not create a merge request1025 is expected not to change `MergeRequest.count`1026 behaves like a service that can set the title of a merge request1027 sets the title1028 behaves like with a deleted branch1029 behaves like a service that does nothing1030 is expected not to change `MergeRequest.count`1031 is expected not to change `MergeRequest.maximum(:updated_at)`1032 behaves like with the project default branch1033 behaves like a service that does nothing1034 is expected not to change `MergeRequest.count`1035 is expected not to change `MergeRequest.maximum(:updated_at)`1036 `description` push option1037 with a new branch1038 adds an error to the service1039 behaves like a service that does not create a merge request1040 is expected not to change `MergeRequest.count`1041 when coupled with the `create` push option1042 behaves like a service that can create a merge request1043 creates a merge request with the correct target branch1044 when project has been forked1045 sets the correct source and target project1046 behaves like a service that can set the description of a merge request1047 sets the description1048 with an existing branch but no open MR1049 adds an error to the service1050 behaves like a service that does not create a merge request1051 is expected not to change `MergeRequest.count`1052 when coupled with the `create` push option1053 behaves like a service that can create a merge request1054 creates a merge request with the correct target branch1055 when project has been forked1056 sets the correct source and target project1057 behaves like a service that can set the description of a merge request1058 sets the description1059 with an existing branch that has a merge request open1060 behaves like a service that does not create a merge request1061 is expected not to change `MergeRequest.count`1062 behaves like a service that can set the description of a merge request1063 sets the description1064 behaves like with a deleted branch1065 behaves like a service that does nothing1066 is expected not to change `MergeRequest.count`1067 is expected not to change `MergeRequest.maximum(:updated_at)`1068 behaves like with the project default branch1069 behaves like a service that does nothing1070 is expected not to change `MergeRequest.count`1071 is expected not to change `MergeRequest.maximum(:updated_at)`1072 `label` push option1073 with a new branch1074 adds an error to the service1075 behaves like a service that does not create a merge request1076 is expected not to change `MergeRequest.count`1077 when coupled with the `create` push option1078 behaves like a service that can create a merge request1079 creates a merge request with the correct target branch1080 when project has been forked1081 sets the correct source and target project1082 behaves like a service that can change labels of a merge request1083 changes label count1084 with an existing branch but no open MR1085 adds an error to the service1086 behaves like a service that does not create a merge request1087 is expected not to change `MergeRequest.count`1088 when coupled with the `create` push option1089 behaves like a service that can create a merge request1090 creates a merge request with the correct target branch1091 when project has been forked1092 sets the correct source and target project1093 behaves like a service that can change labels of a merge request1094 changes label count1095 with an existing branch that has a merge request open1096 behaves like a service that does not create a merge request1097 is expected not to change `MergeRequest.count`1098 behaves like a service that can change labels of a merge request1099 changes label count1100 behaves like with a deleted branch1101 behaves like a service that does nothing1102 is expected not to change `MergeRequest.count`1103 is expected not to change `MergeRequest.maximum(:updated_at)`1104 behaves like with the project default branch1105 behaves like a service that does nothing1106 is expected not to change `MergeRequest.count`1107 is expected not to change `MergeRequest.maximum(:updated_at)`1108 `unlabel` push option1109 with a new branch1110 adds an error to the service1111 behaves like a service that does not create a merge request1112 is expected not to change `MergeRequest.count`1113 when coupled with the `create` push option1114 behaves like a service that can create a merge request1115 creates a merge request with the correct target branch1116 when project has been forked1117 sets the correct source and target project1118 behaves like a service that can change labels of a merge request1119 changes label count1120 with an existing branch but no open MR1121 adds an error to the service1122 behaves like a service that does not create a merge request1123 is expected not to change `MergeRequest.count`1124 when coupled with the `create` push option1125 behaves like a service that can create a merge request1126 creates a merge request with the correct target branch1127 when project has been forked1128 sets the correct source and target project1129 behaves like a service that can change labels of a merge request1130 changes label count1131 with an existing branch that has a merge request open1132 behaves like a service that does not create a merge request1133 is expected not to change `MergeRequest.count`1134 behaves like a service that can change labels of a merge request1135 changes label count1136 behaves like with a deleted branch1137 behaves like a service that does nothing1138 is expected not to change `MergeRequest.count`1139 is expected not to change `MergeRequest.maximum(:updated_at)`1140 behaves like with the project default branch1141 behaves like a service that does nothing1142 is expected not to change `MergeRequest.count`1143 is expected not to change `MergeRequest.maximum(:updated_at)`1144 `milestone` push option1145 with a valid milestone1146 with a new branch1147 adds an error to the service1148 behaves like a service that does not create a merge request1149 is expected not to change `MergeRequest.count`1150 when coupled with the `create` push option1151 behaves like a service that can create a merge request1152 creates a merge request with the correct target branch1153 when project has been forked1154 sets the correct source and target project1155 behaves like a service that can set the milestone of a merge request1156 sets the milestone1157 with an existing branch but no open MR1158 adds an error to the service1159 behaves like a service that does not create a merge request1160 is expected not to change `MergeRequest.count`1161 when coupled with the `create` push option1162 behaves like a service that can create a merge request1163 creates a merge request with the correct target branch1164 when project has been forked1165 sets the correct source and target project1166 behaves like a service that can set the milestone of a merge request1167 sets the milestone1168 with an existing branch that has a merge request open1169 behaves like a service that does not create a merge request1170 is expected not to change `MergeRequest.count`1171 behaves like a service that can set the milestone of a merge request1172 sets the milestone1173 behaves like with a deleted branch1174 behaves like a service that does nothing1175 is expected not to change `MergeRequest.count`1176 is expected not to change `MergeRequest.maximum(:updated_at)`1177 behaves like with the project default branch1178 behaves like a service that does nothing1179 is expected not to change `MergeRequest.count`1180 is expected not to change `MergeRequest.maximum(:updated_at)`1181 with invalid milestone1182 behaves like a service that can set the milestone of a merge request1183 sets the milestone1184 with an ancestor milestone1185 with immediate parent milestone1186 behaves like a service that can create a merge request1187 creates a merge request with the correct target branch1188 when project has been forked1189 sets the correct source and target project1190 behaves like a service that can set the milestone of a merge request1191 sets the milestone1192 with multi-level ancestor milestone1193 behaves like a service that can create a merge request1194 creates a merge request with the correct target branch1195 when project has been forked1196 sets the correct source and target project1197 behaves like a service that can set the milestone of a merge request1198 sets the milestone1199 `assign` push option1200 behaves like with a new branch1201 adds an error to the service1202 behaves like a service that does not create a merge request1203 is expected not to change `MergeRequest.count`1204 behaves like when coupled with the `create` push option1205 behaves like a service that can create a merge request1206 creates a merge request with the correct target branch1207 when project has been forked1208 sets the correct source and target project1209 behaves like a service that can change assignees of a merge request1210 changes assignee count1211 behaves like with an existing branch but no open MR1212 adds an error to the service1213 behaves like a service that does not create a merge request1214 is expected not to change `MergeRequest.count`1215 behaves like when coupled with the `create` push option1216 behaves like a service that can create a merge request1217 creates a merge request with the correct target branch1218 when project has been forked1219 sets the correct source and target project1220 behaves like a service that can change assignees of a merge request1221 changes assignee count1222 behaves like with an existing branch that has a merge request open in foss1223 behaves like a service that does not create a merge request1224 is expected not to change `MergeRequest.count`1225 behaves like a service that can change assignees of a merge request1226 changes assignee count1227 behaves like with a deleted branch1228 behaves like a service that does nothing1229 is expected not to change `MergeRequest.count`1230 is expected not to change `MergeRequest.maximum(:updated_at)`1231 behaves like with the project default branch1232 behaves like a service that does nothing1233 is expected not to change `MergeRequest.count`1234 is expected not to change `MergeRequest.maximum(:updated_at)`1235 `unassign` push option1236 behaves like with a new branch1237 adds an error to the service1238 behaves like a service that does not create a merge request1239 is expected not to change `MergeRequest.count`1240 behaves like when coupled with the `create` push option1241 behaves like a service that can create a merge request1242 creates a merge request with the correct target branch1243 when project has been forked1244 sets the correct source and target project1245 behaves like a service that can change assignees of a merge request1246 changes assignee count1247 behaves like with an existing branch but no open MR1248 adds an error to the service1249 behaves like a service that does not create a merge request1250 is expected not to change `MergeRequest.count`1251 behaves like when coupled with the `create` push option1252 behaves like a service that can create a merge request1253 creates a merge request with the correct target branch1254 when project has been forked1255 sets the correct source and target project1256 behaves like a service that can change assignees of a merge request1257 changes assignee count1258 behaves like with an existing branch that has a merge request open in foss1259 behaves like a service that does not create a merge request1260 is expected not to change `MergeRequest.count`1261 behaves like a service that can change assignees of a merge request1262 changes assignee count1263 behaves like with a deleted branch1264 behaves like a service that does nothing1265 is expected not to change `MergeRequest.count`1266 is expected not to change `MergeRequest.maximum(:updated_at)`1267 behaves like with the project default branch1268 behaves like a service that does nothing1269 is expected not to change `MergeRequest.count`1270 is expected not to change `MergeRequest.maximum(:updated_at)`1271 multiple pushed branches1272 creates a merge request per branch1273 when there are too many pushed branches1274 records an error1275 no push options1276 behaves like a service that does nothing1277 is expected not to change `MergeRequest.count`1278 is expected not to change `MergeRequest.maximum(:updated_at)`1279 no user1280 records an error1281 unauthorized user1282 records an error1283 handling unexpected exceptions1284 records an error1285 writes to Gitlab::AppLogger1286 when target is not a valid branch name1287 records an error1288 when MRs are not enabled1289 records an error1290 when MR has ActiveRecord errors1291 adds the error to its errors property1292Clusters::Cluster1293 is expected to includes the HasEnvironmentScope module1294 is expected to belong to user required: false1295 is expected to belong to management_project class_name => ::Project required: false1296 is expected to have many cluster_projects1297 is expected to have many projects1298 is expected to have many cluster_groups1299 is expected to have many groups1300 is expected to have many groups_projects1301 is expected to have one provider_gcp1302 is expected to have one provider_aws1303 is expected to have one platform_kubernetes1304 is expected to have one integration_prometheus1305 is expected to have one application_helm1306 is expected to have one application_ingress1307 is expected to have one application_prometheus1308 is expected to have one application_runner1309 is expected to have many kubernetes_namespaces1310 is expected to have one cluster_project1311 is expected to have many deployment_clusters1312 is expected to have many metrics_dashboard_annotations1313 is expected to have many successful_deployments1314 is expected to have many environments through deployments1315 is expected to delegate #status to the #provider object1316 is expected to delegate #status_reason to the #provider object1317 is expected to delegate #on_creation? to the #provider object1318 is expected to delegate #knative_pre_installed? to the #provider object1319 is expected to delegate #platform_kubernetes_active? to the #platform_kubernetes object as #active?1320 is expected to delegate #platform_kubernetes_rbac? to the #platform_kubernetes object as #rbac?1321 is expected to delegate #application_helm_available? to the #application_helm object as #available?1322 is expected to delegate #application_ingress_available? to the #application_ingress object as #available?1323 is expected to delegate #application_knative_available? to the #application_knative object as #available?1324 is expected to delegate #integration_elastic_stack_available? to the #integration_elastic_stack object as #available?1325 is expected to delegate #integration_prometheus_available? to the #integration_prometheus object as #available?1326 is expected to delegate #application_ingress_external_ip to the #application_ingress object as #external_ip1327 is expected to delegate #application_ingress_external_hostname to the #application_ingress object as #external_hostname1328 is expected to respond to #project1329 is expected to be namespace per environment1330 has default helm_major_version 31331 behaves like having unique enum values1332 has unique values in "cluster_type"1333 has unique values in "platform_type"1334 has unique values in "provider_type"1335 applications have inverse_of: :cluster option1336 does not do a third query when referencing cluster again1337 .enabled1338 is expected to contain exactly #<Clusters::Cluster id: 3, user_id: 49, provider_type: nil, platform_type: nil, created_at: "2021-12-...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1339 .disabled1340 is expected to contain exactly #<Clusters::Cluster id: 5, user_id: 51, provider_type: nil, platform_type: nil, created_at: "2021-12-...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1341 .user_provided1342 is expected to contain exactly #<Clusters::Cluster id: 7, user_id: 53, provider_type: "user", platform_type: "kubernetes", created_a...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1343 .gcp_provided1344 is expected to contain exactly #<Clusters::Cluster id: 9, user_id: 55, provider_type: "gcp", platform_type: "kubernetes", created_at...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1345 .gcp_installed1346 is expected to contain exactly #<Clusters::Cluster id: 12, user_id: 58, provider_type: "gcp", platform_type: "kubernetes", created_a...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1347 .aws_provided1348 is expected to contain exactly #<Clusters::Cluster id: 15, user_id: 61, provider_type: "aws", platform_type: "kubernetes", created_a...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1349 .aws_installed1350 is expected to contain exactly #<Clusters::Cluster id: 18, user_id: 64, provider_type: "aws", platform_type: "kubernetes", created_a...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1351 .managed1352 cluster is not managed1353 is expected not to include #<Clusters::Cluster id: 20, user_id: 66, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1354 cluster is managed1355 is expected to include #<Clusters::Cluster id: 21, user_id: 67, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1356 .with_management_project1357 cluster has a management project1358 is expected to include #<Clusters::Cluster id: 22, user_id: 68, provider_type: nil, platform_type: nil, created_at: "2021-12...ue, management_project_id: 68, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1359 cluster does not have a management project1360 is expected not to include #<Clusters::Cluster id: 23, user_id: 70, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1361 .with_integration_prometheus1362 cluster has prometheus application1363 is expected to include #<Clusters::Cluster id: 24, user_id: 71, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1364 cluster does not have prometheus application1365 is expected not to include #<Clusters::Cluster id: 25, user_id: 72, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1366 .with_available_elasticstack1367 cluster has ElasticStack application1368 is expected to include #<Clusters::Cluster id: 26, user_id: 73, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1369 cluster does not have ElasticStack application1370 is expected not to include #<Clusters::Cluster id: 26, user_id: 73, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1371 .distinct_with_deployed_environments1372 cluster has multiple successful deployment with environment1373 is expected to include #<Clusters::Cluster id: 27, user_id: 74, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1374 lists only distinct environments1375 cluster has only failed deployment with environment1376 is expected not to include #<Clusters::Cluster id: 27, user_id: 74, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1377 cluster does not have any deployment1378 is expected not to include #<Clusters::Cluster id: 27, user_id: 74, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1379 .with_project_http_integrations1380 project has alert service data1381 is expected to include #<Clusters::Cluster id: 28, user_id: 78, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1382 project has no alert service data1383 is expected not to include #<Clusters::Cluster id: 29, user_id: 80, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1384 .for_project_namespace1385 is expected to contain exactly #<Clusters::Cluster id: 30, user_id: 82, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1386 .with_name1387 is expected to contain exactly #<Clusters::Cluster id: 32, user_id: 86, provider_type: nil, platform_type: nil, created_at: "2021-12...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>1388 validations1389 when validates unique_environment_scope1390 for a project cluster1391 when identical environment scope exists in project1392 is expected to be falsey1393 when identical environment scope does not exist in project1394 is expected to be truthy1395 when identical environment scope exists in different project1396 is expected to be truthy1397 for a group cluster1398 when identical environment scope exists in group1399 is expected to be falsey1400 when identical environment scope does not exist in group1401 is expected to be truthy1402 when identical environment scope exists in different group1403 is expected to be truthy1404 for an instance cluster1405 identical environment scope exists1406 is expected to be falsey1407 identical environment scope does not exist1408 is expected to be truthy1409 when validates name1410 when provided by user1411 when name is empty1412 is expected to be falsey1413 when name is nil1414 is expected to be falsey1415 when name is present1416 is expected to be truthy1417 when provided by gcp1418 when name is shorter than 11419 is expected to be falsey1420 when name is longer than 631421 is expected to be falsey1422 when name includes invalid character1423 is expected to be falsey1424 when name is present1425 is expected to be truthy1426 when record is persisted1427 when name is changed1428 is expected to be falsey1429 when name is same1430 is expected to be truthy1431 when validates restrict_modification1432 when creation is on going1433 is expected to be falsey1434 when creation is done1435 is expected to be truthy1436 cluster_type validations1437 validates presence1438 project_type cluster1439 does not allow setting group1440 group_type cluster1441 does not allow setting project1442 instance_type cluster1443 does not allow setting group1444 does not allow setting project1445 domain validation1446 when cluster has domain1447 is expected to be valid1448 when cluster is not a valid hostname1449 adds an error on domain1450 when cluster does not have a domain1451 is expected to be valid1452 unique scope for management_project1453 duplicate scopes for the same management project1454 adds an error on environment_scope1455 helm_major_version can only be 2 or 31456 helm_major_version: 2, expect_valid: true1457 is expected to eq true1458 helm_major_version: 3, expect_valid: true1459 is expected to eq true1460 helm_major_version: 4, expect_valid: false1461 is expected to eq false1462 helm_major_version: -1, expect_valid: false1463 is expected to eq false1464 .ancestor_clusters_for_clusterable1465 when project does not belong to this group1466 returns nothing1467 when group has a configured kubernetes cluster1468 returns the group cluster1469 when group and instance have configured kubernetes clusters1470 returns clusters in order, descending the hierachy1471 when sub-group has configured kubernetes cluster1472 returns clusters in order, descending the hierachy1473 avoids N+1 queries1474 for a group1475 returns clusters in order for a group1476 scope chaining1477 returns nothing1478 #provider1479 when provider is gcp1480 returns a provider1481 when provider is aws1482 returns a provider1483 when provider is user1484 is expected to be nil1485 #platform1486 when platform is kubernetes1487 returns a platform1488 #first_project1489 when cluster belongs to a project1490 is expected to eq #<Project id:93 namespace68/project93>>1491 when cluster does not belong to projects1492 is expected to be nil1493 #group1494 when cluster belongs to a group1495 is expected to eq #<Group id:321 @group45>1496 when cluster does not belong to any group1497 is expected to be nil1498 .with_persisted_applications1499 preloads persisted applications1500 #persisted_applications1501 when all applications are created1502 returns a list of created applications1503 when not all were created1504 returns a list of created applications1505 #applications1506 when none of applications are created1507 returns a list of a new objects1508 when applications are created1509 returns a list of created applications1510 #find_or_build_application1511 rejects classes that are not applications1512 when none of applications are created1513 returns the new application1514 when application is persisted1515 returns the persisted application1516 #allow_user_defined_namespace?1517 project type cluster1518 gitlab managed1519 is expected to be truthy1520 not managed1521 is expected to be truthy1522 group type cluster1523 gitlab managed1524 is expected to be falsey1525 not managed1526 is expected to be truthy1527 instance type cluster1528 gitlab managed1529 is expected to be falsey1530 not managed1531 is expected to be truthy1532 #all_projects1533 cluster_type is project_type1534 returns projects1535 cluster_type is group_type1536 returns group projects1537 cluster_type is instance_type1538 returns all instance's projects1539 #kube_ingress_domain1540 with domain set in cluster1541 is expected to eq "example.com"1542 with no domain on cluster1543 with domain set at instance level1544 is expected to eq "global_domain.com"1545 #kubernetes_namespace_for1546 validates the project id1547 when environment has no last_deployable1548 is expected to eq "project101-101-the-environment-name"1549 when cluster is managed1550 returns the cached namespace if present, ignoring CI config1551 returns the default namespace when no cached namespace, ignoring CI config1552 when cluster is not managed1553 returns the cached namespace if present, regardless of CI config1554 returns the CI YAML namespace when configured1555 returns the default namespace when no namespace is configured1556 #predefined_variables1557 with an instance domain1558 includes KUBE_INGRESS_BASE_DOMAIN1559 with a cluster domain1560 includes KUBE_INGRESS_BASE_DOMAIN1561 with no domain1562 returns an empty array1563 #provided_by_user?1564 with a GCP provider1565 is expected to be falsy1566 with an user provider1567 is expected to be truthy1568 #status_name1569 the cluster has a provider1570 is expected to eq :errored1571 when cluster cleanup is ongoing1572 status_name: :errored, cleanup_status: :cleanup_not_started1573 returns cleanup_ongoing when uninstalling applications1574 status_name: :cleanup_ongoing, cleanup_status: :cleanup_removing_project_namespaces1575 returns cleanup_ongoing when uninstalling applications1576 status_name: :cleanup_ongoing, cleanup_status: :cleanup_removing_service_account1577 returns cleanup_ongoing when uninstalling applications1578 status_name: :cleanup_errored, cleanup_status: :cleanup_errored1579 returns cleanup_ongoing when uninstalling applications1580 there is a cached connection status1581 is expected to eq :connected1582 there is no connection status in the cache1583 is expected to eq :created1584 cleanup_status state_machine1585 #start_cleanup!1586 when cleanup_status is cleanup_not_started1587 behaves like cleanup_status transition1588 transitions cleanup_status correctly1589 schedules a Clusters::Cleanup::*Worker1590 when cleanup_status is errored1591 behaves like cleanup_status transition1592 transitions cleanup_status correctly1593 schedules a Clusters::Cleanup::*Worker1594 #make_cleanup_errored!1595 transitions cleanup_status from cleanup_not_started to cleanup_errored1596 sets error message1597 transitions cleanup_status from cleanup_removing_project_namespaces to cleanup_errored1598 sets error message1599 transitions cleanup_status from cleanup_removing_service_account to cleanup_errored1600 sets error message1601 #continue_cleanup!1602 behaves like cleanup_status transition1603 transitions cleanup_status correctly1604 schedules a Clusters::Cleanup::*Worker1605 #connection_status1606 is expected to be nil1607 with a cached status1608 is expected to eq :connected1609 #connection_error1610 is expected to be nil1611 with a cached status1612 is expected to eq :unknown_error1613 #node_connection_error1614 is expected to be nil1615 with a cached status1616 is expected to eq :unknown_error1617 #metrics_connection_error1618 is expected to be nil1619 with a cached status1620 is expected to eq :unknown_error1621 #nodes1622 is expected to be nil1623 with a cached status1624 is expected to eq [{"metadata"=>{"name"=>"gke-cluster-applications-default-pool-49b7f225-v527"}, "status"=>{"allocatable"=>{"cpu"=>"1930m", "memory"=>"5777164Ki"}, "capacity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}}]1625 #calculate_reactive_cache1626 cluster is disabled1627 does not populate the cache1628 cluster is enabled1629 connection to the cluster is successful1630 is expected to eq {:connection_status=>:connected, :nodes=>[{"metadata"=>{"name"=>"gke-cluster-applications-default-poo...ity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}, "usage"=>{"cpu"=>"144208668n", "memory"=>"1789048Ki"}}]}1631 cluster cannot be reached1632 is expected to eq {:connection_error=>:connection_error, :connection_status=>:unreachable}1633 cluster cannot be authenticated to1634 is expected to eq {:connection_error=>:authentication_error, :connection_status=>:authentication_failure}1635 Kubeclient::HttpError1636 is expected to eq {:connection_error=>:http_error, :connection_status=>:authentication_failure}1637 generic timeout1638 is expected to eq {:connection_error=>:http_error, :connection_status=>:unreachable}1639 gateway timeout1640 is expected to eq {:connection_error=>:http_error, :connection_status=>:unreachable}1641 an uncategorised error is raised1642 is expected to eq {:connection_error=>:unknown_error, :connection_status=>:unknown_failure}1643 notifies Sentry1644 #integration_prometheus_available?1645 is expected to be falsey1646 when integration is enabled1647 is expected to be truthy1648 when integration is disabled1649 is expected to be falsey1650 #prometheus_adapter1651 returns nothing1652 has integration_prometheus1653 returns the integration1654 has application_prometheus1655 returns nil1656 also has a integration_prometheus1657 returns the integration1658 #delete_cached_resources!1659 deletes associated namespace records1660 #clusterable1661 project type1662 is expected to eq #<Project id:115 namespace90/project115>>1663 group type1664 is expected to eq #<Group id:593 @group55>1665 instance type1666 is expected to be a kind of Clusters::Instance1667 unknown type1668 raises NotImplementedError1669Integrations::Jira1670 #options1671 sets the URL properly1672 leaves out trailing slashes in context1673 provides additional cookies to allow basic auth with oracle webgate1674 URL without a path1675 leaves out trailing slashes in context1676 URL with query string parameters1677 removes query string parameters1678 username with trailing whitespaces1679 leaves out trailing whitespaces in username1680 using api URL1681 leaves out trailing slashes in context1682 #fields1683 returns custom fields1684 .reference_pattern1685 key: "#123", result: ""1686 is expected to eq ""1687 key: "1#23#12", result: ""1688 is expected to eq ""1689 key: "JIRA-1234A", result: "JIRA-1234"1690 is expected to eq "JIRA-1234"1691 key: "JIRA-1234-some_tag", result: "JIRA-1234"1692 is expected to eq "JIRA-1234"1693 key: "JIRA-1234_some_tag", result: "JIRA-1234"1694 is expected to eq "JIRA-1234"1695 key: "EXT_EXT-1234", result: "EXT_EXT-1234"1696 is expected to eq "EXT_EXT-1234"1697 key: "EXT3_EXT-1234", result: "EXT3_EXT-1234"1698 is expected to eq "EXT3_EXT-1234"1699 key: "3EXT_EXT-1234", result: ""1700 is expected to eq ""1701 #create1702 does not store data into properties1703 stores data in data_fields correctly1704 when loading serverInfo1705 with a Cloud instance1706 is detected1707 with a Server instance1708 is detected1709 from an Unknown instance1710 and URL ends in .atlassian.net1711 deployment_type is set to cloud1712 and URL is something else1713 deployment_type is set to server1714 and no ServerInfo response is received1715 and URL ends in .atlassian.net1716 deployment_type is set to cloud1717 and URL is something else1718 deployment_type is set to server1719 overriding properties1720 when data are stored in properties1721 behaves like handles jira fields1722 reading data1723 reads data correctly1724 #update1725 basic update1726 stores updated data in jira_tracker_data table1727 when updating the url, api_url, username, or password1728 calls serverInfo for url1729 calls serverInfo for api_url1730 calls serverInfo for username1731 calls serverInfo for password1732 when updating the integration1733 updates deployment type1734 when removing the integration1735 updates deployment type1736 when not updating the url, api_url, username, or password1737 does not update deployment type1738 stored password invalidation1739 when a password was previously set1740 when only web url present1741 resets password if url changed1742 does not reset password if url "changed" to the same url as before1743 resets password if url not changed but api url added1744 does not reset password if new url is set together with password, even if it's the same password1745 resets password if url changed, even if setter called multiple times1746 does not reset password if username changed1747 does not reset password if password changed1748 does not reset password if the password is touched and same as before1749 when both web and api url present1750 resets password if api url changed1751 does not reset password if url changed1752 resets password if api url set to empty1753 when no password was previously set1754 saves password if new url is set together with password1755 when data are stored in separated fields1756 behaves like handles jira fields1757 reading data1758 reads data correctly1759 #update1760 basic update1761 stores updated data in jira_tracker_data table1762 when updating the url, api_url, username, or password1763 calls serverInfo for url1764 calls serverInfo for api_url1765 calls serverInfo for username1766 calls serverInfo for password1767 when updating the integration1768 updates deployment type1769 when removing the integration1770 updates deployment type1771 when not updating the url, api_url, username, or password1772 does not update deployment type1773 stored password invalidation1774 when a password was previously set1775 when only web url present1776 resets password if url changed1777 does not reset password if url "changed" to the same url as before1778 resets password if url not changed but api url added1779 does not reset password if new url is set together with password, even if it's the same password1780 resets password if url changed, even if setter called multiple times1781 does not reset password if username changed1782 does not reset password if password changed1783 does not reset password if the password is touched and same as before1784 when both web and api url present1785 resets password if api url changed1786 does not reset password if url changed1787 resets password if api url set to empty1788 when no password was previously set1789 saves password if new url is set together with password1790 when data are stored in both properties and separated fields1791 behaves like handles jira fields1792 reading data1793 reads data correctly1794 #update1795 basic update1796 stores updated data in jira_tracker_data table1797 when updating the url, api_url, username, or password1798 calls serverInfo for url1799 calls serverInfo for api_url1800 calls serverInfo for username1801 calls serverInfo for password1802 when updating the integration1803 updates deployment type1804 when removing the integration1805 updates deployment type1806 when not updating the url, api_url, username, or password1807 does not update deployment type1808 stored password invalidation1809 when a password was previously set1810 when only web url present1811 resets password if url changed1812 does not reset password if url "changed" to the same url as before1813 resets password if url not changed but api url added1814 does not reset password if new url is set together with password, even if it's the same password1815 resets password if url changed, even if setter called multiple times1816 does not reset password if username changed1817 does not reset password if password changed1818 does not reset password if the password is touched and same as before1819 when both web and api url present1820 resets password if api url changed1821 does not reset password if url changed1822 resets password if api url set to empty1823 when no password was previously set1824 saves password if new url is set together with password1825 #client1826 uses the default GitLab::HTTP timeouts1827 #find_issue1828 calls the Jira API to get the issue1829 with options1830 calls the Jira API with the options to get the issue1831 #close_issue1832 when resource is a merge request1833 behaves like close_issue1834 calls Jira API1835 tracks usage1836 does not fail if remote_link.all on issue returns nil1837 creates Remote Link reference in Jira for comment1838 does not send comment or remote links to issues already closed1839 does not send comment or remote links to issues with unknown resolution1840 references the GitLab commit1841 references the GitLab commit1842 logs exception when transition id is not valid1843 calls the api with jira_issue_transition_id1844 when "comment_on_event_enabled" is set to false1845 creates Remote Link reference but does not create comment1846 when Remote Link already exists1847 does not create comment1848 when custom transition IDs are blank1849 does not transition the issue1850 when using automatic issue transitions1851 uses the next transition with a status category of done1852 when no done transition is available1853 does not attempt to transition1854 when no valid transitions are returned1855 does not attempt to transition1856 when using multiple transition ids1857 calls the api with transition ids separated by comma1858 calls the api with transition ids separated by semicolon1859 when a transition fails1860 stops the sequence1861 when resource is a commit1862 behaves like close_issue1863 calls Jira API1864 tracks usage1865 does not fail if remote_link.all on issue returns nil1866 creates Remote Link reference in Jira for comment1867 does not send comment or remote links to issues already closed1868 does not send comment or remote links to issues with unknown resolution1869 references the GitLab commit1870 references the GitLab commit1871 logs exception when transition id is not valid1872 calls the api with jira_issue_transition_id1873 when "comment_on_event_enabled" is set to false1874 creates Remote Link reference but does not create comment1875 when Remote Link already exists1876 does not create comment1877 when custom transition IDs are blank1878 does not transition the issue1879 when using automatic issue transitions1880 uses the next transition with a status category of done1881 when no done transition is available1882 does not attempt to transition1883 when no valid transitions are returned1884 does not attempt to transition1885 when using multiple transition ids1886 calls the api with transition ids separated by comma1887 calls the api with transition ids separated by semicolon1888 when a transition fails1889 stops the sequence1890 #create_cross_reference_note1891 for commits1892 behaves like handles cross-references1893 tracks usage1894 when enabled1895 creates a comment and remote link1896 when comment already exists1897 does not create a comment or remote link1898 when remote link already exists1899 updates the remote link but does not create a comment1900 when disabled1901 does not create a comment or remote link1902 for issues1903 behaves like handles cross-references1904 tracks usage1905 when enabled1906 creates a comment and remote link1907 when comment already exists1908 does not create a comment or remote link1909 when remote link already exists1910 updates the remote link but does not create a comment1911 when disabled1912 does not create a comment or remote link1913 for merge requests1914 behaves like handles cross-references1915 tracks usage1916 when enabled1917 creates a comment and remote link1918 when comment already exists1919 does not create a comment or remote link1920 when remote link already exists1921 updates the remote link but does not create a comment1922 when disabled1923 does not create a comment or remote link1924 for notes1925 behaves like handles cross-references1926 tracks usage1927 when enabled1928 creates a comment and remote link1929 when comment already exists1930 does not create a comment or remote link1931 when remote link already exists1932 updates the remote link but does not create a comment1933 when disabled1934 does not create a comment or remote link1935 for snippets1936 behaves like handles cross-references1937 tracks usage1938 when enabled1939 creates a comment and remote link1940 when comment already exists1941 does not create a comment or remote link1942 when remote link already exists1943 updates the remote link but does not create a comment1944 when disabled1945 does not create a comment or remote link1946 #test1947 when the test succeeds1948 gets Jira project with URL when API URL not set1949 gets Jira project with API URL if set1950 when the test fails1951 returns result with the error1952 project and issue urls1953 removes trailing slashes from url1954 when gitlab.yml was initialized1955 is prepopulated with the settings1956 favicon urls1957 includes the standard favicon1958 includes returns the custom favicon1959 generating external URLs1960 #web_url1961 handles paths, slashes, and query string1962 preserves existing query string1963 returns an empty string if URL is not set1964 includes Atlassian referrer for gitlab.com1965 includes Atlassian referrer for self-managed1966 #project_url1967 returns the correct URL1968 returns an empty string if URL is not set1969 #issues_url1970 returns the correct URL1971 returns an empty string if URL is not set1972 #new_issue_url1973 returns the correct URL1974 returns an empty string if URL is not set1975 #issue_transition_enabled?1976 returns true if automatic transitions are enabled1977 returns true if custom transitions are set1978 returns false if automatic and custom transitions are disabled1979 valid_connection? and configured?1980 when the test fails1981 is falsey1982 implies that configured? is also falsey1983 when the test succeeds1984 is truthy1985 when the integration is active1986 implies that configured? is also truthy1987 when the integration is inactive1988 implies that configured? is falsey1989Groups::DestroyService1990 asynchronous delete1991 behaves like group destruction1992 database records1993 is expected not to include #<Group id:767 @group56>1994 is expected not to include #<Group id:774 @group58/group59>1995 is expected not to include #<Project id:203 group60/project203>>1996 is expected not to include #<NotificationSetting id: 241, user_id: 522, source_id: 785, source_type: "Namespace", level: "global...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>1997 mattermost team1998 destroys the team too1999 file system2000 Sidekiq inline2001 verifies that paths have been deleted2002 Sidekiq fake2003 verifies original paths and projects still exist2004 synchronous delete2005 behaves like group destruction2006 database records2007 is expected not to include #<Group id:809 @group70>2008 is expected not to include #<Group id:816 @group72/group73>2009 is expected not to include #<Project id:210 group74/project210>>2010 is expected not to include #<NotificationSetting id: 262, user_id: 543, source_id: 827, source_type: "Namespace", level: "global...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>2011 mattermost team2012 destroys the team too2013 file system2014 Sidekiq inline2015 verifies that paths have been deleted2016 projects in pending_delete2017 behaves like group destruction2018 database records2019 is expected not to include #<Group id:845 @group82>2020 is expected not to include #<Group id:852 @group84/group85>2021 is expected not to include #<Project id:216 group86/project216>>2022 is expected not to include #<NotificationSetting id: 280, user_id: 561, source_id: 863, source_type: "Namespace", level: "global...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>2023 mattermost team2024 destroys the team too2025 file system2026 Sidekiq inline2027 verifies that paths have been deleted2028 repository removal status is taken into account2029 raises exception2030 repository removal2031 legacy storage2032 removes repository2033 hashed storage2034 removes repository2035 authorization updates2036 for solo groups2037 group is deleted2038 updates project authorization2039 does not make use of a specific service to update project_authorizations records2040 for shared groups within different hierarchies2041 when a project is shared with a group2042 and the shared group is deleted2043 updates project authorizations so group2 users no longer have access2044 calls the service to update project authorizations only with necessary user ids2045 and the group is shared with another group2046 updates project authorizations so group2 and group3 users no longer have access2047 calls the service to update project authorizations only with necessary user ids2048 when a group is shared with a group2049 and the shared group is deleted2050 updates project authorizations since the project has been deleted with the group2051 does not call the service to update project authorizations2052 the shared_with group is deleted2053 updates project authorizations so users of both groups lose access2054 calls the service to update project authorizations only with necessary user ids2055 for shared groups in the same group hierarchy2056 the shared group is deleted2057 updates project authorization2058 does not make use of a specific service to update project authorizations2059 the shared_with group is deleted2060 updates project authorization2061 makes use of a specific service to update project authorizations2062GroupPolicy2063 public group with no user2064 is expected not to be allowed :read_namespace2065 with no user and public project2066 is expected not to be allowed :read_group2067 is expected not to be allowed :read_crm_organization2068 is expected not to be allowed :read_crm_contact2069 is expected not to be allowed :read_counts2070 is expected not to be allowed :read_issue_board2071 with foreign user and public project2072 is expected not to be allowed :read_group2073 is expected not to be allowed :read_crm_organization2074 is expected not to be allowed :read_crm_contact2075 is expected not to be allowed :read_counts2076 is expected not to be allowed :read_issue_board2077 has projects2078 is expected to be allowed :read_issue_board2079 in subgroups2080 is expected to be allowed :read_issue_board2081 guests2082 is expected not to be allowed :update_default_branch_protection2083 behaves like deploy token does not get confused with user2084 is expected not to be allowed :update_default_branch_protection2085 reporter2086 is expected not to be allowed :update_default_branch_protection2087 behaves like deploy token does not get confused with user2088 is expected not to be allowed :update_default_branch_protection2089 developer2090 is expected not to be allowed :update_default_branch_protection2091 behaves like deploy token does not get confused with user2092 is expected not to be allowed :update_default_branch_protection2093 maintainer2094 with subgroup_creation level set to maintainer2095 allows every maintainer permission plus creating subgroups2096 with subgroup_creation_level set to owner2097 allows every maintainer permission2098 behaves like deploy token does not get confused with user2099 is expected not to be allowed :update_default_branch_protection2100 owner2101 is expected to be allowed :update_default_branch_protection2102 behaves like deploy token does not get confused with user2103 is expected not to be allowed :update_default_branch_protection2104 admin2105 is expected not to be allowed :update_default_branch_protection2106 with admin mode2107 is expected to be allowed :read_confidential_issues2108 behaves like deploy token does not get confused with user2109 is expected not to be allowed :update_default_branch_protection2110 with admin mode2111 is expected not to be allowed :read_confidential_issues2112 private nested group use the highest access level from the group and inherited permissions2113 with no user2114 is expected not to be allowed :update_default_branch_protection2115 guests2116 is expected not to be allowed :update_default_branch_protection2117 reporter2118 is expected not to be allowed :update_default_branch_protection2119 developer2120 is expected not to be allowed :update_default_branch_protection2121 maintainer2122 is expected not to be allowed :update_default_branch_protection2123 owner2124 is expected to be allowed :update_default_branch_protection2125 change_share_with_group_lock2126 when the current_user owns the group2127 when the group share_with_group_lock is enabled2128 when the parent group share_with_group_lock is enabled2129 when the group has a grandparent2130 when the grandparent share_with_group_lock is enabled2131 when the current_user owns the parent2132 when the current_user owns the grandparent2133 is expected to be allowed :change_share_with_group_lock2134 when the current_user does not own the grandparent2135 is expected not to be allowed :change_share_with_group_lock2136 when the current_user does not own the parent2137 is expected not to be allowed :change_share_with_group_lock2138 when the grandparent share_with_group_lock is disabled2139 when the current_user owns the parent2140 is expected to be allowed :change_share_with_group_lock2141 when the current_user does not own the parent2142 is expected not to be allowed :change_share_with_group_lock2143 when the group does not have a grandparent2144 when the current_user owns the parent2145 is expected to be allowed :change_share_with_group_lock2146 when the current_user does not own the parent2147 is expected not to be allowed :change_share_with_group_lock2148 when the parent group share_with_group_lock is disabled2149 is expected to be allowed :change_share_with_group_lock2150 when the group share_with_group_lock is disabled2151 is expected to be allowed :change_share_with_group_lock2152 when the current_user does not own the group2153 is expected not to be allowed :change_share_with_group_lock2154 transfer_projects2155 reporter2156 behaves like not allowed to transfer projects2157 is expected to be disallowed :transfer_projects2158 behaves like not allowed to transfer projects2159 is expected to be disallowed :transfer_projects2160 behaves like not allowed to transfer projects2161 is expected to be disallowed :transfer_projects2162 developer2163 behaves like not allowed to transfer projects2164 is expected to be disallowed :transfer_projects2165 behaves like not allowed to transfer projects2166 is expected to be disallowed :transfer_projects2167 behaves like not allowed to transfer projects2168 is expected to be disallowed :transfer_projects2169 maintainer2170 behaves like not allowed to transfer projects2171 is expected to be disallowed :transfer_projects2172 behaves like allowed to transfer projects2173 is expected to be allowed :transfer_projects2174 behaves like allowed to transfer projects2175 is expected to be allowed :transfer_projects2176 owner2177 behaves like not allowed to transfer projects2178 is expected to be disallowed :transfer_projects2179 behaves like allowed to transfer projects2180 is expected to be allowed :transfer_projects2181 behaves like allowed to transfer projects2182 is expected to be allowed :transfer_projects2183 create_projects2184 when group has no project creation level set2185 reporter2186 is expected to be disallowed :create_projects2187 developer2188 is expected to be allowed :create_projects2189 maintainer2190 is expected to be allowed :create_projects2191 owner2192 is expected to be allowed :create_projects2193 when group has project creation level set to no one2194 reporter2195 is expected to be disallowed :create_projects2196 developer2197 is expected to be disallowed :create_projects2198 maintainer2199 is expected to be disallowed :create_projects2200 owner2201 is expected to be disallowed :create_projects2202 when group has project creation level set to maintainer only2203 reporter2204 is expected to be disallowed :create_projects2205 developer2206 is expected to be disallowed :create_projects2207 maintainer2208 is expected to be allowed :create_projects2209 owner2210 is expected to be allowed :create_projects2211 when group has project creation level set to developers + maintainer2212 reporter2213 is expected to be disallowed :create_projects2214 developer2215 is expected to be allowed :create_projects2216 maintainer2217 is expected to be allowed :create_projects2218 owner2219 is expected to be allowed :create_projects2220 create_subgroup2221 when group has subgroup creation level set to owner2222 reporter2223 is expected to be disallowed :create_subgroup2224 developer2225 is expected to be disallowed :create_subgroup2226 maintainer2227 is expected to be disallowed :create_subgroup2228 owner2229 is expected to be allowed :create_subgroup2230 when group has subgroup creation level set to maintainer2231 reporter2232 is expected to be disallowed :create_subgroup2233 developer2234 is expected to be disallowed :create_subgroup2235 maintainer2236 is expected to be allowed :create_subgroup2237 owner2238 is expected to be allowed :create_subgroup2239 behaves like clusterable policies2240 #add_cluster?2241 with a developer2242 is expected not to be allowed :read_cluster2243 is expected not to be allowed :add_cluster2244 is expected not to be allowed :create_cluster2245 is expected not to be allowed :update_cluster2246 is expected not to be allowed :admin_cluster2247 with a maintainer2248 with no clusters2249 is expected to be allowed :read_cluster2250 is expected to be allowed :add_cluster2251 is expected to be allowed :create_cluster2252 is expected to be allowed :update_cluster2253 is expected to be allowed :admin_cluster2254 update_max_artifacts_size2255 when no user2256 is expected not to be allowed :update_max_artifacts_size2257 admin2258 when admin mode is enabled2259 is expected to be allowed :update_max_artifacts_size2260 when admin mode is enabled2261 is expected not to be allowed :update_max_artifacts_size2262 guest2263 is expected not to be allowed :update_max_artifacts_size2264 reporter2265 is expected not to be allowed :update_max_artifacts_size2266 developer2267 is expected not to be allowed :update_max_artifacts_size2268 maintainer2269 is expected not to be allowed :update_max_artifacts_size2270 owner2271 is expected not to be allowed :update_max_artifacts_size2272 design activity2273 when design management is not available2274 is expected not to be allowed :read_design_activity2275 even when there are projects in the group2276 is expected not to be allowed :read_design_activity2277 when design management is available globally2278 the group has no projects2279 is expected not to be allowed :read_design_activity2280 the group has a project2281 is expected to be allowed :read_design_activity2282 which does not have design management enabled2283 is expected not to be allowed :read_design_activity2284 but another project does2285 is expected to be allowed :read_design_activity2286 create_jira_connect_subscription2287 admin2288 when admin mode is enabled2289 is expected to be allowed :create_jira_connect_subscription2290 when admin mode is disabled2291 is expected to be disallowed :create_jira_connect_subscription2292 with owner2293 is expected to be allowed :create_jira_connect_subscription2294 with maintainer2295 is expected to be allowed :create_jira_connect_subscription2296 with reporter2297 is expected to be disallowed :create_jira_connect_subscription2298 with guest2299 is expected to be disallowed :create_jira_connect_subscription2300 with non member2301 is expected to be disallowed :create_jira_connect_subscription2302 with anonymous2303 is expected to be disallowed :create_jira_connect_subscription2304 read_package2305 admin2306 when admin mode is enabled2307 is expected to be allowed :read_package2308 when admin mode is disabled2309 is expected to be disallowed :read_package2310 with owner2311 is expected to be allowed :read_package2312 with maintainer2313 is expected to be allowed :read_package2314 with reporter2315 is expected to be allowed :read_package2316 with guest2317 is expected to be disallowed :read_package2318 with non member2319 is expected to be disallowed :read_package2320 with anonymous2321 is expected to be disallowed :read_package2322 dependency proxy2323 feature disabled2324 is expected to be disallowed :read_dependency_proxy2325 is expected to be disallowed :admin_dependency_proxy2326 feature enabled2327 reporter2328 is expected to be disallowed :admin_dependency_proxy2329 developer2330 is expected to be allowed :admin_dependency_proxy2331 deploy token access2332 a deploy token with read_package_registry scope2333 is expected to be allowed :read_package2334 is expected to be allowed :read_group2335 is expected to be allowed :read_crm_organization2336 is expected to be allowed :read_crm_contact2337 is expected to be disallowed :create_package2338 a deploy token with write_package_registry scope2339 is expected to be allowed :create_package2340 is expected to be allowed :read_package2341 is expected to be allowed :read_group2342 is expected to be allowed :read_crm_organization2343 is expected to be allowed :read_crm_contact2344 is expected to be disallowed :destroy_package2345 a deploy token with dependency proxy scopes2346 is expected to be allowed :read_dependency_proxy2347 is expected to be disallowed :admin_dependency_proxy2348 behaves like Self-managed Core resource access tokens2349 with owner access2350 create resource access tokens2351 is expected to be allowed :create_resource_access_tokens2352 when resource access token creation is not allowed2353 is expected not to be allowed :create_resource_access_tokens2354 when parent group has project access token creation disabled2355 is expected not to be allowed :create_resource_access_tokens2356 with a personal namespace project2357 is expected to be allowed :create_resource_access_tokens2358 read resource access tokens2359 is expected to be allowed :read_resource_access_tokens2360 destroy resource access tokens2361 is expected to be allowed :destroy_resource_access_tokens2362 with developer access2363 create resource access tokens2364 is expected not to be allowed :create_resource_access_tokens2365 read resource access tokens2366 is expected not to be allowed :read_resource_access_tokens2367 destroy resource access tokens2368 is expected not to be allowed :destroy_resource_access_tokens2369 support bot2370 is expected not to be allowed :read_label2371 when group hierarchy has a project with service desk enabled2372 is expected to be allowed :read_label2373 is expected to be allowed :read_label2374 update_runners_registration_token2375 admin2376 when admin mode is enabled2377 is expected to be allowed :update_runners_registration_token2378 when admin mode is disabled2379 is expected to be disallowed :update_runners_registration_token2380 with owner2381 is expected to be allowed :update_runners_registration_token2382 with maintainer2383 is expected to be disallowed :update_runners_registration_token2384 with reporter2385 is expected to be disallowed :update_runners_registration_token2386 with guest2387 is expected to be disallowed :update_runners_registration_token2388 with non member2389 is expected to be disallowed :update_runners_registration_token2390 with anonymous2391 is expected to be disallowed :update_runners_registration_token2392 register_group_runners2393 admin2394 when admin mode is enabled2395 is expected to be allowed :register_group_runners2396 behaves like expected outcome based on runner registration control2397 with runner_registration_control FF disabled2398 is expected to be allowed :register_group_runners2399 with runner_registration_control FF enabled2400 with group runner registration disabled2401 is expected to be disallowed :register_group_runners2402 when admin mode is disabled2403 is expected to be disallowed :register_group_runners2404 with owner2405 is expected to be allowed :register_group_runners2406 behaves like expected outcome based on runner registration control2407 with runner_registration_control FF disabled2408 is expected to be allowed :register_group_runners2409 with runner_registration_control FF enabled2410 with group runner registration disabled2411 is expected to be disallowed :register_group_runners2412 with maintainer2413 is expected to be allowed :register_group_runners2414 behaves like expected outcome based on runner registration control2415 with runner_registration_control FF disabled2416 is expected to be allowed :register_group_runners2417 with runner_registration_control FF enabled2418 with group runner registration disabled2419 is expected to be disallowed :register_group_runners2420 with reporter2421 is expected to be disallowed :register_group_runners2422 with guest2423 is expected to be disallowed :register_group_runners2424 with non member2425 is expected to be disallowed :register_group_runners2426 with anonymous2427 is expected to be disallowed :register_group_runners2428 with customer_relations feature flag disabled2429 is expected to be disallowed :read_crm_contact2430 is expected to be disallowed :read_crm_organization2431 is expected to be disallowed :admin_crm_contact2432 is expected to be disallowed :admin_crm_organization2433Integrations::MicrosoftTeams2434 behaves like chat integration2435 Associations2436 is expected to belong to project required: false2437 is expected to have one service_hook2438 Validations2439 when integration is active2440 is expected to validate that :webhook cannot be empty/falsy2441 behaves like issue tracker integration URL attribute2442 is expected to allow :webhook to be ‹"https://example.com"›2443 is expected not to allow :webhook to be ‹"example.com"›2444 is expected not to allow :webhook to be ‹"ftp://example.com"›2445 is expected not to allow :webhook to be ‹"herp-and-derp"›2446 when integration is inactive2447 is expected not to validate that :webhook cannot be empty/falsy2448 .supported_events2449 does not support deployment_events2450 #execute2451 with push events2452 behaves like triggered Microsoft Teams integration2453 calls Microsoft Teams API2454 with default branch2455 when only default branch are to be notified2456 behaves like triggered Microsoft Teams integration2457 calls Microsoft Teams API2458 when only protected branches are to be notified2459 behaves like untriggered Microsoft Teams integration2460 does not call Microsoft Teams API2461 when default and protected branches are to be notified2462 behaves like triggered Microsoft Teams integration2463 calls Microsoft Teams API2464 when all branches are to be notified2465 behaves like triggered Microsoft Teams integration2466 calls Microsoft Teams API2467 with protected branch2468 when only default branch are to be notified2469 behaves like untriggered Microsoft Teams integration2470 does not call Microsoft Teams API2471 when only protected branches are to be notified2472 behaves like triggered Microsoft Teams integration2473 calls Microsoft Teams API2474 when default and protected branches are to be notified2475 behaves like triggered Microsoft Teams integration2476 calls Microsoft Teams API2477 when all branches are to be notified2478 behaves like triggered Microsoft Teams integration2479 calls Microsoft Teams API2480 with neither default nor protected branch2481 when only default branch are to be notified2482 behaves like untriggered Microsoft Teams integration2483 does not call Microsoft Teams API2484 when only protected branches are to be notified2485 behaves like untriggered Microsoft Teams integration2486 does not call Microsoft Teams API2487 when default and protected branches are to be notified2488 behaves like untriggered Microsoft Teams integration2489 does not call Microsoft Teams API2490 when all branches are to be notified2491 behaves like triggered Microsoft Teams integration2492 calls Microsoft Teams API2493 with issue events2494 behaves like triggered Microsoft Teams integration2495 calls Microsoft Teams API2496 with merge events2497 behaves like triggered Microsoft Teams integration2498 calls Microsoft Teams API2499 with wiki page events2500 behaves like triggered Microsoft Teams integration2501 calls Microsoft Teams API2502 with note events2503 with commit comment2504 behaves like triggered Microsoft Teams integration2505 calls Microsoft Teams API2506 with merge request comment2507 behaves like triggered Microsoft Teams integration2508 calls Microsoft Teams API2509 with issue comment2510 behaves like triggered Microsoft Teams integration2511 calls Microsoft Teams API2512 with snippet comment2513 behaves like triggered Microsoft Teams integration2514 calls Microsoft Teams API2515 with pipeline events2516 with failed pipeline2517 behaves like triggered Microsoft Teams integration2518 calls Microsoft Teams API2519 with succeeded pipeline2520 with default notify_only_broken_pipelines2521 does not call Microsoft Teams API2522 when notify_only_broken_pipelines is false2523 behaves like triggered Microsoft Teams integration2524 calls Microsoft Teams API2525 with default branch2526 when only default branch are to be notified2527 behaves like triggered Microsoft Teams integration2528 calls Microsoft Teams API2529 when only protected branches are to be notified2530 behaves like untriggered Microsoft Teams integration2531 does not call Microsoft Teams API2532 when default and protected branches are to be notified2533 behaves like triggered Microsoft Teams integration2534 calls Microsoft Teams API2535 when all branches are to be notified2536 behaves like triggered Microsoft Teams integration2537 calls Microsoft Teams API2538 with protected branch2539 when only default branch are to be notified2540 behaves like untriggered Microsoft Teams integration2541 does not call Microsoft Teams API2542 when only protected branches are to be notified2543 behaves like triggered Microsoft Teams integration2544 calls Microsoft Teams API2545 when default and protected branches are to be notified2546 behaves like triggered Microsoft Teams integration2547 calls Microsoft Teams API2548 when all branches are to be notified2549 behaves like triggered Microsoft Teams integration2550 calls Microsoft Teams API2551 with neither default nor protected branch2552 when only default branch are to be notified2553 behaves like untriggered Microsoft Teams integration2554 does not call Microsoft Teams API2555 when only protected branches are to be notified2556 behaves like untriggered Microsoft Teams integration2557 does not call Microsoft Teams API2558 when default and protected branches are to be notified2559 behaves like untriggered Microsoft Teams integration2560 does not call Microsoft Teams API2561 when all branches are to be notified2562 behaves like triggered Microsoft Teams integration2563 calls Microsoft Teams API2564 deployment events2565 behaves like untriggered Microsoft Teams integration2566 does not call Microsoft Teams API2567 Validations2568 when integration is active2569 is expected to validate that :webhook cannot be empty/falsy2570 behaves like issue tracker integration URL attribute2571 is expected to allow :webhook to be ‹"https://example.com"›2572 is expected not to allow :webhook to be ‹"example.com"›2573 is expected not to allow :webhook to be ‹"ftp://example.com"›2574 is expected not to allow :webhook to be ‹"herp-and-derp"›2575 when integration is inactive2576 is expected not to validate that :webhook cannot be empty/falsy2577 .supported_events2578 does not support deployment_events2579 #execute2580 with push events2581 calls Microsoft Teams API for push events2582 specifies the webhook when it is configured2583 with issue events2584 calls Microsoft Teams API2585 with merge events2586 calls Microsoft Teams API2587 with wiki page events2588 calls Microsoft Teams API2589 Note events2590 when commit comment event executed2591 calls Microsoft Teams API for commit comment events2592 when merge request comment event executed2593 calls Microsoft Teams API for merge request comment events2594 when issue comment event executed2595 calls Microsoft Teams API for issue comment events2596 when snippet comment event executed2597 calls Microsoft Teams API for snippet comment events2598 Pipeline events2599 with failed pipeline2600 behaves like call Microsoft Teams API2601 calls Microsoft Teams API for pipeline events2602 with succeeded pipeline2603 with default to notify_only_broken_pipelines2604 does not call Microsoft Teams API for pipeline events2605 with setting notify_only_broken_pipelines to false2606 behaves like call Microsoft Teams API2607 calls Microsoft Teams API for pipeline events2608 with default branch2609 only notify for the default branch2610 behaves like call Microsoft Teams API2611 calls Microsoft Teams API for pipeline events2612 notify for only protected branches2613 behaves like does not call Microsoft Teams API2614 does not call Microsoft Teams API for pipeline events2615 notify for only default and protected branches2616 behaves like call Microsoft Teams API2617 calls Microsoft Teams API for pipeline events2618 notify for all branches2619 behaves like call Microsoft Teams API2620 calls Microsoft Teams API for pipeline events2621 with protected branch2622 only notify for the default branch2623 behaves like does not call Microsoft Teams API2624 does not call Microsoft Teams API for pipeline events2625 notify for only protected branches2626 behaves like call Microsoft Teams API2627 calls Microsoft Teams API for pipeline events2628 notify for only default and protected branches2629 behaves like call Microsoft Teams API2630 calls Microsoft Teams API for pipeline events2631 notify for all branches2632 behaves like call Microsoft Teams API2633 calls Microsoft Teams API for pipeline events2634 with neither protected nor default branch2635 only notify for the default branch2636 behaves like does not call Microsoft Teams API2637 does not call Microsoft Teams API for pipeline events2638 notify for only protected branches2639 behaves like does not call Microsoft Teams API2640 does not call Microsoft Teams API for pipeline events2641 notify for only default and protected branches2642 behaves like does not call Microsoft Teams API2643 does not call Microsoft Teams API for pipeline events2644 notify for all branches2645 behaves like call Microsoft Teams API2646 calls Microsoft Teams API for pipeline events2647Packages::Debian::GenerateDistributionService2648 #execute2649 for project2650 behaves like Generate Debian Distribution and component files2651 with Debian components and architectures2652 generates Debian distribution and component files2653 without components and architectures2654 generates minimal distribution2655 for group2656 behaves like Generate Debian Distribution and component files2657 with Debian components and architectures2658 generates Debian distribution and component files2659 without components and architectures2660 generates minimal distribution2661Gitlab::Email::Handler::ServiceDeskHandler2662 service desk is enabled for the project2663 when everything is fine2664 behaves like a new issue request2665 creates a new issue2666 creates an issue_email_participant2667 sends thank you email2668 adds metric events for incoming and reply emails2669 with legacy incoming email address2670 behaves like a new issue request2671 creates a new issue2672 creates an issue_email_participant2673 sends thank you email2674 adds metric events for incoming and reply emails2675 when replying to issue creation email2676 when an issue with message_id has been found2677 does not create an additional issue2678 adds a comment to the created issue2679 does not send thank you email2680 when issue_email_participants FF is enabled2681 creates 2 issue_email_participants2682 when issue_email_participants FF is disabled2683 creates only 1 issue_email_participant2684 when an issue with message_id has not been found2685 creates a new issue correctly2686 sends thank you email once2687 creates 1 issue_email_participant2688 when using issue templates2689 and template is present2690 appends template text to issue description2691 when quick actions are present2692 applies quick action commands present on templates2693 applies group labels using quick actions2694 redacts quick actions present on user email body2695 when issues are set to private2696 applies quick action commands present on templates2697 and template cannot be found2698 does not append template text to issue description2699 creates support bot note on issue2700 does not send warning note email2701 when all lines of email are quoted2702 creates email with correct body2703 when using custom service desk address2704 when using project key2705 behaves like a new issue request2706 creates a new issue2707 creates an issue_email_participant2708 sends thank you email2709 adds metric events for incoming and reply emails2710 when there is no project with the key2711 bounces the email2712 when the project slug does not match2713 bounces the email2714 when there are multiple projects with same key2715 process email for project with matching slug2716 when project key is not set2717 behaves like a new issue request2718 creates a new issue2719 creates an issue_email_participant2720 sends thank you email2721 adds metric events for incoming and reply emails2722 when issue email creation fails2723 still creates a new issue2724 does not create issue email record2725 when rate limiting is in effect2726 when too many requests are sent by one user2727 raises an error2728 creates 1 issue2729 when requests are sent by different users2730 creates 2 issues2731 when limit is higher than sent emails2732 creates 2 issues2733 #can_handle?2734 handles the new email key format2735 handles the legacy email key format2736 doesn't handle invalid email key2737 when there is no from address2738 creates a new issue2739 does not send thank you email2740 when there is a sender address and a from address2741 prefers the from address2742 when service desk is not enabled for project2743 does not create an issue2744 does not send thank you email2745 when the email is forwarded through an alias2746 behaves like a new issue request2747 creates a new issue2748 creates an issue_email_participant2749 sends thank you email2750 adds metric events for incoming and reply emails2751 when the email is forwarded2752 behaves like a new issue request2753 creates a new issue2754 creates an issue_email_participant2755 sends thank you email2756 adds metric events for incoming and reply emails2757 service desk is disabled for the project2758 bounces the email2759 doesn't create an issue2760EnvironmentPolicy2761 #rules2762 when project is public2763 with stop action2764 access_level: nil, allowed?: false2765 is expected to equal false2766 access_level: :guest, allowed?: false2767 is expected to equal false2768 access_level: :reporter, allowed?: false2769 is expected to equal false2770 access_level: :developer, allowed?: true2771 is expected to equal true2772 access_level: :maintainer, allowed?: true2773 is expected to equal true2774 when an admin user2775 when admin mode is enabled2776 is expected to be allowed :stop_environment2777 when admin mode is disabled2778 is expected to be disallowed :stop_environment2779 with protected branch2780 when an admin user2781 when admin mode is enabled2782 is expected to be allowed :stop_environment2783 when admin mode is disabled2784 is expected to be disallowed :stop_environment2785 without stop action2786 access_level: nil, allowed?: false2787 is expected to equal false2788 access_level: :guest, allowed?: false2789 is expected to equal false2790 access_level: :reporter, allowed?: false2791 is expected to equal false2792 access_level: :developer, allowed?: true2793 is expected to equal true2794 access_level: :maintainer, allowed?: true2795 is expected to equal true2796 when an admin user2797 when admin mode is enabled2798 is expected to be allowed :stop_environment2799 when admin mode is disabled2800 is expected to be disallowed :stop_environment2801 #destroy_environment2802 access_level: nil, allowed?: false2803 is expected to be disallowed :destroy_environment2804 when environment is stopped2805 is expected to equal false2806 access_level: :guest, allowed?: false2807 is expected to be disallowed :destroy_environment2808 when environment is stopped2809 is expected to equal false2810 access_level: :reporter, allowed?: false2811 is expected to be disallowed :destroy_environment2812 when environment is stopped2813 is expected to equal false2814 access_level: :developer, allowed?: true2815 is expected to be disallowed :destroy_environment2816 when environment is stopped2817 is expected to equal true2818 access_level: :maintainer, allowed?: true2819 is expected to be disallowed :destroy_environment2820 when environment is stopped2821 is expected to equal true2822 when an admin user2823 is expected to be disallowed :destroy_environment2824 when environment is stopped2825 when admin mode is enabled2826 is expected to be allowed :destroy_environment2827 when admin mode is disabled2828 is expected to be disallowed :destroy_environment2829 when project is private2830 with stop action2831 access_level: nil, allowed?: false2832 is expected to equal false2833 access_level: :guest, allowed?: false2834 is expected to equal false2835 access_level: :reporter, allowed?: false2836 is expected to equal false2837 access_level: :developer, allowed?: true2838 is expected to equal true2839 access_level: :maintainer, allowed?: true2840 is expected to equal true2841 when an admin user2842 when admin mode is enabled2843 is expected to be allowed :stop_environment2844 when admin mode is disabled2845 is expected to be disallowed :stop_environment2846 with protected branch2847 when an admin user2848 when admin mode is enabled2849 is expected to be allowed :stop_environment2850 when admin mode is disabled2851 is expected to be disallowed :stop_environment2852 without stop action2853 access_level: nil, allowed?: false2854 is expected to equal false2855 access_level: :guest, allowed?: false2856 is expected to equal false2857 access_level: :reporter, allowed?: false2858 is expected to equal false2859 access_level: :developer, allowed?: true2860 is expected to equal true2861 access_level: :maintainer, allowed?: true2862 is expected to equal true2863 when an admin user2864 when admin mode is enabled2865 is expected to be allowed :stop_environment2866 when admin mode is disabled2867 is expected to be disallowed :stop_environment2868 #destroy_environment2869 access_level: nil, allowed?: false2870 is expected to be disallowed :destroy_environment2871 when environment is stopped2872 is expected to equal false2873 access_level: :guest, allowed?: false2874 is expected to be disallowed :destroy_environment2875 when environment is stopped2876 is expected to equal false2877 access_level: :reporter, allowed?: false2878 is expected to be disallowed :destroy_environment2879 when environment is stopped2880 is expected to equal false2881 access_level: :developer, allowed?: true2882 is expected to be disallowed :destroy_environment2883 when environment is stopped2884 is expected to equal true2885 access_level: :maintainer, allowed?: true2886 is expected to be disallowed :destroy_environment2887 when environment is stopped2888 is expected to equal true2889 when an admin user2890 is expected to be disallowed :destroy_environment2891 when environment is stopped2892 when admin mode is enabled2893 is expected to be allowed :destroy_environment2894 when admin mode is disabled2895 is expected to be disallowed :destroy_environment2896PackagesHelper2897 #package_registry_instance_url2898 returns conan instance url when registry_type is conant2899 returns npm instance url when registry_type is npm2900 #package_registry_project_url2901 returns maven registry url when registry_type is not provided2902 returns specified registry url when registry_type is provided2903 #pypi_registry_url2904 returns the pypi registry url2905 #composer_registry_url2906 return the composer registry url2907 #composer_config_repository_name2908 return global unique composer registry id2909 #show_cleanup_policy_on_alert2910 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2911 is expected to eq false2912 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2913 is expected to eq false2914 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2915 is expected to eq false2916 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2917 is expected to eq false2918 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2919 is expected to eq false2920 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false2921 is expected to eq false2922 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false2923 is expected to eq false2924 com: false, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false2925 is expected to eq false2926 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2927 is expected to eq false2928 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2929 is expected to eq false2930 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2931 is expected to eq false2932 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2933 is expected to eq false2934 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2935 is expected to eq false2936 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false2937 is expected to eq false2938 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false2939 is expected to eq false2940 com: false, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false2941 is expected to eq false2942 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2943 is expected to eq false2944 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2945 is expected to eq false2946 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2947 is expected to eq false2948 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2949 is expected to eq false2950 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2951 is expected to eq false2952 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false2953 is expected to eq false2954 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false2955 is expected to eq false2956 com: false, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false2957 is expected to eq false2958 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2959 is expected to eq false2960 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2961 is expected to eq false2962 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2963 is expected to eq false2964 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2965 is expected to eq false2966 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2967 is expected to eq false2968 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false2969 is expected to eq false2970 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false2971 is expected to eq false2972 com: false, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false2973 is expected to eq false2974 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2975 is expected to eq false2976 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2977 is expected to eq false2978 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2979 is expected to eq false2980 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2981 is expected to eq false2982 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2983 is expected to eq false2984 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false2985 is expected to eq false2986 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false2987 is expected to eq false2988 com: false, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false2989 is expected to eq false2990 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false2991 is expected to eq false2992 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false2993 is expected to eq false2994 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false2995 is expected to eq false2996 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false2997 is expected to eq false2998 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false2999 is expected to eq false3000 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3001 is expected to eq false3002 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3003 is expected to eq false3004 com: false, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3005 is expected to eq false3006 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3007 is expected to eq false3008 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3009 is expected to eq false3010 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3011 is expected to eq false3012 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3013 is expected to eq false3014 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3015 is expected to eq false3016 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3017 is expected to eq false3018 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3019 is expected to eq false3020 com: false, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3021 is expected to eq false3022 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3023 is expected to eq false3024 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3025 is expected to eq false3026 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3027 is expected to eq false3028 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3029 is expected to eq false3030 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3031 is expected to eq false3032 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3033 is expected to eq false3034 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3035 is expected to eq false3036 com: false, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3037 is expected to eq false3038 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3039 is expected to eq false3040 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3041 is expected to eq false3042 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3043 is expected to eq false3044 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3045 is expected to eq false3046 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3047 is expected to eq false3048 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3049 is expected to eq false3050 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3051 is expected to eq false3052 com: true, config_registry: false, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3053 is expected to eq false3054 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3055 is expected to eq false3056 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3057 is expected to eq false3058 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3059 is expected to eq false3060 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3061 is expected to eq false3062 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3063 is expected to eq false3064 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3065 is expected to eq false3066 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3067 is expected to eq false3068 com: true, config_registry: false, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3069 is expected to eq false3070 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3071 is expected to eq false3072 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3073 is expected to eq false3074 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3075 is expected to eq false3076 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3077 is expected to eq false3078 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3079 is expected to eq false3080 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3081 is expected to eq false3082 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3083 is expected to eq false3084 com: true, config_registry: false, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3085 is expected to eq false3086 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3087 is expected to eq false3088 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3089 is expected to eq false3090 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3091 is expected to eq false3092 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3093 is expected to eq false3094 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3095 is expected to eq false3096 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3097 is expected to eq false3098 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3099 is expected to eq false3100 com: true, config_registry: false, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3101 is expected to eq false3102 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3103 is expected to eq false3104 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3105 is expected to eq false3106 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3107 is expected to eq false3108 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3109 is expected to eq false3110 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3111 is expected to eq false3112 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3113 is expected to eq false3114 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3115 is expected to eq false3116 com: true, config_registry: true, project_registry: false, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3117 is expected to eq false3118 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3119 is expected to eq false3120 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3121 is expected to eq false3122 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3123 is expected to eq false3124 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3125 is expected to eq false3126 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3127 is expected to eq false3128 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3129 is expected to eq false3130 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3131 is expected to eq false3132 com: true, config_registry: true, project_registry: false, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3133 is expected to eq false3134 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3135 is expected to eq false3136 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3137 is expected to eq false3138 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3139 is expected to eq false3140 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3141 is expected to eq false3142 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3143 is expected to eq false3144 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3145 is expected to eq false3146 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3147 is expected to eq false3148 com: true, config_registry: true, project_registry: true, historic_entries: false, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: true3149 is expected to eq true3150 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3151 is expected to eq false3152 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3153 is expected to eq false3154 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3155 is expected to eq false3156 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3157 is expected to eq false3158 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3159 is expected to eq false3160 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3161 is expected to eq false3162 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3163 is expected to eq false3164 com: true, config_registry: true, project_registry: true, historic_entries: true, historic_entry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3165 is expected to eq false3166 #package_details_data3167 in a project without a group3168 populates presenter data3169 in a project with a group3170 populates presenter data3171NotesFinder3172 #execute3173 finds notes on merge requests3174 finds notes on snippets3175 excludes notes on commits the author can't download3176 succeeds when no notes found3177 when notes filter is present3178 returns only user notes when using only_comments filter3179 returns only system notes when using only_activity filters3180 gets all notes3181 on restricted projects3182 publicly excludes notes on merge requests3183 publicly excludes notes on issues3184 publicly excludes notes on snippets3185 for target type3186 finds only notes for the selected type3187 for target3188 finds all notes3189 finds notes on merge requests3190 finds notes on snippets3191 finds notes on personal snippets3192 raises an exception for an invalid target_type3193 filters out old notes3194 confidential issue notes3195 returns notes if user can see the issue3196 raises an error if user can not see the issue3197 raises an error for project members with guest role3198 for explicit target3199 returns the expected notes3200 returns the expected notes when last_fetched_at is given3201 fails when nil is provided3202 sorting3203 allows sorting3204 defaults to sort by .fresh3205 .search3206 returns notes with matching content3207 returns notes with matching content regardless of the casing3208 returns commit notes user can access3209 confidential issues3210 returns notes with matching content if user can see the issue3211 does not return notes with matching content if user can not see the issue3212 does not return notes with matching content for project members with guest role3213 does not return notes with matching content for unauthenticated users3214 inlines SQL filters on subqueries for performance3215 project_id check3216 search filter3217 #target3218 for a issue target3219 returns the issue3220 for a merge request target3221 returns the merge_request3222 for a snippet target3223 returns the snippet3224 for a commit target3225 returns the commit3226 target_iid3227 finds issues by iid3228 finds merge requests by iid3229 returns nil if both target_id and target_iid are not given3230 prioritizes target_id over target_iid3231Clusters::Applications::CreateService3232 #execute3233 creates an application3234 application already installed3235 does not create a new application3236 schedules an upgrade for the application3237 known applications3238 ingress application3239 creates the application3240 cert manager application3241 creates the application3242 sets the email3243 jupyter application3244 creates the application3245 sets the hostname3246 sets the oauth_application3247 knative application3248 creates the application3249 sets the hostname3250 executes AssociateDomainService3251 elastic stack application3252 creates the application3253 invalid application3254 raises an error3255 group cluster3256 application: "ingress", association: :application_ingress, allowed: true, pre_create_ingress: false3257 executes for each application3258 application: "runner", association: :application_runner, allowed: true, pre_create_ingress: false3259 executes for each application3260 application: "prometheus", association: :application_prometheus, allowed: true, pre_create_ingress: false3261 executes for each application3262 application: "jupyter", association: :application_jupyter, allowed: true, pre_create_ingress: true3263 executes for each application3264 when application is installable3265 when application is associated with a cluster3266 behaves like installable applications3267 makes the application scheduled3268 schedules an install via worker3269 when application is not associated with a cluster3270 behaves like installable applications3271 makes the application scheduled3272 schedules an install via worker3273 when installation is already in progress3274 raises an exception3275 does not schedule a cluster worker3276 when application is installed3277 schedules an upgrade via worker3278 schedules an upgrade via worker3279Gitlab::ReferenceExtractor3280 accesses valid user objects3281 ignores user mentions inside specific elements3282 does not include anchors from table of contents in issue references3283 accesses valid issue objects3284 accesses valid merge requests3285 accesses valid labels3286 accesses valid snippets3287 accesses valid commits3288 accesses valid commit ranges3289 directly addressed users3290 when a user is directly addressed3291 accesses the user object which is mentioned in the beginning of the line3292 doesn't access the user object if it's not mentioned in the beginning of the line3293 when multiple users are addressed3294 accesses the user objects which are mentioned in the beginning of the line3295 doesn't access the user objects if they are not mentioned in the beginning of the line3296 when multiple users are addressed in different paragraphs3297 accesses user objects which are mentioned in the beginning of each paragraph3298 with an external issue tracker3299 when GitLab issues are enabled3300 returns both Jira and internal issues3301 returns only Jira issues if the internal one does not exist3302 when GitLab issues are disabled3303 returns only Jira issues3304 with an inactive external issue tracker3305 when GitLab issues are enabled3306 returns only internal issue3307 does not return any issue if the internal one does not exist3308 with a project with an underscore3309 handles project issue references3310 #all3311 returns all referables3312 .references_pattern3313 is expected to be a kind of Regexp3314 referables prefixes3315 returns all supported prefixes3316 does not allow one prefix for multiple referables if not allowed specificly3317 #references3318 does not return any references3319 when references are visible3320 returns visible references of given type3321 #all_visible?3322 returns true if no references were parsed yet3323 when references was already called3324 returns false3325 when user can access only some references3326 returns false3327 when user can access all references3328 returns true3329Clusters::Kubernetes::CreateOrUpdateServiceAccountService3330 .gitlab_creator3331 with ABAC cluster3332 behaves like creates service account and token3333 creates a kubernetes service account3334 creates a kubernetes secret3335 with RBAC cluster3336 creates a cluster role binding with cluster-admin access3337 behaves like creates service account and token3338 creates a kubernetes service account3339 creates a kubernetes secret3340 .namespace_creator3341 with ABAC cluster3342 behaves like creates service account and token3343 creates a kubernetes service account3344 creates a kubernetes secret3345 With RBAC enabled cluster3346 creates a namespace object3347 creates a namespaced role binding with admin access3348 creates a role binding granting crossplane database permissions to the service account3349 creates a role and role binding granting knative serving permissions to the service account3350 creates a role and role binding granting crossplane database permissions to the service account3351 creates a role granting cilium permissions to the service account3352 creates a role binding granting cilium permissions to the service account3353 behaves like creates service account and token3354 creates a kubernetes service account3355 creates a kubernetes secret3356Gitlab::ContributionsCalendar3357 #activity_dates3358 returns a hash of date => count3359 counts the diff notes on merge request3360 counts the discussions on merge requests and issues3361 when the user has opted-in for private contributions3362 shows private and public events to all users3363 still counts correct with feature access levels set to private3364 does not fail if there are no contributed projects3365 when events fall under different dates depending on the system time zone3366 renders correct event counts within the UTC timezone3367 renders correct event counts within the Sydney timezone3368 renders correct event counts within the US Central timezone3369 when events fall under different dates depending on the contributor's time zone3370 renders correct event counts within the UTC timezone3371 renders correct event counts within the Sydney timezone3372 renders correct event counts within the US Central timezone3373 #events_by_date3374 returns all events for a given date3375 only shows private events to authorized users3376 includes diff notes on merge request3377 when the user cannot read cross project3378 does not return any events3379 #starting_year3380 when the contributor's timezone is not set3381 is the start of last year in the system timezone3382 when the contributor's timezone is set to Sydney3383 is the start of last year in Sydney3384 #starting_month3385 when the contributor's timezone is not set3386 is the start of this month in the system timezone3387 when the contributor's timezone is set to Sydney3388 is the start of this month in Sydney3389Gitlab::Database::BackgroundMigration::BatchedMigrationRunner3390 #run_migration_job3391 when the migration has no previous jobs3392 when the migration has batches to process3393 runs the job for the first batch3394 optimizes the migration after executing the job3395 when the batch maximum exceeds the migration maximum3396 clamps the batch maximum to the migration maximum3397 when the migration has no batches to process3398 behaves like it has completed the migration3399 does not create and run a migration job3400 marks the migration as finished3401 when the migration has previous jobs3402 when the migration has no batches remaining3403 behaves like it has completed the migration3404 does not create and run a migration job3405 marks the migration as finished3406 when the migration has batches to process3407 runs the migration job for the next batch3408 when the batch minimum exceeds the migration maximum3409 behaves like it has completed the migration3410 does not create and run a migration job3411 marks the migration as finished3412 when migration has failed jobs3413 retries the failed job3414 when failed job has reached the maximum number of attempts3415 marks the migration as failed3416 when migration has stuck jobs3417 retries the stuck job3418 when migration has possible stuck jobs3419 keeps the migration active3420 when the migration has batches to process and failed jobs3421 runs next batch then retries the failed job3422 #run_entire_migration3423 when not in a development or test environment3424 raises an error3425 when the given migration is not active3426 does not create and run migration jobs3427 when the given migration is active3428 runs all jobs inline until finishing the migration3429 #finalize3430 when the migration is not yet completed3431-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3432 -> 0.0015s3433-- create_table(:_test_batched_migrations_test_table, {:id=>false})3434 -> 0.0036s3435-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3436 -> 0.0018s3437-- execute("SELECT * FROM _test_batched_migrations_test_table WHERE some_id_convert_to_bigint IS NULL")3438 -> 0.0015s3439-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3440 -> 0.0031s3441 completes the migration3442 when migration fails to complete3443-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3444 -> 0.0014s3445-- create_table(:_test_batched_migrations_test_table, {:id=>false})3446 -> 0.0031s3447-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3448 -> 0.0017s3449-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3450 -> 0.0022s3451 raises an error3452 when the migration is already finished3453-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3454 -> 0.0011s3455-- create_table(:_test_batched_migrations_test_table, {:id=>false})3456 -> 0.0034s3457-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3458 -> 0.0016s3459-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3460 -> 0.0019s3461 is a no-op3462 when the migration does not exist3463-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3464 -> 0.0011s3465-- create_table(:_test_batched_migrations_test_table, {:id=>false})3466 -> 0.0028s3467-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3468 -> 0.0014s3469-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3470 -> 0.0019s3471 is a no-op3472Resolvers::TodoResolver3473 is expected to have nullable GraphQL type TodoConnection3474 #resolve3475 calls TodosFinder3476 when using no filter3477 returns pending todos3478 when using filters3479 returns the todos for multiple states3480 returns the todos for multiple filters3481 returns the todos for single filter3482 returns the todos for multiple groups3483 returns the todos for multiple authors3484 returns the todos for multiple actions3485 returns the todos for multiple projects3486 when no target is provided3487 returns no todos3488 when target user is not the current user3489 returns no todos3490 when request is for a todo target3491 returns only the todos for the target3492Gitlab::Git::Wiki3493 #pages3494 returns all the pages3495 returns only one page3496 #page3497 returns the right page3498 returns nil for invalid arguments3499 #preview_slug3500 title: "The Best Thing", format: :markdown, expected_slug: "The-Best-Thing"3501 is expected to eq "The-Best-Thing"3502 matches the slug generated by gitaly3503 title: "The Best Thing", format: :md, expected_slug: "The-Best-Thing"3504 is expected to eq "The-Best-Thing"3505 matches the slug generated by gitaly3506 title: "The Best Thing", format: :txt, expected_slug: "The-Best-Thing"3507 is expected to eq "The-Best-Thing"3508 matches the slug generated by gitaly3509 title: "A Subject/Title Here", format: :txt, expected_slug: "A-Subject/Title-Here"3510 is expected to eq "A-Subject/Title-Here"3511 matches the slug generated by gitaly3512 title: "A subject", format: :txt, expected_slug: "A-subject"3513 is expected to eq "A-subject"3514 matches the slug generated by gitaly3515 title: "A 1/B 2/C 3", format: :txt, expected_slug: "A-1/B-2/C-3"3516 is expected to eq "A-1/B-2/C-3"3517 matches the slug generated by gitaly3518 title: "subject/title", format: :txt, expected_slug: "subject/title"3519 is expected to eq "subject/title"3520 matches the slug generated by gitaly3521 title: "subject/title.md", format: :txt, expected_slug: "subject/title.md"3522 is expected to eq "subject/title.md"3523 matches the slug generated by gitaly3524 title: "foo<bar>+baz", format: :txt, expected_slug: "foo-bar--baz"3525 is expected to eq "foo-bar--baz"3526 matches the slug generated by gitaly3527 title: "foo%2Fbar", format: :txt, expected_slug: "foo%2Fbar"3528 is expected to eq "foo%2Fbar"3529 matches the slug generated by gitaly3530 title: "", format: :markdown, expected_slug: ".md"3531 is expected to eq ".md"3532 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3533 title: "", format: :md, expected_slug: ".md"3534 is expected to eq ".md"3535 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3536 title: "", format: :txt, expected_slug: ".txt"3537 is expected to eq ".txt"3538 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)3539Resolvers::BoardListIssuesResolver3540 #resolve3541 when project boards3542 behaves like group and project board list issues resolver3543 when authorized3544 raises a mutually exclusive filter error when milestone wildcard and title are provided3545 returns the issues in the correct order3546 finds only issues matching filters3547 finds only issues filtered by milestone wildcard3548 finds only issues matching search param3549 filters issues by negated issue type3550 raises an exception if both assignee_username and assignee_wildcard_id are present3551 accepts assignee wildcard id NONE3552 accepts assignee wildcard id ANY3553 when filtering by confidential3554 returns matching issue3555 when group boards3556 behaves like group and project board list issues resolver3557 when authorized3558 raises a mutually exclusive filter error when milestone wildcard and title are provided3559 returns the issues in the correct order3560 finds only issues matching filters3561 finds only issues filtered by milestone wildcard3562 finds only issues matching search param3563 filters issues by negated issue type3564 raises an exception if both assignee_username and assignee_wildcard_id are present3565 accepts assignee wildcard id NONE3566 accepts assignee wildcard id ANY3567 when filtering by confidential3568 returns matching issue3569Gitlab::BitbucketImport::Importer3570 #import_pull_requests3571 imports threaded discussions3572 when user exists in GitLab3573 does not add author line to comments3574 when importing a pull request throws an exception3575 logs an error without the backtrace3576 when branches' sha is not found in the repository3577 uses the pull request sha references3578 metrics3579 counts imported pull requests3580 issues statuses3581 maps statuses to open or closed3582 creating labels on project3583 creates labels as expected3584 does not fail if label is already existing3585 does not create new labels3586 does not update existing ones3587 wiki import3588 is skipped when the wiki exists3589 imports to the project disk_path3590 issue import3591 maps reporters to anonymous if bitbucket reporter is nil3592 metrics3593 counts imported issues3594 #execute3595 metrics3596 counts and measures duration of imported projects3597ActiveSession3598 #current?3599 returns true if the active session matches the current session3600 returns false if the active session does not match the current session3601 returns false if the session id is nil3602 .list3603 returns all sessions by user3604 returns an empty array if the user does not have any active session3605 when the current session is in the old format3606 behaves like ignoring obsolete entries3607 does not return obsolete entries and cleans them up3608 when the current session is in the new format3609 behaves like ignoring obsolete entries3610 does not return obsolete entries and cleans them up3611 .list_sessions3612 uses the ActiveSession lookup to return original sessions3613 .session_ids_for_user3614 uses the user lookup table to return session ids3615 .sessions_from_ids3616 uses the ActiveSession lookup to return original sessions3617 avoids a redis lookup for an empty array3618 uses redis lookup in batches3619 .set3620 sets a new redis entry for the user session and a lookup entry3621 adds timestamps and information from the request3622 is possible to log in only using the old session key3623 keeps the created_at from the login on consecutive requests3624 .destroy_session3625 destroy called with Rack::Session::SessionId#private_id3626 calls .destroy_sessions3627 ActiveSession with session_private_id3628 when using old session key serialization3629 removes the devise session3630 removes the lookup entry3631 removes the ActiveSession3632 when using new session key serialization3633 removes the devise session3634 removes the lookup entry3635 removes the ActiveSession3636 .destroy_all_but_current3637 gracefully handles a nil session ID3638 with legacy sessions3639 behaves like with user sessions3640 removes the entry associated with the all user sessions but current3641 removes the lookup entry of deleted sessions3642 does not remove impersonated sessions3643 with new sessions3644 behaves like with user sessions3645 removes the entry associated with the all user sessions but current3646 removes the lookup entry of deleted sessions3647 does not remove impersonated sessions3648 .cleanup3649 with legacy sessions3650 behaves like cleaning up3651 does not bail if there are no lookup entries3652 when removing obsolete sessions3653 removes obsolete lookup entries3654 cleaning up old sessions3655 removes obsolete active sessions entries3656 removes obsolete lookup entries3657 removes obsolete lookup entries even without active session3658 when the number of active sessions is lower than the limit3659 does not remove active session entries, but removes lookup entries3660 cleaning up old sessions stored by Rack::Session::SessionId#private_id3661 removes obsolete active sessions entries3662 with new sessions3663 behaves like cleaning up3664 does not bail if there are no lookup entries3665 when removing obsolete sessions3666 removes obsolete lookup entries3667 cleaning up old sessions3668 removes obsolete active sessions entries3669 removes obsolete lookup entries3670 removes obsolete lookup entries even without active session3671 when the number of active sessions is lower than the limit3672 does not remove active session entries, but removes lookup entries3673 cleaning up old sessions stored by Rack::Session::SessionId#private_id3674 removes obsolete active sessions entries3675 .cleaned_up_lookup_entries3676 with legacy sessions3677 behaves like cleaning up lookup entries3678 removes obsolete lookup entries3679 reports the removed entries3680 with new sessions3681 behaves like cleaning up lookup entries3682 removes obsolete lookup entries3683 reports the removed entries3684IssueLinks::CreateService3685 #execute3686 when the reference list is empty3687 returns error3688 when Issue not found3689 returns error3690 no relationship is created3691 when user has no permission to target project Issue3692 returns error3693 no relationship is created3694 source and target are the same issue3695 does not create notes3696 no relationship is created3697 when there is an issue to relate3698 creates relationships3699 returns success status3700 creates notes3701 issue is an incident3702 behaves like an incident management tracked event3703 .track_event3704 tracks the event using redis3705 when reference of any already related issue is present3706 creates notes only for new relations3707 when there are invalid references3708 creates links only for valid references3709 returns error status3710BroadcastMessage3711 is expected to be valid3712 validations3713 is expected to allow :color to be ‹nil›3714 is expected to allow :color to be ‹"#000"›3715 is expected to allow :color to be ‹"#AABBCC"›3716 is expected not to allow :color to be ‹"000"›3717 is expected to allow :font to be ‹nil›3718 is expected to allow :font to be ‹"#000"›3719 is expected to allow :font to be ‹"#AABBCC"›3720 is expected not to allow :font to be ‹"000"›3721 is expected to allow :broadcast_type to be ‹1›3722 is expected not to allow :broadcast_type to be ‹nil›3723 .current3724 returns both types3725 behaves like time constrainted3726 returns message if time match3727 returns multiple messages if time match3728 returns empty list if time not come3729 returns empty list if time has passed3730 behaves like message cache3731 caches the output of the query for two weeks3732 expires the value if a broadcast message has ended3733 does not create new records3734 includes messages that need to be displayed in the future3735 does not clear the cache if only a future message should be displayed3736 behaves like matches with current path3737 returns message if it matches the target path3738 returns message if part of the target path matches3739 returns message if provided a path without a preceding slash3740 returns the message for empty target path3741 returns the message if target path is nil3742 does not return message if target path does not match3743 does not return message if target path does not match when using wildcard3744 does not return message if target path has no wild card at the end3745 does not return message if target path has wild card at the end3746 does return message if target path has wild card at the beginning and the end3747 does not return message if the target path is set but no current path is provided3748 .current_banner_messages3749 only returns banners3750 behaves like time constrainted3751 returns message if time match3752 returns multiple messages if time match3753 returns empty list if time not come3754 returns empty list if time has passed3755 behaves like message cache3756 caches the output of the query for two weeks3757 expires the value if a broadcast message has ended3758 does not create new records3759 includes messages that need to be displayed in the future3760 does not clear the cache if only a future message should be displayed3761 behaves like matches with current path3762 returns message if it matches the target path3763 returns message if part of the target path matches3764 returns message if provided a path without a preceding slash3765 returns the message for empty target path3766 returns the message if target path is nil3767 does not return message if target path does not match3768 does not return message if target path does not match when using wildcard3769 does not return message if target path has no wild card at the end3770 does not return message if target path has wild card at the end3771 does return message if target path has wild card at the beginning and the end3772 does not return message if the target path is set but no current path is provided3773 .current_notification_messages3774 only returns notifications3775 behaves like time constrainted3776 returns message if time match3777 returns multiple messages if time match3778 returns empty list if time not come3779 returns empty list if time has passed3780 behaves like message cache3781 caches the output of the query for two weeks3782 expires the value if a broadcast message has ended3783 does not create new records3784 includes messages that need to be displayed in the future3785 does not clear the cache if only a future message should be displayed3786 behaves like matches with current path3787 returns message if it matches the target path3788 returns message if part of the target path matches3789 returns message if provided a path without a preceding slash3790 returns the message for empty target path3791 returns the message if target path is nil3792 does not return message if target path does not match3793 does not return message if target path does not match when using wildcard3794 does not return message if target path has no wild card at the end3795 does not return message if target path has wild card at the end3796 does return message if target path has wild card at the beginning and the end3797 does not return message if the target path is set but no current path is provided3798 #attributes3799 includes message_html field3800 #active?3801 is truthy when started and not ended3802 is falsey when ended3803 is falsey when not started3804 #started?3805 is truthy when starts_at has passed3806 is falsey when starts_at is in the future3807 #ended?3808 is truthy when ends_at has passed3809 is falsey when ends_at is in the future3810 #flush_redis_cache3811 flushes the Redis cache3812MergeRequestPollWidgetEntity3813 has default_merge_commit_message_with_description3814 new_blob_path3815 when user can push to project3816 returns path3817 when user cannot push to project3818 returns nil3819 auto merge3820 when auto merge is enabled3821 returns auto merge related information3822 when auto merge is not enabled3823 returns auto merge related information3824 when head pipeline is running3825 returns available auto merge strategies3826 squash defaults for projects3827 squash_option: "always", value: true, default: true, readonly: true3828 the key reflects the correct value3829 squash_option: "never", value: false, default: false, readonly: true3830 the key reflects the correct value3831 squash_option: "default_on", value: false, default: true, readonly: false3832 the key reflects the correct value3833 squash_option: "default_off", value: false, default: false, readonly: false3834 the key reflects the correct value3835 when head pipeline is finished3836 returns available auto merge strategies3837 pipeline3838 when user has access to pipelines3839 when is up to date3840 does not return pipeline3841 returns ci_status3842 when is not up to date3843 returns nil3844 when user does not have access to pipelines3845 does not return ci_status3846 #builds_with_coverage3847 serializes the builds with coverage3848 #mergeable3849 shows whether a merge request is mergeable3850 when merge request is in checking state3851 calculates mergeability and returns true3852 when check_mergeability_async_in_widget is disabled3853 calculates mergeability and returns true3854Ci::BuildRunnerSession3855 is expected to belong to build required: false3856 is expected to validate that :build cannot be empty/falsy3857 is expected to validate that :url cannot be empty/falsy, producing a custom validation error on failure3858 nested attribute assignment3859 creates a new session3860 updates session with new attributes3861 #terminal_specification3862 returns terminal.gitlab.com protocol3863 returns a wss url3864 returns empty hash if no url3865 when url is present3866 returns ca_pem nil if empty certificate3867 adds Authorization header if authorization is present3868 #service_specification3869 returns service proxy url3870 returns default service proxy websocket subprotocol3871 returns empty hash if no url3872 when port is not present3873 uses the default port name3874 when the service is not present3875 uses the service name "build" as default3876 when url is present3877 returns ca_pem nil if empty certificate3878 adds Authorization header if authorization is present3879 when subprotocol is present3880 returns the new subprotocol3881Projects::ContainerRepository::CleanupTagsService3882 #execute3883 when no params are specified3884 does not remove anything3885 when regex matching everything is specified3886 behaves like removes all matches3887 does remove all tags except latest3888 with deprecated name_regex param3889 behaves like removes all matches3890 does remove all tags except latest3891 with invalid regular expressions3892 when name_regex_delete is invalid3893 behaves like handling an invalid regex3894 keeps all tags3895 is expected to eq {:message=>"invalid regex", :status=>:error}3896 calls error tracking service3897 when name_regex is invalid3898 behaves like handling an invalid regex3899 keeps all tags3900 is expected to eq {:message=>"invalid regex", :status=>:error}3901 calls error tracking service3902 when name_regex_keep is invalid3903 behaves like handling an invalid regex3904 keeps all tags3905 is expected to eq {:message=>"invalid regex", :status=>:error}3906 calls error tracking service3907 when delete regex matching specific tags is used3908 does remove C and D3909 with overriding allow regex3910 does not remove C3911 with name_regex_delete overriding deprecated name_regex3912 does not remove C3913 with allow regex value3914 does not remove B*3915 when keeping only N tags3916 sorts tags by date3917 when not keeping N tags3918 does not sort tags by date3919 when removing keeping only 33920 does remove B* and C as they are the oldest3921 when removing older than 1 day3922 does remove B* and C as they are older than 1 day3923 when combining all parameters3924 does remove B* and C3925 when running a container_expiration_policy3926 with valid container_expiration_policy param3927 succeeds without a user3928 without container_expiration_policy param3929 fails3930 truncating the tags list3931 feature_flag_enabled: false, max_list_size: 10, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false3932 behaves like returning the response3933 returns the response3934 feature_flag_enabled: false, max_list_size: 10, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false3935 behaves like returning the response3936 returns the response3937 feature_flag_enabled: false, max_list_size: 3, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false3938 behaves like returning the response3939 returns the response3940 feature_flag_enabled: false, max_list_size: 3, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false3941 behaves like returning the response3942 returns the response3943 feature_flag_enabled: false, max_list_size: 0, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false3944 behaves like returning the response3945 returns the response3946 feature_flag_enabled: false, max_list_size: 0, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false3947 behaves like returning the response3948 returns the response3949 feature_flag_enabled: true, max_list_size: 10, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false3950 behaves like returning the response3951 returns the response3952 feature_flag_enabled: true, max_list_size: 10, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false3953 behaves like returning the response3954 returns the response3955 feature_flag_enabled: true, max_list_size: 3, delete_tags_service_status: :success, expected_status: :error, expected_truncated: true3956 behaves like returning the response3957 returns the response3958 feature_flag_enabled: true, max_list_size: 3, delete_tags_service_status: :error, expected_status: :error, expected_truncated: true3959 behaves like returning the response3960 returns the response3961 feature_flag_enabled: true, max_list_size: 0, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false3962 behaves like returning the response3963 returns the response3964 feature_flag_enabled: true, max_list_size: 0, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false3965 behaves like returning the response3966 returns the response3967 caching3968 caches the created_at values3969 with cached values3970 uses them3971Ci::StuckBuilds::DropRunningService3972 when job is running3973 when job is outdated3974 behaves like job is dropped with failure reason3975 changes status3976 when job has data integrity problem3977 drops the job and logs the reason3978 when job is fresh3979 behaves like job is unchanged3980 does not change status3981 when job freshly updated3982 behaves like job is unchanged3983 does not change status3984 when new query flag is disabled3985 when job is running3986 when job is outdated3987 behaves like job is dropped with failure reason3988 changes status3989 when job has data integrity problem3990 drops the job and logs the reason3991 when job is fresh3992 behaves like job is unchanged3993 does not change status3994 when job freshly updated3995 behaves like job is unchanged3996 does not change status3997 when job is success3998 when created_at is the same as updated_at3999 behaves like job is unchanged4000 does not change status4001 when created_at is before updated_at4002 behaves like job is unchanged4003 does not change status4004 when job is skipped4005 when created_at is the same as updated_at4006 behaves like job is unchanged4007 does not change status4008 when created_at is before updated_at4009 behaves like job is unchanged4010 does not change status4011 when job is failed4012 when created_at is the same as updated_at4013 behaves like job is unchanged4014 does not change status4015 when created_at is before updated_at4016 behaves like job is unchanged4017 does not change status4018 when job is canceled4019 when created_at is the same as updated_at4020 behaves like job is unchanged4021 does not change status4022 when created_at is before updated_at4023 behaves like job is unchanged4024 does not change status4025 when job is scheduled4026 when created_at is the same as updated_at4027 behaves like job is unchanged4028 does not change status4029 when created_at is before updated_at4030 behaves like job is unchanged4031 does not change status4032 when job is pending4033 when created_at is the same as updated_at4034 behaves like job is unchanged4035 does not change status4036 when created_at is before updated_at4037 behaves like job is unchanged4038 does not change status4039Key4040 Associations4041 is expected to belong to user required: false4042 Validation4043 is expected to validate that :title cannot be empty/falsy4044 is expected to validate that the length of :title is at most 2554045 is expected to validate that :key cannot be empty/falsy4046 is expected to validate that the length of :key is at most 50004047 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC98dbu7gxcbmAvwMqz/6AALhSr1jiXG0UC8FQMvoDt+ciB+uSJhg7KlxinKjYJnPGfhX+q2K+mmCGAmI/D6q7rFxE+bn09O+75qgkTHi+suDVE6KG7L3n0alGd/qSevfomR77Snh6fQPdG6sEAZz3kehcpfVnq5/IuLFq9FBrgmu52Jd4XZLQZKkDq6zYOJ69FUkGf93LZIV/OOaS+f+qkOGPCUkdKl7oEcgpVNY9SRjBCduXnvi2CyQnnJVkBguGL5VlXwFXH+17Whs7oFWmdiG+4jzBRLIMz4EuIW09b8Su5PW6+bBuXOifHA8KG5TMmjs5LYdCMPFnhTyDyO3a1 dummy@gitlab.com"›4048 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGSD77lLtjmzewiBs6nu2R5nu6oNkrAkH/0co1fHHosKfRr+sWkSTKXOVcL7bhRu+tniGBmB5pn+i1qX7BXtrcnv//bCXWIp+me027L4RJa5/Ep077iiTJlzTpcV664xNUXC8mzBr601HR/Z2TzX5DWJvnyqqFkN7qHTYo/+IoKECnKqNzI5SQrAxgi6sbWA5DFQ/nwcqsUSBo5gCCJ/0QPrR19yVV5lJA19EY2LawOb1SJNOFo4mQupSlBZwvERZJ7IqhBTPtQIfrqqz5VJbI13jK3ViZTugIZqydWAhosUyejP3SdCj1KMexrvV95tjUtmhVFlph4tKThQO0p9pXKZNCzYsbQTye6O6Hk2rojOJLyFWqNBVKtI8Ymfu7OQWppRnuUFuhuuS515H1s888bZFMPsC74mPyo0Y7Q9wAoTnQ9Hw6b0J6OfY3PIRVphaCmxh6b7dgSPFdD7TA6j0xk6PCTOIEzBKuc85B3GQc8Nt4sTv6fW8lGeuYWqepW74igeC4qB6U3/3+p3nPdq/bTM1txrhnQsl1r4dv6TLZ51EtHp6sXayp0qd0pRaiavebXFC0iaETLraQpye4FWbBL/8xTjQ/0VPrYVuUCDvDSMIIS3/9g7Kp7ERUDC9jUqOVonm4pTXL9iItiUBlK7Mob9C4fQIRFnVR00DCmkmVgw== dummy@gitlab.com"›4049 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACgQDxnZP0TucLH3zcrvt75DPNq+xKqOmJkCEzTytKq4S5MDH0nlx+xOZ9WykhwDHXU0iZBJF7yRdLkZweYDJVKnBzr4t7QP5Sw2/ZdLelvUMWGJjuz28x8Z+8NZ+IxL/exDz7itrhCsLupQhGO1obiIwf8xVzzPoxrQ9dxaN4x965N+QdQcld8O6xfpSE0p5Y3sRn3kp57aHWoNa/bUGZy0OHLr/ig0uc6EKyWsTmEESOgDyV94wOyHR0KNGEENyxQt4BwAbEBn3Y41HKqD358KKh+XjbECebrrBFigdDL/eYFIUlstJ07SK/HtYjZbiUZCPs8bJA+SBaLK0pGGqguM2LXRoMeMUZFwKKKS2LpRqjKGj3Qt7qMnp1SkVhiMnxNqL4nJnDOOVo07xDIPKqIBYO67/cp4Icv3IjKxy6K3EIpLr+iRCxcllpDogxolzFC+pEDVpmEvcrGEv1ON6HcCdk/6Q8Iekr8rYDHpKCU5FF2uBHkqq7yNJ1/+NFC4dgyOo0xCVL4D3DvDKNxFYkrzW4ICt0f5XcMnU10yS/OFXz8JwA3jvuLvMRe5JdFiIjb/l86+TgYyvK8Y8N/UWgSgyjXUCv8nxdvpsxdz5h7HBF8E2DIxCVMC23655e5rp5eJW9EU9X5YFZc3u6uWJ1f1aO+1ViTtqkPrqxovNDD+gVel8Ny6MJ4MvmDKY+eM8beNMSSf1n1Oyh/SvCffhZpUqrXdTr9qwZEOaC75T74AJ7KBl9VvO3vPLZuJrt38R2OZG/4SlNEUA6bb5TWQLtdor/qpPN5jAskkAUzOh5L/M+dmq2jNn03U9xwORCYPZj+fFM9bL99/0knsV0ypZDZyWH dummy@gitlab.com"›4050 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQC5jMyGtgMOVX4t2GuXkbirJA0Edr+qlOH9grnRBPHPo0Npt6XE6ZN3J3hDULTQo03wmekGw42dxdNSgk+F0GjsUBrMLbqrk485MMe0cUbP4lRXNu4ao87wPVM5fAsD4E3FQiZcI6Df011ZGIL7hGTHt6eafTfr9cJheRyYSu6g06rlnFWbbtSh9oQ7Y6sfDLBcsC9ECcXwe3mwViuQXPIVomZ02EdnBbAhbGHDtA+ZbSvTfraxOMjkxkVvvdjLxXEykpwVuZf8eZ+R/Js8jQ5RKvTZMbfxJNsGEqHD32s43ml4VF549Qz2GJDXF7Cld/n3CT6wvw0mMPM0LnykL2v0CMr44bjIA3KsNEs5MhkcBO8sv5hGfcPhrpm9WwI6gd9vdZVcxarVI+iQS947owvdn4VbEZXynCDqEEv3Zh+FA5p23mf2p7DkG/swiK/IPrjr1wmsiWmwIUsENzJNyJtibKuRsBawC4ZdL797tFilSoTzSpriegSL13joPXz3eOHCVu4ATHMo3QyLfIFbxrf9PQ79nyOpHoX2YeFXvei3xFkGMundkOqeI+pnJKDyqbiLV7UVlclua11QWNQZf1ZUd0n1wZ1g89de+wl3oJSRbSA5ZpveZEPstcMC/JhogY4JBYsvCT1yHOoNWHo90NZQsUCjNnR+/FVaACtpt2zcPTjjbXvxwCDlT3gXTmTBp/kEZq6u8p+BOlqFgxcP/sdAR8jWTin3Iw/YAcbqNgRHdjMUzJBrPQ5NcK6xFcmkOEQahdJDZs98xozCHkD4Urx6+auTr/uqRYobKoNUNiYqN1n7/dfZjQJJVkHtKd06JTFx+7/SqyfrTKS+/EIf2Hypdy9r9IFR+SWAOi11N/wflS/ZbH95Qt3STifXRecmHzyYGkMOZ+mg3Hi2YU0yn7k+P1jy627xudpT9Ak3HWT5ji8tMyn9udL7m80dYpUiEAxoYZdbSSNCDaKP4ViABnGIeZreIujabI8IdtEIjFQTaF2d5HTYjp28/qf576CFP5L7AGydypipYqZUmsYnay5YVjdm89He3TMD71SwspJlPOC4RnM0HS87OE+U0+mVaIe8YYbcjTekpVU9mkqsE/GQ34Egw79VMNNgWq5avOzpT8msClTJxgfJ1agGgigTvGxUM0FB07+sIdJxxNymAGpLKZ1op8xaJI3o8D86jWgI22za1zxUB5il9U7+KOzaWo9mp3bmhvZWGDwzTXEZhUJYMRby7o6UxSHlA6fKE63JSDD2yhXk4CjsQRNC7Ph9cYSB+Wa3i9Am4rRlJgrF79okmEOMpj1idliHkpIsy/k2CN9Lf2EIHOD4NMuLrSUH4qJsPUq19ZbGIMdImD3vMS5b dummy@gitlab.com"›4051 is expected to allow :key to be ‹"ssh-dss AAAAB3NzaC1kc3MAAAEBALEB3sM2kPy6LKLiyL+UlDx2vzuKrzSD2nsW2Kb70ivIqDNJu5CbqIQSkjdMzJiocs33ESFqXid6ezOtVdDwXHJQRxKGalW1kBbFAPjtMxlDbf559+7qN2zfCfcQsgTmNAZ7O+wltqJmyLv5i4QqNwPDvyeBvJ4C+770DzlcQtpkflKJX+O7i8Ylq34h6UTCTnjry+dFVm1xz97LPf7XuzXGZcAG/eGUNQgxQ2bferKnrpYOXx6cocSRj9W54nrRFMWuDeOspWp4MoYK0FRMfDQYPksUayGUnm1KQTGuDbB0ahRNCOm8b3tfP9Z+vjANAkqenzDuXCpz2PU/Oj6/N/UAAAAhAPOLyut12Mjcp3eUXLe1xSoI5IRXSLsoW9no93dcFNprAAABAQCLhpqKY+PNcwbhhPruL+f+uROghHzDwRNX+e231F4wHHeDDomfWyLVFj31XrHdDXZnS9tTTj5D2XWLovSSxYb3H7earTctmktL0lQ3HapujzvOkn+VM0pGs6B3j54+AM3mg50KZdYWxxv+v/lb6oEcsCjfKNyRIx/5pqX6XI3dxl9MMIxrfVWpkNX+FI68v1LVV61DC9PkNyEHU0v9YBOfrTiS21TIlVIZcSFhuDjg52MekfZAnoKaP7YFJNF3fdCrXaU3hYQrwB9XdskBUppwxKGhf7O6SWEZhAEfPA9kgxaWHoJvsDz8aca576UNe7BPmjzo/SLUX+P4uvcaffd+AAABAEqzpmwjzTxB+DV8C+0LnmKf3L/UlQWyGdmhd65rnbkHGgRMAAkoh4GBOEHL5bznNRmO7X/H6g2fR7SEabxfbvb903KI4nbfFF+3QtnwyIbTBAcH0893D3bi5rsaJcz+c6lBob2En2nThRciefXUk2oPzCQuDyFIyHLJikqRQVcalHCdQ00c/H/JkiJedHNqaeU4TeMk8SM53Brjplj/iiJq+ujc5MlEgACdCwWp0BviFACEoYyFaa3Rkc7Xdm9vFpclm9fzgUfPloASA0SkO945in3mIqMfODTb4yRvbjk8If9483fEPgQkczpdptBz1VAKg8AmRcz1GmBIxs+Stn0= dummy@gitlab.com"›4052 is expected to allow :key to be ‹"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJZmkzTgY0fiCQ+DVReyH/fFwTFz0XoR3RUO0u+199H19KFw7mNPxRSMOVS7tEtONj3Q7FcZXfqthHvgAzDiHsc= dummy@gitlab.com"›4053 is expected to allow :key to be ‹"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETnVTgzqC1gatgSlC4zH6aYt2CAQzgJOhDRvf59ohL6 dummy@gitlab.com"›4054 is expected not to allow :key to be ‹"foo-bar"›4055 Methods4056 is expected to respond to #projects4057 is expected to respond to #publishable_key4058 #publishable_keys4059 replaces SSH key comment with simple identifier of username + hostname4060 #update_last_used_at4061 updates the last used timestamp4062 scopes4063 .for_user4064 returns keys of the specified user only4065 .order_last_used_at_desc4066 sorts by last_used_at descending, with null values at last4067 expiration scopes4068 .expired_today_and_not_notified4069 returns keys that expire today and in the past4070 .expiring_soon_and_not_notified4071 returns keys that will expire soon4072 validation of uniqueness (based on fingerprint uniqueness)4073 accepts the key once4074 does not accept the exact same key twice4075 does not accept a duplicate key with a different comment4076 validate it is a fingerprintable key4077 accepts the fingerprintable key4078 rejects the unfingerprintable key (not a key)4079 factory: :key, characters: ["\n", "\r\n"], expected_sections: 34080 accepts a key with blank space characters after stripping them4081 factory: :key, characters: [" ", " "], expected_sections: 34082 accepts a key with blank space characters after stripping them4083 factory: :key_without_comment, characters: [" ", " "], expected_sections: 24084 accepts a key with blank space characters after stripping them4085 validate it meets key restrictions4086 factory: :rsa_key_2048, minimum: 0, result: true4087 is expected to eq true4088 factory: :dsa_key_2048, minimum: 0, result: true4089 is expected to eq true4090 factory: :ecdsa_key_256, minimum: 0, result: true4091 is expected to eq true4092 factory: :ed25519_key_256, minimum: 0, result: true4093 is expected to eq true4094 factory: :rsa_key_2048, minimum: 1024, result: true4095 is expected to eq true4096 factory: :rsa_key_2048, minimum: 2048, result: true4097 is expected to eq true4098 factory: :rsa_key_2048, minimum: 4096, result: false4099 is expected to eq false4100 factory: :dsa_key_2048, minimum: 1024, result: true4101 is expected to eq true4102 factory: :dsa_key_2048, minimum: 2048, result: true4103 is expected to eq true4104 factory: :dsa_key_2048, minimum: 4096, result: false4105 is expected to eq false4106 factory: :ecdsa_key_256, minimum: 256, result: true4107 is expected to eq true4108 factory: :ecdsa_key_256, minimum: 384, result: false4109 is expected to eq false4110 factory: :ed25519_key_256, minimum: 256, result: true4111 is expected to eq true4112 factory: :ed25519_key_256, minimum: 384, result: false4113 is expected to eq false4114 factory: :rsa_key_2048, minimum: -1, result: false4115 is expected to eq false4116 factory: :dsa_key_2048, minimum: -1, result: false4117 is expected to eq false4118 factory: :ecdsa_key_256, minimum: -1, result: false4119 is expected to eq false4120 factory: :ed25519_key_256, minimum: -1, result: false4121 is expected to eq false4122 callbacks4123 authorized keys file is enabled4124 adds new key to authorized_file4125 removes key from authorized_file4126 authorized_keys file is disabled4127 does not add the key on creation4128 does not remove the key on destruction4129 #key=4130 strips white spaces4131 invalidates the public_key attribute4132 #refresh_user_cache4133 when the key belongs to a user4134 refreshes the keys count cache for the user4135 when the key does not belong to a user4136 does nothing4137DeprecatedAssignee4138 #assignee_id=4139 creates the merge_request_assignees relation4140 nullifies the assignee_id column4141 when relation already exists4142 overwrites existing assignees4143 #assignee=4144 creates the merge_request_assignees relation4145 nullifies the assignee_id column4146 when relation already exists4147 overwrites existing assignees4148 #assignee_id4149 returns the first assignee ID4150 #assignees4151 when assignee_id exists and there is no relation4152 creates the relation4153 nullifies the assignee_id4154 when DB is read-only4155 returns a users relation4156 returns an empty relation if no assignee_id is set4157 #assignee_ids4158 when assignee_id exists and there is no relation4159 creates the relation4160 nullifies the assignee_id4161 when DB is read-only4162 returns a list of user IDs4163 returns an empty relation if no assignee_id is set4164Gitlab::Search::AbuseDetection4165 abusive scopes validation4166 allows only approved scopes4167 disallows anything not approved4168 abusive character matching4169 does match refs permitted by git refname: main4170 does NOT match refs with special characters: main4171 does match refs permitted by git refname: тест4172 does NOT match refs with special characters: тест4173 does match refs permitted by git refname: maiñ4174 does NOT match refs with special characters: maiñ4175 does match refs permitted by git refname: main1234176 does NOT match refs with special characters: main1234177 does match refs permitted by git refname: main-v1234178 does NOT match refs with special characters: main-v1234179 does match refs permitted by git refname: main-v12.34180 does NOT match refs with special characters: main-v12.34181 does match refs permitted by git refname: feature/it_works4182 does NOT match refs with special characters: feature/it_works4183 does match refs permitted by git refname: really_important!4184 does NOT match refs with special characters: really_important!4185 does match refs permitted by git refname: 测试4186 does NOT match refs with special characters: 测试4187 numericality validation4188 considers non Integers to be invalid4189 considers Integers to be valid4190 query_string validation4191 search: "a", errors: {:query_string=>["stopword only abusive search detected"]}4192 validates query string for pointless search4193 search: "an", errors: {:query_string=>["stopword only abusive search detected"]}4194 validates query string for pointless search4195 search: "and", errors: {:query_string=>["stopword only abusive search detected"]}4196 validates query string for pointless search4197 search: "are", errors: {:query_string=>["stopword only abusive search detected"]}4198 validates query string for pointless search4199 search: "as", errors: {:query_string=>["stopword only abusive search detected"]}4200 validates query string for pointless search4201 search: "at", errors: {:query_string=>["stopword only abusive search detected"]}4202 validates query string for pointless search4203 search: "be", errors: {:query_string=>["stopword only abusive search detected"]}4204 validates query string for pointless search4205 search: "but", errors: {:query_string=>["stopword only abusive search detected"]}4206 validates query string for pointless search4207 search: "by", errors: {:query_string=>["stopword only abusive search detected"]}4208 validates query string for pointless search4209 search: "for", errors: {:query_string=>["stopword only abusive search detected"]}4210 validates query string for pointless search4211 search: "if", errors: {:query_string=>["stopword only abusive search detected"]}4212 validates query string for pointless search4213 search: "in", errors: {:query_string=>["stopword only abusive search detected"]}4214 validates query string for pointless search4215 search: "into", errors: {:query_string=>["stopword only abusive search detected"]}4216 validates query string for pointless search4217 search: "is", errors: {:query_string=>["stopword only abusive search detected"]}4218 validates query string for pointless search4219 search: "it", errors: {:query_string=>["stopword only abusive search detected"]}4220 validates query string for pointless search4221 search: "no", errors: {:query_string=>["stopword only abusive search detected"]}4222 validates query string for pointless search4223 search: "not", errors: {:query_string=>["stopword only abusive search detected"]}4224 validates query string for pointless search4225 search: "of", errors: {:query_string=>["stopword only abusive search detected"]}4226 validates query string for pointless search4227 search: "on", errors: {:query_string=>["stopword only abusive search detected"]}4228 validates query string for pointless search4229 search: "or", errors: {:query_string=>["stopword only abusive search detected"]}4230 validates query string for pointless search4231 search: "such", errors: {:query_string=>["stopword only abusive search detected"]}4232 validates query string for pointless search4233 search: "that", errors: {:query_string=>["stopword only abusive search detected"]}4234 validates query string for pointless search4235 search: "the", errors: {:query_string=>["stopword only abusive search detected"]}4236 validates query string for pointless search4237 search: "their", errors: {:query_string=>["stopword only abusive search detected"]}4238 validates query string for pointless search4239 search: "then", errors: {:query_string=>["stopword only abusive search detected"]}4240 validates query string for pointless search4241 search: "there", errors: {:query_string=>["stopword only abusive search detected"]}4242 validates query string for pointless search4243 search: "these", errors: {:query_string=>["stopword only abusive search detected"]}4244 validates query string for pointless search4245 search: "they", errors: {:query_string=>["stopword only abusive search detected"]}4246 validates query string for pointless search4247 search: "this", errors: {:query_string=>["stopword only abusive search detected"]}4248 validates query string for pointless search4249 search: "to", errors: {:query_string=>["stopword only abusive search detected"]}4250 validates query string for pointless search4251 search: "was", errors: {:query_string=>["stopword only abusive search detected"]}4252 validates query string for pointless search4253 search: "will", errors: {:query_string=>["stopword only abusive search detected"]}4254 validates query string for pointless search4255 search: "with", errors: {:query_string=>["stopword only abusive search detected"]}4256 validates query string for pointless search4257 search: "x", errors: {:query_string=>["abusive tiny search detected"]}4258 validates query string for pointless search4259 search: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", errors: {:query_string=>["abusive term length detected"]}4260 validates query string for pointless search4261 search: "", errors: {}4262 validates query string for pointless search4263 search: "*", errors: {}4264 validates query string for pointless search4265 search: "ruby", errors: {}4266 validates query string for pointless search4267 abusive type coercion from string validation4268 considers anything not a String invalid4269 considers Strings to be valid4270Gitlab::CycleAnalytics::Permissions4271 user with no relation to the project4272 has no permissions to issue stage4273 has no permissions to test stage4274 has no permissions to staging stage4275 has no permissions to code stage4276 has no permissions to review stage4277 has no permissions to plan stage4278 user is maintainer4279 has permissions to issue stage4280 has permissions to test stage4281 has permissions to staging stage4282 has permissions to code stage4283 has permissions to review stage4284 has permissions to plan stage4285 user has no build permissions4286 has permissions to issue stage4287 has no permissions to test stage4288 has no permissions to staging stage4289 user has no merge request permissions4290 has permissions to issue stage4291 has no permissions to code stage4292 has no permissions to review stage4293 user has no issue permissions4294 has permissions to code stage4295 has no permissions to issue stage4296NotificationRecipients::BuildService4297 #build_new_note_recipients4298 when there are multiple watchers4299 avoids N+1 queries4300 when there are multiple subscribers4301 avoids N+1 queries4302 when the project is private4303 avoids N+1 queries4304 #build_new_review_recipients4305 when there are multiple watchers4306 avoids N+1 queries4307 when there are multiple subscribers4308 avoids N+1 queries4309 when the project is private4310 avoids N+1 queries4311Gitlab::Redis::RateLimiting4312 behaves like redis_shared_examples4313 .config_file_name4314 when there is no config file anywhere4315 is expected to be nil4316 but resque.yml exists4317 is expected to eq "/tmp/redis_shared_examples20211220-448-3u6ir7/config/resque.yml"4318 returns a path that exists4319 and there is a global env override4320 is expected to eq "global override"4321 and there is an instance specific config file4322 is expected to eq "/tmp/redis_shared_examples20211220-448-1yjs11a/config/redis.rate_limiting.yml"4323 returns a path that exists4324 and there is a specific env override4325 is expected to eq "instance specific override"4326 .store4327 with old format4328 behaves like redis store4329 instantiates Redis::Store4330 with the namespace4331 uses specified namespace4332 with new format4333 behaves like redis store4334 instantiates Redis::Store4335 with the namespace4336 uses specified namespace4337 .params4338 withstands mutation4339 when url contains unix socket reference4340 with old format4341 returns path key instead4342 with new format4343 returns path key instead4344 when url is host based4345 with old format4346 returns hash with host, port, db, and password4347 with new format4348 rails_env: "development", host: "development-host"4349 returns hash with host, port, db, and password4350 rails_env: "test", host: "test-host"4351 returns hash with host, port, db, and password4352 rails_env: "production", host: "production-host"4353 returns hash with host, port, db, and password4354 .url4355 withstands mutation4356 when yml file with env variable4357 reads redis url from env variable4358 .version4359 returns a version4360 ._raw_config4361 is frozen4362 returns false when the file does not exist4363 returns false when the filename can't be determined4364 .with4365 when running on single-threaded runtime4366 instantiates a connection pool with size 54367 when running on multi-threaded runtime4368 instantiates a connection pool with a size based on the concurrency of the worker4369 when there is no config at all4370 can run an empty block4371 #db4372 with old format4373 returns the correct db4374 with new format4375 returns the correct db4376 #sentinels4377 when sentinels are defined4378 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4379 returns an array of hashes with host and port keys4380 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4381 returns an array of hashes with host and port keys4382 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4383 returns an array of hashes with host and port keys4384 when sentinels are not defined4385 returns nil4386 #sentinels?4387 when sentinels are defined4388 returns true4389 when sentinels are not defined4390 returns false4391 #raw_config_hash4392 returns old-style single url config in a hash4393 #fetch_config4394 returns false when no config file is present4395 returns false when config file is present but has invalid YAML4396 has a value for the legacy default URL4397 .config_file_name4398 when there is only a resque.yml4399 is expected to eq "/tmp/redis_shared_examples20211220-448-5drpq7/config/resque.yml"4400 and there is a global env override4401 is expected to eq "global override"4402 and Cache has a different config file4403 is expected to eq "fallback config file"4404Gitlab::Metrics::Dashboard::Finder4405 .find4406 behaves like misconfigured dashboard service response4407 returns an appropriate message and status code4408 when the dashboard exists4409 behaves like valid dashboard service response4410 behaves like valid dashboard service response for schema4411 returns a json representation of the dashboard4412 when the dashboard is configured incorrectly4413 behaves like misconfigured dashboard service response4414 returns an appropriate message and status code4415 when the dashboard contains a metric without a query4416 behaves like misconfigured dashboard service response4417 returns an appropriate message and status code4418 when the system dashboard is specified4419 behaves like valid dashboard service response4420 behaves like valid dashboard service response for schema4421 returns a json representation of the dashboard4422 when the self monitoring dashboard is specified4423 behaves like valid dashboard service response4424 behaves like valid dashboard service response for schema4425 returns a json representation of the dashboard4426 when no dashboard is specified4427 behaves like valid dashboard service response4428 behaves like valid dashboard service response for schema4429 returns a json representation of the dashboard4430 when the dashboard is expected to be embedded4431 behaves like valid embedded dashboard service response4432 behaves like valid dashboard service response for schema4433 returns a json representation of the dashboard4434 when params are incomplete4435 behaves like valid embedded dashboard service response4436 behaves like valid dashboard service response for schema4437 returns a json representation of the dashboard4438 when the panel is specified4439 as a custom metric4440 behaves like misconfigured dashboard service response4441 returns an appropriate message and status code4442 when the metric exists4443 behaves like valid embedded dashboard service response4444 behaves like valid dashboard service response for schema4445 returns a json representation of the dashboard4446 as a project-defined panel4447 behaves like misconfigured dashboard service response4448 returns an appropriate message and status code4449 when the metric exists4450 behaves like valid embedded dashboard service response4451 behaves like valid dashboard service response for schema4452 returns a json representation of the dashboard4453 .find_raw4454 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panel..., "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}4455 when the system dashboard is specified4456 is expected to eq {"dashboard"=>"Environment metrics", "panel_groups"=>[{"group"=>"System metrics (Kubernetes)", "panel..., "title"=>"HTTP Error Rate", "type"=>"area-chart", "y_label"=>"HTTP Errors (%)"}]}], "priority"=>1}4457 when an existing project dashboard is specified4458 is expected to eq {"dashboard"=>"Test Dashboard", "links"=>[{"title"=>"Link 1", "url"=>"https://gitlab.com"}, {"title"=...s"=>{"default_value"=>"default"}, "type"=>"text"}, "text_variable_simple_syntax"=>"default value"}}}4459 .find_all_paths4460 includes OOTB dashboards by default4461 when the project contains dashboards4462 includes OOTB and project dashboards4463 when the project is self monitoring4464 includes self monitoring and project dashboards4465ContainerExpirationPolicies::UpdateService4466 #execute4467 with existing container expiration policy4468 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"4469 behaves like updating the container expiration policy4470 behaves like updating the container expiration policy attributes4471 updates the container expiration policy4472 behaves like not creating the container expiration policy4473 doesn't create the container expiration policy4474 behaves like returning a success4475 returns a success4476 with invalid params4477 doesn't update the cadence4478 behaves like not creating the container expiration policy4479 doesn't create the container expiration policy4480 behaves like returning an error4481 returns an error4482 user_role: :developer, shared_examples_name: "updating the container expiration policy"4483 behaves like updating the container expiration policy4484 behaves like updating the container expiration policy attributes4485 updates the container expiration policy4486 behaves like not creating the container expiration policy4487 doesn't create the container expiration policy4488 behaves like returning a success4489 returns a success4490 with invalid params4491 doesn't update the cadence4492 behaves like not creating the container expiration policy4493 doesn't create the container expiration policy4494 behaves like returning an error4495 returns an error4496 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"4497 behaves like denying access to container expiration policy4498 with existing container expiration policy4499 behaves like not creating the container expiration policy4500 doesn't create the container expiration policy4501 behaves like returning an error4502 returns an error4503 user_role: :guest, shared_examples_name: "denying access to container expiration policy"4504 behaves like denying access to container expiration policy4505 with existing container expiration policy4506 behaves like not creating the container expiration policy4507 doesn't create the container expiration policy4508 behaves like returning an error4509 returns an error4510 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"4511 behaves like denying access to container expiration policy4512 with existing container expiration policy4513 behaves like not creating the container expiration policy4514 doesn't create the container expiration policy4515 behaves like returning an error4516 returns an error4517 without existing container expiration policy4518 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"4519 behaves like creating the container expiration policy4520 behaves like updating the container expiration policy attributes4521 creates a new container expiration policy4522 updates the container expiration policy4523 behaves like returning a success4524 returns a success4525 user_role: :developer, shared_examples_name: "creating the container expiration policy"4526 behaves like creating the container expiration policy4527 behaves like updating the container expiration policy attributes4528 creates a new container expiration policy4529 updates the container expiration policy4530 behaves like returning a success4531 returns a success4532 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"4533 behaves like denying access to container expiration policy4534 with existing container expiration policy4535 behaves like not creating the container expiration policy4536 doesn't create the container expiration policy4537 behaves like returning an error4538 returns an error4539 user_role: :guest, shared_examples_name: "denying access to container expiration policy"4540 behaves like denying access to container expiration policy4541 with existing container expiration policy4542 behaves like not creating the container expiration policy4543 doesn't create the container expiration policy4544 behaves like returning an error4545 returns an error4546 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"4547 behaves like denying access to container expiration policy4548 with existing container expiration policy4549 behaves like not creating the container expiration policy4550 doesn't create the container expiration policy4551 behaves like returning an error4552 returns an error4553StageEntity4554 #as_json4555 contains relevant fields4556 contains detailed status4557 contains valid name4558 contains path to the stage4559 contains path to the stage dropdown4560 contains stage title4561 does not contain play_details info4562 when the jobs should be grouped4563 exposes the group key4564 and contains commit status4565 contains commit status4566 with a skipped stage4567 contains play_all_manual4568 with a scheduled stage4569 contains play_all_manual4570 with a manual stage4571 contains play_all_manual4572Gitlab::Cache::Ci::ProjectPipelineStatus4573 .load_for_project4574 loads the status4575 loading in batches4576 .load_in_batch_for_projects4577 loads pipeline_status on projects4578 loads 10 projects without hitting Gitaly call limit4579 .update_for_pipeline4580 refreshes the cache if nescessary4581 #has_status?4582 is false when the status wasn't loaded yet4583 is true when all status information was loaded4584 #load_status4585 loads the status from the cache when there is one4586 loads the status from the project commit when there is no cache4587 stores the status in the cache when it loading it from the project4588 sets the state to loaded4589 only loads the status once4590 handles Gitaly unavailable exceptions gracefully4591 handles Gitaly timeout exceptions gracefully4592 gitaly call counts4593 not cached4594 makes a Gitaly call4595 cached4596 makes no Gitaly calls4597 #load_from_project4598 reads the status from the pipeline for the commit4599 doesn't fail for an empty project4600 #store_in_cache4601 sets the object in caching4602 #store_in_cache_if_needed4603 stores the state in the cache when the sha is the HEAD of the project4604 doesn't store the status in redis_cache when the sha is not the head of the project4605 deletes the cache if the repository doesn't have a head commit4606 with a status in caching4607 #load_from_cache4608 reads the status from redis_cache4609 when status is empty string4610 reads the status as nil4611 #has_cache?4612 knows the status is cached4613 #delete_from_cache4614 deletes values from redis_cache4615Gitlab::Changelog::Config4616 .from_git4617 retrieves the configuration from Git4618 returns the default configuration when no YAML file exists in Git4619 .from_hash4620 sets the configuration according to a Hash4621 raises Error when the categories are not a Hash4622 raises a Gitlab::Changelog::Error when the template is invalid4623 #contributor?4624 when user is a member of project4625 is expected to eq false4626 when user has at least one merge request merged into default_branch4627 is expected to eq true4628 is expected to eq false4629 #category4630 returns the name of a category4631 returns the raw category name when no alternative name is configured4632 #format_date4633 formats a date according to the configured date format4634 #always_credit_author?4635 when include_groups is defined4636 when user generating changelog has access to group4637 returns whether author should always be credited4638 when user generating changelog has no access to group4639 always returns false4640 when include_groups is not defined4641 always returns false4642Ci::PendingBuild4643 associations4644 is expected to belong to project required: false4645 is expected to belong to build required: false4646 is expected to belong to namespace required: false4647 scopes4648 .with_instance_runners4649 when pending builds cannot be picked up by runner4650 returns an empty collection of pending builds4651 when pending builds can be picked up by runner4652 returns matching pending builds4653 .for_tags4654 when tag_ids match pending builds4655 returns matching pending builds4656 when tag_ids does not match pending builds4657 returns matching pending builds without tags4658 when tag_ids is not provided4659 with a nil value4660 returns matching pending builds without tags4661 with an empty array4662 returns matching pending builds without tags4663 .upsert_from_build!4664 another pending entry does not exist4665 creates a new pending entry4666 when another queuing entry exists for given build4667 returns a build id as a result4668 when project does not have shared runners enabled4669 sets instance_runners_enabled to false4670 when project has shared runner4671 when ci_pending_builds_maintain_denormalized_data is enabled4672 sets instance_runners_enabled to true4673 when project is about to be deleted4674 sets instance_runners_enabled to false4675 when builds are disabled4676 sets instance_runners_enabled to false4677 when ci_pending_builds_maintain_denormalized_data is disabled4678 sets instance_runners_enabled to false4679 when build has tags4680 when ci_pending_builds_maintain_denormalized_data is enabled4681 sets tag_ids4682 when ci_pending_builds_maintain_denormalized_data is disabled4683 does not set tag_ids4684 when a build project is nested in a subgroup4685 when build can be picked by a group runner4686 denormalizes namespace traversal ids4687 when build can not be picked by a group runner4688 creates an empty namespace traversal ids array4689Gitlab::Ci::Config::Entry::Bridge4690 behaves like with inheritable CI config4691 does prepend an Inheritable mixin4692 all inheritable entries are covered4693 all entries do have inherit flag4694 for non-inheritable entries4695 entry_key: :stage4696 inheritable_class does not define entry4697 entry_key: :only4698 inheritable_class does not define entry4699 entry_key: :except4700 inheritable_class does not define entry4701 entry_key: :rules4702 inheritable_class does not define entry4703 entry_key: :variables4704 inheritable_class does not define entry4705 entry_key: :inherit4706 inheritable_class does not define entry4707 entry_key: :trigger4708 inheritable_class does not define entry4709 entry_key: :needs4710 inheritable_class does not define entry4711 entry_key: :parallel4712 inheritable_class does not define entry4713 .matching?4714 when config is not a hash4715 is expected to be falsey4716 when config is a regular job4717 is expected to be falsey4718 with rules4719 is expected to be falsey4720 when config is a bridge job4721 is expected to be truthy4722 with rules4723 is expected to be truthy4724 when config is a hidden job4725 is expected to be falsey4726 .new4727 when trigger config is a non-empty string4728 #valid?4729 is expected to be valid4730 #value4731 is returns a bridge job configuration4732 when bridge trigger is a hash4733 #valid?4734 is expected to be valid4735 #value4736 is returns a bridge job configuration hash4737 when bridge configuration contains trigger, when, extends, stage, only, except, and variables4738 is expected to be valid4739 when bridge configuration uses rules4740 is expected to be valid4741 when bridge configuration uses rules with job:when4742 is expected to be valid4743 when bridge configuration uses rules with only4744 is expected not to be valid4745 when bridge configuration uses rules with except4746 is expected not to be valid4747 when bridge has only job needs4748 #valid?4749 is expected not to be valid4750 when bridge config contains unknown keys4751 #valid?4752 is expected not to be valid4753 #errors4754 is returns an error about unknown config key4755 when bridge config contains build-specific attributes4756 #valid?4757 is expected not to be valid4758 #errors4759 returns an error message4760 when bridge config contains exit_codes4761 #valid?4762 is expected not to be valid4763 #errors4764 returns an error message4765 when bridge config contains parallel4766 when parallel config is a number4767 #valid?4768 is expected not to be valid4769 #errors4770 returns an error message4771 when parallel config is a matrix4772 #valid?4773 is expected to be valid4774 #value4775 is returns a bridge job configuration4776 #manual_action?4777 when job is a manual action4778 is expected to be manual action4779 when job is not a manual action4780 is expected not to be manual action4781 #ignored?4782 when job is a manual action4783 when it is not specified if job is allowed to fail4784 is expected to be ignored4785 when job is allowed to fail4786 is expected to be ignored4787 when job is not allowed to fail4788 is expected not to be ignored4789 when job is not a manual action4790 when it is not specified if job is allowed to fail4791 is expected not to be ignored4792 when job is allowed to fail4793 is expected to be ignored4794 when job is not allowed to fail4795 is expected not to be ignored4796RemoveExpiredGroupLinksWorker4797 #perform4798 ProjectGroupLinks4799 removes expired group links4800 leaves group links that expire in the future4801 leaves group links that do not expire at all4802 removes project authorization4803 GroupGroupLinks4804 expired GroupGroupLink exists4805 calls Groups::GroupLinks::DestroyService4806 removes project authorization4807 expired GroupGroupLink does not exist4808 does not call Groups::GroupLinks::DestroyService4809DeploymentMetrics4810 #has_metrics?4811 when deployment is failed4812 is expected to be falsy4813 when deployment is success4814 without a monitoring integration4815 is expected to be falsy4816 with a Prometheus integration4817 is expected to be truthy4818 with a Prometheus integration that cannot query4819 is expected to be falsy4820 with a Prometheus integration that is not configured4821 is expected to be falsy4822 with a cluster Prometheus4823 is expected to be truthy4824 #metrics4825 metrics are disabled4826 is expected to eq {}4827 metrics are enabled4828 is expected to eq {:deployment_time=>1640020419, :last_update=>42, :metrics=>{}, :success=>true}4829 #additional_metrics4830 metrics are disabled4831 is expected to eq {}4832 metrics are enabled4833 is expected to eq {:deployment_time=>1640020421, :last_update=>42, :metrics=>{}, :success=>true}4834Gitlab::Ci::Pipeline::Seed::Stage4835 #size4836 returns a number of jobs in the stage4837 #attributes4838 returns hash attributes of a stage4839 #included?4840 when it contains builds seeds4841 is expected to be included4842 when it does not contain build seeds4843 is expected not to be included4844 #seeds4845 returns build seeds4846 returns build seeds including valid attributes4847 filters seeds using only/except policies4848 when a legacy trigger exists4849 returns build seeds including legacy trigger4850 when a ref is protected4851 returns protected builds4852 when a ref is not protected4853 returns unprotected builds4854 #seeds_names4855 returns all job names4856 returns a set4857 #seeds_errors4858 returns all errors from seeds4859 #to_resource4860 builds a valid stage object with all builds4861 can not be persisted without explicit pipeline assignment4862Ci::Lint::ResultSerializer4863 when config is invalid4864 returns expected validity4865 returns job data4866 behaves like matches schema4867 is expected to match schema "entities/lint_result_entity"4868 when config is valid4869 returns expected validity4870 returns job data4871 behaves like matches schema4872 is expected to match schema "entities/lint_result_entity"4873 when dry run is enabled4874 returns expected validity4875 returns job data4876 behaves like matches schema4877 is expected to match schema "entities/lint_result_entity"4878 when only is not nil in the yaml4879 when only: is hash4880 renders only:refs as hash4881 behaves like matches schema4882 is expected to match schema "entities/lint_result_entity"4883 when only is an array of strings in the yaml4884 renders only: list as hash4885 behaves like matches schema4886 is expected to match schema "entities/lint_result_entity"4887 when except is not nil in the yaml4888 when except: is hash4889 renders except as hash4890 behaves like matches schema4891 is expected to match schema "entities/lint_result_entity"4892 when except is an array of strings in the yaml4893 renders only: list as hash4894 behaves like matches schema4895 is expected to match schema "entities/lint_result_entity"4896 with minimal job configuration4897 renders the job with defaults4898 behaves like matches schema4899 is expected to match schema "entities/lint_result_entity"4900 with environment defined4901 when formatted as a hash in yaml4902 renders the environment as a string4903 behaves like matches schema4904 is expected to match schema "entities/lint_result_entity"4905 when formatted as a string in yaml4906 renders the environment as a string4907 behaves like matches schema4908 is expected to match schema "entities/lint_result_entity"4909 when script values are formatted as arrays in the yaml4910 renders the scripts as arrays4911 behaves like matches schema4912 is expected to match schema "entities/lint_result_entity"4913Banzai::Filter::References::FeatureFlagReferenceFilter4914 requires project context4915 ignores valid references contained inside 'pre' element4916 ignores valid references contained inside 'code' element4917 ignores valid references contained inside 'a' element4918 ignores valid references contained inside 'style' element4919 with internal reference4920 links to a valid reference4921 links with adjacent text4922 ignores invalid feature flag IIDs4923 includes a title attribute4924 escapes the title attribute4925 includes default classes4926 includes a data-project attribute4927 includes a data-feature-flag attribute4928 supports an :only_path context4929 with cross-project / cross-namespace complete reference4930 links to a valid reference4931 produces a valid text in a link4932 produces a valid text4933 ignores invalid feature flag IIDs on the referenced project4934 with cross-project / same-namespace complete reference4935 links to a valid reference4936 produces a valid text in a link4937 produces a valid text4938 ignores invalid feature flag IIDs on the referenced project4939 with cross-project shorthand reference4940 links to a valid reference4941 produces a valid text in a link4942 produces a valid text4943 ignores invalid feature flag IDs on the referenced project4944 with cross-project URL reference4945 links to a valid reference4946 links with adjacent text4947 ignores invalid feature flag IIDs on the referenced project4948 with group context4949 links to a valid reference4950 ignores internal references4951Banzai::Filter::EmojiFilter4952 replaces supported name emoji4953 replaces supported unicode emoji4954 ignores unicode versions of trademark, copyright, and registered trademark4955 replaces name versions of trademark, copyright, and registered trademark4956 correctly encodes the URL4957 correctly encodes unicode to the URL4958 matches at the start of a string4959 unicode matches at the start of a string4960 matches at the end of a string4961 unicode matches at the end of a string4962 unicode matches with adjacent text4963 does not match multiple emoji in a row4964 unicode matches multiple emoji in a row4965 mixed matches multiple emoji in a row4966 has a data-name attribute4967 has a data-unicode-version attribute4968 unicode keeps whitespace intact4969 behaves like emoji filter4970 keeps whitespace intact4971 does not match emoji in a string4972 ignores non existent/unsupported emoji4973 matches with adjacent text4974 does not match emoji in a pre tag4975 does not match emoji in code tag4976 does not match emoji in tt tag4977TodosHelper4978 #todos_count_format4979 shows fuzzy count for 100 or more items4980 shows exact count for 99 or fewer items4981 #todo_target_link4982 when given a design4983 produces a good link4984 #todo_target_title4985 when the target does not exist4986 returns an empty string4987 when given a design todo4988 returns an empty string4989 when given a non-design todo4990 returns the title4991 #todo_target_path4992 when given a design4993 responds with an appropriate path4994 when given an alert4995 responds with an appropriate path4996 #todo_target_type_name4997 when given a design todo4998 responds with an appropriate target type name4999 when given an alert todo5000 responds with an appropriate target type name5001 #todo_types_options5002 includes a match for a design todo5003 #todo_target_state_pill5004 merge request todo5005 behaves like no state pill5006 is expected to eq nil5007 merged MR5008 behaves like a rendered state pill5009 returns expected html5010 issue todo5011 behaves like no state pill5012 is expected to eq nil5013 closed issue5014 behaves like a rendered state pill5015 returns expected html5016 alert todo5017 behaves like no state pill5018 is expected to eq nil5019 resolved alert5020 behaves like a rendered state pill5021 returns expected html5022 #todo_author_display?5023 action: 3, result: false5024 is expected to eq false5025 action: 6, result: false5026 is expected to eq false5027 action: 1, result: true5028 is expected to eq true5029Gitlab::Ci::Pipeline::Chain::Validate::External5030 #perform!5031 respects the defined payload schema5032 with configuration values in ApplicationSetting5033 uses those values rather than env vars or defaults5034 with EXTERNAL_VALIDATION_SERVICE_TIMEOUT defined5035 with valid value5036 uses defined timeout5037 with invalid value5038 uses default timeout5039 when EXTERNAL_VALIDATION_SERVICE_TOKEN is set5040 passes token in X-Gitlab-Token header5041 when validation returns 200 OK5042 behaves like successful external authorization5043 does not drop the pipeline5044 does not break the chain5045 logs the authorization5046 returns expected payload5047 when validation returns 404 Not Found5048 behaves like successful external authorization5049 does not drop the pipeline5050 does not break the chain5051 logs the authorization5052 returns expected payload5053 when validation returns 500 Internal Server Error5054 behaves like successful external authorization5055 does not drop the pipeline5056 does not break the chain5057 logs the authorization5058 returns expected payload5059 when validation raises exceptions5060 logs exceptions5061 behaves like successful external authorization5062 does not drop the pipeline5063 does not break the chain5064 logs the authorization5065 returns expected payload5066 when validation returns 406 Not Acceptable5067 drops the pipeline5068 breaks the chain5069 logs the authorization5070 when save_incompleted is false5071 adds errors to the pipeline without dropping it5072 breaks the chain5073 logs the authorization5074AlertManagement::HttpIntegration5075 associations5076 is expected to belong to project required: false5077 validations5078 is expected to validate that :project cannot be empty/falsy5079 is expected to validate that :name cannot be empty/falsy5080 is expected to validate that the length of :name is at most 2555081 when active5082 is expected to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5083 when inactive5084 is expected not to validate that :endpoint_identifier is case-sensitively unique within the scope of :project_id and :active5085 payload_attribute_mapping5086 with valid JSON schema5087 is expected to be valid5088 with invalid JSON schema5089 when property is not an object5090 behaves like is invalid record5091 is expected to eq ["must be a valid json schema"]5092 when property missing required attributes5093 behaves like is invalid record5094 is expected to eq ["must be a valid json schema"]5095 when property has extra attributes5096 behaves like is invalid record5097 is expected to eq ["must be a valid json schema"]5098 before validation5099 #ensure_payload_example_not_nil5100 when the payload_example is nil5101 sets the payload_example to empty JSON5102 when the payload_example is not nil5103 sets the payload_example to specified value5104 #token5105 when unsaved5106 when unassigned5107 behaves like valid token5108 is expected to match /\A\h{32}\z/5109 when assigned5110 is expected not to eq "random_token"5111 behaves like valid token5112 is expected to match /\A\h{32}\z/5113 when persisted5114 behaves like valid token5115 is expected to match /\A\h{32}\z/5116 when resetting5117 is expected not to eq "a0ed17e00424270b225f2ab9b1122d97"5118 behaves like valid token5119 is expected to match /\A\h{32}\z/5120 when reassigning5121 is expected to eq "c36066004ad8f4df32118151920ffbe1"5122 behaves like valid token5123 is expected to match /\A\h{32}\z/5124 #endpoint_identifier5125 when defined on initialize5126 is expected to match /\A\h{16}\z/5127 when included in initialization args5128 is expected to eq "legacy"5129 when reassigning5130 does not allow reassignment5131 #url5132 is expected to eq "http://localhost/namespace840/project915/alerts/notify/datadog/3f3fbd0e.json"5133 when name is not defined5134 is expected to eq "http://localhost/namespace818/project893/alerts/notify/http-endpoint/817fabb74188bbd8.json"5135 for a legacy integration5136 is expected to eq "http://localhost/namespace841/project916/alerts/notify.json"5137Resolvers::GroupMilestonesResolver5138 #resolve5139 calls MilestonesFinder#execute5140 without parameters5141 calls MilestonesFinder to retrieve all milestones5142 with parameters5143 calls MilestonesFinder with correct parameters5144 understands the timeframe argument5145 by ids5146 calls MilestonesFinder with correct parameters5147 by sort5148 calls MilestonesFinder with correct parameters5149 uses offset-pagination when sorting by expired_last_due_date_asc5150 uses offset-pagination when sorting by expired_last_due_date_desc5151 by timeframe5152 when start_date and end_date are present5153 when start date is after end_date5154 raises error5155 when only start_date is present5156 raises error5157 when only end_date is present5158 raises error5159 when user cannot read milestones5160 raises error5161 when including descendant milestones in a public group5162 finds milestones only in accessible projects and groups5163 include_descendants and include_ancestors5164 when including neither ancestor or descendant milestones in a public group5165 finds milestones only in accessible projects and groups5166 when including descendant milestones in a public group5167 finds milestones only in accessible projects and groups5168 when including ancestor milestones in a public group5169 finds milestones only in accessible projects and groups5170 when including both ancestor or descendant milestones in a public group5171 finds milestones only in accessible projects and groups5172Ci::BuildTraceChunks::Database5173 #data5174 when data exists5175 returns the data5176 when data does not exist5177 returns nil5178 #set_data5179 when data exists5180 overwrites data5181 when data does not exist5182 sets new data5183 #delete_data5184 when data exists5185 deletes data5186 when data does not exist5187 does nothing5188 #size5189 when data exists5190 returns data bytesize correctly5191 when data does not exist5192 returns zero5193 #keys5194 returns empty array5195Feature::Definition5196 #key5197 returns a symbol from name5198 #validate!5199 param: :name, value: nil, result: /Feature flag is missing name/5200 is expected to raise /Feature flag is missing name/5201 param: :path, value: nil, result: /Feature flag 'feature_flag' is missing path/5202 is expected to raise /Feature flag 'feature_flag' is missing path/5203 param: :type, value: nil, result: /Feature flag 'feature_flag' is missing type/5204 is expected to raise /Feature flag 'feature_flag' is missing type/5205 param: :type, value: "invalid", result: /Feature flag 'feature_flag' type 'invalid' is invalid/5206 is expected to raise /Feature flag 'feature_flag' type 'invalid' is invalid/5207 param: :path, value: "development/invalid.yml", result: /Feature flag 'feature_flag' has an invalid path/5208 is expected to raise /Feature flag 'feature_flag' has an invalid path/5209 param: :path, value: "invalid/feature_flag.yml", result: /Feature flag 'feature_flag' has an invalid type/5210 is expected to raise /Feature flag 'feature_flag' has an invalid type/5211 param: :default_enabled, value: nil, result: /Feature flag 'feature_flag' is missing default_enabled/5212 is expected to raise /Feature flag 'feature_flag' is missing default_enabled/5213 #valid_usage!5214 validates type5215 raises exception for invalid type5216 validates default enabled5217 raises exception for different value5218 allows passing `default_enabled: :yaml`5219 .paths5220 returns at least one path5221 .load_from_file5222 properly loads a definition from file5223 for missing file5224 raises exception5225 for invalid definition5226 raises exception5227 .load_all!5228 when there's no feature flags a list of definitions is empty5229 when there's a single feature flag it properly loads them5230 when the same feature flag is stored multiple times raises exception5231 when one of the YAMLs is invalid it does raise exception5232 .for_upcoming_milestone?5233 ctx: "no milestone", milestone: nil, current_milestone: "1.0.0", expected: false5234 is expected to equal false5235 ctx: "upcoming milestone - major", milestone: "2.3", current_milestone: "1.9.999", expected: true5236 is expected to equal true5237 ctx: "upcoming milestone - minor", milestone: "2.3", current_milestone: "2.2.999", expected: true5238 is expected to equal true5239 ctx: "current milestone", milestone: "2.3", current_milestone: "2.3.999", expected: true5240 is expected to equal true5241 ctx: "past milestone - major", milestone: "1.9", current_milestone: "2.3.999", expected: false5242 is expected to equal false5243 ctx: "past milestone - minor", milestone: "2.2", current_milestone: "2.3.999", expected: false5244 is expected to equal false5245 .valid_usage!5246 when a known feature flag is used5247 validates it usage5248 when an unknown feature flag is used5249 for a type that is required to have all feature flags registered5250 raises exception5251 for a type that is optional5252 does not raise exception5253 for an unknown type5254 raises exception5255 .log_states?5256 ctx: "When flag does not exist", key: :no_flag, milestone: "0.0", log_state_change: true, expected: false5257 is expected to equal false5258 ctx: "When flag is old, and logging is not forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: false, expected: false5259 is expected to equal false5260 ctx: "When flag is old, but logging is forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: true, expected: true5261 is expected to equal true5262 ctx: "When flag is current", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true5263 is expected to equal true5264 ctx: "Flag is upcoming", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true5265 is expected to equal true5266 .default_enabled?5267 when feature flag exist5268 when default_enabled is true5269 returns the value from the definition5270 when default_enabled is false5271 returns the value from the definition5272 when feature flag does not exist5273 when on dev or test environment5274 raises an error5275 when on production environment5276 returns false5277Gitlab::StaticSiteEditor::Config::FileConfig::Entry::Global5278 .nodes5279 returns a hash5280 when filtering all the entry/node names5281 contains the expected node names5282 when configuration is valid5283 when some entries defined5284 behaves like valid default configuration5285 #compose!5286 creates nodes hash5287 creates node object for each entry5288 creates node object using valid class5289 sets a description containing "Static Site Editor" for all nodes5290 #leaf?5291 is not leaf5292 when not composed5293 #static_site_generator_value5294 returns nil5295 #leaf?5296 is leaf5297 when composed5298 #errors5299 has no errors5300 #image_upload_path_value5301 returns correct values5302 #mounts_value5303 returns correct values5304 #static_site_generator_value5305 returns correct values5306 when value is an empty hash5307 behaves like valid default configuration5308 #compose!5309 creates nodes hash5310 creates node object for each entry5311 creates node object using valid class5312 sets a description containing "Static Site Editor" for all nodes5313 #leaf?5314 is not leaf5315 when not composed5316 #static_site_generator_value5317 returns nil5318 #leaf?5319 is leaf5320 when composed5321 #errors5322 has no errors5323 #image_upload_path_value5324 returns correct values5325 #mounts_value5326 returns correct values5327 #static_site_generator_value5328 returns correct values5329 when configuration is not valid5330 when a single entry is invalid5331 #errors5332 reports errors5333 when a multiple entries are invalid5334 #errors5335 reports errors5336 when there is an invalid key5337 #errors5338 reports errors5339 when value is not a hash5340 #valid?5341 is not valid5342 #errors5343 returns error about invalid type5344 #specified?5345 is concrete entry that is defined5346 #[]5347 when entry exists5348 returns correct entry5349 when entry does not exist5350 always return unspecified node5351EventCollection5352 #to_a5353 with project events5354 returns an Array of events5355 includes the wiki page events when using to_a5356 includes the design events5357 includes the wiki page events when using all_project_events5358 applies a limit to the number of events5359 can paginate through events5360 returns an empty Array when crossing the maximum page number5361 allows filtering of events using an EventFilter, returning single item5362 allows filtering of events using an EventFilter, returning several items5363 allows filtering of events using an EventFilter, returning pushes5364 with group events5365 includes also group events5366 does not include events from inaccessible groups5367SystemNotes::TimeTrackingService5368 #change_due_date5369 when noteable is an issue5370 tracks the issue event in usage ping5371 behaves like a note with overridable created_at5372 the note has the correct time5373 behaves like a system note5374 has the correct attributes5375 when due date added5376 sets the note text5377 when due date removed5378 sets the note text5379 when noteable is a merge request5380 does not track the issue event in usage ping5381 #change_time_estimate5382 when noteable is an issue5383 tracks the issue event in usage ping5384 behaves like a system note5385 has the correct attributes5386 with a time estimate5387 sets the note text5388 when time_tracking_limit_to_hours setting is true5389 sets the note text5390 without a time estimate5391 sets the note text5392 when noteable is a merge request5393 does not track the issue event in usage ping5394 #change_time_spent5395 when noteable is an issue5396 behaves like a system note5397 has the correct attributes5398 when time was added5399 sets the note text5400 tracks the issue event in usage ping5401 when time was subtracted5402 sets the note text5403 when time was removed5404 sets the note text5405 when time_tracking_limit_to_hours setting is true5406 sets the note text5407 when noteable is a merge request5408 does not track the issue event in usage ping5409Gitlab::Chat::Output5410 #to_s5411 returns the chat reply as a String5412 without the chat_reply trace section5413 falls back to using the step_script trace section5414 without the step_script trace section5415 falls back to using the build_script trace section5416 without the build_script trace section5417 raises MissingBuildSectionError5418 #without_executed_command_line5419 returns the input without the first line5420 returns an empty String when the input is empty5421 returns an empty String when the input consits of a single newline5422 #find_build_trace_section5423 returns nil when no section could be found5424 returns the trace section when it could be found5425SnippetBlobPresenter5426 #rich_data5427 with PersonalSnippet5428 when blob is binary5429 returns the HTML associated with the binary5430 with markdown format5431 returns rich markdown content5432 with notebook format5433 returns rich notebook content5434 with openapi format5435 returns rich openapi content5436 with svg format5437 returns rich svg content5438 with other format5439 does not return no rich content5440 route helpers5441 #raw_path5442 behaves like snippet blob raw path5443 for PersonalSnippets5444 returns the raw personal snippet blob path5445 for ProjectSnippets5446 returns the raw project snippet blob path5447 with a snippet without a repository5448 with ProjectSnippet5449 returns the raw project snippet path5450 with PersonalSnippet5451 returns the raw personal snippet path5452 #raw_plain_data5453 with a plain file5454 shows raw data for non binary files5455 with a binary file5456 returns nil5457 #raw_url5458 behaves like snippet blob raw url5459 for PersonalSnippets5460 returns the raw personal snippet blob url5461 for ProjectSnippets5462 returns the raw project snippet blob url5463 with a snippet without a repository5464 with ProjectSnippet5465 returns the raw project snippet url5466 with PersonalSnippet5467 returns the raw personal snippet url5468Gitlab::ApplicationContext5469 .with_context5470 yields the block5471 passes the expected context on to labkit5472 raises an error when passing invalid options5473 .with_raw_context5474 yields the block5475 passes the attributes unaltered on to labkit5476 .push5477 passes the expected context on to labkit5478 raises an error when passing invalid options5479 .current_context_include?5480 returns true if the key was present in the context5481 returns false if the key was not present in the current context5482 .current_context_attribute5483 returns the raw attribute value5484 returns the attribute value with meta prefix5485 returns nil if the key was not present in the current context5486 #to_lazy_hash5487 does not call the attributes until needed5488 correctly loads the expected values when they are wrapped in a block5489 correctly loads the expected values when passed directly5490 falls back to a projects namespace when a project is passed but no namespace5491 setting the client5492 provided_options: [:remote_ip], client: :remote_ip5493 sets the client_id to the expected value5494 provided_options: [:remote_ip, :runner], client: :runner5495 sets the client_id to the expected value5496 provided_options: [:remote_ip, :runner, :user], client: :user5497 sets the client_id to the expected value5498 when using a runner project5499 sets project path from runner project5500 when the runner serves multiple projects5501 does not set project path5502 when using an instance runner5503 does not sets project path5504 #use5505 yields control5506 passes the expected context on to labkit5507 does not cause queries5508Gitlab::Metrics::WebTransaction5509 #run5510 yields the supplied block5511 stores the transaction in the current thread5512 removes the transaction from the current thread upon completion5513 records the duration of the transaction if the request was successful5514 does not record the duration of the transaction if the request failed5515 does not record the duration of the transaction if it raised5516 returns the rack response5517 #labels5518 returns no labels when no route information is present in env5519 when request goes to Grape endpoint5520 provides labels with the method and path of the route in the grape endpoint5521 contains only the labels defined for transactions5522 does not provide labels if route infos are missing5523 when request goes to ActionController5524 tags a transaction with the name and action of a controller5525 contains only the labels defined for transactions5526 when the request content type is not :html5527 appends the mime type to the transaction action5528 when the request content type is not5529 does not append the MIME type to the transaction action5530 when the feature category is known5531 includes it in the feature category label5532 behaves like transaction metrics with labels5533 .prometheus_metric5534 adds a metric5535 #method_call_for5536 returns a MethodCall5537 #add_event5538 adds a metric5539 allows tracking of custom tags5540 with sensitive tags5541 filters tags5542 #increment5543 adds a metric5544 with block5545 overrides docstring5546 overrides labels5547 filters sensitive tags5548 #set5549 adds a metric5550 with block5551 overrides docstring5552 overrides labels5553 filters sensitive tags5554 #observe5555 adds a metric5556 with block5557 overrides docstring5558 overrides labels5559 filters sensitive tags5560Users::RefreshAuthorizedProjectsService5561 #execute5562 refreshes the authorizations using a lease5563 callbacks5564 incorrect_auth_found_callback callback5565 is called5566 missing_auth_found_callback callback5567 is called5568 #execute_without_lease5569 updates the authorized projects of the user5570 removes duplicate entries5571 sets the access level of a project to the highest available level5572 returns a User5573 #update_authorizations5574 removes authorizations that should be removed5575 inserts authorizations that should be added5576 logs the details of the refresh5577 when there are no rows to add and remove5578 does not change authorizations5579Gitlab::Import::StuckProjectImportJobsWorker5580 with scheduled import_status5581 behaves like stuck import job detection5582 when the job has completed5583 when the import status was already updated5584 does not mark the import as failed5585 when the import status was not updated5586 marks the import as failed5587 when the job is still in Sidekiq5588 does not mark the import as failed5589 with started import_status5590 behaves like stuck import job detection5591 when the job has completed5592 when the import status was already updated5593 does not mark the import as failed5594 when the import status was not updated5595 marks the import as failed5596 when the job is still in Sidekiq5597 does not mark the import as failed5598Direct upload support5599 config_name: "artifacts"5600 when object storage is enabled5601 when direct upload is enabled5602 when provider is AWS5603/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5604/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5605/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5606/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5607/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5608/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5609 succeeds5610 when provider is Google5611/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5612/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5613/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5614/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5615/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5616/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5617 succeeds5618 when provider is AzureRM5619/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5620/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5621/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5622/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5623/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5624/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5625 succeeds5626 when connection is empty5627/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5628/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5629/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5630/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5631/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5632/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5633 raises an error5634 when other provider is used5635/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5636/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5637/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5638/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5639/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5640/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5641 raises an error5642 when connection is omitted5643/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5644/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5645/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5646/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5647/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5648/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5649 raises an error5650 when direct upload is disabled5651/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5652/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5653/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5654/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5655/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5656/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5657 succeeds5658 when object storage is disabled5659/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5660/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5661/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5662/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5663/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5664/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5665 succeeds5666 config_name: "lfs"5667 when object storage is enabled5668 when direct upload is enabled5669 when provider is AWS5670/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5671/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5672/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5673/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5674/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5675/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5676 succeeds5677 when provider is Google5678/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5679/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5680/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5681/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5682/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5683/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5684 succeeds5685 when provider is AzureRM5686/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5687/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5688/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5689/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5690/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5691/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5692 succeeds5693 when connection is empty5694/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5695/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5696/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5697/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5698/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5699/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5700 raises an error5701 when other provider is used5702/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5703/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5704/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5705/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5706/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5707/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5708 raises an error5709 when connection is omitted5710/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5711/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5712/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5713/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5714/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5715/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5716 raises an error5717 when direct upload is disabled5718/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5719/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5720/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5721/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5722/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5723/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5724 succeeds5725 when object storage is disabled5726/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5727/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5728/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5729/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5730/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5731/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5732 succeeds5733 config_name: "uploads"5734 when object storage is enabled5735 when direct upload is enabled5736 when provider is AWS5737/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5738/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5739/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5740/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5741/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5742/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5743 succeeds5744 when provider is Google5745/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5746/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5747/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5748/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5749/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5750/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5751 succeeds5752 when provider is AzureRM5753/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5754/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5755/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5756/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5757/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5758/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5759 succeeds5760 when connection is empty5761/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5762/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5763/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5764/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5765/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5766/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5767 raises an error5768 when other provider is used5769/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5770/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5771/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5772/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5773/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5774/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5775 raises an error5776 when connection is omitted5777/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5778/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5779/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5780/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5781/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5782/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5783 raises an error5784 when direct upload is disabled5785/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5786/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5787/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5788/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5789/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5790/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5791 succeeds5792 when object storage is disabled5793/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5794/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5795/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5796/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5797/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5798/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5799 succeeds5800WikiPage::Slug5801 Associations5802 is expected to belong to wiki_page_meta required: false5803 refers correctly to the wiki_page_meta5804 scopes5805 canonical5806 there are no slugs5807 is expected to be empty5808 there are some non-canonical slugs5809 is expected to be empty5810 there is at least one canonical slugs5811 is expected not to be empty5812 Validations5813 is expected to validate that :slug is case-sensitively unique within the scope of :wiki_page_meta_id5814 is expected to validate that the length of :slug is at most 20485815 is expected not to allow :slug to be ‹nil›5816 only_one_slug_can_be_canonical_per_meta_record5817 there are no other slugs5818 is expected to be valid5819 the current slug is canonical5820 is expected to be valid5821 there are other slugs, but they are not canonical5822 is expected to be valid5823 the current slug is canonical5824 is expected to be valid5825 there is already a canonical slug5826 is expected to be valid5827 the current slug is canonical5828 is expected not to be valid5829MergeRequests::ResolvedDiscussionNotificationService5830 #execute5831 when not all discussions are resolved5832 doesn't add a system note5833 doesn't send a notification email5834 doesn't send a webhook5835 when all discussions are resolved5836 adds a system note5837 sends a notification email5838 sends a webhook5839Gitlab::SubscriptionPortal5840 .default_subscriptions_url5841 test: false, development: false, result: "https://customers.gitlab.com"5842 is expected to eq "https://customers.gitlab.com"5843 test: false, development: true, result: "https://customers.staging.gitlab.com"5844 is expected to eq "https://customers.staging.gitlab.com"5845 test: true, development: false, result: "https://customers.staging.gitlab.com"5846 is expected to eq "https://customers.staging.gitlab.com"5847 .subscriptions_url5848 when CUSTOMER_PORTAL_URL ENV is unset5849 is expected to eq "https://customers.staging.gitlab.com"5850 when CUSTOMER_PORTAL_URL ENV is set5851 is expected to eq "https://customers.example.com"5852 .subscriptions_comparison_url5853 is expected to match /\Ahttps:\/\/about\.gitlab\.((cn\/pricing\/saas)|(com\/pricing\/gitlab-com))\/feature-comparison\z/5854 url methods5855 method_name: :default_subscriptions_url, result: "https://customers.staging.gitlab.com"5856 is expected to eq "https://customers.staging.gitlab.com"5857 method_name: :payment_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_validation"5858 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_validation"5859 method_name: :registration_validation_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"5860 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"5861 method_name: :subscriptions_graphql_url, result: "https://customers.staging.gitlab.com/graphql"5862 is expected to eq "https://customers.staging.gitlab.com/graphql"5863 method_name: :subscriptions_more_minutes_url, result: "https://customers.staging.gitlab.com/buy_pipeline_minutes"5864 is expected to eq "https://customers.staging.gitlab.com/buy_pipeline_minutes"5865 method_name: :subscriptions_more_storage_url, result: "https://customers.staging.gitlab.com/buy_storage"5866 is expected to eq "https://customers.staging.gitlab.com/buy_storage"5867 method_name: :subscriptions_manage_url, result: "https://customers.staging.gitlab.com/subscriptions"5868 is expected to eq "https://customers.staging.gitlab.com/subscriptions"5869 method_name: :subscriptions_plans_url, result: "https://about.gitlab.com/pricing/"5870 is expected to eq "https://about.gitlab.com/pricing/"5871 method_name: :subscriptions_instance_review_url, result: "https://customers.staging.gitlab.com/instance_review"5872 is expected to eq "https://customers.staging.gitlab.com/instance_review"5873 method_name: :subscriptions_gitlab_plans_url, result: "https://customers.staging.gitlab.com/gitlab_plans"5874 is expected to eq "https://customers.staging.gitlab.com/gitlab_plans"5875 method_name: :edit_account_url, result: "https://customers.staging.gitlab.com/customers/edit"5876 is expected to eq "https://customers.staging.gitlab.com/customers/edit"5877 .add_extra_seats_url5878 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/extra_seats"5879 .upgrade_subscription_url5880 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/upgrade/5"5881 .renew_subscription_url5882 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/renew"5883Gitlab::SidekiqMiddleware::SizeLimiter::Compressor5884 .compressed?5885 job: {}, result: false5886 returns whether the job payload is compressed5887 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>[123, "hello", ["world"]]}, result: false5888 returns whether the job payload is compressed5889 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>["eJzLSM3JyQcABiwCFQ=="], "compressed"=>true}, result: true5890 returns whether the job payload is compressed5891 .compress5892 args: nil5893 injects compressed data5894 can decompress the payload5895 args: []5896 injects compressed data5897 can decompress the payload5898 args: ["hello"]5899 injects compressed data5900 can decompress the payload5901 args: [{"job_class"=>"SomeWorker", "job_id"=>"b4a577edbccf1d805744efa9", "provider_job_id"=>nil, "queue_name"=>"default", "arguments"=>["some", ["argument"]], "executions"=>0, "locale"=>"en", "attempt_number"=>1}, nil, "hello", 12345678901234567890, ["nice"]]5902 injects compressed data5903 can decompress the payload5904 args: ["2021-05-13_09:59:37.57483 \e[35mrails-background-jobs : \e[0m{\"severity\":\"ERROR\",\"time\":\"2021-05-13T09:59:37.574Z\"", "bonne journée - ขอให้มีความสุขในวันนี้ - một ngày mới tốt lành - 좋은 하루 되세요 - ごきげんよう", "🤝 - 🦊"]5905 injects compressed data5906 can decompress the payload5907 .decompress5908 job payload is not compressed5909 preserves the payload after decompression5910 job payload is compressed with a default level5911 decompresses and clean up the job payload5912 job payload is compressed with a different level5913 decompresses and clean up the job payload5914 job payload argument list is malformed5915 tracks the conflicting exception5916 job payload is not a valid base64 string5917 raises an exception5918 job payload compression does not contain a valid Gzip header5919 raises an exception5920 job payload compression does not contain a valid Gzip body5921 raises an exception5922Integrations::Ewm5923 Validations5924 when integration is active5925 is expected to validate that :project_url cannot be empty/falsy5926 is expected to validate that :issues_url cannot be empty/falsy5927 is expected to validate that :new_issue_url cannot be empty/falsy5928 behaves like issue tracker integration URL attribute5929 is expected to allow :project_url to be ‹"https://example.com"›5930 is expected not to allow :project_url to be ‹"example.com"›5931 is expected not to allow :project_url to be ‹"ftp://example.com"›5932 is expected not to allow :project_url to be ‹"herp-and-derp"›5933 behaves like issue tracker integration URL attribute5934 is expected to allow :issues_url to be ‹"https://example.com"›5935 is expected not to allow :issues_url to be ‹"example.com"›5936 is expected not to allow :issues_url to be ‹"ftp://example.com"›5937 is expected not to allow :issues_url to be ‹"herp-and-derp"›5938 behaves like issue tracker integration URL attribute5939 is expected to allow :new_issue_url to be ‹"https://example.com"›5940 is expected not to allow :new_issue_url to be ‹"example.com"›5941 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›5942 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›5943 when integration is inactive5944 is expected not to validate that :project_url cannot be empty/falsy5945 is expected not to validate that :issues_url cannot be empty/falsy5946 is expected not to validate that :new_issue_url cannot be empty/falsy5947 ReferencePatternValidation5948 extracts bug5949 extracts task5950 extracts work item5951 extracts workitem5952 extracts defect5953 extracts rtcwi5954Gitlab::GitAccessProject5955 #check_namespace!5956 when namespace is nil5957 does not allow push and pull access5958 #check_project_accessibility!5959 when the project is nil5960 when user is allowed to create project in namespace5961 blocks pull access with "not found"5962 allows push access5963 when user is not allowed to create project in namespace5964 blocks push and pull with "not found"5965 #ensure_project_on_push!5966 when push5967 when project does not exist5968 when changes is _any5969 when authentication abilities include push code5970 when user can create project in namespace5971 creates a new project in the correct namespace5972 when namespace is blank5973 behaves like no project is created5974 does not create a new project5975 when namespace does not exist5976 behaves like no project is created5977 does not create a new project5978 when user cannot create project in namespace5979 behaves like no project is created5980 does not create a new project5981 when authentication abilities do not include push code5982 when user can create project in namespace5983 behaves like no project is created5984 does not create a new project5985 when check contains actual changes5986 behaves like no project is created5987 does not create a new project5988 when project exists5989 behaves like no project is created5990 does not create a new project5991 when deploy key is used5992 behaves like no project is created5993 does not create a new project5994 when pull5995 when project does not exist5996 behaves like no project is created5997 does not create a new project5998InstanceConfiguration5999 without cache6000 #settings6001 #ssh_algorithms_hashes6002 does not return anything if file does not exist6003 does not return anything if file is empty6004 returns the md5 and sha256 if file valid and exists6005 includes all algorithms6006 does not include disabled algorithm6007 #host6008 returns current instance host6009 #gitlab_pages6010 returns Settings.pages6011 returns the GitLab's pages host ip address6012 returns the ip address as nil if the domain is invalid6013 returns the ip address of the domain6014 #size_limits6015 returns size limits from application settings6016 returns nil if receive_max_input_size not set6017 returns nil if set to 0 (unlimited)6018 #package_file_size_limits6019 returns package file size limits6020 #rate_limits6021 returns rate limits from application settings6022 with cache6023 caches settings content6024 cached settings6025 expires after EXPIRATION_TIME6026Ci::ArchiveTracesCronWorker6027 when a job succeeded6028 executes service6029 behaves like archives trace6030 is expected to be exist6031 when the job finished recently6032 behaves like does not archive trace6033 is expected to be nil6034 when a trace had already been archived6035 continues to archive live traces6036 when an unexpected exception happened during archiving6037 puts a log6038 when a job was cancelled6039 behaves like archives trace6040 is expected to be exist6041 when a job is running6042 behaves like does not archive trace6043 is expected to be nil6044ExperimentSubject6045 associations6046 is expected to belong to experiment required: false6047 is expected to belong to user required: false6048 is expected to belong to namespace required: false6049 is expected to belong to project required: false6050 validations6051 is expected to validate that :experiment cannot be empty/falsy6052 must_have_one_subject_present6053 fails when no subject is present6054 passes when user subject is present6055 passes when namespace subject is present6056 passes when project subject is present6057 fails when more than one subject is present6058 .valid_subject?6059 when passing a Group, Namespace, User or Project6060 is expected to equal true6061 is expected to equal true6062 is expected to equal true6063 is expected to equal true6064 when passing another object6065 is expected to equal false6066DeployTokens::TokensFinder6067 #execute6068 when scope is :all6069 returns all deploy tokens6070 and active filter is applied6071 returns only active tokens6072 but user is not an admin6073 raises Gitlab::Access::AccessDeniedError6074 when scope is a Project6075 returns all deploy tokens for the project6076 and active filter is applied6077 returns only active tokens for the project6078 but user is not a member6079 raises Gitlab::Access::AccessDeniedError6080 when scope is a Group6081 returns all deploy tokens for the group6082 and active filter is applied6083 returns only active tokens for the group6084 but user is not a member6085 raises Gitlab::Access::AccessDeniedError6086 when scope is nil6087 raises ArgumentError6088notify/pipeline_failed_email.text.erb6089 when the pipeline contains a failed job6090 behaves like renders the pipeline failed email correctly6091 renders the email correctly6092 behaves like correct pipeline information for pipelines for merge requests6093 when pipeline for merge request6094 renders a source ref of the pipeline6095 when the latest failed job is a bridge job6096 behaves like renders the pipeline failed email correctly6097 renders the email correctly6098 behaves like correct pipeline information for pipelines for merge requests6099 when pipeline for merge request6100 renders a source ref of the pipeline6101Ci::CreatePipelineService6102 pipeline logger6103 when the duration is under the threshold6104 does not create a log entry but it collects the data6105 when the durations exceeds the threshold6106 creates a log entry6107 when the pipeline is not persisted6108 creates a log entry6109 when the feature flag is disabled6110 does not create a log entry6111 when the size exceeds the threshold6112 creates a log entry6113JSONWebToken::HMACToken6114 .decode6115 with an invalid token6116 that is junk6117 raises exception saying 'Not enough or too many segments'6118 that has been fiddled with6119 raises exception saying 'Invalid segment encoding'6120 that was generated using a different secret6121 raises exception saying 'Signature verification raised6122 that is expired6123 raises exception saying 'Signature has expired'6124 with a valid token6125 that has expired6126 with the default leeway6127 behaves like a valid, non-expired token6128 is an Array with two elements6129 contains the following keys in the first Array element Hash - jti, iat, nbf, exp6130 contains the following keys in the second Array element Hash - typ and alg6131 with a leeway of 0 seconds6132 raises exception saying 'Signature has expired'6133 that has not expired6134 behaves like a valid, non-expired token6135 is an Array with two elements6136 contains the following keys in the first Array element Hash - jti, iat, nbf, exp6137 contains the following keys in the second Array element Hash - typ and alg6138 #encoded6139 without data6140 behaves like a valid, non-expired token6141 is an Array with two elements6142 contains the following keys in the first Array element Hash - jti, iat, nbf, exp6143 contains the following keys in the second Array element Hash - typ and alg6144 with data6145 contains the 'data' key in the first Array element Hash6146 can re-read back the data6147 behaves like a valid, non-expired token6148 is an Array with two elements6149 contains the following keys in the first Array element Hash - jti, iat, nbf, exp6150 contains the following keys in the second Array element Hash - typ and alg6151Gitlab::Ci::Build::Artifacts::Metadata::Entry6152 /file/with/absolute_path6153 is expected to be file6154 is expected to have parent6155 #basename6156 is expected to eq "absolute_path"6157 path/dir_1/6158 is expected to have parent6159 is expected to be directory6160 #basename6161 is expected to eq "dir_1/"6162 #name6163 is expected to eq "dir_1"6164 #parent6165 is expected to eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/6166 #children6167 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6168 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1, Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b, and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/6169 #files6170 is expected to all be file6171 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6172 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1 and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b6173 #directories6174 without options6175 is expected to all be directory6176 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6177 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/6178 with option parent: true6179 is expected to all be directory6180 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6181 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/6182 #nodes6183 is expected to eq 26184 #exists?6185 is expected to equal true6186 #empty?6187 is expected to equal false6188 #total_size6189 is expected to eq 306190 empty path6191 is expected not to have parent6192 #children6193 is expected to eq 36194 path/dir_1/subdir/subfile6195 #nodes6196 is expected to eq 46197 #blob6198 returns a blob representing the entry data6199 non-existent/6200 #empty?6201 is expected to equal true6202 #exists?6203 is expected to equal false6204 another_directory/6205 #empty?6206 is expected to equal true6207 #metadata6208 is expected to eq "/path/file1"6209Ci::DeleteUnitTestsWorker6210 #perform6211 executes a service6212 behaves like an idempotent worker6213 is labeled as idempotent6214 performs multiple times sequentially without raising an exception6215 only deletes old unit tests and their failures6216ExpireBuildInstanceArtifactsWorker6217 #perform6218 with expired artifacts6219 when associated project is valid6220 does expire6221 does remove files6222 does remove the job artifact record6223 with not yet expired artifacts6224 does not expire6225 does not remove files6226 does not remove the job artifact record6227 without expire date6228 does not expire6229 does not remove files6230 does not remove the job artifact record6231 for expired artifacts6232 is still expired6233Gitlab::Ci::Build::Policy::Changes6234 #satisfied_by?6235 paths matching6236 is satisfied by matching literal path6237 is satisfied by matching simple pattern6238 is satisfied by matching recusive pattern6239 is satisfied by matching a pattern with a dot6240 is satisfied by matching a pattern with a glob6241 is not satisfied when pattern does not match path6242 is not satisfied when pattern does not match6243 is not satified when pattern with glob does not match6244 when modified paths can not be evaluated6245 is always satisfied6246 gitaly integration6247 is satisfied by changes introduced by a push6248 is not satisfied by changes that are not in the push6249 when branch is created6250 when source is merge request6251 is satified by changes in the merge request6252 is not satified by changes not in the merge request6253 when source is push6254 is always satified6255Gitlab::UntrustedRegexp6256 #initialize6257 invalid regexp6258 is expected to raise RegexpError6259 #replace_all6260 replaces all instances of the match in a string6261 #replace6262 replaces the first instance of the match in a string6263 #===6264 returns true for a match6265 returns false for no match6266 can handle regular expressions in multiline mode6267 #match?6268 malicious regexp6269 takes under a second6270 matching regexp6271 returns an array of nil matches6272 non-matching regexp6273 returns an array of nil matches6274 #scan6275 malicious regexp6276 takes under a second6277 empty regexp6278 returns an array of nil matches6279 empty capture group regexp6280 returns an array of nil matches in an array6281 no capture group6282 returns the whole match6283 one capture group6284 returns the captured part6285 two capture groups6286 returns the captured parts6287 #match6288 when there are matches6289 returns a match object6290 when there are no matches6291 returns nil6292Gitlab::Ci::Parsers::Security::Sast6293 #parse!6294 when parsing valid reports6295 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: 476296 parses all identifiers and findings6297 generates expected location6298 generates expected metadata_version6299 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: 16300 parses all identifiers and findings6301 generates expected location6302 generates expected metadata_version6303 when parsing an empty report6304 is expected to be empty6305Gitlab::Kubernetes::Helm::V2::DeleteCommand6306 behaves like helm command generator6307 #generate_script6308 returns appropriate command6309 #pod_name6310 is expected to eq "uninstall-app-name"6311 behaves like helm command6312 HELM_VERSION6313 is expected to match /\d+\.\d+\.\d+/6314 #env6315 is expected to be a kind of Hash6316 #rbac?6317 rbac is enabled6318 is expected to be truthy6319 rbac is not enabled6320 is expected to be falsey6321 #pod_resource6322 rbac is enabled6323 is expected to be an instance of Kubeclient::Resource6324 generates a pod that uses the tiller serviceAccountName6325 rbac is not enabled6326 is expected to be an instance of Kubeclient::Resource6327 generates a pod that uses the default serviceAccountName6328 #config_map_resource6329 returns a KubeClient resource with config map content for the application6330 #service_account_resource6331 rbac is enabled6332 generates a Kubeclient resource for the tiller ServiceAccount6333 rbac is not enabled6334 generates nothing6335 #cluster_role_binding_resource6336 rbac is enabled6337 generates a Kubeclient resource for the ClusterRoleBinding for tiller6338 binds the account in #service_account_resource6339 rbac is not enabled6340 generates nothing6341 #delete_command6342 deletes the release6343projects/merge_requests/edit.html.haml6344 when a merge request without fork6345 shows editable fields6346 when a merge request with an existing source project is closed6347 shows editable fields6348Gitlab::Analytics::CycleAnalytics::BaseQueryBuilder6349 scopes query within the target project6350 date range parameters6351 when filters by only the `from` parameter6352 is expected to eq 26353 when filters by both `from` and `to` parameters6354 is expected to eq 16355 invalid date range is provided6356 is expected to eq 06357 in progress filter6358 when the filter is present6359 returns only open items6360 when the filter is absent6361 returns finished items6362Packages::Debian::ProjectComponent6363 behaves like Debian Distribution Component6364 relationships6365 is expected to belong to distribution class_name => Packages::Debian::ProjectDistribution required: false inverse_of => components6366 is expected to have many files class_name => Packages::Debian::ProjectComponentFile inverse_of => component6367 validations6368 #distribution6369 is expected to validate that :distribution cannot be empty/falsy6370 #name6371 is expected to validate that :name cannot be empty/falsy6372 is expected to allow :name to be ‹"main"›6373 is expected to allow :name to be ‹"non-free"›6374 is expected to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6375 is expected not to allow :name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›6376 is expected not to allow :name to be ‹"non/free"›6377 is expected not to allow :name to be ‹"hé"›6378 scopes6379 .ordered_by_name6380 sorts by name6381 .with_distribution6382 does not return other distributions6383 .with_name6384 does not return other distributions6385Banzai::Filter::BroadcastMessagePlaceholdersFilter6386 when current user is set6387 replaces placeholder in text6388 is expected to eq "Email: helloworld@example.com"6389 replaces placeholder when they are in a link6390 is expected to eq "<a href=\"http://example.com?email=helloworld%40example.com\">link</a>"6391 replaces placeholder when they are in an escaped link6392 is expected to eq "<a href=\"http://example.com?name=GitLab+Tanunki+%3A%29\">link</a>"6393 works with empty text6394 is expected to eq " "6395 replaces multiple placeholders in a given text6396 is expected to eq "helloworld@example.com GitLab Tanunki :)"6397 available placeholders6398 replaces the email of the user6399 is expected to eq "helloworld@example.com"6400 replaces the name of the user6401 is expected to eq "GitLab Tanunki :)"6402 replaces the ID of the user6403 is expected to eq "2149"6404 replaces the username of the user6405 is expected to eq "user1251"6406 replaces the instance_id6407 is expected to eq "123"6408 when there is no current user set6409 replaces placeholder with empty string6410 is expected to eq "Email: "6411Tree6412 #readme6413 returns nil when repository does not contains a README file6414 returns nil when repository does not contains a previewable README file6415 returns README when repository contains a previewable README file6416 returns first previewable README when repository contains more than one6417 returns first plain text README when repository contains more than one6418 prioritizes previewable README file over one in plain text6419 #cursor6420 is expected to be an instance of Gitaly::PaginationCursor6421DependencyProxy::DownloadBlobService6422 remote request is successful6423 is expected to eq :success6424 is expected to be a kind of Tempfile6425 is expected to eq 66426 streams the download6427 skips read_total_timeout6428 remote request is not found6429 is expected to eq :error6430 is expected to eq 4046431 is expected to eq "Non-success response code on downloading blob fragment"6432 net timeout exception6433 is expected to eq :error6434 is expected to eq 5996435 is expected to eq "execution expired"6436Gitlab::Ci::Config::Entry::Commands6437 when entry config value is an array of strings6438 #value6439 returns array of strings6440 #errors6441 does not append errors6442 when entry config value is a string6443 #value6444 returns array with single element6445 #valid?6446 is valid6447 when entry config value is array of arrays of strings6448 #value6449 returns array of strings6450 #errors6451 does not append errors6452 #valid?6453 is valid6454 when entry config value is array of strings and arrays of strings6455 #value6456 returns array of strings6457 #errors6458 does not append errors6459 #valid?6460 is valid6461 when entry value is integer6462 #errors6463 saves errors6464 when entry value is multi-level nested array6465 #errors6466 saves errors6467 #valid?6468 is not valid6469Gitlab::Ci::Status::Build::Scheduled6470 #illustration6471 is expected to include :image, :size, and :title6472 #status_tooltip6473 has a placeholder for the remaining time6474 .matches?6475 when build is scheduled and scheduled_at is present6476 is expected to be truthy6477 when build is scheduled6478 is expected to be falsy6479 when scheduled_at is present6480 is expected to be falsy6481Gitlab::Database::AsyncIndexes::MigrationHelpers6482 #unprepare_async_index6483 when the flag is enabled6484 destroys the record6485 when an explicit name is given6486 destroys the record6487 when the async index table does not exist6488 does not raise an error6489 when the feature flag is disabled6490 does not destroy the record6491 #unprepare_async_index_by_name6492 when the flag is enabled6493 destroys the record6494 when the async index table does not exist6495 does not raise an error6496 when the feature flag is disabled6497 does not destroy the record6498 #prepare_async_index6499 when the feature flag is enabled6500 creates the record for the async index6501 when an explicit name is given6502 creates the record with the given name6503 when the index already exists6504 does not create the record6505 when the record already exists6506 does attempt to create the record6507 updates definition if changed6508 does not update definition if not changed6509 when the async index table does not exist6510 does not raise an error6511 when the feature flag is disabled6512 does not create the record6513Gitlab::BareRepositoryImport::Repository6514 legacy storage6515 stores the repo path6516 stores the group path6517 stores the project name6518 stores the wiki path6519 #processable?6520 returns false if it is a wiki6521 returns true if group path is missing6522 returns true when group path and project name are present6523 #project_full_path6524 returns the project full path with trailing slash in the root path6525 returns the project full path with no trailing slash in the root path6526 hashed storage6527 stores the repo path6528 stores the wiki path6529 reads the group path from .git/config6530 reads the project name from .git/config6531 #processable?6532 returns false if it is a wiki6533 returns false when group and project name are missing6534 returns true when group path and project name are present6535 #project_full_path6536 returns the project full path with trailing slash in the root path6537 returns the project full path with no trailing slash in the root path6538Gitlab::Ci::Config::Entry::Artifacts6539 validation6540 when entry config value is correct6541 #value6542 returns artifacts configuration6543 #valid?6544 is valid6545 when value includes 'reports' keyword6546 returns general artifact and report-type artifacts configuration6547 when value includes 'expose_as' keyword6548 returns general artifact and report-type artifacts configuration6549 when value includes 'public' keyword6550 returns general artifact and report-type artifacts configuration6551 when entry value is not correct6552 #errors6553 when value of attribute is invalid6554 reports error6555 when there is an unknown key present6556 reports error6557 when 'reports' keyword is not hash6558 reports error6559 when 'public' is not a boolean6560 reports error6561 when 'expose_as' is not a string6562 reports error6563 when 'expose_as' is too long6564 reports error6565 when 'expose_as' is an empty string6566 reports error6567 when 'expose_as' contains invalid characters6568 reports error6569 when 'expose_as' is used without 'paths'6570 reports error6571 when 'paths' includes '*' and 'expose_as' is defined6572 reports error6573 excluded artifacts6574 when configuration is valid6575 correctly parses the configuration6576 when configuration is not valid6577 returns an error6578PersonalAccessTokens::RevokeService6579 #execute6580 when current_user is an administrator6581 when admin mode is enabled6582 behaves like a successfully revoked token6583 is expected to equal true6584 is expected to equal true6585 logs the event6586 when admin mode is disabled6587 behaves like an unsuccessfully revoked token6588 is expected to equal false6589 is expected to equal false6590 when current_user is not an administrator6591 token belongs to a different user6592 behaves like an unsuccessfully revoked token6593 is expected to equal false6594 is expected to equal false6595 token belongs to current_user6596 behaves like a successfully revoked token6597 is expected to equal true6598 is expected to equal true6599 logs the event6600StageSerializer6601 #represent6602 with a single entity6603 serializes the stage object6604 with an array of entities6605 serializes the array of pipelines6606Prometheus::CreateDefaultAlertsService6607 #execute6608 no environment6609 behaves like no alerts created6610 does not create alerts6611 environment exists6612 no found metric6613 behaves like no alerts created6614 does not create alerts6615 metric exists6616 creates alerts6617 does not schedule an update to prometheus6618 alert exists already6619 behaves like no alerts created6620 does not create alerts6621 cluster with prometheus exists6622 schedules an update to prometheus6623 multiple environments6624 uses the production environment6625Gitlab::Database::LooseIndexScanDistinctCount6626 counting distinct users6627 is expected to eq 26628 when STI model is queried6629 does not raise error6630 when model with default_scope is queried6631 does not raise error6632 when the fully qualified column is given6633 is expected to eq 26634 when AR attribute is given6635 is expected to eq 26636 when invalid value is given for the column6637 is expected to raise Gitlab::Database::LooseIndexScanDistinctCount::ColumnConfigurationError6638 when null values are present6639 is expected to eq 26640 counting STI models6641 counts groups6642Gitlab::Database::GitlabSchema6643 .tables_to_schema6644 all tables have assigned a known gitlab_schema6645 for main using ActiveRecord::Base6646 new data sources are added6647 non-existing data sources are removed6648 .table_schema6649 name: "ci_builds", classification: :gitlab_ci6650 is expected to eq :gitlab_ci6651 name: "my_schema.ci_builds", classification: :gitlab_ci6652 is expected to eq :gitlab_ci6653 name: "information_schema.columns", classification: :gitlab_shared6654 is expected to eq :gitlab_shared6655 name: "audit_events_part_5fc467ac26", classification: :gitlab_main6656 is expected to eq :gitlab_main6657 name: "_test_my_table", classification: :gitlab_shared6658 is expected to eq :gitlab_shared6659 name: "pg_attribute", classification: :gitlab_shared6660 is expected to eq :gitlab_shared6661 name: "my_other_table", classification: :undefined_my_other_table6662 is expected to eq :undefined_my_other_table6663Users::UpdateCanonicalEmailService6664 #initialize6665 unsuccessful6666 raises an error if there is no user6667 raises an error if the object is not a User6668 when a user is provided6669 does not error6670 #canonicalize_email6671 when the email domain is included6672 strips out any . or anything after + in the agent for included domains6673 raw_email: "user@includeddomain.com", expected_result: "user@includeddomain.com"6674 is expected to eq "user@includeddomain.com"6675 raw_email: "u.s.e.r@includeddomain.com", expected_result: "user@includeddomain.com"6676 is expected to eq "user@includeddomain.com"6677 raw_email: "user+123@includeddomain.com", expected_result: "user@includeddomain.com"6678 is expected to eq "user@includeddomain.com"6679 raw_email: "us.er+123@includeddomain.com", expected_result: "user@includeddomain.com"6680 is expected to eq "user@includeddomain.com"6681 when the user has an existing canonical email6682 updates the user canonical email record6683 when the email domain is not included6684 returns nil6685 destroys any existing UserCanonicalEmail record6686 when the user email is not processable6687 is expected to be nil6688 preserves any existing record6689 is expected to be nil6690 preserves any existing record6691Gitlab::Ci::Config::Entry::Prefix6692 validations6693 behaves like key entry validations6694 when entry value contains slash6695 behaves like key with slash6696 is invalid6697 reports errors with config value6698 when entry value contains URI encoded slash (%2F)6699 behaves like key with slash6700 is invalid6701 reports errors with config value6702 when entry value is a dot6703 behaves like key with only dots6704 is invalid6705 reports errors with config value6706 when entry value is two dots6707 behaves like key with only dots6708 is invalid6709 reports errors with config value6710 when entry value is a URI encoded dot (%2E)6711 behaves like key with only dots6712 is invalid6713 reports errors with config value6714 when entry value is two URI encoded dots (%2E)6715 behaves like key with only dots6716 is invalid6717 reports errors with config value6718 when entry value is one dot and one URI encoded dot6719 behaves like key with only dots6720 is invalid6721 reports errors with config value6722 when key is a string6723 #value6724 returns key value6725 #valid?6726 is valid6727 when entry value is not correct6728 #errors6729 saves errors6730 .default6731 returns default key6732ArrayMembersValidator6733 children: [#<#<Class:0x00007f3114fba508>:0x00007f3114fd9ea8>], is_valid: true6734 only accepts valid children nodes6735 children: [#<#<Class:0x00007f3114fd93b8>:0x00007f3114fd8e90>], is_valid: false6736 only accepts valid children nodes6737 children: [#<#<Class:0x00007f3114fba508>:0x00007f3114fd8468>, #<#<Class:0x00007f3114fd8418>:0x00007f3114fd8378>], is_valid: false6738 only accepts valid children nodes6739 children: [], is_valid: false6740 only accepts valid children nodes6741 children: #<#<Class:0x00007f3114fba508>:0x00007f3114f75b60>, is_valid: false6742 only accepts valid children nodes6743 children: [#<#<Class:0x00007f3114f75570>:0x00007f3114f753e0>], is_valid: false6744 only accepts valid children nodes6745 validation message6746 with default object name6747 uses attribute name6748 with custom object name6749 uses that name6750QualifiedDomainArrayValidator6751 validations6752 returns error when attribute is nil6753 allows when domain is valid6754 returns error when domain contains unicode6755 returns error when entry is larger than 255 chars6756 returns error when entry contains HTML tags6757 behaves like can be blank6758 allows when attribute is blank6759 when allow_nil is set to true6760 behaves like can be nil6761 allows when attribute is nil6762 behaves like can be blank6763 allows when attribute is blank6764 when allow_blank is set to true6765 behaves like can be nil6766 allows when attribute is nil6767 behaves like can be blank6768 allows when attribute is blank6769ClustersFinder6770 #execute6771 when scope is all6772 is expected to contain exactly #<Clusters::Cluster id: 458, user_id: 2212, provider_type: "gcp", platform_type: "kubernetes", create...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3> and #<Clusters::Cluster id: 461, user_id: 2215, provider_type: "gcp", platform_type: "kubernetes", create...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>6773 when scope is active6774 is expected to contain exactly #<Clusters::Cluster id: 464, user_id: 2219, provider_type: "gcp", platform_type: "kubernetes", create...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>6775 when scope is inactive6776 is expected to contain exactly #<Clusters::Cluster id: 467, user_id: 2223, provider_type: "gcp", platform_type: "kubernetes", create...e, management_project_id: nil, cleanup_status: 1, cleanup_status_reason: nil, helm_major_version: 3>6777ExceedQueryLimitHelpers6778 can count queries6779 can select specific queries6780 can filter specific models6781 can ignore specific queries6782 can perform inclusion and exclusion6783 does not contain marginalia annotations6784 #diff_query_group_message6785 prints a group helpfully6786 #diff_query_counts6787 merges two query counts6788 can show common queries if so desired6789 #count_queries6790 handles queries with suffixes over multiple lines6791 can aggregate queries6792ResourceEvents::SyntheticMilestoneNotesBuilderService6793 #execute6794 builds milestone notes for resource milestone events6795 behaves like filters by paginated notes6796 only returns given notes6797 when paginated notes is empty6798 does not return any notes6799Gitlab::ImportExport::Shared6800 with a repository on disk6801 #archive_path6802 uses a random hash to avoid conflicts6803 memoizes the path6804 #export_path6805 uses a random hash relative to project path6806 memoizes the path6807 with a group on disk6808 #base_path6809 uses hashed storage path6810 when exportable type is unsupported6811 #base_path6812 raises6813 #error6814 filters any full paths6815 updates the import JID6816RuboCop::Cop::Graphql::ResolverType6817 adds an offense when there is no type annotation6818 does not add an offense for resolvers that have a type call6819 ignores type calls on other objects6820 does not add an offense unless the class is named using the Resolver convention6821Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd6822 behaves like value stream analytics event6823 is expected to be a kind of String6824 is expected to be a kind of Symbol6825 is expected to include ApplicationRecord(abstract)6826 is expected to respond to #timestamp_projection6827 is expected to respond to #html_description6828 is expected to be a kind of Array6829 #apply_query_customization6830 expects an ActiveRecord::Relation object as argument and returns a modified version of it6831 #hash_code6832 returns a hash that uniquely identifies an event6833 does not differ when the same object is built with the same params6834 behaves like LEFT JOIN-able value stream analytics event6835 can use the event as LEFT JOIN6836 when looking at the record with data6837 contains the timestamp expression6838 when looking at the record without data6839 returns nil for the timestamp expression6840SafeZip::ExtractParams6841 #extract_path6842 is expected to eq "/tmp/safe-zip20211220-448-1ojdmvx"6843 #matching_target_directory6844 path: "/public/index.html", result: "/public/"6845 is expected to eq "/tmp/safe-zip20211220-448-ixz41c/public/"6846 path: "/non/existing/path", result: nil6847 is expected to eq nil6848 path: "/public", result: nil6849 is expected to eq nil6850 path: "/folder/with/index.html", result: nil6851 is expected to eq nil6852 #target_directories6853 starts with target_path6854 ends with / for all paths6855 #directories_wildcard6856 adds * for all paths6857Users::DismissGroupCalloutService6858 #execute6859 sets the group_id6860 behaves like dismissing user callout6861 creates a new user callout6862 returns a user callout6863 sets the dismissed_at attribute to current time6864 updates an existing callout dismissed_at time6865 does not update an invalid record with dismissed_at time6866Banzai::Filter::WikiLinkFilter6867 doesn't rewrite absolute links6868 doesn't rewrite links to project uploads6869 when links are rewritable6870 stores original url in the data-canonical-src attribute6871 when links are not rewritable6872 does not store original url in the data-canonical-src attribute6873 when links point to the relative wiki path6874 does not rewrite links6875 when links point to the uploads folder6876 with an "a" html tag6877 rewrites links6878 with "img" html tag6879 inside an "a" html tag6880 rewrites links6881 outside an "a" html tag6882 rewrites links6883 with "video" html tag6884 rewrites links6885 with "audio" html tag6886 rewrites links6887 invalid links6888 doesn't rewrite invalid invalid_links like http://:80806889 doesn't rewrite invalid invalid_links like http://6890 doesn't rewrite invalid invalid_links like http://:8080/path6891Clusters::Aws::ProvisionService6892 #execute6893 updates the provider status to :creating and configures the provider with credentials6894 creates a CloudFormation stack6895 schedules a worker to monitor creation status6896 error handling6897 invalid state transition6898 sets the status to :errored with an appropriate error message6899 AWS role is not configured6900 sets the status to :errored with an appropriate error message6901 AWS credentials are not configured6902 sets the status to :errored with an appropriate error message6903 Authentication failure6904 sets the status to :errored with an appropriate error message6905 CloudFormation failure6906 sets the status to :errored with an appropriate error message6907Clusters::Applications::ActivateServiceWorker#perform6908 cluster exists6909 prometheus integration6910 cluster type: group6911 ensures Prometheus integration is activated6912 cluster type: project6913 ensures Prometheus integration is activated6914 cluster type: instance6915 ensures Prometheus integration is activated6916 cluster does not exist6917WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/workers/clusters/applications/activate_service_worker_spec.rb:49:in `block (3 levels) in <top (required)>'.6918 does not raise Record Not Found error6919DeploymentSerializer6920 #represent6921 behaves like json schema6922 matches deployment entity schema6923 #represent_concise6924 behaves like json schema6925 matches deployment entity schema6926RuboCop::Cop::Migration::Timestamps6927 in migration6928 registers an offense when the "timestamps" method is used6929 does not register an offense when the "timestamps" method is not used6930 does not register an offense when the "timestamps_with_timezone" method is used6931 outside of migration6932 registers no offense6933RuboCop::Cop::PutGroupRoutesUnderScope6934 registers an offense when route is outside scope for `resource`6935 registers an offense when route is outside scope for `resources`6936 registers an offense when route is outside scope for `get`6937 registers an offense when route is outside scope for `post`6938 registers an offense when route is outside scope for `put`6939 registers an offense when route is outside scope for `patch`6940 registers an offense when route is outside scope for `delete`6941 does not register an offense when resource inside the scope6942 does not register an offense when resource is deep inside the scope6943 does not register an offense for the root route6944 does not register an offense for the root route within scope6945Types::BaseArgument6946 adds a formatted `deprecated_reason` to the subject6947 appends to the description if given6948 does not append to the description if it is absent6949 adds information about the replacement if provided6950 supports named reasons: renamed6951 supports named reasons: discouraged6952 validations6953 raises an informative error if `deprecation_reason` is used6954 raises an error if a required property is missing6955 raises an error if milestone is not a String6956 required argument declarations6957 accepts nullable, required arguments6958 accepts required, non-nullable arguments6959 accepts non-required arguments6960 accepts no required argument declaration6961API::Entities::Project6962 .service_desk_address6963 when a user can admin issues6964 is present6965 when a user can not admin project6966 is empty6967 .shared_with_groups6968 when the current user does not have access to the group6969 is empty6970 when the current user has access to the group6971 contains information about the shared group6972LegacyDiffDiscussion6973 #reply_attributes6974 includes line_code6975 #merge_request_version_params6976 when the discussion is active6977 returns an empty hash, which will end up showing the latest version6978 when the discussion is outdated6979 returns nil6980Gitlab::Ci::Status::Processable::WaitingForResource6981 #illustration6982 is expected to include :image, :size, and :title6983 .matches?6984 when processable is waiting for resource6985 is a correct match6986 when processable is not waiting for resource6987 does not match6988Gitlab::Usage::Metrics::Instrumentations::CountUsersCreatingIssuesMetric6989 with all time frame6990 behaves like a correct instrumented metric value and query6991 behaves like a correct instrumented metric value6992 has correct value6993 behaves like a correct instrumented metric query6994 has correct generate query6995 for 28d time frame6996 behaves like a correct instrumented metric value and query6997 behaves like a correct instrumented metric value6998 has correct value6999 behaves like a correct instrumented metric query7000 has correct generate query7001Mutations::CustomerRelations::Contacts::Create7002 is expected to require graphql authorizations :admin_crm_contact7003 #resolve7004 when the user does not have permission7005 raises an error7006 when the user has permission7007 creates contact with correct values7008 when the feature is disabled7009 raises an error7010 when the params are invalid7011 returns the validation error7012 when attaching to an organization7013 when all ok7014 creates contact with correct values7015 when organization_id is invalid7016 returns the relevant error7017 when organzation belongs to a different group7018 returns the relevant error7019Gitlab::Graphql::MarkdownField7020 .markdown_field7021 creates the field with some default attributes7022 developer warnings7023 raises when passing a resolver7024 raises when passing a resolve block7025 resolving markdown7026 renders markdown from the same property as the field name without the `_html` suffix7027 when a `method` argument is passed7028 renders markdown from a specific property7029 basic verification that references work7030 renders markdown correctly7031 when the issue is not publicly accessible7032 hides the references from users that are not allowed to see the reference7033 shows the reference to users that are allowed to see it7034Gitlab::Auth::IpRateLimiter7035 #register_fail!7036 bans after 3 consecutive failures7037 with a whitelisted netmask7038 behaves like whitelisted IPs7039 does not ban after max retry limit7040 with a whitelisted IP7041 behaves like whitelisted IPs7042 does not ban after max retry limit7043 when IP is whitlisted7044 behaves like skips the rate limiter7045 does not call Rack::Attack::Allow2Ban.reset!7046 does not call Rack::Attack::Allow2Ban.banned?7047 does not call Rack::Attack::Allow2Ban.filter7048 when rate limiter is disabled7049 behaves like skips the rate limiter7050 does not call Rack::Attack::Allow2Ban.reset!7051 does not call Rack::Attack::Allow2Ban.banned?7052 does not call Rack::Attack::Allow2Ban.filter7053Ci::AfterRequeueJobService7054 marks subsequent skipped jobs as processable7055 when there is a job need from the same stage7056 marks subsequent skipped jobs as processable7057 when the pipeline is a downstream pipeline and the bridge is depended7058 marks source bridge as pending7059Mutations::Clusters::Agents::Delete7060 is expected to require graphql authorizations :admin_cluster7061 #resolve7062 without user permissions7063 fails to delete the cluster agent7064 with user permissions7065 deletes a cluster agent7066 with invalid params7067 raises an error if the cluster agent id is invalid7068Ci::BuildCancelService7069 #execute7070 when user is authorized to cancel the build7071 when build is cancelable7072 transits build to canceled7073 when build is not cancelable7074 responds with unprocessable entity7075 when user is not authorized to cancel the build7076 responds with forbidden7077Gitlab::ImportExport::LfsSaver7078 #save7079 when the project has LFS objects locally stored7080 does not cause errors7081 copies the file in the correct location when there is an lfs object7082 saving a json file7083 saves a json file correctly7084 when the LFS objects are stored in object storage7085 downloads the file to include in an archive7086UsersStarProjectsFinder7087 #execute7088 as same user7089 is expected to contain exactly #<UsersStarProject id: 2, project_id: 1082, user_id: 2306, created_at: "2021-12-20 17:17:08.801012000 +0000", updated_at: "2021-12-20 17:17:08.801012000 +0000"> and #<UsersStarProject id: 1, project_id: 1082, user_id: 2304, created_at: "2021-12-20 17:17:08.691229000 +0000", updated_at: "2021-12-20 17:17:08.691229000 +0000">7090 as other user7091 is expected to contain exactly #<UsersStarProject id: 3, project_id: 1083, user_id: 2307, created_at: "2021-12-20 17:17:09.392705000 +0000", updated_at: "2021-12-20 17:17:09.392705000 +0000">7092 as no user7093 is expected to contain exactly #<UsersStarProject id: 5, project_id: 1084, user_id: 2311, created_at: "2021-12-20 17:17:10.196162000 +0000", updated_at: "2021-12-20 17:17:10.196162000 +0000">7094Gitlab::SidekiqSignals7095 .install7096 not a process group leader7097 does nothing7098 as a process group leader7099 installs its own signal handlers for TERM and INT only7100 installs a forwarding signal handler for INT7101 raises if sidekiq no longer traps SIGINT7102 installs a forwarding signal handler for TERM7103 raises if sidekiq no longer traps SIGTERM7104Projects::EnableDeployKeyService7105 enables the key7106 trying to add an unaccessable key7107 returns nil if the key cannot be added7108 add the same key twice7109 returns existing key7110Gitlab::Prometheus::MetricGroup7111 .common_metrics7112 returns exactly two groups7113 returns exactly three metric queries7114 orders by priority7115 .for_project7116 returns exactly one common metric7117Ci::BuildNeed7118 is expected to belong to build class_name => Ci::Processable required: false7119 is expected to validate that :build cannot be empty/falsy7120 is expected to validate that :name cannot be empty/falsy7121 is expected to validate that the length of :name is at most 1287122 .artifacts7123 is expected to contain exactly #<Ci::BuildNeed id: 84, name: "build_1", artifacts: true, optional: false, build_id: 547>7124 BulkInsertSafe7125 bulk inserts from Ci::Build model7126MilestonesFinder7127 without filters7128 returns milestones for projects7129 returns milestones for groups7130 milestones for groups and project7131 returns milestones for groups and projects7132 orders milestones by due date7133 when grouping and sorting by expired_last7134 current milestones are returned first, then milestones without due date followed by expired milestones, sorted by due date in ascending order7135 #find_by7136 finds a single milestone7137 with filters7138 filters by id7139 filters by active state7140 filters by closed state7141 filters by title7142 filters by search_title7143 by timeframe7144 returns milestones with start_date and due_date between timeframe7145 returns milestones which starts before the timeframe7146 returns milestones which ends after the timeframe7147Gitlab::Diff::Formatters::TextFormatter7148 behaves like position formatter7149 #key7150 is expected to eq [123, 456, 789, "35bd01186d18c9f4842e2f377cc780a95bab7bcf", "02fa17b1a8378a17c3103dc5a6cb16a5f73a1433", 1, 2]7151 #complete?7152 when there are missing key attributes7153 is expected to be truthy7154 when old_line and new_line are nil7155 is expected to be falsy7156 #to_h7157 when file_identifier_hash is disabled7158 is expected to eq {:base_sha=>123, :head_sha=>789, :line_range=>nil, :new_line=>2, :new_path=>"new_path.txt", :old_line=>1, :old_path=>"old_path.txt", :position_type=>"text", :start_sha=>456}7159 when file_identifier_hash is enabled7160 is expected to eq {:base_sha=>123, :file_identifier_hash=>"777", :head_sha=>789, :line_range=>nil, :new_line=>2, :new_p...h=>"new_path.txt", :old_line=>1, :old_path=>"old_path.txt", :position_type=>"text", :start_sha=>456}7161 #==7162 is expected to eq #<Gitlab::Diff::Formatters::TextFormatter:0x00007f310715bb18 @old_line=1, @new_line=2, @line_range=ni...@new_path="new_path.txt", @file_identifier_hash="777", @base_sha=123, @start_sha=456, @head_sha=789>7163 #line_age7164 when there is only new_line7165 is expected to eq "new"7166 when there is only old_line7167 is expected to eq "old"7168 #==7169 is false when the line_range changes7170 is true when the line_range doesn't change7171Feature::Gitaly7172 .enabled?7173 when the flag is set globally7174 when the gate is closed7175 returns false7176 when the flag defaults to on7177 returns true7178 when the flag is enabled for a particular project7179 returns true for that project7180 returns false for any other project7181 returns false when no project is passed7182 .server_feature_flags7183 returns a hash of flags starting with the prefix, with dashes instead of underscores7184 when a project is passed7185 returns the value for the flag on the given project7186 when table does not exist7187 returns an empty Hash7188Gitlab::TerraformRegistryToken7189 .from_token7190 with a deploy token7191 returns the correct token7192 with a job7193 returns the correct token7194 with a personal access token7195 returns the correct token7196 behaves like a gitlab jwt token7197 #secret7198 is expected to eq "0d0a8815c38f382ffd633176af4963772884782e86456f2d4b88f3bba48a32eb"7199 #decode7200 with a custom payload7201 returns the correct token7202 returns nil and logs the exception after expiration7203Gitlab::ZoomLinkExtractor7204 #links7205 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]7206 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]7207 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]7208 is expected to eq ["https://zoom.us/j/1123433"]7209 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]7210 is expected to eq ["https://zoom.us/my/1123433"]7211 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]7212 is expected to eq ["https://gitlab.zoom.us/s/1123433"]7213 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]7214 is expected to eq ["https://gitlab.zoom.us/j/1123433"]7215 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]7216 is expected to eq ["https://gitlab.zoom.us/my/1123433"]7217 #match?7218 is true when a zoom link found7219 is false when no zoom link found7220trusted_proxies7221 with default config7222 preserves private IPs7223 filters out localhost7224 filters out bad values7225 with private IP ranges added7226 filters out private and local IPs7227 with proxy IP added7228 filters out proxy IP7229 handles invalid ip addresses7230Gitlab::Pagination::Keyset::CursorPager7231 #paginate7232 returns the limited relation7233 #finalize7234 passes information about next page to request7235 when retrieving the last page7236 does not build information about the next page7237 when retrieving an empty page7238 does not build information about the next page7239RuboCop::Cop::Migration::WithLockRetriesDisallowedMethod7240 when in migration7241 registers an offense when `with_lock_retries` block has disallowed method7242 registers an offense when `with_lock_retries` block has disallowed methods7243 registers no offense when `with_lock_retries` has only allowed method7244 for `add_foreign_key`7245 registers an offense when more than two FKs are added7246 when outside of migration7247 registers no offense7248Gitlab::ImportExport::UploadsSaver7249 bundle a project Git repo7250 legacy storage7251 saves the uploads successfully7252 copies the uploads to the export path7253 hashed storage7254 saves the uploads successfully7255 copies the uploads to the export path7256Gitlab::ImportExport::Json::NdjsonWriter7257 #write_attributes7258 writes correct json to root7259 #write_relation7260 when single relation is serialized7261 appends json in correct file7262 when single relation is already serialized7263 raise exception7264 #write_relation_array7265 writes json in correct files7266Gitlab::Diff::PairSelector7267 #to_a7268 finds all pairs7269 when there are empty lines7270 is expected not to raise Exception7271 when there are only removals7272 returns empty collection7273 when there are only additions7274 returns empty collection7275 when there are no changes7276 returns empty collection7277SystemCheck::Orphans::RepositoryCheck7278 #multi_check7279 all orphans7280 prints list of all orphaned namespaces except @hashed7281 few orphans with existing namespace7282 prints list of orphaned namespaces7283 few orphans with existing namespace and parents with same name as orphans7284 prints list of orphaned namespaces ignoring parents with same namespace as orphans7285 no orphans7286 prints an empty list ignoring @hashed7287Resolvers::UserResolver7288 #resolve7289 raises an ArgumentError when both an ID and username are provided7290 when neither an ID or a username is provided7291 raises an ArgumentError7292 by username7293 returns the correct user7294 by ID7295 returns the correct user7296Ci::DailyBuildGroupReportResultEntity7297 #as_json7298 is expected to include :date7299 is expected not to include :group_name7300 is expected to include :coverage7301 when given param_type is not allowed7302 is expected not to include :coverage7303 is expected not to include :something_else7304API::Entities::Package7305 exposes correct attributes7306 exposes correct web_path in _links7307 with a terraform_module7308 exposes correct web_path in _links7309API::Validations::Validators::GitSha7310 valid sha7311 does not raise a validation error7312 empty params7313 raises a validation error7314 invalid sha7315 raises a validation error7316UpdateExternalPullRequestsWorker7317 #perform7318 when ref is a branch7319 runs CreatePipelineService for each pull request matching the source branch and repository7320 when ref is not a branch7321 does nothing7322RuboCop::Cop::Gitlab::ModuleWithInstanceVariables7323 when source is a regular module7324 behaves like registering offense7325 registers an offense when instance variable is used in a module7326 when source is a nested module7327 behaves like registering offense7328 registers an offense when instance variable is used in a module7329 when source is a nested module with multiple offenses7330 behaves like registering offense7331 registers an offense when instance variable is used in a module7332 when source is using simple or ivar assignment7333 behaves like not registering offense7334 does not register offenses7335 when source is using simple ivar7336 behaves like not registering offense7337 does not register offenses7338 when source is defining initialize7339 behaves like not registering offense7340 does not register offenses7341 when source is using simple or ivar assignment with other ivar7342 behaves like registering offense7343 registers an offense when instance variable is used in a module7344 when source is using or ivar assignment with something else7345 behaves like registering offense7346 registers an offense when instance variable is used in a module7347AnyFieldValidator7348 when validation is instantiated correctly7349 raises an error if no fields are defined7350 validates if only one field is present7351 when validation is missing the fields parameter7352 raises an error7353BulkImports::Groups::Transformers::GroupAttributesTransformer7354 #transform7355 transforms name to destination name7356 removes full path7357 transforms path to parameterized name7358 transforms visibility level7359 transforms project creation level7360 transforms subgroup creation level7361 parent group transformation7362 sets parent id7363 when destination namespace is empty7364 does not set parent id7365PublicUrlValidator7366 #validate7367 with no options7368 allows http,https schemes by default7369 checks that the url structure is valid7370 with schemes7371 allows urls with the defined schemes7372 add error if the url scheme does not match the selected ones7373 by default7374 blocks urls pointing to localhost7375 blocks urls pointing to the local network7376 when local requests are allowed7377 does not block urls pointing to localhost7378 does not block urls pointing to the local network7379Sidebars::Projects::Menus::DeploymentsMenu7380 #render?7381 when menu does not have any menu items7382 returns false7383 when menu has menu items7384 returns true7385 Menu Items7386 Feature Flags7387 behaves like access rights checks7388 is expected not to be nil7389 when the user does not have access7390 is expected to be nil7391 Environments7392 behaves like access rights checks7393 is expected not to be nil7394 when the user does not have access7395 is expected to be nil7396 Releases7397 behaves like access rights checks7398 is expected not to be nil7399 when the user does not have access7400 is expected to be nil7401Gitlab::ProcessMemoryCache::Helper7402 .fetch_memory_cache7403 memoizes the result7404 resets the cache when the shared key is missing7405 .invalidate_memory_cache7406 invalidates the cache7407Projects::ContainerRepository::ThirdParty::DeleteTagsService7408 #execute7409 with tags to delete7410 deletes the tags by name7411 succeeds when tag delete returns 4047412 with failures7413 when the dummy manifest generation fails7414 is expected to eq {:message=>"could not generate manifest", :status=>:error}7415 when updating tags fails7416 all tag updates fail7417 is expected to eq {:message=>"could not delete tags", :status=>:error}7418 a single tag update fails7419 is expected to eq {:deleted=>["A"], :status=>:success}7420 with empty tags7421 does not remove anything7422Gitlab::Metrics::Samplers::ActionCableSampler7423 behaves like metrics sampler7424 when sampling interval is passed explicitly7425 is expected to eq 427426 when sampling interval is passed through the environment7427 is expected to eq 427428 when no sampling interval is passed anywhere7429 uses the hardcoded default7430 #start7431 calls the sample method on the sampler thread7432 with warmup set to true7433 calls the sample method first on the caller thread7434 #safe_sample7435 calls #sample once7436 when sampling fails with error7437 recovers from errors7438 with logger7439 logs errors7440 #sample7441 includes active connections7442 includes minimum worker pool size7443 includes maximum worker pool size7444 includes current worker pool size7445 includes largest worker pool size7446 includes worker pool completed task count7447 includes worker pool pending task count7448Events::DestroyService7449 #execute7450 deletes the events7451 when an error is raised while deleting the records7452 returns error7453 does not delete events7454Gitlab::LanguageDetection7455 #languages7456 returns the language names7457 #insertions7458 only includes new languages7459 #updates7460 updates the share of languages7461 does not include languages to be removed7462 when silent writes occur7463 doesn't include them in the result7464 #deletions7465 lists undetected languages7466TimeHelper7467 #time_interval_in_words7468 returns minutes and seconds7469 #duration_in_numbers7470 duration: 0, formatted_string: "00:00"7471 is expected to eq "00:00"7472 duration: 1 second, formatted_string: "00:01"7473 is expected to eq "00:01"7474 duration: 42 seconds, formatted_string: "00:42"7475 is expected to eq "00:42"7476 duration: 2 minutes and 1 second, formatted_string: "02:01"7477 is expected to eq "02:01"7478 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"7479 is expected to eq "03:02:01"7480 duration: 30 hours, formatted_string: "30:00:00"7481 is expected to eq "30:00:00"7482 #time_in_milliseconds7483 returns the time in milliseconds7484Gitlab::Email::Message::InProductMarketing::TrialShort7485 public methods7486 returns value for series7487 #progress7488 on gitlab.com7489 is expected to eq "This is email 1 of 4 in the Trial series."7490 not on gitlab.com7491 is expected to include "This is email 1 of 4 in the Trial series" and "http://localhost/-/profile/notifications"7492Resolvers::PaginatedTreeResolver7493 is expected to have nullable GraphQL type TreeConnection7494 #resolve7495 resolves to a collection with a tree object7496 with recursive option7497 resolve to a recursive tree7498 with limited max_page_size7499 resolves to a pagination collection with a tree object7500 when repository does not exist7501 returns nil7502 Cursor pagination7503 returns all tree entries during cursor pagination7504 when cursor is invalid7505 is expected to raise Gitlab::Graphql::Errors::ArgumentError7506shared/milestones/_top.html.haml7507 does not render a deprecation message for a non-legacy and non-dashboard milestone7508Gitlab::Metrics::Dashboard::Stages::PanelIdsInserter7509 #transform!7510 when dashboard panels are present7511 assigns unique ids to each panel using PerformanceMonitoring::PrometheusPanel7512 when dashboard panels has duplicated ids7513 no panel has assigned id7514 when there are no panels in the dashboard7515 raises a processing error7516 when there are no panel_groups in the dashboard7517 raises a processing error7518 when dashboard panels has unknown schema attributes7519 no panel has assigned id7520 logs the failure7521Gitlab::Metrics::Sli7522 Class methods7523 .[]7524 warns about an uninitialized SLI but returns and stores a new one7525 returns the same object for multiple accesses7526 .initialized?7527 is true when an SLI was initialized with labels7528 is false when an SLI was not initialized with labels7529 #initialize_counters7530 initializes counters for the passed label combinations7531 #increment7532 increments both counters for labels successes7533 only increments the total counters for labels when not successful7534Types::Packages::PackageTagType7535 is expected to eq "PackageTag"7536 includes all the package tag fields7537Gitlab::RequestEndpoints7538 .all_api_endpoints7539 selects all feature API classes7540 .all_controller_actions7541 selects all feature controllers and action names7542Gitlab::Database::AsyncIndexes7543 .create_pending_indexes!7544 takes 2 pending indexes and creates those7545LooseForeignKeys::ModificationTracker7546 #over_limit?7547 is true when deletion MAX_DELETES is exceeded7548 is false when MAX_DELETES is not exceeded7549 is true when deletion MAX_UPDATES is exceeded7550 is false when MAX_UPDATES is not exceeded7551 is true when max runtime is exceeded7552 is false when max runtime is not exceeded7553 #add_deletions7554 increments a Prometheus counter7555 #add_updates7556 increments a Prometheus counter7557 #stats7558 exposes stats7559Ci::CompareAccessibilityReportsService7560 #execute7561 when head pipeline has accessibility reports7562 returns status and data7563 when base and head pipelines have accessibility reports7564 returns status and data7565ObjectPool::DestroyWorker7566 #perform7567 when no pool is in the database7568 doesn't raise an error7569 when a pool is present7570 requests Gitaly to remove the object pool7571 destroys the pool7572Gitlab::ManifestImport::Manifest7573 #valid?7574 valid file7575 is expected to equal true7576 missing or invalid attributes7577 is expected to equal false7578 errors7579 is expected to include "Make sure a <remote> tag is present and is valid."7580 is expected to include "Make sure every <project> tag has name and path attributes."7581 #projects7582 is expected to eq 6607583 is expected to eq "platform/build"7584 is expected to eq "build/make"7585 is expected to eq "https://android-review.googlesource.com/platform/build"7586AutoMergeProcessWorker7587 #perform7588 when merge request is found7589 executes AutoMergeService7590 when merge request is not found7591 does not execute AutoMergeService7592Milestones::MergeRequestsCountService7593 counts all merge requests7594 behaves like a counter caching service7595 #count7596 caches the count7597 #refresh_cache7598 refreshes the cache7599 #delete_cache7600 removes the cache7601 #uncached_count7602 does not cache the count7603ResetProjectCacheService7604 when project cache_index is nil7605 sets project cache_index to one7606 when project cache_index is a numeric value7607 increments project cache index7608Gitlab::Ci::Pipeline::Expression::Lexeme::Variable7609 .build7610 creates a new instance of the token7611 .type7612 is a value lexeme7613 #evaluate7614 returns variable value if it is defined7615 allows to use a string as a variable key too7616 returns nil if it is not defined7617 returns an empty string if it is empty7618 does not call with_indifferent_access unnecessarily7619BulkImports::Pipeline::ExtractedData7620 #has_next_page?7621 when next page is present7622 returns true7623 when next page is not present7624 returns false7625 #next_page7626 returns next page cursor information7627 #each7628 when block is present7629 yields each data item7630 when block is not present7631 returns enumerator7632Gitlab::Ci::Status::Manual7633 #text7634 is expected to eq "manual"7635 #label7636 is expected to eq "manual action"7637 #icon7638 is expected to eq "status_manual"7639 #favicon7640 is expected to eq "favicon_status_manual"7641 #group7642 is expected to eq "manual"7643RuboCop::Cop::CodeReuse::Worker7644 flags the use of a worker in a controller7645 flags the use of a worker in an API7646 flags the use of a worker in a Finder7647 flags the use of a worker in a Presenter7648 flags the use of a worker in a Serializer7649 flags the use of a worker in a model class method7650BitbucketServer::Paginator7651 #items7652 returns items and raises StopIteration in the end7653 obeys limits7654 does not stop if limit is unspecified7655 calls the connection with different offsets7656PropagateIntegrationInheritDescendantWorker7657 behaves like an idempotent worker7658 is labeled as idempotent7659 performs multiple times sequentially without raising an exception7660 calls to BulkUpdateIntegrationService7661 with an invalid integration id7662 returns without failure7663RuboCop::Cop::Migration::PreventStrings7664 when in migration7665 when the string data type is used7666 registers an offense7667 when the string data type is not used7668 registers no offense7669 when the text data type is used7670 registers no offense7671 when the string data type is used for arrays7672 registers no offense7673 when using down method7674 registers no offense7675 when outside of migration7676 registers no offense7677Tooling::Danger::ProductIntelligence7678 #missing_labels7679 with ci? false7680 is expected to be empty7681 with ci? true7682 is expected to contain exactly "product intelligence" and "product intelligence::review pending"7683 with product intelligence label7684 is expected to contain exactly "product intelligence::review pending"7685 with product intelligence::review pending7686 is expected to be empty7687 with product intelligence::approved7688 is expected to be empty7689 #skip_review7690 with growth experiment label7691 is expected to equal true7692 without growth experiment label7693 is expected to equal false7694Gitlab::UsageDataCounters::RedisCounter7695 .increment7696 when usage_ping is disabled7697 counter is not increased7698 when usage_ping is enabled7699 counter is increased7700 .increment_by7701 when usage_ping is disabled7702 counter is not increased7703 when usage_ping is enabled7704 counter is increased7705notify/push_to_merge_request_email.text.haml7706 behaves like renders plain text email correctly7707 renders the email without HTML links7708Packages::Rubygems::MetadataExtractionService7709 #execute7710 creates the metadata7711 stores the metadata7712Gitlab::Ci::Config::Entry::Release::Assets::Links7713 validation7714 when entry config value is correct7715 #value7716 returns links configuration7717 #valid?7718 is valid7719 when entry value is not correct7720 #errors7721 when value of link is invalid7722 reports error7723 when value of links link is empty7724 reports error7725 when there is an unknown key present7726 reports error7727Projects::ContainerRepository::DestroyService7728 when user does not have access to registry7729 does not delete a repository7730 when user has access to registry7731 when root container repository exists7732 deletes the repository7733 when destroy fails7734 set delete_status7735Types::Ci::PipelineType7736 is expected to eq "Pipeline"7737 is expected to expose permissions using Types::PermissionTypes::Ci::Pipeline7738 contains attributes related to a pipeline7739Gitlab::GithubImport::PageCounter7740 #initialize7741 sets the initial page number to 1 when no value is cached7742 sets the initial page number to the cached value when one is present7743 #set7744 overwrites the page number when the given number is greater than the current number7745 does not overwrite the page number when the given number is lower than the current number7746 #expire!7747 expires the current page counter7748BulkImports::Groups::Stage7749 raises error when initialized without a BulkImport7750 .pipelines7751 list all the pipelines with their stage number, ordered by stage7752 includes project entities pipeline7753 when bulk_import_projects feature flag is disabled7754 does not include project entities pipeline7755Gitlab::StaticSiteEditor::Config::FileConfig::Entry::Mounts7756 validations7757 with a valid config7758 is expected to be valid7759 #value7760 returns mounts configuration7761 with an invalid config7762 is expected not to be valid7763 reports errors about wrong type7764 .default7765 returns default mounts7766Gitlab::ExceptionLogFormatter7767 .format!7768 adds exception data to log7769 when exception is ActiveRecord::StatementInvalid7770 adds the normalized SQL query to payload7771 when the ActiveRecord::StatementInvalid is wrapped in another exception7772 adds the normalized SQL query to payload7773 when the ActiveRecord::StatementInvalid is a bad query7774 adds the query as-is to payload7775Gitlab::Ci::Config::Entry::Tags7776 validation7777 when tags config value is correct7778 #value7779 returns tags configuration7780 #valid?7781 is valid7782 when entry value is not correct7783 #errors7784 when tags config is not an array of strings7785 reports error7786 when tags limit is reached7787 reports error7788Analytics::CycleAnalytics::Stages::ListService7789 returns only the default stages7790 provides the default stages as non-persisted objects7791Gitlab::ImportExport7792 export filename7793 contains the project path7794 contains the namespace path7795 does not go over a certain length7796 #snippet_repo_bundle_filename_for7797 generates the snippet bundle name7798Import metrics on development seed7799 imports all prometheus metrics7800Terraform/Base.latest.gitlab-ci.yml7801 the created pipeline7802 does not create any jobs7803Import::FogbugzProviderRepoEntity7804 behaves like exposes required fields for import entity7805 exposes required fields7806 correctly exposes id7807 correctly exposes full name7808 correctly exposes sanitized name7809 correctly exposes provider link7810Types::Admin::Analytics::UsageTrends::MeasurementIdentifierEnum7811 is expected to eq "MeasurementIdentifier"7812 exposes all the existing identifier values7813OauthAccessGrant7814 #delete7815 cascades to oauth_openid_requests7816Gitlab::Diff::InlineDiff7817 #inline_diffs7818 finds the inline diff7819 when lines have multiple changes7820 finds all inline diffs7821API::Validations::Validators::GitRef7822 valid revision param7823 does not raise a validation error7824 revision param contains invalid chars7825 raises a validation error7826Repositories::ChangelogTagFinder7827 #execute7828 when the regular expression is invalid7829 raises Gitlab::Changelog::Error7830 when there is a previous tag7831 returns the previous tag7832 when there is no previous tag7833 returns nil7834RuboCop::Cop::RSpec::TimecopTravel7835 when calling Timecop.travel7836 registers an offense and corrects7837 when calling a different method on Timecop7838 does not register an offense7839Gitlab::TcpChecker7840 #check7841 can connect to an open port7842 fails to connect to a closed port7843Gitlab::GitAccessDesign7844 #check7845 when the user is allowed to manage designs7846 is expected to be a kind of Gitlab::GitAccessResult::Success7847 when the user is not allowed to manage designs7848 raises an error7849 when the protocol is not web7850 raises an error7851Gitlab::DatabaseImporters::CommonMetrics::PrometheusMetric7852 group enum equals ::PrometheusMetric7853 .group_titles equals ::PrometheusMetric7854Gitlab::GonHelper7855 #push_frontend_feature_flag7856 pushes a feature flag to the frontend7857 #default_avatar_url7858 returns an absolute URL7859Gitlab::Cluster::RackTimeoutObserver7860 #callback7861 when request times out7862 increments counter7863 when request expires7864 increments counter7865 when request is being processed7866 does not increment counter7867Gitlab::GrapeLogging::Formatters::LogrageWithTimestamp7868 turns the log entry to valid JSON7869 re-formats the params hash7870API::Ci::Helpers::Runner7871 #get_runner_details_from_request7872 when no runner info is present7873 returns the runner IP7874 when runner info is present7875 extracts the runner details7876PaginationHelper7877 #paginate_collection7878 paginates a collection without using a COUNT7879 paginates a collection using a COUNT7880BulkImports::GetImportableDataService7881 #execute7882 returns version_validation and a response7883RuboCop::Cop::UserAdmin7884 flags a method call7885 flags a method call with safe operator7886Admin::UserSerializer7887 when there is a single object provided7888 contains important elements for the admin user table7889Emails::ConfirmService7890 #execute7891 enqueues a background job to send confirmation email again7892Ci::Lint::ResultEntity7893 #represent7894 serializes with lint result entity7895Test coverage of the Project Import7896 ensures that all imported/exported relations are present in test JSONs7897TodosDestroyer::ProjectPrivateWorker7898 calls the Todos::Destroy::ProjectPrivateService with the params it was given7899ScheduleMigrateExternalDiffsWorker7900 #perform7901 triggers a scan for diffs to migrate7902 will not run if the lease is already taken7903Gitlab::Usage::Metrics::Instrumentations::UuidMetric7904 behaves like a correct instrumented metric value7905 has correct value7906Types::PermissionTypes::Ci::Runner7907 is expected to have graphql field :delete_runner7908Tooling::Crystalball::CoverageLinesStrategy7909 #after_register7910 starts coverage7911GpgKeySubkey7912 associations7913 is expected to belong to gpg_key required: false7914 validations7915 is expected to validate that :gpg_key_id cannot be empty/falsy7916 is expected to validate that :fingerprint cannot be empty/falsy7917 is expected to validate that :keyid cannot be empty/falsy7918Types::Packages::Composer::MetadatumType7919 includes composer metadatum fields7920Issues::CsvImport7921 associations7922 is expected to belong to project required: true7923 is expected to belong to user required: true7924Environments::AutoStopCronWorker7925 executes Environments::AutoStopService7926DatabaseReflection7927 .reflect7928 returns a Reflection instance7929 memoizes the result7930Types::Ci::JobArtifactFileTypeEnum7931 exposes all job artifact file types7932Ci::PipelineEditorHelper7933 can_view_pipeline_editor?7934 user can view editor if they can collaborate7935 user can not view editor if they cannot collaborate7936 #js_pipeline_editor_data7937 with a project with commits7938 returns pipeline editor data7939 with an empty project7940 returns pipeline editor data7941 with a non-default branch name7942 returns correct values7943Gitlab::Config::Entry::Attributable7944 when config is a hash7945 returns the value of config7946 returns no method error for unknown attributes7947 when config is not a hash7948 returns nil7949 when method is already defined in a superclass7950 raises an error7951Gitlab::PerformanceBar::WithTopLevelWarnings7952 #has_warnings?7953 has_warnings: false, results: {:data=>{}}7954 is expected to eq false7955 has_warnings: false, results: {:data=>{:gitaly=>{:warnings=>[]}}}7956 is expected to eq false7957 has_warnings: true, results: {:data=>{:gitaly=>{:warnings=>[1]}}}7958 is expected to eq true7959 has_warnings: true, results: {:data=>{:gitaly=>{:warnings=>[]}, :redis=>{:warnings=>[1]}}}7960 is expected to eq true7961Integrations::BaseIssueTracker7962 Validations7963 only one issue tracker per project7964 when integration is changed manually by user7965 executes the validation7966 when integration is changed internally7967 does not execute the validation7968Ide::TerminalConfigService7969 #execute7970 content is not valid7971 returns an error7972 terminal not defined7973 returns success7974 terminal enabled7975 returns success7976 custom terminal enabled7977 returns success7978RepositoryCheckQueue7979 sets the queue name of a worker7980 disables retrying of failed jobs7981Knapsack report was generated. Preview:7982{7983 "spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb": 211.1052802590002,7984 "spec/services/merge_requests/push_options_handler_service_spec.rb": 153.47356250700068,7985 "spec/models/clusters/cluster_spec.rb": 89.99949747499886,7986 "spec/models/integrations/jira_spec.rb": 71.75567738300015,7987 "spec/services/groups/destroy_service_spec.rb": 78.05069353399995,7988 "spec/policies/group_policy_spec.rb": 31.85400928299896,7989 "spec/models/integrations/microsoft_teams_spec.rb": 41.33785378399989,7990 "spec/services/packages/debian/generate_distribution_service_spec.rb": 52.783580405000976,7991 "spec/lib/gitlab/email/handler/service_desk_handler_spec.rb": 39.91874129799908,7992 "spec/policies/environment_policy_spec.rb": 44.46077551499911,7993 "spec/helpers/packages_helper_spec.rb": 14.140053099999932,7994 "spec/finders/notes_finder_spec.rb": 36.262833159000365,7995 "spec/services/clusters/applications/create_service_spec.rb": 27.72227366900006,7996 "spec/lib/gitlab/reference_extractor_spec.rb": 21.971768482999323,7997 "spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb": 21.908969595999224,7998 "spec/lib/gitlab/contributions_calendar_spec.rb": 23.140833677000046,7999 "spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb": 24.36762697800077,8000 "spec/graphql/resolvers/todo_resolver_spec.rb": 16.86985318999905,8001 "spec/lib/gitlab/git/wiki_spec.rb": 14.481487054999889,8002 "spec/graphql/resolvers/board_list_issues_resolver_spec.rb": 16.778103505001127,8003 "spec/lib/gitlab/bitbucket_import/importer_spec.rb": 18.03907520499888,8004 "spec/models/active_session_spec.rb": 7.8775104860014835,8005 "spec/services/issue_links/create_service_spec.rb": 15.841922567999063,8006 "spec/models/broadcast_message_spec.rb": 3.5005469230000017,8007 "spec/serializers/merge_request_poll_widget_entity_spec.rb": 11.114124674000777,8008 "spec/models/ci/build_runner_session_spec.rb": 12.786227380000128,8009 "spec/services/projects/container_repository/cleanup_tags_service_spec.rb": 6.1729399529995135,8010 "spec/services/ci/stuck_builds/drop_running_service_spec.rb": 9.339515773999665,8011 "spec/models/key_spec.rb": 5.568642246000309,8012 "spec/models/concerns/deprecated_assignee_spec.rb": 12.8919310149995,8013 "spec/lib/gitlab/search/abuse_detection_spec.rb": 2.4008695840002474,8014 "spec/lib/gitlab/cycle_analytics/permissions_spec.rb": 13.894295297999633,8015 "spec/services/notification_recipients/build_service_spec.rb": 12.787292000000889,8016 "spec/lib/gitlab/redis/rate_limiting_spec.rb": 1.8847506239999348,8017 "spec/lib/gitlab/metrics/dashboard/finder_spec.rb": 7.052828022999165,8018 "spec/services/container_expiration_policies/update_service_spec.rb": 7.172578866000549,8019 "spec/serializers/stage_entity_spec.rb": 10.861889378000342,8020 "spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb": 6.376243001001058,8021 "spec/lib/gitlab/changelog/config_spec.rb": 5.7259365579993755,8022 "spec/models/ci/pending_build_spec.rb": 6.874432312999488,8023 "spec/lib/gitlab/ci/config/entry/bridge_spec.rb": 1.3116652259996044,8024 "spec/workers/remove_expired_group_links_worker_spec.rb": 8.34389937999913,8025 "spec/models/deployment_metrics_spec.rb": 8.455665464000049,8026 "spec/lib/gitlab/ci/pipeline/seed/stage_spec.rb": 8.361578989999543,8027 "spec/serializers/ci/lint/result_serializer_spec.rb": 2.8625925180003833,8028 "spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb": 3.28118783500031,8029 "spec/lib/banzai/filter/emoji_filter_spec.rb": 1.2300134010001784,8030 "spec/helpers/todos_helper_spec.rb": 5.197350918000666,8031 "spec/lib/gitlab/ci/pipeline/chain/validate/external_spec.rb": 3.2187761280001723,8032 "spec/models/alert_management/http_integration_spec.rb": 4.686304705999646,8033 "spec/graphql/resolvers/group_milestones_resolver_spec.rb": 5.8067329629993765,8034 "spec/models/ci/build_trace_chunks/database_spec.rb": 5.516248480000286,8035 "spec/lib/feature/definition_spec.rb": 1.497563065000577,8036 "spec/lib/gitlab/static_site_editor/config/file_config/entry/global_spec.rb": 1.6502622470015922,8037 "spec/models/event_collection_spec.rb": 3.5795266089990037,8038 "spec/services/system_notes/time_tracking_service_spec.rb": 3.940206937999392,8039 "spec/lib/gitlab/chat/output_spec.rb": 5.226452634999077,8040 "spec/presenters/snippet_blob_presenter_spec.rb": 3.3791779200000747,8041 "spec/lib/gitlab/application_context_spec.rb": 3.1089582949989563,8042 "spec/lib/gitlab/metrics/web_transaction_spec.rb": 1.4397330790015985,8043 "spec/services/users/refresh_authorized_projects_service_spec.rb": 5.466899971999737,8044 "spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb": 2.910308005999468,8045 "spec/initializers/direct_upload_support_spec.rb": 0.9292354279987194,8046 "spec/models/wiki_page/slug_spec.rb": 1.9062067130016658,8047 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 5.66337079099867,8048 "spec/lib/gitlab/subscription_portal_spec.rb": 0.7725666160004039,8049 "spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb": 0.6638279829985549,8050 "spec/models/integrations/ewm_spec.rb": 1.5944849500010605,8051 "spec/lib/gitlab/git_access_project_spec.rb": 2.412101163999978,8052 "spec/models/instance_configuration_spec.rb": 1.7042849339995882,8053 "spec/workers/ci/archive_traces_cron_worker_spec.rb": 4.666734477999853,8054 "spec/models/experiment_subject_spec.rb": 0.6840688020001835,8055 "spec/finders/deploy_tokens/tokens_finder_spec.rb": 4.511171336000189,8056 "spec/views/notify/pipeline_failed_email.text.erb_spec.rb": 4.082555470000443,8057 "spec/services/ci/create_pipeline_service/logger_spec.rb": 2.2439393639997434,8058 "spec/lib/json_web_token/hmac_token_spec.rb": 0.6135557249999692,8059 "spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb": 1.5228211039993766,8060 "spec/workers/ci/delete_unit_tests_worker_spec.rb": 4.6363430290002725,8061 "spec/workers/expire_build_instance_artifacts_worker_spec.rb": 4.74805974300034,8062 "spec/lib/gitlab/ci/build/policy/changes_spec.rb": 2.4772772199994506,8063 "spec/lib/gitlab/untrusted_regexp_spec.rb": 0.8580180919998384,8064 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 3.3470334820012795,8065 "spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb": 0.7763583760006441,8066 "spec/views/projects/merge_requests/edit.html.haml_spec.rb": 3.792912405999232,8067 "spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb": 2.399290755000038,8068 "spec/models/packages/debian/project_component_spec.rb": 1.3220891860000847,8069 "spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb": 0.5864883270005521,8070 "spec/models/tree_spec.rb": 3.4740253140007553,8071 "spec/services/dependency_proxy/download_blob_service_spec.rb": 1.3497769739988144,8072 "spec/lib/gitlab/ci/config/entry/commands_spec.rb": 0.5525435390009079,8073 "spec/lib/gitlab/ci/status/build/scheduled_spec.rb": 5.363532099001532,8074 "spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb": 1.2778987490000873,8075 "spec/lib/gitlab/bare_repository_import/repository_spec.rb": 1.1627169439998397,8076 "spec/lib/gitlab/ci/config/entry/artifacts_spec.rb": 1.0645874699985143,8077 "spec/services/personal_access_tokens/revoke_service_spec.rb": 0.9200908379989414,8078 "spec/serializers/stage_serializer_spec.rb": 3.4022275090010226,8079 "spec/services/prometheus/create_default_alerts_service_spec.rb": 4.060776480999266,8080 "spec/lib/gitlab/database/loose_index_scan_distinct_count_spec.rb": 2.6346637120004743,8081 "spec/lib/gitlab/database/gitlab_schema_spec.rb": 0.7826238659999945,8082 "spec/services/users/update_canonical_email_service_spec.rb": 1.010706762999689,8083 "spec/lib/gitlab/ci/config/entry/prefix_spec.rb": 1.2743263379998098,8084 "spec/validators/array_members_validator_spec.rb": 0.5087277210004686,8085 "spec/validators/qualified_domain_array_validator_spec.rb": 0.7318096390008577,8086 "spec/finders/clusters_finder_spec.rb": 3.75045018900164,8087 "spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb": 1.1853576129997236,8088 "spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb": 3.83626099400135,8089 "spec/lib/gitlab/import_export/shared_spec.rb": 2.4258391929997742,8090 "spec/rubocop/cop/graphql/resolver_type_spec.rb": 0.4995127420006611,8091 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb": 1.2738021579989436,8092 "spec/lib/safe_zip/extract_params_spec.rb": 0.5975471670008119,8093 "spec/services/users/dismiss_group_callout_service_spec.rb": 0.6041534059986589,8094 "spec/lib/banzai/filter/wiki_link_filter_spec.rb": 1.2004733719986689,8095 "spec/services/clusters/aws/provision_service_spec.rb": 2.16423229800057,8096 "spec/workers/clusters/applications/activate_service_worker_spec.rb": 2.684707239001,8097 "spec/serializers/deployment_serializer_spec.rb": 1.8637091649998183,8098 "spec/rubocop/cop/migration/timestamps_spec.rb": 0.2875190040012967,8099 "spec/rubocop/cop/put_group_routes_under_scope_spec.rb": 0.7194616100005078,8100 "spec/graphql/types/base_argument_spec.rb": 0.6814055020004162,8101 "spec/lib/api/entities/project_spec.rb": 3.404736958000285,8102 "spec/models/legacy_diff_discussion_spec.rb": 2.5238177579994954,8103 "spec/lib/gitlab/ci/status/processable/waiting_for_resource_spec.rb": 2.0856176930010406,8104 "spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb": 1.6703016749997914,8105 "spec/graphql/mutations/customer_relations/contacts/create_spec.rb": 1.4760137969988136,8106 "spec/lib/gitlab/graphql/markdown_field_spec.rb": 1.6761719259993697,8107 "spec/lib/gitlab/auth/ip_rate_limiter_spec.rb": 0.6653531529991596,8108 "spec/services/ci/after_requeue_job_service_spec.rb": 2.2650134619998425,8109 "spec/graphql/mutations/clusters/agents/delete_spec.rb": 2.108026071000495,8110 "spec/services/ci/build_cancel_service_spec.rb": 1.2023104619984224,8111 "spec/lib/gitlab/import_export/lfs_saver_spec.rb": 2.3795923460002086,8112 "spec/finders/users_star_projects_finder_spec.rb": 2.3506333170007565,8113 "spec/lib/gitlab/sidekiq_signals_spec.rb": 0.39496527799929027,8114 "spec/services/projects/enable_deploy_key_service_spec.rb": 2.1402807800004666,8115 "spec/lib/gitlab/prometheus/metric_group_spec.rb": 2.6792406999993545,8116 "spec/models/ci/build_need_spec.rb": 1.3723329129988997,8117 "spec/finders/milestones_finder_spec.rb": 1.46749687800002,8118 "spec/lib/gitlab/diff/formatters/text_formatter_spec.rb": 0.9337412570002925,8119 "spec/lib/feature/gitaly_spec.rb": 1.3162500960006582,8120 "spec/lib/gitlab/terraform_registry_token_spec.rb": 1.0914250679998077,8121 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 0.6771907420006755,8122 "spec/initializers/trusted_proxies_spec.rb": 0.47889045299962163,8123 "spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb": 0.8262361140004941,8124 "spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb": 0.37823595900044893,8125 "spec/lib/gitlab/import_export/uploads_saver_spec.rb": 2.453985352000018,8126 "spec/lib/gitlab/import_export/json/ndjson_writer_spec.rb": 0.2973346729995683,8127 "spec/lib/gitlab/diff/pair_selector_spec.rb": 0.6925112409990106,8128 "spec/lib/system_check/orphans/repository_check_spec.rb": 1.3972328520012525,8129 "spec/graphql/resolvers/user_resolver_spec.rb": 0.4383102150004561,8130 "spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.39067186800093623,8131 "spec/lib/api/entities/package_spec.rb": 1.6871824949994334,8132 "spec/lib/api/validations/validators/git_sha_spec.rb": 0.26866703500127187,8133 "spec/workers/update_external_pull_requests_worker_spec.rb": 0.5881359769991832,8134 "spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb": 0.5589261280001665,8135 "spec/validators/any_field_validator_spec.rb": 0.3265843919998588,8136 "spec/lib/bulk_imports/groups/transformers/group_attributes_transformer_spec.rb": 0.9530983959994046,8137 "spec/validators/public_url_validator_spec.rb": 1.311746855999445,8138 "spec/lib/sidebars/projects/menus/deployments_menu_spec.rb": 1.1186190669995995,8139 "spec/lib/gitlab/process_memory_cache/helper_spec.rb": 0.28429944399977103,8140 "spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb": 0.9396672669990949,8141 "spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb": 1.1145155869999144,8142 "spec/services/events/destroy_service_spec.rb": 1.3604291339997872,8143 "spec/lib/gitlab/language_detection_spec.rb": 0.7108322700005374,8144 "spec/helpers/time_helper_spec.rb": 0.7107879099985439,8145 "spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb": 0.2765479250010685,8146 "spec/graphql/resolvers/paginated_tree_resolver_spec.rb": 0.9521127959997102,8147 "spec/views/shared/milestones/_top.html.haml_spec.rb": 0.7887816960010241,8148 "spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb": 0.8149384739990637,8149 "spec/lib/gitlab/metrics/sli_spec.rb": 0.6747302420008054,8150 "spec/graphql/types/packages/tag_type_spec.rb": 0.4192799760003254,8151 "spec/lib/gitlab/request_endpoints_spec.rb": 1.8471634159996029,8152 "spec/lib/gitlab/database/async_indexes_spec.rb": 0.15451925199886318,8153 "spec/models/loose_foreign_keys/modification_tracker_spec.rb": 0.7807015960006538,8154 "spec/services/ci/compare_accessibility_reports_service_spec.rb": 1.2855043669987936,8155 "spec/workers/object_pool/destroy_worker_spec.rb": 1.5713911820002977,8156 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 0.6957228499995836,8157 "spec/workers/auto_merge_process_worker_spec.rb": 0.8931025900001259,8158 "spec/services/milestones/merge_requests_count_service_spec.rb": 1.1989776130012615,8159 "spec/services/reset_project_cache_service_spec.rb": 1.254591058999722,8160 "spec/lib/gitlab/ci/pipeline/expression/lexeme/variable_spec.rb": 0.8593530720008857,8161 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 0.3638540299998567,8162 "spec/lib/gitlab/ci/status/manual_spec.rb": 0.4778624030004721,8163 "spec/rubocop/cop/code_reuse/worker_spec.rb": 0.425957675999598,8164 "spec/lib/bitbucket_server/paginator_spec.rb": 0.47447618400110514,8165 "spec/workers/propagate_integration_inherit_descendant_worker_spec.rb": 0.9449931559993274,8166 "spec/rubocop/cop/migration/prevent_strings_spec.rb": 0.4679745939993154,8167 "spec/tooling/danger/product_intelligence_spec.rb": 0.6264642249989265,8168 "spec/lib/gitlab/usage_data_counters/redis_counter_spec.rb": 0.21836034799889603,8169 "spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 1.2733591590003925,8170 "spec/services/packages/rubygems/metadata_extraction_service_spec.rb": 0.8054045850003604,8171 "spec/lib/gitlab/ci/config/entry/release/assets/links_spec.rb": 0.19603471900154545,8172 "spec/services/projects/container_repository/destroy_service_spec.rb": 1.0084584429987444,8173 "spec/graphql/types/ci/pipeline_type_spec.rb": 0.1850421400013147,8174 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.26850648499930685,8175 "spec/lib/bulk_imports/groups/stage_spec.rb": 0.2336488860000827,8176 "spec/lib/gitlab/static_site_editor/config/file_config/entry/mounts_spec.rb": 0.2761985149991233,8177 "spec/lib/gitlab/exception_log_formatter_spec.rb": 0.14925363099973765,8178 "spec/lib/gitlab/ci/config/entry/tags_spec.rb": 0.16080703099942184,8179 "spec/services/analytics/cycle_analytics/stages/list_service_spec.rb": 0.5829141470003378,8180 "spec/lib/gitlab/import_export/import_export_spec.rb": 0.2216462579999643,8181 "spec/db/development/import_common_metrics_spec.rb": 0.3590725200010638,8182 "spec/lib/gitlab/ci/templates/Terraform/base_latest_gitlab_ci_yaml_spec.rb": 0.9154112579999492,8183 "spec/serializers/import/fogbugz_provider_repo_entity_spec.rb": 0.15577527100140287,8184 "spec/graphql/types/admin/analytics/usage_trends/measurement_identifier_enum_spec.rb": 0.1491174820002925,8185 "spec/models/oauth_access_grant_spec.rb": 0.41098392700041586,8186 "spec/lib/gitlab/diff/inline_diff_spec.rb": 0.16659121999873605,8187 "spec/lib/api/validations/validators/git_ref_spec.rb": 0.22015816800012544,8188 "spec/finders/repositories/changelog_tag_finder_spec.rb": 0.40920563700092316,8189 "spec/rubocop/cop/rspec/timecop_travel_spec.rb": 0.19646884899884753,8190 "spec/lib/gitlab/tcp_checker_spec.rb": 0.14519264100090368,8191 "spec/lib/gitlab/git_access_design_spec.rb": 0.6243951350006682,8192 "spec/lib/gitlab/database_importers/common_metrics/prometheus_metric_spec.rb": 0.19270440000036615,8193 "spec/lib/gitlab/gon_helper_spec.rb": 0.1563060400003451,8194 "spec/lib/gitlab/cluster/rack_timeout_observer_spec.rb": 0.13715872300053888,8195 "spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb": 0.14668797199919936,8196 "spec/lib/api/ci/helpers/runner_helpers_spec.rb": 0.1787424590002047,8197 "spec/helpers/pagination_helper_spec.rb": 0.26160480600083247,8198 "spec/services/bulk_imports/get_importable_data_service_spec.rb": 0.1947703489986452,8199 "spec/rubocop/cop/user_admin_spec.rb": 0.12935009300053935,8200 "spec/serializers/admin/user_serializer_spec.rb": 0.20023705899984634,8201 "spec/services/emails/confirm_service_spec.rb": 0.2672058750013093,8202 "spec/serializers/ci/lint/result_entity_spec.rb": 0.12884127300094406,8203 "spec/lib/gitlab/import_export/import_test_coverage_spec.rb": 0.29528912299974763,8204 "spec/workers/todos_destroyer/project_private_worker_spec.rb": 0.09281181500045932,8205 "spec/workers/schedule_migrate_external_diffs_worker_spec.rb": 0.0987173140001687,8206 "spec/lib/gitlab/usage/metrics/instrumentations/uuid_metric_spec.rb": 0.2980388129999483,8207 "spec/graphql/types/permission_types/ci/runner_spec.rb": 0.15914358199916023,8208 "spec/tooling/lib/tooling/crystalball/coverage_lines_strategy_spec.rb": 0.1018124540005374,8209 "spec/models/gpg_key_subkey_spec.rb": 0.321138522000183,8210 "spec/graphql/types/packages/composer/metadatum_type_spec.rb": 0.18149716900006752,8211 "spec/models/issues/csv_import_spec.rb": 0.22427174800031935,8212 "spec/workers/environments/auto_stop_cron_worker_spec.rb": 0.16825004000020272,8213 "spec/models/concerns/database_reflection_spec.rb": 0.13046364300134883,8214 "spec/graphql/types/ci/job_artifact_file_type_enum_spec.rb": 0.13240060199859727,8215 "spec/helpers/ci/pipeline_editor_helper_spec.rb": 2.3629936369998177,8216 "spec/lib/gitlab/config/entry/attributable_spec.rb": 0.2535158959999535,8217 "spec/lib/gitlab/performance_bar/with_top_level_warnings_spec.rb": 0.33671299100024044,8218 "spec/models/integrations/base_issue_tracker_spec.rb": 1.761262711001109,8219 "spec/services/ide/terminal_config_service_spec.rb": 1.1394091059992206,8220 "spec/workers/concerns/repository_check_queue_spec.rb": 0.14973516099962588221}8222Knapsack global time execution for tests: 25m 06s8223Pending: (Failures listed here are expected and do not affect your suite's status)8224 1) Gitlab::Git::Wiki#preview_slug title: "", format: :markdown, expected_slug: ".md" matches the slug generated by gitaly8225 # Gitaly cannot generate a slug for an empty title8226 # ./spec/lib/gitlab/git/wiki_spec.rb:858227 2) Gitlab::Git::Wiki#preview_slug title: "", format: :md, expected_slug: ".md" matches the slug generated by gitaly8228 # Gitaly cannot generate a slug for an empty title8229 # ./spec/lib/gitlab/git/wiki_spec.rb:858230 3) Gitlab::Git::Wiki#preview_slug title: "", format: :txt, expected_slug: ".txt" matches the slug generated by gitaly8231 # Gitaly cannot generate a slug for an empty title8232 # ./spec/lib/gitlab/git/wiki_spec.rb:858233Finished in 25 minutes 9 seconds (files took 47.29 seconds to load)82343533 examples, 0 failures, 3 pending8235Mon Dec 20 17:18:30 UTC 20218237Not uploading cache ruby-gems-v1-9 due to policy8238Not uploading cache gitaly-ruby-gems-v1-9 due to policy8240Uploading artifacts...8241coverage/: found 5 matching files and directories 8242crystalball/: found 2 matching files and directories 8243WARNING: deprecations/: no matching files 8244knapsack/: found 3 matching files and directories 8245rspec_flaky/: found 5 matching files and directories 8246rspec_profiling/: found 1 matching files and directories 8247WARNING: tmp/capybara/: no matching files 8248tmp/memory_test/: found 2 matching files and directories 8249log/*.log: found 16 matching files and directories 8250Uploading artifacts as "archive" to coordinator... ok id=1904366612 responseStatus=201 Created token=xANCFE3p8251Uploading artifacts...8252junit_rspec.xml: found 1 matching files and directories 8253Uploading artifacts as "junit" to coordinator... ok id=1904366612 responseStatus=201 Created token=xANCFE3p8255Job succeeded