rspec unit pg12 19/22
Passed Started
by
@sselhorn

Suzanne Selhorn
1Running with gitlab-runner 14.6.0~beta.71.gf035ecbf (f035ecbf)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images: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-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1640008864-a707ce1c...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 | 27.93 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 2 seconds.72$ bundle pristine pg73Installing pg 1.2.3 with native extensions74==> 'bundle pristine pg' succeeded in 9 seconds.75$ setup_db_user_only76CREATE ROLE77GRANT78==> 'setup_db_user_only' succeeded in 1 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 37 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 1 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/auth/container_registry_authentication_service_spec.rb215spec/services/merge_requests/refresh_service_spec.rb216spec/services/git/branch_push_service_spec.rb217spec/services/ci/unlock_artifacts_service_spec.rb218spec/lib/gitlab/import_export/group/tree_restorer_spec.rb219spec/models/concerns/resolvable_discussion_spec.rb220spec/tasks/gitlab/workhorse_rake_spec.rb221spec/lib/gitlab/import_export/attributes_permitter_spec.rb222spec/finders/labels_finder_spec.rb223spec/services/merge_requests/merge_service_spec.rb224spec/models/clusters/applications/cilium_spec.rb225spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb226spec/lib/gitlab/pagination/offset_pagination_spec.rb227spec/models/concerns/resolvable_note_spec.rb228spec/models/ci/ref_spec.rb229spec/lib/banzai/filter/references/commit_reference_filter_spec.rb230spec/services/projects/lfs_pointers/lfs_download_service_spec.rb231spec/models/integrations/jenkins_spec.rb232spec/lib/error_tracking/sentry_client/issue_spec.rb233spec/services/members/approve_access_request_service_spec.rb234spec/lib/gitlab/data_builder/push_spec.rb235spec/models/notification_recipient_spec.rb236spec/lib/banzai/filter/syntax_highlight_filter_spec.rb237spec/helpers/emails_helper_spec.rb238spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb239spec/models/blob_spec.rb240spec/finders/events_finder_spec.rb241spec/lib/gitlab/ci/variables/collection_spec.rb242spec/models/releases/link_spec.rb243spec/services/clusters/create_service_spec.rb244spec/helpers/tree_helper_spec.rb245spec/graphql/resolvers/timelog_resolver_spec.rb246spec/services/lfs/file_transformer_spec.rb247spec/services/metrics/dashboard/annotations/create_service_spec.rb248spec/helpers/avatars_helper_spec.rb249spec/lib/gitlab/ci/config/entry/need_spec.rb250spec/models/integrations/datadog_spec.rb251spec/workers/packages/go/sync_packages_worker_spec.rb252spec/services/merge_requests/remove_attention_requested_service_spec.rb253spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb254spec/presenters/group_clusterable_presenter_spec.rb255spec/services/packages/npm/create_tag_service_spec.rb256spec/policies/ci/pipeline_policy_spec.rb257spec/services/deployments/link_merge_requests_service_spec.rb258spec/services/quick_actions/target_service_spec.rb259spec/models/diff_viewer/base_spec.rb260spec/presenters/project_clusterable_presenter_spec.rb261spec/lib/gitlab/redis/shared_state_spec.rb262spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb263spec/lib/banzai/filter/video_link_filter_spec.rb264spec/services/clusters/gcp/verify_provision_status_service_spec.rb265spec/lib/gitlab/auth/ldap/access_spec.rb266spec/lib/gitlab/diff/diff_refs_spec.rb267spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb268spec/uploaders/file_mover_spec.rb269spec/serializers/note_entity_spec.rb270spec/presenters/packages/conan/package_presenter_spec.rb271spec/services/deployments/older_deployments_drop_service_spec.rb272spec/lib/expand_variables_spec.rb273spec/lib/gitlab/git/cross_repo_comparer_spec.rb274spec/graphql/resolvers/concerns/resolves_pipelines_spec.rb275spec/graphql/types/merge_request_type_spec.rb276spec/services/groups/update_shared_runners_service_spec.rb277spec/helpers/page_layout_helper_spec.rb278spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb279spec/lib/system_check/simple_executor_spec.rb280spec/services/users/authorized_build_service_spec.rb281spec/finders/packages/tags_finder_spec.rb282spec/lib/gitlab/highlight_spec.rb283spec/lib/banzai/object_renderer_spec.rb284spec/models/merge_request/metrics_spec.rb285spec/lib/gitlab/static_site_editor/config/generated_config_spec.rb286spec/models/hooks/active_hook_filter_spec.rb287spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb288spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb289spec/presenters/ci/legacy_stage_presenter_spec.rb290spec/lib/gitlab/ci/reports/security/scanner_spec.rb291spec/services/merge_requests/add_spent_time_service_spec.rb292spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb293spec/models/service_desk_setting_spec.rb294spec/services/clusters/applications/schedule_update_service_spec.rb295spec/lib/error_tracking/sentry_client/issue_link_spec.rb296spec/workers/pipeline_metrics_worker_spec.rb297spec/serializers/ci/job_serializer_spec.rb298spec/models/bulk_imports/file_transfer/project_config_spec.rb299spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb300spec/models/group_label_spec.rb301spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb302spec/lib/gitlab/ci/config/entry/key_spec.rb303spec/finders/packages/go/module_finder_spec.rb304spec/finders/prometheus_metrics_finder_spec.rb305spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb306spec/models/concerns/ignorable_columns_spec.rb307spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb308spec/services/dependency_proxy/request_token_service_spec.rb309spec/models/concerns/manual_inverse_association_spec.rb310spec/tasks/gitlab/container_registry_rake_spec.rb311spec/lib/sidebars/projects/menus/shimo_menu_spec.rb312spec/rubocop/cop/performance/ar_exists_and_present_blank_spec.rb313spec/finders/user_finder_spec.rb314spec/services/dependency_proxy/head_manifest_service_spec.rb315spec/models/deployment_cluster_spec.rb316spec/lib/banzai/reference_parser/design_parser_spec.rb317spec/policies/clusters/agents/activity_event_policy_spec.rb318spec/graphql/mutations/merge_requests/set_subscription_spec.rb319spec/lib/gitlab/ci/config/extendable_spec.rb320spec/models/integrations/zentao_spec.rb321spec/lib/gitlab/api_authentication/token_locator_spec.rb322spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb323spec/services/ci/create_pipeline_service/include_spec.rb324spec/serializers/ci/dag_job_group_entity_spec.rb325spec/models/concerns/cron_schedulable_spec.rb326spec/finders/issues_finder/params_spec.rb327spec/lib/gitlab/search/query_spec.rb328spec/services/tags/destroy_service_spec.rb329spec/views/projects/diffs/_viewer.html.haml_spec.rb330spec/services/dependency_proxy/find_cached_manifest_service_spec.rb331spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb332spec/workers/hashed_storage/rollbacker_worker_spec.rb333spec/workers/ci/delete_objects_worker_spec.rb334spec/lib/bulk_imports/users_mapper_spec.rb335spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb336spec/lib/gitlab/github_import/label_finder_spec.rb337spec/lib/gitlab/sidekiq_logging/deduplication_logger_spec.rb338spec/helpers/projects/terraform_helper_spec.rb339spec/services/projects/fetch_statistics_increment_service_spec.rb340spec/services/ci/compare_test_reports_service_spec.rb341spec/initializers/net_http_patch_spec.rb342spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb343spec/lib/error_tracking/sentry_client/pagination_parser_spec.rb344spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb345spec/services/chat_names/authorize_user_service_spec.rb346spec/workers/issue_due_scheduler_worker_spec.rb347spec/models/concerns/limitable_spec.rb348spec/services/update_container_registry_info_service_spec.rb349spec/routing/environments_spec.rb350spec/finders/ci/job_artifacts_finder_spec.rb351spec/serializers/feature_flag_serializer_spec.rb352spec/finders/bulk_imports/imports_finder_spec.rb353spec/services/users/registrations_build_service_spec.rb354spec/lib/gitlab/utils/deep_size_spec.rb355spec/graphql/types/snippets/blob_viewer_type_spec.rb356spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb357spec/lib/gitlab/database/shared_model_spec.rb358spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb359spec/serializers/import/githubish_provider_repo_entity_spec.rb360spec/models/webauthn_registration_spec.rb361spec/graphql/types/prometheus_alert_type_spec.rb362spec/rubocop/cop/gitlab/namespaced_class_spec.rb363spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb364spec/lib/api/every_api_endpoint_spec.rb365spec/helpers/dashboard_helper_spec.rb366spec/policies/application_setting/term_policy_spec.rb367spec/views/projects/settings/operations/show.html.haml_spec.rb368spec/lib/gitlab/sidekiq_config/cli_methods_spec.rb369spec/policies/resource_label_event_policy_spec.rb370spec/workers/personal_access_tokens/expiring_worker_spec.rb371spec/workers/update_container_registry_info_worker_spec.rb372spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb373spec/workers/snippets/update_repository_storage_worker_spec.rb374spec/channels/application_cable/connection_spec.rb375spec/graphql/types/label_type_spec.rb376spec/lib/gitlab/email/smime/signer_spec.rb377spec/services/discussions/unresolve_service_spec.rb378spec/initializers/validate_database_config_spec.rb379spec/serializers/admin/user_entity_spec.rb380spec/graphql/mutations/branches/create_spec.rb381spec/serializers/linked_project_issue_entity_spec.rb382spec/lib/bitbucket/representation/pull_request_comment_spec.rb383spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb384spec/services/packages/remove_tag_service_spec.rb385spec/models/acts_as_taggable_on/tag_spec.rb386spec/lib/gitlab/usage_data_counters/search_counter_spec.rb387spec/models/bulk_imports/export_status_spec.rb388spec/validators/project_path_validator_spec.rb389spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb390spec/models/integrations/pivotaltracker_spec.rb391spec/lib/gitlab/auth/saml/auth_hash_spec.rb392spec/lib/gitlab/ci/status/preparing_spec.rb393spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb394spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb395spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb396spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb397spec/models/analytics/cycle_analytics/project_value_stream_spec.rb398spec/models/user_highest_role_spec.rb399spec/services/users/validate_otp_service_spec.rb400spec/graphql/resolvers/ci/test_suite_resolver_spec.rb401spec/rubocop/cop/migration/update_column_in_batches_spec.rb402spec/presenters/dev_ops_report/metric_presenter_spec.rb403spec/lib/gitlab/kubernetes/rollout_instances_spec.rb404spec/lib/api/helpers/version_spec.rb405spec/lib/gitlab/database/migrations/lock_retry_mixin_spec.rb406spec/lib/gitlab/cycle_analytics/summary/value_spec.rb407spec/lib/banzai/filter/image_lazy_load_filter_spec.rb408spec/services/product_analytics/build_graph_service_spec.rb409spec/graphql/types/project_invitation_type_spec.rb410spec/lib/gitlab/session_spec.rb411spec/serializers/ci/downloadable_artifact_serializer_spec.rb412spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb413spec/serializers/blob_entity_spec.rb414spec/lib/sidebars/menu_item_spec.rb415spec/lib/gitlab/middleware/compressed_json_spec.rb416spec/views/projects/runners/_specific_runners.html.haml_spec.rb417spec/views/layouts/_published_experiments.html.haml_spec.rb418spec/lib/gitlab/ci/yaml_processor/dag_spec.rb419spec/rubocop/cop/ban_catch_throw_spec.rb420spec/models/performance_monitoring/prometheus_panel_spec.rb421spec/lib/api/entities/changelog_spec.rb422spec/config/smime_signature_settings_spec.rb423spec/models/issuable_severity_spec.rb424spec/helpers/subscribable_banner_helper_spec.rb425spec/graphql/types/user_status_type_spec.rb426spec/lib/api/entities/group_detail_spec.rb427spec/graphql/types/issue_type_enum_spec.rb428spec/graphql/types/group_member_relation_enum_spec.rb429spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb430spec/helpers/explore_helper_spec.rb431spec/serializers/namespace_basic_entity_spec.rb432spec/graphql/types/custom_emoji_type_spec.rb433spec/graphql/types/alert_management/http_integration_type_spec.rb434spec/rubocop/cop/database/multiple_databases_spec.rb435spec/rubocop/cop/gitlab/except_spec.rb436spec/models/project_setting_spec.rb437spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb438spec/lib/gitlab/auth/saml/origin_validator_spec.rb439spec/graphql/types/packages/package_type_spec.rb440spec/models/integrations/issue_tracker_data_spec.rb441spec/graphql/types/container_repository_status_enum_spec.rb442spec/lib/api/entities/nuget/search_result_spec.rb443spec/lib/banzai/pipeline/emoji_pipeline_spec.rb444spec/graphql/types/alert_management/severity_enum_spec.rb445spec/graphql/types/ci/config/config_type_spec.rb446spec/services/ci/change_variables_service_spec.rb447spec/graphql/types/tree/blob_type_spec.rb448spec/helpers/branches_helper_spec.rb449spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb450spec/lib/gitlab/otp_key_rotator_spec.rb451spec/models/concerns/x509_serial_number_attribute_spec.rb452spec/services/ide/schemas_config_service_spec.rb453spec/workers/concerns/limited_capacity/job_tracker_spec.rb454Filter specs:455Running specs:456Running all node tests without filter457spec/services/auth/container_registry_authentication_service_spec.rb458spec/services/merge_requests/refresh_service_spec.rb459spec/services/git/branch_push_service_spec.rb460spec/services/ci/unlock_artifacts_service_spec.rb461spec/lib/gitlab/import_export/group/tree_restorer_spec.rb462spec/models/concerns/resolvable_discussion_spec.rb463spec/tasks/gitlab/workhorse_rake_spec.rb464spec/lib/gitlab/import_export/attributes_permitter_spec.rb465spec/finders/labels_finder_spec.rb466spec/services/merge_requests/merge_service_spec.rb467spec/models/clusters/applications/cilium_spec.rb468spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb469spec/lib/gitlab/pagination/offset_pagination_spec.rb470spec/models/concerns/resolvable_note_spec.rb471spec/models/ci/ref_spec.rb472spec/lib/banzai/filter/references/commit_reference_filter_spec.rb473spec/services/projects/lfs_pointers/lfs_download_service_spec.rb474spec/models/integrations/jenkins_spec.rb475spec/lib/error_tracking/sentry_client/issue_spec.rb476spec/services/members/approve_access_request_service_spec.rb477spec/lib/gitlab/data_builder/push_spec.rb478spec/models/notification_recipient_spec.rb479spec/lib/banzai/filter/syntax_highlight_filter_spec.rb480spec/helpers/emails_helper_spec.rb481spec/lib/gitlab/background_migration/delete_orphaned_deployments_spec.rb482spec/models/blob_spec.rb483spec/finders/events_finder_spec.rb484spec/lib/gitlab/ci/variables/collection_spec.rb485spec/models/releases/link_spec.rb486spec/services/clusters/create_service_spec.rb487spec/helpers/tree_helper_spec.rb488spec/graphql/resolvers/timelog_resolver_spec.rb489spec/services/lfs/file_transformer_spec.rb490spec/services/metrics/dashboard/annotations/create_service_spec.rb491spec/helpers/avatars_helper_spec.rb492spec/lib/gitlab/ci/config/entry/need_spec.rb493spec/models/integrations/datadog_spec.rb494spec/workers/packages/go/sync_packages_worker_spec.rb495spec/services/merge_requests/remove_attention_requested_service_spec.rb496spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb497spec/presenters/group_clusterable_presenter_spec.rb498spec/services/packages/npm/create_tag_service_spec.rb499spec/policies/ci/pipeline_policy_spec.rb500spec/services/deployments/link_merge_requests_service_spec.rb501spec/services/quick_actions/target_service_spec.rb502spec/models/diff_viewer/base_spec.rb503spec/presenters/project_clusterable_presenter_spec.rb504spec/lib/gitlab/redis/shared_state_spec.rb505spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb506spec/lib/banzai/filter/video_link_filter_spec.rb507spec/services/clusters/gcp/verify_provision_status_service_spec.rb508spec/lib/gitlab/auth/ldap/access_spec.rb509spec/lib/gitlab/diff/diff_refs_spec.rb510spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb511spec/uploaders/file_mover_spec.rb512spec/serializers/note_entity_spec.rb513spec/presenters/packages/conan/package_presenter_spec.rb514spec/services/deployments/older_deployments_drop_service_spec.rb515spec/lib/expand_variables_spec.rb516spec/lib/gitlab/git/cross_repo_comparer_spec.rb517spec/graphql/resolvers/concerns/resolves_pipelines_spec.rb518spec/graphql/types/merge_request_type_spec.rb519spec/services/groups/update_shared_runners_service_spec.rb520spec/helpers/page_layout_helper_spec.rb521spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb522spec/lib/system_check/simple_executor_spec.rb523spec/services/users/authorized_build_service_spec.rb524spec/finders/packages/tags_finder_spec.rb525spec/lib/gitlab/highlight_spec.rb526spec/lib/banzai/object_renderer_spec.rb527spec/models/merge_request/metrics_spec.rb528spec/lib/gitlab/static_site_editor/config/generated_config_spec.rb529spec/models/hooks/active_hook_filter_spec.rb530spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb531spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb532spec/presenters/ci/legacy_stage_presenter_spec.rb533spec/lib/gitlab/ci/reports/security/scanner_spec.rb534spec/services/merge_requests/add_spent_time_service_spec.rb535spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb536spec/models/service_desk_setting_spec.rb537spec/services/clusters/applications/schedule_update_service_spec.rb538spec/lib/error_tracking/sentry_client/issue_link_spec.rb539spec/workers/pipeline_metrics_worker_spec.rb540spec/serializers/ci/job_serializer_spec.rb541spec/models/bulk_imports/file_transfer/project_config_spec.rb542spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb543spec/models/group_label_spec.rb544spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb545spec/lib/gitlab/ci/config/entry/key_spec.rb546spec/finders/packages/go/module_finder_spec.rb547spec/finders/prometheus_metrics_finder_spec.rb548spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb549spec/models/concerns/ignorable_columns_spec.rb550spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb551spec/services/dependency_proxy/request_token_service_spec.rb552spec/models/concerns/manual_inverse_association_spec.rb553spec/tasks/gitlab/container_registry_rake_spec.rb554spec/lib/sidebars/projects/menus/shimo_menu_spec.rb555spec/rubocop/cop/performance/ar_exists_and_present_blank_spec.rb556spec/finders/user_finder_spec.rb557spec/services/dependency_proxy/head_manifest_service_spec.rb558spec/models/deployment_cluster_spec.rb559spec/lib/banzai/reference_parser/design_parser_spec.rb560spec/policies/clusters/agents/activity_event_policy_spec.rb561spec/graphql/mutations/merge_requests/set_subscription_spec.rb562spec/lib/gitlab/ci/config/extendable_spec.rb563spec/models/integrations/zentao_spec.rb564spec/lib/gitlab/api_authentication/token_locator_spec.rb565spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb566spec/services/ci/create_pipeline_service/include_spec.rb567spec/serializers/ci/dag_job_group_entity_spec.rb568spec/models/concerns/cron_schedulable_spec.rb569spec/finders/issues_finder/params_spec.rb570spec/lib/gitlab/search/query_spec.rb571spec/services/tags/destroy_service_spec.rb572spec/views/projects/diffs/_viewer.html.haml_spec.rb573spec/services/dependency_proxy/find_cached_manifest_service_spec.rb574spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb575spec/workers/hashed_storage/rollbacker_worker_spec.rb576spec/workers/ci/delete_objects_worker_spec.rb577spec/lib/bulk_imports/users_mapper_spec.rb578spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb579spec/lib/gitlab/github_import/label_finder_spec.rb580spec/lib/gitlab/sidekiq_logging/deduplication_logger_spec.rb581spec/helpers/projects/terraform_helper_spec.rb582spec/services/projects/fetch_statistics_increment_service_spec.rb583spec/services/ci/compare_test_reports_service_spec.rb584spec/initializers/net_http_patch_spec.rb585spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb586spec/lib/error_tracking/sentry_client/pagination_parser_spec.rb587spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb588spec/services/chat_names/authorize_user_service_spec.rb589spec/workers/issue_due_scheduler_worker_spec.rb590spec/models/concerns/limitable_spec.rb591spec/services/update_container_registry_info_service_spec.rb592spec/routing/environments_spec.rb593spec/finders/ci/job_artifacts_finder_spec.rb594spec/serializers/feature_flag_serializer_spec.rb595spec/finders/bulk_imports/imports_finder_spec.rb596spec/services/users/registrations_build_service_spec.rb597spec/lib/gitlab/utils/deep_size_spec.rb598spec/graphql/types/snippets/blob_viewer_type_spec.rb599spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb600spec/lib/gitlab/database/shared_model_spec.rb601spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb602spec/serializers/import/githubish_provider_repo_entity_spec.rb603spec/models/webauthn_registration_spec.rb604spec/graphql/types/prometheus_alert_type_spec.rb605spec/rubocop/cop/gitlab/namespaced_class_spec.rb606spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb607spec/lib/api/every_api_endpoint_spec.rb608spec/helpers/dashboard_helper_spec.rb609spec/policies/application_setting/term_policy_spec.rb610spec/views/projects/settings/operations/show.html.haml_spec.rb611spec/lib/gitlab/sidekiq_config/cli_methods_spec.rb612spec/policies/resource_label_event_policy_spec.rb613spec/workers/personal_access_tokens/expiring_worker_spec.rb614spec/workers/update_container_registry_info_worker_spec.rb615spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb616spec/workers/snippets/update_repository_storage_worker_spec.rb617spec/channels/application_cable/connection_spec.rb618spec/graphql/types/label_type_spec.rb619spec/lib/gitlab/email/smime/signer_spec.rb620spec/services/discussions/unresolve_service_spec.rb621spec/initializers/validate_database_config_spec.rb622spec/serializers/admin/user_entity_spec.rb623spec/graphql/mutations/branches/create_spec.rb624spec/serializers/linked_project_issue_entity_spec.rb625spec/lib/bitbucket/representation/pull_request_comment_spec.rb626spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb627spec/services/packages/remove_tag_service_spec.rb628spec/models/acts_as_taggable_on/tag_spec.rb629spec/lib/gitlab/usage_data_counters/search_counter_spec.rb630spec/models/bulk_imports/export_status_spec.rb631spec/validators/project_path_validator_spec.rb632spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb633spec/models/integrations/pivotaltracker_spec.rb634spec/lib/gitlab/auth/saml/auth_hash_spec.rb635spec/lib/gitlab/ci/status/preparing_spec.rb636spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb637spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb638spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb639spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb640spec/models/analytics/cycle_analytics/project_value_stream_spec.rb641spec/models/user_highest_role_spec.rb642spec/services/users/validate_otp_service_spec.rb643spec/graphql/resolvers/ci/test_suite_resolver_spec.rb644spec/rubocop/cop/migration/update_column_in_batches_spec.rb645spec/presenters/dev_ops_report/metric_presenter_spec.rb646spec/lib/gitlab/kubernetes/rollout_instances_spec.rb647spec/lib/api/helpers/version_spec.rb648spec/lib/gitlab/database/migrations/lock_retry_mixin_spec.rb649spec/lib/gitlab/cycle_analytics/summary/value_spec.rb650spec/lib/banzai/filter/image_lazy_load_filter_spec.rb651spec/services/product_analytics/build_graph_service_spec.rb652spec/graphql/types/project_invitation_type_spec.rb653spec/lib/gitlab/session_spec.rb654spec/serializers/ci/downloadable_artifact_serializer_spec.rb655spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb656spec/serializers/blob_entity_spec.rb657spec/lib/sidebars/menu_item_spec.rb658spec/lib/gitlab/middleware/compressed_json_spec.rb659spec/views/projects/runners/_specific_runners.html.haml_spec.rb660spec/views/layouts/_published_experiments.html.haml_spec.rb661spec/lib/gitlab/ci/yaml_processor/dag_spec.rb662spec/rubocop/cop/ban_catch_throw_spec.rb663spec/models/performance_monitoring/prometheus_panel_spec.rb664spec/lib/api/entities/changelog_spec.rb665spec/config/smime_signature_settings_spec.rb666spec/models/issuable_severity_spec.rb667spec/helpers/subscribable_banner_helper_spec.rb668spec/graphql/types/user_status_type_spec.rb669spec/lib/api/entities/group_detail_spec.rb670spec/graphql/types/issue_type_enum_spec.rb671spec/graphql/types/group_member_relation_enum_spec.rb672spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb673spec/helpers/explore_helper_spec.rb674spec/serializers/namespace_basic_entity_spec.rb675spec/graphql/types/custom_emoji_type_spec.rb676spec/graphql/types/alert_management/http_integration_type_spec.rb677spec/rubocop/cop/database/multiple_databases_spec.rb678spec/rubocop/cop/gitlab/except_spec.rb679spec/models/project_setting_spec.rb680spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb681spec/lib/gitlab/auth/saml/origin_validator_spec.rb682spec/graphql/types/packages/package_type_spec.rb683spec/models/integrations/issue_tracker_data_spec.rb684spec/graphql/types/container_repository_status_enum_spec.rb685spec/lib/api/entities/nuget/search_result_spec.rb686spec/lib/banzai/pipeline/emoji_pipeline_spec.rb687spec/graphql/types/alert_management/severity_enum_spec.rb688spec/graphql/types/ci/config/config_type_spec.rb689spec/services/ci/change_variables_service_spec.rb690spec/graphql/types/tree/blob_type_spec.rb691spec/helpers/branches_helper_spec.rbKnapsack report generator started!692Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}693==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.073369203 seconds...694Test environment set up in 0.801787776 seconds695Auth::ContainerRegistryAuthenticationService696 behaves like a container registry auth service697 #full_access_token698 behaves like an accessible699 has the correct scope700 behaves like a valid token701 is expected to include :token702 is expected to include "access"703 a expirable704 for default configuration705 is expected not to be within 2 of 2021-12-20 17:03:16.932509651 +0000706 for changed configuration707 is expected to be within 2 of 2021-12-20 17:03:16.963600578 +0000708 behaves like not a container repository factory709 does not create a new container repository resource710 #pull_access_token711 behaves like an accessible712 has the correct scope713 behaves like a valid token714 is expected to include :token715 is expected to include "access"716 a expirable717 for default configuration718 is expected not to be within 2 of 2021-12-20 17:03:17.429540674 +0000719 for changed configuration720 is expected to be within 2 of 2021-12-20 17:03:17.478905380 +0000721 behaves like not a container repository factory722 does not create a new container repository resource723 user authorization724 for registry catalog725 disallow browsing for users without GitLab admin rights726 behaves like an inaccessible727 is expected to include {"access" => []}728 behaves like a valid token729 is expected to include :token730 is expected to include "access"731 a expirable732 for default configuration733 is expected not to be within 2 of 2021-12-20 17:03:17.762426894 +0000734 for changed configuration735 is expected to be within 2 of 2021-12-20 17:03:17.810026130 +0000736 behaves like not a container repository factory737 does not create a new container repository resource738 for private project739 behaves like private project740 allow to use scope-less authentication741 behaves like a valid token742 is expected to include :token743 is expected to include "access"744 a expirable745 for default configuration746 is expected not to be within 2 of 2021-12-20 17:03:18.176147466 +0000747 for changed configuration748 is expected to be within 2 of 2021-12-20 17:03:18.206582233 +0000749 allow developer to push images750 behaves like a pushable751 behaves like an accessible752 has the correct scope753 behaves like a valid token754 is expected to include :token755 is expected to include "access"756 a expirable757 for default configuration758 is expected not to be within 2 of 2021-12-20 17:03:18.715093786 +0000759 for changed configuration760 is expected to be within 2 of 2021-12-20 17:03:18.834746845 +0000761 behaves like container repository factory762 creates a new container repository resource763 disallow developer to delete images764 behaves like an inaccessible765 is expected to include {"access" => []}766 behaves like a valid token767 is expected to include :token768 is expected to include "access"769 a expirable770 for default configuration771 is expected not to be within 2 of 2021-12-20 17:03:19.426132020 +0000772 for changed configuration773 is expected to be within 2 of 2021-12-20 17:03:19.616527872 +0000774 behaves like not a container repository factory775 does not create a new container repository resource776 behaves like logs an auth warning777 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace3/project3", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time778 disallow developer to delete images since registry 2.7779 behaves like an inaccessible780 is expected to include {"access" => []}781 behaves like a valid token782 is expected to include :token783 is expected to include "access"784 a expirable785 for default configuration786 is expected not to be within 2 of 2021-12-20 17:03:20.256794733 +0000787 for changed configuration788 is expected to be within 2 of 2021-12-20 17:03:20.360603954 +0000789 behaves like not a container repository factory790 does not create a new container repository resource791 allow reporter to pull images792 when pulling from root level repository793 behaves like a pullable794 behaves like an accessible795 has the correct scope796 behaves like a valid token797 is expected to include :token798 is expected to include "access"799 a expirable800 for default configuration801 is expected not to be within 2 of 2021-12-20 17:03:20.891228125 +0000802 for changed configuration803 is expected to be within 2 of 2021-12-20 17:03:20.986030456 +0000804 behaves like not a container repository factory805 does not create a new container repository resource806 disallow reporter to delete images807 behaves like an inaccessible808 is expected to include {"access" => []}809 behaves like a valid token810 is expected to include :token811 is expected to include "access"812 a expirable813 for default configuration814 is expected not to be within 2 of 2021-12-20 17:03:21.517366347 +0000815 for changed configuration816 is expected to be within 2 of 2021-12-20 17:03:21.616462468 +0000817 behaves like not a container repository factory818 does not create a new container repository resource819 disallow reporter to delete images since registry 2.7820 behaves like an inaccessible821 is expected to include {"access" => []}822 behaves like a valid token823 is expected to include :token824 is expected to include "access"825 a expirable826 for default configuration827 is expected not to be within 2 of 2021-12-20 17:03:22.089422794 +0000828 for changed configuration829 is expected to be within 2 of 2021-12-20 17:03:22.156141078 +0000830 behaves like not a container repository factory831 does not create a new container repository resource832 return a least of privileges833 behaves like a pullable834 behaves like an accessible835 has the correct scope836 behaves like a valid token837 is expected to include :token838 is expected to include "access"839 a expirable840 for default configuration841 is expected not to be within 2 of 2021-12-20 17:03:22.574080309 +0000842 for changed configuration843 is expected to be within 2 of 2021-12-20 17:03:22.658061162 +0000844 behaves like not a container repository factory845 does not create a new container repository resource846 disallow guest to pull or push images847 behaves like an inaccessible848 is expected to include {"access" => []}849 behaves like a valid token850 is expected to include :token851 is expected to include "access"852 a expirable853 for default configuration854 is expected not to be within 2 of 2021-12-20 17:03:23.144172586 +0000855 for changed configuration856 is expected to be within 2 of 2021-12-20 17:03:23.217184100 +0000857 behaves like not a container repository factory858 does not create a new container repository resource859 disallow guest to delete images860 behaves like an inaccessible861 is expected to include {"access" => []}862 behaves like a valid token863 is expected to include :token864 is expected to include "access"865 a expirable866 for default configuration867 is expected not to be within 2 of 2021-12-20 17:03:23.611053663 +0000868 for changed configuration869 is expected to be within 2 of 2021-12-20 17:03:23.680651827 +0000870 behaves like not a container repository factory871 does not create a new container repository resource872 disallow guest to delete images since registry 2.7873 behaves like an inaccessible874 is expected to include {"access" => []}875 behaves like a valid token876 is expected to include :token877 is expected to include "access"878 a expirable879 for default configuration880 is expected not to be within 2 of 2021-12-20 17:03:24.067734931 +0000881 for changed configuration882 is expected to be within 2 of 2021-12-20 17:03:24.136684345 +0000883 behaves like not a container repository factory884 does not create a new container repository resource885 for public project with private container registry886 behaves like private project887 allow to use scope-less authentication888 behaves like a valid token889 is expected to include :token890 is expected to include "access"891 a expirable892 for default configuration893 is expected not to be within 2 of 2021-12-20 17:03:24.477516643 +0000894 for changed configuration895 is expected to be within 2 of 2021-12-20 17:03:24.517707500 +0000896 allow developer to push images897 behaves like a pushable898 behaves like an accessible899 has the correct scope900 behaves like a valid token901 is expected to include :token902 is expected to include "access"903 a expirable904 for default configuration905 is expected not to be within 2 of 2021-12-20 17:03:24.993322956 +0000906 for changed configuration907 is expected to be within 2 of 2021-12-20 17:03:25.078480398 +0000908 behaves like container repository factory909 creates a new container repository resource910 disallow developer to delete images911 behaves like an inaccessible912 is expected to include {"access" => []}913 behaves like a valid token914 is expected to include :token915 is expected to include "access"916 a expirable917 for default configuration918 is expected not to be within 2 of 2021-12-20 17:03:25.492132400 +0000919 for changed configuration920 is expected to be within 2 of 2021-12-20 17:03:25.614307908 +0000921 behaves like not a container repository factory922 does not create a new container repository resource923 behaves like logs an auth warning924 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace4/project4", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time925 disallow developer to delete images since registry 2.7926 behaves like an inaccessible927 is expected to include {"access" => []}928 behaves like a valid token929 is expected to include :token930 is expected to include "access"931 a expirable932 for default configuration933 is expected not to be within 2 of 2021-12-20 17:03:26.080626205 +0000934 for changed configuration935 is expected to be within 2 of 2021-12-20 17:03:26.150611819 +0000936 behaves like not a container repository factory937 does not create a new container repository resource938 allow reporter to pull images939 when pulling from root level repository940 behaves like a pullable941 behaves like an accessible942 has the correct scope943 behaves like a valid token944 is expected to include :token945 is expected to include "access"946 a expirable947 for default configuration948 is expected not to be within 2 of 2021-12-20 17:03:26.507307716 +0000949 for changed configuration950 is expected to be within 2 of 2021-12-20 17:03:26.575499200 +0000951 behaves like not a container repository factory952 does not create a new container repository resource953 disallow reporter to delete images954 behaves like an inaccessible955 is expected to include {"access" => []}956 behaves like a valid token957 is expected to include :token958 is expected to include "access"959 a expirable960 for default configuration961 is expected not to be within 2 of 2021-12-20 17:03:26.955479184 +0000962 for changed configuration963 is expected to be within 2 of 2021-12-20 17:03:27.024735518 +0000964 behaves like not a container repository factory965 does not create a new container repository resource966 disallow reporter to delete images since registry 2.7967 behaves like an inaccessible968 is expected to include {"access" => []}969 behaves like a valid token970 is expected to include :token971 is expected to include "access"972 a expirable973 for default configuration974 is expected not to be within 2 of 2021-12-20 17:03:27.507818083 +0000975 for changed configuration976 is expected to be within 2 of 2021-12-20 17:03:27.622882033 +0000977 behaves like not a container repository factory978 does not create a new container repository resource979 return a least of privileges980 behaves like a pullable981 behaves like an accessible982 has the correct scope983 behaves like a valid token984 is expected to include :token985 is expected to include "access"986 a expirable987 for default configuration988 is expected not to be within 2 of 2021-12-20 17:03:28.249917165 +0000989 for changed configuration990 is expected to be within 2 of 2021-12-20 17:03:28.372453313 +0000991 behaves like not a container repository factory992 does not create a new container repository resource993 disallow guest to pull or push images994 behaves like an inaccessible995 is expected to include {"access" => []}996 behaves like a valid token997 is expected to include :token998 is expected to include "access"999 a expirable1000 for default configuration1001 is expected not to be within 2 of 2021-12-20 17:03:28.993160946 +00001002 for changed configuration1003 is expected to be within 2 of 2021-12-20 17:03:29.072003629 +00001004 behaves like not a container repository factory1005 does not create a new container repository resource1006 disallow guest to delete images1007 behaves like an inaccessible1008 is expected to include {"access" => []}1009 behaves like a valid token1010 is expected to include :token1011 is expected to include "access"1012 a expirable1013 for default configuration1014 is expected not to be within 2 of 2021-12-20 17:03:29.573377172 +00001015 for changed configuration1016 is expected to be within 2 of 2021-12-20 17:03:29.666023034 +00001017 behaves like not a container repository factory1018 does not create a new container repository resource1019 disallow guest to delete images since registry 2.71020 behaves like an inaccessible1021 is expected to include {"access" => []}1022 behaves like a valid token1023 is expected to include :token1024 is expected to include "access"1025 a expirable1026 for default configuration1027 is expected not to be within 2 of 2021-12-20 17:03:30.192453475 +00001028 for changed configuration1029 is expected to be within 2 of 2021-12-20 17:03:30.285079287 +00001030 behaves like not a container repository factory1031 does not create a new container repository resource1032 for public project with container_registry `enabled`1033 allow anyone to pull images1034 behaves like a pullable1035 behaves like an accessible1036 has the correct scope1037 behaves like a valid token1038 is expected to include :token1039 is expected to include "access"1040 a expirable1041 for default configuration1042 is expected not to be within 2 of 2021-12-20 17:03:30.801900769 +00001043 for changed configuration1044 is expected to be within 2 of 2021-12-20 17:03:30.852023134 +00001045 behaves like not a container repository factory1046 does not create a new container repository resource1047 disallow anyone to push images1048 behaves like an inaccessible1049 is expected to include {"access" => []}1050 behaves like a valid token1051 is expected to include :token1052 is expected to include "access"1053 a expirable1054 for default configuration1055 is expected not to be within 2 of 2021-12-20 17:03:31.175967935 +00001056 for changed configuration1057 is expected to be within 2 of 2021-12-20 17:03:31.269521416 +00001058 behaves like not a container repository factory1059 does not create a new container repository resource1060 disallow anyone to delete images1061 behaves like an inaccessible1062 is expected to include {"access" => []}1063 behaves like a valid token1064 is expected to include :token1065 is expected to include "access"1066 a expirable1067 for default configuration1068 is expected not to be within 2 of 2021-12-20 17:03:31.715055394 +00001069 for changed configuration1070 is expected to be within 2 of 2021-12-20 17:03:31.870906380 +00001071 behaves like not a container repository factory1072 does not create a new container repository resource1073 disallow anyone to delete images since registry 2.71074 behaves like an inaccessible1075 is expected to include {"access" => []}1076 behaves like a valid token1077 is expected to include :token1078 is expected to include "access"1079 a expirable1080 for default configuration1081 is expected not to be within 2 of 2021-12-20 17:03:32.291987521 +00001082 for changed configuration1083 is expected to be within 2 of 2021-12-20 17:03:32.382661173 +00001084 behaves like not a container repository factory1085 does not create a new container repository resource1086 when repository name is invalid1087 behaves like an inaccessible1088 is expected to include {"access" => []}1089 behaves like a valid token1090 is expected to include :token1091 is expected to include "access"1092 a expirable1093 for default configuration1094 is expected not to be within 2 of 2021-12-20 17:03:32.569049586 +00001095 for changed configuration1096 is expected to be within 2 of 2021-12-20 17:03:32.599015673 +00001097 behaves like not a container repository factory1098 does not create a new container repository resource1099 for internal project with container_registry `enabled`1100 for internal user1101 allow anyone to pull images1102 behaves like a pullable1103 behaves like an accessible1104 has the correct scope1105 behaves like a valid token1106 is expected to include :token1107 is expected to include "access"1108 a expirable1109 for default configuration1110 is expected not to be within 2 of 2021-12-20 17:03:32.986950337 +00001111 for changed configuration1112 is expected to be within 2 of 2021-12-20 17:03:33.034954963 +00001113 behaves like not a container repository factory1114 does not create a new container repository resource1115 disallow anyone to push images1116 behaves like an inaccessible1117 is expected to include {"access" => []}1118 behaves like a valid token1119 is expected to include :token1120 is expected to include "access"1121 a expirable1122 for default configuration1123 is expected not to be within 2 of 2021-12-20 17:03:33.317723937 +00001124 for changed configuration1125 is expected to be within 2 of 2021-12-20 17:03:33.375546041 +00001126 behaves like not a container repository factory1127 does not create a new container repository resource1128 disallow anyone to delete images1129 behaves like an inaccessible1130 is expected to include {"access" => []}1131 behaves like a valid token1132 is expected to include :token1133 is expected to include "access"1134 a expirable1135 for default configuration1136 is expected not to be within 2 of 2021-12-20 17:03:33.678289533 +00001137 for changed configuration1138 is expected to be within 2 of 2021-12-20 17:03:33.738390727 +00001139 behaves like not a container repository factory1140 does not create a new container repository resource1141 disallow anyone to delete images since registry 2.71142 behaves like an inaccessible1143 is expected to include {"access" => []}1144 behaves like a valid token1145 is expected to include :token1146 is expected to include "access"1147 a expirable1148 for default configuration1149 is expected not to be within 2 of 2021-12-20 17:03:34.033802700 +00001150 for changed configuration1151 is expected to be within 2 of 2021-12-20 17:03:34.100546054 +00001152 behaves like not a container repository factory1153 does not create a new container repository resource1154 for external user1155 disallow anyone to pull or push images1156 behaves like an inaccessible1157 is expected to include {"access" => []}1158 behaves like a valid token1159 is expected to include :token1160 is expected to include "access"1161 a expirable1162 for default configuration1163 is expected not to be within 2 of 2021-12-20 17:03:34.529654634 +00001164 for changed configuration1165 is expected to be within 2 of 2021-12-20 17:03:34.593539228 +00001166 behaves like not a container repository factory1167 does not create a new container repository resource1168 disallow anyone to delete images1169 behaves like an inaccessible1170 is expected to include {"access" => []}1171 behaves like a valid token1172 is expected to include :token1173 is expected to include "access"1174 a expirable1175 for default configuration1176 is expected not to be within 2 of 2021-12-20 17:03:34.948489806 +00001177 for changed configuration1178 is expected to be within 2 of 2021-12-20 17:03:35.010640550 +00001179 behaves like not a container repository factory1180 does not create a new container repository resource1181 disallow anyone to delete images since registry 2.71182 behaves like an inaccessible1183 is expected to include {"access" => []}1184 behaves like a valid token1185 is expected to include :token1186 is expected to include "access"1187 a expirable1188 for default configuration1189 is expected not to be within 2 of 2021-12-20 17:03:35.346047929 +00001190 for changed configuration1191 is expected to be within 2 of 2021-12-20 17:03:35.406640164 +00001192 behaves like not a container repository factory1193 does not create a new container repository resource1194 for internal project with private container registry1195 behaves like private project1196 allow to use scope-less authentication1197 behaves like a valid token1198 is expected to include :token1199 is expected to include "access"1200 a expirable1201 for default configuration1202 is expected not to be within 2 of 2021-12-20 17:03:35.720365904 +00001203 for changed configuration1204 is expected to be within 2 of 2021-12-20 17:03:35.754610231 +00001205 allow developer to push images1206 behaves like a pushable1207 behaves like an accessible1208 has the correct scope1209 behaves like a valid token1210 is expected to include :token1211 is expected to include "access"1212 a expirable1213 for default configuration1214 is expected not to be within 2 of 2021-12-20 17:03:36.193397991 +00001215 for changed configuration1216 is expected to be within 2 of 2021-12-20 17:03:36.310580350 +00001217 behaves like container repository factory1218 creates a new container repository resource1219 disallow developer to delete images1220 behaves like an inaccessible1221 is expected to include {"access" => []}1222 behaves like a valid token1223 is expected to include :token1224 is expected to include "access"1225 a expirable1226 for default configuration1227 is expected not to be within 2 of 2021-12-20 17:03:36.859576919 +00001228 for changed configuration1229 is expected to be within 2 of 2021-12-20 17:03:36.932977592 +00001230 behaves like not a container repository factory1231 does not create a new container repository resource1232 behaves like logs an auth warning1233 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace7/project7", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time1234 disallow developer to delete images since registry 2.71235 behaves like an inaccessible1236 is expected to include {"access" => []}1237 behaves like a valid token1238 is expected to include :token1239 is expected to include "access"1240 a expirable1241 for default configuration1242 is expected not to be within 2 of 2021-12-20 17:03:37.451542675 +00001243 for changed configuration1244 is expected to be within 2 of 2021-12-20 17:03:37.522811468 +00001245 behaves like not a container repository factory1246 does not create a new container repository resource1247 allow reporter to pull images1248 when pulling from root level repository1249 behaves like a pullable1250 behaves like an accessible1251 has the correct scope1252 behaves like a valid token1253 is expected to include :token1254 is expected to include "access"1255 a expirable1256 for default configuration1257 is expected not to be within 2 of 2021-12-20 17:03:37.896576563 +00001258 for changed configuration1259 is expected to be within 2 of 2021-12-20 17:03:37.961882517 +00001260 behaves like not a container repository factory1261 does not create a new container repository resource1262 disallow reporter to delete images1263 behaves like an inaccessible1264 is expected to include {"access" => []}1265 behaves like a valid token1266 is expected to include :token1267 is expected to include "access"1268 a expirable1269 for default configuration1270 is expected not to be within 2 of 2021-12-20 17:03:38.352020401 +00001271 for changed configuration1272 is expected to be within 2 of 2021-12-20 17:03:38.458200531 +00001273 behaves like not a container repository factory1274 does not create a new container repository resource1275 disallow reporter to delete images since registry 2.71276 behaves like an inaccessible1277 is expected to include {"access" => []}1278 behaves like a valid token1279 is expected to include :token1280 is expected to include "access"1281 a expirable1282 for default configuration1283 is expected not to be within 2 of 2021-12-20 17:03:38.935341857 +00001284 for changed configuration1285 is expected to be within 2 of 2021-12-20 17:03:39.006428281 +00001286 behaves like not a container repository factory1287 does not create a new container repository resource1288 return a least of privileges1289 behaves like a pullable1290 behaves like an accessible1291 has the correct scope1292 behaves like a valid token1293 is expected to include :token1294 is expected to include "access"1295 a expirable1296 for default configuration1297 is expected not to be within 2 of 2021-12-20 17:03:39.448088660 +00001298 for changed configuration1299 is expected to be within 2 of 2021-12-20 17:03:39.534327362 +00001300 behaves like not a container repository factory1301 does not create a new container repository resource1302 disallow guest to pull or push images1303 behaves like an inaccessible1304 is expected to include {"access" => []}1305 behaves like a valid token1306 is expected to include :token1307 is expected to include "access"1308 a expirable1309 for default configuration1310 is expected not to be within 2 of 2021-12-20 17:03:39.985793490 +00001311 for changed configuration1312 is expected to be within 2 of 2021-12-20 17:03:40.058742523 +00001313 behaves like not a container repository factory1314 does not create a new container repository resource1315 disallow guest to delete images1316 behaves like an inaccessible1317 is expected to include {"access" => []}1318 behaves like a valid token1319 is expected to include :token1320 is expected to include "access"1321 a expirable1322 for default configuration1323 is expected not to be within 2 of 2021-12-20 17:03:40.418090420 +00001324 for changed configuration1325 is expected to be within 2 of 2021-12-20 17:03:40.479172915 +00001326 behaves like not a container repository factory1327 does not create a new container repository resource1328 disallow guest to delete images since registry 2.71329 behaves like an inaccessible1330 is expected to include {"access" => []}1331 behaves like a valid token1332 is expected to include :token1333 is expected to include "access"1334 a expirable1335 for default configuration1336 is expected not to be within 2 of 2021-12-20 17:03:40.912782085 +00001337 for changed configuration1338 is expected to be within 2 of 2021-12-20 17:03:41.004047776 +00001339 behaves like not a container repository factory1340 does not create a new container repository resource1341 delete authorized as maintainer1342 behaves like a valid token1343 is expected to include :token1344 is expected to include "access"1345 a expirable1346 for default configuration1347 is expected not to be within 2 of 2021-12-20 17:03:41.603962261 +00001348 for changed configuration1349 is expected to be within 2 of 2021-12-20 17:03:41.651850886 +00001350 allow to delete images1351 behaves like a deletable1352 behaves like an accessible1353 has the correct scope1354 behaves like a valid token1355 is expected to include :token1356 is expected to include "access"1357 a expirable1358 for default configuration1359 is expected not to be within 2 of 2021-12-20 17:03:41.992285685 +00001360 for changed configuration1361 is expected to be within 2 of 2021-12-20 17:03:42.083629656 +00001362 allow to delete images since registry 2.71363 behaves like a deletable since registry 2.71364 behaves like an accessible1365 has the correct scope1366 behaves like a valid token1367 is expected to include :token1368 is expected to include "access"1369 a expirable1370 for default configuration1371 is expected not to be within 2 of 2021-12-20 17:03:42.421876035 +00001372 for changed configuration1373 is expected to be within 2 of 2021-12-20 17:03:42.521088726 +00001374 build authorized as user1375 allow to use offline_token1376 behaves like an authenticated1377 is expected to include :token1378 is expected to include "access"1379 behaves like a valid token1380 is expected to include :token1381 is expected to include "access"1382 a expirable1383 for default configuration1384 is expected not to be within 2 of 2021-12-20 17:03:43.034075039 +00001385 for changed configuration1386 is expected to be within 2 of 2021-12-20 17:03:43.061974446 +00001387 allow to pull and push images1388 behaves like a pullable and pushable1389 behaves like an accessible1390 has the correct scope1391 behaves like a valid token1392 is expected to include :token1393 is expected to include "access"1394 a expirable1395 for default configuration1396 is expected not to be within 2 of 2021-12-20 17:03:43.266140337 +00001397 for changed configuration1398 is expected to be within 2 of 2021-12-20 17:03:43.320715422 +00001399 behaves like container repository factory1400 creates a new container repository resource1401 allow to delete images since registry 2.71402 behaves like a deletable since registry 2.71403 behaves like an accessible1404 has the correct scope1405 behaves like a valid token1406 is expected to include :token1407 is expected to include "access"1408 a expirable1409 for default configuration1410 is expected not to be within 2 of 2021-12-20 17:03:43.544285101 +00001411 for changed configuration1412 is expected to be within 2 of 2021-12-20 17:03:43.593841487 +00001413 disallow to delete images1414 behaves like an inaccessible1415 is expected to include {"access" => []}1416 behaves like a valid token1417 is expected to include :token1418 is expected to include "access"1419 a expirable1420 for default configuration1421 is expected not to be within 2 of 2021-12-20 17:03:43.756032522 +00001422 for changed configuration1423 is expected to be within 2 of 2021-12-20 17:03:43.800332628 +00001424 for other projects1425 when pulling1426 allow for public1427 behaves like a pullable1428 behaves like an accessible1429 has the correct scope1430 behaves like a valid token1431 is expected to include :token1432 is expected to include "access"1433 a expirable1434 for default configuration1435 is expected not to be within 2 of 2021-12-20 17:03:44.154501825 +00001436 for changed configuration1437 is expected to be within 2 of 2021-12-20 17:03:44.221986129 +00001438 behaves like not a container repository factory1439 does not create a new container repository resource1440 for private1441 behaves like pullable for being team member1442 when you are not member1443 behaves like an inaccessible1444 is expected to include {"access" => []}1445 behaves like a valid token1446 is expected to include :token1447 is expected to include "access"1448 a expirable1449 for default configuration1450 is expected not to be within 2 of 2021-12-20 17:03:44.758410449 +00001451 for changed configuration1452 is expected to be within 2 of 2021-12-20 17:03:44.850205381 +00001453 behaves like not a container repository factory1454 does not create a new container repository resource1455 when you are member1456 behaves like a pullable1457 behaves like an accessible1458 has the correct scope1459 behaves like a valid token1460 is expected to include :token1461 is expected to include "access"1462 a expirable1463 for default configuration1464 is expected not to be within 2 of 2021-12-20 17:03:45.345576565 +00001465 for changed configuration1466 is expected to be within 2 of 2021-12-20 17:03:45.442514476 +00001467 behaves like not a container repository factory1468 does not create a new container repository resource1469 when you are owner1470 behaves like a pullable1471 behaves like an accessible1472 has the correct scope1473 behaves like a valid token1474 is expected to include :token1475 is expected to include "access"1476 a expirable1477 for default configuration1478 is expected not to be within 2 of 2021-12-20 17:03:46.069917598 +00001479 for changed configuration1480 is expected to be within 2 of 2021-12-20 17:03:46.127650713 +00001481 behaves like not a container repository factory1482 does not create a new container repository resource1483 when you are admin1484 when you are not member1485 behaves like an inaccessible1486 is expected to include {"access" => []}1487 behaves like a valid token1488 is expected to include :token1489 is expected to include "access"1490 a expirable1491 for default configuration1492 is expected not to be within 2 of 2021-12-20 17:03:46.452668463 +00001493 for changed configuration1494 is expected to be within 2 of 2021-12-20 17:03:46.516595207 +00001495 behaves like not a container repository factory1496 does not create a new container repository resource1497 when you are member1498 behaves like a pullable1499 behaves like an accessible1500 has the correct scope1501 behaves like a valid token1502 is expected to include :token1503 is expected to include "access"1504 a expirable1505 for default configuration1506 is expected not to be within 2 of 2021-12-20 17:03:46.850360596 +00001507 for changed configuration1508 is expected to be within 2 of 2021-12-20 17:03:46.914978690 +00001509 behaves like not a container repository factory1510 does not create a new container repository resource1511 when you are owner1512 behaves like a pullable1513 behaves like an accessible1514 has the correct scope1515 behaves like a valid token1516 is expected to include :token1517 is expected to include "access"1518 a expirable1519 for default configuration1520 is expected not to be within 2 of 2021-12-20 17:03:47.466457249 +00001521 for changed configuration1522 is expected to be within 2 of 2021-12-20 17:03:47.556741421 +00001523 behaves like not a container repository factory1524 does not create a new container repository resource1525 for public project with private container registry1526 behaves like pullable for being team member1527 when you are not member1528 behaves like an inaccessible1529 is expected to include {"access" => []}1530 behaves like a valid token1531 is expected to include :token1532 is expected to include "access"1533 a expirable1534 for default configuration1535 is expected not to be within 2 of 2021-12-20 17:03:48.250384926 +00001536 for changed configuration1537 is expected to be within 2 of 2021-12-20 17:03:48.344371948 +00001538 behaves like not a container repository factory1539 does not create a new container repository resource1540 when you are member1541 behaves like a pullable1542 behaves like an accessible1543 has the correct scope1544 behaves like a valid token1545 is expected to include :token1546 is expected to include "access"1547 a expirable1548 for default configuration1549 is expected not to be within 2 of 2021-12-20 17:03:48.900440037 +00001550 for changed configuration1551 is expected to be within 2 of 2021-12-20 17:03:49.009483736 +00001552 behaves like not a container repository factory1553 does not create a new container repository resource1554 when you are owner1555 behaves like a pullable1556 behaves like an accessible1557 has the correct scope1558 behaves like a valid token1559 is expected to include :token1560 is expected to include "access"1561 a expirable1562 for default configuration1563 is expected not to be within 2 of 2021-12-20 17:03:49.701174492 +00001564 for changed configuration1565 is expected to be within 2 of 2021-12-20 17:03:49.795376404 +00001566 behaves like not a container repository factory1567 does not create a new container repository resource1568 when you are admin1569 behaves like pullable for being team member1570 when you are not member1571 behaves like an inaccessible1572 is expected to include {"access" => []}1573 behaves like a valid token1574 is expected to include :token1575 is expected to include "access"1576 a expirable1577 for default configuration1578 is expected not to be within 2 of 2021-12-20 17:03:50.321256255 +00001579 for changed configuration1580 is expected to be within 2 of 2021-12-20 17:03:50.413419997 +00001581 behaves like not a container repository factory1582 does not create a new container repository resource1583 when you are member1584 behaves like a pullable1585 behaves like an accessible1586 has the correct scope1587 behaves like a valid token1588 is expected to include :token1589 is expected to include "access"1590 a expirable1591 for default configuration1592 is expected not to be within 2 of 2021-12-20 17:03:50.958616846 +00001593 for changed configuration1594 is expected to be within 2 of 2021-12-20 17:03:51.060165167 +00001595 behaves like not a container repository factory1596 does not create a new container repository resource1597 when you are owner1598 behaves like a pullable1599 behaves like an accessible1600 has the correct scope1601 behaves like a valid token1602 is expected to include :token1603 is expected to include "access"1604 a expirable1605 for default configuration1606 is expected not to be within 2 of 2021-12-20 17:03:51.675181810 +00001607 for changed configuration1608 is expected to be within 2 of 2021-12-20 17:03:51.770770641 +00001609 behaves like not a container repository factory1610 does not create a new container repository resource1611 when pushing1612 disallow for all1613 when you are member1614 behaves like an inaccessible1615 is expected to include {"access" => []}1616 behaves like a valid token1617 is expected to include :token1618 is expected to include "access"1619 a expirable1620 for default configuration1621 is expected not to be within 2 of 2021-12-20 17:03:52.427407560 +00001622 for changed configuration1623 is expected to be within 2 of 2021-12-20 17:03:52.499722594 +00001624 behaves like not a container repository factory1625 does not create a new container repository resource1626 when you are owner1627 behaves like an inaccessible1628 is expected to include {"access" => []}1629 behaves like a valid token1630 is expected to include :token1631 is expected to include "access"1632 a expirable1633 for default configuration1634 is expected not to be within 2 of 2021-12-20 17:03:52.910247496 +00001635 for changed configuration1636 is expected to be within 2 of 2021-12-20 17:03:53.006164197 +00001637 behaves like not a container repository factory1638 does not create a new container repository resource1639 for project without container registry1640 disallow when pulling1641 behaves like an inaccessible1642 is expected to include {"access" => []}1643 behaves like a valid token1644 is expected to include :token1645 is expected to include "access"1646 a expirable1647 for default configuration1648 is expected not to be within 2 of 2021-12-20 17:03:53.557298926 +00001649 for changed configuration1650 is expected to be within 2 of 2021-12-20 17:03:53.636260419 +00001651 behaves like not a container repository factory1652 does not create a new container repository resource1653 for project that disables repository1654 disallow when pulling1655 behaves like an inaccessible1656 is expected to include {"access" => []}1657 behaves like a valid token1658 is expected to include :token1659 is expected to include "access"1660 a expirable1661 for default configuration1662 is expected not to be within 2 of 2021-12-20 17:03:54.134815313 +00001663 for changed configuration1664 is expected to be within 2 of 2021-12-20 17:03:54.179765689 +00001665 behaves like not a container repository factory1666 does not create a new container repository resource1667 registry catalog browsing authorized as admin1668 behaves like a browsable1669 has the correct scope1670 behaves like a valid token1671 is expected to include :token1672 is expected to include "access"1673 a expirable1674 for default configuration1675 is expected not to be within 2 of 2021-12-20 17:03:54.573208412 +00001676 for changed configuration1677 is expected to be within 2 of 2021-12-20 17:03:54.603817799 +00001678 behaves like not a container repository factory1679 does not create a new container repository resource1680 support for multiple scopes1681 user has access to all projects1682 behaves like a browsable1683 has the correct scope1684 behaves like a valid token1685 is expected to include :token1686 is expected to include "access"1687 a expirable1688 for default configuration1689 is expected not to be within 2 of 2021-12-20 17:03:56.209642291 +00001690 for changed configuration1691 is expected to be within 2 of 2021-12-20 17:03:56.369637016 +00001692 behaves like not a container repository factory1693 does not create a new container repository resource1694 user only has access to internal and public projects1695 behaves like a browsable1696 has the correct scope1697 behaves like a valid token1698 is expected to include :token1699 is expected to include "access"1700 a expirable1701 for default configuration1702 is expected not to be within 2 of 2021-12-20 17:03:57.345349756 +00001703 for changed configuration1704 is expected to be within 2 of 2021-12-20 17:03:57.515012220 +00001705 behaves like not a container repository factory1706 does not create a new container repository resource1707 anonymous user has access only to public project1708 behaves like a browsable1709 has the correct scope1710 behaves like a valid token1711 is expected to include :token1712 is expected to include "access"1713 a expirable1714 for default configuration1715 is expected not to be within 2 of 2021-12-20 17:03:58.196071127 +00001716 for changed configuration1717 is expected to be within 2 of 2021-12-20 17:03:58.331330235 +00001718 behaves like not a container repository factory1719 does not create a new container repository resource1720 with no public container registry1721 behaves like a forbidden1722 is expected to include {:http_status => 403}1723 is expected not to include :token1724 unauthorized1725 disallow to use scope-less authentication1726 behaves like a forbidden1727 is expected to include {:http_status => 403}1728 is expected not to include :token1729 behaves like not a container repository factory1730 does not create a new container repository resource1731 for invalid scope1732 behaves like a forbidden1733 is expected to include {:http_status => 403}1734 is expected not to include :token1735 behaves like not a container repository factory1736 does not create a new container repository resource1737 for private project1738 behaves like a forbidden1739 is expected to include {:http_status => 403}1740 is expected not to include :token1741 for public project with container registry `enabled`1742 when pulling and pushing1743 behaves like a pullable1744 behaves like an accessible1745 has the correct scope1746 behaves like a valid token1747 is expected to include :token1748 is expected to include "access"1749 a expirable1750 for default configuration1751 is expected not to be within 2 of 2021-12-20 17:03:59.940153036 +00001752 for changed configuration1753 is expected to be within 2 of 2021-12-20 17:04:00.054893256 +00001754 behaves like not a container repository factory1755 does not create a new container repository resource1756 when pushing1757 behaves like a forbidden1758 is expected to include {:http_status => 403}1759 is expected not to include :token1760 behaves like not a container repository factory1761 does not create a new container repository resource1762 for public project with container registry `private`1763 when pulling and pushing1764 behaves like a forbidden1765 is expected to include {:http_status => 403}1766 is expected not to include :token1767 behaves like not a container repository factory1768 does not create a new container repository resource1769 for registry catalog1770 behaves like a forbidden1771 is expected to include {:http_status => 403}1772 is expected not to include :token1773 behaves like not a container repository factory1774 does not create a new container repository resource1775 for deploy tokens1776 when deploy token has read and write registry as scopes1777 for public project1778 when pulling1779 behaves like a pullable1780 behaves like an accessible1781 has the correct scope1782 behaves like a valid token1783 is expected to include :token1784 is expected to include "access"1785 a expirable1786 for default configuration1787 is expected not to be within 2 of 2021-12-20 17:04:01.879898677 +00001788 for changed configuration1789 is expected to be within 2 of 2021-12-20 17:04:01.981985208 +00001790 when pushing1791 behaves like a pushable1792 behaves like an accessible1793 has the correct scope1794 behaves like a valid token1795 is expected to include :token1796 is expected to include "access"1797 a expirable1798 for default configuration1799 is expected not to be within 2 of 2021-12-20 17:04:02.695717442 +00001800 for changed configuration1801 is expected to be within 2 of 2021-12-20 17:04:02.872549865 +00001802 behaves like able to login1803 registry provides read_container_image authentication_abilities1804 behaves like an authenticated1805 is expected to include :token1806 is expected to include "access"1807 for internal project1808 when pulling1809 behaves like a pullable1810 behaves like an accessible1811 has the correct scope1812 behaves like a valid token1813 is expected to include :token1814 is expected to include "access"1815 a expirable1816 for default configuration1817 is expected not to be within 2 of 2021-12-20 17:04:03.969049714 +00001818 for changed configuration1819 is expected to be within 2 of 2021-12-20 17:04:04.053104606 +00001820 when pushing1821 behaves like a pushable1822 behaves like an accessible1823 has the correct scope1824 behaves like a valid token1825 is expected to include :token1826 is expected to include "access"1827 a expirable1828 for default configuration1829 is expected not to be within 2 of 2021-12-20 17:04:04.418318523 +00001830 for changed configuration1831 is expected to be within 2 of 2021-12-20 17:04:04.507006824 +00001832 behaves like able to login1833 registry provides read_container_image authentication_abilities1834 behaves like an authenticated1835 is expected to include :token1836 is expected to include "access"1837 for private project1838 when pulling1839 behaves like a pullable1840 behaves like an accessible1841 has the correct scope1842 behaves like a valid token1843 is expected to include :token1844 is expected to include "access"1845 a expirable1846 for default configuration1847 is expected not to be within 2 of 2021-12-20 17:04:05.117398878 +00001848 for changed configuration1849 is expected to be within 2 of 2021-12-20 17:04:05.202235030 +00001850 when pushing1851 behaves like a pushable1852 behaves like an accessible1853 has the correct scope1854 behaves like a valid token1855 is expected to include :token1856 is expected to include "access"1857 a expirable1858 for default configuration1859 is expected not to be within 2 of 2021-12-20 17:04:05.560314157 +00001860 for changed configuration1861 is expected to be within 2 of 2021-12-20 17:04:05.653718978 +00001862 behaves like able to login1863 registry provides read_container_image authentication_abilities1864 behaves like an authenticated1865 is expected to include :token1866 is expected to include "access"1867 for public project with private container registry1868 when pulling1869 behaves like a pullable1870 behaves like an accessible1871 has the correct scope1872 behaves like a valid token1873 is expected to include :token1874 is expected to include "access"1875 a expirable1876 for default configuration1877 is expected not to be within 2 of 2021-12-20 17:04:06.750322027 +00001878 for changed configuration1879 is expected to be within 2 of 2021-12-20 17:04:06.914225032 +00001880 when pushing1881 behaves like a pushable1882 behaves like an accessible1883 has the correct scope1884 behaves like a valid token1885 is expected to include :token1886 is expected to include "access"1887 a expirable1888 for default configuration1889 is expected not to be within 2 of 2021-12-20 17:04:07.552686563 +00001890 for changed configuration1891 is expected to be within 2 of 2021-12-20 17:04:07.663317383 +00001892 behaves like able to login1893 registry provides read_container_image authentication_abilities1894 behaves like an authenticated1895 is expected to include :token1896 is expected to include "access"1897 when deploy token does not have read_registry scope1898 for public project with container registry `enabled`1899 when pulling1900 behaves like a pullable1901 behaves like an accessible1902 has the correct scope1903 behaves like a valid token1904 is expected to include :token1905 is expected to include "access"1906 a expirable1907 for default configuration1908 is expected not to be within 2 of 2021-12-20 17:04:08.587193977 +00001909 for changed configuration1910 is expected to be within 2 of 2021-12-20 17:04:08.742673713 +00001911 behaves like unable to login1912 registry provides no container authentication_abilities1913 behaves like a forbidden1914 is expected to include {:http_status => 403}1915 is expected not to include :token1916 registry provides inapplicable container authentication_abilities1917 behaves like a forbidden1918 is expected to include {:http_status => 403}1919 is expected not to include :token1920 for public project with container registry `private`1921 when pulling1922 behaves like an inaccessible1923 is expected to include {"access" => []}1924 behaves like a valid token1925 is expected to include :token1926 is expected to include "access"1927 a expirable1928 for default configuration1929 is expected not to be within 2 of 2021-12-20 17:04:09.906874095 +00001930 for changed configuration1931 is expected to be within 2 of 2021-12-20 17:04:10.018831415 +00001932 behaves like unable to login1933 registry provides no container authentication_abilities1934 behaves like a forbidden1935 is expected to include {:http_status => 403}1936 is expected not to include :token1937 registry provides inapplicable container authentication_abilities1938 behaves like a forbidden1939 is expected to include {:http_status => 403}1940 is expected not to include :token1941 for internal project1942 when pulling1943 behaves like an inaccessible1944 is expected to include {"access" => []}1945 behaves like a valid token1946 is expected to include :token1947 is expected to include "access"1948 a expirable1949 for default configuration1950 is expected not to be within 2 of 2021-12-20 17:04:10.803025393 +00001951 for changed configuration1952 is expected to be within 2 of 2021-12-20 17:04:10.886552155 +00001953 behaves like unable to login1954 registry provides no container authentication_abilities1955 behaves like a forbidden1956 is expected to include {:http_status => 403}1957 is expected not to include :token1958 registry provides inapplicable container authentication_abilities1959 behaves like a forbidden1960 is expected to include {:http_status => 403}1961 is expected not to include :token1962 for private project1963 when pulling1964 behaves like an inaccessible1965 is expected to include {"access" => []}1966 behaves like a valid token1967 is expected to include :token1968 is expected to include "access"1969 a expirable1970 for default configuration1971 is expected not to be within 2 of 2021-12-20 17:04:11.806599428 +00001972 for changed configuration1973 is expected to be within 2 of 2021-12-20 17:04:11.943088482 +00001974 when logging in1975 behaves like a forbidden1976 is expected to include {:http_status => 403}1977 is expected not to include :token1978 behaves like unable to login1979 registry provides no container authentication_abilities1980 behaves like a forbidden1981 is expected to include {:http_status => 403}1982 is expected not to include :token1983 registry provides inapplicable container authentication_abilities1984 behaves like a forbidden1985 is expected to include {:http_status => 403}1986 is expected not to include :token1987 when deploy token is not related to the project1988 for public project with container registry `enabled`1989 when pulling1990 behaves like a pullable1991 behaves like an accessible1992 has the correct scope1993 behaves like a valid token1994 is expected to include :token1995 is expected to include "access"1996 a expirable1997 for default configuration1998 is expected not to be within 2 of 2021-12-20 17:04:12.980571984 +00001999 for changed configuration2000 is expected to be within 2 of 2021-12-20 17:04:13.068554224 +00002001 for public project with container registry `private`2002 when pulling2003 behaves like an inaccessible2004 is expected to include {"access" => []}2005 behaves like a valid token2006 is expected to include :token2007 is expected to include "access"2008 a expirable2009 for default configuration2010 is expected not to be within 2 of 2021-12-20 17:04:13.635416984 +00002011 for changed configuration2012 is expected to be within 2 of 2021-12-20 17:04:13.707515935 +00002013 for internal project2014 when pulling2015 behaves like an inaccessible2016 is expected to include {"access" => []}2017 behaves like a valid token2018 is expected to include :token2019 is expected to include "access"2020 a expirable2021 for default configuration2022 is expected not to be within 2 of 2021-12-20 17:04:14.062836831 +00002023 for changed configuration2024 is expected to be within 2 of 2021-12-20 17:04:14.110974795 +00002025 for private project2026 when pulling2027 behaves like an inaccessible2028 is expected to include {"access" => []}2029 behaves like a valid token2030 is expected to include :token2031 is expected to include "access"2032 a expirable2033 for default configuration2034 is expected not to be within 2 of 2021-12-20 17:04:14.564425980 +00002035 for changed configuration2036 is expected to be within 2 of 2021-12-20 17:04:14.643975340 +00002037 when deploy token has been revoked2038 for public project with container registry `enabled`2039 behaves like a pullable2040 behaves like an accessible2041 has the correct scope2042 behaves like a valid token2043 is expected to include :token2044 is expected to include "access"2045 a expirable2046 for default configuration2047 is expected not to be within 2 of 2021-12-20 17:04:15.335407015 +00002048 for changed configuration2049 is expected to be within 2 of 2021-12-20 17:04:15.456774670 +00002050 for public project with container registry `private`2051 behaves like an inaccessible2052 is expected to include {"access" => []}2053 behaves like a valid token2054 is expected to include :token2055 is expected to include "access"2056 a expirable2057 for default configuration2058 is expected not to be within 2 of 2021-12-20 17:04:16.187595980 +00002059 for changed configuration2060 is expected to be within 2 of 2021-12-20 17:04:16.305126896 +00002061 for internal project2062 behaves like an inaccessible2063 is expected to include {"access" => []}2064 behaves like a valid token2065 is expected to include :token2066 is expected to include "access"2067 a expirable2068 for default configuration2069 is expected not to be within 2 of 2021-12-20 17:04:16.963372405 +00002070 for changed configuration2071 is expected to be within 2 of 2021-12-20 17:04:17.057156923 +00002072 for private project2073 behaves like an inaccessible2074 is expected to include {"access" => []}2075 behaves like a valid token2076 is expected to include :token2077 is expected to include "access"2078 a expirable2079 for default configuration2080 is expected not to be within 2 of 2021-12-20 17:04:17.520844426 +00002081 for changed configuration2082 is expected to be within 2 of 2021-12-20 17:04:17.595720427 +00002083 user authorization2084 with multiple scopes2085 allow developer to push images2086 behaves like a pushable2087 behaves like an accessible2088 has the correct scope2089 behaves like a valid token2090 is expected to include :token2091 is expected to include "access"2092 a expirable2093 for default configuration2094 is expected not to be within 2 of 2021-12-20 17:04:18.134644771 +00002095 for changed configuration2096 is expected to be within 2 of 2021-12-20 17:04:18.208311872 +00002097 behaves like container repository factory2098 creates a new container repository resource2099 when in migration mode2100 with pull action2101 behaves like a modified token2102 with a non eligible root ancestor and project2103 behaves like a modified token with migration eligibility2104 is expected to include (include {"migration_eligible" => false})2105 behaves like a valid token2106 is expected to include :token2107 is expected to include "access"2108 a expirable2109 for default configuration2110 is expected not to be within 2 of 2021-12-20 17:04:19.086582404 +00002111 for changed configuration2112 is expected to be within 2 of 2021-12-20 17:04:19.219958357 +00002113 with a non eligible root ancestor and eligible project2114 behaves like a modified token with migration eligibility2115 is expected to include (include {"migration_eligible" => false})2116 behaves like a valid token2117 is expected to include :token2118 is expected to include "access"2119 a expirable2120 for default configuration2121 is expected not to be within 2 of 2021-12-20 17:04:19.726954355 +00002122 for changed configuration2123 is expected to be within 2 of 2021-12-20 17:04:19.859597529 +00002124 with an eligible root ancestor and non eligible project2125 behaves like a modified token with migration eligibility2126 is expected to include (include {"migration_eligible" => false})2127 behaves like a valid token2128 is expected to include :token2129 is expected to include "access"2130 a expirable2131 for default configuration2132 is expected not to be within 2 of 2021-12-20 17:04:20.471527964 +00002133 for changed configuration2134 is expected to be within 2 of 2021-12-20 17:04:20.677505678 +00002135 with an eligible root ancestor and project2136 behaves like a modified token with migration eligibility2137 is expected to include (include {"migration_eligible" => true})2138 behaves like a valid token2139 is expected to include :token2140 is expected to include "access"2141 a expirable2142 for default configuration2143 is expected not to be within 2 of 2021-12-20 17:04:21.249609848 +00002144 for changed configuration2145 is expected to be within 2 of 2021-12-20 17:04:21.393133561 +00002146 with push action2147 behaves like a modified token2148 with a non eligible root ancestor and project2149 behaves like a modified token with migration eligibility2150 is expected to include (include {"migration_eligible" => false})2151 behaves like a valid token2152 is expected to include :token2153 is expected to include "access"2154 a expirable2155 for default configuration2156 is expected not to be within 2 of 2021-12-20 17:04:22.001498986 +00002157 for changed configuration2158 is expected to be within 2 of 2021-12-20 17:04:22.143928348 +00002159 with a non eligible root ancestor and eligible project2160 behaves like a modified token with migration eligibility2161 is expected to include (include {"migration_eligible" => false})2162 behaves like a valid token2163 is expected to include :token2164 is expected to include "access"2165 a expirable2166 for default configuration2167 is expected not to be within 2 of 2021-12-20 17:04:22.706414159 +00002168 for changed configuration2169 is expected to be within 2 of 2021-12-20 17:04:22.854138331 +00002170 with an eligible root ancestor and non eligible project2171 behaves like a modified token with migration eligibility2172 is expected to include (include {"migration_eligible" => false})2173 behaves like a valid token2174 is expected to include :token2175 is expected to include "access"2176 a expirable2177 for default configuration2178 is expected not to be within 2 of 2021-12-20 17:04:23.431635130 +00002179 for changed configuration2180 is expected to be within 2 of 2021-12-20 17:04:23.581033592 +00002181 with an eligible root ancestor and project2182 behaves like a modified token with migration eligibility2183 is expected to include (include {"migration_eligible" => true})2184 behaves like a valid token2185 is expected to include :token2186 is expected to include "access"2187 a expirable2188 for default configuration2189 is expected not to be within 2 of 2021-12-20 17:04:24.192367586 +00002190 for changed configuration2191 is expected to be within 2 of 2021-12-20 17:04:24.335481959 +00002192 with multiple actions2193 behaves like a modified token2194 with a non eligible root ancestor and project2195 behaves like a modified token with migration eligibility2196 is expected to include (include {"migration_eligible" => false})2197 behaves like a valid token2198 is expected to include :token2199 is expected to include "access"2200 a expirable2201 for default configuration2202 is expected not to be within 2 of 2021-12-20 17:04:24.936638885 +00002203 for changed configuration2204 is expected to be within 2 of 2021-12-20 17:04:25.092527096 +00002205 with a non eligible root ancestor and eligible project2206 behaves like a modified token with migration eligibility2207 is expected to include (include {"migration_eligible" => false})2208 behaves like a valid token2209 is expected to include :token2210 is expected to include "access"2211 a expirable2212 for default configuration2213 is expected not to be within 2 of 2021-12-20 17:04:25.710239890 +00002214 for changed configuration2215 is expected to be within 2 of 2021-12-20 17:04:25.920530904 +00002216 with an eligible root ancestor and non eligible project2217 behaves like a modified token with migration eligibility2218 is expected to include (include {"migration_eligible" => false})2219 behaves like a valid token2220 is expected to include :token2221 is expected to include "access"2222 a expirable2223 for default configuration2224 is expected not to be within 2 of 2021-12-20 17:04:26.523161670 +00002225 for changed configuration2226 is expected to be within 2 of 2021-12-20 17:04:26.682884311 +00002227 with an eligible root ancestor and project2228 behaves like a modified token with migration eligibility2229 is expected to include (include {"migration_eligible" => true})2230 behaves like a valid token2231 is expected to include :token2232 is expected to include "access"2233 a expirable2234 for default configuration2235 is expected not to be within 2 of 2021-12-20 17:04:27.444633557 +00002236 for changed configuration2237 is expected to be within 2 of 2021-12-20 17:04:27.680957128 +00002238 #access_token2239 behaves like a modified token2240 with a non eligible root ancestor and project2241 behaves like a modified token with migration eligibility2242 is expected to include (include {"migration_eligible" => false})2243 behaves like a valid token2244 is expected to include :token2245 is expected to include "access"2246 a expirable2247 for default configuration2248 is expected not to be within 2 of 2021-12-20 17:04:28.358386525 +00002249 for changed configuration2250 is expected to be within 2 of 2021-12-20 17:04:28.538426952 +00002251 with a non eligible root ancestor and eligible project2252 behaves like a modified token with migration eligibility2253 is expected to include (include {"migration_eligible" => false})2254 behaves like a valid token2255 is expected to include :token2256 is expected to include "access"2257 a expirable2258 for default configuration2259 is expected not to be within 2 of 2021-12-20 17:04:29.257190034 +00002260 for changed configuration2261 is expected to be within 2 of 2021-12-20 17:04:29.426950843 +00002262 with an eligible root ancestor and non eligible project2263 behaves like a modified token with migration eligibility2264 is expected to include (include {"migration_eligible" => false})2265 behaves like a valid token2266 is expected to include :token2267 is expected to include "access"2268 a expirable2269 for default configuration2270 is expected not to be within 2 of 2021-12-20 17:04:30.078967863 +00002271 for changed configuration2272 is expected to be within 2 of 2021-12-20 17:04:30.253294872 +00002273 with an eligible root ancestor and project2274 behaves like a modified token with migration eligibility2275 is expected to include (include {"migration_eligible" => true})2276 behaves like a valid token2277 is expected to include :token2278 is expected to include "access"2279 a expirable2280 for default configuration2281 is expected not to be within 2 of 2021-12-20 17:04:30.900502132 +00002282 for changed configuration2283 is expected to be within 2 of 2021-12-20 17:04:31.075256571 +00002284 when not in migration mode2285 #access_token2286 behaves like an unmodified token2287 is expected not to include (have key "migration_eligible")2288 behaves like a valid token2289 is expected to include :token2290 is expected to include "access"2291 a expirable2292 for default configuration2293 is expected not to be within 2 of 2021-12-20 17:04:31.527069375 +00002294 for changed configuration2295 is expected to be within 2 of 2021-12-20 17:04:31.586046108 +00002296MergeRequests::RefreshService2297 #execute2298 push to origin repo source branch2299 executes hooks with update action2300 reloads source branch MRs memoization2301 outdates MR suggestions2302 calls the merge request activity counter2303 query count2304 does not execute a lot of queries2305 when a merge error exists2306 clears merge errors when pushing to the source branch2307 does not clear merge errors when pushing to the target branch2308 when source branch ref does not exists2309 closes MRs without source branch ref2310 does not change the merge request diff2311 when pipeline exists for the source branch2312 updates the head_pipeline_id for @merge_request2313 does not update the head_pipeline_id for @fork_merge_request2314 Pipelines for merge requests2315 when .gitlab-ci.yml has merge_requests keywords2316 create detached merge request pipeline with commits2317 does not create detached merge request pipeline for forked project2318 create detached merge request pipeline for non-fork merge request2319 when service is hooked by target branch2320 does not create detached merge request pipeline2321 when service runs on forked project2322 creates detached merge request pipeline for fork merge request2323 when branch pipeline was created before a detaced merge request pipeline has been created2324 sets the latest detached merge request pipeline as a head pipeline2325 returns pipelines in correct order2326 when MergeRequestUpdateWorker is retried by an exception2327 does not re-create a duplicate detached merge request pipeline2328 when the pipeline should be skipped2329 saves a skipped detached merge request pipeline2330 when .gitlab-ci.yml does not have merge_requests keywords2331 does not create a detached merge request pipeline2332 when .gitlab-ci.yml is invalid2333 persists a pipeline with config error2334 when .gitlab-ci.yml file is valid but has a logical error2335 persists a pipeline with config error2336 push to origin repo source branch2337 executes hooks with update action2338 push to origin repo target branch2339 when all MRs to the target branch had diffs2340 updates the merge state2341 when an MR to be closed was empty already2342 only updates the non-empty MRs2343 manual merge of source branch2344 updates the merge state2345 push to fork repo source branch2346 open fork merge request2347 calls MergeRequests::LinkLfsObjectsService#execute2348 executes hooks with update action2349 outdates opened forked MR suggestions2350 closed fork merge request2351 do not execute hooks with update action2352 updates merge request to closed state2353 push to fork repo target branch2354 changes to merge requests2355 updates the merge request state2356 merge request diff2357 does not reload the diff of the merge request made from fork2358 forked projects with the same source branch name as target branch2359 reloads a new diff for a push to the forked project2360 reloads a new diff for a force push to the source branch2361 reloads a new diff for a force push to the target branch2362 reloads a new diff for a push to the target project that contains a commit in the MR2363 does not increase the diff count for a new push to target branch2364 push to origin repo target branch after fork project was removed2365 updates the merge request state2366 push new branch that exists in a merge request2367 refreshes the merge request2368 merge request metrics2369 when the merge request is sourced from the same project2370 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit2371 when the merge request is sourced from a different project2372 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit2373 marking the merge request as draft2374 marks the merge request as draft from fixup commits2375 references the commit that caused the draft status2376 does not mark as draft based on commits that do not belong to an MR2377 updating merge_commit2378 feature enabled2379 updates merge requests' merge_commits2380 #abort_ff_merge_requests_with_when_pipeline_succeeds2381 when Project#merge_method is set to FF2382 behaves like aborted merge requests for MWPS2383 aborts auto_merge2384 removes merge_user2385 does not add todos for merge user2386 adds todos for merge author2387 with forked project2388 behaves like aborted merge requests for MWPS2389 aborts auto_merge2390 removes merge_user2391 does not add todos for merge user2392 adds todos for merge author2393 with bogus auto merge strategy2394 behaves like maintained merge requests for MWPS2395 does not cancel auto merge2396 does not change merge_user2397 does not add todos2398 when Project#merge_method is set to rebase_merge2399 behaves like aborted merge requests for MWPS2400 aborts auto_merge2401 removes merge_user2402 does not add todos for merge user2403 adds todos for merge author2404 with forked project2405 behaves like aborted merge requests for MWPS2406 aborts auto_merge2407 removes merge_user2408 does not add todos for merge user2409 adds todos for merge author2410 when Project#merge_method is set to merge2411 behaves like maintained merge requests for MWPS2412 does not cancel auto merge2413 does not change merge_user2414 does not add todos2415 with forked project2416 behaves like maintained merge requests for MWPS2417 does not cancel auto merge2418 does not change merge_user2419 does not add todos2420Git::BranchPushService2421 Push branches2422 new branch2423 is expected to be truthy2424 calls the after_push_commit hook2425 calls the after_create_branch hook2426 existing branch2427 is expected to be truthy2428 calls the after_push_commit hook2429 rm branch2430 is expected to be truthy2431 calls the after_push_commit hook2432 calls the after_remove_branch hook2433 Pipelines2434 creates a pipeline with the right parameters2435 creates a new pipeline2436 when pipeline has errors2437 reports an error2438 with push options2439 sanitizes push options2440 when .gitlab-ci.yml file is invalid2441 persists an error pipeline2442 Updates merge requests2443 when pushing a new branch for the first time2444 Updates git attributes2445 for default branch2446 calls the copy attributes method for the first push to the default branch2447 calls the copy attributes method for changes to the default branch2448 for non-default branch2449 does not call copy attributes method2450 Webhooks2451 execute webhooks2452 when pushing a branch for the first time2453 when pushing a branch for the first time with default branch protection disabled2454 when pushing a branch for the first time with default branch protection set to 'developers can push'2455 when pushing a branch for the first time with an existing branch permission configured2456 when pushing a branch for the first time with default branch protection set to 'developers can merge'2457 when pushing new commits to existing branch2458 cross-reference notes2459 creates a note if a pushed commit mentions an issue2460 only creates a cross-reference note if one doesn't already exist2461 defaults to the pushing user if the commit's author is not known2462 finds references in the first push to a non-default branch2463 issue metrics2464 while saving the 'first_mentioned_in_commit_at' metric for an issue2465 sets the metric for referenced issues2466 does not set the metric for non-referenced issues2467 closing issues from pushed commits containing a closing reference2468 to default branches2469 closes issues2470 adds a note indicating that the issue is now closed2471 doesn't create additional cross-reference notes2472 to non-default branches2473 creates cross-reference notes2474 doesn't close issues2475 for jira issue tracker2476 mentioning an issue2477 initiates one api call to jira server to mention the issue2478 closing an issue2479 using right markdown2480 initiates one api call to jira server to close the issue2481 initiates one api call to jira server to comment on the issue2482 using internal issue reference2483 when internal issues are disabled2484 does not initiates one api call to jira server to close the issue2485 does not initiates one api call to jira server to comment on the issue2486 when internal issues are enabled2487 initiates one api call to jira server to close the jira issue2488 initiates one api call to jira server to comment on the jira issue2489 closes the internal issue2490 adds a note indicating that the issue is now closed2491 empty project2492 push to first branch updates HEAD2493 CI environments2494 create branch2495 does nothing2496 update branch2497 does nothing2498 delete branch2499 stops environments2500 artifacts2501 create branch2502 does nothing2503 update branch2504 does nothing2505 delete branch2506 unlocks artifacts2507 Hooks2508 run on a branch2509 delegates to Git::BranchHooksService2510 run on a tag2511 does nothing2512 Jira Connect hooks2513 with a Jira subscription2514 branch name contains Jira issue key2515 behaves like enqueues Jira sync worker2516 aggregate_failures2517 commit message contains Jira issue key2518 behaves like enqueues Jira sync worker2519 aggregate_failures2520 branch name and commit message does not contain Jira issue key2521 behaves like does not enqueue Jira sync worker2522 is expected not to change `Array#size`2523 without a Jira subscription2524 behaves like does not enqueue Jira sync worker2525 is expected not to change `Array#size`2526Ci::UnlockArtifactsService2527 tag: false, ci_update_unlocked_job_artifacts: false2528 #execute2529 when running on a ref before a pipeline2530 unlocks artifacts from older pipelines2531 does not unlock artifacts for tag or branch with same name as ref2532 does not unlock artifacts from newer pipelines2533 does not lock artifacts from old unlocked pipelines2534 does not unlock artifacts from the same pipeline2535 does not unlock artifacts for other refs2536 does not unlock artifacts for child pipeline2537 unlocks job artifact records (PENDING: No reason given)2538 when running on just the ref2539 unlocks artifacts from older pipelines2540 unlocks artifacts from newer pipelines2541 unlocks artifacts from the same pipeline2542 does not unlock artifacts for tag or branch with same name as ref2543 does not lock artifacts from old unlocked pipelines2544 does not unlock artifacts for other refs2545 unlocks job artifact records (PENDING: No reason given)2546 #unlock_pipelines_query2547 when running on a ref before a pipeline2548 produces the expected SQL string2549 when running on just the ref2550 produces the expected SQL string2551 #unlock_job_artifacts_query2552 when running on a ref before a pipeline2553 produces the expected SQL string2554 when running on just the ref2555 produces the expected SQL string2556 tag: false, ci_update_unlocked_job_artifacts: true2557 #execute2558 when running on a ref before a pipeline2559 unlocks artifacts from older pipelines2560 does not unlock artifacts for tag or branch with same name as ref2561 does not unlock artifacts from newer pipelines2562 does not lock artifacts from old unlocked pipelines2563 does not unlock artifacts from the same pipeline2564 does not unlock artifacts for other refs2565 does not unlock artifacts for child pipeline2566 unlocks job artifact records2567 when running on just the ref2568 unlocks artifacts from older pipelines2569 unlocks artifacts from newer pipelines2570 unlocks artifacts from the same pipeline2571 does not unlock artifacts for tag or branch with same name as ref2572 does not lock artifacts from old unlocked pipelines2573 does not unlock artifacts for other refs2574 unlocks job artifact records2575 #unlock_pipelines_query2576 when running on a ref before a pipeline2577 produces the expected SQL string2578 when running on just the ref2579 produces the expected SQL string2580 #unlock_job_artifacts_query2581 when running on a ref before a pipeline2582 produces the expected SQL string2583 when running on just the ref2584 produces the expected SQL string2585 tag: true, ci_update_unlocked_job_artifacts: false2586 #execute2587 when running on a ref before a pipeline2588 unlocks artifacts from older pipelines2589 does not unlock artifacts for tag or branch with same name as ref2590 does not unlock artifacts from newer pipelines2591 does not lock artifacts from old unlocked pipelines2592 does not unlock artifacts from the same pipeline2593 does not unlock artifacts for other refs2594 does not unlock artifacts for child pipeline2595 unlocks job artifact records (PENDING: No reason given)2596 when running on just the ref2597 unlocks artifacts from older pipelines2598 unlocks artifacts from newer pipelines2599 unlocks artifacts from the same pipeline2600 does not unlock artifacts for tag or branch with same name as ref2601 does not lock artifacts from old unlocked pipelines2602 does not unlock artifacts for other refs2603 unlocks job artifact records (PENDING: No reason given)2604 #unlock_pipelines_query2605 when running on a ref before a pipeline2606 produces the expected SQL string2607 when running on just the ref2608 produces the expected SQL string2609 #unlock_job_artifacts_query2610 when running on a ref before a pipeline2611 produces the expected SQL string2612 when running on just the ref2613 produces the expected SQL string2614 tag: true, ci_update_unlocked_job_artifacts: true2615 #execute2616 when running on a ref before a pipeline2617 unlocks artifacts from older pipelines2618 does not unlock artifacts for tag or branch with same name as ref2619 does not unlock artifacts from newer pipelines2620 does not lock artifacts from old unlocked pipelines2621 does not unlock artifacts from the same pipeline2622 does not unlock artifacts for other refs2623 does not unlock artifacts for child pipeline2624 unlocks job artifact records2625 when running on just the ref2626 unlocks artifacts from older pipelines2627 unlocks artifacts from newer pipelines2628 unlocks artifacts from the same pipeline2629 does not unlock artifacts for tag or branch with same name as ref2630 does not lock artifacts from old unlocked pipelines2631 does not unlock artifacts for other refs2632 unlocks job artifact records2633 #unlock_pipelines_query2634 when running on a ref before a pipeline2635 produces the expected SQL string2636 when running on just the ref2637 produces the expected SQL string2638 #unlock_job_artifacts_query2639 when running on a ref before a pipeline2640 produces the expected SQL string2641 when running on just the ref2642 produces the expected SQL string2643Gitlab::ImportExport::Group::TreeRestorer2644 restore group tree2645 has the group description2646 has group labels2647 has badges2648 has milestones2649 has group children2650 has group members2651 issue boards2652 has issue boards2653 has board label lists2654 child with no parent2655 captures import failures when a child group does not have a valid parent_id2656 when child group creation fails2657 captures import failure2658 excluded attributes2659 does not import root group name2660 does not import root group path2661 does not allow override of excluded attributes2662 does not allow override of excluded attributes2663 does not allow override of excluded attributes2664 does not allow override of excluded attributes2665 does not allow override of excluded attributes2666 does not allow override of excluded attributes2667 does not allow override of excluded attributes2668 does not allow override of excluded attributes2669 group.json file access check2670 does not read a symlink2671 group visibility levels2672 when visibility level is public2673 imports all subgroups as public2674 when visibility level is private2675 imports all subgroups as private2676 when visibility level is internal2677 imports all subgroups as internal2678Discussion ResolvableDiscussion2679 #resolvable?2680 when potentially resolvable2681 when all notes are unresolvable2682 returns false2683 when some notes are unresolvable and some notes are resolvable2684 returns true2685 when all notes are resolvable2686 returns true2687 when not potentially resolvable2688 returns false2689 #resolved?2690 when not resolvable2691 returns false2692 when resolvable2693 when all resolvable notes are resolved2694 returns true2695 when some resolvable notes are not resolved2696 returns false2697 #to_be_resolved?2698 when not resolvable2699 returns false2700 when resolvable2701 when all resolvable notes are resolved2702 returns false2703 when some resolvable notes are not resolved2704 returns true2705 #can_resolve?2706 when not resolvable2707 returns false2708 when resolvable2709 when not signed in2710 returns false2711 when signed in2712 when the signed in user is the noteable author2713 returns true2714 when noteable is locked2715 returns false2716 when the signed in user can push to the project2717 returns true2718 when the noteable has no author2719 returns true2720 when the signed in user is a random user2721 returns false2722 when the noteable has no author2723 returns false2724 #resolve!2725 when not resolvable2726 returns nil2727 doesn't set resolved_at2728 doesn't set resolved_by2729 doesn't mark as resolved2730 when resolvable2731 when all resolvable notes are resolved2732 doesn't change resolved_at on the resolved notes2733 doesn't change resolved_by on the resolved notes2734 doesn't change the resolved state on the resolved notes2735 doesn't change resolved_at2736 doesn't change resolved_by2737 doesn't change resolved state2738 when some resolvable notes are resolved2739 doesn't change resolved_at on the resolved note2740 doesn't change resolved_by on the resolved note2741 doesn't change the resolved state on the resolved note2742 sets resolved_at on the unresolved note2743 sets resolved_by on the unresolved note2744 marks the unresolved note as resolved2745 sets resolved_at2746 sets resolved_by2747 marks as resolved2748 when no resolvable notes are resolved2749 sets resolved_at on the unresolved notes2750 sets resolved_by on the unresolved notes2751 marks the unresolved notes as resolved2752 sets resolved_at2753 sets resolved_by2754 marks as resolved2755 #unresolve!2756 when not resolvable2757 returns nil2758 when resolvable2759 when all resolvable notes are resolved2760 unsets resolved_at on the resolved notes2761 unsets resolved_by on the resolved notes2762 unmarks the resolved notes as resolved2763 unsets resolved_at2764 unsets resolved_by2765 unmarks as resolved2766 when some resolvable notes are resolved2767 unsets resolved_at on the resolved note2768 unsets resolved_by on the resolved note2769 unmarks the resolved note as resolved2770 #first_note_to_resolve2771 returns the first note that still needs to be resolved2772 #last_resolved_note2773 returns the last note that was resolved2774gitlab:workhorse namespace rake task2775 install2776 clones the origin and creates a gitlab-workhorse binary2777 no dir given2778 aborts and display a help message2779 when an underlying Git command fails2780 aborts and display a help message2781Gitlab::ImportExport::AttributesPermitter2782 #permitted_attributes2783 builds permitted attributes hash2784 #permit2785 only allows permitted attributes2786 #permitted_attributes_for2787 returns an array of permitted attributes for a relation2788 #permitted_attributes_defined?2789 relation_name: :user, permitted_attributes_defined: true2790 is expected to eq true2791 relation_name: :author, permitted_attributes_defined: false2792 is expected to eq false2793 relation_name: :ci_cd_settings, permitted_attributes_defined: true2794 is expected to eq true2795 relation_name: :metrics_setting, permitted_attributes_defined: true2796 is expected to eq true2797 relation_name: :project_badges, permitted_attributes_defined: true2798 is expected to eq true2799 relation_name: :pipeline_schedules, permitted_attributes_defined: true2800 is expected to eq true2801 relation_name: :error_tracking_setting, permitted_attributes_defined: true2802 is expected to eq true2803 relation_name: :auto_devops, permitted_attributes_defined: true2804 is expected to eq true2805 relation_name: :boards, permitted_attributes_defined: true2806 is expected to eq true2807 relation_name: :custom_attributes, permitted_attributes_defined: true2808 is expected to eq true2809 relation_name: :label, permitted_attributes_defined: true2810 is expected to eq true2811 relation_name: :labels, permitted_attributes_defined: true2812 is expected to eq true2813 relation_name: :protected_branches, permitted_attributes_defined: true2814 is expected to eq true2815 relation_name: :protected_tags, permitted_attributes_defined: true2816 is expected to eq true2817 relation_name: :create_access_levels, permitted_attributes_defined: true2818 is expected to eq true2819 relation_name: :merge_access_levels, permitted_attributes_defined: true2820 is expected to eq true2821 relation_name: :push_access_levels, permitted_attributes_defined: true2822 is expected to eq true2823 relation_name: :releases, permitted_attributes_defined: true2824 is expected to eq true2825 relation_name: :links, permitted_attributes_defined: true2826 is expected to eq true2827 relation_name: :priorities, permitted_attributes_defined: true2828 is expected to eq true2829 relation_name: :milestone, permitted_attributes_defined: true2830 is expected to eq true2831 relation_name: :milestones, permitted_attributes_defined: true2832 is expected to eq true2833 relation_name: :snippets, permitted_attributes_defined: true2834 is expected to eq true2835 relation_name: :project_members, permitted_attributes_defined: true2836 is expected to eq true2837 relation_name: :merge_request, permitted_attributes_defined: true2838 is expected to eq true2839 relation_name: :merge_requests, permitted_attributes_defined: true2840 is expected to eq true2841 relation_name: :award_emoji, permitted_attributes_defined: true2842 is expected to eq true2843 relation_name: :commit_author, permitted_attributes_defined: true2844 is expected to eq true2845 relation_name: :committer, permitted_attributes_defined: true2846 is expected to eq true2847 relation_name: :events, permitted_attributes_defined: true2848 is expected to eq true2849 relation_name: :label_links, permitted_attributes_defined: true2850 is expected to eq true2851 relation_name: :merge_request_diff, permitted_attributes_defined: true2852 is expected to eq true2853 relation_name: :merge_request_diff_commits, permitted_attributes_defined: true2854 is expected to eq true2855 relation_name: :merge_request_diff_files, permitted_attributes_defined: true2856 is expected to eq true2857 relation_name: :metrics, permitted_attributes_defined: true2858 is expected to eq true2859 relation_name: :notes, permitted_attributes_defined: true2860 is expected to eq true2861 relation_name: :push_event_payload, permitted_attributes_defined: true2862 is expected to eq true2863 relation_name: :resource_label_events, permitted_attributes_defined: true2864 is expected to eq true2865 relation_name: :suggestions, permitted_attributes_defined: true2866 is expected to eq true2867 relation_name: :system_note_metadata, permitted_attributes_defined: true2868 is expected to eq true2869 relation_name: :timelogs, permitted_attributes_defined: true2870 is expected to eq true2871 relation_name: :container_expiration_policy, permitted_attributes_defined: true2872 is expected to eq true2873 relation_name: :project_feature, permitted_attributes_defined: true2874 is expected to eq true2875 relation_name: :prometheus_metrics, permitted_attributes_defined: true2876 is expected to eq true2877 relation_name: :service_desk_setting, permitted_attributes_defined: true2878 is expected to eq true2879 relation_name: :external_pull_request, permitted_attributes_defined: true2880 is expected to eq true2881 relation_name: :external_pull_requests, permitted_attributes_defined: true2882 is expected to eq true2883 relation_name: :statuses, permitted_attributes_defined: true2884 is expected to eq true2885 relation_name: :ci_pipelines, permitted_attributes_defined: true2886 is expected to eq true2887 relation_name: :stages, permitted_attributes_defined: true2888 is expected to eq true2889 relation_name: :actions, permitted_attributes_defined: true2890 is expected to eq true2891 relation_name: :design, permitted_attributes_defined: true2892 is expected to eq true2893 relation_name: :designs, permitted_attributes_defined: true2894 is expected to eq true2895 relation_name: :design_versions, permitted_attributes_defined: true2896 is expected to eq true2897 relation_name: :issue_assignees, permitted_attributes_defined: true2898 is expected to eq true2899 relation_name: :sentry_issue, permitted_attributes_defined: true2900 is expected to eq true2901 relation_name: :zoom_meetings, permitted_attributes_defined: true2902 is expected to eq true2903 relation_name: :issues, permitted_attributes_defined: true2904 is expected to eq true2905 relation_name: :group_members, permitted_attributes_defined: true2906 is expected to eq true2907 relation_name: :project, permitted_attributes_defined: true2908 is expected to eq true2909 included_attributes for Project2910 for user2911 behaves like a permitted attribute2912 contains only attributes that are defined as permitted in the import/export config2913 does not contain attributes that would be cleaned with AttributeCleaner2914 does not contain prohibited attributes that are not related to given relation2915 for author2916 behaves like a permitted attribute2917 is disabled2918 for ci_cd_settings2919 behaves like a permitted attribute2920 contains only attributes that are defined as permitted in the import/export config2921 does not contain attributes that would be cleaned with AttributeCleaner2922 does not contain prohibited attributes that are not related to given relation2923 for metrics_setting2924 behaves like a permitted attribute2925 contains only attributes that are defined as permitted in the import/export config2926 does not contain attributes that would be cleaned with AttributeCleaner2927 does not contain prohibited attributes that are not related to given relation2928 for project_badges2929 behaves like a permitted attribute2930 contains only attributes that are defined as permitted in the import/export config2931 does not contain attributes that would be cleaned with AttributeCleaner2932 does not contain prohibited attributes that are not related to given relation2933 for pipeline_schedules2934 behaves like a permitted attribute2935 contains only attributes that are defined as permitted in the import/export config2936 does not contain attributes that would be cleaned with AttributeCleaner2937 does not contain prohibited attributes that are not related to given relation2938 for error_tracking_setting2939 behaves like a permitted attribute2940 contains only attributes that are defined as permitted in the import/export config2941 does not contain attributes that would be cleaned with AttributeCleaner2942 does not contain prohibited attributes that are not related to given relation2943 for auto_devops2944 behaves like a permitted attribute2945 contains only attributes that are defined as permitted in the import/export config2946 does not contain attributes that would be cleaned with AttributeCleaner2947 does not contain prohibited attributes that are not related to given relation2948 for boards2949 behaves like a permitted attribute2950 contains only attributes that are defined as permitted in the import/export config2951 does not contain attributes that would be cleaned with AttributeCleaner2952 does not contain prohibited attributes that are not related to given relation2953 for lists2954 behaves like a permitted attribute2955 contains only attributes that are defined as permitted in the import/export config2956 does not contain attributes that would be cleaned with AttributeCleaner2957 does not contain prohibited attributes that are not related to given relation2958 for custom_attributes2959 behaves like a permitted attribute2960 contains only attributes that are defined as permitted in the import/export config2961 does not contain attributes that would be cleaned with AttributeCleaner2962 does not contain prohibited attributes that are not related to given relation2963 for label2964 behaves like a permitted attribute2965 contains only attributes that are defined as permitted in the import/export config2966 does not contain attributes that would be cleaned with AttributeCleaner2967 does not contain prohibited attributes that are not related to given relation2968 for labels2969 behaves like a permitted attribute2970 contains only attributes that are defined as permitted in the import/export config2971 does not contain attributes that would be cleaned with AttributeCleaner2972 does not contain prohibited attributes that are not related to given relation2973 for priorities2974 behaves like a permitted attribute2975 contains only attributes that are defined as permitted in the import/export config2976 does not contain attributes that would be cleaned with AttributeCleaner2977 does not contain prohibited attributes that are not related to given relation2978 for milestone2979 behaves like a permitted attribute2980 contains only attributes that are defined as permitted in the import/export config2981 does not contain attributes that would be cleaned with AttributeCleaner2982 does not contain prohibited attributes that are not related to given relation2983 for milestones2984 behaves like a permitted attribute2985 contains only attributes that are defined as permitted in the import/export config2986 does not contain attributes that would be cleaned with AttributeCleaner2987 does not contain prohibited attributes that are not related to given relation2988 for protected_branches2989 behaves like a permitted attribute2990 contains only attributes that are defined as permitted in the import/export config2991 does not contain attributes that would be cleaned with AttributeCleaner2992 does not contain prohibited attributes that are not related to given relation2993 for protected_tags2994 behaves like a permitted attribute2995 contains only attributes that are defined as permitted in the import/export config2996 does not contain attributes that would be cleaned with AttributeCleaner2997 does not contain prohibited attributes that are not related to given relation2998 for create_access_levels2999 behaves like a permitted attribute3000 contains only attributes that are defined as permitted in the import/export config3001 does not contain attributes that would be cleaned with AttributeCleaner3002 does not contain prohibited attributes that are not related to given relation3003 for merge_access_levels3004 behaves like a permitted attribute3005 contains only attributes that are defined as permitted in the import/export config3006 does not contain attributes that would be cleaned with AttributeCleaner3007 does not contain prohibited attributes that are not related to given relation3008 for push_access_levels3009 behaves like a permitted attribute3010 contains only attributes that are defined as permitted in the import/export config3011 does not contain attributes that would be cleaned with AttributeCleaner3012 does not contain prohibited attributes that are not related to given relation3013 for releases3014 behaves like a permitted attribute3015 contains only attributes that are defined as permitted in the import/export config3016 does not contain attributes that would be cleaned with AttributeCleaner3017 does not contain prohibited attributes that are not related to given relation3018 for links3019 behaves like a permitted attribute3020 contains only attributes that are defined as permitted in the import/export config3021 does not contain attributes that would be cleaned with AttributeCleaner3022 does not contain prohibited attributes that are not related to given relation3023 for container_expiration_policy3024 behaves like a permitted attribute3025 contains only attributes that are defined as permitted in the import/export config3026 does not contain attributes that would be cleaned with AttributeCleaner3027 does not contain prohibited attributes that are not related to given relation3028 for project_feature3029 behaves like a permitted attribute3030 contains only attributes that are defined as permitted in the import/export config3031 does not contain attributes that would be cleaned with AttributeCleaner3032 does not contain prohibited attributes that are not related to given relation3033 for prometheus_metrics3034 behaves like a permitted attribute3035 contains only attributes that are defined as permitted in the import/export config3036 does not contain attributes that would be cleaned with AttributeCleaner3037 does not contain prohibited attributes that are not related to given relation3038 for service_desk_setting3039 behaves like a permitted attribute3040 contains only attributes that are defined as permitted in the import/export config3041 does not contain attributes that would be cleaned with AttributeCleaner3042 does not contain prohibited attributes that are not related to given relation3043 for snippets3044 behaves like a permitted attribute3045 contains only attributes that are defined as permitted in the import/export config3046 does not contain attributes that would be cleaned with AttributeCleaner3047 does not contain prohibited attributes that are not related to given relation3048 for project_members3049 behaves like a permitted attribute3050 contains only attributes that are defined as permitted in the import/export config3051 does not contain attributes that would be cleaned with AttributeCleaner3052 does not contain prohibited attributes that are not related to given relation3053 for merge_request3054 behaves like a permitted attribute3055 contains only attributes that are defined as permitted in the import/export config3056 does not contain attributes that would be cleaned with AttributeCleaner3057 does not contain prohibited attributes that are not related to given relation3058 for merge_requests3059 behaves like a permitted attribute3060 contains only attributes that are defined as permitted in the import/export config3061 does not contain attributes that would be cleaned with AttributeCleaner3062 does not contain prohibited attributes that are not related to given relation3063 for award_emoji3064 behaves like a permitted attribute3065 contains only attributes that are defined as permitted in the import/export config3066 does not contain attributes that would be cleaned with AttributeCleaner3067 does not contain prohibited attributes that are not related to given relation3068 for commit_author3069 behaves like a permitted attribute3070 contains only attributes that are defined as permitted in the import/export config3071 does not contain attributes that would be cleaned with AttributeCleaner3072 does not contain prohibited attributes that are not related to given relation3073 for committer3074 behaves like a permitted attribute3075 contains only attributes that are defined as permitted in the import/export config3076 does not contain attributes that would be cleaned with AttributeCleaner3077 does not contain prohibited attributes that are not related to given relation3078 for events3079 behaves like a permitted attribute3080 contains only attributes that are defined as permitted in the import/export config3081 does not contain attributes that would be cleaned with AttributeCleaner3082 does not contain prohibited attributes that are not related to given relation3083 for label_links3084 behaves like a permitted attribute3085 contains only attributes that are defined as permitted in the import/export config3086 does not contain attributes that would be cleaned with AttributeCleaner3087 does not contain prohibited attributes that are not related to given relation3088 for merge_request_diff3089 behaves like a permitted attribute3090 contains only attributes that are defined as permitted in the import/export config3091 does not contain attributes that would be cleaned with AttributeCleaner3092 does not contain prohibited attributes that are not related to given relation3093 for merge_request_diff_commits3094 behaves like a permitted attribute3095 contains only attributes that are defined as permitted in the import/export config3096 does not contain attributes that would be cleaned with AttributeCleaner3097 does not contain prohibited attributes that are not related to given relation3098 for merge_request_diff_files3099 behaves like a permitted attribute3100 contains only attributes that are defined as permitted in the import/export config3101 does not contain attributes that would be cleaned with AttributeCleaner3102 does not contain prohibited attributes that are not related to given relation3103 for metrics3104 behaves like a permitted attribute3105 contains only attributes that are defined as permitted in the import/export config3106 does not contain attributes that would be cleaned with AttributeCleaner3107 does not contain prohibited attributes that are not related to given relation3108 for notes3109 behaves like a permitted attribute3110 contains only attributes that are defined as permitted in the import/export config3111 does not contain attributes that would be cleaned with AttributeCleaner3112 does not contain prohibited attributes that are not related to given relation3113 for push_event_payload3114 behaves like a permitted attribute3115 contains only attributes that are defined as permitted in the import/export config3116 does not contain attributes that would be cleaned with AttributeCleaner3117 does not contain prohibited attributes that are not related to given relation3118 for resource_label_events3119 behaves like a permitted attribute3120 contains only attributes that are defined as permitted in the import/export config3121 does not contain attributes that would be cleaned with AttributeCleaner3122 does not contain prohibited attributes that are not related to given relation3123 for suggestions3124 behaves like a permitted attribute3125 contains only attributes that are defined as permitted in the import/export config3126 does not contain attributes that would be cleaned with AttributeCleaner3127 does not contain prohibited attributes that are not related to given relation3128 for system_note_metadata3129 behaves like a permitted attribute3130 contains only attributes that are defined as permitted in the import/export config3131 does not contain attributes that would be cleaned with AttributeCleaner3132 does not contain prohibited attributes that are not related to given relation3133 for timelogs3134 behaves like a permitted attribute3135 contains only attributes that are defined as permitted in the import/export config3136 does not contain attributes that would be cleaned with AttributeCleaner3137 does not contain prohibited attributes that are not related to given relation3138 for external_pull_request3139 behaves like a permitted attribute3140 contains only attributes that are defined as permitted in the import/export config3141 does not contain attributes that would be cleaned with AttributeCleaner3142 does not contain prohibited attributes that are not related to given relation3143 for external_pull_requests3144 behaves like a permitted attribute3145 contains only attributes that are defined as permitted in the import/export config3146 does not contain attributes that would be cleaned with AttributeCleaner3147 does not contain prohibited attributes that are not related to given relation3148 for statuses3149 behaves like a permitted attribute3150 contains only attributes that are defined as permitted in the import/export config3151 does not contain attributes that would be cleaned with AttributeCleaner3152 does not contain prohibited attributes that are not related to given relation3153 for ci_pipelines3154 behaves like a permitted attribute3155 contains only attributes that are defined as permitted in the import/export config3156 does not contain attributes that would be cleaned with AttributeCleaner3157 does not contain prohibited attributes that are not related to given relation3158 for stages3159 behaves like a permitted attribute3160 contains only attributes that are defined as permitted in the import/export config3161 does not contain attributes that would be cleaned with AttributeCleaner3162 does not contain prohibited attributes that are not related to given relation3163 for actions3164 behaves like a permitted attribute3165 contains only attributes that are defined as permitted in the import/export config3166 does not contain attributes that would be cleaned with AttributeCleaner3167 does not contain prohibited attributes that are not related to given relation3168 for design3169 behaves like a permitted attribute3170 contains only attributes that are defined as permitted in the import/export config3171 does not contain attributes that would be cleaned with AttributeCleaner3172 does not contain prohibited attributes that are not related to given relation3173 for designs3174 behaves like a permitted attribute3175 contains only attributes that are defined as permitted in the import/export config3176 does not contain attributes that would be cleaned with AttributeCleaner3177 does not contain prohibited attributes that are not related to given relation3178 for design_versions3179 behaves like a permitted attribute3180 contains only attributes that are defined as permitted in the import/export config3181 does not contain attributes that would be cleaned with AttributeCleaner3182 does not contain prohibited attributes that are not related to given relation3183 for issue_assignees3184 behaves like a permitted attribute3185 contains only attributes that are defined as permitted in the import/export config3186 does not contain attributes that would be cleaned with AttributeCleaner3187 does not contain prohibited attributes that are not related to given relation3188 for sentry_issue3189 behaves like a permitted attribute3190 contains only attributes that are defined as permitted in the import/export config3191 does not contain attributes that would be cleaned with AttributeCleaner3192 does not contain prohibited attributes that are not related to given relation3193 for zoom_meetings3194 behaves like a permitted attribute3195 contains only attributes that are defined as permitted in the import/export config3196 does not contain attributes that would be cleaned with AttributeCleaner3197 does not contain prohibited attributes that are not related to given relation3198 for issues3199 behaves like a permitted attribute3200 contains only attributes that are defined as permitted in the import/export config3201 does not contain attributes that would be cleaned with AttributeCleaner3202 does not contain prohibited attributes that are not related to given relation3203 for group_members3204 behaves like a permitted attribute3205 contains only attributes that are defined as permitted in the import/export config3206 does not contain attributes that would be cleaned with AttributeCleaner3207 does not contain prohibited attributes that are not related to given relation3208 for project3209 behaves like a permitted attribute3210 contains only attributes that are defined as permitted in the import/export config3211 does not contain attributes that would be cleaned with AttributeCleaner3212 does not contain prohibited attributes that are not related to given relation3213 for issuable_sla3214 behaves like a permitted attribute3215 is disabled3216 for push_rule3217 behaves like a permitted attribute3218 contains only attributes that are defined as permitted in the import/export config3219 does not contain attributes that would be cleaned with AttributeCleaner3220 does not contain prohibited attributes that are not related to given relation3221 for unprotect_access_levels3222 behaves like a permitted attribute3223 contains only attributes that are defined as permitted in the import/export config3224 does not contain attributes that would be cleaned with AttributeCleaner3225 does not contain prohibited attributes that are not related to given relation3226 for deploy_access_levels3227 behaves like a permitted attribute3228 contains only attributes that are defined as permitted in the import/export config3229 does not contain attributes that would be cleaned with AttributeCleaner3230 does not contain prohibited attributes that are not related to given relation3231 for protected_environments3232 behaves like a permitted attribute3233 contains only attributes that are defined as permitted in the import/export config3234 does not contain attributes that would be cleaned with AttributeCleaner3235 does not contain prohibited attributes that are not related to given relation3236 for security_setting3237 behaves like a permitted attribute3238 contains only attributes that are defined as permitted in the import/export config3239 does not contain attributes that would be cleaned with AttributeCleaner3240 does not contain prohibited attributes that are not related to given relation3241LabelsFinder3242 #execute3243 with no filter3244 returns labels from projects the user have access3245 returns labels available if nil title is supplied3246 behaves like filtering by group3247 returns labels available for any non-archived project within the group3248 when only_group_labels is true3249 returns only group labels3250 when group has no projects3251 when only group labels is false3252 returns group labels3253 when including labels from group ancestors3254 returns labels from group and its ancestors3255 ignores labels from groups which user can not read3256 when including labels from group descendants3257 returns labels from group and its descendants3258 ignores labels from groups which user can not read3259 when including labels from group projects with limited visibility3260 when merge requests and issues are not visible for non members3261 when user is not a group member3262 behaves like with limited visibility3263 returns only authorized projects labels3264 when user is a group member3265 behaves like with full visibility3266 returns all projects labels3267 when merge requests are not visible for non members3268 when user is not a group member3269 behaves like with full visibility3270 returns all projects labels3271 when user is a group member3272 behaves like with full visibility3273 returns all projects labels3274 when issues are not visible for non members3275 when user is not a group member3276 behaves like with full visibility3277 returns all projects labels3278 when user is a group member3279 behaves like with full visibility3280 returns all projects labels3281 behaves like filtering by group3282 returns labels available for any non-archived project within the group3283 when only_group_labels is true3284 returns only group labels3285 when group has no projects3286 when only group labels is false3287 returns group labels3288 when including labels from group ancestors3289 returns labels from group and its ancestors3290 ignores labels from groups which user can not read3291 when including labels from group descendants3292 returns labels from group and its descendants3293 ignores labels from groups which user can not read3294 when including labels from group projects with limited visibility3295 when merge requests and issues are not visible for non members3296 when user is not a group member3297 behaves like with limited visibility3298 returns only authorized projects labels3299 when user is a group member3300 behaves like with full visibility3301 returns all projects labels3302 when merge requests are not visible for non members3303 when user is not a group member3304 behaves like with full visibility3305 returns all projects labels3306 when user is a group member3307 behaves like with full visibility3308 returns all projects labels3309 when issues are not visible for non members3310 when user is not a group member3311 behaves like with full visibility3312 returns all projects labels3313 when user is a group member3314 behaves like with full visibility3315 returns all projects labels3316 behaves like filtering by group3317 returns labels available for any non-archived project within the group3318 when only_group_labels is true3319 returns only group labels3320 when group has no projects3321 when only group labels is false3322 returns group labels3323 when including labels from group ancestors3324 returns labels from group and its ancestors3325 ignores labels from groups which user can not read3326 when including labels from group descendants3327 returns labels from group and its descendants3328 ignores labels from groups which user can not read3329 when including labels from group projects with limited visibility3330 when merge requests and issues are not visible for non members3331 when user is not a group member3332 behaves like with limited visibility3333 returns only authorized projects labels3334 when user is a group member3335 behaves like with full visibility3336 returns all projects labels3337 when merge requests are not visible for non members3338 when user is not a group member3339 behaves like with full visibility3340 returns all projects labels3341 when user is a group member3342 behaves like with full visibility3343 returns all projects labels3344 when issues are not visible for non members3345 when user is not a group member3346 behaves like with full visibility3347 returns all projects labels3348 when user is a group member3349 behaves like with full visibility3350 returns all projects labels3351 filtering by project_id3352 returns labels available for the project3353 when include_ancestor_groups is true3354 returns all ancestor labels3355 as an administrator3356 does not return labels from another project3357 filtering by title3358 returns label with that title3359 returns label with title alias3360 returns no labels if empty title is supplied3361 returns no labels if blank title is supplied3362 returns no labels if empty name is supplied3363 search by title and description3364 returns labels with a partially matching title3365 returns labels with a partially matching description3366 returns labels matching a single character3367 filter by subscription3368 returns labels user subscribed to3369 external authorization3370 behaves like a finder with external authorization service3371 finds the subject3372 with an external authorization service3373 does not include the subject when no project was given3374 includes the subject when a project id was given3375MergeRequests::MergeService3376 #execute3377 valid params3378 is expected to be valid3379 is expected to be merged3380 persists merge_commit_sha and nullifies in_progress_merge_commit_sha3381 does not update squash_commit_sha if it is not a squash3382 sends email to user2 about merge of new merge_request3383 note creation3384 creates resource state event about merge_request merge3385 when squashing3386 merges the merge request with squashed commits3387 persists squash_commit_sha3388 running the service multiple time3389 is idempotent3390 when an invalid sha is passed3391 does not merge the MR3392 when the `sha` param is missing3393 returns the error3394 closes related issues3395 closes GitLab issue tracker issues3396 with Jira integration3397 closes issues on Jira issue tracker3398 wrong issue markdown3399 does not close issues on Jira issue tracker3400 closes related todos3401 is expected to be done3402 source branch removal3403 when the source branch is protected3404 does not delete the source branch3405 when the source branch is the default branch3406 does not delete the source branch3407 when the source branch can be removed3408 when MR author set the source branch to be removed3409 removes the source branch using the author user3410 when the merger set the source branch not to be removed3411 does not delete the source branch3412 when MR merger set the source branch to be removed3413 removes the source branch using the current user3414 error handling3415 logs and saves error if there is an exception3416 logs and saves error if user is not authorized3417 logs and saves error if there is an PreReceiveError exception3418 logs and saves error if commit is not created3419 when source is missing3420 logs and saves error3421 when squashing is required3422 raises an error if squashing is not done3423 when squashing3424 logs and saves error if there is an error when squashing3425 logs and saves error if there is an PreReceiveError exception3426 when fast-forward merge is not allowed3427 logs and saves error if merge is semi-linear only3428 logs and saves error if merge is ff only3429 when not mergeable3430 with failing CI3431 logs and saves error3432 with unresolved discussions3433 logs and saves error3434 when passing `skip_discussions_check: true` as `options` parameter3435 merges the merge request3436 when the other sidekiq worker has already been running3437 does not execute service3438Clusters::Applications::Cilium3439 is expected to belong to cluster required: false3440 is expected to validate that :cluster cannot be empty/falsy3441 #can_uninstall?3442 calls allowed_to_uninstall?3443 #name3444 is .application_name3445 is recorded in Clusters::Cluster::APPLICATIONS3446 .association_name3447 is expected to eq :application_cilium3448 #helm_command_module3449 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V23450 is expected to eq Gitlab::Kubernetes::Helm::V23451 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V33452 is expected to eq Gitlab::Kubernetes::Helm::V33453 #status_states3454 returns a hash of state values3455 returns an integer for installed state value3456 .available3457 is expected to contain exactly #<Clusters::Applications::Cilium id: 1, cluster_id: 12, created_at: "2021-12-20 17:07:13.848503019 +0000", updated_at: "2021-12-20 17:07:13.848503019 +0000", status: 3, status_reason: nil> and #<Clusters::Applications::Cilium id: 2, cluster_id: 18, created_at: "2021-12-20 17:07:14.811100981 +0000", updated_at: "2021-12-20 17:07:14.811100981 +0000", status: 5, status_reason: nil>3458 status state machine3459 #make_installing3460 is installing3461 #make_installed3462 is installed3463 does not update the helm version3464 the cluster has no helm installed3465 runs without errors3466 application is updating3467 is updated3468 does not update the helm version3469 the cluster has no helm installed3470 runs without errors3471 #make_errored3472 is errored3473 application is updating3474 is update_errored3475 application is uninstalling3476 is uninstall_errored3477 #make_externally_installed3478 is installed3479 helm record does not exist3480 does not create a helm record3481 helm record exists3482 does not update helm version3483 application is updated3484 is installed3485 application is errored3486 is installed3487 clears #status_reason3488 #make_externally_uninstalled3489 is uninstalled3490 application is updated3491 is uninstalled3492 application is errored3493 is uninstalled3494 clears #status_reason3495 #make_scheduled3496 is scheduled3497 when installed3498 is scheduled3499 when was errored3500 clears #status_reason3501 when was updated_errored3502 clears #status_reason3503 when was uninstall_errored3504 clears #status_reason3505 #make_uninstalling3506 is uninstalling3507 #available?3508 trait: :not_installable, available: false3509 is expected not to be available3510 trait: :installable, available: false3511 is expected not to be available3512 trait: :scheduled, available: false3513 is expected not to be available3514 trait: :installing, available: false3515 is expected not to be available3516 trait: :installed, available: true3517 is expected to be available3518 trait: :updating, available: false3519 is expected not to be available3520 trait: :updated, available: true3521 is expected to be available3522 trait: :errored, available: false3523 is expected not to be available3524 trait: :update_errored, available: false3525 is expected not to be available3526 trait: :uninstalling, available: false3527 is expected not to be available3528 trait: :uninstall_errored, available: false3529 is expected not to be available3530 trait: :uninstalled, available: false3531 is expected not to be available3532 trait: :timed_out, available: false3533 is expected not to be available3534 trait: :externally_installed, available: true3535 is expected to be available3536 #status3537 sets a default status3538 #allowed_to_uninstall?3539 is expected to equal false3540Gitlab::ImportExport::Group::LegacyTreeSaver3541 saves the group tree into a json object3542 saves group successfully3543 JSON3544 saves the correct json3545 has milestones3546 has labels3547 has boards3548 has board label list3549 has group members3550 has priorities associated to labels3551 has badges3552 group children3553 exports group children3554 exports group children of children3555 group members3556 exports group members as group owner3557 as admin3558 exports group members as admin3559 exports group members3560 group attributes3561 does not contain excluded attribute3562 does not contain excluded attribute3563 does not contain excluded attribute3564 does not contain excluded attribute3565 does not contain excluded attribute3566 does not contain excluded attribute3567 does not contain excluded attribute3568 does not contain excluded attribute3569Gitlab::Pagination::OffsetPagination3570 #paginate3571 when resource can be paginated3572 first page3573 when the api_kaminari_count_with_limit feature flag is unset3574 behaves like paginated response3575 returns appropriate amount of resources3576 executes only one SELECT COUNT query3577 behaves like response with pagination headers3578 adds appropriate headers3579 when the api_kaminari_count_with_limit feature flag is disabled3580 behaves like paginated response3581 returns appropriate amount of resources3582 executes only one SELECT COUNT query3583 behaves like response with pagination headers3584 adds appropriate headers3585 when the api_kaminari_count_with_limit feature flag is enabled3586 does not return the total headers when excluding them3587 when resources count is less than MAX_COUNT_LIMIT3588 behaves like paginated response3589 returns appropriate amount of resources3590 executes only one SELECT COUNT query3591 behaves like response with pagination headers3592 adds appropriate headers3593 when resources count is more than MAX_COUNT_LIMIT3594 does not return the X-Total and X-Total-Pages headers3595 behaves like paginated response3596 returns appropriate amount of resources3597 executes only one SELECT COUNT query3598 when resource already paginated3599 when per_page param is specified3600 returns appropriate amount of resources based on per_page param3601 when page and per page params are strings3602 returns appropriate amount of resources3603 when per_page param is blank3604 returns appropriate amount of resources3605 when page param is blank3606 returns appropriate amount of resources based on resource per(N)3607 when resource does not respond to limit_value3608 when page param is blank3609 returns appropriate amount of resources3610 when per_page param is blank3611 returns appropriate amount of resources with default per page value3612 when resource is a paginatable array3613 only returns the requested resources3614 does not return total headers when excluding them3615 behaves like response with pagination headers3616 adds appropriate headers3617 second page3618 returns appropriate amount of resources3619 adds appropriate headers3620 if order3621 is not present it adds default order(:id) if no order is present3622 is present it does not add anything3623 when resource empty3624 first page3625 returns appropriate amount of resources3626 adds appropriate headers3627Note ResolvableNote3628 resolvability scopes3629 .potentially_resolvable3630 includes diff and discussion notes on merge requests3631 .resolvable3632 includes non-system diff and discussion notes on merge requests3633 .resolved3634 includes resolved non-system diff and discussion notes on merge requests3635 .unresolved3636 includes non-resolved non-system diff and discussion notes on merge requests3637 .resolve!3638 resolves only the resolvable, not yet resolved notes3639 .unresolve!3640 unresolves the resolved notes3641 #resolvable?3642 when potentially resolvable3643 when a system note3644 returns false3645 when a regular note3646 returns true3647 when not potentially resolvable3648 returns false3649 #to_be_resolved?3650 when not resolvable3651 returns false3652 when resolvable3653 when resolved3654 returns false3655 when not resolved3656 returns true3657 #resolved?3658 when not resolvable3659 returns false3660 when resolvable3661 when the note has been resolved3662 returns true3663 when the note has not been resolved3664 returns false3665 #resolve!3666 when not resolvable3667 returns false3668 doesn't set resolved_at3669 doesn't set resolved_by3670 doesn't mark as resolved3671 when resolvable3672 when already resolved3673 returns false3674 doesn't change resolved_at3675 doesn't change resolved_by3676 doesn't change resolved status3677 when not yet resolved3678 returns true3679 sets resolved_at3680 sets resolved_by3681 marks as resolved3682 #unresolve!3683 when not resolvable3684 returns false3685 when resolvable3686 when resolved3687 returns true3688 unsets resolved_at3689 unsets resolved_by3690 unmarks as resolved3691 when not resolved3692 returns false3693 #potentially_resolvable?3694 returns false if noteable could not be found3695Ci::Ref3696 is expected to belong to project required: false3697 state machine transitions3698 unlock artifacts transition3699 pipline is locked3700 initial_state: :unknown, action: :succeed!, count: 13701 when transitioning states3702 calls unlock artifacts service3703 initial_state: :unknown, action: :do_fail!, count: 03704 when transitioning states3705 calls unlock artifacts service3706 initial_state: :success, action: :succeed!, count: 13707 when transitioning states3708 calls unlock artifacts service3709 initial_state: :success, action: :do_fail!, count: 03710 when transitioning states3711 calls unlock artifacts service3712 initial_state: :failed, action: :succeed!, count: 13713 when transitioning states3714 calls unlock artifacts service3715 initial_state: :failed, action: :do_fail!, count: 03716 when transitioning states3717 calls unlock artifacts service3718 initial_state: :fixed, action: :succeed!, count: 13719 when transitioning states3720 calls unlock artifacts service3721 initial_state: :fixed, action: :do_fail!, count: 03722 when transitioning states3723 calls unlock artifacts service3724 initial_state: :broken, action: :succeed!, count: 13725 when transitioning states3726 calls unlock artifacts service3727 initial_state: :broken, action: :do_fail!, count: 03728 when transitioning states3729 calls unlock artifacts service3730 initial_state: :still_failing, action: :succeed, count: 13731 when transitioning states3732 calls unlock artifacts service3733 initial_state: :still_failing, action: :do_fail, count: 03734 when transitioning states3735 calls unlock artifacts service3736 pipeline is unlocked3737 does not call unlock artifacts service3738 .ensure_for3739 when pipeline is a branch pipeline3740 behaves like ensures ci_ref3741 when ci_ref already exists3742 returns an existing ci_ref3743 when ci_ref does not exist yet3744 creates a new ci_ref3745 when pipeline is a tag pipeline3746 behaves like ensures ci_ref3747 when ci_ref already exists3748 returns an existing ci_ref3749 when ci_ref does not exist yet3750 creates a new ci_ref3751 when pipeline is a detached merge request pipeline3752 behaves like ensures ci_ref3753 when ci_ref already exists3754 returns an existing ci_ref3755 when ci_ref does not exist yet3756 creates a new ci_ref3757 #last_finished_pipeline_id3758 when there are no finished pipelines3759 returns nil3760 when there are finished pipelines3761 returns the pipeline id3762 when the pipeline a dangling pipeline3763 returns nil3764 #update_status_by!3765 when pipeline status is success or failed3766 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success3767 transitions the status via state machine3768 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success3769 transitions the status via state machine3770 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed3771 transitions the status via state machine3772 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success3773 transitions the status via state machine3774 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed3775 transitions the status via state machine3776 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed3777 transitions the status via state machine3778 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed3779 transitions the status via state machine3780 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken3781 transitions the status via state machine3782 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing3783 transitions the status via state machine3784 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken3785 transitions the status via state machine3786 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing3787 transitions the status via state machine3788 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing3789 transitions the status via state machine3790 when pipeline status is success3791 updates the status3792 when pipeline status is canceled3793 is expected to eq :unknown3794 when pipeline status is skipped3795 behaves like no-op3796 does nothing and returns nil3797 when pipeline status is not complete3798 behaves like no-op3799 does nothing and returns nil3800 when pipeline is not the latest pipeline3801 behaves like no-op3802 does nothing and returns nil3803 when pipeline does not belong to the ci_ref3804 behaves like no-op3805 does nothing and returns nil3806Banzai::Filter::References::CommitReferenceFilter3807 requires project context3808 ignores valid references contained inside 'pre' element3809 ignores valid references contained inside 'code' element3810 ignores valid references contained inside 'a' element3811 ignores valid references contained inside 'style' element3812 internal reference3813 links to a valid reference of 7 characters3814 links to a valid reference of 8 characters3815 links to a valid reference of 12 characters3816 links to a valid reference of 18 characters3817 links to a valid reference of 20 characters3818 links to a valid reference of 32 characters3819 links to a valid reference of 40 characters3820 always uses the short ID as the link text3821 links with adjacent text3822 ignores invalid commit IDs3823 includes a title attribute3824 escapes the title attribute3825 includes default classes3826 includes a data-project attribute3827 includes a data-commit attribute3828 supports an :only_path context3829 in merge request context3830 handles merge request contextual commit references3831 a doc with many (29) strings that could be SHAs3832 makes only a single request to Gitaly3833 cross-project / cross-namespace complete reference3834 link has valid text3835 has valid text3836 ignores invalid commit IDs on the referenced project3837 cross-project / same-namespace complete reference3838 link has valid text3839 has valid text3840 ignores invalid commit IDs on the referenced project3841 cross-project shorthand reference3842 link has valid text3843 has valid text3844 ignores invalid commit IDs on the referenced project3845 cross-project URL reference3846 links to a valid reference3847 links with adjacent text3848 ignores invalid commit IDs on the referenced project3849 URL reference for a commit patch3850 links to a valid reference3851 has valid text3852 does not link to patch when extension match is after the path3853 group context3854 ignores internal references3855 links to a valid reference3856 checking N+13857 does not have N+1 per multiple references per project3858Projects::LfsPointers::LfsDownloadService3859 #execute3860 when file download succeeds3861 has the same oid3862 has the same size3863 stores the content3864 streams the download3865 skips read_total_timeout3866 behaves like lfs object is created3867 creates and associate the LFS object to project3868 returns success result3869 behaves like lfs temporal file is removed3870 is expected to equal false3871 when file download fails3872 raise StandardError exception3873 behaves like no lfs object is created3874 is expected not to change `LfsObject.count`3875 returns error result3876 an error is logged3877 behaves like lfs temporal file is removed3878 is expected to equal false3879 when file download returns a redirect3880 correctly stores lfs object3881 behaves like lfs object is created3882 creates and associate the LFS object to project3883 returns success result3884 behaves like lfs temporal file is removed3885 is expected to equal false3886 when downloaded lfs file has a different size3887 raise SizeError exception3888 behaves like no lfs object is created3889 is expected not to change `LfsObject.count`3890 returns error result3891 an error is logged3892 behaves like lfs temporal file is removed3893 is expected to equal false3894 when downloaded lfs file has a different oid3895 raise OidError exception3896 behaves like no lfs object is created3897 is expected not to change `LfsObject.count`3898 returns error result3899 an error is logged3900 behaves like lfs temporal file is removed3901 is expected to equal false3902 when an lfs object with the same oid already exists3903 does not update the file attached to the existing LfsObject3904 behaves like no lfs object is created3905 is expected not to change `LfsObject.count`3906 returns error result3907 an error is logged3908 behaves like lfs temporal file is removed3909 is expected to equal false3910 when credentials present3911 the request adds authorization headers3912 when Authorization header is present3913 request uses the header auth3914 when localhost requests are allowed3915 behaves like lfs object is created3916 creates and associate the LFS object to project3917 returns success result3918 behaves like lfs temporal file is removed3919 is expected to equal false3920 when a bad URL is used3921 download_link: "/etc/passwd"3922 does not download the file3923 download_link: "ftp://example.com"3924 does not download the file3925 download_link: "http://127.0.0.2"3926 does not download the file3927 download_link: "http://192.168.2.120"3928 does not download the file3929 when the URL points to a redirected URL3930 that is blocked3931 redirect_link: "ftp://example.com"3932 behaves like no lfs object is created3933 is expected not to change `LfsObject.count`3934 returns error result3935 an error is logged3936 behaves like lfs temporal file is removed3937 is expected to equal false3938 redirect_link: "http://127.0.0.2"3939 behaves like no lfs object is created3940 is expected not to change `LfsObject.count`3941 returns error result3942 an error is logged3943 behaves like lfs temporal file is removed3944 is expected to equal false3945 redirect_link: "http://192.168.2.120"3946 behaves like no lfs object is created3947 is expected not to change `LfsObject.count`3948 returns error result3949 an error is logged3950 behaves like lfs temporal file is removed3951 is expected to equal false3952 that is not blocked3953 behaves like lfs object is created3954 creates and associate the LFS object to project3955 returns success result3956 behaves like lfs temporal file is removed3957 is expected to equal false3958 when the lfs object attributes are invalid3959 does not download the file3960 behaves like no lfs object is created3961 is expected not to change `LfsObject.count`3962 returns error result3963 an error is logged3964 behaves like lfs temporal file is removed3965 is expected to equal false3966 when a large lfs object with the same oid already exists3967 and first fragments are the same3968 returns success3969 links existing lfs object to the project3970 when lfs_link_existing_object feature flag disabled3971 does not call link_existing_lfs_object!3972 and first fragments diverges3973 raises oid mismatch error3974 does not change lfs objects3975Integrations::Jenkins3976 behaves like Integrations::HasWebHook3977 callbacks3978 calls #update_web_hook! when enabled3979 does not call #update_web_hook! when disabled3980 does not call #update_web_hook! when validation fails3981 #hook_url3982 returns a string3983 #hook_ssl_verification3984 returns a boolean3985 #update_web_hook!3986 creates or updates a service hook3987 raises an error if the service hook could not be saved3988 does not attempt to save the service hook if there are no changes3989 #execute_web_hook!3990 creates the webhook if necessary and executes it3991 raises an error if the service hook could not be saved3992 username validation3993 when the integration is active3994 when password was not touched3995 is expected not to validate that :username cannot be empty/falsy3996 when password was touched3997 is expected to validate that :username cannot be empty/falsy3998 when password is blank3999 does not validate the username4000 when the integration is inactive4001 is expected not to validate that :username cannot be empty/falsy4002 #hook_url4003 when the jenkins_url has no relative path4004 is expected to eq "http://jenkins.example.com/project/my_project"4005 when the jenkins_url has relative path4006 is expected to eq "http://organization.example.com/jenkins/project/my_project"4007 userinfo is missing and username and password are set4008 is expected to eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"4009 userinfo is provided and username and password are set4010 is expected to eq "http://username:password@organization.example.com/jenkins/project/my_project"4011 userinfo is provided username and password are not set4012 is expected to eq "http://u:p@organization.example.com/jenkins/project/my_project"4013 #test4014 returns the right status4015 #execute4016 invokes the Jenkins API4017 adds default web hook headers to the request4018 request url contains properly serialized username and password4019 Stored password invalidation4020 when a password was previously set4021 resets password if url changed4022 resets password if username is blank4023 does not reset password if username changed4024 does not reset password if new url is set together with password, even if it's the same password4025 resets password if url changed, even if setter called multiple times4026 when no password was previously set4027 saves password if new url is set together with password4028ErrorTracking::SentryClient::Issue4029 #list_issues4030 behaves like calls sentry api4031 calls sentry api4032 behaves like issues have correct return type4033 returns objects of type Gitlab::ErrorTracking::Error4034 behaves like issues have correct length4035 is expected to eq 34036 when response has a pagination info4037 parses the pagination4038 error object created from sentry response4039 error_object: :id, sentry_response: :id4040 is expected to eq "11"4041 error_object: :first_seen, sentry_response: :firstSeen4042 is expected to eq "2018-12-17T12:00:14Z"4043 error_object: :last_seen, sentry_response: :lastSeen4044 is expected to eq "2018-12-31T12:00:11Z"4045 error_object: :title, sentry_response: :title4046 is expected to eq "gaierror: [Errno -2] Name or service not known"4047 error_object: :type, sentry_response: :type4048 is expected to eq "error"4049 error_object: :user_count, sentry_response: :userCount4050 is expected to eq 04051 error_object: :count, sentry_response: :count4052 is expected to eq "21"4053 error_object: :message, sentry_response: [:metadata, :value]4054 is expected to eq "[Errno -2] Name or service not known"4055 error_object: :culprit, sentry_response: :culprit4056 is expected to eq "sentry.tasks.reports.deliver_organization_user_report"4057 error_object: :short_id, sentry_response: :shortId4058 is expected to eq "INTERNAL-4"4059 error_object: :status, sentry_response: :status4060 is expected to eq "unresolved"4061 error_object: :frequency, sentry_response: [:stats, "24h"]4062 is expected to eq [[1546437600, 0]]4063 error_object: :project_id, sentry_response: [:project, :id]4064 is expected to eq "1"4065 error_object: :project_name, sentry_response: [:project, :name]4066 is expected to eq "Internal"4067 error_object: :project_slug, sentry_response: [:project, :slug]4068 is expected to eq "internal"4069 behaves like has correct external_url4070 external_url4071 is constructed correctly4072 redirects4073 behaves like no Sentry redirects4074 does not follow redirects4075 requests with sort parameter in sentry api4076 calls the sentry api with sort params4077 with invalid sort params4078 throws an error4079 Older sentry versions where keys are not present4080 behaves like calls sentry api4081 calls sentry api4082 behaves like issues have correct return type4083 returns objects of type Gitlab::ErrorTracking::Error4084 behaves like issues have correct length4085 is expected to eq 14086 behaves like has correct external_url4087 external_url4088 is constructed correctly4089 essential keys missing in API response4090 raises exception4091 sentry api response too large4092 raises exception4093 behaves like maps Sentry exceptions4094 HTTParty::Error4095 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"4096 Net::OpenTimeout4097 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"4098 SocketError4099 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"4100 OpenSSL::SSL::SSLError4101 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"4102 Errno::ECONNREFUSED4103 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"4104 StandardError4105 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"4106 when search term is present4107 behaves like calls sentry api4108 calls sentry api4109 behaves like issues have correct return type4110 returns objects of type Gitlab::ErrorTracking::Error4111 behaves like issues have correct length4112 is expected to eq 34113 when cursor is present4114 behaves like calls sentry api4115 calls sentry api4116 behaves like issues have correct return type4117 returns objects of type Gitlab::ErrorTracking::Error4118 behaves like issues have correct length4119 is expected to eq 34120 #issue_details4121 error object created from sentry response4122 has a correct external URL4123 issue has a correct external base url4124 has a correct GitLab issue url4125 has an integrated attribute set to false4126 has the correct tags4127 error_object: :id, sentry_response: :id4128 is expected to eq "11"4129 error_object: :first_seen, sentry_response: :firstSeen4130 is expected to eq "2018-11-06T21:19:55Z"4131 error_object: :last_seen, sentry_response: :lastSeen4132 is expected to eq "2018-11-06T21:19:55Z"4133 error_object: :title, sentry_response: :title4134 is expected to eq "This is an example Python exception"4135 error_object: :type, sentry_response: :type4136 is expected to eq "default"4137 error_object: :user_count, sentry_response: :userCount4138 is expected to eq 04139 error_object: :count, sentry_response: :count4140 is expected to eq "1"4141 error_object: :message, sentry_response: [:metadata, :value]4142 is expected to eq nil4143 error_object: :culprit, sentry_response: :culprit4144 is expected to eq "raven.scripts.runner in main"4145 error_object: :short_id, sentry_response: :shortId4146 is expected to eq "PUMP-STATION-1"4147 error_object: :status, sentry_response: :status4148 is expected to eq "unresolved"4149 error_object: :frequency, sentry_response: [:stats, "24h"]4150 is expected to eq [[1541451600.0, 557], [1541455200.0, 473], [1541458800.0, 914], [1541462400.0, 991], [1541466000.0, 9...1523600.0, 111], [1541527200.0, 926], [1541530800.0, 772], [1541534400.0, 400], [1541538000.0, 943]]4151 error_object: :project_id, sentry_response: [:project, :id]4152 is expected to eq "2"4153 error_object: :project_name, sentry_response: [:project, :name]4154 is expected to eq "Pump Station"4155 error_object: :project_slug, sentry_response: [:project, :slug]4156 is expected to eq "pump-station"4157 error_object: :first_release_last_commit, sentry_response: [:firstRelease, :lastCommit]4158 is expected to eq nil4159 error_object: :last_release_last_commit, sentry_response: [:lastRelease, :lastCommit]4160 is expected to eq {}4161 error_object: :first_release_short_version, sentry_response: [:firstRelease, :shortVersion]4162 is expected to eq "1764232"4163 error_object: :last_release_short_version, sentry_response: [:lastRelease, :shortVersion]4164 is expected to eq "27de6b42eb4"4165 error_object: :first_release_version, sentry_response: [:firstRelease, :version]4166 is expected to eq "17642328ead24b51867165985996d04b29310337"4167 error_object: :last_release_version, sentry_response: [:lastRelease, :version]4168 is expected to eq "17642328ead24b51867165985996d04b29321448"4169 when issue annotations exist4170 has a correct GitLab issue url4171 when no GitLab issue is linked4172 does not find a GitLab issue4173 #update_issue4174 returns a truthy result4175 behaves like calls sentry api4176 calls sentry api4177 error encountered4178 raises the error4179Members::ApproveAccessRequestService4180 when an access requester is found4181 when current user is nil4182 and :ldap option is not given4183 behaves like a service raising Gitlab::Access::AccessDeniedError4184 raises Gitlab::Access::AccessDeniedError4185 behaves like a service raising Gitlab::Access::AccessDeniedError4186 raises Gitlab::Access::AccessDeniedError4187 and :skip_authorization option is false4188 behaves like a service raising Gitlab::Access::AccessDeniedError4189 raises Gitlab::Access::AccessDeniedError4190 behaves like a service raising Gitlab::Access::AccessDeniedError4191 raises Gitlab::Access::AccessDeniedError4192 and :skip_authorization option is true4193 behaves like a service approving an access request4194 succeeds4195 returns a <Source>Member4196 with a custom access level4197 returns a ProjectMember with the custom access level4198 behaves like a service approving an access request4199 succeeds4200 returns a <Source>Member4201 with a custom access level4202 returns a ProjectMember with the custom access level4203 when current user cannot approve access request to the project4204 behaves like a service raising Gitlab::Access::AccessDeniedError4205 raises Gitlab::Access::AccessDeniedError4206 behaves like a service raising Gitlab::Access::AccessDeniedError4207 raises Gitlab::Access::AccessDeniedError4208 when current user can approve access request to the project4209 behaves like a service approving an access request4210 succeeds4211 returns a <Source>Member4212 with a custom access level4213 returns a ProjectMember with the custom access level4214 behaves like a service approving an access request4215 succeeds4216 returns a <Source>Member4217 with a custom access level4218 returns a ProjectMember with the custom access level4219Gitlab::DataBuilder::Push4220 .build4221 with changed files4222 returns commit hook data4223 without changed files4224 returns commit hook data without include deltas4225 .build_sample4226 is expected to be a kind of Hash4227 is expected to eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"4228 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"4229 is expected to eq "refs/heads/master"4230 is expected to eq 34231 is expected to eq 34232 is expected to eq ["bar/branch-test.txt"]4233 is expected to eq []4234 is expected to eq []4235 contains project data4236 contains deprecated repository data4237 .sample_data4238 is expected to be a kind of Hash4239 is expected to eq "95790bf891e76fee5e1747ab589903a6a1f80f22"4240 is expected to eq "da1560886d4f094c3e6c9ef40349f7d38b5d27d7"4241 is expected to eq "refs/heads/master"4242 is expected to eq 154243 is expected to eq 14244 is expected to eq 14245 contains project data4246 .build4247 is expected to be a kind of Hash4248 is expected to eq "0000000000000000000000000000000000000000"4249 is expected to eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"4250 is expected to eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"4251 is expected to eq "refs/tags/v1.1.0"4252 is expected to eq nil4253 is expected to eq "Sidney Jones1180"4254 is expected to eq "user561"4255 is expected to eq "public-email@example.com"4256 is expected to eq "https://www.gravatar.com/avatar/4a2117f3f35b1208796c26ea366d8212?s=80&d=identicon"4257 is expected to eq 7124258 is expected to be a kind of Hash4259 is expected to be empty4260 is expected to be zero4261 contains project data4262 contains deprecated repository data4263 does not raise an error when given nil commits4264 .build_bulk4265 is expected to eq {:action=>:created, :ref_count=>2, :ref_type=>:branch}4266NotificationRecipient4267 #notifiable?4268 when emails are disabled4269 returns false if group disabled4270 returns false if project disabled4271 when emails are enabled4272 returns true if group enabled4273 returns true if project enabled4274 #has_access?4275 user cannot read cross project4276 returns false4277 user cannot read build4278 returns false4279 user cannot read commit4280 returns false4281 target has no policy4282 returns true4283 #notification_setting4284 for child groups4285 when notification setting is global4286 considers notification setting from the first parent without global setting4287 when notification setting is not global4288 considers notification setting from lowest group member in hierarchy4289 #suitable_notification_level?4290 when notification level is mention4291 when type is mention4292 returns true4293 when type is not mention4294 returns false4295 when notification level is participating4296 when type is participating4297 returns true4298 when type is mention4299 returns true4300 with custom action4301 when action is failed_pipeline4302 returns true4303 when action is fixed_pipeline4304 returns true4305 when action is not fixed_pipeline or failed_pipeline4306 returns false4307 when notification level is custom4308 when type is participating4309 with custom event enabled4310 returns true4311 without custom event enabled4312 returns true4313 when type is mention4314 with custom event enabled4315 returns true4316 without custom event enabled4317 returns true4318 when type is watch4319 with custom event enabled4320 returns true4321 without custom event enabled4322 returns false4323 when custom_action is fixed_pipeline and success_pipeline event is enabled4324 returns true4325 with merge_when_pipeline_succeeds4326 custom event enabled4327 returns true4328 custom event disabled4329 returns false4330 when notification level is watch4331 when type is watch4332 without excluded watcher events4333 returns true4334 with excluded watcher events4335 returns false4336 when type is not watch4337 without excluded watcher events4338 returns true4339 with excluded watcher events4340 returns true4341Banzai::Filter::SyntaxHighlightFilter4342 using ruby-based HTML renderer4343 behaves like renders correct markdown4344 when no language is specified4345 highlights as plaintext4346 escapes HTML tags4347 when contains mermaid diagrams4348 ignores mermaid blocks4349 when a valid language is specified4350 highlights as that language4351 escapes HTML tags4352 when an invalid language is specified4353 highlights as plaintext4354 escapes HTML tags4355 languages that should be passed through4356 when math is specified4357 highlights as plaintext but with the correct language attribute and class4358 escapes HTML tags4359 when math has extra params4360 includes data-lang-params tag with extra information4361 escapes HTML tags4362 escapes HTML tags4363 escapes HTML tags4364 when mermaid is specified4365 highlights as plaintext but with the correct language attribute and class4366 escapes HTML tags4367 when mermaid has extra params4368 includes data-lang-params tag with extra information4369 escapes HTML tags4370 escapes HTML tags4371 escapes HTML tags4372 when plantuml is specified4373 highlights as plaintext but with the correct language attribute and class4374 escapes HTML tags4375 when plantuml has extra params4376 includes data-lang-params tag with extra information4377 escapes HTML tags4378 escapes HTML tags4379 escapes HTML tags4380 when suggestion is specified4381 highlights as plaintext but with the correct language attribute and class4382 escapes HTML tags4383 when suggestion has extra params4384 includes data-lang-params tag with extra information4385 escapes HTML tags4386 escapes HTML tags4387 escapes HTML tags4388 when multiple param delimiters are used4389 when delimiter is space4390 delimits on the first appearance4391 when delimiter is colon4392 delimits on the first appearance4393 when sourcepos metadata is available4394 includes it in the highlighted code block4395 when Rouge lexing fails4396 highlights as plaintext4397 escapes HTML tags4398 when Rouge lexing fails after a retry4399 does not add highlighting classes4400 escapes HTML tags4401 using c-based HTML renderer4402 behaves like renders correct markdown4403 when no language is specified4404 highlights as plaintext4405 escapes HTML tags4406 when contains mermaid diagrams4407 ignores mermaid blocks4408 when a valid language is specified4409 highlights as that language4410 escapes HTML tags4411 when an invalid language is specified4412 highlights as plaintext4413 escapes HTML tags4414 languages that should be passed through4415 when math is specified4416 highlights as plaintext but with the correct language attribute and class4417 escapes HTML tags4418 when math has extra params4419 includes data-lang-params tag with extra information4420 escapes HTML tags4421 escapes HTML tags4422 escapes HTML tags4423 when mermaid is specified4424 highlights as plaintext but with the correct language attribute and class4425 escapes HTML tags4426 when mermaid has extra params4427 includes data-lang-params tag with extra information4428 escapes HTML tags4429 escapes HTML tags4430 escapes HTML tags4431 when plantuml is specified4432 highlights as plaintext but with the correct language attribute and class4433 escapes HTML tags4434 when plantuml has extra params4435 includes data-lang-params tag with extra information4436 escapes HTML tags4437 escapes HTML tags4438 escapes HTML tags4439 when suggestion is specified4440 highlights as plaintext but with the correct language attribute and class4441 escapes HTML tags4442 when suggestion has extra params4443 includes data-lang-params tag with extra information4444 escapes HTML tags4445 escapes HTML tags4446 escapes HTML tags4447 when multiple param delimiters are used4448 when delimiter is space4449 delimits on the first appearance4450 when delimiter is colon4451 delimits on the first appearance4452 when sourcepos metadata is available4453 includes it in the highlighted code block4454 when Rouge lexing fails4455 highlights as plaintext4456 escapes HTML tags4457 when Rouge lexing fails after a retry4458 does not add highlighting classes4459 escapes HTML tags4460EmailsHelper4461 closure_reason_text4462 when given a MergeRequest4463 when user can read merge request4464 and format is text4465 returns plain text4466 and format is HTML4467 returns HTML4468 and format is unknown4469 returns plain text4470 when user cannot read merge request4471 does not have link to merge request4472 when given a String4473 when user can read commits4474 returns plain text4475 when user cannot read commits4476 returns plain text4477 when not given anything4478 returns empty string4479 notification_reason_text4480 reason_code: "own_activity", reason_text: " of your activity "4481 is expected to start with "You're receiving this email because"4482 is expected to include " of your activity "4483 is expected to end with "on localhost."4484 reason_code: "assigned", reason_text: " you have been assigned an item "4485 is expected to start with "You're receiving this email because"4486 is expected to include " you have been assigned an item "4487 is expected to end with "on localhost."4488 reason_code: "mentioned", reason_text: " you have been mentioned "4489 is expected to start with "You're receiving this email because"4490 is expected to include " you have been mentioned "4491 is expected to end with "on localhost."4492 reason_code: "", reason_text: " of your account "4493 is expected to start with "You're receiving this email because"4494 is expected to include " of your account "4495 is expected to end with "on localhost."4496 reason_code: nil, reason_text: " of your account "4497 is expected to start with "You're receiving this email because"4498 is expected to include " of your account "4499 is expected to end with "on localhost."4500 sanitize_name4501 when name contains a valid URL string4502 returns name with `.` replaced with `_` to prevent mail clients from auto-linking URLs4503 returns name as it is when it does not contain a URL4504 #say_hi4505 returns the greeting message for the given user4506 #say_hello4507 returns the greeting message for the given user4508 #two_factor_authentication_disabled_text4509 returns the message that 2FA is disabled4510 #re_enable_two_factor_authentication_text4511 format is html4512 returns HTML4513 format is not specified4514 returns text4515 #admin_changed_password_text4516 format is html4517 returns HTML4518 format is not specified4519 returns text4520 #contact_your_administrator_text4521 returns the message to contact the administrator4522 password_reset_token_valid_time4523 when time limit is less than 2 hours4524 displays the time in hours using a singular unit4525 when time limit is 2 or more hours4526 displays the time in hours using a plural unit4527 when time limit contains fractions of an hour4528 rounds down to the nearest hour4529 when time limit is 24 or more hours4530 displays the time in days using a singular unit4531 when time limit is 2 or more days4532 displays the time in days using a plural unit4533 when time limit contains fractions of a day4534 rounds down to the nearest day4535 #header_logo4536 there is a brand item with a logo4537 returns the brand header logo4538 there is a brand item without a logo4539 returns the default header logo4540 there is no brand item4541 returns the default header logo4542 #create_list_id_string4543 full_path: "01234", list_id_path: "01234"4544 ellipcizes different variants4545 full_path: "5/0123", list_id_path: "012.."4546 ellipcizes different variants4547 full_path: "45/012", list_id_path: "012.."4548 ellipcizes different variants4549 full_path: "012", list_id_path: "012"4550 ellipcizes different variants4551 full_path: "23/01", list_id_path: "01.23"4552 ellipcizes different variants4553 full_path: "2/01", list_id_path: "01.2"4554 ellipcizes different variants4555 full_path: "234/01", list_id_path: "01.."4556 ellipcizes different variants4557 full_path: "4/2/0", list_id_path: "0.2.4"4558 ellipcizes different variants4559 full_path: "45/2/0", list_id_path: "0.2.."4560 ellipcizes different variants4561 full_path: "5/23/0", list_id_path: "0.."4562 ellipcizes different variants4563 full_path: "0-2/5", list_id_path: "5.0-2"4564 ellipcizes different variants4565 full_path: "0_2/5", list_id_path: "5.0-2"4566 ellipcizes different variants4567 full_path: "0.2/5", list_id_path: "5.0-2"4568 ellipcizes different variants4569 Create realistic List-Id identifier4570 full_path: "gitlab-org/gitlab-ce", list_id_path: "gitlab-ce.gitlab-org"4571 produces the right List-Id4572 full_path: "project-name/subproject_name/my.project", list_id_path: "my-project.subproject-name.project-name"4573 produces the right List-Id4574 header and footer messages4575 when email_header_and_footer_enabled is enabled4576 returns header and footer messages4577 when header and footer messages are empty4578 returns nil4579 when header and footer messages are nil4580 returns nil4581 when email_header_and_footer_enabled is disabled4582 returns header and footer messages4583 #change_reviewer_notification_text4584 to new reviewers only4585 with no html tag4586 returns the expected output4587 with <strong> tag4588 returns the expected output4589 from previous reviewers to new reviewers4590 with no html tag4591 returns the expected output4592 with <strong> tag4593 returns the expected output4594 from previous reviewers to no reviewers4595 with no html tag4596 returns the expected output4597 with <strong> tag4598 returns the expected output4599 with a <script> tag in user's name4600 escapes the html tag4601 with url in user's name4602 sanitizes user's name4603Blob4604 .decorate4605 returns NilClass when given nil4606 .lazy4607 with project4608 behaves like .lazy checks4609 does not fetch blobs when none are accessed4610 fetches all blobs for the same repository when one is accessed4611 does not include blobs from previous requests in later requests4612 with personal snippet4613 behaves like .lazy checks4614 does not fetch blobs when none are accessed4615 fetches all blobs for the same repository when one is accessed4616 does not include blobs from previous requests in later requests4617 with project snippet4618 behaves like .lazy checks4619 does not fetch blobs when none are accessed4620 fetches all blobs for the same repository when one is accessed4621 does not include blobs from previous requests in later requests4622 #data4623 with project4624 behaves like #data checks4625 using a binary blob4626 returns the data as-is4627 using a text blob4628 converts the data to UTF-84629 with personal snippet4630 behaves like #data checks4631 using a binary blob4632 returns the data as-is4633 using a text blob4634 converts the data to UTF-84635 with project snippet4636 behaves like #data checks4637 using a binary blob4638 returns the data as-is4639 using a text blob4640 converts the data to UTF-84641 #external_storage_error?4642 if the blob is stored in LFS4643 when LFS is enabled4644 is expected to be falsy4645 when LFS is not enabled4646 is expected to be truthy4647 if the blob is not stored in LFS4648 is expected to be falsy4649 #stored_externally?4650 if the blob is stored in LFS4651 when LFS is enabled4652 is expected to be truthy4653 when LFS is not enabled4654 is expected to be falsy4655 if the blob is not stored in LFS4656 is expected to be falsy4657 #binary?4658 an lfs object4659 filename: "file.pdf", is_binary: true4660 is expected to eq true4661 filename: "file.md", is_binary: false4662 is expected to eq false4663 filename: "file.txt", is_binary: false4664 is expected to eq false4665 filename: "file.ics", is_binary: false4666 is expected to eq false4667 filename: "file.rb", is_binary: false4668 is expected to eq false4669 filename: "file.exe", is_binary: true4670 is expected to eq true4671 filename: "file.ini", is_binary: false4672 is expected to eq false4673 filename: "file.wtf", is_binary: true4674 is expected to eq true4675 a non-lfs object4676 delegates to binary_in_repo?4677 #extension4678 returns the extension4679 #file_type4680 returns the file type4681 #simple_viewer4682 when the blob is empty4683 returns an empty viewer4684 when the file represented by the blob is binary4685 returns a download viewer4686 when the file represented by the blob is text-based4687 returns a text viewer4688 #rich_viewer4689 when the blob has an external storage error4690 returns nil4691 when the blob is empty4692 returns nil4693 when the blob is stored externally4694 returns a matching viewer4695 when the blob is binary4696 returns a matching binary viewer4697 when the blob is text-based4698 returns a matching text-based viewer4699 when the blob is video4700 returns a video viewer4701 when the blob is audio4702 returns an audio viewer4703 #auxiliary_viewer4704 when the blob has an external storage error4705 returns nil4706 when the blob is empty4707 returns nil4708 when the blob is stored externally4709 returns a matching viewer4710 when the blob is binary4711 returns nil4712 when the blob is text-based4713 returns a matching text-based viewer4714 #rendered_as_text?4715 when ignoring errors4716 when the simple viewer is text-based4717 is expected to be truthy4718 when the simple viewer is binary4719 is expected to be falsy4720 when not ignoring errors4721 when the viewer has render errors4722 is expected to be falsy4723 when the viewer doesn't have render errors4724 is expected to be truthy4725 policy4726 works with policy4727 when project is nil4728 does not err4729EventsFinder4730 when targeting a user4731 returns events between specified dates filtered on action and type4732 does not return events the current_user does not have access to4733 does not include events on confidential issues the user does not have access to4734 includes confidential events user has access to4735 returns nothing when the current user cannot read cross project4736 returns nothing when the target profile is private4737 wiki events4738 can find the wiki events4739 dashboard events4740 scope is `all`4741 includes activity of other users4742 scope is not `all`4743 does not include activity of other users4744 when targeting a project4745 returns project events between specified dates filtered on action and type4746 does not return events the current_user does not have access to4747Gitlab::Ci::Variables::Collection4748 .new4749 can be initialized with an array4750 can be initialized without an argument4751 #append4752 appends a hash4753 appends a Ci::Variable4754 appends an internal resource4755 returns self4756 #compact4757 returns a new Collection instance4758 rejects pair that has nil value4759 #concat4760 appends all elements from an array4761 appends all elements from other collection4762 does not concatenate resource if it undefined4763 returns self4764 #+4765 makes it possible to combine with an array4766 makes it possible to combine with another collection4767 #[]4768 with variable key with single entry4769 behaves like an array access operator4770 for a non-existent variable name4771 returns nil4772 for an existent variable name4773 returns the last Item4774 with variable key with multiple entries4775 behaves like an array access operator4776 for a non-existent variable name4777 returns nil4778 for an existent variable name4779 returns the last Item4780 #all4781 with variable key with single entry4782 behaves like a method returning all known variables or nil4783 for a non-existent variable name4784 returns nil4785 for an existing variable name4786 returns all expected Items4787 with variable key with multiple entries4788 behaves like a method returning all known variables or nil4789 for a non-existent variable name4790 returns nil4791 for an existing variable name4792 returns all expected Items4793 #size4794 returns zero for empty collection4795 returns 2 for collection with 2 variables4796 returns 3 for collection with 2 duplicate variables4797 #to_runner_variables4798 creates an array of hashes in a runner-compatible format4799 #to_hash4800 returns regular hash in valid order without duplicates4801 #reject4802 returns a Collection instance4803 returns correctly filtered Collection4804 #expand_value4805 table tests4806 empty value4807 matches expected expansion4808 simple expansions4809 matches expected expansion4810 complex expansion4811 matches expected expansion4812 complex expansions with raw variable4813 matches expected expansion4814 missing variable not keeping original4815 matches expected expansion4816 missing variable keeping original4817 matches expected expansion4818 escaped characters are kept intact4819 matches expected expansion4820 #sort_and_expand_all4821 table tests4822 empty array4823 returns Collection4824 expands variables4825 preserves raw attribute4826 simple expansions4827 returns Collection4828 expands variables4829 preserves raw attribute4830 complex expansion4831 returns Collection4832 expands variables4833 preserves raw attribute4834 unused variables4835 returns Collection4836 expands variables4837 preserves raw attribute4838 complex expansions4839 returns Collection4840 expands variables4841 preserves raw attribute4842 escaped characters in complex expansions keeping undefined are kept intact4843 returns Collection4844 expands variables4845 preserves raw attribute4846 escaped characters in complex expansions discarding undefined are kept intact4847 returns Collection4848 expands variables4849 preserves raw attribute4850 out-of-order expansion4851 returns Collection4852 expands variables4853 preserves raw attribute4854 out-of-order complex expansion4855 returns Collection4856 expands variables4857 preserves raw attribute4858 missing variable discarding original4859 returns Collection4860 expands variables4861 preserves raw attribute4862 missing variable keeping original4863 returns Collection4864 expands variables4865 preserves raw attribute4866 complex expansions with missing variable keeping original4867 returns Collection4868 expands variables4869 preserves raw attribute4870 complex expansions with raw variable4871 returns Collection4872 expands variables4873 preserves raw attribute4874 variable value referencing password with special characters4875 returns Collection4876 expands variables4877 preserves raw attribute4878 cyclic dependency causes original array to be returned4879 returns Collection4880 expands variables4881 preserves raw attribute4882Releases::Link4883 associations4884 is expected to belong to release required: false4885 validation4886 is expected to validate that :url cannot be empty/falsy4887 is expected to validate that :name cannot be empty/falsy4888 is expected to validate that the length of :filepath is at most 1284889 when url is invalid4890 will be invalid4891 when duplicate name is added to a release4892 raises an error4893 when duplicate url is added to a release4894 raises an error4895 when duplicate filepath is added to a release4896 raises an error4897 .sorted4898 returns a list of links by created_at order4899 #internal?4900 is expected to be truthy4901 when link does not include project web url4902 is expected to be falsy4903 #external?4904 is expected to be truthy4905 supported protocols4906 protocol: "http"4907 will be valid4908 protocol: "https"4909 will be valid4910 protocol: "ftp"4911 will be valid4912 unsupported protocol4913 for torrent4914 will be invalid4915 FILEPATH_REGEX with table4916 reason: "cannot contain `//`", filepath: "/https//www.example.com", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c686510 @method_name=:be_invalid, @args=[], @block=nil>4917 is expected to be invalid4918 reason: "cannot start with `//`", filepath: "//www.example.com", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c686240 @method_name=:be_invalid, @args=[], @block=nil>4919 is expected to be invalid4920 reason: "cannot contain a `?`", filepath: "/example.com/?stuff=true", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c685f70 @method_name=:be_invalid, @args=[], @block=nil>4921 is expected to be invalid4922 reason: "cannot contain a `:`", filepath: "/example:5000", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c685ca0 @method_name=:be_invalid, @args=[], @block=nil>4923 is expected to be invalid4924 reason: "cannot end in a `-`", filepath: "/binaries/awesome-app.dmg-", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c6859d0 @method_name=:be_invalid, @args=[], @block=nil>4925 is expected to be invalid4926 reason: "cannot end in a `.`", filepath: "/binaries/awesome-app.dmg.", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c685700 @method_name=:be_invalid, @args=[], @block=nil>4927 is expected to be invalid4928 reason: "cannot end in a `_`", filepath: "/binaries/awesome-app.dmg_", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c685430 @method_name=:be_invalid, @args=[], @block=nil>4929 is expected to be invalid4930 reason: "cannot start with a `.`", filepath: ".binaries/awesome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c685160 @method_name=:be_invalid, @args=[], @block=nil>4931 is expected to be invalid4932 reason: "cannot start with a `-`", filepath: "-binaries/awesome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c684e90 @method_name=:be_invalid, @args=[], @block=nil>4933 is expected to be invalid4934 reason: "cannot start with a `_`", filepath: "_binaries/awesome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c684bc0 @method_name=:be_invalid, @args=[], @block=nil>4935 is expected to be invalid4936 reason: "cannot start with a number", filepath: "3binaries/awesome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c6848f0 @method_name=:be_invalid, @args=[], @block=nil>4937 is expected to be invalid4938 reason: "cannot start with a letter", filepath: "binaries/awesome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c684620 @method_name=:be_invalid, @args=[], @block=nil>4939 is expected to be invalid4940 reason: "cannot contain accents", filepath: "/binarïes/âwésome-app.dmg", result: #<RSpec::Matchers::BuiltIn::BePredicate:0x00007f285c684350 @method_name=:be_invalid, @args=[], @block=nil>4941 is expected to be invalid4942 reason: "can end in a character", filepath: "/binaries/awesome-app.dmg", result: #<RSpec::Rails::Matchers::BeValid:0x00007f285c684198 @args=[]>4943 is expected to be valid4944 reason: "can end in a number", filepath: "/binaries/awesome-app-1", result: #<RSpec::Rails::Matchers::BeValid:0x00007f285c684030 @args=[]>4945 is expected to be valid4946 reason: "can contain one or more dots, dashes or underscores", filepath: "/sub_tr__ee.ex..ample-2--1/v99.com", result: #<RSpec::Rails::Matchers::BeValid:0x00007f285c67fe90 @args=[]>4947 is expected to be valid4948 reason: "can contain multiple non-sequential slashes", filepath: "/example.com/path/to/file.exe", result: #<RSpec::Rails::Matchers::BeValid:0x00007f285c67fd28 @args=[]>4949 is expected to be valid4950 reason: "can be nil", filepath: nil, result: #<RSpec::Rails::Matchers::BeValid:0x00007f285c67fbc0 @args=[]>4951 is expected to be valid4952Clusters::CreateService4953 when provider is gcp4954 when project has no clusters4955 when correct params4956 creates a cluster object and performs a worker4957 when invalid params4958 returns an error4959 when project has a cluster4960 creates another cluster4961 when another cluster exists4962 when correct params4963 creates a cluster object and performs a worker4964 when invalid params4965 returns an error4966 when params includes :management_project_id4967 management_project is non-existent4968 does not persist the cluster and adds errors4969 project cluster4970 when user is authorized to adminster manangement_project4971 persists the cluster4972 when user is not authorized to adminster manangement_project4973 does not persist the cluster and adds errors4974 when manangement_project is outside of the namespace scope4975 does not persist the cluster4976 group cluster4977 when user is authorized to adminster manangement_project4978 persists the cluster4979 when user is not authorized to adminster manangement_project4980 does not persist the cluster and adds errors4981 when manangement_project is outside of the namespace scope4982 does not persist the cluster4983 instance cluster4984 when user is authorized to adminster manangement_project4985 persists the cluster4986 when user is not authorized to adminster manangement_project4987 does not persist the cluster and adds errors4988TreeHelper4989 flatten_tree4990 on a directory containing more than one file/directory4991 returns the directory name4992 on a directory containing only one directory4993 returns the flattened path4994 with a nested root path4995 returns the flattened path with the root path suffix removed4996 when the root path contains a plus character4997 returns the flattened path4998 #commit_in_single_accessible_branch4999 escapes HTML from the branch name5000 #vue_file_list_data5001 returns a list of attributes related to the project5002 #web_ide_button_data5003 returns a list of attributes related to the project5004 a blob is passed5005 returns edit url and webide url for the blob5006 does not load blob from repository again5007 nil blob is passed5008 does not load blob from repository5009 user does not have write access but a personal fork exists5010 includes forked project path as project_path5011 a blob is passed5012 returns edit url and web ide for the blob in the fork5013 for archived project5014 does not show any buttons5015 user has write access5016 includes original project path as project_path5017 a blob is passed5018 returns edit url and web ide for the blob in the fork5019 gitpod settings is enabled5020 has show_gitpod_button: true5021 has gitpod_enabled: true when user has enabled gitpod5022 has gitpod_enabled: false when user has not enabled gitpod5023 has show_gitpod_button: false when web ide button is not shown5024 .patch_branch_name5025 returns a patch branch name5026 without a current_user5027 returns nil5028Resolvers::TimelogResolver5029 is expected to have non-null GraphQL type TimelogConnection5030 on a project5031 behaves like with a project5032 finds all timelogs within given dates5033 return nothing when user has insufficient permissions5034 when no dates specified5035 finds all timelogs5036 when only start_time present5037 finds timelogs after the start_time5038 when only end_time present5039 finds timelogs before the end_time5040 when start_time and end_date are present5041 finds timelogs until the end of day of end_date5042 when start_date and end_time are present5043 finds all timelogs within start_date and end_time5044 when arguments are invalid5045 when start_time and start_date are present5046 returns correct error5047 when end_time and end_date are present5048 returns correct error5049 when start argument is after end argument5050 returns correct error5051 with a project filter5052 behaves like with a project5053 finds all timelogs within given dates5054 return nothing when user has insufficient permissions5055 when no dates specified5056 finds all timelogs5057 when only start_time present5058 finds timelogs after the start_time5059 when only end_time present5060 finds timelogs before the end_time5061 when start_time and end_date are present5062 finds timelogs until the end of day of end_date5063 when start_date and end_time are present5064 finds all timelogs within start_date and end_time5065 when arguments are invalid5066 when start_time and start_date are present5067 returns correct error5068 when end_time and end_date are present5069 returns correct error5070 when start argument is after end argument5071 returns correct error5072 on a group5073 behaves like with a group5074 finds all timelogs5075 finds all timelogs within given dates5076 when only start_date is present5077 finds timelogs until the end of day of end_date5078 when only end_date is present5079 finds timelogs until the end of day of end_date5080 when start_time and end_date are present5081 finds timelogs until the end of day of end_date5082 when start_date and end_time are present5083 finds all timelogs within start_date and end_time5084 when arguments are invalid5085 when start_time and start_date are present5086 returns correct error5087 when end_time and end_date are present5088 returns correct error5089 when start argument is after end argument5090 returns correct error5091 with a group filter5092 behaves like with a group5093 finds all timelogs5094 finds all timelogs within given dates5095 when only start_date is present5096 finds timelogs until the end of day of end_date5097 when only end_date is present5098 finds timelogs until the end of day of end_date5099 when start_time and end_date are present5100 finds timelogs until the end of day of end_date5101 when start_date and end_time are present5102 finds all timelogs within start_date and end_time5103 when arguments are invalid5104 when start_time and start_date are present5105 returns correct error5106 when end_time and end_date are present5107 returns correct error5108 when start argument is after end argument5109 returns correct error5110 on a user5111 behaves like with a user5112 blah5113 with a user filter5114 behaves like with a user5115 blah5116 when > `default_max_page_size` records5117 pagination returns `default_max_page_size` and sets `has_next_page` true5118 when no object or arguments provided5119 returns correct error5120Lfs::FileTransformer5121 #new_file5122 with lfs disabled5123 skips gitattributes check5124 returns untransformed content5125 returns untransformed encoding5126 with lfs enabled5127 reuses cached gitattributes5128 creates an LfsObject with the file's content5129 returns an LFS pointer5130 returns LFS pointer encoding as text5131 links LfsObjects to project5132 saves the repository_type to LfsObjectsProject5133 when an actual file is passed5134 creates an LfsObject with the file's content5135 when repository is a design repository5136 creates an LfsObject with the file's content5137 saves the correct repository_type to LfsObjectsProject5138 when doesn't use LFS5139 doesn't create LFS pointers5140 when LfsObject already exists5141 links LfsObjects to project5142 when the LfsObject is already linked to project5143 and the service is called again with the same repository type5144 is expected not to change `project.lfs_objects.count`5145 does not create a new LfsObjectsProject record5146 and the service is called again with a different repository type5147 is expected not to change `project.lfs_objects.count`5148 creates a new LfsObjectsProject record5149 sets the correct repository_type on the new LfsObjectsProject record5150Metrics::Dashboard::Annotations::CreateService5151 .execute5152 with environment5153 with anonymous user5154 behaves like prevented annotation creation5155 returns error response5156 does not change db state5157 with maintainer user5158 behaves like executed annotation creation5159 returns success response5160 creates annotation5161 with cluster5162 with anonymous user5163 behaves like prevented annotation creation5164 returns error response5165 does not change db state5166 with maintainer user5167 behaves like executed annotation creation5168 returns success response5169 creates annotation5170 with owner user5171 behaves like executed annotation creation5172 returns success response5173 creates annotation5174 non cluster nor environment is supplied5175 behaves like annotation creation failure5176 returns error response5177 missing dashboard_path5178 with maintainer user5179 behaves like annotation creation failure5180 returns error response5181 incorrect dashboard_path5182 with maintainer user5183 behaves like prevented annotation creation5184 returns error response5185 does not change db state5186AvatarsHelper5187 #project_icon, #group_icon, #topic_icon5188 when providing a project5189 behaves like resource with a default avatar5190 returns a default avatar div5191 behaves like resource with a custom avatar5192 returns a custom avatar image5193 when Gitaly is unavailable5194 handles Gitaly exception gracefully5195 behaves like resource with a default avatar5196 returns a default avatar div5197 when Gitaly request is taking too long5198 handles Gitaly exception gracefully5199 behaves like resource with a default avatar5200 returns a default avatar div5201 when providing a group5202 behaves like resource with a default avatar5203 returns a default avatar div5204 behaves like resource with a custom avatar5205 returns a custom avatar image5206 when providing a topic5207 behaves like resource with a default avatar5208 returns a default avatar div5209 behaves like resource with a custom avatar5210 returns a custom avatar image5211 #avatar_icon_for5212 prefers the user to retrieve the avatar_url5213 falls back to email lookup if no user given5214 #avatar_icon_for_email5215 caches the request5216 behaves like returns avatar for email5217 using an email5218 when there is a matching user5219 returns a relative URL for the avatar5220 when no user exists for the email5221 calls gravatar_icon5222 without an email passed5223 calls gravatar_icon5224 #avatar_icon_for_user5225 with a user object passed5226 returns a relative URL for the avatar5227 without a user object passed5228 calls gravatar_icon5229 #gravatar_icon5230 with Gravatar disabled5231 returns a generic avatar5232 with Gravatar enabled5233 returns a generic avatar when email is blank5234 returns a valid Gravatar URL5235 uses HTTPs when configured5236 returns custom gravatar path when gravatar_url is set5237 accepts a custom size argument5238 defaults size to 40@2x when given an invalid size5239 accepts a scaling factor5240 ignores case and surrounding whitespace5241 #user_avatar5242 links to the user's profile5243 has the user's name as title5244 contains the user's avatar image5245 #user_avatar_without_link5246 displays user avatar5247 with css_class parameter5248 uses provided css_class5249 with size parameter5250 uses provided size5251 with url parameter5252 uses provided url5253 with lazy parameter5254 adds `lazy` class to class list, sets `data-src` with avatar URL and `src` with placeholder image5255 with has_tooltip parameter5256 with has_tooltip set to true5257 adds has-tooltip5258 with has_tooltip set to false5259 does not add has-tooltip or data container5260 with user_name parameter5261 uses user_name and user_email parameter if user is not present5262 with user parameter5263 prefers user parameter5264 with only_path parameter set to false5265 with user parameter5266 will return avatar with a full path5267 with user_name and user_email5268 will return avatar with a full path5269 with unregistered email address5270 will return default alt text for avatar5271 #avatar_without_link5272 with users5273 displays user avatar5274 with groups5275 displays group avatar5276Gitlab::Ci::Config::Entry::Need5277 with simple config5278 when job is specified5279 #valid?5280 is expected to be valid5281 #value5282 returns job needs configuration5283 behaves like job type5284 #type5285 is expected to eq :job5286 when need is empty5287 #valid?5288 is expected not to be valid5289 #errors5290 is returns an error about an empty config5291 behaves like job type5292 #type5293 is expected to eq :job5294 with complex config5295 with job name and artifacts true5296 #valid?5297 is expected to be valid5298 #value5299 returns job needs configuration5300 behaves like job type5301 #type5302 is expected to eq :job5303 with job name and artifacts false5304 #valid?5305 is expected to be valid5306 #value5307 returns job needs configuration5308 behaves like job type5309 #type5310 is expected to eq :job5311 with job name and artifacts nil5312 #valid?5313 is expected to be valid5314 #value5315 returns job needs configuration5316 behaves like job type5317 #type5318 is expected to eq :job5319 without artifacts key5320 #valid?5321 is expected to be valid5322 #value5323 returns job needs configuration5324 behaves like job type5325 #type5326 is expected to eq :job5327 with job name and optional true5328 is expected to be valid5329 behaves like job type5330 #type5331 is expected to eq :job5332 #value5333 returns job needs configuration5334 with job name and optional false5335 is expected to be valid5336 behaves like job type5337 #type5338 is expected to eq :job5339 #value5340 returns job needs configuration5341 with job name and optional nil5342 is expected to be valid5343 behaves like job type5344 #type5345 is expected to eq :job5346 #value5347 returns job needs configuration5348 without optional key5349 is expected to be valid5350 behaves like job type5351 #type5352 is expected to eq :job5353 #value5354 returns job needs configuration5355 when job name is empty5356 #valid?5357 is expected not to be valid5358 #errors5359 is returns an error about an empty config5360 behaves like job type5361 #type5362 is expected to eq :job5363 when job name is not a string5364 #valid?5365 is expected not to be valid5366 #errors5367 is returns an error about job type5368 behaves like job type5369 #type5370 is expected to eq :job5371 when job has unknown keys5372 #valid?5373 is expected not to be valid5374 #errors5375 is returns an error about job type5376 behaves like job type5377 #type5378 is expected to eq :job5379 with cross pipeline artifacts needs5380 when pipeline is provided5381 when job is provided5382 is expected to be valid5383 sets artifacts:true by default5384 sets the type as cross_dependency5385 when artifacts is provided5386 is expected to be valid5387 returns the correct value5388 when config contains not allowed keys5389 is expected not to be valid5390 returns an error5391 when need config is not a string or a hash5392 #valid?5393 is expected not to be valid5394 #errors5395 is returns an error about job type5396Integrations::Datadog5397 behaves like Integrations::HasWebHook5398 callbacks5399 calls #update_web_hook! when enabled5400 does not call #update_web_hook! when disabled5401 does not call #update_web_hook! when validation fails5402 #hook_url5403 returns a string5404 #hook_ssl_verification5405 returns a boolean5406 #update_web_hook!5407 creates or updates a service hook5408 raises an error if the service hook could not be saved5409 does not attempt to save the service hook if there are no changes5410 #execute_web_hook!5411 creates the webhook if necessary and executes it5412 raises an error if the service hook could not be saved5413 validations5414 when service is active5415 is expected to validate that :api_key cannot be empty/falsy5416 is expected to allow :api_key to be ‹"c4209180940575bfc9b1c4b81b42c7c714c20f117b76e330237730ca87d5dd93"›5417 is expected not to allow :api_key to be ‹"87dab2403c9d462 87aec4d9214edb1e"›5418 is expected not to allow :api_key to be ‹"................................"›5419 when selecting site5420 is expected to validate that :datadog_site cannot be empty/falsy5421 is expected not to validate that :api_url cannot be empty/falsy5422 is expected not to allow :datadog_site to be ‹"datadog hq.com"›5423 with custom api_url5424 is expected not to validate that :datadog_site cannot be empty/falsy5425 is expected to validate that :api_url cannot be empty/falsy5426 is expected to allow :api_url to be ‹"https://webhook-intake.datad0g.com/api/v2/webhook"›5427 is expected not to allow :api_url to be ‹"example.com"›5428 when missing site and api_url5429 is expected not to be valid5430 is expected to validate that :datadog_site cannot be empty/falsy5431 is expected to validate that :api_url cannot be empty/falsy5432 when providing both site and api_url5433 is expected not to allow :datadog_site to be ‹"datadog hq.com"›5434 is expected not to allow :api_url to be ‹"example.com"›5435 when integration is not active5436 is expected to be valid5437 is expected not to validate that :api_key cannot be empty/falsy5438 #hook_url5439 with standard site URL5440 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=1d127f1ba03a9fac4487c946f18293db2dbc6663cca036be525f5ba7f61ff12a&env=ci&service=awesome-gitlab"5441 with custom URL5442 is expected to eq "https://webhook-intake.datad0g.com/api/v2/webhook?dd-api-key=5f69c3d7087d966c5272252ca16df40f0d9b91496176b8fc9db295cbc5096fae&env=ci&service=awesome-gitlab"5443 blank5444 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=8ce9d88c88e12278e5cf10fc8c8bbb62d072320b02e63613eea6b0fdd4d6f5cd&env=ci&service=awesome-gitlab"5445 without optional params5446 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=8610422a40b457ceb374c8dd62d865819150ac00dedd80c2396fbdf5fb941e99"5447 #test5448 when request is successful with a HTTP 200 status5449 is expected to eq {:result=>"OK", :success=>true}5450 when request is successful with a HTTP 202 status5451 is expected to eq {:result=>"OK", :success=>true}5452 when request fails with a HTTP 500 status5453 is expected to eq {:result=>"CRASH!!!", :success=>false}5454 #execute5455 with pipeline data5456 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=5f6444bed8b70f92259c7bcf5ee0740ba95f0fe860311f49d4a0417cae986437&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"id\":591,\"ref\":\"master\",\"tag\":false,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"before_sha\":\"0000000000000000000000000000000000000000\",\"source\":\"push\",\"status\":\"pending\",\"detailed_status\":\"pending\",\"stages\":[\"test\"],\"created_at\":\"2021-12-20T17:15:47.260Z\",\"finished_at\":null,\"duration\":null,\"queued_duration\":null,\"variables\":[]},\"merge_request\":null,\"user\":null,\"project\":{\"id\":869,\"name\":\"project939\",\"description\":null,\"web_url\":\"http://localhost/namespace773/project939\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace773/project939.git\",\"git_http_url\":\"http://localhost/namespace773/project939.git\",\"namespace\":\"Sidney Jones1527\",\"visibility_level\":0,\"path_with_namespace\":\"namespace773/project939\",\"default_branch\":null,\"ci_config_path\":null},\"commit\":null,\"builds\":[{\"id\":626,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2021-12-20T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":30321.0,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null},{\"id\":627,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2021-12-20T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":30321.0,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null}]}" with headers {'X-Gitlab-Event'=>'Pipeline Hook'} 1 time5457 with job data5458 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=f218b8ffc19da10f4fee8ad55e9f4a818c2ce50e74af65da94e683dc15d51834&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"build\",\"ref\":\"master\",\"tag\":false,\"before_sha\":\"0000000000000000000000000000000000000000\",\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"build_id\":626,\"build_name\":\"test\",\"build_stage\":\"test\",\"build_status\":\"pending\",\"build_created_at\":\"2021-12-20T08:50:29.000Z\",\"build_started_at\":null,\"build_finished_at\":null,\"build_duration\":null,\"build_queued_duration\":30321.0,\"build_allow_failure\":false,\"build_failure_reason\":\"unknown_failure\",\"pipeline_id\":591,\"runner\":null,\"project_id\":869,\"project_name\":\"Sidney Jones1527 / project939\",\"user\":null,\"commit\":{\"id\":591,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"message\":null,\"author_name\":null,\"author_email\":null,\"author_url\":\"mailto:\",\"status\":\"pending\",\"duration\":null,\"started_at\":null,\"finished_at\":null},\"repository\":{\"name\":\"project939\",\"url\":\"git@localhost:namespace773/project939.git\",\"description\":null,\"homepage\":\"http://localhost/namespace773/project939\",\"git_http_url\":\"http://localhost/namespace773/project939.git\",\"git_ssh_url\":\"git@localhost:namespace773/project939.git\",\"visibility_level\":0},\"environment\":null}" with headers {'X-Gitlab-Event'=>'Job Hook'} 1 time5459Packages::Go::SyncPackagesWorker5460 #perform5461 with no existing packages5462 behaves like it creates a package5463 returns a package for example.com/project@v1.0.15464 behaves like it creates a package5465 returns a package for example.com/project@v1.0.25466 behaves like it creates a package5467 returns a package for example.com/project@v1.0.35468 behaves like it creates a package5469 returns a package for example.com/project/mod@v1.0.35470 behaves like it creates a package5471 returns a package for example.com/project/v2@v2.0.05472 with existing packages5473 behaves like it creates a package5474 returns a package for example.com/project@v1.0.15475 behaves like it creates a package5476 returns a package for example.com/project@v1.0.25477 behaves like it creates a package5478 returns a package for example.com/project@v1.0.35479 behaves like it creates a package5480 returns a package for example.com/project/mod@v1.0.35481 behaves like it creates a package5482 returns a package for example.com/project/v2@v2.0.05483 with a package that exceeds project limits5484 logs an exception5485 path: "", version: "v1.0.1"5486 behaves like an idempotent worker5487 is labeled as idempotent5488 performs multiple times sequentially without raising an exception5489 creates a package5490 path: "", version: "v1.0.2"5491 behaves like an idempotent worker5492 is labeled as idempotent5493 performs multiple times sequentially without raising an exception5494 creates a package5495 path: "", version: "v1.0.3"5496 behaves like an idempotent worker5497 is labeled as idempotent5498 performs multiple times sequentially without raising an exception5499 creates a package5500 path: "mod", version: "v1.0.3"5501 behaves like an idempotent worker5502 is labeled as idempotent5503 performs multiple times sequentially without raising an exception5504 creates a package5505 path: "v2", version: "v2.0.0"5506 behaves like an idempotent worker5507 is labeled as idempotent5508 performs multiple times sequentially without raising an exception5509 creates a package5510MergeRequests::RemoveAttentionRequestedService5511 #execute5512 invalid permissions5513 returns an error5514 reviewer does not exist5515 returns an error5516 reviewer exists5517 returns success5518 updates reviewers state5519 assignee exists5520 returns success5521 updates assignees state5522 assignee is the same as reviewer5523 updates reviewers and assignees state5524Gitlab::Pagination::Keyset::InOperatorOptimization::QueryBuilder5525 raises error when unsupported scope is passed5526 when ordering by issues.id DESC5527 when iterating records one by one5528 behaves like correct ordering examples5529 returns records in correct order5530 when not passing the finder query5531 returns records in correct order5532 loads only the order by column5533 when iterating records with LIMIT 35534 behaves like correct ordering examples5535 returns records in correct order5536 when not passing the finder query5537 returns records in correct order5538 loads only the order by column5539 when loading records at once5540 behaves like correct ordering examples5541 returns records in correct order5542 when not passing the finder query5543 returns records in correct order5544 loads only the order by column5545 when ordering by issues.relative_position DESC NULLS LAST, id DESC5546 when iterating records one by one5547 behaves like correct ordering examples5548 returns records in correct order5549 when not passing the finder query5550 returns records in correct order5551 loads only the order by column5552 when iterating records with LIMIT 35553 behaves like correct ordering examples5554 returns records in correct order5555 when not passing the finder query5556 returns records in correct order5557 loads only the order by column5558 when ordering by issues.created_at DESC, issues.id ASC5559 when iterating records one by one5560 behaves like correct ordering examples5561 returns records in correct order5562 when not passing the finder query5563 returns records in correct order5564 loads only the order by column5565 when iterating records with LIMIT 35566 behaves like correct ordering examples5567 returns records in correct order5568 when not passing the finder query5569 returns records in correct order5570 loads only the order by column5571 when loading records at once5572 behaves like correct ordering examples5573 returns records in correct order5574 when not passing the finder query5575 returns records in correct order5576 loads only the order by column5577 pagination support5578 offset pagination5579 paginates the scopes5580 keyset pagination5581 paginates correctly5582GroupClusterablePresenter5583 #can_create_cluster?5584 when user can create5585 is expected to be truthy5586 when user cannot create5587 is expected to be falsey5588 #index_path5589 is expected to eq "/groups/group239/-/clusters"5590 #new_path5591 is expected to eq "/groups/group240/-/clusters/new"5592 #authorize_aws_role_path5593 is expected to eq "/groups/group241/-/clusters/authorize_aws_role"5594 #create_user_clusters_path5595 is expected to eq "/groups/group242/-/clusters/create_user"5596 #create_gcp_clusters_path5597 is expected to eq "/groups/group243/-/clusters/create_gcp"5598 #cluster_status_cluster_path5599 is expected to eq "/groups/group244/-/clusters/227/cluster_status"5600 #clear_cluster_cache_path5601 is expected to eq "/groups/group245/-/clusters/230/clear_cache"5602 #cluster_path5603 is expected to eq "/groups/group246/-/clusters/233"5604 #metrics_dashboard_path5605 is expected to eq "/groups/group247/-/clusters/236/metrics_dashboard"5606 #learn_more_link5607 is expected to include "user/group/clusters/index"5608Packages::Npm::CreateTagService5609 #execute5610 with no existing tag name5611 behaves like it creates the tag5612 is expected to change `Packages::Tag.count` by 15613 is expected to eq "test-tag"5614 adds tag to the package5615 with exisiting tag name5616 on package with different name5617 behaves like it creates the tag5618 is expected to change `Packages::Tag.count` by 15619 is expected to eq "test-tag"5620 adds tag to the package5621 on different package type5622 behaves like it creates the tag5623 is expected to change `Packages::Tag.count` by 15624 is expected to eq "test-tag"5625 adds tag to the package5626 on same package with different version5627 is expected to not change `Packages::Tag.count`5628 is expected to eq "test-tag"5629 adds tag to the package5630Ci::PipelinePolicy5631 rules5632 rules for protected ref5633 when no one can push or merge to the branch5634 does not include ability to update pipeline5635 when developers can push to the branch5636 includes ability to update pipeline5637 when no one can create the tag5638 does not include ability to update pipeline5639 when no one can create the tag but it is not a tag5640 includes ability to update pipeline5641 when maintainer is allowed to push to pipeline branch5642 enables update_pipeline if user is maintainer5643 when user does not have access to internal CI5644 disallows the user from reading the pipeline5645 destroy_pipeline5646 when user has owner access5647 is enabled5648 when user is not owner5649 is disabled5650 read_pipeline_variable5651 when user has owner access5652 is enabled5653 when user is developer and the creator of the pipeline5654 is enabled5655 when user is developer and it is not the creator of the pipeline5656 is disabled5657 when user is not owner nor developer5658 is disabled5659Deployments::LinkMergeRequestsService5660 #execute5661 when the deployment is for a review environment5662 does nothing5663 when the deployment is for one of the production environments5664 links merge requests5665 when the deployment failed5666 does nothing5667 when there is a previous deployment5668 links all merge requests merged since the previous deployment5669 when there are no previous deployments5670 links all merged merge requests5671 #link_merge_requests_for_range5672 links merge requests5673 links picked merge requests5674 doesn't link the same merge_request twice5675 #link_all_merged_merge_requests5676 links all merged merge requests targeting the deployed branch5677QuickActions::TargetService5678 #execute5679 for issue5680 behaves like find target5681 returns the target5682 behaves like build target5683 builds a new target5684 behaves like build target5685 builds a new target5686 for merge request5687 behaves like find target5688 returns the target5689 behaves like build target5690 builds a new target5691 behaves like build target5692 builds a new target5693 for commit5694 behaves like find target5695 returns the target5696 behaves like no target5697 returns nil5698 with nil target_id5699 behaves like find target5700 returns the target5701 for unknown type5702 behaves like no target5703 returns nil5704DiffViewer::Base5705 .can_render?5706 when the extension is supported5707 when the binaryness matches5708 returns true5709 when the binaryness does not match5710 returns false5711 when the extension and file type are not supported5712 returns false5713 when the file was renamed and only the old blob is supported5714 returns false5715 #collapsed?5716 when the combined blob size is larger than the collapse limit5717 returns true5718 when the combined blob size is smaller than the collapse limit5719 returns false5720 #too_large?5721 when the combined blob size is larger than the size limit5722 returns true5723 when the blob size is smaller than the size limit5724 returns false5725 #render_error5726 when the combined blob size is larger than the size limit5727 returns :too_large5728 when the combined blob size is smaller than the size limit5729 returns nil5730 #render_error_message5731 returns nothing when no render_error5732 when render_error error5733 returns an error message5734 includes a "view the blob" link5735ProjectClusterablePresenter5736 #can_create_cluster?5737 when user can create5738 is expected to be truthy5739 when user cannot create5740 is expected to be falsey5741 #index_path5742 is expected to eq "/namespace852/project1018/-/clusters"5743 #new_path5744 is expected to eq "/namespace853/project1019/-/clusters/new"5745 #authorize_aws_role_path5746 is expected to eq "/namespace854/project1020/-/clusters/authorize_aws_role"5747 #create_user_clusters_path5748 is expected to eq "/namespace855/project1021/-/clusters/create_user"5749 #create_gcp_clusters_path5750 is expected to eq "/namespace856/project1022/-/clusters/create_gcp"5751 #cluster_status_cluster_path5752 is expected to eq "/namespace857/project1023/-/clusters/242/cluster_status"5753 #clear_cluster_cache_path5754 is expected to eq "/namespace858/project1024/-/clusters/245/clear_cache"5755 #cluster_path5756 is expected to eq "/namespace859/project1025/-/clusters/248"5757 #metrics_dashboard_path5758 is expected to eq "/namespace860/project1026/-/clusters/251/metrics_dashboard"5759 #learn_more_link5760 is expected to include "user/project/clusters/index"5761Gitlab::Redis::SharedState5762 .config_file_name5763 when there is no config file anywhere5764 is expected to be nil5765 but resque.yml exists5766 is expected to eq "/tmp/redis_shared_examples20211220-448-fn9tyv/config/resque.yml"5767 returns a path that exists5768 and there is a global env override5769 is expected to eq "global override"5770 and there is an instance specific config file5771 is expected to eq "/tmp/redis_shared_examples20211220-448-74glta/config/redis.shared_state.yml"5772 returns a path that exists5773 and there is a specific env override5774 is expected to eq "instance specific override"5775 .store5776 with old format5777 behaves like redis store5778 instantiates Redis::Store5779 with the namespace5780 uses specified namespace5781 with new format5782 behaves like redis store5783 instantiates Redis::Store5784 with the namespace5785 uses specified namespace5786 .params5787 withstands mutation5788 when url contains unix socket reference5789 with old format5790 returns path key instead5791 with new format5792 returns path key instead5793 when url is host based5794 with old format5795 returns hash with host, port, db, and password5796 with new format5797 rails_env: "development", host: "development-host"5798 returns hash with host, port, db, and password5799 rails_env: "test", host: "test-host"5800 returns hash with host, port, db, and password5801 rails_env: "production", host: "production-host"5802 returns hash with host, port, db, and password5803 .url5804 withstands mutation5805 when yml file with env variable5806 reads redis url from env variable5807 .version5808 returns a version5809 ._raw_config5810 is frozen5811 returns false when the file does not exist5812 returns false when the filename can't be determined5813 .with5814 when running on single-threaded runtime5815 instantiates a connection pool with size 55816 when running on multi-threaded runtime5817 instantiates a connection pool with a size based on the concurrency of the worker5818 when there is no config at all5819 can run an empty block5820 #db5821 with old format5822 returns the correct db5823 with new format5824 returns the correct db5825 #sentinels5826 when sentinels are defined5827 rails_env: "development", hosts: ["development-replica1", "development-replica2"]5828 returns an array of hashes with host and port keys5829 rails_env: "test", hosts: ["test-replica1", "test-replica2"]5830 returns an array of hashes with host and port keys5831 rails_env: "production", hosts: ["production-replica1", "production-replica2"]5832 returns an array of hashes with host and port keys5833 when sentinels are not defined5834 returns nil5835 #sentinels?5836 when sentinels are defined5837 returns true5838 when sentinels are not defined5839 returns false5840 #raw_config_hash5841 returns old-style single url config in a hash5842 #fetch_config5843 returns false when no config file is present5844 returns false when config file is present but has invalid YAML5845 has a value for the legacy default URL5846 #raw_config_hash5847 has a legacy default URL5848Gitlab::SidekiqConfig::WorkerMatcher5849 #match?5850 with valid input5851 query: "worker_name=WorkerA", expected_metadatas: ["WorkerA"]5852 is expected to contain exactly "WorkerA"5853 query: "worker_name=WorkerA2", expected_metadatas: ["WorkerA2"]5854 is expected to contain exactly "WorkerA2"5855 query: "worker_name=WorkerB|worker_name=WorkerD", expected_metadatas: ["WorkerB"]5856 is expected to contain exactly "WorkerB"5857 query: "worker_name!=WorkerA", expected_metadatas: ["WorkerA2", "WorkerB", "WorkerC"]5858 is expected to contain exactly "WorkerA2", "WorkerB", and "WorkerC"5859 query: "feature_category=category_a", expected_metadatas: ["WorkerA", "WorkerA2"]5860 is expected to contain exactly "WorkerA" and "WorkerA2"5861 query: "feature_category=category_a,category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]5862 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"5863 query: "feature_category=category_a|feature_category=category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]5864 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"5865 query: "feature_category!=category_a", expected_metadatas: ["WorkerB", "WorkerC"]5866 is expected to contain exactly "WorkerB" and "WorkerC"5867 query: "has_external_dependencies=true", expected_metadatas: ["WorkerB"]5868 is expected to contain exactly "WorkerB"5869 query: "has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]5870 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"5871 query: "has_external_dependencies=true,false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]5872 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"5873 query: "has_external_dependencies=true|has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]5874 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"5875 query: "has_external_dependencies!=true", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]5876 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"5877 query: "urgency=high", expected_metadatas: ["WorkerA2", "WorkerB"]5878 is expected to contain exactly "WorkerA2" and "WorkerB"5879 query: "urgency=low", expected_metadatas: ["WorkerA"]5880 is expected to contain exactly "WorkerA"5881 query: "urgency=high,low,throttled", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]5882 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"5883 query: "urgency=low|urgency=throttled", expected_metadatas: ["WorkerA", "WorkerC"]5884 is expected to contain exactly "WorkerA" and "WorkerC"5885 query: "urgency!=high", expected_metadatas: ["WorkerA", "WorkerC"]5886 is expected to contain exactly "WorkerA" and "WorkerC"5887 query: "name=a", expected_metadatas: ["WorkerA"]5888 is expected to contain exactly "WorkerA"5889 query: "name=a,b", expected_metadatas: ["WorkerA", "WorkerB"]5890 is expected to contain exactly "WorkerA" and "WorkerB"5891 query: "name=a,a:2|name=b", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]5892 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"5893 query: "name!=a,a:2", expected_metadatas: ["WorkerB", "WorkerC"]5894 is expected to contain exactly "WorkerB" and "WorkerC"5895 query: "resource_boundary=memory", expected_metadatas: ["WorkerB", "WorkerC"]5896 is expected to contain exactly "WorkerB" and "WorkerC"5897 query: "resource_boundary=memory,cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]5898 is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"5899 query: "resource_boundary=memory|resource_boundary=cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]5900 is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"5901 query: "resource_boundary!=memory,cpu", expected_metadatas: ["WorkerA2"]5902 is expected to contain exactly "WorkerA2"5903 query: "tags=no_disk_io", expected_metadatas: ["WorkerA", "WorkerB"]5904 is expected to contain exactly "WorkerA" and "WorkerB"5905 query: "tags=no_disk_io,git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]5906 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"5907 query: "tags=no_disk_io|tags=git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]5908 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"5909 query: "tags=no_disk_io&tags=git_access", expected_metadatas: ["WorkerA"]5910 is expected to contain exactly "WorkerA"5911 query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]5912 is expected to contain exactly "WorkerA2" and "WorkerC"5913 query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]5914 is expected to contain exactly "WorkerC"5915 query: "tags=unknown_tag", expected_metadatas: []5916 is expected to contain exactly5917 query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]5918 is expected to contain exactly "WorkerA2" and "WorkerC"5919 query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]5920 is expected to contain exactly "WorkerC"5921 query: "tags!=unknown_tag", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]5922 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"5923 query: "feature_category=category_a&urgency=high", expected_metadatas: ["WorkerA2"]5924 is expected to contain exactly "WorkerA2"5925 query: "feature_category=category_a&urgency=high|feature_category=category_c", expected_metadatas: ["WorkerA2", "WorkerC"]5926 is expected to contain exactly "WorkerA2" and "WorkerC"5927 query: "*", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]5928 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"5929 with invalid input5930 query: "feature_category=\"category_a\"", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5931 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5932 query: "feature_category=", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5933 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5934 query: "feature_category~category_a", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5935 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm5936 query: "invalid_term=a", error: Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate5937 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate5938Banzai::Filter::VideoLinkFilter5939 when the element src has a video extension5940 behaves like a video element5941 replaces the image tag with a video tag5942 behaves like a video element5943 replaces the image tag with a video tag5944 behaves like a video element5945 replaces the image tag with a video tag5946 behaves like a video element5947 replaces the image tag with a video tag5948 behaves like a video element5949 replaces the image tag with a video tag5950 behaves like a video element5951 replaces the image tag with a video tag5952 behaves like a video element5953 replaces the image tag with a video tag5954 behaves like a video element5955 replaces the image tag with a video tag5956 behaves like a video element5957 replaces the image tag with a video tag5958 behaves like a video element5959 replaces the image tag with a video tag5960 when the element has no src attribute5961 behaves like an unchanged element5962 leaves the document unchanged5963 when the element src is an image5964 behaves like an unchanged element5965 leaves the document unchanged5966 when the element src has an invalid file extension5967 behaves like an unchanged element5968 leaves the document unchanged5969 when data-canonical-src is empty5970 and src is a video5971 behaves like a video element5972 replaces the image tag with a video tag5973 and src is an image5974 behaves like an unchanged element5975 leaves the document unchanged5976 when data-canonical-src is set5977 uses the correct src5978Clusters::Gcp::VerifyProvisionStatusService5979 #execute5980 when operation status is RUNNING5981 behaves like continue_creation5982 schedules a worker for status minitoring5983 when cluster creation time exceeds timeout5984 behaves like error5985 sets an error to provider object5986 when operation status is PENDING5987 behaves like continue_creation5988 schedules a worker for status minitoring5989 when operation status is DONE5990 behaves like finalize_creation5991 schedules a worker for status minitoring5992 when operation status is unexpected5993 behaves like error5994 sets an error to provider object5995 when failed to get operation status5996 behaves like error5997 sets an error to provider object5998Gitlab::Auth::Ldap::Access5999 .allowed?6000 updates the user's `last_credential_check_at`6001 does not update user's `last_credential_check_at` when in a read-only GitLab instance6002 #allowed?6003 when the user cannot be found6004 returns false6005 blocks user in GitLab6006 logs the reason6007 when the user is found6008 and the user is disabled via active directory6009 returns false6010 blocks user in GitLab6011 logs the reason6012 and has no disabled flag in active directory6013 is expected to be truthy6014 when auto-created users are blocked6015 does not unblock user in GitLab6016 when auto-created users are not blocked6017 unblocks user in GitLab6018 logs the reason6019 without ActiveDirectory enabled6020 returns true6021 when user cannot be found6022 returns false6023 blocks user in GitLab6024 logs the reason6025 when user was previously ldap_blocked6026 unblocks the user if it exists6027 logs the reason6028 when the connection fails6029 does not block the user6030 denies access6031Gitlab::Diff::DiffRefs6032 #==6033 when shas are missing6034 returns false6035 when shas are equal6036 returns true6037 when shas are unequal6038 returns false6039 when shas are truncated6040 when sha prefixes are too short6041 returns false6042 when sha prefixes are equal6043 returns true6044 when sha prefixes are unequal6045 returns false6046 #compare_in6047 with diff refs for the initial commit6048 returns an appropriate comparison6049 with diff refs for a commit6050 returns an appropriate comparison6051 with diff refs for a comparison through the base6052 returns an appropriate comparison6053 with diff refs for a straight comparison6054 returns an appropriate comparison6055Gitlab::Ci::Badge::Pipeline::Metadata6056 behaves like badge metadata6057 #to_html6058 points to link6059 contains clickable image6060 #to_markdown6061 is expected to include "http://localhost/namespace890/project1056/badges/feature/pipeline.svg"6062 is expected to include "http://localhost/namespace891/project1057/-/commits/feature"6063 #to_asciidoc6064 is expected to include "http://localhost/namespace892/project1058/badges/feature/pipeline.svg"6065 is expected to include "http://localhost/namespace893/project1059/-/commits/feature"6066 is expected to include "image:"6067 is expected to include "link="6068 is expected to include "title="6069 #title6070 returns build status title6071 #image_url6072 returns valid url6073 #link_url6074 returns valid link6075FileMover6076 #execute6077 local storage6078 when move and field update successful6079 updates the description correctly6080 updates existing upload record6081 schedules a background migration6082 when update_markdown fails6083 does not update the description6084 does not change the upload record6085 when tmp uploader is not local storage6086 when move and field update successful6087 updates the description correctly6088 creates new target upload record an delete the old upload6089 when update_markdown fails6090 does not update the description6091 does not change the upload record6092 security6093 when relative path is involved6094 does not trigger move if path is outside designated directory6095 when symlink is involved6096 does not trigger move if path is outside designated directory6097NoteEntity6098 behaves like note entity6099 basic note6100 exposes correct elements6101 does not expose elements for specific notes cases6102 exposes author correctly6103 does not expose web_url for author6104 exposes permission fields on current_user6105 :can_resolve_discussion6106 discussion is resolvable6107 user can resolve6108 is true6109 user cannot resolve6110 is false6111 discussion is not resolvable6112 is false6113 when note was edited6114 exposes last_edited_at and last_edited_by elements6115 when note is a system note6116 exposes system_note_icon_name element6117Packages::Conan::PackagePresenter6118 #recipe_urls6119 behaves like no existing package6120 when package does not exist6121 is expected to be empty6122 behaves like conan_file_metadatum is not found6123 when no conan_file_metadatum exists6124 is expected to be empty6125 existing package6126 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/packages/conan/v1/files/package-4/1.0.0/namespace910+projec...packages/conan/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/export/conanmanifest.txt"}6127 when there are multiple channels for the same package6128 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/packages/conan/v1/files/package-4/1.0.0/namespace910+projec...packages/conan/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/export/conanmanifest.txt"}6129 with package_scope of project6130 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/projects/1006/packages/conan/v1/files/package-4/1.0.0/names...packages/conan/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/export/conanmanifest.txt"}6131 #recipe_snapshot6132 behaves like no existing package6133 when package does not exist6134 is expected to be empty6135 behaves like conan_file_metadatum is not found6136 when no conan_file_metadatum exists6137 is expected to be empty6138 existing package6139 is expected to eq {"conanfile.py"=>"12345abcde", "conanmanifest.txt"=>"12345abcde"}6140 #package_urls6141 behaves like no existing package6142 when package does not exist6143 is expected to be empty6144 behaves like conan_file_metadatum is not found6145 when no conan_file_metadatum exists6146 is expected to be empty6147 existing package6148 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-4/1.0.0/namespace910+p...n/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/package/123456789/0/conanmanifest.txt"}6149 with package_scope of project6150 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/projects/1006/packages/conan/v1/files/package-4/1.0.0/...n/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/package/123456789/0/conanmanifest.txt"}6151 multiple packages with different references6152 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-4/1.0.0/namespace910+p...n/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/package/123456789/0/conanmanifest.txt"}6153 returns empty if the reference does not exist6154 requesting the alternative reference6155 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-4/1.0.0/namespace910+p...n/v1/files/package-4/1.0.0/namespace910+project1076/stable/0/package/abcdefghi/0/conanmanifest.txt"}6156 #package_snapshot6157 behaves like no existing package6158 when package does not exist6159 is expected to be empty6160 behaves like conan_file_metadatum is not found6161 when no conan_file_metadatum exists6162 is expected to be empty6163 existing package6164 is expected to eq {"conan_package.tgz"=>"12345abcde", "conaninfo.txt"=>"12345abcde", "conanmanifest.txt"=>"12345abcde"}6165 when requested with invalid reference6166 is expected to eq {}6167Deployments::OlderDeploymentsDropService6168 #execute6169 when deployment is nil6170 behaves like it does not drop any build6171 is expected to not change `Ci::Build::ActiveRecord_Relation#count`6172 when a deployment is passed in6173 and there is no active deployment for the related environment6174 behaves like it does not drop any build6175 is expected to not change `Ci::Build::ActiveRecord_Relation#count`6176 and there are active deployment for the related environment6177 and there is no older deployment than "deployment"6178 behaves like it does not drop any build6179 is expected to not change `Ci::Build::ActiveRecord_Relation#count`6180 and there is an older deployment than "deployment"6181 drops that older deployment6182 when older deployable is a manual job6183 does not drop any builds nor track the exception6184 when deployable.drop raises RuntimeError6185 does not drop an older deployment and tracks the exception6186 when ActiveRecord::StaleObjectError is raised6187 resets the object via Gitlab::OptimisticLocking6188 and there is no deployable for that older deployment6189 behaves like it does not drop any build6190 is expected to not change `Ci::Build::ActiveRecord_Relation#count`6191ExpandVariables6192 #expand6193 table tests6194 behaves like common variable expansion6195 no expansion6196 is expected to eq "key"6197 simple expansion6198 is expected to eq "keyvalue"6199 simple with hash of variables6200 is expected to eq "keyvalue"6201 complex expansion6202 is expected to eq "keyvalue"6203 simple expansions6204 is expected to eq "keyvalueresult"6205 complex expansions6206 is expected to eq "keyvalueresult"6207 out-of-order expansion6208 is expected to eq "keyresultvalue"6209 out-of-order complex expansion6210 is expected to eq "keyresultvalue"6211 review-apps expansion6212 is expected to eq "review/feature/add-review-apps"6213 do not lazily access variables when no expansion6214 is expected to eq "key"6215 lazily access variables6216 is expected to eq "keyvalue"6217 simple expansion using Collection6218 is expected to eq "keyvalue"6219 with missing variables6220 missing variable6221 is expected to eq "key"6222 complex expansions with missing variable6223 is expected to eq "keyvalue"6224 complex expansions with missing variable for Windows6225 is expected to eq "keyvalue"6226 lazily inits variables6227 when expanding variable6228 calls block at most once6229 when no expansion is needed6230 does not call block6231 #expand_existing6232 table tests6233 behaves like common variable expansion6234 no expansion6235 is expected to eq "key"6236 simple expansion6237 is expected to eq "keyvalue"6238 simple with hash of variables6239 is expected to eq "keyvalue"6240 complex expansion6241 is expected to eq "keyvalue"6242 simple expansions6243 is expected to eq "keyvalueresult"6244 complex expansions6245 is expected to eq "keyvalueresult"6246 out-of-order expansion6247 is expected to eq "keyresultvalue"6248 out-of-order complex expansion6249 is expected to eq "keyresultvalue"6250 review-apps expansion6251 is expected to eq "review/feature/add-review-apps"6252 do not lazily access variables when no expansion6253 is expected to eq "key"6254 lazily access variables6255 is expected to eq "keyvalue"6256 simple expansion using Collection6257 is expected to eq "keyvalue"6258 with missing variables6259 missing variable6260 is expected to eq "key$variable"6261 complex expansions with missing variable6262 is expected to eq "keyvalue${variable2}"6263 complex expansions with missing variable for Windows6264 is expected to eq "keyvalue%variable2%"6265 lazily inits variables6266 when expanding variable6267 calls block at most once6268 when no expansion is needed6269 does not call block6270Gitlab::Git::CrossRepoComparer6271 #compare6272 within a single repository6273 a non-straight comparison6274 compares without fetching from another repo6275 a straight comparison6276 compares without fetching from another repo6277 across two repositories6278 target ref exists in source repo6279 compares without fetching from another repo6280 target ref does not exist in source repo6281 compares in the source repo by fetching from the target to a temporary ref6282 source ref does not exist in source repo6283 returns an empty comparison6284 target ref does not exist in target repo6285 returns nil6286ResolvesPipelines6287 is expected to have graphql arguments :status, :scope, :ref, :sha, and :source6288 finds all pipelines6289 allows filtering by status6290 allows filtering by scope6291 allows filtering by ref6292 allows filtering by sha6293 does not return any pipelines if the user does not have access6294 increases field complexity based on arguments6295 filtering by source6296 when `dast_view_scans` feature flag is disabled6297 does not filter by source6298 when `dast_view_scans` feature flag is enabled6299 does filter by source6300 returns all the pipelines6301Types::MergeRequestType6302 is expected to expose permissions using Types::PermissionTypes::MergeRequest6303 is expected to require graphql authorizations :read_merge_request6304 is expected to include Types::Notes::NoteableInterface6305 is expected to include Types::CurrentUserTodos6306 has the expected fields6307 #pipelines6308 is expected to have attributes {:max_page_size => 500}6309 #diff_stats_summary6310 when MR metrics has additions and deletions6311 pulls out data from metrics object6312 #diverged_from_target_branch6313 delegates the diverged_from_target_branch? call to the merge request entity6314 merge_status_enum6315 has the type MergeStatus6316 when the the DB value is preparing6317 serializes correctly6318 when the the DB value is unchecked6319 serializes correctly6320 when the the DB value is cannot_be_merged_recheck6321 serializes correctly6322 when the the DB value is checking6323 serializes correctly6324 when the the DB value is cannot_be_merged_rechecking6325 serializes correctly6326 when the the DB value is can_be_merged6327 serializes correctly6328 when the the DB value is cannot_be_merged6329 serializes correctly6330Groups::UpdateSharedRunnersService6331 #execute6332 when current_user is not the group owner6333 results error and does not call any method6334 when current_user is the group owner6335 enable shared Runners6336 group that its ancestors have shared runners disabled6337 results error6338 root group with shared runners disabled6339 receives correct method and succeeds6340 when group has pending builds6341 updates pending builds for the group6342 when shared runners is not toggled6343 does not update pending builds for the group6344 disable shared Runners6345 receives correct method and succeeds6346 when group has pending builds6347 updates pending builds for the group6348 allow descendants to override6349 top level group6350 receives correct method and succeeds6351 when parent does not allow6352 results error6353PageLayoutHelper6354 page_description6355 defaults to nil6356 returns the last-pushed description6357 squishes multiple newlines6358 truncates6359 sanitizes all HTML6360 truncates before sanitizing6361 page_image6362 defaults to the GitLab logo6363 with @project assigned6364 uses Project avatar full url6365 when avatar_url is nil6366 falls back to the default when avatar_url is nil6367 with no assignments6368 falls back to the default6369 with @user assigned6370 uses User avatar full url6371 when avatar_url is nil6372 falls back to the default when avatar_url is nil6373 with no assignments6374 falls back to the default6375 with @group assigned6376 uses Group avatar full url6377 when avatar_url is nil6378 falls back to the default when avatar_url is nil6379 with no assignments6380 falls back to the default6381 page_card_attributes6382 raises ArgumentError when given more than two attributes6383 rejects blank values6384 page_card_meta_tags6385 returns the twitter:label and twitter:data tags6386 escapes content6387 #search_context6388 a bare controller6389 returns an empty context6390 #page_canonical_link6391 when link is passed6392 stores and returns the link value6393 when no link is provided6394 behaves like generates the canonical url using the params in the context6395 is expected to eq "http://test.host/foo"6396 behaves like generates the canonical url using the params in the context6397 is expected to eq "http://test.host/foo"6398 behaves like does not return a canonical url6399 is expected to be nil6400 behaves like does not return a canonical url6401 is expected to be nil6402 #page_itemtype6403 when itemtype is passed6404 stores and returns the itemtype value6405 when no itemtype is provided6406 returns an empty hash6407 #user_status_properties6408 when the user has no status6409 returns default properties6410 when user has a status6411 merges the status properties with the defaults6412Banzai::Pipeline::PlainMarkdownPipeline6413 backslash escapes6414 using ruby-based HTML renderer6415 behaves like renders correct markdown6416 CommonMark tests6417 converts all reference punctuation to literals6418 ensure we handle all the GitLab reference characters6419 does not convert non-reference punctuation to spans6420 does not convert other characters to literals6421 backslash escapes do not work in code blocks, code spans, autolinks, or raw HTML6422 markdown: "`` \\@\\! ``", expected: "<code>\\@\\!</code>"6423 is expected to include "<code>\\@\\!</code>"6424 markdown: " \\@\\!", expected: "<code>\\@\\!\n</code>"6425 is expected to include "<code>\\@\\!\n</code>"6426 markdown: "~~~\n\\@\\!\n~~~", expected: "<code>\\@\\!\n</code>"6427 is expected to include "<code>\\@\\!\n</code>"6428 markdown: "<http://example.com?find=\\@>", expected: "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6429 is expected to include "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6430 markdown: "<a href=\"/bar\\@)\">", expected: "<a href=\"/bar%5C@)\">"6431 is expected to include "<a href=\"/bar%5C@)\">"6432 work in all other contexts, including URLs and link titles, link references, and info strings in fenced code blocks6433 renders correct html6434 markdown: "[foo](/bar\\@ \"\\@title\")", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6435 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6436 markdown: "[foo]\n\n[foo]: /bar\\@ \"\\@title\"", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6437 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6438 using c-based HTML renderer6439 behaves like renders correct markdown6440 CommonMark tests6441 converts all reference punctuation to literals6442 ensure we handle all the GitLab reference characters6443 does not convert non-reference punctuation to spans6444 does not convert other characters to literals6445 backslash escapes do not work in code blocks, code spans, autolinks, or raw HTML6446 markdown: "`` \\@\\! ``", expected: "<code>\\@\\!</code>"6447 is expected to include "<code>\\@\\!</code>"6448 markdown: " \\@\\!", expected: "<code>\\@\\!\n</code>"6449 is expected to include "<code>\\@\\!\n</code>"6450 markdown: "~~~\n\\@\\!\n~~~", expected: "<code>\\@\\!\n</code>"6451 is expected to include "<code>\\@\\!\n</code>"6452 markdown: "<http://example.com?find=\\@>", expected: "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6453 is expected to include "<a href=\"http://example.com?find=%5C@\">http://example.com?find=\\@</a>"6454 markdown: "<a href=\"/bar\\@)\">", expected: "<a href=\"/bar%5C@)\">"6455 is expected to include "<a href=\"/bar%5C@)\">"6456 work in all other contexts, including URLs and link titles, link references, and info strings in fenced code blocks6457 renders correct html6458 markdown: "[foo](/bar\\@ \"\\@title\")", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6459 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6460 markdown: "[foo]\n\n[foo]: /bar\\@ \"\\@title\"", expected: "<a href=\"/bar@\" title=\"@title\">foo</a>"6461 is expected to include "<a href=\"/bar@\" title=\"@title\">foo</a>"6462SystemCheck::SimpleExecutor6463 #component6464 returns stored component name6465 #checks6466 returns a set of classes6467 #<<6468 appends a new check to the Set6469 inserts unique itens only6470 errors out when passing multiple items6471 #execute6472 runs included checks6473 #run_check6474 prints check name6475 when check pass6476 prints yes6477 when check fails6478 prints no6479 displays error message from #show_error6480 when check implements #repair!6481 executes #repair!6482 when repair succeeds6483 does not execute #show_error6484 when repair fails6485 does not execute #show_error6486 when check implements skip?6487 executes #skip? method6488 displays .skip_reason6489 displays #skip_reason6490 does not execute #check when #skip? is true6491 when implements a #multi_check6492 executes #multi_check method6493 does not execute #check method6494 when check implements #skip?6495 executes #skip? method6496 when there is an exception6497 rescues the exception6498Users::AuthorizedBuildService6499 #execute6500 behaves like common user build items6501 is expected to be valid6502 sets the created_by_id6503 calls UpdateCanonicalEmailService6504 when user_type is provided6505 when project_bot6506 is expected to equal true6507 when not a project_bot6508 is expected to be human6509 behaves like current user not admin build items6510 with "user_default_external" application setting6511 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true6512 sets the value of Gitlab::CurrentSettings.user_default_external6513 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true6514 sets the value of Gitlab::CurrentSettings.user_default_external6515 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true6516 sets the value of Gitlab::CurrentSettings.user_default_external6517 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true6518 sets the value of Gitlab::CurrentSettings.user_default_external6519 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true6520 sets the value of Gitlab::CurrentSettings.user_default_external6521 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true6522 sets the value of Gitlab::CurrentSettings.user_default_external6523 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6524 sets the value of Gitlab::CurrentSettings.user_default_external6525 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6526 sets the value of Gitlab::CurrentSettings.user_default_external6527 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6528 sets the value of Gitlab::CurrentSettings.user_default_external6529 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6530 sets the value of Gitlab::CurrentSettings.user_default_external6531 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6532 sets the value of Gitlab::CurrentSettings.user_default_external6533 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true6534 sets the value of Gitlab::CurrentSettings.user_default_external6535 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false6536 sets the value of Gitlab::CurrentSettings.user_default_external6537 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false6538 sets the value of Gitlab::CurrentSettings.user_default_external6539 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false6540 sets the value of Gitlab::CurrentSettings.user_default_external6541 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false6542 sets the value of Gitlab::CurrentSettings.user_default_external6543 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false6544 sets the value of Gitlab::CurrentSettings.user_default_external6545 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false6546 sets the value of Gitlab::CurrentSettings.user_default_external6547 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6548 sets the value of Gitlab::CurrentSettings.user_default_external6549 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6550 sets the value of Gitlab::CurrentSettings.user_default_external6551 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6552 sets the value of Gitlab::CurrentSettings.user_default_external6553 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6554 sets the value of Gitlab::CurrentSettings.user_default_external6555 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6556 sets the value of Gitlab::CurrentSettings.user_default_external6557 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false6558 sets the value of Gitlab::CurrentSettings.user_default_external6559 when "send_user_confirmation_email" application setting is true6560 does not confirm the user6561 when "send_user_confirmation_email" application setting is false6562 confirms the user6563 with allowed params6564 sets all allowed attributes6565Packages::TagsFinder6566 #execute6567 is expected to contain exactly #<Packages::Tag id: 19, package_id: 53, name: "tag-1", created_at: "2021-12-20 17:18:41.345452122 +0000", updated_at: "2021-12-20 17:18:41.345452122 +0000"> and #<Packages::Tag id: 20, package_id: 53, name: "tag-2", created_at: "2021-12-20 17:18:41.351010811 +0000", updated_at: "2021-12-20 17:18:41.351010811 +0000">6568 with package type6569 is expected to contain exactly #<Packages::Tag id: 23, package_id: 56, name: "tag-5", created_at: "2021-12-20 17:18:42.294460892 +0000", updated_at: "2021-12-20 17:18:42.294460892 +0000">6570 with blank package type6571 is expected to contain exactly #<Packages::Tag id: 24, package_id: 57, name: "tag-6", created_at: "2021-12-20 17:18:42.680631436 +0000", updated_at: "2021-12-20 17:18:42.680631436 +0000"> and #<Packages::Tag id: 25, package_id: 57, name: "tag-7", created_at: "2021-12-20 17:18:42.684447285 +0000", updated_at: "2021-12-20 17:18:42.684447285 +0000">6572 with nil package type6573 is expected to contain exactly #<Packages::Tag id: 26, package_id: 58, name: "tag-8", created_at: "2021-12-20 17:18:43.031644452 +0000", updated_at: "2021-12-20 17:18:43.031644452 +0000"> and #<Packages::Tag id: 27, package_id: 58, name: "tag-9", created_at: "2021-12-20 17:18:43.036607782 +0000", updated_at: "2021-12-20 17:18:43.036607782 +0000">6574 with unknown package name6575 is expected to be empty6576 #find_by_name6577 is expected to eq #<Packages::Tag id: 30, package_id: 60, name: "tag-12", created_at: "2021-12-20 17:18:43.858967164 +0000", updated_at: "2021-12-20 17:18:43.858967164 +0000">6578 with package type6579 is expected to eq #<Packages::Tag id: 34, package_id: 63, name: "tag-16", created_at: "2021-12-20 17:18:44.542862849 +0000", updated_at: "2021-12-20 17:18:44.542862849 +0000">6580 with unknown tag_name6581 is expected to be nil6582Gitlab::Highlight6583 language provided6584 sets correct lexer6585 #highlight6586 highlights6587 returns plain version for unknown lexer context6588 highlights multi-line comments6589 links dependencies via DependencyLinker6590 when content is too long to be highlighted6591 increments the metric for oversized files6592 returns plain version for long content6593 diff highlighting6594 highlights each line properly6595 when start line number is set6596 highlights each line properly6597 with CRLF6598 strips extra LFs6599 timeout6600 utilizes timeout for web6601 utilizes longer timeout for sidekiq6602 highlight timeouts6603 when there is an attempt6604 increments the attempt counter with a defined language6605 increments the attempt counter with an undefined language6606 when there is a timeout error while highlighting6607 increments the foreground counter if it's in the foreground6608 increments the background counter if it's in the background6609Banzai::ObjectRenderer6610 #render6611 with cache6612 renders and redacts an Array of objects6613 calls Banzai::ReferenceRedactor to perform redaction6614 retrieves field content using Banzai::Renderer.render_field6615 passes context to PostProcessPipeline6616 without cache6617 renders and redacts an Array of objects6618 calls Banzai::ReferenceRedactor to perform redaction6619 retrieves field content using Banzai::Renderer.cacheless_render_field6620MergeRequest::Metrics6621 associations6622 is expected to belong to merge_request required: false6623 is expected to belong to target_project class_name => Project required: false6624 is expected to belong to latest_closed_by class_name => User required: false6625 is expected to belong to merged_by class_name => User required: false6626 scopes6627 .merged_after6628 finds the record6629 doesn't include record outside of the filter6630 .merged_before6631 finds the record6632 doesn't include record outside of the filter6633 .by_target_project6634 finds metrics record with the associated target project6635 behaves like cleanup by a loose foreign key6636 deletes the model6637Gitlab::StaticSiteEditor::Config::GeneratedConfig6638 #data6639 returns data for the frontend component6640 when namespace is a subgroup6641 returns data for the frontend component6642 when file has .md.erb extension6643 is expected to include {:branch => "main", :is_supported_content => true}6644 when file path is nested6645 is expected to include {:base_url => "/namespace/project/-/sse/master%2Flib%2FREADME.md"}6646 when branch is not master or main6647 is expected to include {:is_supported_content => false}6648 when file does not have a markdown extension6649 is expected to include {:is_supported_content => false}6650 when file does not have an extension6651 is expected to include {:is_supported_content => false}6652 when file does not exist6653 is expected to include {:is_supported_content => false}6654 when repository is empty6655 is expected to include {:is_supported_content => false}6656 when return_url is not a valid URL6657 is expected to include {:return_url => nil}6658 when return_url has a javascript scheme6659 is expected to include {:return_url => nil}6660 when return_url is missing6661 is expected to include {:return_url => nil}6662 when a commit for the ref cannot be found6663 is expected to include {:commit_id => nil}6664ActiveHookFilter6665 #matches?6666 for push event hooks6667 branch filter is specified6668 returns true if branch matches6669 returns false if branch does not match6670 returns false if ref is nil6671 branch filter contains wildcard6672 returns true if branch matches6673 returns false if branch does not match6674 branch filter is not specified6675 returns true6676 branch filter is empty string6677 acts like branch is not specified6678 for non-push-events hooks6679 returns true as branch filters are not yet supported for these6680Gitlab::Database::LoadBalancing::SidekiqClientMiddleware6681 #call6682 when worker cannot be constantized6683 does not pass database locations6684 sets job data consistency6685 when worker class does not include ApplicationWorker6686 does not pass database locations6687 sets job data consistency6688 database wal location was already provided6689 when write was performed6690 does not set database locations again6691 when write was not performed6692 does not set database locations again6693 when worker data consistency is :always6694 does not pass database locations6695 sets job data consistency6696 when worker data consistency is :delayed6697 when feature flag is disabled6698 does not pass database locations6699 sets job data consistency6700 when write was not performed6701 passes database_replica_location6702 sets job data consistency6703 when write was performed6704 passes primary write location6705 sets job data consistency6706 when worker data consistency is :sticky6707 when feature flag is disabled6708 does not pass database locations6709 sets job data consistency6710 when write was not performed6711 passes database_replica_location6712 sets job data consistency6713 when write was performed6714 passes primary write location6715 sets job data consistency6716Gitlab::Ci::Config::Entry::Include::Rules::Rule6717 .new6718 when specifying an if: clause6719 is expected to be valid6720 when specifying an exists: clause6721 is expected to be valid6722 using a list of multiple expressions6723 behaves like an invalid config6724 is expected not to be valid6725 has errors6726 when specifying an invalid if: clause expression6727 behaves like an invalid config6728 is expected not to be valid6729 has errors6730 when specifying an if: clause expression with an invalid token6731 behaves like an invalid config6732 is expected not to be valid6733 has errors6734 when using invalid regex in an if: clause6735 behaves like an invalid config6736 is expected not to be valid6737 has errors6738 when using an if: clause with lookahead regex character "?"6739 when allow_unsafe_ruby_regexp is disabled6740 behaves like an invalid config6741 is expected not to be valid6742 has errors6743 when specifying unknown policy6744 behaves like an invalid config6745 is expected not to be valid6746 has errors6747 when clause is empty6748 behaves like an invalid config6749 is expected not to be valid6750 has errors6751 when policy strategy does not match6752 behaves like an invalid config6753 is expected not to be valid6754 has errors6755 #value6756 when specifying an if: clause6757 returns the config6758 when specifying an exists: clause6759 returns the config6760Ci::LegacyStagePresenter6761 #latest_ordered_statuses6762 preloads build tags6763 preloads build artifacts archive6764 preloads build artifacts metadata6765 #retried_ordered_statuses6766 preloads build tags6767 preloads build artifacts archive6768 preloads build artifacts metadata6769Gitlab::Ci::Reports::Security::Scanner6770 #initialize6771 when all params are given6772 initializes an instance6773 when attribute external_id is missing6774 raises an error6775 when attribute name is missing6776 raises an error6777 #key6778 returns external_id6779 #to_hash6780 returns expected hash6781 when vendor is not defined6782 returns expected hash6783 #==6784 when external_id is equal6785 returns true6786 when external_id is different6787 returns false6788 #<=>6789 when the `external_id` of the scanners are different6790 scanner_1_attributes: {:external_id=>"bundler_audit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"retire.js", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16791 is expected to eq -16792 scanner_1_attributes: {:external_id=>"retire.js", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16793 is expected to eq -16794 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16795 is expected to eq -16796 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16797 is expected to eq -16798 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 16799 is expected to eq 16800 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16801 is expected to eq -16802 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16803 is expected to eq -16804 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 16805 is expected to eq 16806 when the `external_id` of the scanners are equal6807 when the `name` of the scanners are different6808 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -16809 is expected to eq -16810 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 16811 is expected to eq 16812 when the `name` of the scanners are equal6813 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 06814 is expected to eq 06815 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -16816 is expected to eq -16817 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 16818 is expected to eq 16819MergeRequests::AddSpentTimeService6820 #execute6821 creates a new timelog with the specified duration and summary6822 creates a system note with the time added6823 saves usage data6824 is more efficient than using the full update-service6825 when duration is nil6826 does not create a timelog with the specified duration6827Gitlab::Instrumentation::RedisInterceptor6828 read and write6829 setup: [], command: [:set, "foo", "bar"], expect_write: 9, expect_read: 26830 counts bytes read and written6831 setup: [[:set, "foobar", 1000]], command: [:incr, "foobar"], expect_write: 10, expect_read: 46832 counts bytes read and written6833 setup: [], command: [:hgetall, "foobar"], expect_write: 13, expect_read: 06834 counts bytes read and written6835 setup: [[:hset, "myhash", "field", "hello world"]], command: [:hgetall, "myhash"], expect_write: 13, expect_read: 166836 counts bytes read and written6837 setup: [[:set, "foo", "barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbar"]], command: [:get, "foo"], expect_write: 6, expect_read: 3006838 counts bytes read and written6839 setup: [[:zadd, "myset", 0, "foo"], [:zadd, "myset", 1, "bar"]], command: [:zrange, "myset", 0, -1, "withscores"], expect_write: 24, expect_read: 86840 counts bytes read and written6841 counting6842 counts successful requests6843 counts exceptions6844 latency6845 commands in the apdex6846 command: [:get, "foobar"]6847 measures requests we want in the apdex6848 command: ["GET", "foobar"]6849 measures requests we want in the apdex6850 commands not in the apdex6851 command: ["brpop", "foobar", "0.01"]6852 skips requests we do not want in the apdex6853 command: ["blpop", "foobar", "0.01"]6854 skips requests we do not want in the apdex6855 command: ["brpoplpush", "foobar", "bazqux", "0.01"]6856 skips requests we do not want in the apdex6857 command: ["bzpopmin", "foobar", "0.01"]6858 skips requests we do not want in the apdex6859 command: ["bzpopmax", "foobar", "0.01"]6860 skips requests we do not want in the apdex6861 command: ["xread", "block", "1", "streams", "mystream", "0-0"]6862 skips requests we do not want in the apdex6863 command: ["xreadgroup", "group", "mygroup", "myconsumer", "block", "1", "streams", "foobar", "0-0"]6864 skips requests we do not want in the apdex6865ServiceDeskSetting6866 validations6867 is expected to validate that :project_id cannot be empty/falsy6868 is expected to validate that the length of :outgoing_name is at most 2556869 is expected to validate that the length of :project_key is at most 2556870 is expected to allow :project_key to be ‹"abc123_"›6871 is expected not to allow :project_key to be ‹"abc 12"›, producing a custom validation error on failure6872 is expected not to allow :project_key to be ‹"Big val"›6873 .valid_issue_template6874 is not valid if template does not exist6875 is valid if template exists6876 .valid_project_key6877 when project_key is unique for every project slug6878 does not add error6879 when project with same slug and settings project_key exists6880 adds error6881 associations6882 is expected to belong to project required: false6883Clusters::Applications::ScheduleUpdateService6884 #execute6885 when the application is a Clusters::Integrations::Prometheus6886 does nothing6887 when the application is externally installed6888 does nothing6889 when application is able to be updated6890 when the application was recently scheduled6891 schedules worker with a backoff delay6892 when the application has not been recently updated6893 schedules worker6894ErrorTracking::SentryClient::IssueLink6895 #create_issue_link6896 is expected to be present6897 behaves like calls sentry api6898 calls sentry api6899 redirects6900 behaves like no Sentry redirects6901 does not follow redirects6902 when exception is raised6903 behaves like maps Sentry exceptions6904 HTTParty::Error6905 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6906 Net::OpenTimeout6907 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6908 SocketError6909 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6910 OpenSSL::SSL::SSLError6911 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6912 Errno::ECONNREFUSED6913 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6914 StandardError6915 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6916 when integration_id is not provided6917 is expected to be present6918 behaves like calls sentry api6919 calls sentry api6920 redirects6921 behaves like no Sentry redirects6922 does not follow redirects6923 when exception is raised6924 behaves like maps Sentry exceptions6925 HTTParty::Error6926 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6927 Net::OpenTimeout6928 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6929 SocketError6930 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6931 OpenSSL::SSL::SSLError6932 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6933 Errno::ECONNREFUSED6934 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6935 StandardError6936 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6937PipelineMetricsWorker6938 #perform6939 when pipeline is running6940 records the build start time6941 clears the build end time6942 records the pipeline6943 when pipeline succeeded6944 records the build end time6945 records the pipeline6946Ci::JobSerializer6947 #represent6948 when a single object is being serialized6949 serializers the pipeline object6950 when multiple objects are being serialized6951 serializers the array of pipelines6952 #represent_status6953 for a failed build6954 serializes only status6955 for any other type of build6956 serializes only status6957BulkImports::FileTransfer::ProjectConfig6958 portable_tree6959 returns portable tree6960 #export_path6961 returns tmpdir location6962 #portable_relations6963 returns a list of top level exportable relations6964 does not include skipped relations6965 #top_relation_tree6966 returns relation tree of a top level relation6967 #relation_excluded_keys6968 returns excluded keys for relation6969 #tree_relation?6970 when it is a tree relation6971 returns true6972 when it is not a tree relation6973 returns false6974 #file_relation?6975 when it is a file relation6976 returns true6977 when it is not a file relation6978 returns false6979 #tree_relation_definition_for6980 returns relation definition6981 when relation is not tree relation6982 returns6983Verify/Load-Performance-Testing.gitlab-ci.yml6984 the created pipeline6985 has no errors6986 on master6987 behaves like load_performance job on tag or branch6988 by default6989 on another branch6990 behaves like load_performance job on tag or branch6991 by default6992 on tag6993 behaves like load_performance job on tag or branch6994 by default6995 on merge request6996 has no jobs6997GroupLabel6998 relationships6999 is expected to belong to group required: false7000 validations7001 is expected to validate that :group cannot be empty/falsy7002 #subject7003 aliases group to subject7004 #to_reference7005 using id7006 returns a String reference to the object7007 using name7008 returns a String reference to the object7009 uses id when name contains double quote7010 cross-project7011 returns a String reference to the object7012 using invalid format7013 raises error7014RemoveUnreferencedLfsObjectsWorker7015 #perform7016 removes unreferenced lfs objects7017 leaves referenced lfs objects7018 removes unreferenced lfs objects after project removal7019 behaves like an idempotent worker7020 is labeled as idempotent7021 performs multiple times sequentially without raising an exception7022Gitlab::Ci::Config::Entry::Key7023 validations7024 behaves like key entry validations7025 when entry value contains slash7026 behaves like key with slash7027 is invalid7028 reports errors with config value7029 when entry value contains URI encoded slash (%2F)7030 behaves like key with slash7031 is invalid7032 reports errors with config value7033 when entry value is a dot7034 behaves like key with only dots7035 is invalid7036 reports errors with config value7037 when entry value is two dots7038 behaves like key with only dots7039 is invalid7040 reports errors with config value7041 when entry value is a URI encoded dot (%2E)7042 behaves like key with only dots7043 is invalid7044 reports errors with config value7045 when entry value is two URI encoded dots (%2E)7046 behaves like key with only dots7047 is invalid7048 reports errors with config value7049 when entry value is one dot and one URI encoded dot7050 behaves like key with only dots7051 is invalid7052 reports errors with config value7053 when key is a string7054 #value7055 returns key value7056 #valid?7057 is valid7058 when entry config value is correct7059 when key is a hash7060 #value7061 returns key value7062 #valid?7063 is valid7064 when key is a symbol7065 #value7066 returns key value7067 #valid?7068 is valid7069 when entry value is not correct7070 #errors7071 saves errors7072 .default7073 returns default key7074Packages::Go::ModuleFinder7075 #execute7076 with module name equal to project name7077 returns a module with empty path7078 with module name starting with project name and slash7079 returns a module with non-empty path7080 with a module name not equal to and not starting with project name7081 returns nil7082 with relative path component7083 behaves like an invalid path7084 #module_name7085 returns the expected name7086 #execute7087 returns nil7088 with many relative path components7089 behaves like an invalid path7090 #module_name7091 returns the expected name7092 #execute7093 returns nil7094PrometheusMetricsFinder7095 #execute7096 with params7097 with appropriate indexes7098 with project7099 is expected to eq [#<PrometheusMetric id: 1, project_id: 1117, title: [FILTERED], query: "avg(metric)", y_label: "y_lab...81 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7100 with group7101 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 1, project_id: 1117, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...381 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7102 with title7103 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 1117, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...381 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7104 with y_label7105 is expected to contain exactly #<PrometheusMetric id: 1, project_id: 1117, title: [FILTERED], query: "avg(metric)", y_label: "y_labe...381 +0000", common: false, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7106 with common7107 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml"> and #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7108 with ordered7109 is expected to eq [#<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique...790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">]7110 with indentifier7111 raises an error7112 with common7113 is expected to contain exactly #<PrometheusMetric id: 3, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "Unique ...0", common: true, identifier: "identifier", dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7114 with id7115 raises an error7116 with id7117 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7118 with multiple params7119 is expected to contain exactly #<PrometheusMetric id: 2, project_id: nil, title: [FILTERED], query: "avg(metric)", y_label: "y_label...5790 +0000", common: true, identifier: nil, dashboard_path: ".gitlab/dashboards/dashboard_path.yml">7120 without an appropriate index7121 raises an error7122 without params7123 raises an error7124Gitlab::PhabricatorImport::Issues::TaskImporter7125 #execute7126 creates the issue with the expected attributes7127 does not recreate the issue when called multiple times7128 does not trigger a save when the object did not change7129 links the author if the author can be found7130 links an assignee if the user can be found7131IgnorableColumns7132 adds columns to ignored_columns7133 adds columns to ignored_columns (array version)7134 requires remove_after attribute to be set7135 requires remove_after attribute to be set7136 requires remove_with attribute to be set7137 .ignored_columns_details7138 defaults to empty Hash7139 with single column7140 behaves like storing removal information7141 storing removal information7142 with array column7143 behaves like storing removal information7144 storing removal information7145 when called on a subclass without setting the ignored columns7146 does not raise Deadlock error7147 IgnorableColumns::ColumnIgnore7148 #safe_to_remove?7149 after remove_after date has passed7150 returns true (safe to remove)7151 before remove_after date has passed7152 returns false (not safe to remove)7153Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::UntilExecuted7154 behaves like deduplicating jobs when scheduling7155 #schedule7156 checks for duplicates before yielding7157 checks worker options for scheduled jobs7158 job marking7159 adds the jid of the existing job to the job hash7160 scheduled jobs7161 scheduled in the past7162 adds the jid of the existing job to the job hash7163 scheduled in the future7164 adds the jid of the existing job to the job hash7165 when the job is not duplicate7166 does not return false nor drop the job7167 when the job is droppable7168 updates latest wal location7169 returns false to drop the job7170 logs that the job was dropped7171 logs the deduplication options of the worker7172 #perform7173 updates job hash with dedup_wal_locations7174 when latest_wal_location is empty7175 does not update job hash with dedup_wal_locations7176 #perform7177 deletes the lock after executing7178 does not reschedule the job even if deduplication happened7179 when job is reschedulable7180 reschedules the job if deduplication happened7181DependencyProxy::RequestTokenService7182 remote request is successful7183 is expected to eq :success7184 is expected to eq "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"7185 remote request is not found7186 is expected to eq :error7187 is expected to eq 4047188 is expected to eq "Expected 200 response code for an access token"7189 failed to parse response body7190 is expected to eq :error7191 is expected to eq 5007192 is expected to eq "Failed to parse a response body for an access token"7193 net timeout exception7194 is expected to eq :error7195 is expected to eq 5997196 is expected to eq "execution expired"7197ManualInverseAssociation7198 .manual_inverse_association7199 when the relation exists7200 loads the relation7201 does not perform extra queries after loading7202 allows reloading the relation7203 when the relation does not return a value7204 does not try to set an inverse7205gitlab:container_registry namespace rake tasks7206 #configure7207 when container registry is disabled7208 behaves like invalid config7209 does not call UpdateContainerRegistryInfoService7210 does not raise an error7211 prints a warning message7212 when container registry api_url is blank7213 behaves like invalid config7214 does not call UpdateContainerRegistryInfoService7215 does not raise an error7216 prints a warning message7217 when container registry is enabled and api_url is not blank7218 calls UpdateContainerRegistryInfoService7219Sidebars::Projects::Menus::ShimoMenu7220 #render?7221 without a valid Shimo integration7222 doesn't render the menu7223 with a valid Shimo integration7224 when integration is active7225 renders the menu7226 renders menu link7227 when integration is inactive7228 doesn't render the menu7229RuboCop::Cop::Performance::ARExistsAndPresentBlank7230 when it is not haml file7231 does not flag it as an offense7232 when it is haml file7233 the same object uses exists? and present?7234 flags it as an offense7235 the same object uses exists? and blank?7236 flags it as an offense7237 the same object uses exists?, blank? and present?7238 flags it as an offense7239 behaves like different object uses exists? and present?/blank?7240 does not flag it as an offense7241 behaves like different object uses exists? and present?/blank?7242 does not flag it as an offense7243 behaves like Only using one present?/blank? without exists?7244 does not flag it as an offense7245 behaves like Only using one present?/blank? without exists?7246 does not flag it as an offense7247 when using many present?/empty? without exists?7248 does not flag it as an offense7249 when just using exists? without present?/blank?7250 does not flag it as an offense7251UserFinder7252 #find_by_id7253 when the user exists7254 returns the user7255 when the user exists (id as string)7256 returns the user7257 when the user does not exist7258 returns nil7259 #find_by_username7260 when the user exists7261 returns the user7262 when the user does not exist7263 returns nil7264 #find_by_id_or_username7265 when the user exists (id)7266 returns the user7267 when the user exists (id as string)7268 returns the user7269 when the user exists (username)7270 returns the user7271 when the user does not exist (username)7272 returns nil7273 when the user does not exist7274 returns nil7275 #find_by_id!7276 when the user exists7277 returns the user7278 when the user exists (id as string)7279 returns the user7280 when the user does not exist7281 raises ActiveRecord::RecordNotFound7282 #find_by_username!7283 when the user exists7284 returns the user7285 when the user does not exist7286 raises ActiveRecord::RecordNotFound7287 #find_by_id_or_username!7288 when the user exists (id)7289 returns the user7290 when the user exists (id as string)7291 returns the user7292 when the user exists (username)7293 returns the user7294 when the user does not exist (username)7295 raises ActiveRecord::RecordNotFound7296 when the user does not exist7297 raises ActiveRecord::RecordNotFound7298DependencyProxy::HeadManifestService7299 remote request is successful7300 is expected to eq :success7301 is expected to eq "12345"7302 remote request is not found7303 is expected to eq :error7304 is expected to eq 4047305 is expected to eq "Not found"7306 net timeout exception7307 is expected to eq :error7308 is expected to eq 5997309 is expected to eq "execution expired"7310DeploymentCluster7311 is expected to belong to deployment required: true7312 is expected to belong to cluster required: true7313 is expected to have attributes {:cluster_id => 281, :deployment_id => 33, :kubernetes_namespace => "an-example-namespace"}7314Banzai::ReferenceParser::DesignParser7315 #nodes_visible_to_user7316 behaves like referenced feature visibility7317 when feature is disabled7318 does not create reference7319 when feature is enabled only for team members7320 does not create reference for non member7321 creates reference for member7322 when feature is enabled7323 creates reference7324 specific states7325 redacts links we should not have access to7326 design management is not available7327 redacts all nodes7328 #process7329 returns the correct designs7330Clusters::Agents::ActivityEventPolicy7331 rules7332 developer7333 is expected to be disallowed :admin_cluster7334 is expected to be disallowed :read_cluster7335 maintainer7336 is expected to be allowed :admin_cluster7337 is expected to be allowed :read_cluster7338Mutations::MergeRequests::SetSubscription7339 is expected to require graphql authorizations :update_subscription7340 when user does not have access to the project7341 behaves like a subscribeable not accessible graphql resource7342 raises an error if the resource is not accessible to the user7343 when user is developer member of the project7344 behaves like a subscribeable graphql resource7345 subscribes to the resource7346 when passing subscribe as false7347 unsubscribes from the discussion7348 when the project is public7349 behaves like a subscribeable graphql resource7350 subscribes to the resource7351 when passing subscribe as false7352 unsubscribes from the discussion7353Gitlab::Ci::Config::Extendable7354 #each7355 when there is extendable entry in the hash7356 yields control7357 #to_hash7358 when hash does not contain extensions7359 does not modify the hash7360 when hash has a single simple extension7361 extends a hash with a deep reverse merge7362 when the job tries to delete an extension key7363 deletes the key if assigned to null7364 when a hash uses recursive extensions7365 extends a hash with a deep reverse merge7366 when nested circular dependecy has been detected7367 raises an error about circular dependency7368 when circular dependecy to self has been detected7369 raises an error about circular dependency7370 when invalid extends value is specified7371 raises an error about invalid extension7372 when extensible entry has non-hash inheritance defined7373 raises an error about invalid base7374Integrations::Zentao7375 #create7376 stores data in data_fields correctly7377 #fields7378 returns custom fields7379 #test7380 gets response from Gitlab::Zentao::Client#ping7381 #help7382 renders prompt information7383Gitlab::APIAuthentication::TokenLocator7384 .new7385 with a valid type7386 creates a new instance7387 with an invalid type7388 raises ActiveModel::ValidationError7389 #extract7390 with :http_basic_auth7391 without credentials7392 returns nil7393 with credentials7394 returns the credentials7395 with :http_token7396 without credentials7397 returns nil7398 with credentials7399 returns the credentials7400 with :http_bearer_token7401 without credentials7402 returns nil7403 with credentials7404 returns the credentials7405 with :http_deploy_token_header7406 without credentials7407 returns nil7408 with credentials7409 returns the credentials7410 with :http_job_token_header7411 without credentials7412 returns nil7413 with credentials7414 returns the credentials7415 with :http_private_token_header7416 without credentials7417 returns nil7418 with credentials7419 returns the credentials7420 with :token_param7421 without credentials7422 returns nil7423 with credentials7424 returns the credentials7425Resolvers::Clusters::AgentTokensResolver7426 is expected to eq Types::Clusters::AgentTokenType7427 is expected to be truthy7428 #resolve7429 returns tokens associated with the agent, ordered by last_used_at7430 user does not have permission7431 is expected to be empty7432Ci::CreatePipelineService7433 include:7434 with a local file7435 behaves like including the file7436 includes the job in the file7437 with a local file with rules with a project variable7438 when the rules matches7439 behaves like including the file7440 includes the job in the file7441 when the rules does not match7442 behaves like not including the file7443 does not include the job in the file7444 with a local file with rules with a predefined pipeline variable7445 when the rules matches7446 behaves like including the file7447 includes the job in the file7448 when the rules does not match7449 behaves like not including the file7450 does not include the job in the file7451 with a local file with rules with a run pipeline variable7452 when the rules matches7453 behaves like including the file7454 includes the job in the file7455 when the rules does not match7456 behaves like not including the file7457 does not include the job in the file7458Ci::DagJobGroupEntity7459 #as_json7460 when group contains 1 job7461 exposes a name7462 exposes the size7463 exposes the jobs7464 matches schema7465 when group contains multiple parallel jobs7466 exposes a name7467 exposes the size7468 exposes the jobs7469 matches schema7470CronSchedulable7471 for ci_pipeline_schedule7472 behaves like handles set_next_run_at7473 when schedule runs every minute7474 updates next_run_at to the worker's execution time7475 when there are two different schedules in the same time zones7476 sets the sames next_run_at7477 when cron is updated for existing schedules7478 updates next_run_at automatically7479IssuesFinder::Params7480 #include_hidden7481 when param is not set7482 with an admin7483 returns true7484 with a regular user7485 returns false7486 when param is set7487 with an admin7488 returns true7489 with a regular user7490 returns false7491Gitlab::Search::Query7492 is expected to be < SimpleDelegator7493 leaves undefined filters in the main query7494 parses filters7495 with an empty filter7496 ignores empty filters7497 with a pipe7498 does not escape the pipe7499 with an exclusive filter7500 negates the filter7501 with filter value in quotes7502 does not break the filter value in quotes7503 with extra white spaces between the query words7504 removes the extra whitespace between tokens7505Tags::DestroyService7506 #execute7507 removes the tag7508 calls the RefDeleteUnlockArtifactsWorker7509 when there is an associated release on the tag7510 destroys the release7511projects/diffs/_viewer.html.haml7512 when there is a render error7513 renders the error7514 when the viewer is collapsed7515 renders the collapsed view7516 when there is no render error7517 prepares the viewer7518 renders the viewer7519DependencyProxy::FindCachedManifestService7520 #execute7521 when no manifest exists7522 successful head request7523 behaves like returning no manifest7524 returns a nil manifest7525 failed head request7526 behaves like returning no manifest7527 returns a nil manifest7528 when manifest exists7529 behaves like using the cached manifest7530 uses cached manifest instead of downloading one7531 when digest is stale7532 behaves like returning no manifest7533 returns a nil manifest7534 when the cached manifest is expired7535 behaves like returning no manifest7536 returns a nil manifest7537 failed connection7538 behaves like using the cached manifest7539 uses cached manifest instead of downloading one7540 and no manifest is cached7541 returns an error7542Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction7543 behaves like value stream analytics event7544 is expected to be a kind of String7545 is expected to be a kind of Symbol7546 is expected to include ApplicationRecord(abstract)7547 is expected to respond to #timestamp_projection7548 is expected to respond to #html_description7549 is expected to be a kind of Array7550 #apply_query_customization7551 expects an ActiveRecord::Relation object as argument and returns a modified version of it7552 #hash_code7553 returns a hash that uniquely identifies an event7554 does not differ when the same object is built with the same params7555 behaves like LEFT JOIN-able value stream analytics event7556 can use the event as LEFT JOIN7557 when looking at the record with data7558 contains the timestamp expression7559 when looking at the record without data7560 returns nil for the timestamp expression7561HashedStorage::RollbackerWorker7562 #perform7563 delegates to MigratorService7564 rollsback projects in the specified range7565Ci::DeleteObjectsWorker7566 is expected to be truthy7567 #perform7568 executes a service7569 #max_running_jobs7570 medium: false, high: false, expected: 27571 sets up concurrency depending on the feature flag7572 medium: true, high: false, expected: 207573 sets up concurrency depending on the feature flag7574 medium: true, high: true, expected: 207575 sets up concurrency depending on the feature flag7576 medium: false, high: true, expected: 507577 sets up concurrency depending on the feature flag7578BulkImports::UsersMapper7579 #map7580 when value for specified key exists7581 returns a map of source & destination user ids from redis7582 when value for specified key does not exist7583 returns default value7584 #default_user_id7585 returns current user id7586 #include?7587 when source user id is present in the map7588 returns true7589 when source user id is missing in the map7590 returns false7591 #cache_source_user_id7592 caches provided source & destination user ids in redis75935-Minute-Production-App.gitlab-ci.yml7594 the created pipeline7595 creates only build job7596 when AWS variables are set7597 creates all jobs7598 pipeline branch is protected7599 does not create a destroy job7600Gitlab::GithubImport::LabelFinder7601 #id_for7602 with a cache in place7603 returns the ID of the given label7604 returns nil for an empty cache key7605 returns nil for a non existing label name7606 without a cache in place7607 returns nil for a label7608 #build_cache7609 builds the cache of all project labels7610 #cache_key_for7611 returns the cache key for a label name7612Gitlab::SidekiqLogging::DeduplicationLogger7613 #log_deduplication7614 logs a deduplication message to the sidekiq logger7615 does not modify the job7616 #rescheduled_log7617 logs a rescheduled message to the sidekiq logger7618 does not modify the job7619Projects::TerraformHelper7620 #js_terraform_list_data7621 includes image path7622 includes project path7623 includes access token path7624 includes username7625 includes terraform state api url7626 indicates the user is a terraform admin7627 when current_user is not a terraform admin7628 indicates the user is not an admin7629 when current_user is missing7630 indicates the user is not an admin7631Projects::FetchStatisticsIncrementService7632 #execute7633 creates a new record for today with count == 17634 doesn't increment previous days statistics7635 when the record already exists for today7636 increments the today record count by 17637Ci::CompareTestReportsService7638 #execute7639 when head pipeline has test reports7640 returns status and data7641 when base and head pipelines have test reports7642 returns status and data7643 when head pipeline has corrupted test reports7644 returns a parsed TestReports success status and failure on the individual suite7645 test failure history7646 loads recent failures on limited test cases to avoid building up a huge DB query7647Net::HTTP patch proxy user and password encoding7648 #proxy_user7649 is expected to eq nil7650 with http_proxy env7651 is expected to eq nil7652 and user:password authentication7653 when on multiuser safe platform7654 is expected to eq "Y\\X"7655 when not on multiuser safe platform7656 is expected to be nil7657 #proxy_pass7658 is expected to eq nil7659 with http_proxy env7660 is expected to eq nil7661 and user:password authentication7662 when on multiuser safe platform7663 is expected to eq "R%S] ?X"7664 when not on multiuser safe platform7665 is expected to be nil7666Resolvers::Metrics::DashboardResolver7667 #resolve7668 for environment7669 use ActiveModel class to find matching dashboard7670 without parent object7671 returns nil7672ErrorTracking::SentryClient::PaginationParser7673 .parse7674 when headers do not have "link" param7675 returns empty hash7676 when headers.link has previous and next pages7677 returns info about both pages7678 when headers.link has only next page7679 returns only info about the next page7680 when headers.link has only previous page7681 returns only info about the previous page7682Gitlab::GithubImport::ReschedulingMethods7683 #perform7684 with a non-existing project7685 does not perform any work7686 notifies any waiters so they do not wait forever7687 with an existing project7688 notifies any waiters upon successfully importing the data7689 reschedules itself if the data could not be imported7690 #try_import7691 returns true when the import succeeds7692 returns false when the import fails due to hitting the GitHub API rate limit7693 #notify_waiter7694 notifies the waiter if a waiter key is specified7695 does not notify any waiters if no waiter key is specified7696ChatNames::AuthorizeUserService7697 #execute7698 when all parameters are valid7699 produces a valid HTTP URL7700 requests a new token7701 when there are missing parameters7702 does not produce a URL7703 does not request a new token7704IssueDueSchedulerWorker7705 #perform7706 schedules one MailScheduler::IssueDueWorker per project with open issues due tomorrow7707Limitable7708 is expected to eq "test_classes"7709 with scoped limit7710 is expected to eq :project7711 triggers scoped validations7712 with custom relation and feature flags7713 limit_feature_flag: nil, limit_feature_flag_value: nil, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7714 acts according to the feature flag settings7715 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: false7716 acts according to the feature flag settings7717 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7718 acts according to the feature flag settings7719 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: true7720 acts according to the feature flag settings7721 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: false7722 acts according to the feature flag settings7723 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7724 acts according to the feature flag settings7725 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7726 acts according to the feature flag settings7727 with global limit7728 is expected to eq :limitable_global_scope7729 triggers scoped validations7730UpdateContainerRegistryInfoService7731 #execute7732 when container registry is disabled7733 behaves like invalid config7734 does not update the application settings7735 does not raise an error7736 when container registry api_url is blank7737 behaves like invalid config7738 does not update the application settings7739 does not raise an error7740 when creating a registry client instance7741 uses a token with no access permissions7742 when unabled to detect the container registry type7743 sets the application settings to their defaults7744 when able to detect the container registry type7745 when using the GitLab container registry7746 updates application settings accordingly7747 when using a third-party container registry7748 updates application settings accordingly7749environments routing7750 routing environment folders7751 when using JSON format7752 correctly matches environment name and JSON format7753 when using HTML format7754 correctly matches environment name and HTML format7755 when using implicit format7756 correctly matches environment name7757Ci::JobArtifactsFinder7758 #execute7759 with empty params7760 returns all artifacts belonging to the project7761 with sort param7762 sorts the artifacts7763FeatureFlagSerializer7764 #represent7765 includes feature flag attributes7766BulkImports::ImportsFinder7767 #execute7768 returns a list of imports associated with user7769 when status is specified7770 returns a list of import entities filtered by status7771 when invalid status is specified7772 does not filter entities by status7773Users::RegistrationsBuildService7774 #execute7775 when automatic user confirmation is not enabled7776 when skip_confirmation is true7777 confirms the user7778 when skip_confirmation is not set7779 does not confirm the user7780 when skip_confirmation is false7781 does not confirm the user7782 when automatic user confirmation is enabled7783 when skip_confirmation is true7784 confirms the user7785 when skip_confirmation is not set the application setting takes precedence7786 confirms the user7787 when skip_confirmation is false the application setting takes precedence7788 confirms the user7789Gitlab::Utils::DeepSize7790 is expected to eq 10485767791 is expected to eq 1007792 #initialize7793 when max_size is nil7794 sets max_size to DEFAULT_MAX_SIZE7795 when max_depth is nil7796 sets max_depth to DEFAULT_MAX_DEPTH7797 #valid?7798 when data within size and depth limits7799 is expected to be valid7800 when data not within size limit7801 is expected not to be valid7802 when data not within depth limit7803 is expected not to be valid7804 .human_default_max_size7805 returns 1 MB7806Types::Snippets::BlobViewerType7807 has the correct fields7808 is expected to be non null7809 is expected to be non null7810 is expected to be non null7811 is expected to be non null7812 is expected not to be non null7813 is expected to be non null7814 is expected to be non null7815 collapsed7816 behaves like nil field converted to false7817 returns false7818 tooLarge7819 behaves like nil field converted to false7820 returns false7821Resolvers::Kas::AgentConfigurationsResolver7822 is expected to eq Types::Kas::AgentConfigurationType7823 is expected to be truthy7824 is expected to include {:calls_gitaly => true}7825 #resolve7826 returns agents configured for the project7827 an error is returned from the KAS client7828 raises a graphql error7829 user does not have permission7830 is expected to be empty7831Gitlab::Database::SharedModel7832 using an external connection7833 overrides the connection for the duration of the block7834 does not affect connections in other threads7835 when multiple connection overrides are nested7836 allows the nesting with the same connection object7837 raises an error if the connection is changed7838 when the block raises an error7839 re-raises the error, removing the overridden connection7840 #connection_db_config7841 returns the class connection_db_config7842Sidebars::Projects::Menus::ExternalIssueTrackerMenu7843 does not contain any sub menu7844 #render?7845 when active external issue tracker7846 is present7847 returns true7848 is not present7849 returns false7850Import::GithubishProviderRepoEntity7851 behaves like exposes required fields for import entity7852 exposes required fields7853 correctly exposes id7854 correctly exposes full name7855 correctly exposes sanitized name7856 correctly exposes provider link7857WebauthnRegistration7858 relations7859 is expected to belong to user required: false7860 validations7861 is expected to validate that :credential_xid cannot be empty/falsy7862 is expected to validate that :public_key cannot be empty/falsy7863 is expected to validate that :counter cannot be empty/falsy7864 is expected to validate that the length of :name is at least 07865 is expected not to allow :name to be ‹nil›7866 is expected to validate that :counter looks like an integer greater than or equal to 0 and less than or equal to 42949672957867Types::PrometheusAlertType7868 is expected to eq "PrometheusAlert"7869 has the expected fields7870 is expected to require graphql authorizations :read_prometheus_alerts7871RuboCop::Cop::Gitlab::NamespacedClass7872 flags a class definition without namespace7873 flags a class definition with inheritance without namespace7874 does not flag the class definition with namespace in separate lines7875 does not flag the class definition with nested namespace in separate lines7876 does not flag the class definition nested inside namespaced class7877 does not flag a compact namespaced class definition7878Gitlab::GithubImport::StageMethods7879 #perform7880 returns if no project could be found7881 imports the data when the project exists7882 when abort_on_failure is false7883 logs error when import fails7884 when abort_on_failure is true7885 logs, captures and re-raises the exception and also marks the import as failed7886 #try_import7887 imports the project7888 reschedules the worker if RateLimitError was raised7889 #find_project7890 returns a Project for an existing ID7891 returns nil for a project that failed importing7892 returns nil for a non-existing project ID7893Every API endpoint7894 feature categories7895 has feature categories7896 recognizes the feature categories7897 has no routes with multiple paths7898 doesn't define or exclude categories on removed actions7899DashboardHelper7900 #dashboard_nav_links7901 has all the expected links by default7902 does not contain cross project elements when the user cannot read cross project7903 #feature_entry7904 when implicitly enabled7905 behaves like a feature is enabled7906 is expected to include "<p aria-label=\"Demo: status on\">"7907 when explicitly enabled7908 without links7909 behaves like a feature is enabled7910 is expected to include "<p aria-label=\"Demo: status on\">"7911 behaves like a feature without link7912 is expected not to have visible link "Documentation"7913 with configure link7914 behaves like a feature with configuration7915 is expected to have visible link "Demo" with href "demo.link"7916 with configure and documentation links7917 behaves like a feature with configuration7918 is expected to have visible link "Demo" with href "demo.link"7919 behaves like a feature with documentation7920 is expected to have visible link "Documentation" with href "doc.link"7921 when disabled7922 behaves like a feature is disabled7923 is expected to include "<p aria-label=\"Demo: status off\">"7924 behaves like a feature without link7925 is expected not to have visible link "Documentation"7926 .has_start_trial?7927 is expected to eq false7928 #reviewer_mrs_dashboard_path7929 is expected to eq "/dashboard/merge_requests?reviewer_username=user1039"7930ApplicationSetting::TermPolicy7931 has the correct permissions7932 for anonymous users7933 has the correct permissions7934 when the terms are not current7935 has the correct permissions7936 when the user already accepted the terms7937 has the correct permissions7938projects/settings/operations/show7939 Operations > Alerts7940 renders the Operations Settings page7941 Operations > Error Tracking7942 Settings page7943 renders the Operations Settings page7944 Operations > Prometheus7945 when settings_operations_prometheus_service flag is enabled7946 renders the Operations Settings page7947 when settings_operations_prometheus_service is disabled7948 renders the Operations Settings page7949 Operations > Tracing7950 Settings page7951 renders the Tracing Settings page7952Gitlab::SidekiqConfig::CliMethods7953 .worker_queues7954 when the file exists7955 when the file contains an array of hashes7956 memoizes the result7957 flattens and joins the contents7958 when the file does not exist7959 returns an empty array7960 .expand_queues7961 defaults the value of the second argument to .worker_queues7962 expands queue namespaces to concrete queue names7963 lets concrete queue names pass through7964 lets unknown queues pass through7965 .query_queues7966 returns the queue names of matched workers7967ResourceLabelEventPolicy7968 #read_resource_label_event7969 with non-member user7970 does not allow to read event7971 with member user7972 allows to read event for accessible label7973 does not allow to read event for not accessible label7974 #read_label7975 allows to read deleted label7976 allows to read accessible label7977 does not allow to read not accessible label7978PersonalAccessTokens::ExpiringWorker7979 #perform7980 when a token needs to be notified7981 uses notification service to send the email7982 marks the notification as delivered7983 when no tokens need to be notified7984 doesn't use notification service to send the email7985 doesn't change the notification delivered of the token7986 when a token is an impersonation token7987 doesn't use notification service to send the email7988 doesn't change the notification delivered of the token7989UpdateContainerRegistryInfoWorker7990 #perform7991 calls UpdateContainerRegistryInfoService7992Atlassian::JiraConnect::Serializers::BaseEntity7993 generates the update_sequence_id7994 with update_sequence_id option7995 uses the custom update_sequence_id7996Snippets::UpdateRepositoryStorageWorker7997 behaves like an update storage move worker7998 #perform7999 without repository storage move8000 calls the update repository storage service8001 with repository storage move8002 calls the update repository storage service8003ApplicationCable::Connection8004 when session cookie is set8005 when user is logged in8006 sets current_user8007 with a stale password8008 sets current_user to nil8009 when user is not logged in8010 sets current_user to nil8011 when session cookie is not set8012 sets current_user to nil8013 when session cookie is an empty string8014 sets current_user to nil8015Types::LabelType8016 has the correct fields8017 is expected to require graphql authorizations :read_label8018Gitlab::Email::Smime::Signer8019 when using an intermediate CA8020 signs data appropriately with SMIME8021 when not using an intermediate CA8022 signs data appropriately with SMIME8023Discussions::UnresolveService8024 #execute8025 unresolves the discussion8026 counts the unresolve event8027validate database config8028 when config/database.yml is valid8029 uses legacy syntax8030 validates configuration with a warning8031 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true8032 does not raise exception8033 uses new syntax8034 validates configuration without errors and warnings8035 when config/database.yml is invalid8036 uses unknown connection name8037 raises exception8038 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true8039 does not raise exception8040 uses replica configuration8041 raises exception8042 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true8043 does not raise exception8044 main is not a first entry8045 raises exception8046 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true8047 does not raise exception8048Admin::UserEntity8049 #as_json8050 exposes correct attributes8051Mutations::Branches::Create8052 #resolve8053 raises an error if the resource is not accessible to the user8054 when the user can create a branch8055 when service successfully creates a new branch8056 returns a new branch8057 when service fails to create a new branch8058 is expected to be nil8059 is expected to eq ["Branch already exists"]8060LinkedProjectIssueEntity8061 issue_link_type8062 is expected to include {:link_type => "relates_to"}8063Bitbucket::Representation::PullRequestComment8064 #iid8065 is expected to eq 18066 #file_path8067 is expected to eq "/path"8068 #old_pos8069 is expected to eq 38070 #new_pos8071 is expected to eq 38072 #parent_id8073 is expected to eq 28074 is expected to be nil8075 #inline?8076 is expected to be truthy8077 is expected to be falsey8078 #has_parent?8079 is expected to be truthy8080 is expected to be falsey8081Gitlab::JiraImport::Stage::ImportNotesWorker8082 modules8083 behaves like include import workers modules8084 is expected to includes the ApplicationWorker module8085 is expected to includes the Gitlab::JiraImport::QueueOptions module8086 is expected to includes the Gitlab::JiraImport::ImportWorker module8087 #perform8088 when import did not start8089 behaves like cannot do Jira import8090 does not advance to next stage8091 behaves like does not advance to next stage8092 does not advance to next stage8093 when import started8094 behaves like advance to next stage8095 advances to finish stage8096Packages::RemoveTagService8097 #execute8098 with existing tag8099 is expected to change `Packages::Tag.count` by -18100 with nil8101 is expected to raise ArgumentError8102ActsAsTaggableOn::Tag8103 has the same connection as Ci::ApplicationRecord8104 has the same sticking as Ci::ApplicationRecord8105Gitlab::UsageDataCounters::SearchCounter8106 all_searches counter8107 behaves like usage counter with totals8108 increments counter and returns total count8109 navbar_searches counter8110 behaves like usage counter with totals8111 increments counter and returns total count8112 .fetch_supported_event8113 is expected to eq "all_searches"8114BulkImports::ExportStatus8115 #started?8116 when export status is started8117 returns true8118 when export status is not started8119 returns false8120 #failed8121 when export status is failed8122 returns true8123 when export status is not failed8124 returns false8125 #error8126 returns error message8127 when something goes wrong during export status fetch8128 returns exception class as error8129ProjectPathValidator8130 .valid_path?8131 handles invalid utf88132 #validates_each8133 adds a message when the path is not in the correct format8134 adds a message when the path is reserved when creating8135 adds a message when the path is reserved when updating8136RuboCop::Cop::UsageData::InstrumentationSuperclass8137 with class definition8138 when inheriting from allowed superclass8139 does not register an offense8140 when inheriting from some other superclass8141 registers an offense8142 when not inheriting8143 does not register an offense8144 with dynamic class definition8145 when inheriting from allowed superclass8146 does not register an offense8147 when inheriting from some other superclass8148 registers an offense8149 when not inheriting8150 does not register an offense8151Integrations::Pivotaltracker8152 Validations8153 when integration is active8154 is expected to validate that :token cannot be empty/falsy8155 when integration is inactive8156 is expected not to validate that :token cannot be empty/falsy8157 Execute8158 posts correct message8159 when allowed branches is specified8160 posts message if branch is in the list8161 does not post message if branch is not in the list8162Gitlab::Auth::Saml::AuthHash8163 #groups8164 returns array of groups8165 raw info hash attributes empty8166 returns an empty array8167 #authn_context8168 with response_object8169 can extract authn_context8170 with SAML 2.0 response_object8171 can extract authn_context8172 with ADFS SAML response_object8173 can extract authn_context8174 without response_object8175 returns an empty string8176Gitlab::Ci::Status::Preparing8177 #text8178 is expected to eq "preparing"8179 #label8180 is expected to eq "preparing"8181 #icon8182 is expected to eq "status_preparing"8183 #favicon8184 is expected to eq "favicon_status_preparing"8185 #group8186 is expected to eq "preparing"8187 #details_path8188 is expected to be nil8189Banzai::Filter::InlineAlertMetricsFilter8190 behaves like a metrics embed filter8191 when the document has an external link8192 leaves regular non-metrics links unchanged8193 when the document contains an embeddable link8194 leaves the original link unchanged8195 appends a metrics charts placeholder8196 in a paragraph8197 appends a metrics charts placeholder after the enclosing paragraph8198 with query params specified8199 behaves like a metrics embed filter8200 when the document has an external link8201 leaves regular non-metrics links unchanged8202 when the document contains an embeddable link8203 leaves the original link unchanged8204 appends a metrics charts placeholder8205 in a paragraph8206 appends a metrics charts placeholder after the enclosing paragraph8207RuboCop::Cop::Migration::AddColumnsToWideTables8208 when outside of a migration8209 does not register any offenses8210 when in a migration8211 with wide tables8212 registers an offense when adding a column to a wide table8213 registers an offense when adding a column with default to a wide table8214 registers an offense when adding a reference8215 registers an offense when adding timestamps8216 register no offense when using other method8217 with a regular table8218 registers no offense for notes8219Gitlab::Ci::Build::Credentials::Registry::GitlabRegistry8220 contains valid DockerRegistry credentials8221 .valid?8222 when registry is enabled8223 is expected to be truthy8224 when registry is disabled8225 is expected to be falsey8226Gitlab::Database::MigrationHelpers::CascadingNamespaceSettings8227 #add_cascading_namespace_setting8228-- column_exists?(:namespace_settings, :some_setting)8229 -> 0.0041s8230-- column_exists?(:namespace_settings, :lock_some_setting)8231 -> 0.0033s8232-- column_exists?(:application_settings, :some_setting)8233 -> 0.2438s8234-- column_exists?(:application_settings, :lock_some_setting)8235 -> 0.2413s8236 creates the required columns8237 when columns already exist8238-- add_column(:namespace_settings, :cascading_setting, :integer)8239 -> 0.0069s8240-- add_column(:application_settings, :lock_cascading_setting, :boolean)8241 -> 0.0017s8242-- column_exists?(:namespace_settings, :cascading_setting)8243 -> 0.0037s8244-- column_exists?(:namespace_settings, :lock_cascading_setting)8245 -> 0.0031s8246-- column_exists?(:application_settings, :cascading_setting)8247 -> 0.2427s8248-- column_exists?(:application_settings, :lock_cascading_setting)8249 -> 0.2441s8250 raises an error when some columns already exist8251 #remove_cascading_namespace_setting8252 removes the columns8253Analytics::CycleAnalytics::ProjectValueStream8254 is not custom8255 associations8256 is expected to belong to project required: false8257 is expected to have many stages8258 validations8259 is expected to validate that :project cannot be empty/falsy8260 is expected to validate that :name cannot be empty/falsy8261 is expected to validate that the length of :name is at most 1008262 validates uniqueness of name8263 .build_default_value_stream8264 builds the default value stream8265UserHighestRole8266 associations8267 is expected to belong to user required: true8268 validations8269 is expected to validate that :highest_access_level is either ‹nil›, ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›8270 scopes8271 .with_highest_access_level8272 only returns entry for developer access level8273Users::ValidateOtpService8274 Devise8275 calls Devise strategy8276 FortiAuthenticator8277 calls FortiAuthenticator strategy8278 FortiTokenCloud8279 calls FortiTokenCloud strategy8280Resolvers::Ci::TestSuiteResolver8281 #resolve8282 when pipeline has builds with test reports8283 renders test suite data8284 when pipeline has no builds that matches the given build_ids8285 returns nil8286RuboCop::Cop::Migration::UpdateColumnInBatches8287 outside of a migration8288 does not register any offenses8289 when in migration8290 behaves like a migration file with no spec file8291 registers an offense when using update_column_in_batches8292 behaves like a migration file with a spec file8293 does not register any offenses8294 when in a post migration8295 behaves like a migration file with no spec file8296 registers an offense when using update_column_in_batches8297 behaves like a migration file with a spec file8298 does not register any offenses8299 EE migrations8300 when in a migration8301 behaves like a migration file with no spec file8302 registers an offense when using update_column_in_batches8303 behaves like a migration file with a spec file8304 does not register any offenses8305 when in a post migration8306 behaves like a migration file with no spec file8307 registers an offense when using update_column_in_batches8308 behaves like a migration file with a spec file8309 does not register any offenses8310DevOpsReport::MetricPresenter8311 #cards8312 includes instance score, leader score and percentage score8313 #idea_to_production_steps8314 returns percentage score when it depends on a single feature8315 returns percentage score when it depends on two features8316 #average_percentage_score8317 calculates an average value across all the features8318Gitlab::Kubernetes::RolloutInstances8319 #pod_instances8320 returns an instance for a deployment with one pod8321 returns a pending pod for a missing replica8322 returns instances when there are two stable deployments8323 returns instances for two deployments with different tracks8324 sorts stable tracks after canary tracks8325API::Helpers::Version8326 .new8327 is possible to initialize it with existing API version8328 raises an error when unsupported API version is provided8329 #root_path8330 returns a root path of the API version8331 #root_url8332 returns an URL for a root path for the API version8333Gitlab::Database::Migrations::LockRetryMixin8334 Gitlab::Database::Migrations::LockRetryMixin::ActiveRecordMigrationProxyLockRetries8335 #enable_lock_retries?8336 delegates to #migration8337 #migration_class8338 retrieves actual migration class from #migration8339 Gitlab::Database::Migrations::LockRetryMixin::ActiveRecordMigratorLockRetries8340 with transactions disabled8341 calls super method8342 with transactions enabled, but lock retries disabled8343 calls super method8344 with transactions enabled and lock retries enabled8345 calls super method8346 .patch!8347 patches MigrationProxy8348 patches Migrator8349Gitlab::CycleAnalytics::Summary::Value8350 Gitlab::CycleAnalytics::Summary::Value::None8351 returns `-`8352 Gitlab::CycleAnalytics::Summary::Value::Numeric8353 returns the string representation of the number8354 Gitlab::CycleAnalytics::Summary::Value::PrettyNumeric8355 #to_s8356 returns `-` when the number is 08357 returns `-` when the number is nil8358 returns the string representation of the number8359Banzai::Filter::ImageLazyLoadFilter8360 adds a class attribute8361 appends to the current class attribute8362 transforms the image src to a data-src8363 works with external images8364ProductAnalytics::BuildGraphService8365 returns a valid graph hash8366Types::ProjectInvitationType8367 is expected to expose permissions using Types::PermissionTypes::Project8368 is expected to eq "ProjectInvitation"8369 is expected to require graphql authorizations :admin_project8370 has the expected fields8371Gitlab::Session8372 uses the current thread as a data store8373 #with_session8374 sets session hash8375 restores current store after8376Ci::DownloadableArtifactSerializer8377 #as_json8378 matches schema8379Gitlab::Kubernetes::Kubeconfig::Entry::Context8380 #to_h8381 is expected to eq {:context=>{:cluster=>"cluster", :user=>"user"}, :name=>"name"}8382 with a namespace8383 is expected to eq {:context=>{:cluster=>"cluster", :namespace=>"namespace", :user=>"user"}, :name=>"name"}8384BlobEntity8385 as json8386 contains needed attributes8387Sidebars::MenuItem8388 includes by default aria-label attribute set to the title8389 when aria-label is overridde during initialization8390 sets the aria-label to the new attribute8391Gitlab::Middleware::CompressedJson8392 #call8393 with collector route8394 behaves like decompress middleware8395 replaces input with a decompressed content8396 with collector route under relative url8397 behaves like decompress middleware8398 replaces input with a decompressed content8399 with some other route8400 keeps the original input8401 payload is too large8402 reads only limited size8403projects/runners/specific_runners.html.haml8404 render8405 when project runner registration is allowed8406 enables the Remove project button for a project8407 when project runner registration is not allowed8408 does not enable the the Remove project button for a project8409layouts/_published_experiments8410 renders out data for all non-excluded, published experiments8411Gitlab::Ci::YamlProcessor::Dag8412 when it is a regular pipeline8413 returns ordered jobs8414 when there is a circular dependency8415 raises TSort::Cyclic8416 when there is a missing job8417 raises MissingNodeError8418RuboCop::Cop::BanCatchThrow8419 registers an offense when `catch` or `throw` are used8420 does not register an offense for a method called catch or throw8421PerformanceMonitoring::PrometheusPanel8422 #new8423 accepts old schema format8424 accepts new schema format8425 .from_json8426 creates a PrometheusPanelGroup object8427 validations8428 json_content is not a hash8429 is expected to raise ActiveModel::ValidationError8430 when title is missing8431 is expected to raise ActiveModel::ValidationError8432 when metrics are missing8433 is expected to raise ActiveModel::ValidationError8434 .id8435 returns hexdigest of group_title, type and title as the panel id8436API::Entities::Changelog8437 exposes correct attributes8438 exposes correct notes8439SmimeSignatureSettings8440 .parse8441 sets correct default values to disabled8442 when providing custom values8443 sets correct default values to disabled8444 enables smime with default key and cert8445 enables smime with custom key and cert8446IssuableSeverity8447 associations8448 is expected to belong to issue required: false8449 validations8450 is expected to validate that :severity cannot be empty/falsy8451 is expected to validate that :issue cannot be empty/falsy8452 is expected to validate that :issue is case-sensitively unique8453 enums8454 is expected to define :severity as an enum, backed by an integer, with possible values ‹{unknown: 0, low: 1, medium: 2, high: 3, critical: 4}›8455SubscribableBannerHelper8456 #display_subscription_banner!8457 is over-written in EE8458Types::UserStatusType8459 is expected to eq "UserStatus"8460 exposes the expected fields8461API::Entities::GroupDetail8462 #as_json8463 includes prevent_sharing_groups_outside_hierarchy for a root group8464 excludes prevent_sharing_groups_outside_hierarchy for a subgroup8465Types::IssueTypeEnum8466 is expected to eq "IssueType"8467 exposes all the existing issue type values except for task8468Types::GroupMemberRelationEnum8469 is expected to eq "GroupMemberRelation"8470 exposes all the existing group member relation type values8471Gitlab::GithubImport::Representation::ExposeAttribute8472 defines a getter method that returns an attribute value8473ExploreHelper8474 #explore_nav_links8475 has all the expected links by default8476 #public_visibility_restricted?8477 delegates to Gitlab::VisibilityLevel8478NamespaceBasicEntity8479 #as_json8480 includes required fields8481Types::CustomEmojiType8482 is expected to eq "CustomEmoji"8483 is expected to require graphql authorizations :read_custom_emoji8484 is expected to have graphql fields :id, :name, :url, and :external8485Types::AlertManagement::HttpIntegrationType8486 is expected to eq "AlertManagementHttpIntegration"8487 is expected to require graphql authorizations :admin_operations8488RuboCop::Cop::Database::MultipleDatabases8489 flags the use of ActiveRecord::Base.connection8490RuboCop::Cop::Gitlab::Except8491 flags the use of Gitlab::SQL::Except.new8492ProjectSetting8493 is expected to belong to project required: false8494Gitlab::Email::Message::InProductMarketing::Create8495 public methods8496 series: 08497 returns value for series8498 series: 18499 returns value for series8500 series: 28501 returns value for series8502Gitlab::Auth::Saml::OriginValidator8503 #store_origin8504 stores the SAML request ID8505 #gitlab_initiated?8506 returns false if InResponseTo is not present8507 returns false if InResponseTo does not match stored value8508 returns true if InResponseTo matches stored value8509Types::Packages::PackageType8510 includes all the package fields8511Integrations::IssueTrackerData8512 associations8513 is expected to belong to integration required: false8514Types::ContainerRepositoryStatusEnum8515 exposes all statuses8516API::Entities::Nuget::SearchResult8517 is expected to eq {:@type=>"Package", :authors=>"Author", :iconUrl=>"http://sandbox.com/icon", :id=>"PackageTest", :lic..."1.2.3", :versions=>[{:@id=>"http://sandbox.com/json/package", :downloads=>100, :version=>"1.2.3"}]}8518Banzai::Pipeline::EmojiPipeline8519 replaces emoji8520 filters out HTML tags8521Types::AlertManagement::SeverityEnum8522 is expected to eq "AlertManagementSeverity"8523 exposes all the severity values8524Types::Ci::Config::ConfigType8525 is expected to eq "CiConfig"8526 exposes the expected fields8527Ci::ChangeVariablesService8528 #execute8529 delegates to ActiveRecord update8530Types::Tree::BlobType8531 is expected to eq "Blob"8532 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, :web_path, :lfs_oid, and :mode8533BranchesHelper8534 #access_levels_data8535 when access_levels is nil8536 is expected to be empty8537 when access levels are provided8538 returns the correct array8539 when an access level tied to a deploy key is provided8540 returns the correct array8541Gitlab::Cluster::PumaWorkerKillerObserver8542 #callback8543 increments timeout counter8544Gitlab::OtpKeyRotator8545 #rotate!8546 stores the calculated values in a spreadsheet8547 new key is too short8548 is expected to raise ArgumentError8549 new key is the same as the old key8550 is expected to raise ArgumentError8551 #rollback!8552 updates rows to the old value8553X509SerialNumberAttribute8554 #x509_serial_number_attribute8555 when in non-production8556 when the table exists8557 defines a x509 serial number attribute for a binary column8558 raises ArgumentError when the column type is not :binary8559 when the table does not exist8560 allows the attribute to be added and issues a warning8561 when the column does not exist8562 allows the attribute to be added and issues a warning8563 when other execeptions are raised8564 logs and re-rasises the error8565 when in production8566 defines a x509 serial number attribute8567LimitedCapacity::JobTracker8568 #register8569 adds jid to the set8570 returns false if the jid was not added8571 #remove8572 removes jid from the set8573 #clean_up8574 with running jobs8575 does not remove the jid from the set8576 does only one Redis call to get the job ids8577 with completed jobs8578 removes the jid from the set8579 gets the job ids, removes them, and updates the counter with only two Redis calls8580Knapsack report was generated. Preview:8581{8582 "spec/services/auth/container_registry_authentication_service_spec.rb": 76.84867672499968,8583 "spec/services/merge_requests/refresh_service_spec.rb": 205.0360388629997,8584 "spec/services/git/branch_push_service_spec.rb": 122.00653256799887,8585 "spec/services/ci/unlock_artifacts_service_spec.rb": 87.79977247100032,8586 "spec/lib/gitlab/import_export/group/tree_restorer_spec.rb": 77.81103743800122,8587 "spec/models/concerns/resolvable_discussion_spec.rb": 65.25692428199909,8588 "spec/tasks/gitlab/workhorse_rake_spec.rb": 69.75233817800108,8589 "spec/lib/gitlab/import_export/attributes_permitter_spec.rb": 40.55072159700103,8590 "spec/finders/labels_finder_spec.rb": 45.242635540000265,8591 "spec/services/merge_requests/merge_service_spec.rb": 44.1025645310001,8592 "spec/models/clusters/applications/cilium_spec.rb": 36.631138827999166,8593 "spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb": 37.600863820000086,8594 "spec/lib/gitlab/pagination/offset_pagination_spec.rb": 32.7218269290006,8595 "spec/models/concerns/resolvable_note_spec.rb": 34.11703222700089,8596 "spec/models/ci/ref_spec.rb": 31.801469932001055,8597 "spec/lib/banzai/filter/references/commit_reference_filter_spec.rb": 30.34072166199985,8598 "spec/services/projects/lfs_pointers/lfs_download_service_spec.rb": 19.421837222998874,8599 "spec/models/integrations/jenkins_spec.rb": 21.49059325900089,8600 "spec/lib/error_tracking/sentry_client/issue_spec.rb": 17.527104075999887,8601 "spec/services/members/approve_access_request_service_spec.rb": 23.382983666000655,8602 "spec/lib/gitlab/data_builder/push_spec.rb": 21.781330210000306,8603 "spec/models/notification_recipient_spec.rb": 21.867177983000147,8604 "spec/lib/banzai/filter/syntax_highlight_filter_spec.rb": 17.742166222999003,8605 "spec/helpers/emails_helper_spec.rb": 21.7094229180002,8606 "spec/models/blob_spec.rb": 19.986112649999995,8607 "spec/finders/events_finder_spec.rb": 16.75603012600004,8608 "spec/lib/gitlab/ci/variables/collection_spec.rb": 18.045043174000966,8609 "spec/models/releases/link_spec.rb": 13.848633240999334,8610 "spec/services/clusters/create_service_spec.rb": 14.292740618999233,8611 "spec/helpers/tree_helper_spec.rb": 13.700518483999986,8612 "spec/graphql/resolvers/timelog_resolver_spec.rb": 16.181268041000294,8613 "spec/services/lfs/file_transformer_spec.rb": 13.851168019999022,8614 "spec/services/metrics/dashboard/annotations/create_service_spec.rb": 12.988298923000912,8615 "spec/helpers/avatars_helper_spec.rb": 7.553883765998762,8616 "spec/lib/gitlab/ci/config/entry/need_spec.rb": 1.7837344419986039,8617 "spec/models/integrations/datadog_spec.rb": 4.419412502000341,8618 "spec/workers/packages/go/sync_packages_worker_spec.rb": 7.24073372499879,8619 "spec/services/merge_requests/remove_attention_requested_service_spec.rb": 8.693826677999823,8620 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb": 6.64460076099931,8621 "spec/presenters/group_clusterable_presenter_spec.rb": 8.145053260999703,8622 "spec/services/packages/npm/create_tag_service_spec.rb": 8.197744735000015,8623 "spec/policies/ci/pipeline_policy_spec.rb": 7.725906608999139,8624 "spec/services/deployments/link_merge_requests_service_spec.rb": 8.894033729000512,8625 "spec/services/quick_actions/target_service_spec.rb": 6.787529019000431,8626 "spec/models/diff_viewer/base_spec.rb": 5.960201645999405,8627 "spec/presenters/project_clusterable_presenter_spec.rb": 8.058475288000409,8628 "spec/lib/gitlab/redis/shared_state_spec.rb": 2.7169732630009094,8629 "spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb": 2.988029866999568,8630 "spec/lib/banzai/filter/video_link_filter_spec.rb": 7.434072596999613,8631 "spec/services/clusters/gcp/verify_provision_status_service_spec.rb": 9.024288688000524,8632 "spec/lib/gitlab/auth/ldap/access_spec.rb": 5.174808561001555,8633 "spec/lib/gitlab/diff/diff_refs_spec.rb": 5.092786408000393,8634 "spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb": 5.19944926899916,8635 "spec/uploaders/file_mover_spec.rb": 5.208805037000275,8636 "spec/serializers/note_entity_spec.rb": 7.33734690700112,8637 "spec/presenters/packages/conan/package_presenter_spec.rb": 3.2952171380002255,8638 "spec/services/deployments/older_deployments_drop_service_spec.rb": 6.0099251119991095,8639 "spec/lib/expand_variables_spec.rb": 2.5284686109989707,8640 "spec/lib/gitlab/git/cross_repo_comparer_spec.rb": 4.297578494000845,8641 "spec/graphql/resolvers/concerns/resolves_pipelines_spec.rb": 3.753824594001344,8642 "spec/graphql/types/merge_request_type_spec.rb": 4.395601024001735,8643 "spec/services/groups/update_shared_runners_service_spec.rb": 6.078278315000716,8644 "spec/helpers/page_layout_helper_spec.rb": 2.3390127389993722,8645 "spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb": 3.046026301999518,8646 "spec/lib/system_check/simple_executor_spec.rb": 2.59670648500105,8647 "spec/services/users/authorized_build_service_spec.rb": 4.221216881000146,8648 "spec/finders/packages/tags_finder_spec.rb": 5.12051013600103,8649 "spec/lib/gitlab/highlight_spec.rb": 2.288615514000412,8650 "spec/lib/banzai/object_renderer_spec.rb": 4.2568771979986195,8651 "spec/models/merge_request/metrics_spec.rb": 3.3360566240007756,8652 "spec/lib/gitlab/static_site_editor/config/generated_config_spec.rb": 3.296956908001448,8653 "spec/models/hooks/active_hook_filter_spec.rb": 4.105319062999115,8654 "spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb": 1.3563389310002094,8655 "spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb": 1.1637791500015737,8656 "spec/presenters/ci/legacy_stage_presenter_spec.rb": 4.502964663999592,8657 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 1.4467061939994892,8658 "spec/services/merge_requests/add_spent_time_service_spec.rb": 2.9777171480000106,8659 "spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb": 1.0143556540006102,8660 "spec/models/service_desk_setting_spec.rb": 4.167741645998831,8661 "spec/services/clusters/applications/schedule_update_service_spec.rb": 5.484114421000413,8662 "spec/lib/error_tracking/sentry_client/issue_link_spec.rb": 2.198208173000239,8663 "spec/workers/pipeline_metrics_worker_spec.rb": 4.06405564600027,8664 "spec/serializers/ci/job_serializer_spec.rb": 3.299054908000471,8665 "spec/models/bulk_imports/file_transfer/project_config_spec.rb": 1.2741462499998306,8666 "spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb": 4.212522451000041,8667 "spec/models/group_label_spec.rb": 1.4166609060011979,8668 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 3.329721886000698,8669 "spec/lib/gitlab/ci/config/entry/key_spec.rb": 1.2924106080008642,8670 "spec/finders/packages/go/module_finder_spec.rb": 1.4148915960013255,8671 "spec/finders/prometheus_metrics_finder_spec.rb": 1.3846624590005376,8672 "spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb": 2.3009372319993417,8673 "spec/models/concerns/ignorable_columns_spec.rb": 0.9717635880006128,8674 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executed_spec.rb": 1.0916814470001555,8675 "spec/services/dependency_proxy/request_token_service_spec.rb": 1.6291859859993565,8676 "spec/models/concerns/manual_inverse_association_spec.rb": 3.9787540340003034,8677 "spec/tasks/gitlab/container_registry_rake_spec.rb": 1.0452954709999176,8678 "spec/lib/sidebars/projects/menus/shimo_menu_spec.rb": 1.3370347230011248,8679 "spec/rubocop/cop/performance/ar_exists_and_present_blank_spec.rb": 1.0249286940015736,8680 "spec/finders/user_finder_spec.rb": 1.4431577930008643,8681 "spec/services/dependency_proxy/head_manifest_service_spec.rb": 1.4080681470004492,8682 "spec/models/deployment_cluster_spec.rb": 2.777275986998575,8683 "spec/lib/banzai/reference_parser/design_parser_spec.rb": 2.818338434000907,8684 "spec/policies/clusters/agents/activity_event_policy_spec.rb": 2.5608199480011535,8685 "spec/graphql/mutations/merge_requests/set_subscription_spec.rb": 2.289140013001088,8686 "spec/lib/gitlab/ci/config/extendable_spec.rb": 1.1958640970005945,8687 "spec/models/integrations/zentao_spec.rb": 2.50409963400125,8688 "spec/lib/gitlab/api_authentication/token_locator_spec.rb": 2.053472915000384,8689 "spec/graphql/resolvers/clusters/agent_tokens_resolver_spec.rb": 2.8998833160003414,8690 "spec/services/ci/create_pipeline_service/include_spec.rb": 2.9974275570002646,8691 "spec/serializers/ci/dag_job_group_entity_spec.rb": 1.5793183509995288,8692 "spec/models/concerns/cron_schedulable_spec.rb": 2.431152839999413,8693 "spec/finders/issues_finder/params_spec.rb": 1.3583507410003222,8694 "spec/lib/gitlab/search/query_spec.rb": 1.0590986000006524,8695 "spec/services/tags/destroy_service_spec.rb": 2.530017791001228,8696 "spec/views/projects/diffs/_viewer.html.haml_spec.rb": 3.12744424399898,8697 "spec/services/dependency_proxy/find_cached_manifest_service_spec.rb": 1.5353316649998305,8698 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb": 2.053801605999979,8699 "spec/workers/hashed_storage/rollbacker_worker_spec.rb": 2.240053628000169,8700 "spec/workers/ci/delete_objects_worker_spec.rb": 0.8769134570011374,8701 "spec/lib/bulk_imports/users_mapper_spec.rb": 0.8449567999996361,8702 "spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb": 2.868889978999505,8703 "spec/lib/gitlab/github_import/label_finder_spec.rb": 0.9342267120009637,8704 "spec/lib/gitlab/sidekiq_logging/deduplication_logger_spec.rb": 0.6873395950005943,8705 "spec/helpers/projects/terraform_helper_spec.rb": 1.1656796299994312,8706 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 2.0728752440008975,8707 "spec/services/ci/compare_test_reports_service_spec.rb": 2.778267556999708,8708 "spec/initializers/net_http_patch_spec.rb": 0.9572746800004097,8709 "spec/graphql/resolvers/metrics/dashboard_resolver_spec.rb": 1.4793792099990242,8710 "spec/lib/error_tracking/sentry_client/pagination_parser_spec.rb": 0.7108541220004554,8711 "spec/workers/concerns/gitlab/github_import/rescheduling_methods_spec.rb": 2.0253418289994443,8712 "spec/services/chat_names/authorize_user_service_spec.rb": 2.3666598359995987,8713 "spec/workers/issue_due_scheduler_worker_spec.rb": 2.394833454000036,8714 "spec/models/concerns/limitable_spec.rb": 0.9027214649995585,8715 "spec/services/update_container_registry_info_service_spec.rb": 1.6369012449995353,8716 "spec/routing/environments_spec.rb": 1.6587862329997733,8717 "spec/finders/ci/job_artifacts_finder_spec.rb": 2.223986909000814,8718 "spec/serializers/feature_flag_serializer_spec.rb": 2.6593210589999217,8719 "spec/finders/bulk_imports/imports_finder_spec.rb": 0.8182967129996541,8720 "spec/services/users/registrations_build_service_spec.rb": 0.9851579469996068,8721 "spec/lib/gitlab/utils/deep_size_spec.rb": 0.7753743160010345,8722 "spec/graphql/types/snippets/blob_viewer_type_spec.rb": 1.184305377999408,8723 "spec/graphql/resolvers/kas/agent_configurations_resolver_spec.rb": 1.8320839069983776,8724 "spec/lib/gitlab/database/shared_model_spec.rb": 0.7066688230006548,8725 "spec/lib/sidebars/projects/menus/external_issue_tracker_menu_spec.rb": 0.7837953159996687,8726 "spec/serializers/import/githubish_provider_repo_entity_spec.rb": 0.731681691000631,8727 "spec/models/webauthn_registration_spec.rb": 0.9594632290009031,8728 "spec/graphql/types/prometheus_alert_type_spec.rb": 0.6988826440010598,8729 "spec/rubocop/cop/gitlab/namespaced_class_spec.rb": 0.7421499300016876,8730 "spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb": 1.1911850469987257,8731 "spec/lib/api/every_api_endpoint_spec.rb": 2.2190432299994427,8732 "spec/helpers/dashboard_helper_spec.rb": 1.038686152000082,8733 "spec/policies/application_setting/term_policy_spec.rb": 2.1185284000002866,8734 "spec/views/projects/settings/operations/show.html.haml_spec.rb": 1.9127377989989327,8735 "spec/lib/gitlab/sidekiq_config/cli_methods_spec.rb": 0.781813986999623,8736 "spec/policies/resource_label_event_policy_spec.rb": 2.0578862050006137,8737 "spec/workers/personal_access_tokens/expiring_worker_spec.rb": 0.9673010490005254,8738 "spec/workers/update_container_registry_info_worker_spec.rb": 0.6841617750014848,8739 "spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb": 0.6740862760016171,8740 "spec/workers/snippets/update_repository_storage_worker_spec.rb": 0.8785183270010748,8741 "spec/channels/application_cable/connection_spec.rb": 0.9237823820003541,8742 "spec/graphql/types/label_type_spec.rb": 0.6453614679994644,8743 "spec/lib/gitlab/email/smime/signer_spec.rb": 3.27610636099962,8744 "spec/services/discussions/unresolve_service_spec.rb": 1.455731812000522,8745 "spec/initializers/validate_database_config_spec.rb": 0.8107993840003473,8746 "spec/serializers/admin/user_entity_spec.rb": 0.8626159590003226,8747 "spec/graphql/mutations/branches/create_spec.rb": 1.4474178130003565,8748 "spec/serializers/linked_project_issue_entity_spec.rb": 1.7962990999985777,8749 "spec/lib/bitbucket/representation/pull_request_comment_spec.rb": 0.7700527069991949,8750 "spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb": 1.173860909000723,8751 "spec/services/packages/remove_tag_service_spec.rb": 1.3745094099995185,8752 "spec/models/acts_as_taggable_on/tag_spec.rb": 0.723479012000098,8753 "spec/lib/gitlab/usage_data_counters/search_counter_spec.rb": 0.7244257920010568,8754 "spec/models/bulk_imports/export_status_spec.rb": 0.9855174069998611,8755 "spec/validators/project_path_validator_spec.rb": 0.9297625920007704,8756 "spec/rubocop/cop/usage_data/instrumentation_superclass_spec.rb": 0.6717631169995002,8757 "spec/models/integrations/pivotaltracker_spec.rb": 2.118218980000165,8758 "spec/lib/gitlab/auth/saml/auth_hash_spec.rb": 0.8733966079998936,8759 "spec/lib/gitlab/ci/status/preparing_spec.rb": 0.7747980969998025,8760 "spec/lib/banzai/filter/inline_alert_metrics_filter_spec.rb": 0.8619365080012358,8761 "spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb": 0.695622913999614,8762 "spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb": 1.85681795399978,8763 "spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb": 1.5738957810008287,8764 "spec/models/analytics/cycle_analytics/project_value_stream_spec.rb": 1.1222134039999219,8765 "spec/models/user_highest_role_spec.rb": 0.9479083499991248,8766 "spec/services/users/validate_otp_service_spec.rb": 0.7209735120013647,8767 "spec/graphql/resolvers/ci/test_suite_resolver_spec.rb": 1.516525057000763,8768 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 1.052382559999387,8769 "spec/presenters/dev_ops_report/metric_presenter_spec.rb": 0.7392128800001956,8770 "spec/lib/gitlab/kubernetes/rollout_instances_spec.rb": 0.7997010550006962,8771 "spec/lib/api/helpers/version_spec.rb": 0.7315510200005519,8772 "spec/lib/gitlab/database/migrations/lock_retry_mixin_spec.rb": 0.7442896400007157,8773 "spec/lib/gitlab/cycle_analytics/summary/value_spec.rb": 0.7436210899995785,8774 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.7567160680009692,8775 "spec/services/product_analytics/build_graph_service_spec.rb": 1.0976307760010968,8776 "spec/graphql/types/project_invitation_type_spec.rb": 0.6395969599998352,8777 "spec/lib/gitlab/session_spec.rb": 0.679005195001082,8778 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 1.1461652510006388,8779 "spec/lib/gitlab/kubernetes/kubeconfig/entry/context_spec.rb": 0.6877997050014528,8780 "spec/serializers/blob_entity_spec.rb": 1.186240118000569,8781 "spec/lib/sidebars/menu_item_spec.rb": 0.6495559479990334,8782 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 0.7536180579991196,8783 "spec/views/projects/runners/_specific_runners.html.haml_spec.rb": 1.066576888999407,8784 "spec/views/layouts/_published_experiments.html.haml_spec.rb": 0.8136788730007538,8785 "spec/lib/gitlab/ci/yaml_processor/dag_spec.rb": 0.7860295259997656,8786 "spec/rubocop/cop/ban_catch_throw_spec.rb": 0.6823922250005126,8787 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.7207687820009596,8788 "spec/lib/api/entities/changelog_spec.rb": 0.6635211379998509,8789 "spec/config/smime_signature_settings_spec.rb": 0.854853759999969,8790 "spec/models/issuable_severity_spec.rb": 1.083411397999953,8791 "spec/helpers/subscribable_banner_helper_spec.rb": 0.7512804090001737,8792 "spec/graphql/types/user_status_type_spec.rb": 0.5721384360003867,8793 "spec/lib/api/entities/group_detail_spec.rb": 0.7344331900003453,8794 "spec/graphql/types/issue_type_enum_spec.rb": 0.6092405429990322,8795 "spec/graphql/types/group_member_relation_enum_spec.rb": 0.6191950109987374,8796 "spec/lib/gitlab/github_import/representation/expose_attribute_spec.rb": 0.6348537300000316,8797 "spec/helpers/explore_helper_spec.rb": 0.8448682500002178,8798 "spec/serializers/namespace_basic_entity_spec.rb": 0.6309701609989133,8799 "spec/graphql/types/custom_emoji_type_spec.rb": 0.6389874790002068,8800 "spec/graphql/types/alert_management/http_integration_type_spec.rb": 0.9559938100010186,8801 "spec/rubocop/cop/database/multiple_databases_spec.rb": 0.7716148970012,8802 "spec/rubocop/cop/gitlab/except_spec.rb": 0.5833879239999078,8803 "spec/models/project_setting_spec.rb": 0.5965533130001859,8804 "spec/lib/gitlab/email/message/in_product_marketing/create_spec.rb": 0.6945265449994622,8805 "spec/lib/gitlab/auth/saml/origin_validator_spec.rb": 0.8260386819983978,8806 "spec/graphql/types/packages/package_type_spec.rb": 0.653759169001205,8807 "spec/models/integrations/issue_tracker_data_spec.rb": 0.5951240340000368,8808 "spec/graphql/types/container_repository_status_enum_spec.rb": 0.6276009209996118,8809 "spec/lib/api/entities/nuget/search_result_spec.rb": 0.6514105279984506,8810 "spec/lib/banzai/pipeline/emoji_pipeline_spec.rb": 0.6593500479993963,8811 "spec/graphql/types/alert_management/severity_enum_spec.rb": 0.6566788079999242,8812 "spec/graphql/types/ci/config/config_type_spec.rb": 0.8009127939985774,8813 "spec/services/ci/change_variables_service_spec.rb": 0.7180065120010113,8814 "spec/graphql/types/tree/blob_type_spec.rb": 0.7074913529995683,8815 "spec/helpers/branches_helper_spec.rb": 1.6724326319999818,8816 "spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb": 0.6199036010002601,8817 "spec/lib/gitlab/otp_key_rotator_spec.rb": 3.1847273289986333,8818 "spec/models/concerns/x509_serial_number_attribute_spec.rb": 0.8364653909993649,8819 "spec/workers/concerns/limited_capacity/job_tracker_spec.rb": 0.77427570700092478820}8821Knapsack global time execution for tests: 29m 40s8822Pending: (Failures listed here are expected and do not affect your suite's status)8823 1) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records8824 # No reason given8825 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)8826 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change8827 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'8828 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'8829 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8830 # ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'8831 # ./spec/spec_helper.rb:399:in `block (3 levels) in <top (required)>'8832 # ./lib/gitlab/application_context.rb:31:in `with_raw_context'8833 # ./spec/spec_helper.rb:399:in `block (2 levels) in <top (required)>'8834 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8835 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8836 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8837 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8838 2) Ci::UnlockArtifactsService tag: false, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records8839 # No reason given8840 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)8841 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change8842 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'8843 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'8844 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8845 # ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'8846 # ./spec/spec_helper.rb:399:in `block (3 levels) in <top (required)>'8847 # ./lib/gitlab/application_context.rb:31:in `with_raw_context'8848 # ./spec/spec_helper.rb:399:in `block (2 levels) in <top (required)>'8849 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8850 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8851 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8852 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8853 3) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on a ref before a pipeline unlocks job artifact records8854 # No reason given8855 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(2)8856 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 2, but did not change8857 # ./spec/services/ci/unlock_artifacts_service_spec.rb:73:in `block (5 levels) in <top (required)>'8858 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'8859 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8860 # ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'8861 # ./spec/spec_helper.rb:399:in `block (3 levels) in <top (required)>'8862 # ./lib/gitlab/application_context.rb:31:in `with_raw_context'8863 # ./spec/spec_helper.rb:399:in `block (2 levels) in <top (required)>'8864 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8865 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8866 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8867 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8868 4) Ci::UnlockArtifactsService tag: true, ci_update_unlocked_job_artifacts: false #execute when running on just the ref unlocks job artifact records8869 # No reason given8870 Failure/Error: expect { execute }.to change { ::Ci::JobArtifact.artifact_unlocked.count }.from(0).to(8)8871 expected `::Ci::JobArtifact.artifact_unlocked.count` to have changed from 0 to 8, but did not change8872 # ./spec/services/ci/unlock_artifacts_service_spec.rb:107:in `block (5 levels) in <top (required)>'8873 # ./spec/spec_helper.rb:412:in `block (3 levels) in <top (required)>'8874 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'8875 # ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'8876 # ./spec/spec_helper.rb:399:in `block (3 levels) in <top (required)>'8877 # ./lib/gitlab/application_context.rb:31:in `with_raw_context'8878 # ./spec/spec_helper.rb:399:in `block (2 levels) in <top (required)>'8879 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'8880 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8881 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8882 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8883Finished in 29 minutes 42 seconds (files took 1 minute 0.12 seconds to load)88843828 examples, 0 failures, 4 pending8885Mon Dec 20 17:23:11 UTC 20218887Not uploading cache ruby-gems-v1-9 due to policy8888Not uploading cache gitaly-ruby-gems-v1-9 due to policy8890Uploading artifacts...8891coverage/: found 5 matching files and directories 8892crystalball/: found 2 matching files and directories 8893WARNING: deprecations/: no matching files 8894knapsack/: found 3 matching files and directories 8895rspec_flaky/: found 5 matching files and directories 8896rspec_profiling/: found 1 matching files and directories 8897WARNING: tmp/capybara/: no matching files 8898tmp/memory_test/: found 2 matching files and directories 8899log/*.log: found 19 matching files and directories 8900Uploading artifacts as "archive" to coordinator... ok id=1904366606 responseStatus=201 Created token=PgbUDHSG8901Uploading artifacts...8902junit_rspec.xml: found 1 matching files and directories 8903Uploading artifacts as "junit" to coordinator... ok id=1904366606 responseStatus=201 Created token=PgbUDHSG8905Job succeeded