rspec unit pg12 22/22
Passed Started
by
@sselhorn

Suzanne Selhorn
1Running with gitlab-runner 14.6.0~beta.71.gf035ecbf (f035ecbf)2 on green-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org GaSD-S1F3 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-gasd-s1f-project-278964-concurrent-0 via runner-gasd-s1f-private-1640015563-8c3b1d4e...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 | 21.17 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...36cache.zip is up to date 37Successfully extracted cache38Checking cache for gitaly-ruby-gems-v1-9...39cache.zip is up to date 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 10 seconds.75$ setup_db_user_only76CREATE ROLE77GRANT78==> 'setup_db_user_only' succeeded in 0 seconds.79$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee80Dropped database 'gitlabhq_test'81Dropped database 'gitlabhq_geo_test'82Created database 'gitlabhq_test'83Created database 'gitlabhq_geo_test'84DEPRECATION WARNING: Using `bin/rails db:structure:load` is deprecated and will be removed in Rails 6.2. Configure the format using `config.active_record.schema_format = :sql` to use `structure.sql` and run `bin/rails db:schema:load` instead. (called from load at /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/bin/rake:23)85Dropped database 'gitlabhq_geo_test'86Created database 'gitlabhq_geo_test'87==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 26 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/models/merge_request_diff_spec.rb215spec/models/namespace_spec.rb216spec/services/issues/update_service_spec.rb217spec/models/concerns/issuable_spec.rb218spec/services/ci/create_downstream_pipeline_service_spec.rb219spec/tooling/danger/project_helper_spec.rb220spec/models/clusters/applications/cert_manager_spec.rb221spec/models/integrations/slack_spec.rb222spec/services/notes/create_service_spec.rb223spec/models/snippet_spec.rb224spec/finders/concerns/packages/finder_helper_spec.rb225spec/uploaders/job_artifact_uploader_spec.rb226spec/presenters/ci/build_runner_presenter_spec.rb227spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb228spec/helpers/groups_helper_spec.rb229spec/services/design_management/copy_design_collection/copy_service_spec.rb230spec/finders/merge_request_target_project_finder_spec.rb231spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb232spec/models/ci/build_dependencies_spec.rb233spec/workers/repository_fork_worker_spec.rb234spec/lib/gitlab/url_builder_spec.rb235spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb236spec/models/serverless/domain_spec.rb237spec/models/ability_spec.rb238spec/models/route_spec.rb239spec/lib/gitlab/usage/metric_definition_spec.rb240spec/services/merge_requests/ff_merge_service_spec.rb241spec/services/clusters/applications/check_upgrade_progress_service_spec.rb242spec/services/resource_access_tokens/create_service_spec.rb243spec/services/issues/duplicate_service_spec.rb244spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb245spec/lib/gitlab/database/reflection_spec.rb246spec/models/namespace/root_storage_statistics_spec.rb247spec/services/serverless/associate_domain_service_spec.rb248spec/services/discussions/update_diff_position_service_spec.rb249spec/lib/gitlab/legacy_github_import/importer_spec.rb250spec/helpers/auto_devops_helper_spec.rb251spec/lib/gitlab/ci/config/external/processor_spec.rb252spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb253spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb254spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb255spec/services/metrics/dashboard/dynamic_embed_service_spec.rb256spec/services/projects/hashed_storage/rollback_repository_service_spec.rb257spec/models/integrations/chat_message/pipeline_message_spec.rb258spec/services/jira_connect_subscriptions/create_service_spec.rb259spec/models/project_auto_devops_spec.rb260spec/finders/access_requests_finder_spec.rb261spec/tasks/gitlab/cleanup_rake_spec.rb262spec/workers/remove_expired_members_worker_spec.rb263spec/lib/banzai/reference_redactor_spec.rb264spec/rubocop/cop/graphql/old_types_spec.rb265spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb266spec/services/integrations/test/project_service_spec.rb267spec/policies/award_emoji_policy_spec.rb268spec/workers/namespaceless_project_destroy_worker_spec.rb269spec/services/projects/deploy_tokens/create_service_spec.rb270spec/finders/projects/groups_finder_spec.rb271spec/services/snippets/update_statistics_service_spec.rb272spec/lib/gitlab/ci/artifact_file_reader_spec.rb273spec/services/ci/create_pipeline_service/dry_run_spec.rb274spec/models/integrations/slack_slash_commands_spec.rb275spec/workers/new_merge_request_worker_spec.rb276spec/lib/gitlab/ci/pipeline/seed/deployment_spec.rb277spec/serializers/merge_request_diff_entity_spec.rb278spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb279spec/services/git/tag_push_service_spec.rb280spec/models/chat_name_spec.rb281spec/serializers/test_suite_summary_entity_spec.rb282spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb283spec/finders/security/license_compliance_jobs_finder_spec.rb284spec/graphql/resolvers/base_resolver_spec.rb285spec/finders/design_management/versions_finder_spec.rb286spec/helpers/releases_helper_spec.rb287spec/lib/gitlab/git/merge_base_spec.rb288spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb289spec/workers/issues/rebalancing_worker_spec.rb290spec/services/protected_branches/create_service_spec.rb291spec/uploaders/dependency_proxy/file_uploader_spec.rb292spec/workers/ci/pending_builds/update_project_worker_spec.rb293spec/lib/gitlab/issuable_metadata_spec.rb294spec/services/issues/related_branches_service_spec.rb295spec/helpers/environments_helper_spec.rb296spec/views/admin/dashboard/index.html.haml_spec.rb297spec/workers/users/deactivate_dormant_users_worker_spec.rb298spec/lib/gitlab/lograge/custom_options_spec.rb299spec/models/ci/pipeline_variable_spec.rb300spec/lib/gitlab/legacy_github_import/client_spec.rb301spec/sidekiq_cluster/sidekiq_cluster_spec.rb302spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb303spec/lib/gitlab/database/postgres_partitioned_table_spec.rb304spec/lib/gitlab/graphql/lazy_spec.rb305spec/tooling/rspec_flaky/config_spec.rb306spec/services/gpg_keys/create_service_spec.rb307spec/lib/gitlab/cache/request_cache_spec.rb308spec/services/groups/auto_devops_service_spec.rb309spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb310spec/services/design_management/generate_image_versions_service_spec.rb311spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb312spec/finders/ci/daily_build_group_report_results_finder_spec.rb313spec/services/ci/drop_pipeline_service_spec.rb314spec/workers/remove_unaccepted_member_invites_worker_spec.rb315spec/services/merge_requests/migrate_external_diffs_service_spec.rb316spec/services/users/update_todo_count_cache_service_spec.rb317spec/workers/cleanup_container_repository_worker_spec.rb318spec/lib/gitlab/import_export/fork_spec.rb319spec/lib/gitlab/etag_caching/router/restful_spec.rb320spec/services/merge_requests/add_context_service_spec.rb321spec/services/access_token_validation_service_spec.rb322spec/lib/gitlab/reactive_cache_set_cache_spec.rb323spec/lib/gitlab/file_markdown_link_builder_spec.rb324spec/lib/banzai/filter/inline_cluster_metrics_filter_spec.rb325spec/models/design_management/repository_spec.rb326spec/lib/gitlab/background_migration/cleanup_concurrent_schema_change_spec.rb327spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb328spec/lib/gitlab/cleanup/remote_uploads_spec.rb329spec/lib/gitlab/database/partitioning/partition_manager_spec.rb330spec/support_specs/graphql/arguments_spec.rb331spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb332spec/views/projects/environments/terminal.html.haml_spec.rb333spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb334spec/lib/gitlab/endpoint_attributes_spec.rb335spec/lib/gitlab/verify/lfs_objects_spec.rb336spec/policies/todo_policy_spec.rb337spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb338spec/lib/gitlab/phabricator_import/cache/map_spec.rb339spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb340spec/graphql/resolvers/terraform/states_resolver_spec.rb341spec/serializers/review_app_setup_entity_spec.rb342spec/services/bulk_imports/create_service_spec.rb343spec/lib/gitlab/ci/status/build/skipped_spec.rb344spec/services/packages/debian/parse_debian822_service_spec.rb345spec/graphql/mutations/todos/mark_done_spec.rb346spec/lib/gitlab/jira/dvcs_spec.rb347spec/services/award_emojis/collect_user_emoji_service_spec.rb348spec/finders/ci/variables_finder_spec.rb349spec/lib/gitlab/hook_data/merge_request_builder_spec.rb350spec/services/clusters/aws/fetch_credentials_service_spec.rb351spec/services/import_export_clean_up_service_spec.rb352spec/workers/web_hooks/destroy_worker_spec.rb353spec/tasks/migrate/schema_check_rake_spec.rb354spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb355spec/serializers/rollout_status_entity_spec.rb356spec/serializers/merge_request_widget_commit_entity_spec.rb357spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb358spec/lib/gitlab/kubernetes/node_spec.rb359spec/validators/json_schema_validator_spec.rb360spec/models/application_setting/term_spec.rb361spec/services/ci/generate_kubeconfig_service_spec.rb362spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb363spec/workers/pipeline_notification_worker_spec.rb364spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb365spec/lib/gitlab/github_import/markdown_text_spec.rb366spec/lib/forever_spec.rb367spec/presenters/service_hook_presenter_spec.rb368spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb369spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb370spec/lib/api/validations/validators/email_or_email_list_spec.rb371spec/views/projects/hooks/index.html.haml_spec.rb372spec/models/project_pages_metadatum_spec.rb373spec/routing/openid_connect_spec.rb374spec/models/projects/ci_feature_usage_spec.rb375spec/lib/gitlab/database/connection_timer_spec.rb376spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb377spec/lib/backup/file_backup_error_spec.rb378spec/lib/gitlab/import_export/avatar_saver_spec.rb379spec/lib/gitlab/ci/build/releaser_spec.rb380spec/graphql/mutations/user_callouts/create_spec.rb381spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb382spec/graphql/types/availability_enum_spec.rb383spec/models/user_agent_detail_spec.rb384spec/lib/sidebars/groups/menus/invite_team_members_menu_spec.rb385spec/lib/gitlab/ci/matching/build_matcher_spec.rb386spec/lib/gitlab/ci/build/artifacts/path_spec.rb387spec/scripts/changed-feature-flags_spec.rb388spec/services/ci/disable_user_pipeline_schedules_service_spec.rb389spec/policies/identity_provider_policy_spec.rb390spec/services/users/dismiss_callout_service_spec.rb391spec/services/metrics/users_starred_dashboards/delete_service_spec.rb392spec/models/user_mentions/merge_request_user_mention_spec.rb393spec/presenters/terraform/modules_presenter_spec.rb394spec/validators/nested_attributes_duplicates_validator_spec.rb395spec/models/programming_language_spec.rb396spec/lib/gitlab/ci/status/failed_spec.rb397spec/lib/gitlab/auth/atlassian/user_spec.rb398spec/models/term_agreement_spec.rb399spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb400spec/services/issuable/process_assignees_spec.rb401spec/lib/gitlab/uuid_spec.rb402spec/services/clusters/aws/verify_provision_status_service_spec.rb403spec/tooling/danger/specs_spec.rb404spec/lib/gitlab/import_export/version_checker_spec.rb405spec/lib/gitlab/kubernetes/ingress_spec.rb406spec/views/dashboard/projects/index.html.haml_spec.rb407spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb408spec/lib/gitlab/pagination/keyset/in_operator_optimization/column_data_spec.rb409spec/lib/gitlab/chat_name_token_spec.rb410spec/views/projects/issues/_related_branches.html.haml_spec.rb411spec/lib/gitlab/ci/artifacts/metrics_spec.rb412spec/graphql/mutations/customer_relations/organizations/update_spec.rb413spec/lib/gitlab/view/presenter/simple_spec.rb414spec/graphql/resolvers/echo_resolver_spec.rb415spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb416spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb417spec/graphql/types/release_assets_type_spec.rb418spec/finders/packages/group_or_project_package_finder_spec.rb419spec/rubocop/cop/migration/add_concurrent_index_spec.rb420spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb421spec/services/user_preferences/update_service_spec.rb422spec/graphql/types/ci/config/job_type_spec.rb423spec/rubocop/cop/scalability/file_uploads_spec.rb424spec/presenters/prometheus_alert_presenter_spec.rb425spec/lib/api/entities/snippets/repository_storage_move_spec.rb426spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb427spec/graphql/types/user_callout_feature_name_enum_spec.rb428spec/lib/gitlab/database/migrations/observers/query_log_spec.rb429spec/lib/gitlab/language_data_spec.rb430spec/lib/sidebars/concerns/container_with_html_options_spec.rb431spec/lib/backup/pages_spec.rb432spec/helpers/terms_helper_spec.rb433spec/lib/gitlab/github_import/representation/lfs_object_spec.rb434spec/models/ci/trigger_request_spec.rb435spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb436spec/lib/gitlab/github_import/representation_spec.rb437spec/lib/gitlab/data_builder/alert_spec.rb438spec/lib/api/entities/nuget/dependency_spec.rb439spec/lib/bitbucket/representation/user_spec.rb440spec/serializers/codequality_reports_comparer_entity_spec.rb441spec/serializers/import/gitlab_provider_repo_entity_spec.rb442spec/serializers/board_simple_entity_spec.rb443spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb444spec/graphql/types/ci/stage_type_spec.rb445spec/lib/gitlab/i18n/metadata_entry_spec.rb446spec/graphql/types/issuable_sort_enum_spec.rb447spec/graphql/types/subscription_type_spec.rb448spec/helpers/timeboxes_routing_helper_spec.rb449spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb450spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb451spec/models/pages/virtual_domain_spec.rb452spec/services/packages/maven/create_package_service_spec.rb453spec/workers/deployments/hooks_worker_spec.rb454Filter specs:455Running specs:456Running all node tests without filter457spec/models/merge_request_diff_spec.rb458spec/models/namespace_spec.rb459spec/services/issues/update_service_spec.rb460spec/models/concerns/issuable_spec.rb461spec/services/ci/create_downstream_pipeline_service_spec.rb462spec/tooling/danger/project_helper_spec.rb463spec/models/clusters/applications/cert_manager_spec.rb464spec/models/integrations/slack_spec.rb465spec/services/notes/create_service_spec.rb466spec/models/snippet_spec.rb467spec/finders/concerns/packages/finder_helper_spec.rb468spec/uploaders/job_artifact_uploader_spec.rb469spec/presenters/ci/build_runner_presenter_spec.rb470spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb471spec/helpers/groups_helper_spec.rb472spec/services/design_management/copy_design_collection/copy_service_spec.rb473spec/finders/merge_request_target_project_finder_spec.rb474spec/lib/gitlab/background_migration/cleanup_orphaned_lfs_objects_projects_spec.rb475spec/models/ci/build_dependencies_spec.rb476spec/workers/repository_fork_worker_spec.rb477spec/lib/gitlab/url_builder_spec.rb478spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb479spec/models/serverless/domain_spec.rb480spec/models/ability_spec.rb481spec/models/route_spec.rb482spec/lib/gitlab/usage/metric_definition_spec.rb483spec/services/merge_requests/ff_merge_service_spec.rb484spec/services/clusters/applications/check_upgrade_progress_service_spec.rb485spec/services/resource_access_tokens/create_service_spec.rb486spec/services/issues/duplicate_service_spec.rb487spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb488spec/lib/gitlab/database/reflection_spec.rb489spec/models/namespace/root_storage_statistics_spec.rb490spec/services/serverless/associate_domain_service_spec.rb491spec/services/discussions/update_diff_position_service_spec.rb492spec/lib/gitlab/legacy_github_import/importer_spec.rb493spec/helpers/auto_devops_helper_spec.rb494spec/lib/gitlab/ci/config/external/processor_spec.rb495spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb496spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb497spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb498spec/services/metrics/dashboard/dynamic_embed_service_spec.rb499spec/services/projects/hashed_storage/rollback_repository_service_spec.rb500spec/models/integrations/chat_message/pipeline_message_spec.rb501spec/services/jira_connect_subscriptions/create_service_spec.rb502spec/models/project_auto_devops_spec.rb503spec/finders/access_requests_finder_spec.rb504spec/tasks/gitlab/cleanup_rake_spec.rb505spec/workers/remove_expired_members_worker_spec.rb506spec/lib/banzai/reference_redactor_spec.rb507spec/rubocop/cop/graphql/old_types_spec.rb508spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb509spec/services/integrations/test/project_service_spec.rb510spec/policies/award_emoji_policy_spec.rb511spec/workers/namespaceless_project_destroy_worker_spec.rb512spec/services/projects/deploy_tokens/create_service_spec.rb513spec/finders/projects/groups_finder_spec.rb514spec/services/snippets/update_statistics_service_spec.rb515spec/lib/gitlab/ci/artifact_file_reader_spec.rb516spec/services/ci/create_pipeline_service/dry_run_spec.rb517spec/models/integrations/slack_slash_commands_spec.rb518spec/workers/new_merge_request_worker_spec.rb519spec/lib/gitlab/ci/pipeline/seed/deployment_spec.rb520spec/serializers/merge_request_diff_entity_spec.rb521spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb522spec/services/git/tag_push_service_spec.rb523spec/models/chat_name_spec.rb524spec/serializers/test_suite_summary_entity_spec.rb525spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb526spec/finders/security/license_compliance_jobs_finder_spec.rb527spec/graphql/resolvers/base_resolver_spec.rb528spec/finders/design_management/versions_finder_spec.rb529spec/helpers/releases_helper_spec.rb530spec/lib/gitlab/git/merge_base_spec.rb531spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb532spec/workers/issues/rebalancing_worker_spec.rb533spec/services/protected_branches/create_service_spec.rb534spec/uploaders/dependency_proxy/file_uploader_spec.rb535spec/workers/ci/pending_builds/update_project_worker_spec.rb536spec/lib/gitlab/issuable_metadata_spec.rb537spec/services/issues/related_branches_service_spec.rb538spec/helpers/environments_helper_spec.rb539spec/views/admin/dashboard/index.html.haml_spec.rb540spec/workers/users/deactivate_dormant_users_worker_spec.rb541spec/lib/gitlab/lograge/custom_options_spec.rb542spec/models/ci/pipeline_variable_spec.rb543spec/lib/gitlab/legacy_github_import/client_spec.rb544spec/sidekiq_cluster/sidekiq_cluster_spec.rb545spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb546spec/lib/gitlab/database/postgres_partitioned_table_spec.rb547spec/lib/gitlab/graphql/lazy_spec.rb548spec/tooling/rspec_flaky/config_spec.rb549spec/services/gpg_keys/create_service_spec.rb550spec/lib/gitlab/cache/request_cache_spec.rb551spec/services/groups/auto_devops_service_spec.rb552spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb553spec/services/design_management/generate_image_versions_service_spec.rb554spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb555spec/finders/ci/daily_build_group_report_results_finder_spec.rb556spec/services/ci/drop_pipeline_service_spec.rb557spec/workers/remove_unaccepted_member_invites_worker_spec.rb558spec/services/merge_requests/migrate_external_diffs_service_spec.rb559spec/services/users/update_todo_count_cache_service_spec.rb560spec/workers/cleanup_container_repository_worker_spec.rb561spec/lib/gitlab/import_export/fork_spec.rb562spec/lib/gitlab/etag_caching/router/restful_spec.rb563spec/services/merge_requests/add_context_service_spec.rb564spec/services/access_token_validation_service_spec.rb565spec/lib/gitlab/reactive_cache_set_cache_spec.rb566spec/lib/gitlab/file_markdown_link_builder_spec.rb567spec/lib/banzai/filter/inline_cluster_metrics_filter_spec.rb568spec/models/design_management/repository_spec.rb569spec/lib/gitlab/background_migration/cleanup_concurrent_schema_change_spec.rb570spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb571spec/lib/gitlab/cleanup/remote_uploads_spec.rb572spec/lib/gitlab/database/partitioning/partition_manager_spec.rb573spec/support_specs/graphql/arguments_spec.rb574spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb575spec/views/projects/environments/terminal.html.haml_spec.rb576spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb577spec/lib/gitlab/endpoint_attributes_spec.rb578spec/lib/gitlab/verify/lfs_objects_spec.rb579spec/policies/todo_policy_spec.rb580spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb581spec/lib/gitlab/phabricator_import/cache/map_spec.rb582spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb583spec/graphql/resolvers/terraform/states_resolver_spec.rb584spec/serializers/review_app_setup_entity_spec.rb585spec/services/bulk_imports/create_service_spec.rb586spec/lib/gitlab/ci/status/build/skipped_spec.rb587spec/services/packages/debian/parse_debian822_service_spec.rb588spec/graphql/mutations/todos/mark_done_spec.rb589spec/lib/gitlab/jira/dvcs_spec.rb590spec/services/award_emojis/collect_user_emoji_service_spec.rb591spec/finders/ci/variables_finder_spec.rb592spec/lib/gitlab/hook_data/merge_request_builder_spec.rb593spec/services/clusters/aws/fetch_credentials_service_spec.rb594spec/services/import_export_clean_up_service_spec.rb595spec/workers/web_hooks/destroy_worker_spec.rb596spec/tasks/migrate/schema_check_rake_spec.rb597spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb598spec/serializers/rollout_status_entity_spec.rb599spec/serializers/merge_request_widget_commit_entity_spec.rb600spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb601spec/lib/gitlab/kubernetes/node_spec.rb602spec/validators/json_schema_validator_spec.rb603spec/models/application_setting/term_spec.rb604spec/services/ci/generate_kubeconfig_service_spec.rb605spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb606spec/workers/pipeline_notification_worker_spec.rb607spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb608spec/lib/gitlab/github_import/markdown_text_spec.rb609spec/lib/forever_spec.rb610spec/presenters/service_hook_presenter_spec.rb611spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb612spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb613spec/lib/api/validations/validators/email_or_email_list_spec.rb614spec/views/projects/hooks/index.html.haml_spec.rb615spec/models/project_pages_metadatum_spec.rb616spec/routing/openid_connect_spec.rb617spec/models/projects/ci_feature_usage_spec.rb618spec/lib/gitlab/database/connection_timer_spec.rb619spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb620spec/lib/backup/file_backup_error_spec.rb621spec/lib/gitlab/import_export/avatar_saver_spec.rb622spec/lib/gitlab/ci/build/releaser_spec.rb623spec/graphql/mutations/user_callouts/create_spec.rb624spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb625spec/graphql/types/availability_enum_spec.rb626spec/models/user_agent_detail_spec.rb627spec/lib/sidebars/groups/menus/invite_team_members_menu_spec.rb628spec/lib/gitlab/ci/matching/build_matcher_spec.rb629spec/lib/gitlab/ci/build/artifacts/path_spec.rb630spec/scripts/changed-feature-flags_spec.rb631spec/services/ci/disable_user_pipeline_schedules_service_spec.rb632spec/policies/identity_provider_policy_spec.rb633spec/services/users/dismiss_callout_service_spec.rb634spec/services/metrics/users_starred_dashboards/delete_service_spec.rb635spec/models/user_mentions/merge_request_user_mention_spec.rb636spec/presenters/terraform/modules_presenter_spec.rb637spec/validators/nested_attributes_duplicates_validator_spec.rb638spec/models/programming_language_spec.rb639spec/lib/gitlab/ci/status/failed_spec.rb640spec/lib/gitlab/auth/atlassian/user_spec.rb641spec/models/term_agreement_spec.rb642spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb643spec/services/issuable/process_assignees_spec.rb644spec/lib/gitlab/uuid_spec.rb645spec/services/clusters/aws/verify_provision_status_service_spec.rb646spec/tooling/danger/specs_spec.rb647spec/lib/gitlab/import_export/version_checker_spec.rb648spec/lib/gitlab/kubernetes/ingress_spec.rb649spec/views/dashboard/projects/index.html.haml_spec.rb650spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb651spec/lib/gitlab/pagination/keyset/in_operator_optimization/column_data_spec.rb652spec/lib/gitlab/chat_name_token_spec.rb653spec/views/projects/issues/_related_branches.html.haml_spec.rb654spec/lib/gitlab/ci/artifacts/metrics_spec.rb655spec/graphql/mutations/customer_relations/organizations/update_spec.rb656spec/lib/gitlab/view/presenter/simple_spec.rb657spec/graphql/resolvers/echo_resolver_spec.rb658spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb659spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb660spec/graphql/types/release_assets_type_spec.rb661spec/finders/packages/group_or_project_package_finder_spec.rb662spec/rubocop/cop/migration/add_concurrent_index_spec.rb663spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb664spec/services/user_preferences/update_service_spec.rb665spec/graphql/types/ci/config/job_type_spec.rb666spec/rubocop/cop/scalability/file_uploads_spec.rb667spec/presenters/prometheus_alert_presenter_spec.rb668spec/lib/api/entities/snippets/repository_storage_move_spec.rb669spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb670spec/graphql/types/user_callout_feature_name_enum_spec.rb671spec/lib/gitlab/database/migrations/observers/query_log_spec.rb672spec/lib/gitlab/language_data_spec.rb673spec/lib/sidebars/concerns/container_with_html_options_spec.rb674spec/lib/backup/pages_spec.rb675spec/helpers/terms_helper_spec.rb676spec/lib/gitlab/github_import/representation/lfs_object_spec.rb677spec/models/ci/trigger_request_spec.rb678spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb679spec/lib/gitlab/github_import/representation_spec.rb680spec/lib/gitlab/data_builder/alert_spec.rb681spec/lib/api/entities/nuget/dependency_spec.rb682spec/lib/bitbucket/representation/user_spec.rb683spec/serializers/codequality_reports_comparer_entity_spec.rb684spec/serializers/import/gitlab_provider_repo_entity_spec.rbKnapsack report generator started!685/builds/gitlab-org/gitlab/spec/support/shared_examples/quick_actions/issuable/issuable_quick_actions_shared_examples.rb:4: warning: already initialized constant QuickAction686/builds/gitlab-org/gitlab/spec/support/shared_examples/quick_actions/issuable/issuable_quick_actions_shared_examples.rb:4: warning: previous definition of QuickAction was here687Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}688==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.036988165 seconds...689Test environment set up in 0.795799992 seconds690MergeRequestDiff691 validations692 is expected not to validate that :diff_type is case-sensitively unique within the scope of :merge_request_id693 checks sha format of base_commit_sha, head_commit_sha and start_commit_sha694 does not validate uniqueness by default695 when merge request diff is a merge_head type696 is valid697 when merge_head diff exists698 validates uniqueness699 create new record700 is expected to be valid701 is expected to be persisted702 is expected to eq 29703 is expected to eq 20704 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"705 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"706 is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"707 when diff_type is merge_head708 is expected to be valid709 is expected to be persisted710 is expected to eq 30711 is expected to eq 20712 is expected to eq "3f336a5fc1c105d35a777df6129749b6e3a2bf3b"713 is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"714 is expected to eq "0b4bc9a49b562e85de7cc9e834518ea6828729b9"715 .by_commit_sha716 with sha contained in717 returns merge request diffs718 with sha not contained in719 returns empty result720 .ids_for_external_storage_migration721 external diffs are disabled722 is expected to be empty723 external diffs are misconfigured724 is expected to be empty725 external diffs are enabled unconditionally726 is expected to contain exactly 17, 18, 20, 21, 22, 23, and 19727 ignores diffs with 0 files728 external diffs are enabled for outdated diffs729 returns records for outdated merge request versions730 with limit731 respects the limit732 #update_external_diff_store733 change_stored_externally: false, change_external_diff: false734 is expected not to receive update_column(:external_diff_store, 1) 0 times735 change_stored_externally: false, change_external_diff: true736 is expected to receive update_column(:external_diff_store, 1) 1 time737 change_stored_externally: true, change_external_diff: false738 is expected to receive update_column(:external_diff_store, 1) 1 time739 change_stored_externally: true, change_external_diff: true740 is expected to receive update_column(:external_diff_store, 1) 1 time741 #migrate_files_to_external_storage!742 converts from in-database to external file storage743 migrates a nil diff file744 safely handles a transaction error when migrating to external storage745 converts from in-database to external object storage746 does nothing with an external diff747 does nothing if external diffs are disabled748 diff adds an empty file749 migrates the diff to object storage750 #migrate_files_to_database!751/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil752 converts from external to in-database storage753 does nothing with an in-database diff754 does nothing with an empty diff755 #latest?756 is expected to be latest757 is expected not to be latest758 internal diffs configured759 when it was not cleaned by the system760 returns persisted diffs761 when diff was cleaned by the system762 returns diffs from repository if can compare with current diff refs763 returns persisted diffs if cannot compare with diff refs764 returns persisted diffs if diff refs does not exist765 #diffs_in_batch766 when no persisted files available767 behaves like fetching full diffs768 returns diffs from repository comparison769 returns a Gitlab::Diff::FileCollection::Compare with full diffs770 returns empty pagination data771 when diff_options include ignore_whitespace_change772 behaves like fetching full diffs773 returns diffs from repository comparison774 returns a Gitlab::Diff::FileCollection::Compare with full diffs775 returns empty pagination data776 when persisted files available777 returns paginated diffs778 sorts diff files directory first779 when diff_options include ignore_whitespace_change780 returns pagination data from MergeRequestDiffBatch781 returns an empty MergeRequestBatch with empty pagination data when the batch is empty782 #diffs783 when no persisted files available784 behaves like fetching full diffs785 returns diffs from repository comparison786 returns a Gitlab::Diff::FileCollection::Compare with full diffs787 when diff_options include ignore_whitespace_change788 behaves like fetching full diffs789 returns diffs from repository comparison790 returns a Gitlab::Diff::FileCollection::Compare with full diffs791 when persisted files available792 returns diffs793 sorts diff files directory first794 #raw_diffs795 when the :ignore_whitespace_change option is set796 creates a new compare object instead of using preprocessed data797 when the raw diffs are empty798 returns an empty DiffCollection799 when the raw diffs exist800 returns the diffs801 when the :paths option is set802 only returns diffs that match the (old path, new path) given803 only serializes diff files found by query804 uses the preprocessed diffs805 #save_diffs806 saves collected state807 saves overflow state808 saves empty state809 persists diff files sorted directory first810 expands collapsed diffs before saving811 saves binary diffs correctly812 with diffs that contain a null byte813 saves diffs correctly814 external diffs on disk always enabled815 when it was not cleaned by the system816 returns persisted diffs817 when diff was cleaned by the system818 returns diffs from repository if can compare with current diff refs819 returns persisted diffs if cannot compare with diff refs820 returns persisted diffs if diff refs does not exist821 #diffs_in_batch822 when no persisted files available823 behaves like fetching full diffs824 returns diffs from repository comparison825 returns a Gitlab::Diff::FileCollection::Compare with full diffs826 returns empty pagination data827 when diff_options include ignore_whitespace_change828 behaves like fetching full diffs829 returns diffs from repository comparison830 returns a Gitlab::Diff::FileCollection::Compare with full diffs831 returns empty pagination data832 when persisted files available833 returns paginated diffs834 sorts diff files directory first835 when diff_options include ignore_whitespace_change836 returns pagination data from MergeRequestDiffBatch837 returns an empty MergeRequestBatch with empty pagination data when the batch is empty838 #diffs839 when no persisted files available840 behaves like fetching full diffs841 returns diffs from repository comparison842 returns a Gitlab::Diff::FileCollection::Compare with full diffs843 when diff_options include ignore_whitespace_change844 behaves like fetching full diffs845 returns diffs from repository comparison846 returns a Gitlab::Diff::FileCollection::Compare with full diffs847 when persisted files available848 returns diffs849 sorts diff files directory first850 #raw_diffs851 when the :ignore_whitespace_change option is set852 creates a new compare object instead of using preprocessed data853 when the raw diffs are empty854 returns an empty DiffCollection855 when the raw diffs exist856 returns the diffs857 when the :paths option is set858 only returns diffs that match the (old path, new path) given859 only serializes diff files found by query860 uses the preprocessed diffs861 #save_diffs862 saves collected state863 saves overflow state864 saves empty state865 persists diff files sorted directory first866 expands collapsed diffs before saving867 saves binary diffs correctly868 with diffs that contain a null byte869 saves diffs correctly870 external diffs in object storage always enabled871 empty diff872 creates an empty diff873 normal diff874 creates a diff in object storage875 diff adding an empty file876 creates a diff in object storage877 exernal diffs enabled for outdated diffs878 stores up-to-date diffs in the database879 stores diffs for recently closed MRs in the database880 stores diffs for recently merged MRs in the database881 stores diffs for old MR versions in external storage882 stores diffs for old closed MRs in external storage883 stores diffs for old merged MRs in external storage884 when it was not cleaned by the system885 returns persisted diffs886 when diff was cleaned by the system887 returns diffs from repository if can compare with current diff refs888 returns persisted diffs if cannot compare with diff refs889 returns persisted diffs if diff refs does not exist890 #diffs_in_batch891 when no persisted files available892 behaves like fetching full diffs893 returns diffs from repository comparison894 returns a Gitlab::Diff::FileCollection::Compare with full diffs895 returns empty pagination data896 when diff_options include ignore_whitespace_change897 behaves like fetching full diffs898 returns diffs from repository comparison899 returns a Gitlab::Diff::FileCollection::Compare with full diffs900 returns empty pagination data901 when persisted files available902 returns paginated diffs903 sorts diff files directory first904 when diff_options include ignore_whitespace_change905 returns pagination data from MergeRequestDiffBatch906 returns an empty MergeRequestBatch with empty pagination data when the batch is empty907 #diffs908 when no persisted files available909 behaves like fetching full diffs910 returns diffs from repository comparison911 returns a Gitlab::Diff::FileCollection::Compare with full diffs912 when diff_options include ignore_whitespace_change913 behaves like fetching full diffs914 returns diffs from repository comparison915 returns a Gitlab::Diff::FileCollection::Compare with full diffs916 when persisted files available917 returns diffs918 sorts diff files directory first919 #raw_diffs920 when the :ignore_whitespace_change option is set921 creates a new compare object instead of using preprocessed data922 when the raw diffs are empty923 returns an empty DiffCollection924 when the raw diffs exist925 returns the diffs926 when the :paths option is set927 only returns diffs that match the (old path, new path) given928 only serializes diff files found by query929 uses the preprocessed diffs930 #save_diffs931 saves collected state932 saves overflow state933 saves empty state934 persists diff files sorted directory first935 expands collapsed diffs before saving936 saves binary diffs correctly937 with diffs that contain a null byte938 saves diffs correctly939 #commit_shas940 returns all commit SHAs using commits from the DB941 with limit attribute942 behaves like limited number of shas943 returns limited number of shas944 with preloaded diff commits945 does not trigger any query946 behaves like limited number of shas947 returns limited number of shas948 #compare_with949 delegates compare to the service950 uses git diff A..B approach by default951 #commits_count952 returns number of commits using serialized commits953 #files_count954 is set by default955 is set to the sentinel value if the actual value exceeds it956 uses the cached count if present957 uses the actual count if nil958 uses the actual count if overflown959 #first_commit960 returns first commit961 #last_commit962 returns last commit963 #includes_any_commits?964 returns false if passed commits do not exist965 returns true if passed commits exists966 processes the passed shas in batches967 number of existing commits is greater than batch size968 performs a separate request for each batch969 #modified_paths970 returns affected file paths971 when fallback_on_overflow is true972 when the merge_request_diff is overflowed973 returns file paths via project.repository#diff_stats974 when the merge_request_diff is not overflowed975 returns expect file paths withoout called #modified_paths_for_overflowed_mr976 #opening_external_diff977 external diffs disabled978 is expected not to be exists979 yields nil980 external diffs enabled981 is expected to be exists982 yields an open file983 is re-entrant984 #lines_count985 returns sum of all changed lines count in diff files986 #commits987 returns a CommitCollection whose container points to the target project988 returns a non-empty CommitCollection989 .latest_diff_for_merge_requests990 loads the latest merge_request_diff record for the given merge requests991 loads nothing if the merge request has no diff record992 loads nothing if nil was passed as merge_request993Namespace994 associations995 is expected to have many projects996 is expected to have many project_statistics997 is expected to belong to parent required: false998 is expected to have many children999 is expected to have one root_storage_statistics1000 is expected to have one aggregation_schedule1001 is expected to have one namespace_settings1002 is expected to have many custom_emoji1003 is expected to have one package_setting_relation1004 is expected to have one onboarding_progress1005 is expected to have one admin_note1006 is expected to have many pending_builds1007 #children1008 excludes project namespaces1009 validations1010 is expected to validate that :name cannot be empty/falsy1011 is expected to validate that the length of :name is at most 2551012 is expected to validate that the length of :description is at most 2551013 is expected to validate that :path cannot be empty/falsy1014 is expected to validate that the length of :path is at most 2551015 is expected to validate that :owner cannot be empty/falsy1016 is expected to validate that :max_artifacts_size looks like an integer greater than 01017 validating the parent of a namespace1018 parent_type: nil, child_type: user_sti_name, error: nil1019 validates namespace parent1020 parent_type: nil, child_type: group_sti_name, error: nil1021 validates namespace parent1022 parent_type: nil, child_type: project_sti_name, error: "must be set for a project namespace"1023 validates namespace parent1024 parent_type: project_sti_name, child_type: user_sti_name, error: "project namespace cannot be the parent of another namespace"1025 validates namespace parent1026 parent_type: project_sti_name, child_type: group_sti_name, error: "project namespace cannot be the parent of another namespace"1027 validates namespace parent1028 parent_type: project_sti_name, child_type: project_sti_name, error: "project namespace cannot be the parent of another namespace"1029 validates namespace parent1030 parent_type: group_sti_name, child_type: user_sti_name, error: "cannot be used for user namespace"1031 validates namespace parent1032 parent_type: group_sti_name, child_type: group_sti_name, error: nil1033 validates namespace parent1034 parent_type: group_sti_name, child_type: project_sti_name, error: nil1035 validates namespace parent1036 parent_type: user_sti_name, child_type: user_sti_name, error: "cannot be used for user namespace"1037 validates namespace parent1038 parent_type: user_sti_name, child_type: group_sti_name, error: "user namespace cannot be the parent of another namespace"1039 validates namespace parent1040 parent_type: user_sti_name, child_type: project_sti_name, error: nil1041 validates namespace parent1042 #nesting_level_allowed1043 for a group1044 does not allow too deep nesting1045 behaves like validations called by different namespace types1046 namespace_type: :namespace, call_validation: true1047 conditionally runs given validation1048 namespace_type: :group, call_validation: true1049 conditionally runs given validation1050 namespace_type: :user_namespace, call_validation: true1051 conditionally runs given validation1052 namespace_type: :project_namespace, call_validation: false1053 conditionally runs given validation1054 reserved path validation1055 nested group1056 is expected not to be valid1057 rejects nested paths1058 is case insensitive1059 is expected not to be valid1060 top-level group1061 is expected to be valid1062 path validator1063 namespace_type: project_sti_name, path: "j", valid: true1064 validates namespace path1065 namespace_type: project_sti_name, path: "path.", valid: true1066 validates namespace path1067 namespace_type: project_sti_name, path: "blob", valid: false1068 validates namespace path1069 namespace_type: group_sti_name, path: "j", valid: false1070 validates namespace path1071 namespace_type: group_sti_name, path: "path.", valid: false1072 validates namespace path1073 namespace_type: group_sti_name, path: "blob", valid: true1074 validates namespace path1075 namespace_type: user_sti_name, path: "j", valid: false1076 validates namespace path1077 namespace_type: user_sti_name, path: "path.", valid: false1078 validates namespace path1079 namespace_type: user_sti_name, path: "blob", valid: true1080 validates namespace path1081 1 char path length1082 with user namespace1083 does not allow to update path to single char1084 allows updating other attributes for existing record1085 with project namespace1086 allows to update path to single char1087 handling STI1088 creating a Group1089 is the correct type of namespace1090 creating a ProjectNamespace1091 is the correct type of namespace1092 creating a UserNamespace1093 is the correct type of namespace1094 unable to create a Namespace with nil type1095 raises ActiveRecord::NotNullViolation1096 creating an unknown Namespace type1097 creates a default Namespace1098 scopes1099 .by_parent1100 includes correct namespaces1101 .filter_by_path1102 includes correct namespaces1103 filters case-insensitive1104 .sorted_by_similarity_and_parent_id_desc1105 returns exact matches and top level groups first1106 .without_project_namespaces1107 excludes project namespaces1108 delegate1109 is expected to delegate #owner_name to the #owner object passing arguments [{:allow_nil=>true}] as #name1110 is expected to delegate #avatar_url to the #owner object passing arguments [{:allow_nil=>true}]1111 Respond to1112 is expected to respond to #human_name1113 is expected to respond to #to_param1114 is expected to respond to #has_parent?1115 inclusions1116 is expected to includes the Gitlab::VisibilityLevel module1117 is expected to includes the Namespaces::Traversal::Recursive module1118 is expected to includes the Namespaces::Traversal::Linear module1119 is expected to includes the Namespaces::Traversal::RecursiveScopes module1120 is expected to includes the Namespaces::Traversal::LinearScopes module1121 traversal scopes1122 recursive1123 behaves like namespace traversal scopes1124 .as_ids1125 is expected to contain exactly 609 and 6121126 .order_by_depth1127 ascending1128 is expected to eq [#<Group id:611 @group13/group14/group15>, #<Group id:610 @group13/group14>, #<Group id:609 @group13>]1129 descending1130 is expected to eq [#<Group id:609 @group13>, #<Group id:610 @group13/group14>, #<Group id:611 @group13/group14/group15>]1131 .normal_select1132 is expected to eq ["id", "name", "path", "owner_id", "created_at", "updated_at", "type", "description", "avatar", "memb...d", "shared_runners_enabled", "allow_descendants_override_disabled_shared_runners", "traversal_ids"]1133 .roots1134 use_traversal_ids_roots feature flag is true1135 not make recursive queries1136 behaves like .roots1137 with only sub-groups1138 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1139 with only root groups1140 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1141 with all groups1142 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1143 use_traversal_ids_roots feature flag is false1144 make recursive queries1145 behaves like .roots1146 with only sub-groups1147 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1148 with only root groups1149 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1150 with all groups1151 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1152 .self_and_ancestors1153 use_traversal_ids_ancestor_scopes feature flag is true1154 not make recursive queries1155 behaves like .self_and_ancestors1156 is expected to contain exactly #<Group id:609 @group13>, #<Group id:610 @group13/group14>, #<Group id:612 @group16>, and #<Group id:613 @group16/group17>1157 when include_self is false1158 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1159 when hierarchy_order is ascending1160 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:613 @group16/group17>, #<Group id:609 @group13>, and #<Group id:612 @group16>1161 is expected to contain exactly #<Group id:610 @group13/group14> and #<Group id:613 @group16/group17>1162 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1163 when hierarchy_order is descending1164 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:613 @group16/group17>, #<Group id:609 @group13>, and #<Group id:612 @group16>1165 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1166 is expected to contain exactly #<Group id:610 @group13/group14> and #<Group id:613 @group16/group17>1167 with offset and limit1168 is expected to contain exactly #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1169 use_traversal_ids_ancestor_scopes feature flag is false1170 make recursive queries1171 behaves like .self_and_ancestors1172 is expected to contain exactly #<Group id:609 @group13>, #<Group id:610 @group13/group14>, #<Group id:612 @group16>, and #<Group id:613 @group16/group17>1173 when include_self is false1174 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1175 when hierarchy_order is ascending1176 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:613 @group16/group17>, #<Group id:609 @group13>, and #<Group id:612 @group16>1177 is expected to contain exactly #<Group id:610 @group13/group14> and #<Group id:613 @group16/group17>1178 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1179 when hierarchy_order is descending1180 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:613 @group16/group17>, #<Group id:609 @group13>, and #<Group id:612 @group16>1181 is expected to contain exactly #<Group id:609 @group13> and #<Group id:612 @group16>1182 is expected to contain exactly #<Group id:610 @group13/group14> and #<Group id:613 @group16/group17>1183 with offset and limit1184 is expected to contain exactly #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1185 .self_and_ancestor_ids1186 use_traversal_ids_ancestor_scopes feature flag is true1187 make recursive queries1188 behaves like .self_and_ancestor_ids1189 is expected to contain exactly 609, 610, 612, and 6131190 when include_self is false1191 is expected to contain exactly 609 and 6121192 with offset and limit1193 is expected to contain exactly 612, 613, and 6141194 use_traversal_ids_ancestor_scopes feature flag is false1195 make recursive queries1196 behaves like .self_and_ancestor_ids1197 is expected to contain exactly 609, 610, 612, and 6131198 when include_self is false1199 is expected to contain exactly 609 and 6121200 with offset and limit1201 is expected to contain exactly 612, 613, and 6141202 .self_and_descendants1203 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:611 @group13/group14/group15>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1204 with duplicate descendants1205 is expected to contain exactly #<Group id:609 @group13>, #<Group id:610 @group13/group14>, #<Group id:611 @group13/group14/group15>, #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1206 when include_self is false1207 is expected to contain exactly #<Group id:611 @group13/group14/group15> and #<Group id:614 @group16/group17/group18>1208 with offset and limit1209 is expected to contain exactly #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1210 with traversal_ids_btree feature flag disabled1211 is expected to contain exactly #<Group id:610 @group13/group14>, #<Group id:611 @group13/group14/group15>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1212 with duplicate descendants1213 is expected to contain exactly #<Group id:609 @group13>, #<Group id:610 @group13/group14>, #<Group id:611 @group13/group14/group15>, #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1214 when include_self is false1215 is expected to contain exactly #<Group id:611 @group13/group14/group15> and #<Group id:614 @group16/group17/group18>1216 with offset and limit1217 is expected to contain exactly #<Group id:612 @group16>, #<Group id:613 @group16/group17>, and #<Group id:614 @group16/group17/group18>1218 .self_and_descendant_ids1219 is expected to contain exactly 610, 611, 613, and 6141220 when include_self is false1221 is expected to contain exactly 611 and 6141222 with offset and limit1223 is expected to contain exactly 612, 613, and 6141224 with traversal_ids_btree feature flag disabled1225 is expected to contain exactly 610, 611, 613, and 6141226 when include_self is false1227 is expected to contain exactly 611 and 6141228 with offset and limit1229 is expected to contain exactly 612, 613, and 6141230 linear1231 behaves like namespace traversal scopes1232 .as_ids1233 is expected to contain exactly 669 and 6721234 .order_by_depth1235 ascending1236 is expected to eq [#<Group id:671 @group19/group20/group21>, #<Group id:670 @group19/group20>, #<Group id:669 @group19>]1237 descending1238 is expected to eq [#<Group id:669 @group19>, #<Group id:670 @group19/group20>, #<Group id:671 @group19/group20/group21>]1239 .normal_select1240 is expected to eq ["id", "name", "path", "owner_id", "created_at", "updated_at", "type", "description", "avatar", "memb...d", "shared_runners_enabled", "allow_descendants_override_disabled_shared_runners", "traversal_ids"]1241 .roots1242 use_traversal_ids_roots feature flag is true1243 not make recursive queries1244 behaves like .roots1245 with only sub-groups1246 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1247 with only root groups1248 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1249 with all groups1250 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1251 use_traversal_ids_roots feature flag is false1252 make recursive queries1253 behaves like .roots1254 with only sub-groups1255 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1256 with only root groups1257 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1258 with all groups1259 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1260 .self_and_ancestors1261 use_traversal_ids_ancestor_scopes feature flag is true1262 not make recursive queries1263 behaves like .self_and_ancestors1264 is expected to contain exactly #<Group id:669 @group19>, #<Group id:670 @group19/group20>, #<Group id:672 @group22>, and #<Group id:673 @group22/group23>1265 when include_self is false1266 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1267 when hierarchy_order is ascending1268 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:673 @group22/group23>, #<Group id:669 @group19>, and #<Group id:672 @group22>1269 is expected to contain exactly #<Group id:670 @group19/group20> and #<Group id:673 @group22/group23>1270 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1271 when hierarchy_order is descending1272 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:673 @group22/group23>, #<Group id:669 @group19>, and #<Group id:672 @group22>1273 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1274 is expected to contain exactly #<Group id:670 @group19/group20> and #<Group id:673 @group22/group23>1275 with offset and limit1276 is expected to contain exactly #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1277 use_traversal_ids_ancestor_scopes feature flag is false1278 make recursive queries1279 behaves like .self_and_ancestors1280 is expected to contain exactly #<Group id:669 @group19>, #<Group id:670 @group19/group20>, #<Group id:672 @group22>, and #<Group id:673 @group22/group23>1281 when include_self is false1282 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1283 when hierarchy_order is ascending1284 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:673 @group22/group23>, #<Group id:669 @group19>, and #<Group id:672 @group22>1285 is expected to contain exactly #<Group id:670 @group19/group20> and #<Group id:673 @group22/group23>1286 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1287 when hierarchy_order is descending1288 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:673 @group22/group23>, #<Group id:669 @group19>, and #<Group id:672 @group22>1289 is expected to contain exactly #<Group id:669 @group19> and #<Group id:672 @group22>1290 is expected to contain exactly #<Group id:670 @group19/group20> and #<Group id:673 @group22/group23>1291 with offset and limit1292 is expected to contain exactly #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1293 .self_and_ancestor_ids1294 use_traversal_ids_ancestor_scopes feature flag is true1295 make recursive queries1296 behaves like .self_and_ancestor_ids1297 is expected to contain exactly 669, 670, 672, and 6731298 when include_self is false1299 is expected to contain exactly 669 and 6721300 with offset and limit1301 is expected to contain exactly 672, 673, and 6741302 use_traversal_ids_ancestor_scopes feature flag is false1303 make recursive queries1304 behaves like .self_and_ancestor_ids1305 is expected to contain exactly 669, 670, 672, and 6731306 when include_self is false1307 is expected to contain exactly 669 and 6721308 with offset and limit1309 is expected to contain exactly 672, 673, and 6741310 .self_and_descendants1311 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:671 @group19/group20/group21>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1312 with duplicate descendants1313 is expected to contain exactly #<Group id:669 @group19>, #<Group id:670 @group19/group20>, #<Group id:671 @group19/group20/group21>, #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1314 when include_self is false1315 is expected to contain exactly #<Group id:671 @group19/group20/group21> and #<Group id:674 @group22/group23/group24>1316 with offset and limit1317 is expected to contain exactly #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1318 with traversal_ids_btree feature flag disabled1319 is expected to contain exactly #<Group id:670 @group19/group20>, #<Group id:671 @group19/group20/group21>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1320 with duplicate descendants1321 is expected to contain exactly #<Group id:669 @group19>, #<Group id:670 @group19/group20>, #<Group id:671 @group19/group20/group21>, #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1322 when include_self is false1323 is expected to contain exactly #<Group id:671 @group19/group20/group21> and #<Group id:674 @group22/group23/group24>1324 with offset and limit1325 is expected to contain exactly #<Group id:672 @group22>, #<Group id:673 @group22/group23>, and #<Group id:674 @group22/group23/group24>1326 .self_and_descendant_ids1327 is expected to contain exactly 670, 671, 673, and 6741328 when include_self is false1329 is expected to contain exactly 671 and 6741330 with offset and limit1331 is expected to contain exactly 672, 673, and 6741332 with traversal_ids_btree feature flag disabled1333 is expected to contain exactly 670, 671, 673, and 6741334 when include_self is false1335 is expected to contain exactly 671 and 6741336 with offset and limit1337 is expected to contain exactly 672, 673, and 6741338 traversal_ids on create1339 default traversal_ids1340 is expected to eq [729]1341 after_commit :expire_child_caches1342 expires the child caches when updated1343 expires on name changes1344 expires on path changes1345 expires on parent changes1346 doesn't expire on other field changes1347 #owner_required?1348 is expected to be falsey1349 is expected to be falsey1350 is expected to be truthy1351 #visibility_level_field1352 is expected to eq :visibility_level1353 #to_param1354 is expected to eq "namespace483"1355 #human_name1356 is expected to eq "Sidney Jones493"1357 #any_project_has_container_registry_tags?1358 without tags1359 is expected to be falsey1360 with tags1361 finds tags1362 does not cause N+1 query in fetching registries1363 #first_project_with_container_registry_tags1364 returns the project1365 returns no project1366 .search1367 returns namespaces with a matching name1368 returns namespaces with a partially matching name1369 returns namespaces with a matching name regardless of the casing1370 returns namespaces with a matching path1371 returns namespaces with a partially matching path1372 returns namespaces with a matching path regardless of the casing1373 returns namespaces with a matching route path1374 returns namespaces with a partially matching route path1375 returns namespaces with a matching route path regardless of the casing1376 with project namespaces1377 does not return project namespace1378 does not return project namespace when including parents1379 .with_statistics1380 sums all project storage counters in the namespace1381 correctly handles namespaces without projects1382 .find_by_pages_host1383 finds namespace by GitLab Pages host and is case-insensitive1384 returns no result if the provided host is not subdomain of the Pages host1385 when there is non-top-level group with searched name1386 ignores this group1387 finds right top level group1388 .top_most1389 only contains root namespaces1390 #move_dir1391 legacy storage1392 raises error when directory exists1393 moves dir if path changed1394 behaves like namespace restrictions1395 when any project has container images1396 raises an error about not movable project1397 when #write_projects_repository_config raises an error1398 in test environment1399 raises an exception1400 in production environment1401 does not cancel later callbacks1402 project is without repository storage feature1403 behaves like move_dir without repository storage feature1404 calls namespace service1405 behaves like move_dir without repository storage feature1406 calls namespace service1407 project has repository storage feature1408 behaves like move_dir with repository storage feature1409 does not call namespace service1410 behaves like move_dir with repository storage feature1411 does not call namespace service1412 with subgroups1413 renaming child1414 when no projects have pages deployed1415 moves the repository and uploads1416 when the project has pages deployed1417 correctly moves the repository, uploads and pages1418 performs the move async of pages async1419 renaming parent1420 when no projects have pages deployed1421 moves the repository and uploads1422 when the project has pages deployed1423 correctly moves the repository, uploads and pages1424 performs the move async of pages async1425 moving from one parent to another1426 when no projects have pages deployed1427 moves the repository and uploads1428 when the project has pages deployed1429 correctly moves the repository, uploads and pages1430 performs the move async of pages async1431 moving from having a parent to root1432 when no projects have pages deployed1433 moves the repository and uploads1434 when the project has pages deployed1435 correctly moves the repository, uploads and pages1436 performs the move async of pages async1437 moving from root to having a parent1438 when no projects have pages deployed1439 moves the repository and uploads1440 when the project has pages deployed1441 correctly moves the repository, uploads and pages1442 performs the move async of pages async1443 hashed storage1444 repository directory remains unchanged if path changed1445 behaves like namespace restrictions1446 when any project has container images1447 raises an error about not movable project1448 for each project inside the namespace1449 updates project full path in .git/config1450 updates the project storage location1451 #rm_dir callback1452 legacy storage1453 renames its dirs when deleted1454 schedules the namespace for deletion1455 in sub-groups1456 renames its dirs when deleted1457 schedules the namespace for deletion1458 hashed storage1459 has no repositories base directories to remove1460 .find_by_path_or_name1461 is expected to eq #<Namespaces::UserNamespace id: 973, name: "Sidney Jones592", path: "woW", owner_id: 551, created_at:...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>1462 is expected to eq #<Namespaces::UserNamespace id: 975, name: "Sidney Jones594", path: "woW", owner_id: 553, created_at:...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>1463 is expected to eq nil1464 .clean_path1465 cleans the path and makes sure it's available1466 .clean_name1467 when the name complies with the group name regex1468 returns the name as is1469 when the name does not comply with the group name regex1470 sanitizes the name by replacing all invalid char sequences with a space1471 #default_branch_protection1472 for a namespace1473 returns the instance level setting1474 for a group1475 that has not altered the default value1476 returns the instance level setting1477 that has altered the default value1478 returns the group level setting1479 #use_traversal_ids?1480 when use_traversal_ids feature flag is true1481 is expected to eq true1482 behaves like disabled feature flag when traversal_ids is blank1483 is expected to eq false1484 when use_traversal_ids feature flag is false1485 is expected to eq false1486 #use_traversal_ids_for_root_ancestor?1487 when use_traversal_ids_for_root_ancestor feature flag is true1488 is expected to eq true1489 behaves like disabled feature flag when traversal_ids is blank1490 is expected to eq false1491 when use_traversal_ids_for_root_ancestor feature flag is false1492 is expected to eq false1493 #use_traversal_ids_for_ancestors?1494 when use_traversal_ids_for_ancestors? feature flag is true1495 is expected to eq true1496 behaves like disabled feature flag when traversal_ids is blank1497 is expected to eq false1498 when use_traversal_ids_for_ancestors? feature flag is false1499 is expected to eq false1500 when use_traversal_ids? feature flag is false1501 is expected to eq false1502 #use_traversal_ids_for_ancestors_upto?1503 when use_traversal_ids_for_ancestors_upto feature flag is true1504 is expected to eq true1505 behaves like disabled feature flag when traversal_ids is blank1506 is expected to eq false1507 when use_traversal_ids_for_ancestors_upto feature flag is false1508 is expected to eq false1509 when use_traversal_ids? feature flag is false1510 is expected to eq false1511 #users_with_descendants1512 returns member users on every nest level without duplication1513 #user_ids_for_project_authorizations1514 returns the user IDs for which to refresh authorizations1515 #all_projects1516 when recursive approach is disabled1517 when namespace is a group1518 is expected to contain exactly #<Project id:329 group51/group52/project329>> and #<Project id:328 group51/project328>>1519 is expected to contain exactly #<Project id:329 group51/group52/project329>>1520 when namespace is a user namespace1521 is expected to contain exactly #<Project id:331 namespace571/project331>>1522 with use_traversal_ids feature flag enabled1523 calls self_and_descendant_ids1524 when namespace is a group1525 is expected to contain exactly #<Project id:334 group54/group55/project334>> and #<Project id:333 group54/project333>>1526 is expected to contain exactly #<Project id:334 group54/group55/project334>>1527 when namespace is a user namespace1528 is expected to contain exactly #<Project id:336 namespace576/project336>>1529 with use_traversal_ids feature flag disabled1530 when namespace is a group1531 is expected to contain exactly #<Project id:339 group56/group57/project339>> and #<Project id:338 group56/project338>>1532 is expected to contain exactly #<Project id:339 group56/group57/project339>>1533 when namespace is a user namespace1534 is expected to contain exactly #<Project id:341 namespace580/project341>>1535 refreshing project access on updating share_with_group_lock1536 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations1537 updates authorizations leading to users from shared groups losing access1538 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations1539 when the feature flag `specialized_worker_for_group_lock_update_auth_recalculation` is disabled1540 updates authorizations leading to users from shared groups losing access1541 updates the authorizations in a non-blocking manner1542 #share_with_group_lock with subgroups1543 when creating a subgroup1544 under a parent with "Share with group lock" enabled1545 enables "Share with group lock" on the subgroup1546 under a parent with "Share with group lock" disabled1547 does not enable "Share with group lock" on the subgroup1548 when enabling the parent group "Share with group lock"1549 the subgroup "Share with group lock" becomes enabled1550 when disabling the parent group "Share with group lock" (which was already enabled)1551 and the subgroup "Share with group lock" is enabled1552 the subgroup "Share with group lock" does not change1553 but the subgroup "Share with group lock" is disabled1554 the subgroup "Share with group lock" does not change1555 when a group is transferred into a root group1556 when the root group "Share with group lock" is enabled1557 when the subgroup "Share with group lock" is enabled1558 the subgroup "Share with group lock" does not change1559 when the subgroup "Share with group lock" is disabled1560 the subgroup "Share with group lock" becomes enabled1561 when the root group "Share with group lock" is disabled1562 when the subgroup "Share with group lock" is enabled1563 the subgroup "Share with group lock" does not change1564 when the subgroup "Share with group lock" is disabled1565 the subgroup "Share with group lock" does not change1566 #find_fork_of?1567 knows if there is a direct fork in the namespace1568 knows when there is as fork-of-fork in the namespace1569 with request store enabled1570 only queries once1571 #root_ancestor1572 with persisted root group1573 returns root_ancestor for root group without a query1574 returns root_ancestor for nested group with a single query1575 returns the top most ancestor1576 with not persisted root group1577 returns root_ancestor for root group without a query1578 returns the top most ancestor1579 #full_path_before_last_save1580 when the group has no parent1581 returns the path before last save1582 when a parent is assigned to a group with no previous parent1583 returns the path before last save1584 when a parent is removed from the group1585 returns the parent full path1586 when changing parents1587 returns the previous parent full path1588 #auto_devops_enabled1589 with users1590 when auto devops is explicitly enabled1591 is expected to eq true1592 when auto devops is explicitly disabled1593 is expected to eq false1594 #user_namespace?1595 when type is a user1596 is expected to be truthy1597 when type is a group1598 is expected to be falsy1599 #aggregation_scheduled?1600 with an aggregation scheduled association1601 is expected to be truthy1602 without an aggregation scheduled association1603 is expected to be falsy1604 #emails_disabled?1605 when not a subgroup1606 returns false1607 returns true1608 does not query the db when there is no parent group1609 when a subgroup1610 returns false1611 when ancestor emails are disabled1612 returns true1613 #pages_virtual_domain1614 returns the virual domain1615 #any_project_with_pages_deployed?1616 returns true if any project nested under the group has pages deployed1617 #has_parent?1618 returns true when the group has a parent1619 returns true when the group has an unsaved parent1620 returns false when the group has no parent1621 #closest_setting1622 when setting is of non-boolean type1623 root_setting: 100, child_setting: 200, result: 2001624 behaves like fetching closest setting1625 returns closest non-nil value1626 root_setting: 100, child_setting: nil, result: 1001627 behaves like fetching closest setting1628 returns closest non-nil value1629 root_setting: nil, child_setting: nil, result: nil1630 behaves like fetching closest setting1631 returns closest non-nil value1632 when setting is of boolean type1633 root_setting: true, child_setting: false, result: false1634 behaves like fetching closest setting1635 returns closest non-nil value1636 root_setting: true, child_setting: nil, result: true1637 behaves like fetching closest setting1638 returns closest non-nil value1639 root_setting: nil, child_setting: nil, result: nil1640 behaves like fetching closest setting1641 returns closest non-nil value1642 #paid?1643 returns false for a root namespace with a free plan1644 #shared_runners_setting1645 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, shared_runners_setting: "enabled"1646 returns the result1647 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, shared_runners_setting: "enabled"1648 returns the result1649 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, shared_runners_setting: "disabled_with_override"1650 returns the result1651 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, shared_runners_setting: "disabled_and_unoverridable"1652 returns the result1653 #shared_runners_setting_higher_than?1654 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "enabled", result: false1655 returns the result1656 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_with_override", result: true1657 returns the result1658 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_unoverridable", result: true1659 returns the result1660 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "enabled", result: false1661 returns the result1662 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_with_override", result: false1663 returns the result1664 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_unoverridable", result: true1665 returns the result1666 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "enabled", result: false1667 returns the result1668 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "disabled_with_override", result: false1669 returns the result1670 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "disabled_and_unoverridable", result: false1671 returns the result1672 validation #changing_shared_runners_enabled_is_allowed1673 without a parent1674 is valid1675 with a parent1676 when namespace is a group1677 when parent has shared runners disabled1678 is invalid1679 when parent has shared runners disabled but allows override1680 is valid1681 when parent has shared runners enabled1682 is valid1683 behaves like validations called by different namespace types1684 namespace_type: :namespace, call_validation: true1685 conditionally runs given validation1686 namespace_type: :group, call_validation: true1687 conditionally runs given validation1688 namespace_type: :user_namespace, call_validation: true1689 conditionally runs given validation1690 namespace_type: :project_namespace, call_validation: false1691 conditionally runs given validation1692 validation #changing_allow_descendants_override_disabled_shared_runners_is_allowed1693 when namespace is a group1694 without a parent1695 with shared runners disabled1696 is valid1697 with shared runners enabled1698 is invalid1699 with a parent1700 when parent does not allow shared runners1701 is invalid1702 when parent allows shared runners and setting to true1703 is valid1704 when parent allows shared runners and setting to false1705 is valid1706 behaves like validations called by different namespace types1707 namespace_type: :namespace, call_validation: true1708 conditionally runs given validation1709 namespace_type: :group, call_validation: true1710 conditionally runs given validation1711 namespace_type: :user_namespace, call_validation: true1712 conditionally runs given validation1713 namespace_type: :project_namespace, call_validation: false1714 conditionally runs given validation1715 #root?1716 when is subgroup1717 returns false1718 when is root1719 returns true1720 #recent?1721 when created more than 90 days ago1722 is expected to equal false1723 when created less than 90 days ago1724 is expected to equal true1725 behaves like it has loose foreign keys1726 has at least one loose foreign key definition1727 has the deletion trigger present1728 records record deletions1729 cleans up record deletions1730 Namespaces::SyncEvent1731 when creating the namespace1732 creates a namespaces_sync_event record1733 enqueues ProcessSyncEventsWorker1734 when updating namespace parent_id1735 creates a namespaces_sync_event record1736 enqueues ProcessSyncEventsWorker1737 when updating namespace other attribute1738 creates a namespaces_sync_event record1739 in the same transaction1740 when updating different parent_id1741 creates two namespaces_sync_event records1742 when updating the same parent_id1743 creates one namespaces_sync_event record1744Issues::UpdateService1745 execute1746 valid params1747 updates the issue with the given params1748 updates issue milestone when passing `milestone` param1749 refreshes the number of open issues when the issue is made confidential1750 enqueues ConfidentialIssueWorker when an issue is made confidential1751 does not enqueue ConfidentialIssueWorker when an issue is made non confidential1752 updates open issue counter for assignees when issue is reassigned1753 does not rebalance even if needed if the flag is disabled1754 rebalances if needed if the flag is enabled for the project1755 rebalances if needed on the left1756 rebalances if needed on the right1757 verifies the number of queries1758 when sentry identifier is given1759 assigns the sentry error1760 user is a guest1761 does not assign the sentry error1762 when issue type is not incident1763 behaves like not an incident issue1764 has not incident as issue type1765 has not an incident label1766 when confidentiality is changed1767 behaves like does not track incident management event1768 does not track the event1769 when issue type is incident1770 does not add an incident label1771 behaves like incident issue1772 has incident as issue type1773 when confidentiality is changed1774 behaves like an incident management tracked event1775 .track_event1776 tracks the event using redis1777 changing issue_type1778 from issue to incident1779 adds a `incident` label if one does not exist1780 creates system note about issue type1781 behaves like incident issue1782 has incident as issue type1783 for an issue with multiple labels1784 does not add an `incident` label if one already exist1785 filtering the incident label1786 creates and add a incident label id to add_label_ids1787 from incident to issue1788 changed from an incident to an issue type1789 for an incident with multiple labels1790 removes an `incident` label if one exists on the incident1791 filtering the incident label1792 adds an incident label id to remove_label_ids for it to be removed1793 from issue to restricted issue types1794 without sufficient permissions1795 does nothing to the labels1796 when changing relative position1797 sorts issues as specified by parameters1798 when block_issue_positioning flag is enabled1799 raises error1800 when moving issue between issues from different projects1801 sorts issues as specified by parameters1802 when current user cannot admin issues in the project1803 filters out params that cannot be set without the :admin_issue permission1804 with background jobs processed1805 sends email to user2 about assign of new issue and email to user3 about issue unassignment1806 creates system note about issue reassign1807 creates a resource label event1808 creates system note about title change1809 creates system note about discussion lock1810 after_save callback to store_mentions1811 when mentionable attributes change1812 saves mentions1813 when mentionable attributes do not change1814 does not call store_mentions1815 when save fails1816 does not call store_mentions1817 when description changed1818 creates system note about description change1819 when issue turns confidential1820 creates system note about confidentiality change1821 executes confidential issue hooks1822 does not update assignee_id with unauthorized users1823 todos1824 when the title change1825 marks pending todos as done1826 does not create any new todos1827 when the description change1828 marks todos as done1829 creates only 1 new todo1830 when is reassigned1831 marks previous assignee todos as done1832 creates a todo for new assignee1833 when a new assignee added1834 creates only 1 new todo1835 creates a todo for new assignee1836 issue is incident type1837 behaves like an incident management tracked event1838 .track_event1839 tracks the event using redis1840 when the milestone is removed1841 sends notifications for subscribers of changed milestone1842 clears milestone issue counters cache1843 when the milestone is assigned1844 marks todos as done1845 sends notifications for subscribers of changed milestone1846 deletes issue counters cache for the milestone1847 when the milestone is changed1848 deletes issue counters cache for both milestones1849 when the labels change1850 marks todos as done1851 updates updated_at1852 when the issue is relabeled1853 sends notifications for subscribers of newly added labels1854 when issue has the `label` label1855 does not send notifications for existing labels1856 does not send notifications for removed labels1857 when issue has tasks1858 is expected to eq true1859 behaves like updating a single task1860 usage counters1861 update as expected1862 when a task is marked as completed1863 creates system note about task status change1864 when a task is marked as incomplete1865 creates system note about task status change1866 when the task position has been modified1867 raises an exception1868 when the content changes but not task line number1869 creates system note about task status change1870 when tasks are marked as completed1871 does not check for spam on task status change1872 creates system note about task status change1873 when tasks are marked as incomplete1874 creates system note about task status change1875 when tasks position has been modified1876 does not create a system note for the task1877 when a Task list with a completed item is totally replaced1878 does not create a system note referencing the position the old item1879 does not generate a new note at all1880 updating labels1881 when add_label_ids and label_ids are passed1882 replaces the labels with the ones in label_ids and adds those in add_label_ids1883 when remove_label_ids and label_ids are passed1884 replaces the labels with the ones in label_ids and removes those in remove_label_ids1885 when add_label_ids and remove_label_ids are passed1886 adds the passed labels1887 removes the passed labels1888 when same id is passed as add_label_ids and remove_label_ids1889 for a label assigned to an issue1890 removes the label1891 for a label not assigned to an issue1892 does not add the label1893 when duplicate label titles are given1894 assigns the label once1895 updating asssignee_id1896 does not update assignee when assignee_id is invalid1897 unassigns assignee when user id is 01898 does not update assignee_id when user cannot read issue1899 when issuable feature is private1900 does not update with unauthorized assignee when project is Internal1901 does not update with unauthorized assignee when project is Public1902 updating mentions1903 when mentioning a different user1904 in title1905 emails only the newly-mentioned user1906 in description1907 emails only the newly-mentioned user1908 when mentioning a user and a group with access to1909 when group is public1910 behaves like updating attribute with allowed mentions1911 emails group members1912 behaves like updating attribute with allowed mentions1913 emails group members1914 behaves like updating attribute with existing group mention1915 creates todos for only newly mentioned users1916 behaves like updating attribute with existing group mention1917 creates todos for only newly mentioned users1918 when the group is private1919 behaves like updating attribute with allowed mentions1920 emails group members1921 behaves like updating attribute with allowed mentions1922 emails group members1923 behaves like updating attribute with existing group mention1924 creates todos for only newly mentioned users1925 behaves like updating attribute with existing group mention1926 creates todos for only newly mentioned users1927 when mentioning a user and a group without access to1928 when the group is private1929 behaves like updating attribute with not allowed mentions1930 emails mentioned user1931 behaves like updating attribute with not allowed mentions1932 emails mentioned user1933 updating severity1934 on incidents1935 when severity has not been set previously1936 creates a new record1937 behaves like updates the severity1938 has correct value1939 creates a system note1940 triggers webhooks1941 with unsupported severity value1942 behaves like does not change the severity1943 retains the original value1944 does not trigger side-effects1945 with severity value defined but unchanged1946 behaves like does not change the severity1947 retains the original value1948 does not trigger side-effects1949 as guest1950 behaves like does not change the severity1951 retains the original value1952 does not trigger side-effects1953 and also author1954 behaves like does not change the severity1955 retains the original value1956 does not trigger side-effects1957 and also assignee1958 behaves like does not change the severity1959 retains the original value1960 does not trigger side-effects1961 when severity has been set before1962 does not create a new record1963 behaves like updates the severity1964 has correct value1965 creates a system note1966 triggers webhooks1967 with unsupported severity value1968 behaves like updates the severity1969 has correct value1970 creates a system note1971 triggers webhooks1972 with severity value defined but unchanged1973 behaves like does not change the severity1974 retains the original value1975 does not trigger side-effects1976 when issue type is not incident1977 behaves like does not change the severity1978 retains the original value1979 does not trigger side-effects1980 updating escalation status1981 when issue is an incident1982 with an escalation status record1983 behaves like updates the escalation status record1984 has correct value1985 with associated alert1986 syncs the update back to the alert1987 with unsupported status value1988 behaves like does not change the status record1989 retains the original value1990 does not trigger side-effects1991 with status value defined but unchanged1992 behaves like does not change the status record1993 retains the original value1994 does not trigger side-effects1995 without an escalation status record1996 behaves like does not change the status record1997 retains the original value1998 does not trigger side-effects1999 when issue type is not incident2000 behaves like does not change the status record2001 retains the original value2002 does not trigger side-effects2003 duplicate issue2004 invalid canonical_issue_id2005 does not call the duplicate service2006 valid canonical_issue_id2007 calls the duplicate service with both issues2008 move issue to another project2009 valid project2010 calls the move service with the proper issue and project2011 clone an issue2012 valid project2013 calls the move service with the proper issue and project2014 clone an issue with notes2015 valid project2016 calls the move service with the proper issue and project2017 when moving an issue2018 raises an error for invalid move ids within a project2019 raises an error for invalid move ids within a group2020 changing state2021 to reopened2022 executes hooks only once2023 to closed2024 executes hooks only once2025 broadcasting issue assignee updates2026 when feature flag is enabled2027 triggers the GraphQL subscription2028 when assignee is not updated2029 does not trigger the GraphQL subscription2030 when feature flag is disabled2031 does not trigger the GraphQL subscription2032 behaves like issuable record that supports quick actions2033 with labels in command only2034 attaches labels to issuable2035 with labels in params and command2036 attaches all labels to issuable2037 with assignee and milestone in command only2038 assigns and sets milestone to issuable2039Issuable2040 Associations2041 is expected to belong to project required: false2042 is expected to belong to author required: false2043 is expected to have many notes dependent => destroy2044 is expected to have many todos2045 is expected to have many labels2046 is expected to have many note_authors through notes2047 Notes2048 indicates if the notes have their authors loaded2049 Included modules2050 is expected to includes the Awardable module2051 Validation2052 general validations2053 is expected to validate that :project cannot be empty/falsy2054 is expected to validate that :author cannot be empty/falsy2055 is expected to validate that :title cannot be empty/falsy2056 is expected to validate that the length of :title is at most 2552057 is expected to validate that the length of :description is at most 10485762058 behaves like validates description length with custom validation2059 when Issuable is a new record2060 validates the maximum description length2061 on create2062 does not validate the maximum description length2063 when Issuable is an existing record2064 does not validate the maximum description length2065 behaves like truncates the description to its allowed maximum length on import2066 truncates the description to its allowed maximum length2067 Scope2068 is expected to respond to #opened2069 is expected to respond to #closed2070 is expected to respond to #assigned2071 .includes_for_bulk_update2072 includes available associations2073 author_name2074 is delegated to author2075 returns nil when author is nil2076 .initialize2077 maps the state to the right state_id2078 maps a string version of the state to the right state_id2079 gives preference to state_id if present2080 .any_label2081 returns an issuable with at least one label2082 for custom sorting2083 returns an issuable with at least one label2084 .search2085 returns issues with a matching title2086 returns issues with a partially matching title2087 returns issues with a matching title regardless of the casing2088 returns issues with a fuzzy matching title2089 returns issues with a matching title for a query shorter than 3 chars2090 .full_search2091 returns issues with a matching title2092 returns issues with a partially matching title2093 returns issues with a matching title regardless of the casing2094 returns issues with a fuzzy matching title2095 returns issues with a matching description2096 returns issues with a partially matching description2097 returns issues with a matching description regardless of the casing2098 returns issues with a fuzzy matching description2099 returns issues with a matching description for a query shorter than 3 chars2100 returns issues with a fuzzy matching description for a query shorter than 3 chars if told to do so2101 returns issues with a fuzzy matching title for a query shorter than 3 chars if told to do so2102 when matching columns is "title"2103 returns issues with a matching title2104 returns no issues with a matching description2105 when matching columns is "description"2106 returns no issues with a matching title2107 returns issues with a matching description2108 when matching columns is "title,description"2109 returns issues with a matching title2110 returns issues with a matching description2111 when matching columns is nil"2112 returns issues with a matching title2113 returns issues with a matching description2114 when matching columns is "invalid"2115 returns issues with a matching title2116 returns issues with a matching description2117 when matching columns is "title,invalid"2118 returns issues with a matching title2119 returns no issues with a matching description2120 .to_ability_name2121 is expected to eq "issue"2122 is expected to eq "merge_request"2123 #today?2124 returns true when created today2125 returns false when not created today2126 #new?2127 returns false when created 30 hours ago2128 returns true when created 20 hours ago2129 #sort_by_attribute2130 by milestone due date2131 sorts desc2132 sorts asc2133 when all of the results are level on the sort key2134 has no duplicates across pages2135 by title2136 sorts asc2137 sorts desc2138 #subscribed?2139 user is not a participant in the issue2140 returns false when no subcription exists2141 returns true when a subcription exists and subscribed is true2142 returns false when a subcription exists and subscribed is false2143 user is a participant in the issue2144 returns false when no subcription exists2145 returns true when a subcription exists and subscribed is true2146 returns false when a subcription exists and subscribed is false2147 #time_estimate=2148 coerces the value below Gitlab::Database::MAX_INT_VALUE2149 skips coercion for not Integer values2150 #to_hook_data2151 when old_associations is empty2152 delegates to Gitlab::HookData::IssuableBuilder#build and does not set labels, assignees, nor total_time_spent2153 labels are updated2154 delegates to Gitlab::HookData::IssuableBuilder#build2155 total_time_spent is updated2156 delegates to Gitlab::HookData::IssuableBuilder#build2157 issue is assigned2158 delegates to Gitlab::HookData::IssuableBuilder#build2159 merge_request is assigned2160 delegates to Gitlab::HookData::IssuableBuilder#build2161 incident severity is updated2162 delegates to Gitlab::HookData::IssuableBuilder#build2163 #labels_array2164 loads the association and returns it as an array2165 .labels_hash2166 maps issue ids to labels titles2167 works on relations filtered by multiple labels2168 with a NULL label ID in the link2169 filters out bad labels2170 #user_notes_count2171 counts the user notes2172 votes2173 returns correct values2174 .order_due_date_and_labels_priority2175 sorts issues in order of milestone due date, then label priority2176 .order_labels_priority2177 is expected to eq 22178 .with_label2179 finds the correct issue containing just enhancement label2180 finds the correct issues containing the same label2181 finds the correct issues containing only both labels2182 #spend_time2183 adding time2184 updates the total time spent2185 stores the time change2186 updates issues updated_at2187 subtracting time2188 updates the total time spent2189 stores negative time change2190 when time to subtract exceeds the total time spent2191 raise a validation error2192 #first_contribution?2193 for merge requests2194 is false for MAINTAINER2195 is false for OWNER2196 is false for REPORTER2197 is true when you don't have any merged MR2198 handles multiple projects separately2199 for issues2200 is false even without merged MR2201 #matches_cross_reference_regex?2202 issue description with long path string2203 behaves like matches_cross_reference_regex? fails fast2204 fails fast for long strings2205 note with long path string2206 behaves like matches_cross_reference_regex? fails fast2207 fails fast for long strings2208 note with long path string2209 behaves like matches_cross_reference_regex? fails fast2210 fails fast for long strings2211 #supports_time_tracking?2212 issuable_type: :issue, supports_time_tracking: true2213 is expected to eq true2214 issuable_type: :incident, supports_time_tracking: true2215 is expected to eq true2216 issuable_type: :merge_request, supports_time_tracking: true2217 is expected to eq true2218 #supports_severity?2219 issuable_type: :issue, supports_severity: false2220 is expected to eq false2221 issuable_type: :incident, supports_severity: true2222 is expected to eq true2223 issuable_type: :merge_request, supports_severity: false2224 is expected to eq false2225 #supports_escalation?2226 issuable_type: :issue, supports_escalation: false2227 is expected to eq false2228 issuable_type: :incident, supports_escalation: true2229 is expected to eq true2230 issuable_type: :merge_request, supports_escalation: false2231 is expected to eq false2232 #incident?2233 issuable_type: :issue, incident: false2234 is expected to eq false2235 issuable_type: :incident, incident: true2236 is expected to eq true2237 issuable_type: :merge_request, incident: false2238 is expected to eq false2239 #supports_issue_type?2240 issuable_type: :issue, supports_issue_type: true2241 is expected to eq true2242 issuable_type: :merge_request, supports_issue_type: false2243 is expected to eq false2244 #severity2245 when issuable is not an incident2246 issuable_type: :issue, severity: "unknown"2247 is expected to eq "unknown"2248 issuable_type: :merge_request, severity: "unknown"2249 is expected to eq "unknown"2250 when issuable type is an incident2251 when incident does not have issuable_severity2252 returns default serverity2253 when incident has issuable_severity2254 returns issuable serverity2255Ci::CreateDownstreamPipelineService#execute2256 when downstream project has not been found2257 does not create a pipeline2258 changes pipeline bridge job status to failed2259 when user can not access downstream project2260 does not create a new pipeline2261 changes status of the bridge build2262 when user does not have access to create pipeline2263 does not create a new pipeline2264 changes status of the bridge build2265 when user can create pipeline in a downstream project2266 creates only one new pipeline2267 creates a new pipeline in a downstream project2268 updates bridge status when downstream pipeline gets processed2269 when bridge job has already any downstream pipelines2270 logs an error and exits2271 when target ref is not specified2272 is using default branch name2273 when downstream pipeline has yaml configuration error2274 creates only one new pipeline2275 creates a new pipeline in a downstream project2276 updates the bridge status when downstream pipeline gets processed2277 when downstream project is the same as the upstream project2278 detects a circular dependency2279 does not create a new pipeline2280 changes status of the bridge build2281 when "include" is provided2282 updates the bridge job to success2283 behaves like creates a child pipeline2284 creates only one new pipeline2285 creates a child pipeline in the same project2286 updates bridge status when downstream pipeline gets processed2287 propagates parent pipeline settings to the child pipeline2288 when bridge uses "depend" strategy2289 does not update the bridge job status2290 when latest sha for the ref changed in the meantime2291 behaves like creates a child pipeline2292 creates only one new pipeline2293 creates a child pipeline in the same project2294 updates bridge status when downstream pipeline gets processed2295 propagates parent pipeline settings to the child pipeline2296 when the parent is a merge request pipeline2297 propagates the merge request to the child pipeline2298 behaves like creates a child pipeline2299 creates only one new pipeline2300 creates a child pipeline in the same project2301 updates bridge status when downstream pipeline gets processed2302 propagates parent pipeline settings to the child pipeline2303 when upstream pipeline has a parent pipeline2304 creates the pipeline2305 when upstream pipeline has a parent pipeline, which has a parent pipeline2306 does not create a second descendant pipeline2307 when upstream pipeline has two level upstream pipelines from different projects2308 create the pipeline2309 when downstream project does not allow user-defined variables for child pipelines2310 creates a new pipeline allowing variables to be passed downstream2311 passes variables downstream from the bridge2312 when multi-project pipeline runs from child pipelines bridge job2313 creates a new pipeline2314 when relationship between pipelines is cyclical2315 does not create a new pipeline2316 changes status of the bridge build2317 when ci_drop_cyclical_triggered_pipelines is not enabled2318 creates a new pipeline2319 expect bridge build not to be failed2320 when downstream pipeline creation errors out2321 creates only one new pipeline2322 creates a new pipeline in the downstream project2323 drops the bridge2324 when bridge job status update raises state machine errors2325 tracks the exception2326 when bridge job has YAML variables defined2327 passes bridge variables to downstream pipeline2328 when pipeline variables are defined2329 does not pass pipeline variables directly downstream2330 when using YAML variables interpolation2331 makes it possible to pass pipeline variable downstream2332 when downstream project does not allow user-defined variables for multi-project pipelines2333 does not create a new pipeline2334 ignores variables passed downstream from the bridge2335 sets errors2336 when configured with bridge job rules2337 that include the bridge job2338 creates the downstream pipeline2339 when user does not have access to push protected branch of downstream project2340 changes status of the bridge build2341 when there is no such branch in downstream project2342 does not create a pipeline and drops the bridge2343 when downstream pipeline has a branch rule and does not satisfy2344 does not create a pipeline and drops the bridge2345 when downstream pipeline has invalid YAML2346 creates the pipeline but drops the bridge2347 when downstream pipeline has workflow rule2348 when passing the required variable2349 creates the pipeline2350 when not passing the required variable2351 does not create the pipeline2352Tooling::Danger::ProjectHelper2353 #categories_for_file2354 path: "usage_data.rb", expected_categories: [:database, :backend, :product_intelligence]2355 is expected to eq [:database, :backend, :product_intelligence]2356 path: "doc/foo.md", expected_categories: [:docs]2357 is expected to eq [:docs]2358 path: "CONTRIBUTING.md", expected_categories: [:docs]2359 is expected to eq [:docs]2360 path: "LICENSE", expected_categories: [:docs]2361 is expected to eq [:docs]2362 path: "MAINTENANCE.md", expected_categories: [:docs]2363 is expected to eq [:docs]2364 path: "PHILOSOPHY.md", expected_categories: [:docs]2365 is expected to eq [:docs]2366 path: "PROCESS.md", expected_categories: [:docs]2367 is expected to eq [:docs]2368 path: "README.md", expected_categories: [:docs]2369 is expected to eq [:docs]2370 path: "ee/doc/foo", expected_categories: [:unknown]2371 is expected to eq [:unknown]2372 path: "ee/README", expected_categories: [:unknown]2373 is expected to eq [:unknown]2374 path: "app/assets/foo", expected_categories: [:frontend]2375 is expected to eq [:frontend]2376 path: "app/views/foo", expected_categories: [:frontend]2377 is expected to eq [:frontend]2378 path: "public/foo", expected_categories: [:frontend]2379 is expected to eq [:frontend]2380 path: "scripts/frontend/foo", expected_categories: [:frontend]2381 is expected to eq [:frontend]2382 path: "spec/frontend/bar", expected_categories: [:frontend]2383 is expected to eq [:frontend]2384 path: "spec/frontend_integration/bar", expected_categories: [:frontend]2385 is expected to eq [:frontend]2386 path: "vendor/assets/foo", expected_categories: [:frontend]2387 is expected to eq [:frontend]2388 path: "babel.config.js", expected_categories: [:frontend]2389 is expected to eq [:frontend]2390 path: "jest.config.js", expected_categories: [:frontend]2391 is expected to eq [:frontend]2392 path: "package.json", expected_categories: [:frontend]2393 is expected to eq [:frontend]2394 path: "yarn.lock", expected_categories: [:frontend]2395 is expected to eq [:frontend]2396 path: "config/foo.js", expected_categories: [:frontend]2397 is expected to eq [:frontend]2398 path: "config/deep/foo.js", expected_categories: [:frontend]2399 is expected to eq [:frontend]2400 path: "ee/app/assets/foo", expected_categories: [:frontend]2401 is expected to eq [:frontend]2402 path: "ee/app/views/foo", expected_categories: [:frontend]2403 is expected to eq [:frontend]2404 path: "ee/spec/frontend/bar", expected_categories: [:frontend]2405 is expected to eq [:frontend]2406 path: "ee/spec/frontend_integration/bar", expected_categories: [:frontend]2407 is expected to eq [:frontend]2408 path: ".gitlab/ci/frontend.gitlab-ci.yml", expected_categories: [:frontend, :tooling]2409 is expected to eq [:frontend, :tooling]2410 path: "app/models/foo", expected_categories: [:backend]2411 is expected to eq [:backend]2412 path: "bin/foo", expected_categories: [:backend]2413 is expected to eq [:backend]2414 path: "config/foo", expected_categories: [:backend]2415 is expected to eq [:backend]2416 path: "lib/foo", expected_categories: [:backend]2417 is expected to eq [:backend]2418 path: "rubocop/foo", expected_categories: [:backend]2419 is expected to eq [:backend]2420 path: ".rubocop.yml", expected_categories: [:backend]2421 is expected to eq [:backend]2422 path: ".rubocop_todo.yml", expected_categories: [:backend]2423 is expected to eq [:backend]2424 path: ".rubocop_todo/cop/name.yml", expected_categories: [:backend]2425 is expected to eq [:backend]2426 path: "spec/foo", expected_categories: [:backend]2427 is expected to eq [:backend]2428 path: "spec/foo/bar", expected_categories: [:backend]2429 is expected to eq [:backend]2430 path: "ee/app/foo", expected_categories: [:backend]2431 is expected to eq [:backend]2432 path: "ee/bin/foo", expected_categories: [:backend]2433 is expected to eq [:backend]2434 path: "ee/spec/foo", expected_categories: [:backend]2435 is expected to eq [:backend]2436 path: "ee/spec/foo/bar", expected_categories: [:backend]2437 is expected to eq [:backend]2438 path: "spec/migrations/foo", expected_categories: [:database]2439 is expected to eq [:database]2440 path: "ee/spec/migrations/foo", expected_categories: [:database]2441 is expected to eq [:database]2442 path: "spec/features/foo", expected_categories: [:test]2443 is expected to eq [:test]2444 path: "ee/spec/features/foo", expected_categories: [:test]2445 is expected to eq [:test]2446 path: "spec/support/shared_examples/features/foo", expected_categories: [:test]2447 is expected to eq [:test]2448 path: "ee/spec/support/shared_examples/features/foo", expected_categories: [:test]2449 is expected to eq [:test]2450 path: "spec/support/shared_contexts/features/foo", expected_categories: [:test]2451 is expected to eq [:test]2452 path: "ee/spec/support/shared_contexts/features/foo", expected_categories: [:test]2453 is expected to eq [:test]2454 path: "spec/support/helpers/features/foo", expected_categories: [:test]2455 is expected to eq [:test]2456 path: "ee/spec/support/helpers/features/foo", expected_categories: [:test]2457 is expected to eq [:test]2458 path: "generator_templates/foo", expected_categories: [:backend]2459 is expected to eq [:backend]2460 path: "vendor/languages.yml", expected_categories: [:backend]2461 is expected to eq [:backend]2462 path: "file_hooks/examples/", expected_categories: [:backend]2463 is expected to eq [:backend]2464 path: "Gemfile", expected_categories: [:backend]2465 is expected to eq [:backend]2466 path: "Gemfile.lock", expected_categories: [:backend]2467 is expected to eq [:backend]2468 path: "Rakefile", expected_categories: [:backend]2469 is expected to eq [:backend]2470 path: "FOO_VERSION", expected_categories: [:backend]2471 is expected to eq [:backend]2472 path: "Dangerfile", expected_categories: [:tooling]2473 is expected to eq [:tooling]2474 path: "danger/bundle_size/Dangerfile", expected_categories: [:tooling]2475 is expected to eq [:tooling]2476 path: "ee/danger/bundle_size/Dangerfile", expected_categories: [:tooling]2477 is expected to eq [:tooling]2478 path: "danger/bundle_size/", expected_categories: [:tooling]2479 is expected to eq [:tooling]2480 path: "ee/danger/bundle_size/", expected_categories: [:tooling]2481 is expected to eq [:tooling]2482 path: ".gitlab-ci.yml", expected_categories: [:tooling]2483 is expected to eq [:tooling]2484 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_categories: [:tooling]2485 is expected to eq [:tooling]2486 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_categories: [:tooling]2487 is expected to eq [:tooling]2488 path: "scripts/foo", expected_categories: [:tooling]2489 is expected to eq [:tooling]2490 path: "tooling/danger/foo", expected_categories: [:tooling]2491 is expected to eq [:tooling]2492 path: "ee/tooling/danger/foo", expected_categories: [:tooling]2493 is expected to eq [:tooling]2494 path: "lefthook.yml", expected_categories: [:tooling]2495 is expected to eq [:tooling]2496 path: ".editorconfig", expected_categories: [:tooling]2497 is expected to eq [:tooling]2498 path: "tooling/bin/find_foss_tests", expected_categories: [:tooling]2499 is expected to eq [:tooling]2500 path: ".codeclimate.yml", expected_categories: [:tooling]2501 is expected to eq [:tooling]2502 path: ".gitlab/CODEOWNERS", expected_categories: [:tooling]2503 is expected to eq [:tooling]2504 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_categories: [:ci_template]2505 is expected to eq [:ci_template]2506 path: "lib/gitlab/ci/templates/dotNET-Core.yml", expected_categories: [:ci_template]2507 is expected to eq [:ci_template]2508 path: "ee/FOO_VERSION", expected_categories: [:unknown]2509 is expected to eq [:unknown]2510 path: "db/schema.rb", expected_categories: [:database]2511 is expected to eq [:database]2512 path: "db/structure.sql", expected_categories: [:database]2513 is expected to eq [:database]2514 path: "db/migrate/foo", expected_categories: [:database, :migration]2515 is expected to eq [:database, :migration]2516 path: "db/post_migrate/foo", expected_categories: [:database, :migration]2517 is expected to eq [:database, :migration]2518 path: "ee/db/geo/migrate/foo", expected_categories: [:database, :migration]2519 is expected to eq [:database, :migration]2520 path: "ee/db/geo/post_migrate/foo", expected_categories: [:database, :migration]2521 is expected to eq [:database, :migration]2522 path: "app/models/project_authorization.rb", expected_categories: [:database, :backend]2523 is expected to eq [:database, :backend]2524 path: "app/services/users/refresh_authorized_projects_service.rb", expected_categories: [:database, :backend]2525 is expected to eq [:database, :backend]2526 path: "app/services/authorized_project_update/find_records_due_for_refresh_service.rb", expected_categories: [:database, :backend]2527 is expected to eq [:database, :backend]2528 path: "lib/gitlab/background_migration.rb", expected_categories: [:database, :backend]2529 is expected to eq [:database, :backend]2530 path: "lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]2531 is expected to eq [:database, :backend]2532 path: "ee/lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]2533 is expected to eq [:database, :backend]2534 path: "lib/gitlab/database.rb", expected_categories: [:database, :backend]2535 is expected to eq [:database, :backend]2536 path: "lib/gitlab/database/foo", expected_categories: [:database, :backend]2537 is expected to eq [:database, :backend]2538 path: "ee/lib/gitlab/database/foo", expected_categories: [:database, :backend]2539 is expected to eq [:database, :backend]2540 path: "lib/gitlab/github_import.rb", expected_categories: [:database, :backend]2541 is expected to eq [:database, :backend]2542 path: "lib/gitlab/github_import/foo", expected_categories: [:database, :backend]2543 is expected to eq [:database, :backend]2544 path: "lib/gitlab/sql/foo", expected_categories: [:database, :backend]2545 is expected to eq [:database, :backend]2546 path: "rubocop/cop/migration/foo", expected_categories: [:database]2547 is expected to eq [:database]2548 path: "db/fixtures/foo.rb", expected_categories: [:backend]2549 is expected to eq [:backend]2550 path: "ee/db/fixtures/foo.rb", expected_categories: [:backend]2551 is expected to eq [:backend]2552 path: "qa/foo", expected_categories: [:qa]2553 is expected to eq [:qa]2554 path: "ee/qa/foo", expected_categories: [:qa]2555 is expected to eq [:qa]2556 path: "workhorse/main.go", expected_categories: [:workhorse]2557 is expected to eq [:workhorse]2558 path: "workhorse/internal/upload/upload.go", expected_categories: [:workhorse]2559 is expected to eq [:workhorse]2560 path: "locale/gitlab.pot", expected_categories: [:none]2561 is expected to eq [:none]2562 path: "FOO", expected_categories: [:unknown]2563 is expected to eq [:unknown]2564 path: "foo", expected_categories: [:unknown]2565 is expected to eq [:unknown]2566 path: "foo/bar.rb", expected_categories: [:backend]2567 is expected to eq [:backend]2568 path: "foo/bar.js", expected_categories: [:frontend]2569 is expected to eq [:frontend]2570 path: "foo/bar.txt", expected_categories: [:none]2571 is expected to eq [:none]2572 path: "foo/bar.md", expected_categories: [:none]2573 is expected to eq [:none]2574 path: "ee/config/metrics/counts_7d/20210216174919_g_analytics_issues_weekly.yml", expected_categories: [:product_intelligence]2575 is expected to eq [:product_intelligence]2576 path: "lib/gitlab/usage_data_counters/aggregated_metrics/common.yml", expected_categories: [:product_intelligence]2577 is expected to eq [:product_intelligence]2578 path: "lib/gitlab/usage_data_counters/hll_redis_counter.rb", expected_categories: [:backend, :product_intelligence]2579 is expected to eq [:backend, :product_intelligence]2580 path: "lib/gitlab/tracking.rb", expected_categories: [:backend, :product_intelligence]2581 is expected to eq [:backend, :product_intelligence]2582 path: "spec/lib/gitlab/tracking_spec.rb", expected_categories: [:backend, :product_intelligence]2583 is expected to eq [:backend, :product_intelligence]2584 path: "app/helpers/tracking_helper.rb", expected_categories: [:backend, :product_intelligence]2585 is expected to eq [:backend, :product_intelligence]2586 path: "spec/helpers/tracking_helper_spec.rb", expected_categories: [:backend, :product_intelligence]2587 is expected to eq [:backend, :product_intelligence]2588 path: "lib/generators/rails/usage_metric_definition_generator.rb", expected_categories: [:backend, :product_intelligence]2589 is expected to eq [:backend, :product_intelligence]2590 path: "spec/lib/generators/usage_metric_definition_generator_spec.rb", expected_categories: [:backend, :product_intelligence]2591 is expected to eq [:backend, :product_intelligence]2592 path: "config/metrics/schema.json", expected_categories: [:product_intelligence]2593 is expected to eq [:product_intelligence]2594 path: "app/assets/javascripts/tracking/foo.js", expected_categories: [:frontend, :product_intelligence]2595 is expected to eq [:frontend, :product_intelligence]2596 path: "spec/frontend/tracking/foo.js", expected_categories: [:frontend, :product_intelligence]2597 is expected to eq [:frontend, :product_intelligence]2598 path: "spec/frontend/tracking_spec.js", expected_categories: [:frontend, :product_intelligence]2599 is expected to eq [:frontend, :product_intelligence]2600 path: "lib/gitlab/usage_database/foo.rb", expected_categories: [:backend]2601 is expected to eq [:backend]2602 path: "config/metrics/counts_7d/test_metric.yml", expected_categories: [:product_intelligence]2603 is expected to eq [:product_intelligence]2604 path: "config/events/snowplow_event.yml", expected_categories: [:product_intelligence]2605 is expected to eq [:product_intelligence]2606 path: "config/metrics/schema.json", expected_categories: [:product_intelligence]2607 is expected to eq [:product_intelligence]2608 path: "doc/api/usage_data.md", expected_categories: [:product_intelligence]2609 is expected to eq [:product_intelligence]2610 path: "spec/lib/gitlab/usage_data_spec.rb", expected_categories: [:product_intelligence]2611 is expected to eq [:product_intelligence]2612 path: "app/models/integration.rb", expected_categories: [:integrations_be, :backend]2613 is expected to eq [:integrations_be, :backend]2614 path: "ee/app/models/integrations/github.rb", expected_categories: [:integrations_be, :backend]2615 is expected to eq [:integrations_be, :backend]2616 path: "ee/app/models/ee/integrations/jira.rb", expected_categories: [:integrations_be, :backend]2617 is expected to eq [:integrations_be, :backend]2618 path: "app/models/integrations/chat_message/pipeline_message.rb", expected_categories: [:integrations_be, :backend]2619 is expected to eq [:integrations_be, :backend]2620 path: "app/models/jira_connect_subscription.rb", expected_categories: [:integrations_be, :backend]2621 is expected to eq [:integrations_be, :backend]2622 path: "app/models/hooks/service_hook.rb", expected_categories: [:integrations_be, :backend]2623 is expected to eq [:integrations_be, :backend]2624 path: "ee/app/models/ee/hooks/system_hook.rb", expected_categories: [:integrations_be, :backend]2625 is expected to eq [:integrations_be, :backend]2626 path: "app/services/concerns/integrations/project_test_data.rb", expected_categories: [:integrations_be, :backend]2627 is expected to eq [:integrations_be, :backend]2628 path: "ee/app/services/ee/integrations/test/project_service.rb", expected_categories: [:integrations_be, :backend]2629 is expected to eq [:integrations_be, :backend]2630 path: "app/controllers/concerns/integrations/actions.rb", expected_categories: [:integrations_be, :backend]2631 is expected to eq [:integrations_be, :backend]2632 path: "ee/app/controllers/concerns/ee/integrations/params.rb", expected_categories: [:integrations_be, :backend]2633 is expected to eq [:integrations_be, :backend]2634 path: "ee/app/controllers/projects/integrations/jira/issues_controller.rb", expected_categories: [:integrations_be, :backend]2635 is expected to eq [:integrations_be, :backend]2636 path: "app/controllers/projects/hooks_controller.rb", expected_categories: [:integrations_be, :backend]2637 is expected to eq [:integrations_be, :backend]2638 path: "app/controllers/admin/hook_logs_controller.rb", expected_categories: [:integrations_be, :backend]2639 is expected to eq [:integrations_be, :backend]2640 path: "app/controllers/groups/settings/integrations_controller.rb", expected_categories: [:integrations_be, :backend]2641 is expected to eq [:integrations_be, :backend]2642 path: "app/controllers/jira_connect/branches_controller.rb", expected_categories: [:integrations_be, :backend]2643 is expected to eq [:integrations_be, :backend]2644 path: "app/controllers/oauth/jira/authorizations_controller.rb", expected_categories: [:integrations_be, :backend]2645 is expected to eq [:integrations_be, :backend]2646 path: "ee/app/finders/projects/integrations/jira/by_ids_finder.rb", expected_categories: [:integrations_be, :database, :backend]2647 is expected to eq [:integrations_be, :database, :backend]2648 path: "app/workers/jira_connect/sync_merge_request_worker.rb", expected_categories: [:integrations_be, :backend]2649 is expected to eq [:integrations_be, :backend]2650 path: "app/workers/propagate_integration_inherit_worker.rb", expected_categories: [:integrations_be, :backend]2651 is expected to eq [:integrations_be, :backend]2652 path: "app/workers/web_hooks/log_execution_worker.rb", expected_categories: [:integrations_be, :backend]2653 is expected to eq [:integrations_be, :backend]2654 path: "app/workers/web_hook_worker.rb", expected_categories: [:integrations_be, :backend]2655 is expected to eq [:integrations_be, :backend]2656 path: "app/workers/project_service_worker.rb", expected_categories: [:integrations_be, :backend]2657 is expected to eq [:integrations_be, :backend]2658 path: "lib/atlassian/jira_connect/serializers/commit_entity.rb", expected_categories: [:integrations_be, :backend]2659 is expected to eq [:integrations_be, :backend]2660 path: "lib/api/entities/project_integration.rb", expected_categories: [:integrations_be, :backend]2661 is expected to eq [:integrations_be, :backend]2662 path: "lib/gitlab/hook_data/note_builder.rb", expected_categories: [:integrations_be, :backend]2663 is expected to eq [:integrations_be, :backend]2664 path: "lib/gitlab/data_builder/note.rb", expected_categories: [:integrations_be, :backend]2665 is expected to eq [:integrations_be, :backend]2666 path: "ee/lib/ee/gitlab/integrations/sti_type.rb", expected_categories: [:integrations_be, :backend]2667 is expected to eq [:integrations_be, :backend]2668 path: "ee/lib/ee/api/helpers/integrations_helpers.rb", expected_categories: [:integrations_be, :backend]2669 is expected to eq [:integrations_be, :backend]2670 path: "ee/app/serializers/integrations/jira_serializers/issue_entity.rb", expected_categories: [:integrations_be, :backend]2671 is expected to eq [:integrations_be, :backend]2672 path: "lib/api/github/entities.rb", expected_categories: [:integrations_be, :backend]2673 is expected to eq [:integrations_be, :backend]2674 path: "lib/api/v3/github.rb", expected_categories: [:integrations_be, :backend]2675 is expected to eq [:integrations_be, :backend]2676 path: "app/models/clusters/integrations/elastic_stack.rb", expected_categories: [:backend]2677 is expected to eq [:backend]2678 path: "app/controllers/clusters/integrations_controller.rb", expected_categories: [:backend]2679 is expected to eq [:backend]2680 path: "app/services/clusters/integrations/prometheus_health_check_service.rb", expected_categories: [:backend]2681 is expected to eq [:backend]2682 path: "app/graphql/types/alert_management/integration_type.rb", expected_categories: [:backend]2683 is expected to eq [:backend]2684 path: "app/views/jira_connect/branches/new.html.haml", expected_categories: [:integrations_fe, :frontend]2685 is expected to eq [:integrations_fe, :frontend]2686 path: "app/views/layouts/jira_connect.html.haml", expected_categories: [:integrations_fe, :frontend]2687 is expected to eq [:integrations_fe, :frontend]2688 path: "app/assets/javascripts/jira_connect/branches/pages/index.vue", expected_categories: [:integrations_fe, :frontend]2689 is expected to eq [:integrations_fe, :frontend]2690 path: "ee/app/views/projects/integrations/jira/issues/show.html.haml", expected_categories: [:integrations_fe, :frontend]2691 is expected to eq [:integrations_fe, :frontend]2692 path: "ee/app/assets/javascripts/integrations/zentao/issues_list/graphql/queries/get_zentao_issues.query.graphql", expected_categories: [:integrations_fe, :frontend]2693 is expected to eq [:integrations_fe, :frontend]2694 path: "app/assets/javascripts/pages/projects/settings/integrations/show/index.js", expected_categories: [:integrations_fe, :frontend]2695 is expected to eq [:integrations_fe, :frontend]2696 path: "ee/app/assets/javascripts/pages/groups/hooks/index.js", expected_categories: [:integrations_fe, :frontend]2697 is expected to eq [:integrations_fe, :frontend]2698 path: "app/views/clusters/clusters/_integrations_tab.html.haml", expected_categories: [:frontend]2699 is expected to eq [:frontend]2700 path: "app/assets/javascripts/alerts_settings/graphql/fragments/integration_item.fragment.graphql", expected_categories: [:frontend]2701 is expected to eq [:frontend]2702 path: "app/assets/javascripts/filtered_search/droplab/hook_input.js", expected_categories: [:frontend]2703 is expected to eq [:frontend]2704 having specific changes2705 expected_categories: [:product_intelligence], patch: "+data-track-action", changed_files: ["components/welcome.vue"]2706 has the correct categories2707 expected_categories: [:product_intelligence], patch: "+ data: { track_label:", changed_files: ["admin/groups/_form.html.haml"]2708 has the correct categories2709 expected_categories: [:product_intelligence], patch: "+ Gitlab::Tracking.event", changed_files: ["dashboard/todos_controller.rb", "admin/groups/_form.html.haml"]2710 has the correct categories2711 expected_categories: [:database, :backend, :product_intelligence], patch: "+ count(User.active)", changed_files: ["usage_data.rb", "lib/gitlab/usage_data.rb", "ee/lib/ee/gitlab/usage_data.rb"]2712 has the correct categories2713 expected_categories: [:database, :backend, :product_intelligence], patch: "+ estimate_batch_distinct_count(User.active)", changed_files: ["usage_data.rb"]2714 has the correct categories2715 expected_categories: [:backend, :product_intelligence], patch: "+ alt_usage_data(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]2716 has the correct categories2717 expected_categories: [:backend, :product_intelligence], patch: "+ count(User.active)", changed_files: ["lib/gitlab/usage_data/topology.rb"]2718 has the correct categories2719 expected_categories: [:backend, :product_intelligence], patch: "+ foo_count(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]2720 has the correct categories2721 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["user.rb"]2722 has the correct categories2723 expected_categories: [:integrations_be, :database, :migration], patch: "+ add_column :integrations, :foo, :text", changed_files: ["db/migrate/foo.rb"]2724 has the correct categories2725 expected_categories: [:integrations_be, :database, :migration], patch: "+ create_table :zentao_tracker_data do |t|", changed_files: ["ee/db/post_migrate/foo.rb"]2726 has the correct categories2727 expected_categories: [:integrations_be, :backend], patch: "+ Integrations::Foo", changed_files: ["app/foo/bar.rb"]2728 has the correct categories2729 expected_categories: [:integrations_be, :backend], patch: "+ project.execute_hooks(foo, :bar)", changed_files: ["ee/lib/ee/foo.rb"]2730 has the correct categories2731 expected_categories: [:integrations_be, :backend], patch: "+ project.execute_integrations(foo, :bar)", changed_files: ["app/foo.rb"]2732 has the correct categories2733 .local_warning_message2734 returns an informational message with rules that can run2735 .success_message2736 returns an informational success message2737 #rule_names2738 when running locally2739 returns local only rules2740 when running under CI2741 returns all rules2742 #all_ee_changes2743 returns all changed files starting with ee/2744 #file_lines2745 returns the chomped file lines2746Clusters::Applications::CertManager2747 is expected to belong to cluster required: false2748 is expected to validate that :cluster cannot be empty/falsy2749 #can_uninstall?2750 calls allowed_to_uninstall?2751 #name2752 is .application_name2753 is recorded in Clusters::Cluster::APPLICATIONS2754 .association_name2755 is expected to eq :application_cert_manager2756 #helm_command_module2757 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22758 is expected to eq Gitlab::Kubernetes::Helm::V22759 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32760 is expected to eq Gitlab::Kubernetes::Helm::V32761 #status_states2762 returns a hash of state values2763 returns an integer for installed state value2764 .available2765 is expected to contain exactly #<Clusters::Applications::CertManager id: 1, cluster_id: 12, status: 3, version: "v0.10.1", email: "a...20 17:04:25.779761860 +0000", updated_at: "2021-12-20 17:04:25.779761860 +0000", status_reason: nil> and #<Clusters::Applications::CertManager id: 2, cluster_id: 18, status: 5, version: "v0.10.1", email: "a...20 17:04:26.715817262 +0000", updated_at: "2021-12-20 17:04:26.715817262 +0000", status_reason: nil>2766 status state machine2767 #make_installing2768 is installing2769 #make_installed2770 is installed2771 does not update the helm version2772 the cluster has no helm installed2773 runs without errors2774 application is updating2775 is updated2776 does not update the helm version2777 the cluster has no helm installed2778 runs without errors2779 #make_errored2780 is errored2781 application is updating2782 is update_errored2783 application is uninstalling2784 is uninstall_errored2785 #make_externally_installed2786 is installed2787 helm record does not exist2788 does not create a helm record2789 helm record exists2790 does not update helm version2791 application is updated2792 is installed2793 application is errored2794 is installed2795 clears #status_reason2796 #make_externally_uninstalled2797 is uninstalled2798 application is updated2799 is uninstalled2800 application is errored2801 is uninstalled2802 clears #status_reason2803 #make_scheduled2804 is scheduled2805 when installed2806 is scheduled2807 when was errored2808 clears #status_reason2809 when was updated_errored2810 clears #status_reason2811 when was uninstall_errored2812 clears #status_reason2813 #make_uninstalling2814 is uninstalling2815 #available?2816 trait: :not_installable, available: false2817 is expected not to be available2818 trait: :installable, available: false2819 is expected not to be available2820 trait: :scheduled, available: false2821 is expected not to be available2822 trait: :installing, available: false2823 is expected not to be available2824 trait: :installed, available: true2825 is expected to be available2826 trait: :updating, available: false2827 is expected not to be available2828 trait: :updated, available: true2829 is expected to be available2830 trait: :errored, available: false2831 is expected not to be available2832 trait: :update_errored, available: false2833 is expected not to be available2834 trait: :uninstalling, available: false2835 is expected not to be available2836 trait: :uninstall_errored, available: false2837 is expected not to be available2838 trait: :uninstalled, available: false2839 is expected not to be available2840 trait: :timed_out, available: false2841 is expected not to be available2842 trait: :externally_installed, available: true2843 is expected to be available2844 update_available?2845 version is not the same as VERSION2846 is expected to be truthy2847 version is the same as VERSION2848 is expected to be falsey2849 #make_installed2850 sets the correct version of the application2851 application is updating2852 updates the version of the application2853 #make_externally_installed2854 sets to a special version2855 #status2856 sets a default status2857 #can_uninstall?2858 is expected to be truthy2859 #install_command2860 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand2861 is initialized with cert_manager arguments2862 for a specific user2863 uses their email to register issuer with certificate provider2864 on a non rbac enabled cluster2865 is expected not to be rbac2866 application failed to install previously2867 is initialized with the locked version2868 #uninstall_command2869 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand2870 is initialized with cert_manager arguments2871 specifies a post delete command to remove custom resource definitions2872 secret key name is not found2873 does not try and delete the secret2874 #files2875 includes cert_manager specific keys in the values.yaml file2876 validations2877 is expected to validate that :email cannot be empty/falsy2878Integrations::Slack2879 behaves like Integrations::SlackMattermostNotifier2880 Associations2881 is expected to belong to project required: false2882 is expected to have one service_hook2883 Validations2884 when service is active2885 is expected to validate that :webhook cannot be empty/falsy2886 behaves like issue tracker integration URL attribute2887 is expected to allow :webhook to be ‹"https://example.com"›2888 is expected not to allow :webhook to be ‹"example.com"›2889 is expected not to allow :webhook to be ‹"ftp://example.com"›2890 is expected not to allow :webhook to be ‹"herp-and-derp"›2891 when service is inactive2892 is expected not to validate that :webhook cannot be empty/falsy2893 #execute2894 with username for slack configured2895 uses the username as an option2896 push events2897 behaves like calls the service API with the event message2898 is expected to request POST https://8.8.8.9/ 1 time2899 with event channel2900 uses the right channel for push event2901 tag_push events2902 behaves like calls the service API with the event message2903 is expected to request POST https://8.8.8.9/ 1 time2904 issue events2905 behaves like calls the service API with the event message2906 is expected to request POST https://8.8.8.9/ 1 time2907 whith event channel2908 uses the right channel for issue event2909 for confidential issues2910 falls back to issue channel2911 and confidential_issue_channel is defined2912 uses the confidential issue channel when it is defined2913 merge request events2914 behaves like calls the service API with the event message2915 is expected to request POST https://8.8.8.9/ 1 time2916 with event channel2917 uses the right channel for merge request event2918 wiki page events2919 behaves like calls the service API with the event message2920 is expected to request POST https://8.8.8.9/ 1 time2921 with event channel2922 uses the right channel for wiki event2923 deployment events2924 behaves like calls the service API with the event message2925 is expected to request POST https://8.8.8.9/ 1 time2926 note event2927 behaves like calls the service API with the event message2928 is expected to request POST https://8.8.8.9/ 1 time2929 with event channel2930 uses the right channel2931 for confidential notes2932 falls back to note channel2933 and confidential_note_channel is defined2934 uses confidential channel2935 Push events2936 on default branch2937 pushing tags2938 behaves like triggered Slack service2939 notifies about push events2940 notification enabled only for default branch2941 behaves like triggered Slack service2942 notifies about push events2943 notification enabled only for protected branches2944 behaves like untriggered Slack service2945 notifies about push events2946 notification enabled only for default and protected branches2947 behaves like triggered Slack service2948 notifies about push events2949 notification enabled for all branches2950 behaves like triggered Slack service2951 notifies about push events2952 on a protected branch2953 pushing tags2954 behaves like triggered Slack service2955 notifies about push events2956 notification enabled only for default branch2957 behaves like untriggered Slack service2958 notifies about push events2959 notification enabled only for protected branches2960 behaves like triggered Slack service2961 notifies about push events2962 notification enabled only for default and protected branches2963 behaves like triggered Slack service2964 notifies about push events2965 notification enabled for all branches2966 behaves like triggered Slack service2967 notifies about push events2968 on a protected branch with protected branches defined using wildcards2969 pushing tags2970 behaves like triggered Slack service2971 notifies about push events2972 notification enabled only for default branch2973 behaves like untriggered Slack service2974 notifies about push events2975 notification enabled only for protected branches2976 behaves like triggered Slack service2977 notifies about push events2978 notification enabled only for default and protected branches2979 behaves like triggered Slack service2980 notifies about push events2981 notification enabled for all branches2982 behaves like triggered Slack service2983 notifies about push events2984 on a neither protected nor default branch2985 pushing tags2986 behaves like triggered Slack service2987 notifies about push events2988 notification enabled only for default branch2989 behaves like untriggered Slack service2990 notifies about push events2991 notification enabled only for protected branches2992 behaves like untriggered Slack service2993 notifies about push events2994 notification enabled only for default and protected branches2995 behaves like untriggered Slack service2996 notifies about push events2997 notification enabled for all branches2998 behaves like triggered Slack service2999 notifies about push events3000 Note events3001 when commit comment event executed3002 behaves like triggered Slack service3003 notifies about commit comment events3004 when merge request comment event executed3005 behaves like triggered Slack service3006 notifies about merge request comment events3007 when issue comment event executed3008 behaves like triggered Slack service3009 notifies about issue comment events3010 when snippet comment event executed3011 behaves like triggered Slack service3012 notifies about snippet comment events3013 Pipeline events3014 with succeeded pipeline3015 with default to notify_only_broken_pipelines3016 behaves like untriggered Slack service3017 notifies about pipeline events3018 with setting notify_only_broken_pipelines to false3019 behaves like triggered Slack service3020 notifies about pipeline events3021 with failed pipeline3022 on default branch3023 notification enabled only for default branch3024 behaves like triggered Slack service3025 notifies about pipeline events3026 notification enabled only for protected branches3027 behaves like untriggered Slack service3028 notifies about pipeline events3029 notification enabled only for default and protected branches3030 behaves like triggered Slack service3031 notifies about pipeline events3032 notification enabled for all branches3033 behaves like triggered Slack service3034 notifies about pipeline events3035 on a protected branch3036 notification enabled only for default branch3037 behaves like untriggered Slack service3038 notifies about pipeline events3039 notification enabled only for protected branches3040 behaves like triggered Slack service3041 notifies about pipeline events3042 notification enabled only for default and protected branches3043 behaves like triggered Slack service3044 notifies about pipeline events3045 notification enabled for all branches3046 behaves like triggered Slack service3047 notifies about pipeline events3048 on a protected branch with protected branches defined usin wildcards3049 notification enabled only for default branch3050 behaves like untriggered Slack service3051 notifies about pipeline events3052 notification enabled only for protected branches3053 behaves like triggered Slack service3054 notifies about pipeline events3055 notification enabled only for default and protected branches3056 behaves like triggered Slack service3057 notifies about pipeline events3058 notification enabled for all branches3059 behaves like triggered Slack service3060 notifies about pipeline events3061 on a neither protected nor default branch3062 notification enabled only for default branch3063 behaves like untriggered Slack service3064 notifies about pipeline events3065 notification enabled only for protected branches3066 behaves like untriggered Slack service3067 notifies about pipeline events3068 notification enabled only for default and protected branches3069 behaves like untriggered Slack service3070 notifies about pipeline events3071 notification enabled for all branches3072 behaves like triggered Slack service3073 notifies about pipeline events3074 #execute3075 uses only known events3076 hook data includes a user object3077 event is not supported for usage log3078 does not increase the usage data counter3079 issue notification3080 behaves like increases the usage data counter3081 increases the usage data counter3082 push notification3083 behaves like increases the usage data counter3084 increases the usage data counter3085 deployment notification3086 behaves like increases the usage data counter3087 increases the usage data counter3088 wiki_page notification3089 behaves like increases the usage data counter3090 increases the usage data counter3091 merge_request notification3092 behaves like increases the usage data counter3093 increases the usage data counter3094 note notification3095 behaves like increases the usage data counter3096 increases the usage data counter3097 tag_push notification3098 behaves like increases the usage data counter3099 increases the usage data counter3100 confidential note notification3101 behaves like increases the usage data counter3102 increases the usage data counter3103 confidential issue notification3104 behaves like increases the usage data counter3105 increases the usage data counter3106 hook data does not include a user3107 does not increase the usage data counter3108Notes::CreateService3109 #execute3110 valid params3111 returns a valid note3112 returns a persisted note3113 note has valid content3114 note belongs to the correct project3115 TodoService#new_note is called3116 enqueues NewNoteWorker3117 tracks issue comment usage data3118 does not track merge request usage data3119 issue is an incident3120 behaves like an incident management tracked event3121 .track_event3122 tracks the event using redis3123 in a merge request3124 noteable highlight cache clearing3125 does not track issue comment usage data3126 tracks merge request usage data3127 clears noteable diff cache when it was unfolded for the note position3128 does not clear cache when note is not the first of the discussion3129 note diff file3130 when eligible to have a note diff file3131 note is associated with a note diff file3132 when skip_capture_diff_note_position execute option is set to true3133 does not execute Discussions::CaptureDiffNotePositionService3134 when DiffNote is a reply3135 note is not associated with a note diff file3136 when DiffNote from an image3137 note is not associated with a note diff file3138 note with commands3139 all quick actions3140 for issues3141 behaves like issuable quick actions3142 when user can update issuable3143 saves the note and updates the issue3144 when user cannot update issuable3145 applies commands that user can execute3146 for merge requests3147 behaves like issuable quick actions3148 when user can update issuable3149 saves the note and updates the issue3150 when user cannot update issuable3151 applies commands that user can execute3152 when note only have commands3153 adds commands applied message to note errors3154 adds commands failed message to note errors3155 generates success and failed error messages3156 personal snippet note3157 returns a valid note3158 returns a persisted note3159 note has valid content3160 design note3161 can create diff notes for designs3162 sends a notification about this note3163 correctly builds the position of the note3164 note with emoji only3165 creates regular note3166 reply to individual note3167 creates a DiscussionNote in reply to existing note3168 converts existing note to DiscussionNote3169 returns a DiscussionNote with its parent discussion refreshed correctly3170 failure in when_saved3171 converts existing note to DiscussionNote3172 discussion to reply cannot be found3173 returns an note with errors3174 usage counter3175 snippet note3176 increments usage counter3177 does not increment usage counter when creation fails3178 issue note3179 does not increment usage counter3180Snippet3181 modules3182 is expected to includes the Gitlab::VisibilityLevel module3183 is expected to includes the Participable module3184 is expected to includes the Referable module3185 is expected to includes the Sortable module3186 is expected to includes the Awardable module3187 associations3188 is expected to belong to author class_name => User required: false3189 is expected to belong to project required: false3190 is expected to have many notes dependent => destroy3191 is expected to have many award_emoji dependent => destroy3192 is expected to have many user_mentions class_name => SnippetUserMention3193 is expected to have one snippet_repository3194 is expected to have one statistics class_name => SnippetStatistics dependent => destroy3195 is expected to have many repository_storage_moves class_name => Snippets::RepositoryStorageMove inverse_of => container3196 validation3197 is expected to validate that :author cannot be empty/falsy3198 is expected to validate that :title cannot be empty/falsy3199 is expected to validate that the length of :title is at most 2553200 is expected to validate that the length of :file_name is at most 2553201 is expected to validate that :content cannot be empty/falsy3202 is expected to validate that :visibility_level is either ‹0›, ‹10›, or ‹20›3203 is expected to validate that the length of :content is at most 1, producing a custom validation error on failure3204 content validations3205 with existing snippets3206 does not raise a validation error if the content is not changed3207 raises and error if the content is changed and the size is bigger than limit3208 with new snippets3209 is valid when content is smaller than the limit3210 raises error when content is bigger than setting limit3211 callbacks3212 creates snippet statistics when the snippet is created3213 #to_reference3214 when snippet belongs to a project3215 returns a String reference to the object3216 supports a cross-project reference3217 when snippet does not belong to a project3218 returns a String reference to the object3219 still returns shortest reference when project arg present3220 #file_name3221 file_name is nil3222 returns an empty string3223 file_name is not nil3224 returns the file_name3225 #content_html_invalidated?3226 invalidates the HTML cache of content when the filename changes3227 .search3228 returns snippets with a matching title3229 returns snippets with a partially matching title3230 returns snippets with a matching title regardless of the casing3231 returns snippets with a matching file name3232 returns snippets with a partially matching file name3233 returns snippets with a matching file name regardless of the casing3234 returns snippets with a matching description3235 when default snippet visibility set to internal3236 attribute_name: :visibility, value: "private"3237 sets the visibility level3238 attribute_name: :visibility_level, value: 03239 sets the visibility level3240 attribute_name: "visibility", value: "private"3241 sets the visibility level3242 attribute_name: "visibility_level", value: 03243 sets the visibility level3244 .with_optional_visibility3245 when a visibility level is provided3246 returns snippets with the given visibility3247 when a visibility level is not provided3248 returns all snippets3249 .only_personal_snippets3250 returns snippets not associated with any projects3251 .only_include_projects_visible_to3252 when a user is provided3253 returns snippets visible to the user3254 when a user is not provided3255 returns snippets visible to anonymous users3256 only_include_projects_with_snippets_enabled3257 includes snippets for projects with snippets enabled3258 when snippet_access_level is private3259 when the include_private option is enabled3260 includes snippets for projects with snippets set to private3261 when the include_private option is not enabled3262 does not include snippets for projects that have snippets set to private3263 .only_include_authorized_projects3264 only includes snippets for projects the user is authorized to see3265 .for_project_with_user3266 when a user is provided3267 returns an empty collection if the user can not view the snippets3268 returns the snippets if the user is a member of the project3269 returns public snippets for a public project the user is not a member of3270 when a user is not provided3271 returns an empty collection for a private project3272 returns public snippets for a public project3273 .visible_to_or_authored_by3274 returns snippets visible to the user3275 .find_by_project_title_trunc_created_at3276 returns a record if arguments match3277 returns nil if project does not match3278 returns nil if title does not match3279 returns nil if created_at does not match3280 #participants3281 includes the snippet author and note authors3282 #check_for_spam3283 when public and spammable attributes changed3284 returns true3285 when private3286 returns false3287 returns true when switching to public3288 when spammable attributes have not changed3289 returns false3290 #blob3291 returns a blob representing the snippet data3292 #blobs3293 when repository does not exist3294 returns empty array3295 when repository exists3296 returns array of blobs3297 when file does not exist3298 removes nil values from the blobs array3299 #to_json3300 excludes secret_token from generated json3301 does not override existing exclude option value3302 #storage3303 stores snippet in @snippets dir3304 #track_snippet_repository3305 when a snippet repository entry does not exist3306 creates a new entry3307 tracks the snippet storage location3308 when a tracking entry exists3309 does not create a new entry in the database3310 updates the snippet storage location3311 #create_repository3312 creates the repository3313 tracks snippet repository3314 sets same shard in snippet repository as in the repository storage3315 when repository exists3316 does not try to create repository3317 when snippet_repository exists3318 does not create a new snippet repository3319 when snippet_repository does not exist3320 creates a snippet_repository3321 #repository_storage3322 returns repository storage from ApplicationSetting3323 when snippet_project is already created3324 returns repository_storage from snippet_project3325 #repository_size_checker3326 sets up size checker3327 #can_cache_field?3328 field: :title, file_name: nil, result: true3329 is expected to eq true3330 field: :title, file_name: "foo.bar", result: true3331 is expected to eq true3332 field: :description, file_name: nil, result: true3333 is expected to eq true3334 field: :description, file_name: "foo.bar", result: true3335 is expected to eq true3336 field: :content, file_name: nil, result: false3337 is expected to eq false3338 field: :content, file_name: "bar.foo", result: false3339 is expected to eq false3340 field: :content, file_name: "markdown.md", result: true3341 is expected to eq true3342 #url_to_repo3343 with personal snippet3344 is expected to eq "git@localhost:snippets/60.git"3345 with project snippet3346 is expected to eq "git@localhost:namespace986/project672/snippets/61.git"3347 .max_file_limit3348 returns 103349 #list_files3350 when snippet has a repository3351 lists files from the repository with the ref3352 when ref is nil3353 lists files from the repository from the deafult_branch3354 when snippet does not have a repository3355 returns an empty array3356 #multiple_files?3357 when snippet has multiple files3358 is expected to be truthy3359 when snippet does not have multiple files3360 is expected to be falsey3361 when the snippet does not have a repository3362 is expected to be falsey3363 #git_transfer_in_progress?3364 returns true when there are git transfers3365 returns false when there are not git transfers3366 behaves like can move repository storage3367 #set_repository_read_only!3368 makes the repository read-only3369 raises an error if the project is already read-only3370 raises an error when there is an existing git transfer in progress3371 skip_git_transfer_check is true3372 makes the project read-only when git transfers are in progress3373 #set_repository_writable!3374 sets repository_read_only to false3375 #reference_counter3376 returns a Gitlab::ReferenceCounter object3377 #change_head_to_default_branch3378 when repository does not exist3379 does nothing3380 when repository is empty3381 when default branch in settings is different from "master"3382 changes the HEAD reference to the default branch3383 when repository is not empty3384 when HEAD branch is empty3385 changes HEAD to default branch3386 when HEAD branch is not empty3387 does nothing3388Packages::FinderHelper3389 #packages_for_project3390 is expected to eq [#<Packages::Package id: 1, project_id: 637, created_at: "2021-12-20 17:07:13.013480268 +0000", updat...y/app/my-app", version: "1.1-SNAPSHOT", package_type: "maven", creator_id: 1590, status: "default">]3391 #packages_visible_to_user3392 with a user3393 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both packages"3394 behaves like returning both packages3395 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3396 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both packages"3397 behaves like returning both packages3398 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3399 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both packages"3400 behaves like returning both packages3401 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3402 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both packages"3403 behaves like returning both packages3404 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3405 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"3406 behaves like returning both packages3407 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3408 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"3409 behaves like returning both packages3410 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3411 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"3412 behaves like returning package13413 is expected to eq [#<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", updat...y/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default">]3414 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"3415 behaves like returning package13416 is expected to eq [#<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", updat...y/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default">]3417 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"3418 behaves like returning both packages3419 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3420 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"3421 behaves like returning both packages3422 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3423 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning package1"3424 behaves like returning package13425 is expected to eq [#<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", updat...y/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default">]3426 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning package1"3427 behaves like returning package13428 is expected to eq [#<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", updat...y/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default">]3429 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both packages"3430 behaves like returning both packages3431 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3432 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both packages"3433 behaves like returning both packages3434 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3435 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no packages"3436 behaves like returning no packages3437 is expected to be empty3438 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no packages"3439 behaves like returning no packages3440 is expected to be empty3441 with a group deploy token3442 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both packages"3443 behaves like returning both packages3444 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3445 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"3446 behaves like returning both packages3447 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3448 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"3449 behaves like returning both packages3450 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3451 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both packages"3452 behaves like returning both packages3453 is expected to contain exactly #<Packages::Package id: 4, project_id: 639, created_at: "2021-12-20 17:07:13.572530412 +0000", update...ny/app/my-app", version: "1.4-SNAPSHOT", package_type: "maven", creator_id: 1592, status: "default"> and #<Packages::Package id: 5, project_id: 640, created_at: "2021-12-20 17:07:13.795121362 +0000", update...ny/app/my-app", version: "1.5-SNAPSHOT", package_type: "maven", creator_id: 1593, status: "default">3454 #projects_visible_to_user3455 with a user3456 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :maintainer, shared_example_name: "returning both projects"3457 behaves like returning both projects3458 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3459 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :developer, shared_example_name: "returning both projects"3460 behaves like returning both projects3461 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3462 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :guest, shared_example_name: "returning both projects"3463 behaves like returning both projects3464 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3465 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", user_role: :anonymous, shared_example_name: "returning both projects"3466 behaves like returning both projects3467 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3468 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"3469 behaves like returning both projects3470 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3471 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"3472 behaves like returning both projects3473 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3474 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"3475 behaves like returning project13476 is expected to eq [#<Project id:641 group175/project677>>]3477 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"3478 behaves like returning project13479 is expected to eq [#<Project id:641 group175/project677>>]3480 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"3481 behaves like returning both projects3482 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3483 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"3484 behaves like returning both projects3485 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3486 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning project1"3487 behaves like returning project13488 is expected to eq [#<Project id:641 group175/project677>>]3489 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning project1"3490 behaves like returning project13491 is expected to eq [#<Project id:641 group175/project677>>]3492 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :maintainer, shared_example_name: "returning both projects"3493 behaves like returning both projects3494 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3495 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :developer, shared_example_name: "returning both projects"3496 behaves like returning both projects3497 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3498 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :guest, shared_example_name: "returning no project"3499 behaves like returning no project3500 is expected to be empty3501 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", user_role: :anonymous, shared_example_name: "returning no project"3502 behaves like returning no project3503 is expected to be empty3504 with a group deploy token3505 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PUBLIC", shared_example_name: "returning both projects"3506 behaves like returning both projects3507 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3508 group_visibility: "PUBLIC", subgroup_visibility: "PUBLIC", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"3509 behaves like returning both projects3510 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3511 group_visibility: "PUBLIC", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"3512 behaves like returning both projects3513 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3514 group_visibility: "PRIVATE", subgroup_visibility: "PRIVATE", project2_visibility: "PRIVATE", shared_example_name: "returning both projects"3515 behaves like returning both projects3516 is expected to contain exactly #<Project id:641 group175/project677>> and #<Project id:642 group175/group176/project678>>3517JobArtifactUploader3518 behaves like builds correct paths3519 #store_dir3520 behaves like matches the method pattern3521 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/3522 #cache_dir3523 behaves like matches the method pattern3524 is expected to match /artifacts\/tmp\/cache/3525 #work_dir3526 behaves like matches the method pattern3527 is expected to match /artifacts\/tmp\/work/3528 #upload_path3529 behaves like matches the method pattern3530 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3531 #relative_path3532 is relative (PENDING: Path not set, skipping.)3533 .absolute_path3534 behaves like matches the method pattern3535 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3536 .base_dir3537 behaves like matches the method pattern3538 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3539 path traversal exploits3540 throws an exception3541 object store is REMOTE3542 behaves like builds correct paths3543 #store_dir3544 behaves like matches the method pattern3545 is expected to match /\h{2}\/\h{2}\/\h{64}\/\d{4}_\d{1,2}_\d{1,2}\/\d+\/\d+\z/3546 #cache_dir3547 behaves like matches the method pattern3548 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3549 #work_dir3550 behaves like matches the method pattern3551 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3552 #upload_path3553 behaves like matches the method pattern3554 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3555 #relative_path3556 is relative (PENDING: Path not set, skipping.)3557 .absolute_path3558 behaves like matches the method pattern3559 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3560 .base_dir3561 behaves like matches the method pattern3562 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3563 path traversal exploits3564 throws an exception3565 file is stored in valid local_path3566 is expected to start with "/builds/gitlab-org/gitlab/tmp/tests/artifacts/"3567 is expected to include "/2021_12_20/"3568 is expected to include "/150/19/"3569 is expected to end with "ci_build_artifacts.zip"3570 #dynamic_segment3571 when a job artifact is stored in legacy_path3572 behaves like Read file from legacy path3573 store_path returns the legacy path3574 has exactly the same content3575 when the artifact file is stored in hashed_path3576 behaves like Read file from hashed path3577 store_path returns hashed path3578 has exactly the same content3579 when file_location column is empty3580 behaves like Read file from hashed path3581 store_path returns hashed path3582 has exactly the same content3583 #migrate!3584 does not set Content-Type3585 behaves like migrates3586 returns corresponding file type3587 does nothing when migrating to the current store3588 migrate to the specified store3589 removes the original file after the migration3590 can access to the original file during migration3591 when migrate! is not occupied by another process3592 executes migrate!3593 executes use_file3594 when migrate! is occupied by another process3595 does not execute migrate!3596 does not execute use_file3597 migration is unsuccessful3598 when the store is not supported3599 does not update the object_store3600 does not delete the original file3601 upon a fog failure3602 does not update the object_store3603 does not delete the original file3604 upon a database failure3605 does not update the object_store3606 does not delete the original file3607 behaves like migrates3608 returns corresponding file type3609 does nothing when migrating to the current store3610 migrate to the specified store3611 removes the original file after the migration3612 can access to the original file during migration3613 when migrate! is not occupied by another process3614 executes migrate!3615 executes use_file3616 when migrate! is occupied by another process3617 does not execute migrate!3618 does not execute use_file3619 migration is unsuccessful3620 when the store is not supported3621 does not update the object_store3622 does not delete the original file3623 upon a fog failure3624 does not update the object_store3625 does not delete the original file3626 upon a database failure3627 does not update the object_store3628 does not delete the original file3629Ci::BuildRunnerPresenter3630 #artifacts3631 when option contains archive-type artifacts3632 presents correct hash3633 when untracked is specified3634 presents correct hash3635 when untracked and paths are missing3636 does not present hash3637 when artifacts exclude is defined3638 includes the list of excluded paths3639 when artifacts exclude is not defined3640 does not include an empty list of excluded paths3641 with reports3642 archive3643 presents correct hash3644 metadata3645 presents correct hash3646 trace3647 presents correct hash3648 metrics_referee3649 presents correct hash3650 network_referee3651 presents correct hash3652 junit3653 presents correct hash3654 accessibility3655 presents correct hash3656 codequality3657 presents correct hash3658 sast3659 presents correct hash3660 secret_detection3661 presents correct hash3662 dependency_scanning3663 presents correct hash3664 container_scanning3665 presents correct hash3666 cluster_image_scanning3667 presents correct hash3668 dast3669 presents correct hash3670 license_scanning3671 presents correct hash3672 performance3673 presents correct hash3674 browser_performance3675 presents correct hash3676 load_performance3677 presents correct hash3678 metrics3679 presents correct hash3680 lsif3681 presents correct hash3682 dotenv3683 presents correct hash3684 cobertura3685 presents correct hash3686 terraform3687 presents correct hash3688 cluster_applications3689 presents correct hash3690 requirements3691 presents correct hash3692 coverage_fuzzing3693 presents correct hash3694 api_fuzzing3695 presents correct hash3696 when option has both archive and reports specification3697 presents correct hash3698 when archive specifies 'expire_in' keyword3699 inherits expire_in from archive3700 when option has no artifact keywords3701 does not present hash3702 #ref_type3703 returns the correct ref type3704 when tag is false3705 returns the correct ref type3706 #git_depth3707 defaults to git depth setting for the project3708 when GIT_DEPTH variable is specified3709 returns its value3710 #refspecs3711 returns the correct refspecs3712 uses a SHA in the persistent refspec3713 when ref is tag3714 returns the correct refspecs3715 when GIT_DEPTH is zero3716 returns the correct refspecs3717 when pipeline is detached merge request pipeline3718 returns the correct refspecs3719 when GIT_DEPTH is zero3720 returns the correct refspecs3721 when pipeline is legacy detached merge request pipeline3722 returns the correct refspecs3723 when persistent pipeline ref exists3724 exposes the persistent pipeline ref3725 #runner_variables3726 behaves like returns an array with the expected variables3727 returns an array3728 returns the expected variables3729 #runner_variables subset3730 with references in pipeline variables3731 returns expanded and sorted variables3732Gitlab::SidekiqMiddleware::ServerMetrics3733 behaves like metrics middleware with worker attribution3734 when workers are not attributed3735 behaves like a metrics middleware3736 with mocked prometheus3737 .initialize_process_metrics3738 sets concurrency metrics3739 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3740 when the sidekiq_job_completion_metric_initialize feature flag is disabled3741 sets the concurrency metric3742 does not initialize sidekiq_jobs_completion_seconds3743 #call3744 yields block3745 calls BackgroundTransaction3746 sets queue specific metrics3747 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3748 sets the thread name if it was nil3749 when job_duration is not available3750 does not set the queue_duration_seconds histogram3751 when error is raised3752 sets sidekiq_jobs_failed_total and reraises3753 when job is retried3754 sets sidekiq_jobs_retried_total metric3755 with prometheus integrated3756 #call3757 yields block3758 when error is raised3759 sets sidekiq_jobs_failed_total and reraises3760 when a worker is wrapped into ActiveJob3761 behaves like a metrics middleware3762 with mocked prometheus3763 .initialize_process_metrics3764 sets concurrency metrics3765 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3766 when the sidekiq_job_completion_metric_initialize feature flag is disabled3767 sets the concurrency metric3768 does not initialize sidekiq_jobs_completion_seconds3769 #call3770 yields block3771 calls BackgroundTransaction3772 sets queue specific metrics3773 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3774 sets the thread name if it was nil3775 when job_duration is not available3776 does not set the queue_duration_seconds histogram3777 when error is raised3778 sets sidekiq_jobs_failed_total and reraises3779 when job is retried3780 sets sidekiq_jobs_retried_total metric3781 with prometheus integrated3782 #call3783 yields block3784 when error is raised3785 sets sidekiq_jobs_failed_total and reraises3786 when workers are attributed3787 high urgency3788 behaves like a metrics middleware3789 with mocked prometheus3790 .initialize_process_metrics3791 sets concurrency metrics3792 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3793 when the sidekiq_job_completion_metric_initialize feature flag is disabled3794 sets the concurrency metric3795 does not initialize sidekiq_jobs_completion_seconds3796 #call3797 yields block3798 calls BackgroundTransaction3799 sets queue specific metrics3800 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3801 sets the thread name if it was nil3802 when job_duration is not available3803 does not set the queue_duration_seconds histogram3804 when error is raised3805 sets sidekiq_jobs_failed_total and reraises3806 when job is retried3807 sets sidekiq_jobs_retried_total metric3808 with prometheus integrated3809 #call3810 yields block3811 when error is raised3812 sets sidekiq_jobs_failed_total and reraises3813 no urgency3814 behaves like a metrics middleware3815 with mocked prometheus3816 .initialize_process_metrics3817 sets concurrency metrics3818 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3819 when the sidekiq_job_completion_metric_initialize feature flag is disabled3820 sets the concurrency metric3821 does not initialize sidekiq_jobs_completion_seconds3822 #call3823 yields block3824 calls BackgroundTransaction3825 sets queue specific metrics3826 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3827 sets the thread name if it was nil3828 when job_duration is not available3829 does not set the queue_duration_seconds histogram3830 when error is raised3831 sets sidekiq_jobs_failed_total and reraises3832 when job is retried3833 sets sidekiq_jobs_retried_total metric3834 with prometheus integrated3835 #call3836 yields block3837 when error is raised3838 sets sidekiq_jobs_failed_total and reraises3839 external dependencies3840 behaves like a metrics middleware3841 with mocked prometheus3842 .initialize_process_metrics3843 sets concurrency metrics3844 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3845 when the sidekiq_job_completion_metric_initialize feature flag is disabled3846 sets the concurrency metric3847 does not initialize sidekiq_jobs_completion_seconds3848 #call3849 yields block3850 calls BackgroundTransaction3851 sets queue specific metrics3852 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3853 sets the thread name if it was nil3854 when job_duration is not available3855 does not set the queue_duration_seconds histogram3856 when error is raised3857 sets sidekiq_jobs_failed_total and reraises3858 when job is retried3859 sets sidekiq_jobs_retried_total metric3860 with prometheus integrated3861 #call3862 yields block3863 when error is raised3864 sets sidekiq_jobs_failed_total and reraises3865 cpu boundary3866 behaves like a metrics middleware3867 with mocked prometheus3868 .initialize_process_metrics3869 sets concurrency metrics3870 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3871 when the sidekiq_job_completion_metric_initialize feature flag is disabled3872 sets the concurrency metric3873 does not initialize sidekiq_jobs_completion_seconds3874 #call3875 yields block3876 calls BackgroundTransaction3877 sets queue specific metrics3878 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3879 sets the thread name if it was nil3880 when job_duration is not available3881 does not set the queue_duration_seconds histogram3882 when error is raised3883 sets sidekiq_jobs_failed_total and reraises3884 when job is retried3885 sets sidekiq_jobs_retried_total metric3886 with prometheus integrated3887 #call3888 yields block3889 when error is raised3890 sets sidekiq_jobs_failed_total and reraises3891 memory boundary3892 behaves like a metrics middleware3893 with mocked prometheus3894 .initialize_process_metrics3895 sets concurrency metrics3896 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3897 when the sidekiq_job_completion_metric_initialize feature flag is disabled3898 sets the concurrency metric3899 does not initialize sidekiq_jobs_completion_seconds3900 #call3901 yields block3902 calls BackgroundTransaction3903 sets queue specific metrics3904 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3905 sets the thread name if it was nil3906 when job_duration is not available3907 does not set the queue_duration_seconds histogram3908 when error is raised3909 sets sidekiq_jobs_failed_total and reraises3910 when job is retried3911 sets sidekiq_jobs_retried_total metric3912 with prometheus integrated3913 #call3914 yields block3915 when error is raised3916 sets sidekiq_jobs_failed_total and reraises3917 feature category3918 behaves like a metrics middleware3919 with mocked prometheus3920 .initialize_process_metrics3921 sets concurrency metrics3922 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3923 when the sidekiq_job_completion_metric_initialize feature flag is disabled3924 sets the concurrency metric3925 does not initialize sidekiq_jobs_completion_seconds3926 #call3927 yields block3928 calls BackgroundTransaction3929 sets queue specific metrics3930 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3931 sets the thread name if it was nil3932 when job_duration is not available3933 does not set the queue_duration_seconds histogram3934 when error is raised3935 sets sidekiq_jobs_failed_total and reraises3936 when job is retried3937 sets sidekiq_jobs_retried_total metric3938 with prometheus integrated3939 #call3940 yields block3941 when error is raised3942 sets sidekiq_jobs_failed_total and reraises3943 combined3944 behaves like a metrics middleware3945 with mocked prometheus3946 .initialize_process_metrics3947 sets concurrency metrics3948 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process3949 when the sidekiq_job_completion_metric_initialize feature flag is disabled3950 sets the concurrency metric3951 does not initialize sidekiq_jobs_completion_seconds3952 #call3953 yields block3954 calls BackgroundTransaction3955 sets queue specific metrics3956 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics3957 sets the thread name if it was nil3958 when job_duration is not available3959 does not set the queue_duration_seconds histogram3960 when error is raised3961 sets sidekiq_jobs_failed_total and reraises3962 when job is retried3963 sets sidekiq_jobs_retried_total metric3964 with prometheus integrated3965 #call3966 yields block3967 when error is raised3968 sets sidekiq_jobs_failed_total and reraises3969 DB load balancing3970 #call3971 when worker declares data consistency3972 increments load balancing counter with defined data consistency3973 when worker does not declare data consistency3974 increments load balancing counter with default data consistency3975 feature attribution3976 when a worker has a feature category3977 uses that category for metrics3978 when a worker does not have a feature category3979 uses the category from the context for metrics3980GroupsHelper3981 #group_icon_url3982 returns an url for the avatar3983 gives default avatar_icon when no avatar is present3984 #group_lfs_status3985 only one project in group3986 returns all projects as enabled3987 returns all projects as disabled3988 more than one project in group3989 LFS enabled in group3990 returns both projects as enabled3991 returns only one as enabled3992 LFS disabled in group3993 returns both projects as disabled3994 returns only one as disabled3995 #group_title3996 enqueues the elements in the breadcrumb schema list3997 avoids N+1 queries3998 traversal queries3999 recursive4000 outputs the groups in the correct order4001 linear4002 outputs the groups in the correct order4003 #share_with_group_lock_help_text4004 traversal queries4005 recursive4006 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4007 has the correct help text with correct ancestor links4008 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4009 has the correct help text with correct ancestor links4010 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4011 has the correct help text with correct ancestor links4012 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4013 has the correct help text with correct ancestor links4014 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4015 has the correct help text with correct ancestor links4016 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4017 has the correct help text with correct ancestor links4018 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4019 has the correct help text with correct ancestor links4020 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4021 has the correct help text with correct ancestor links4022 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4023 has the correct help text with correct ancestor links4024 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4025 has the correct help text with correct ancestor links4026 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4027 has the correct help text with correct ancestor links4028 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4029 has the correct help text with correct ancestor links4030 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4031 has the correct help text with correct ancestor links4032 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4033 has the correct help text with correct ancestor links4034 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4035 has the correct help text with correct ancestor links4036 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4037 has the correct help text with correct ancestor links4038 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4039 has the correct help text with correct ancestor links4040 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4041 has the correct help text with correct ancestor links4042 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4043 has the correct help text with correct ancestor links4044 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4045 has the correct help text with correct ancestor links4046 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4047 has the correct help text with correct ancestor links4048 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4049 has the correct help text with correct ancestor links4050 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4051 has the correct help text with correct ancestor links4052 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4053 has the correct help text with correct ancestor links4054 linear4055 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4056 has the correct help text with correct ancestor links4057 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4058 has the correct help text with correct ancestor links4059 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4060 has the correct help text with correct ancestor links4061 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4062 has the correct help text with correct ancestor links4063 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4064 has the correct help text with correct ancestor links4065 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4066 has the correct help text with correct ancestor links4067 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4068 has the correct help text with correct ancestor links4069 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4070 has the correct help text with correct ancestor links4071 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4072 has the correct help text with correct ancestor links4073 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4074 has the correct help text with correct ancestor links4075 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4076 has the correct help text with correct ancestor links4077 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4078 has the correct help text with correct ancestor links4079 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4080 has the correct help text with correct ancestor links4081 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4082 has the correct help text with correct ancestor links4083 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4084 has the correct help text with correct ancestor links4085 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4086 has the correct help text with correct ancestor links4087 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4088 has the correct help text with correct ancestor links4089 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4090 has the correct help text with correct ancestor links4091 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4092 has the correct help text with correct ancestor links4093 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4094 has the correct help text with correct ancestor links4095 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4096 has the correct help text with correct ancestor links4097 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4098 has the correct help text with correct ancestor links4099 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4100 has the correct help text with correct ancestor links4101 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4102 has the correct help text with correct ancestor links4103 #parent_group_options4104 includes explicitly owned groups except self4105 excludes parent group4106 includes subgroups with inherited ownership4107 excludes own subgroups4108 #can_disable_group_emails?4109 returns true for the group owner4110 returns false for anyone else4111 when subgroups4112 returns false if parent group is disabling emails4113 returns true if parent group is not disabling emails4114 #can_update_default_branch_protection?4115 for users who can update default branch protection of the group4116 is expected to be truthy4117 for users who cannot update default branch protection of the group4118 is expected to be falsey4119 #show_thanks_for_purchase_banner?4120 returns true with purchased_quantity present in params4121 returns false with purchased_quantity not present in params4122 returns false with purchased_quantity is empty in params4123 #render_setting_to_allow_project_access_token_creation?4124 returns true if group is root4125 returns false if group is subgroup4126 #can_admin_group_member?4127 returns true when current_user can admin members4128 returns false when current_user can not admin members4129 #localized_jobs_to_be_done_choices4130 has a translation for all `jobs_to_be_done` values4131DesignManagement::CopyDesignCollection::CopyService4132 returns an error response4133 when user has permission to read the design collection4134 returns an error response4135 when the user also has permission to admin the target issue4136 returns an error response4137 when the target design collection has been queued4138 returns an error response4139 when design collection has designs4140 returns a success response4141 creates a design repository for the target project4142 copies the designs correctly4143 copies the design versions correctly4144 copies the design actions correctly4145 copies design notes correctly4146 links the LfsObjects4147 copies the Git repository data4148 creates a default branch if none previously existed4149 does not create default branch when one exists4150 leaves the design collection in the correct copy state4151 when target issue already has designs4152 returns an error response4153 when target project already has designs4154 sets IIDs for new designs above existing ones4155 does not allow for IID collisions4156 when the target project already has a design repository4157 returns a success response4158 rollback4159 returns an error response4160 rollsback all PostgreSQL data created4161 does not alter master branch4162 sets the design collection copy state4163 Alert if schema changes4164 is expected to contain exactly "id", "project_id", "issue_id", "filename", "relative_position", and "iid"4165 is expected to contain exactly "id", "design_id", "version_id", "event", and "image_v432x230"4166 is expected to contain exactly "id", "sha", "issue_id", "created_at", and "author_id"4167MergeRequestTargetProjectFinder4168 public projects4169 behaves like finding related projects4170 finds sibling projects and base project4171 does not include projects that have merge requests turned off by default4172 includes projects that have merge requests turned off by default with a more-permissive project feature4173 does not contain archived projects4174 does not include routes by default4175 includes routes when requested4176 private projects4177 only finds the projects the user is a member of4178 when the user is a member of all projects4179 behaves like finding related projects4180 finds sibling projects and base project4181 does not include projects that have merge requests turned off by default4182 includes projects that have merge requests turned off by default with a more-permissive project feature4183 does not contain archived projects4184 does not include routes by default4185 includes routes when requested4186Ci::BuildDependencies4187 for local dependencies4188 jobs from previous stages4189 when job is in the first stage4190 is expected to be empty4191 when job is in the second stage4192 contains all jobs from the first stage4193 when job is in the last stage4194 contains all jobs from all previous stages4195 when a job is retried4196 contains the retried job instead of the original one4197 when needs refer to jobs from the same stage4198 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 259, stage_id: 231, tag_list: nil>4199 jobs from specified dependencies4200 when dependencies are defined4201 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 262, stage_id: 233, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 264, stage_id: 234, tag_list: nil>4202 when needs are defined4203 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 266, stage_id: 235, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 267, stage_id: 236, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 269, stage_id: 237, tag_list: nil>4204 when need artifacts are defined4205 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 271, stage_id: 238, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 274, stage_id: 240, tag_list: nil>4206 when needs and dependencies are defined4207 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 277, stage_id: 242, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, trace: nil, created_at: "2021-12-20 08:50:29.0000000...resource_at: nil, processed: false, scheduling_type: "stage", id: 279, stage_id: 243, tag_list: nil>4208 when needs and dependencies contradict4209 returns only the intersection4210 when nor dependencies or needs are defined4211 returns the jobs from previous stages4212 for cross_pipeline dependencies4213 when dependency specifications are valid4214 when pipeline exists in the hierarchy4215 when job exists4216 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2021-12-20 08:53:29.000000000 +0000", trace: nil, create...resource_at: nil, processed: false, scheduling_type: "stage", id: 296, stage_id: 250, tag_list: nil>4217 is expected to be valid4218 when pipeline and job are specified via variables4219 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2021-12-20 08:53:29.000000000 +0000", trace: nil, create...resource_at: nil, processed: false, scheduling_type: "stage", id: 311, stage_id: 258, tag_list: nil>4220 is expected to be valid4221 when same job names exist in other pipelines in the hierarchy4222 returns a limited number of dependencies with the right match4223 when job does not exist4224 is expected to be empty4225 is expected not to be valid4226 when pipeline does not exist4227 is expected to be empty4228 is expected not to be valid4229 when jobs exist in different pipelines in the hierarchy4230 when pipeline and jobs dependencies are mismatched4231 is expected to be empty4232 is expected not to be valid4233 when dependencies contain a valid pair4234 filters out the invalid ones4235 is expected not to be valid4236 when job and pipeline exist outside the hierarchy4237 ignores jobs outside the pipeline hierarchy4238 is expected not to be valid4239 when current pipeline is specified4240 ignores jobs from the current pipeline as simple needs should be used instead4241 is expected not to be valid4242 when artifacts:false4243 is expected to be empty4244 is expected to be valid4245 #all4246 returns the union of all local dependencies and any cross project dependencies4247 #valid?4248 is expected to eq true4249 when a local dependency is invalid4250 is expected to eq false4251RepositoryForkWorker4252 modules4253 includes ProjectImportOptions4254 #perform4255 only project ID passed4256 behaves like RepositoryForkWorker performing4257 creates a new repository from a fork4258 protects the default branch4259 flushes various caches4260 handles bad fork4261 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4262 handles LFS objects link failure4263 when a worker was reset without cleanup4264 creates a new repository from a fork4265 project ID, storage and repo paths passed4266 behaves like RepositoryForkWorker performing4267 creates a new repository from a fork4268 protects the default branch4269 flushes various caches4270 handles bad fork4271 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects4272 handles LFS objects link failure4273 when a worker was reset without cleanup4274 creates a new repository from a fork4275Gitlab::UrlBuilder4276 #build4277 delegates to the class method4278 .build4279 factory: :project, path_generator: ->(project) { "/#{project.full_path}" }4280 returns the full URL4281 returns only the path if only_path is given4282 factory: :board, path_generator: ->(board) { "/#{board.project.full_path}/-/boards/#{board.id}" }4283 returns the full URL4284 returns only the path if only_path is given4285 factory: :group_board, path_generator: ->(board) { "/groups/#{board.group.full_path}/-/boards/#{board.id}" }4286 returns the full URL4287 returns only the path if only_path is given4288 factory: :commit, path_generator: ->(commit) { "/#{commit.project.full_path}/-/commit/#{commit.id}" }4289 returns the full URL4290 returns only the path if only_path is given4291 factory: :issue, path_generator: ->(issue) { "/#{issue.project.full_path}/-/issues/#{issue.iid}" }4292 returns the full URL4293 returns only the path if only_path is given4294 factory: :merge_request, path_generator: ->(merge_request) { "/#{merge_request.project.full_path}/-/merge_requests/#{merge_request.iid}" }4295 returns the full URL4296 returns only the path if only_path is given4297 factory: :project_milestone, path_generator: ->(milestone) { "/#{milestone.project.full_path}/-/milestones/#{milestone.iid}" }4298 returns the full URL4299 returns only the path if only_path is given4300 factory: :project_snippet, path_generator: ->(snippet) { "/#{snippet.project.full_path}/-/snippets/#{snippet.id}" }4301 returns the full URL4302 returns only the path if only_path is given4303 factory: :project_wiki, path_generator: ->(wiki) { "/#{wiki.container.full_path}/-/wikis/home" }4304 returns the full URL4305 returns only the path if only_path is given4306 factory: :release, path_generator: ->(release) { "/#{release.project.full_path}/-/releases/#{release.tag}" }4307 returns the full URL4308 returns only the path if only_path is given4309 factory: :ci_build, path_generator: ->(build) { "/#{build.project.full_path}/-/jobs/#{build.id}" }4310 returns the full URL4311 returns only the path if only_path is given4312 factory: :design, path_generator: ->(design) { "/#{design.project.full_path}/-/design_management/designs/#{design.id}/raw_image" }4313 returns the full URL4314 returns only the path if only_path is given4315 factory: :group, path_generator: ->(group) { "/groups/#{group.full_path}" }4316 returns the full URL4317 returns only the path if only_path is given4318 factory: :group_milestone, path_generator: ->(milestone) { "/groups/#{milestone.group.full_path}/-/milestones/#{milestone.iid}" }4319 returns the full URL4320 returns only the path if only_path is given4321 factory: :user, path_generator: ->(user) { "/#{user.full_path}" }4322 returns the full URL4323 returns only the path if only_path is given4324 factory: :personal_snippet, path_generator: ->(snippet) { "/-/snippets/#{snippet.id}" }4325 returns the full URL4326 returns only the path if only_path is given4327 factory: :wiki_page, path_generator: ->(wiki_page) { "#{wiki_page.wiki.wiki_base_path}/#{wiki_page.slug}" }4328 returns the full URL4329 returns only the path if only_path is given4330 factory: :note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }4331 returns the full URL4332 returns only the path if only_path is given4333 factory: :diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }4334 returns the full URL4335 returns only the path if only_path is given4336 factory: :discussion_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }4337 returns the full URL4338 returns only the path if only_path is given4339 factory: :legacy_diff_note_on_commit, path_generator: ->(note) { "/#{note.project.full_path}/-/commit/#{note.commit_id}#note_#{note.id}" }4340 returns the full URL4341 returns only the path if only_path is given4342 factory: :note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }4343 returns the full URL4344 returns only the path if only_path is given4345 factory: :discussion_note_on_issue, path_generator: ->(note) { "/#{note.project.full_path}/-/issues/#{note.noteable.iid}#note_#{note.id}" }4346 returns the full URL4347 returns only the path if only_path is given4348 factory: :note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }4349 returns the full URL4350 returns only the path if only_path is given4351 factory: :diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }4352 returns the full URL4353 returns only the path if only_path is given4354 factory: :discussion_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }4355 returns the full URL4356 returns only the path if only_path is given4357 factory: :legacy_diff_note_on_merge_request, path_generator: ->(note) { "/#{note.project.full_path}/-/merge_requests/#{note.noteable.iid}#note_#{note.id}" }4358 returns the full URL4359 returns only the path if only_path is given4360 factory: :note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }4361 returns the full URL4362 returns only the path if only_path is given4363 factory: :discussion_note_on_project_snippet, path_generator: ->(note) { "/#{note.project.full_path}/-/snippets/#{note.noteable_id}#note_#{note.id}" }4364 returns the full URL4365 returns only the path if only_path is given4366 factory: :discussion_note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }4367 returns the full URL4368 returns only the path if only_path is given4369 factory: :note_on_personal_snippet, path_generator: ->(note) { "/-/snippets/#{note.noteable_id}#note_#{note.id}" }4370 returns the full URL4371 returns only the path if only_path is given4372 when passing a compare4373 returns the full URL4374 returns only the path if only_path is given4375 returns an empty string for missing project4376 when passing a commit without a project4377 returns an empty string4378 when passing a commit note without a project4379 returns an empty string4380 when passing a Snippet4381 for a PersonalSnippet4382 returns a raw snippet URL if requested4383 returns a raw snippet blob URL if requested4384 for a ProjectSnippet4385 returns a raw snippet URL if requested4386 returns a raw snippet blob URL if requested4387 when passing a Wiki4388 #wiki_url4389 uses the default collection action4390 supports a custom collection action4391 #wiki_page_url4392 uses the default member action4393 supports a custom member action4394 when passing a DesignManagement::Design4395 uses the given ref and size in the URL4396 when passing an unsupported class4397 raises an exception4398 when passing a batch loaded model4399 returns the URL for the real object4400Clusters::Kubernetes::CreateOrUpdateNamespaceService#execute4401 group clusters4402 when kubernetes namespace is not persisted4403 behaves like successful creation of kubernetes namespace4404 creates a Clusters::KubernetesNamespace4405 creates project service account and namespace4406 configures kubernetes token4407 without environment4408 creates project service account and namespace4409 project clusters4410 when kubernetes namespace is not persisted4411 behaves like successful creation of kubernetes namespace4412 creates a Clusters::KubernetesNamespace4413 creates project service account and namespace4414 configures kubernetes token4415 without environment4416 creates project service account and namespace4417 when there is a Kubernetes Namespace associated4418 does not create any Clusters::KubernetesNamespace4419 creates project service account4420 updates Clusters::KubernetesNamespace4421Serverless::Domain4422 .new4423 with valid arguments4424 behaves like a valid Domain4425 #uri4426 matches valid URI4427 #function_name4428 returns function_name4429 #serverless_domain_cluster4430 returns serverless_domain_cluster4431 #environment4432 returns environment4433 with invalid arguments4434 is expected not to be valid4435 with nil cluster argument4436 is expected not to be valid4437 .generate_uuid4438 has 14 characters4439 consists of only hexadecimal characters4440 uses random characters4441Ability4442 using a nil subject4443 has no permissions4444 .users_that_can_read_project4445 using a public project4446 returns all the users4447 using an internal project4448 returns users that are administrators4449 returns internal users while skipping external users4450 returns external users if they are the project owner4451 returns external users if they are project members4452 returns an empty Array if all users are external users without access4453 using a private project4454 returns users that are administrators when admin mode is enabled4455 does not return users that are administrators when admin mode is disabled4456 returns external users if they are the project owner4457 returns external users if they are project members4458 returns an empty Array if all users are internal users without access4459 returns an empty Array if all users are external users without access4460 .users_that_can_read_personal_snippet4461 private snippet is readable only by its author4462 public snippet is readable by all users4463 .merge_requests_readable_by_user4464 with an admin when admin mode is enabled4465 returns all merge requests4466 with an admin when admin mode is disabled4467 returns merge_requests that are publicly visible4468 without a user4469 returns merge_requests that are publicly visible4470 with a user4471 returns projects visible to the user4472 when a user cannot read cross project and a filter is passed4473 returns only MRs of the specified project without checking access on others4474 .issues_readable_by_user4475 with an admin when admin mode is enabled4476 returns all given issues4477 with an admin when admin mode is disabled4478 returns the issues readable by the admin4479 returns no issues when not given access4480 with a regular user4481 returns the issues readable by the user4482 returns an empty Array when no issues are readable4483 without a regular user4484 returns issues that are publicly visible4485 when the user cannot read cross project4486 excludes issues from other projects whithout checking separatly when passing a scope4487 .feature_flags_readable_by_user4488 without a user4489 returns no feature flags4490 with a user4491 returns feature flags visible to the user4492 when a user cannot read cross project and a filter is passed4493 returns only feature flags of the specified project without checking access on others4494 .project_disabled_features_rules4495 wiki named abilities4496 disables wiki abilities if the project has no wiki4497 forgetting4498 allows us to discard specific values from the DeclarativePolicy cache4499 when bypassing the session4500 allows us to have re-entrant evaluation of admin-only permissions4501Route4502 relationships4503 is expected to belong to source required: false4504 validations4505 is expected to validate that :source cannot be empty/falsy4506 is expected to validate that :path cannot be empty/falsy4507 is expected to validate that :path is case-insensitively unique4508 callbacks4509 before validation4510 calls #delete_conflicting_orphaned_routes4511 after update4512 calls #create_redirect_for_old_path4513 calls #delete_conflicting_redirects4514 after create4515 calls #delete_conflicting_redirects4516 .inside_path4517 returns correct routes4518 .for_routable_type4519 returns correct routes4520 #rename_descendants4521 path update4522 when route name is set4523 updates children routes with new path4524 when route name is nil4525 does not fail4526 when conflicting redirects exist4527 deletes the conflicting redirects4528 name update4529 updates children routes with new path4530 handles a rename from nil4531 #create_redirect_for_old_path4532 if the path changed4533 creates a RedirectRoute for the old path4534 #create_redirect4535 creates a RedirectRoute with the same source4536 when the source is a Project4537 creates a RedirectRoute4538 when the source is not a project4539 creates a RedirectRoute4540 #delete_conflicting_redirects4541 deletes the redirect4542 when a redirect route with the same path exists4543 when the redirect route has matching case4544 deletes the redirect4545 when redirect routes with paths descending from the route path exists4546 deletes all redirects with paths that descend from the route path4547 when the redirect route is differently cased4548 deletes the redirect4549 #conflicting_redirects4550 returns an ActiveRecord::Relation4551 returns the redirect routes4552 when a redirect route with the same path exists4553 when the redirect route has matching case4554 returns the redirect route4555 when redirect routes with paths descending from the route path exists4556 returns the redirect routes4557 when the redirect route is differently cased4558 returns the redirect route4559 #delete_conflicting_orphaned_routes4560 when there is a conflicting route4561 when the route is orphaned4562 deletes the orphaned route4563 passes validation, as usual4564 when the route is not orphaned4565 does not delete the conflicting route4566 fails validation, as usual4567 when there are no conflicting routes4568 does not delete any routes4569 passes validation, as usual4570Gitlab::Usage::MetricDefinition4571 has all definitons valid4572 #with_instrumentation_class4573 includes definitions with instrumentation_class4574 with removed metric4575 excludes removed definitions4576 #key4577 returns a symbol from name4578 #validate4579 attribute: :description, value: nil4580 raise exception4581 with skip_validation4582 raise exception if skip_validation: false4583 does not raise exception if has skip_validation: true4584 attribute: :value_type, value: nil4585 raise exception4586 with skip_validation4587 raise exception if skip_validation: false4588 does not raise exception if has skip_validation: true4589 attribute: :value_type, value: "test"4590 raise exception4591 with skip_validation4592 raise exception if skip_validation: false4593 does not raise exception if has skip_validation: true4594 attribute: :status, value: nil4595 raise exception4596 with skip_validation4597 raise exception if skip_validation: false4598 does not raise exception if has skip_validation: true4599 attribute: :milestone, value: nil4600 raise exception4601 with skip_validation4602 raise exception if skip_validation: false4603 does not raise exception if has skip_validation: true4604 attribute: :data_category, value: nil4605 raise exception4606 with skip_validation4607 raise exception if skip_validation: false4608 does not raise exception if has skip_validation: true4609 attribute: :key_path, value: nil4610 raise exception4611 with skip_validation4612 raise exception if skip_validation: false4613 does not raise exception if has skip_validation: true4614 attribute: :product_group, value: nil4615 raise exception4616 with skip_validation4617 raise exception if skip_validation: false4618 does not raise exception if has skip_validation: true4619 attribute: :time_frame, value: nil4620 raise exception4621 with skip_validation4622 raise exception if skip_validation: false4623 does not raise exception if has skip_validation: true4624 attribute: :time_frame, value: "29d"4625 raise exception4626 with skip_validation4627 raise exception if skip_validation: false4628 does not raise exception if has skip_validation: true4629 attribute: :data_source, value: "other"4630 raise exception4631 with skip_validation4632 raise exception if skip_validation: false4633 does not raise exception if has skip_validation: true4634 attribute: :data_source, value: nil4635 raise exception4636 with skip_validation4637 raise exception if skip_validation: false4638 does not raise exception if has skip_validation: true4639 attribute: :distribution, value: nil4640 raise exception4641 with skip_validation4642 raise exception if skip_validation: false4643 does not raise exception if has skip_validation: true4644 attribute: :distribution, value: "test"4645 raise exception4646 with skip_validation4647 raise exception if skip_validation: false4648 does not raise exception if has skip_validation: true4649 attribute: :tier, value: ["test", "ee"]4650 raise exception4651 with skip_validation4652 raise exception if skip_validation: false4653 does not raise exception if has skip_validation: true4654 attribute: :name, value: "count_<adjective_describing>_boards"4655 raise exception4656 with skip_validation4657 raise exception if skip_validation: false4658 does not raise exception if has skip_validation: true4659 attribute: :repair_issue_url, value: nil4660 raise exception4661 with skip_validation4662 raise exception if skip_validation: false4663 does not raise exception if has skip_validation: true4664 attribute: :instrumentation_class, value: "Metric_Class"4665 raise exception4666 with skip_validation4667 raise exception if skip_validation: false4668 does not raise exception if has skip_validation: true4669 attribute: :instrumentation_class, value: "metricClass"4670 raise exception4671 with skip_validation4672 raise exception if skip_validation: false4673 does not raise exception if has skip_validation: true4674 conditional validations4675 when metric has broken status4676 has to have repair issue url provided4677 statuses4678 status: "deprecated", skip_validation?: true4679 returns true/false for skip_validation4680 status: "removed", skip_validation?: true4681 returns true/false for skip_validation4682 status: "active", skip_validation?: false4683 returns true/false for skip_validation4684 .load_all!4685 has empty list when there are no definition files4686 has one metric when there is one file4687 when the same metric is defined multiple times raises exception4688 dump_metrics_yaml4689 returns a YAML with both metrics in a sequence4690MergeRequests::FfMergeService4691 #execute4692 valid params4693 does not create merge commit4694 keeps the merge request valid4695 updates the merge request to merged4696 sends email to user2 about merge of new merge_request4697 creates resource event about merge_request merge4698 does not update squash_commit_sha if it is not a squash4699 updates squash_commit_sha if it is a squash4700 error handling4701 logs and saves error if there is an exception4702 logs and saves error if there is an PreReceiveError exception4703 does not update squash_commit_sha if squash merge is not successful4704Clusters::Applications::CheckUpgradeProgressService4705 #execute4706 when upgrade pod succeeded4707 make the application upgraded4708 behaves like a terminated upgrade4709 removes the POD4710 when upgrade pod failed4711 make the application update errored4712 behaves like a terminated upgrade4713 removes the POD4714 behaves like a not yet terminated upgrade4715 when phase is Pending4716 when not timed out4717 reschedule a new check4718 when timed out4719 make the application update errored4720 behaves like a terminated upgrade4721 removes the POD4722 behaves like a not yet terminated upgrade4723 when phase is Running4724 when not timed out4725 reschedule a new check4726 when timed out4727 make the application update errored4728 behaves like a terminated upgrade4729 removes the POD4730 behaves like a not yet terminated upgrade4731 when phase is Unknown4732 when not timed out4733 reschedule a new check4734 when timed out4735 make the application update errored4736 behaves like a terminated upgrade4737 removes the POD4738ResourceAccessTokens::CreateService4739 #execute4740 when resource is a project4741 when user does not have permission to create a resource bot4742 returns the permission error message4743 behaves like token creation fails4744 does not add the project bot as a member4745 immediately destroys the bot user if one was created4746 user with valid permission4747 behaves like allows creation of bot with valid params4748 is expected to change `User.count` by 14749 creates resource bot user4750 logs the event4751 email confirmation status4752 when created by an admin4753 when admin mode is enabled4754 behaves like creates a user that has their email confirmed4755 creates a user that has their email confirmed4756 when admin mode is disabled4757 returns error4758 when created by a non-admin4759 behaves like creates a user that has their email confirmed4760 creates a user that has their email confirmed4761 bot name4762 when no name is passed4763 uses default name4764 when user provides name4765 overrides the default name value4766 access level4767 when user does not specify an access level4768 adds the bot user as a maintainer in the resource4769 when user specifies an access level4770 adds the bot user with the specified access level in the resource4771 when user is external4772 creates resource bot user with external status4773 personal access token4774 is expected to change `PersonalAccessToken.count` by 14775 when user does not provide scope4776 has default scopes4777 when user provides scope explicitly4778 overrides the default scope value4779 expires_at4780 when no expiration value is passed4781 uses nil expiration value4782 expiry of the project bot member4783 project bot membership does not expire4784 when user provides expiration value4785 overrides the default expiration value4786 expiry of the project bot member4787 sets the project bot to expire on the same day as the token4788 when invalid scope is passed4789 returns the scope error message4790 behaves like token creation fails4791 does not add the project bot as a member4792 immediately destroys the bot user if one was created4793 when access provisioning fails4794 returns the provisioning error message4795 behaves like token creation fails4796 does not add the project bot as a member4797 immediately destroys the bot user if one was created4798Issues::DuplicateService4799 #execute4800 when the issues passed are the same4801 does nothing4802 when the user cannot update the duplicate issue4803 does nothing4804 when the user cannot comment on the canonical issue4805 does nothing4806 when the user can mark the issue as a duplicate4807 closes the duplicate issue4808 adds a system note to the duplicate issue4809 adds a system note to the canonical issue4810 updates duplicate issue with canonical issue id4811 relates the duplicate issues4812Gitlab::Database::Reflection4813 #username4814 when a username is set4815 returns the username4816 when a username is not set4817 returns the value of the USER environment variable4818 #database_name4819 returns the name of the database4820 #adapter_name4821 returns the database adapter name4822 #human_adapter_name4823 when the adapter is PostgreSQL4824 returns PostgreSQL4825 when the adapter is not PostgreSQL4826 returns Unknown4827 #postgresql?4828 when using PostgreSQL4829 returns true4830 when not using PostgreSQL4831 returns false4832 #db_read_only?4833 detects a read-only database4834 detects a read-only database4835 detects a read-write database4836 detects a read-write database4837 #db_read_write?4838 detects a read-only database4839 detects a read-only database4840 detects a read-write database4841 detects a read-write database4842 #version4843 memoizes the result4844 on postgresql4845 extracts the version number4846 #postgresql_minimum_supported_version?4847 returns false when using PostgreSQL 104848 returns false when using PostgreSQL 114849 returns true when using PostgreSQL 124850 #cached_column_exists?4851 only retrieves the data from the schema cache4852 #cached_table_exists?4853 only retrieves the data from the schema cache4854 returns false when database does not exist4855 #exists?4856 returns true if the database exists4857 returns false if the database doesn't exist4858 #system_id4859 returns the PostgreSQL system identifier4860 #flavor4861 re-raises exceptions not matching expected messages4862 recognizes Amazon Aurora PostgreSQL4863 recognizes PostgreSQL on Amazon RDS4864 recognizes CloudSQL for PostgreSQL4865 recognizes Azure Database for PostgreSQL - Flexible Server4866 recognizes Azure Database for PostgreSQL - Single Server4867 returns nil if can not recognize the flavor4868 #config4869 returns a HashWithIndifferentAccess4870 returns a default pool size4871 does not cache its results4872Namespace::RootStorageStatistics4873 is expected to belong to namespace required: false4874 is expected to have one route through namespace4875 is expected to delegate #all_projects to the #namespace object4876 scopes4877 .for_namespace_ids4878 returns only requested namespaces4879 #recalculate!4880 behaves like data refresh4881 aggregates project statistics4882 works when there are no projects4883 behaves like does not include personal snippets4884 is expected not to receive from_personal_snippets(*(any args)) 0 times4885 with subgroups4886 behaves like data refresh4887 aggregates project statistics4888 works when there are no projects4889 behaves like does not include personal snippets4890 is expected not to receive from_personal_snippets(*(any args)) 0 times4891 with a personal namespace4892 behaves like data refresh4893 aggregates project statistics4894 works when there are no projects4895 when user has personal snippets4896 aggregates personal and project snippets size4897 when personal snippets do not have statistics4898 does not raise any error4899Serverless::AssociateDomainService4900 when the domain is unchanged4901 does not update creator4902 when domain is changed to nil4903 removes the association between knative and the domain4904 does not attempt to update creator4905 when a new domain is associated4906 creates an association with the domain4907 updates creator4908 when knative is not authorized to use the pages domain4909 sets pages_domain_id to nil4910 when knative hostname is nil4911 sets hostname to a placeholder value4912 when knative hostname exists4913 does not change hostname4914Discussions::UpdateDiffPositionService4915 #execute4916 when the diff line is the same4917 updates the position4918 when the resolve_outdated_diff_discussions setting is set4919 does not resolve the discussion4920 when the diff line has changed4921 doesn't update the position4922 sets the change position4923 creates a system discussion4924 when the resolve_outdated_diff_discussions setting is set4925 sets resolves the discussion and sets resolved_by_push4926 doesn't update the position4927 sets the change position4928 creates a system discussion4929Gitlab::LegacyGithubImport::Importer4930 when importing a GitHub project4931 behaves like Gitlab::LegacyGithubImport::Importer#execute4932 calls import methods4933 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs4934 returns true4935 does not raise an error4936 stores error messages4937 behaves like Gitlab::LegacyGithubImport unit-testing4938 #clean_up_restored_branches4939 when pull request stills open4940 does not remove branches4941 when pull request is closed4942 does remove branches4943 #client4944 instantiates a Client4945 when importing a Gitea project4946 behaves like Gitlab::LegacyGithubImport::Importer#execute4947 calls import methods4948 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs4949 returns true4950 does not raise an error4951 stores error messages4952 behaves like Gitlab::LegacyGithubImport unit-testing4953 #clean_up_restored_branches4954 when pull request stills open4955 does not remove branches4956 when pull request is closed4957 does remove branches4958 #client4959 instantiates a Client4960AutoDevopsHelper4961 .show_auto_devops_callout?4962 when auto devops is implicitly enabled4963 is expected to eq false4964 when auto devops is not implicitly enabled4965 is expected to eq true4966 when the banner is disabled by feature flag4967 is expected to be falsy4968 when dismissed4969 is expected to eq false4970 when user cannot admin project4971 is expected to eq false4972 when auto devops is enabled system-wide4973 is expected to eq false4974 when auto devops is explicitly enabled for project4975 is expected to eq false4976 when auto devops is explicitly disabled for project4977 is expected to eq false4978 when master contains a .gitlab-ci.yml file4979 is expected to eq false4980 when another service is enabled4981 is expected to eq false4982 #auto_devops_settings_path4983 returns auto devops settings path4984 #badge_for_auto_devops_scope4985 when receiver is a group4986 when explicitly enabled4987 is expected to eq "group enabled"4988 when explicitly disabled4989 is expected to be nil4990 when auto devops is implicitly enabled4991 by instance4992 is expected to eq "instance enabled"4993 with groups4994 when auto devops is enabled on parent4995 is expected to eq "group enabled"4996 when auto devops is enabled on parent group4997 is expected to eq "group enabled"4998 when auto devops disabled set on parent group4999 is expected to be nil5000 when receiver is a project5001 when auto devops is enabled at project level5002 is expected to be nil5003 when auto devops is disabled at project level5004 is expected to be nil5005 when auto devops is implicitly enabled5006 by instance5007 is expected to eq "instance enabled"5008 with groups5009 when auto devops is enabled on group level5010 is expected to eq "group enabled"5011 when auto devops is enabled on root group5012 is expected to eq "group enabled"5013 when auto devops is implicitly disabled5014 by instance5015 is expected to be nil5016 with groups5017 when auto devops is disabled on group level5018 is expected to be nil5019 when root group is enabled and parent disabled5020 is expected to be nil5021Gitlab::Ci::Config::External::Processor5022 #perform5023 when no external files defined5024 returns the same values5025 when an invalid local file is defined5026 raises an error5027 when an invalid remote file is defined5028 raises an error5029 with a valid remote external file is defined5030 appends the file to the values5031 removes the 'include' keyword5032 with a valid local external file is defined5033 appends the file to the values5034 removes the 'include' keyword5035 with multiple external files are defined5036 appends the files to the values5037 removes the 'include' keyword5038 when external files are defined but not valid5039 raises an error5040 when both external files and values defined the same key5041 takes precedence5042 when a nested includes are defined5043 when project is public5044 properly expands all includes5045 propagates the pipeline logger5046 when user is reporter of another project5047 properly expands all includes5048 when user is not allowed5049 raises an error5050 when too many includes is included5051 raises an error5052 when config includes an external configuration file via SSL web request5053 with an acceptable certificate5054 is expected to include {:image => "ruby:2.6"}5055 with a self-signed certificate5056 returns a reportable configuration error5057 when a valid project file is defined5058 appends the file to the values5059 when valid project files are defined in a single include5060 appends the file to the values5061 when local file path has wildcard5062 fetches the matched files5063 when rules defined5064 when a rule is invalid5065 raises IncludeError5066Ci::CreatePipelineService#execute5067 with resource group5068 creates bridge job with resource group5069 when sidekiq processes the job5070 transitions to pending status and triggers a downstream pipeline5071 when the resource is occupied by the other bridge5072 stays waiting for resource5073Gitlab::GithubImport::Importer::MilestonesImporter5074 #execute5075 imports the milestones in bulk5076 #build_milestones5077 returns an Array containnig milestone rows5078 does not create milestones that already exist5079 #build_milestones_cache5080 builds the milestones cache5081 #build5082 returns the attributes of the milestone as a Hash5083 the returned Hash5084 includes the milestone number5085 includes the milestone title5086 includes the milestone description5087 includes the project ID5088 includes the milestone state5089 includes the due date5090 responds correctly to no due date value5091 includes the created timestamp5092 includes the updated timestamp5093 #each_milestone5094 returns the milestones5095Gitlab::GithubImport::Importer::PullRequestsImporter5096 #parallel?5097 returns true when running in parallel mode5098 returns false when running in sequential mode5099 #execute5100 when running in parallel mode5101 imports pull requests in parallel5102 when running in sequential mode5103 imports pull requests in sequence5104 #sequential_import5105 imports each pull request in sequence5106 #parallel_import5107 imports each note in parallel5108 #each_object_to_import5109 yields every pull request to the supplied block5110 updates the repository if a pull request was updated after the last clone5111 #update_repository5112 updates the repository5113 #update_repository?5114 when the pull request was updated after the last update5115 returns true when the head SHA is not present5116 returns true when the base SHA is not present5117 returns false if both the head and base SHAs are present5118 when the pull request was updated before the last update5119 returns false5120 #commit_exists?5121 returns true when a commit exists5122 returns false when a commit does not exist5123 #id_for_already_imported_cache5124 returns the PR number of the given PR5125Metrics::Dashboard::DynamicEmbedService5126 .valid_params?5127 is expected to be truthy5128 missing embedded5129 is expected to be falsey5130 not embedded5131 is expected to be falsey5132 undefined dashboard5133 is expected to be truthy5134 missing dashboard5135 is expected to be truthy5136 missing group5137 is expected to be falsey5138 missing title5139 is expected to be falsey5140 undefined y-axis label5141 is expected to be falsey5142 #get_dashboard5143 when the dashboard does not exist5144 behaves like misconfigured dashboard service response5145 returns an appropriate message and status code5146 when the dashboard is exists5147 caches the unprocessed dashboard for subsequent calls5148 behaves like valid embedded dashboard service response5149 behaves like valid dashboard service response for schema5150 returns a json representation of the dashboard5151 behaves like raises error for users with insufficient permissions5152 when the user does not have sufficient access5153 behaves like misconfigured dashboard service response5154 returns an appropriate message and status code5155 when the user is anonymous5156 behaves like misconfigured dashboard service response5157 returns an appropriate message and status code5158 when the specified group is not present on the dashboard5159 behaves like misconfigured dashboard service response5160 returns an appropriate message and status code5161 when the specified title is not present on the dashboard5162 behaves like misconfigured dashboard service response5163 returns an appropriate message and status code5164 when the specified y-axis label is not present on the dashboard5165 behaves like misconfigured dashboard service response5166 returns an appropriate message and status code5167 when the dashboard is nil5168 behaves like uses system dashboard5169 uses the overview dashboard5170 when the dashboard is not present5171 behaves like uses system dashboard5172 uses the overview dashboard5173Projects::HashedStorage::RollbackRepositoryService5174 #execute5175 works even when project validation fails5176 repository lock5177 tries to lock the repository5178 fails when a git operation is in progress5179 when repository doesnt exist on disk5180 skips the disk change but decrease the version5181 when succeeds5182 renames project, wiki and design repositories5183 updates project to be legacy and not read-only5184 move operation is called for both repositories5185 writes project full path to .git/config5186 when exception happens5187 handles OpenSSL::Cipher::CipherError5188 ensures rollback when OpenSSL::Cipher::CipherError5189 handles Gitlab::Git::CommandError5190 ensures rollback when Gitlab::Git::CommandError5191 when one move fails5192 rolls repositories back to original name5193 when rollback fails5194 does not try to move nil repository over existing5195Integrations::ChatMessage::PipelineMessage5196 returns an empty pretext5197 returns the pipeline summary in the activity's title5198 returns a link to the project in the activity's subtitle5199 returns the build duration in the activity's text property5200 returns the user's avatar image URL in the activity's image property5201 returns the pipeline summary as the attachment's fallback property5202 returns 'good' as the attachment's color property5203 returns the committer's name and username as the attachment's author_name property5204 returns the committer's avatar URL as the attachment's author_icon property5205 returns the committer's GitLab profile URL as the attachment's author_link property5206 returns the pipeline ID, status, and duration as the attachment's title property5207 returns the pipeline URL as the attachment's title_link property5208 returns two attachment fields5209 returns the commit message as the attachment's second field property5210 returns the ref name and link as the attachment's second field property5211 returns the project's name as the attachment's footer property5212 returns the project's avatar URL as the attachment's footer_icon property5213 returns the pipeline's timestamp as the attachment's ts property5214 when the pipeline failed5215 returns the summary with a 'failed' status5216 when the pipeline passed with warnings5217 returns the summary with a 'passed with warnings' status5218 when no user is provided because the pipeline was triggered by the API5219 returns the summary with 'API' as the username5220 when the user does not have an avatar5221 returns an empty string in the activity's image property5222 when the pipeline failed5223 returns 'danger' as the attachment's color property5224 when the pipeline passed with warnings5225 returns 'warning' as the attachment's color property5226 when no user is provided because the pipeline was triggered by the API5227 returns the committer's name and username as the attachment's author_name property5228 returns nil as the attachment's author_icon property5229 returns nil as the attachment's author_link property5230 when a job in the pipeline fails5231 returns four attachment fields5232 returns the stage name and link to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property5233 returns the job name and link as the attachment's fourth field property5234 when lots of jobs across multiple stages fail5235 returns the stage names and links to the 'Failed jobs' tab on the pipeline's page as the attachment's third field property5236 returns the job names and links as the attachment's fourth field property5237 when jobs succeed on retries5238 do not return a job which succeeded on retry5239 when jobs failed even on retries5240 returns only first instance of the failed job5241 when the CI config file contains a YAML error5242 returns three attachment fields5243 returns the YAML error deatils as the attachment's third field property5244 when rendering markdown5245 returns the pipeline summary as the attachments in markdown format5246JiraConnectSubscriptions::CreateService5247 remote user does not have access5248 does not create a subscription5249 returns error5250 remote user cannot be retrieved5251 does not create a subscription5252 returns error5253 when user does have access5254 creates a subscription5255 returns success5256 namespace has projects5257 starts workers to sync projects in batches with delay5258 when path is invalid5259 behaves like a failed execution5260 does not create a subscription5261 returns an error status5262 when user does not have access5263 behaves like a failed execution5264 does not create a subscription5265 returns an error status5266ProjectAutoDevops5267 is expected to belong to project required: false5268 is expected to define :deploy_strategy as an enum, backed by an integer5269 is expected to respond to #created_at5270 is expected to respond to #updated_at5271 behaves like having unique enum values5272 has unique values in "deploy_strategy"5273 #predefined_variables5274 when deploy_strategy is manual5275 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}5276 when deploy_strategy is continuous5277 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}5278 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"5279 when deploy_strategy is timed_incremental5280 is expected to include {:key => "INCREMENTAL_ROLLOUT_MODE", :value => "timed"}5281 is expected to include {:key => "AUTO_DEVOPS_EXPLICITLY_ENABLED", :value => "1"}5282 is expected not to include "STAGING_ENABLED" and "INCREMENTAL_ROLLOUT_ENABLED"5283 when auto-devops is explicitly disabled5284 is expected to be empty5285 #create_gitlab_deploy_token5286 when the project is public5287 does not create a gitlab deploy token5288 when the project is internal5289 creates a gitlab deploy token5290 when the project is private5291 creates a gitlab deploy token5292 when autodevops is enabled at project level5293 creates a deploy token5294 when autodevops is enabled at instance level5295 creates a deploy token5296 when autodevops is disabled5297 does not create a deploy token5298 when the project already has an active gitlab-deploy-token5299 does not create a deploy token5300 when the project already has a revoked gitlab-deploy-token5301 does not create a deploy token5302AccessRequestsFinder5303 #execute5304 when current user cannot see project access requests5305 behaves like a finder returning no results5306 raises Gitlab::Access::AccessDeniedError5307 behaves like a finder returning no results5308 raises Gitlab::Access::AccessDeniedError5309 when current user can see access requests5310 behaves like a finder returning access requesters5311 returns access requesters5312 behaves like a finder returning access requesters5313 returns access requesters5314 #execute!5315 when current user cannot see access requests5316 behaves like a finder raising Gitlab::Access::AccessDeniedError5317 raises Gitlab::Access::AccessDeniedError5318 behaves like a finder raising Gitlab::Access::AccessDeniedError5319 raises Gitlab::Access::AccessDeniedError5320 when current user can see access requests5321 behaves like a finder returning access requesters5322 returns access requesters5323 behaves like a finder returning access requesters5324 returns access requesters5325gitlab:cleanup rake tasks5326 cleanup:project_uploads5327 with a fixable orphaned project upload file5328 with DRY_RUN disabled5329 moves the file to its proper location5330 logs action as done5331 with DRY_RUN explicitly enabled5332 behaves like does not move the file5333 does not move the file5334 logs action as able to be done5335 with DRY_RUN set to an unknown value5336 behaves like does not move the file5337 does not move the file5338 logs action as able to be done5339 with DRY_RUN unset5340 behaves like does not move the file5341 does not move the file5342 logs action as able to be done5343 gitlab:cleanup:orphan_job_artifact_files5344 runs the task without errors5345 with DRY_RUN set to false5346 passes dry_run correctly5347 gitlab:cleanup:orphan_lfs_file_references5348 runs the task without errors5349 with DRY_RUN set to false5350 passes dry_run correctly5351 gitlab:cleanup:orphan_lfs_files5352 runs RemoveUnreferencedLfsObjectsWorker5353 sessions5354 gitlab:cleanup:sessions:active_sessions_lookup_keys5355 runs the task without errors5356 removes expired active session lookup keys5357RemoveExpiredMembersWorker5358 #perform5359 project members5360 removes expired members5361 leaves members that expire in the future5362 leaves members that do not expire at all5363 adds context to resulting jobs5364 project bots5365 expired project bot5366 removes expired project bot membership5367 deletes expired project bot5368 non-expired project bot5369 does not remove expired project bot that expires in the future5370 does not delete project bot expiring in the future5371 group members5372 removes expired members5373 leaves members that expire in the future5374 leaves members that do not expire at all5375 adds context to resulting jobs5376 when the last group owner expires5377 does not delete the owner5378Banzai::ReferenceRedactor5379 #redact5380 when reference not visible to user5381 redacts an array of documents5382 replaces redacted reference with inner HTML5383 when data-original attribute provided5384 replaces redacted reference with original content5385 does not replace redacted reference with original content if href is given5386 uses the original content as the link content if given5387 when project is in pending delete5388 redacts an issue attached5389 redacts an external issue5390 when reference visible to user5391 does not redact an array of documents5392 when the user cannot read cross project5393 skips links to issues within the same project5394 removes info from a cross project reference5395 #redact_nodes5396 redacts an Array of nodes5397 #nodes_visible_to_user5398 returns a Set containing the visible nodes5399 handles invalid references gracefully5400RuboCop::Cop::Graphql::OldTypes5401 does not add an offense for other types in fields5402 does not add an offense for other types in arguments5403 does not add an offense for uses outside of field or argument5404 old_type: "GraphQL::ID_TYPE", message: "Avoid using GraphQL::ID_TYPE. Use GraphQL::Types::ID instead"5405 fields5406 adds an offense when an old type is used5407 adds an offense when an old type is used with other keywords5408 arguments5409 adds an offense when an old type is used5410 adds an offense when an old type is used with other keywords5411 old_type: "GraphQL::INT_TYPE", message: "Avoid using GraphQL::INT_TYPE. Use GraphQL::Types::Int instead"5412 fields5413 adds an offense when an old type is used5414 adds an offense when an old type is used with other keywords5415 arguments5416 adds an offense when an old type is used5417 adds an offense when an old type is used with other keywords5418 old_type: "GraphQL::STRING_TYPE", message: "Avoid using GraphQL::STRING_TYPE. Use GraphQL::Types::String instead"5419 fields5420 adds an offense when an old type is used5421 adds an offense when an old type is used with other keywords5422 arguments5423 adds an offense when an old type is used5424 adds an offense when an old type is used with other keywords5425 old_type: "GraphQL::BOOLEAN_TYPE", message: "Avoid using GraphQL::BOOLEAN_TYPE. Use GraphQL::Types::Boolean instead"5426 fields5427 adds an offense when an old type is used5428 adds an offense when an old type is used with other keywords5429 arguments5430 adds an offense when an old type is used5431 adds an offense when an old type is used with other keywords5432 old_type: "GraphQL::FLOAT_TYPE", message: "Avoid using GraphQL::FLOAT_TYPE. Use GraphQL::Types::Float instead"5433 fields5434 adds an offense when an old type is used5435 adds an offense when an old type is used with other keywords5436 arguments5437 adds an offense when an old type is used5438 adds an offense when an old type is used with other keywords5439 old_type: "::GraphQL::ID_TYPE", message: "Avoid using GraphQL::ID_TYPE. Use GraphQL::Types::ID instead"5440 fields5441 adds an offense when an old type is used5442 adds an offense when an old type is used with other keywords5443 arguments5444 adds an offense when an old type is used5445 adds an offense when an old type is used with other keywords5446 old_type: "::GraphQL::INT_TYPE", message: "Avoid using GraphQL::INT_TYPE. Use GraphQL::Types::Int instead"5447 fields5448 adds an offense when an old type is used5449 adds an offense when an old type is used with other keywords5450 arguments5451 adds an offense when an old type is used5452 adds an offense when an old type is used with other keywords5453 old_type: "::GraphQL::STRING_TYPE", message: "Avoid using GraphQL::STRING_TYPE. Use GraphQL::Types::String instead"5454 fields5455 adds an offense when an old type is used5456 adds an offense when an old type is used with other keywords5457 arguments5458 adds an offense when an old type is used5459 adds an offense when an old type is used with other keywords5460 old_type: "::GraphQL::BOOLEAN_TYPE", message: "Avoid using GraphQL::BOOLEAN_TYPE. Use GraphQL::Types::Boolean instead"5461 fields5462 adds an offense when an old type is used5463 adds an offense when an old type is used with other keywords5464 arguments5465 adds an offense when an old type is used5466 adds an offense when an old type is used with other keywords5467 old_type: "::GraphQL::FLOAT_TYPE", message: "Avoid using GraphQL::FLOAT_TYPE. Use GraphQL::Types::Float instead"5468 fields5469 adds an offense when an old type is used5470 adds an offense when an old type is used with other keywords5471 arguments5472 adds an offense when an old type is used5473 adds an offense when an old type is used with other keywords5474Gitlab::Ci::Pipeline::Seed::Environment5475 #to_resource5476 when job has environment name attribute5477 behaves like returning a correct environment5478 returns a persisted environment object5479 when environment has already existed5480 returns the existing environment object5481 and job environment also has an auto_stop_in attribute5482 behaves like returning a correct environment5483 returns a persisted environment object5484 when environment has already existed5485 returns the existing environment object5486 when job has deployment tier attribute5487 when environment has not been created yet5488 sets the specified deployment tier5489 when deployment tier is staging5490 sets the specified deployment tier5491 when deployment tier is unknown5492 raises an error5493 when environment has already been created5494 does not overwrite the specified deployment tier5495 when job starts a review app5496 behaves like returning a correct environment5497 returns a persisted environment object5498 when environment has already existed5499 returns the existing environment object5500 when job stops a review app5501 behaves like returning a correct environment5502 returns a persisted environment object5503 when environment has already existed5504 returns the existing environment object5505Integrations::Test::ProjectService5506 #execute5507 without event specified5508 tests the integration with default data5509 with Integrations::PipelinesEmail5510 behaves like tests for integration with pipeline data5511 tests the integration with pipeline data5512 with event specified5513 event not supported by integration5514 returns error message5515 push5516 executes integration5517 tag_push5518 executes integration5519 note5520 returns error message if not enough data5521 executes integration5522 issue5523 behaves like a test of an integration that operates on issues5524 returns error message if not enough data5525 executes integration5526 confidential_issue5527 behaves like a test of an integration that operates on issues5528 returns error message if not enough data5529 executes integration5530 merge_request5531 returns error message if not enough data5532 executes integration5533 deployment5534 returns error message if not enough data5535 executes integration5536 pipeline5537 returns error message if not enough data5538 executes integration5539 wiki_page5540 returns error message if wiki disabled5541 returns error message if not enough data5542 executes integration5543AwardEmojiPolicy5544 when the awardable is an issue5546 is expected to be allowed :read_emoji5548 is expected not to be allowed :read_emoji5549 when the awardable is a merge request5551 is expected to be allowed :read_emoji5553 is expected not to be allowed :read_emoji5554 when the awardable is a note5556 is expected to be allowed :read_emoji5558 is expected not to be allowed :read_emoji5559 when the awardable is a snippet5561 is expected to be allowed :read_emoji5563 is expected not to be allowed :read_emoji5564NamespacelessProjectDestroyWorker5565 #perform5566 project has namespace5567 does not do anything5568 project has no namespace5569 project not a fork of another project5570 truncates the project's team5571 deletes the project5572 does not call unlink_fork5573 project forked from another5574 closes open merge requests5575 destroys fork network members5576Projects::DeployTokens::CreateService5577 behaves like a deploy token creation service5578 #execute5579 when the deploy token is valid5580 creates a new DeployToken5581 creates a new ProjectDeployToken5582 returns a DeployToken5583 when expires at date is not passed5584 sets Forever.date5585 when username is empty string5586 converts it to nil5587 when username is provided5588 keeps the provided username5589 when the deploy token is invalid5590 does not create a new DeployToken5591 does not create a new ProjectDeployToken5592Projects::GroupsFinder5593 #execute5594 Public project5595 behaves like finding related groups5596 returns ancestor groups for this project5597 when the project does not belong to any group5598 is expected to eq []5599 when shared groups option is on5600 returns ancestor and all shared groups5601 when shared_min_access_level is developer5602 returns ancestor and shared groups with at least developer access5603 when shared_visible_only is on5604 returns ancestor and public shared groups5605 when user has access to the private shared group5606 returns ancestor and shared groups user has access to5607 when skip group option is on5608 excludes provided groups5609 when user is not authorized5610 returns ancestor groups for this project5611 when visible shared groups are requested5612 returns ancestor groups and public shared groups for this project5613 Private project5614 behaves like finding related groups5615 returns ancestor groups for this project5616 when the project does not belong to any group5617 is expected to eq []5618 when shared groups option is on5619 returns ancestor and all shared groups5620 when shared_min_access_level is developer5621 returns ancestor and shared groups with at least developer access5622 when shared_visible_only is on5623 returns ancestor and public shared groups5624 when user has access to the private shared group5625 returns ancestor and shared groups user has access to5626 when skip group option is on5627 excludes provided groups5628 when user is not authorized5629 is expected to eq []5630 Missing project5631 is expected to eq []5632Snippets::UpdateStatisticsService5633 #execute5634 with PersonalSnippet5635 behaves like updates statistics5636 returns a successful response5637 expires statistics cache5638 schedules a namespace storage statistics update5639 when snippet statistics does not exist5640 creates snippet statistics5641 when snippet statistics exists5642 updates snippet statistics5643 when snippet does not have a repository5644 returns an error response5645 with ProjectSnippet5646 updates projects statistics "snippets_size"5647 behaves like updates statistics5648 returns a successful response5649 expires statistics cache5650 schedules a namespace storage statistics update5651 when snippet statistics does not exist5652 creates snippet statistics5653 when snippet statistics exists5654 updates snippet statistics5655 when snippet does not have a repository5656 returns an error response5657Gitlab::Ci::ArtifactFileReader5658 #read5659 when job has artifacts and metadata5660 returns the content at the path5661 when path does not exist5662 raises an error5663 when path points to a directory5664 raises an error5665 when path is nested5666 returns the content at the nested path5667 when artifact archive size is greater than the limit5668 raises an error5669 when metadata entry shows size greater than the limit5670 raises an error5671 when job does not have metadata artifacts5672 raises an error5673 when job does not have artifacts5674 raises ArgumentError5675Ci::CreatePipelineService5676 dry run5677 when pipeline is valid5678 returns a valid pipeline5679 behaves like returns a non persisted pipeline5680 does not persist the pipeline5681 does not process the pipeline5682 does not schedule merge request head pipeline update5683 when pipeline is not valid5684 when there are syntax errors5685 returns a pipeline with errors5686 behaves like returns a non persisted pipeline5687 does not persist the pipeline5688 does not process the pipeline5689 does not schedule merge request head pipeline update5690 when there are logical errors5691 returns a pipeline with errors5692 behaves like returns a non persisted pipeline5693 does not persist the pipeline5694 does not process the pipeline5695 does not schedule merge request head pipeline update5696 when there are errors at the seeding stage5697 returns a pipeline with errors5698 behaves like returns a non persisted pipeline5699 does not persist the pipeline5700 does not process the pipeline5701 does not schedule merge request head pipeline update5702Integrations::SlackSlashCommands5703 behaves like Integrations::BaseSlashCommands5704 Associations5705 is expected to respond to #token5706 is expected to have many chat_names5707 #valid_token?5708 when the token is empty5709 is false5710 when there is a token5711 accepts equal tokens5712 #trigger5713 no token is passed5714 returns nil5715 with a token passed5716 no user can be found5717 when no url can be generated5718 responds with the authorize url5719 when an auth url can be generated5720 generates the url5721 when the user is authenticated5722 triggers the command5723 when user is blocked5724 behaves like blocks command execution5725 is expected to match "you do not have access to the GitLab project"5726 when user is deactivated5727 behaves like blocks command execution5728 is expected to match "your account has been deactivated by your administrator"5729 #trigger5730 when an auth url is generated5731 uses slack compatible links5732 #chat_responder5733 returns the responder to use for Slack5734NewMergeRequestWorker5735 #perform5736 when a merge request not found5737 does not call Services5738 logs an error5739 when a user not found5740 does not call Services5741 logs an error5742 with a user5743 when the merge request author is blocked5744 behaves like a new merge request where the author cannot trigger notifications5745 does not create a notification for the mentioned user5746 when the merge request author is a ghost5747 behaves like a new merge request where the author cannot trigger notifications5748 does not create a notification for the mentioned user5749 when everything is ok5750 creates a new event record5751 creates a notification for the mentioned user5752Gitlab::Ci::Pipeline::Seed::Deployment5753 #to_resource5754 when job has environment attribute5755 returns a deployment object with environment5756 when environment has deployment platform5757 sets the cluster and deployment_cluster5758 when a custom namespace is given5759 when cluster is managed5760 does not set the custom namespace5761 when cluster is not managed5762 sets the custom namespace5763 when environment has an invalid URL5764 returns nothing5765 when job has already deployment5766 returns the persisted deployment5767 when job has environment attribute with stop action5768 returns nothing5769 when job has environment attribute with prepare action5770 returns nothing5771 when job does not have environment attribute5772 returns nothing5773MergeRequestDiffEntity5774 as json5775 exposes needed attributes5776 #version_index5777 when diff is not present5778 behaves like version_index is nil5779 returns nil5780 when diff is not included in @merge_request_diffs5781 behaves like version_index is nil5782 returns nil5783 when @merge_request_diffs.size <= 15784 behaves like version_index is nil5785 returns nil5786 when @merge_request_diffs.size > 15787 returns difference between size and diff index5788 #short_commit_sha5789 returns short sha5790 returns nil if head_commit_sha does not exist5791 #head_version_path5792 merge request can be merged5793 returns diff path with diff_head param set5794 merge request cannot be merged5795 returns diff path with diff_head param set5796Gitlab::GithubImport::Importer::SingleEndpointIssueNotesImporter5797 is expected to includes the Gitlab::GithubImport::ParallelScheduling module5798 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module5799 is expected to eq Gitlab::GithubImport::Representation::Note5800 is expected to eq Gitlab::GithubImport::Importer::NoteImporter5801 is expected to eq :issue_comments5802 is expected to eq :note5803 is expected to eq 15804 #each_object_to_import5805 fetches data5806 skips cached pages5807 skips cached merge requests5808Git::TagPushService5809 Push tags5810 flushes general cached data5811 does not flush the tags cache5812 Hooks5813 run on a tag5814 delegates to Git::TagHooksService5815 run on a branch5816 does nothing5817 artifacts5818 create tag5819 does nothing5820 update tag5821 does nothing5822 delete tag5823 unlocks artifacts5824ChatName5825 is expected to belong to integration required: false5826 is expected to belong to user required: false5827 is expected to validate that :user cannot be empty/falsy5828 is expected to validate that :integration cannot be empty/falsy5829 is expected to validate that :team_id cannot be empty/falsy5830 is expected to validate that :chat_id cannot be empty/falsy5831 is expected to validate that :user_id is case-sensitively unique within the scope of :service_id5832 is expected to validate that :chat_id is case-sensitively unique within the scope of :service_id and :team_id5833 is removed when the project is deleted5834 #update_last_used_at5835 updates the last_used_at timestamp5836 does not update last_used_at if it was recently updated5837 behaves like it has loose foreign keys5838 has at least one loose foreign key definition5839 has the deletion trigger present5840 records record deletions5841 cleans up record deletions5842TestSuiteSummaryEntity5843 #as_json5844 contains the total time5845 contains the counts5846 contains the build_ids5847 contains the suite_error5848Gitlab::SlashCommands::Presenters::Deploy5849 #present5850 is expected to have key :text5851 is expected to have key :response_type5852 is expected to have key :status5853 is expected not to have key :attachments5854 messages the channel of the deploy5855 #action_not_found5856 is expected to have key :text5857 is expected to have key :response_type5858 is expected to have key :status5859 is expected not to have key :attachments5860 tells the user there is no action5861Security::LicenseComplianceJobsFinder5862 behaves like Security::JobsFinder5863 #new5864 does not get initialized for unsupported job types5865 #execute5866 behaves like JobsFinder core functionality5867 when the pipeline has no jobs5868 is expected to be empty5869 when the pipeline has no Secure jobs5870 is expected to be empty5871 when the pipeline only has jobs without report artifacts5872 is expected to be empty5873 when the pipeline only has jobs with reports unrelated to Secure products5874 is expected to be empty5875 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports5876 is expected to be empty5877 when there is more than one pipeline5878 returns jobs associated with provided pipeline5879 #execute5880 returns only the license_scanning job5881Resolvers::BaseResolver5882 .singular_type5883 for a connection of scalars5884 is expected to eq GraphQL::Types::Int5885 for a connection of objects5886 is expected to eq #<Class:0x00007fc6dc947ed8>5887 for a list type5888 is expected to eq GraphQL::Types::String5889 for a scalar type5890 is expected to eq GraphQL::Types::Boolean5891 .single5892 returns a subclass from the resolver5893 has the correct (singular) type5894 returns the same subclass every time5895 returns a resolver that gives the first result from the original resolver5896 .when_single5897 does not apply the block to the resolver5898 applies the block to the single version of the resolver5899 multiple when_single blocks5900 applies both blocks to the single version of the resolver5901 inheritance5902 applies both blocks to the single version of the resolver5903 when the resolver returns early5904 runs correctly in our test framework5905 single selects the first early return value5906 last selects the last early return value5907 .last5908 returns a subclass from the resolver5909 returns the same subclass every time5910 returns a resolver that gives the last result from the original resolver5911 when field is a connection5912 increases complexity based on arguments5913 does not increase complexity when filtering by iids5914 #object5915 returns object5916 when object is a presenter5917 returns presented object5918 #offset_pagination5919 is sugar for OffsetPaginatedRelation.new5920DesignManagement::VersionsFinder5921 #execute5922 when user cannot read designs of an issue5923 returns no results when passed a DesignCollection5924 when passed a Design5925 returns no results when passed a Design5926 when user can read designs of an issue5927 when design management feature is disabled5928 returns no results when passed a DesignCollection5929 when passed a Design5930 returns no results when passed a Design5931 when design management feature is enabled5932 passing a DesignCollection or a Design for the initial scoping5933 returns the versions scoped to the DesignCollection5934 when passed a Design5935 returns the versions scoped to the Design5936 returning versions earlier or equal to a version5937 when argument is the first version5938 is expected to eq [#<DesignManagement::Version id: 60, sha: "29a3f2bdf66d9abb0033df1594f92351d0056124", issue_id: 385, created_at: "2021-12-20 17:17:11.830374000 +0000", author_id: 2650>]5939 when argument is the second version5940 is expected to contain exactly #<DesignManagement::Version id: 60, sha: "29a3f2bdf66d9abb0033df1594f92351d0056124", issue_id: 385, created_at: "2021-12-20 17:17:11.830374000 +0000", author_id: 2650> and #<DesignManagement::Version id: 61, sha: "3cf249612eef73bac60febff756c65178c828862", issue_id: 385, created_at: "2021-12-20 17:17:11.877027000 +0000", author_id: 2650>5941 returning versions by SHA5942 when argument is the first version5943 is expected to contain exactly #<DesignManagement::Version id: 60, sha: "29a3f2bdf66d9abb0033df1594f92351d0056124", issue_id: 385, created_at: "2021-12-20 17:17:11.830374000 +0000", author_id: 2650>5944 when argument is the second version5945 is expected to contain exactly #<DesignManagement::Version id: 61, sha: "3cf249612eef73bac60febff756c65178c828862", issue_id: 385, created_at: "2021-12-20 17:17:11.877027000 +0000", author_id: 2650>5946 returning versions by ID5947 when argument is the first version5948 is expected to contain exactly #<DesignManagement::Version id: 60, sha: "29a3f2bdf66d9abb0033df1594f92351d0056124", issue_id: 385, created_at: "2021-12-20 17:17:11.830374000 +0000", author_id: 2650>5949 when argument is the second version5950 is expected to contain exactly #<DesignManagement::Version id: 61, sha: "3cf249612eef73bac60febff756c65178c828862", issue_id: 385, created_at: "2021-12-20 17:17:11.877027000 +0000", author_id: 2650>5951 mixing id and sha5952 when arguments are consistent5953 is expected to contain exactly #<DesignManagement::Version id: 60, sha: "29a3f2bdf66d9abb0033df1594f92351d0056124", issue_id: 385, created_at: "2021-12-20 17:17:11.830374000 +0000", author_id: 2650>5954 when arguments are in-consistent5955 is expected to be empty5956ReleasesHelper5957 #illustration5958 returns the correct image path5959 #help_page5960 returns the correct link to the help page5961 url helpers5962 #data_for_releases_page5963 includes the required data for displaying release blocks5964 when the user is allowed to create a new release5965 includes new_release_path5966 points new_release_path to the "New Release" page5967 #data_for_edit_release_page5968 has the needed data to display the "edit release" page5969 #data_for_new_release_page5970 has the needed data to display the "new release" page5971 #data_for_show_page5972 has the needed data to display the individual "release" page5973 startup queries5974 use_startup_query_for_index_page?5975 allows startup queries for non-paginated requests5976 disallows startup queries for requests paginated with a "before" cursor5977 disallows startup queries for requests paginated with an "after" cursor5978 #index_page_startup_query_variables5979 returns the correct GraphQL variables for the startup query5980Gitlab::Git::MergeBase5981 #sha5982 returns `nil` when the refs do not have a common ancestor5983 returns a merge base when passing 2 branch names5984 returns a merge base when passing a tag name5985 when the refs exist5986 returns the SHA of the merge base5987 memoizes the result5988 when passing a missing ref5989 does not call merge_base on the repository but raises an error5990 #commit5991 does not try to find the commit when there is no sha5992 for existing refs with a merge base5993 finds the commit for the merge base5994 only looks up the commit once5995 #unknown_refs5996 returns the refs passed that are not part of the repository5997 only looks up the commits once5998Gitlab::Ci::Reports::AccessibilityReports5999 #scans_count6000 when data has errors6001 returns the scans_count6002 when data has no errors6003 returns the scans_count6004 when data has no url6005 returns the scans_count6006 #passes_count6007 when data has errors6008 returns the passes_count6009 when data has no errors6010 returns the passes_count6011 when data has no url6012 returns the scans_count6013 #errors_count6014 when data has errors6015 returns the errors_count6016 when data has no errors6017 returns the errors_count6018 when data has no url6019 returns the errors_count6020 #add_url6021 when data has errors6022 adds urls and data to accessibility report6023 when data does not have errors6024 adds data to accessibility report6025 when url does not exist6026 sets error_message and decreases total6027 #set_error_message6028 when error is nil6029 returns the error6030 sets the error6031 when a error has already been set6032 overwrites the existing message6033 #all_errors6034 when data has errors6035 returns all errors6036 when data has no errors6037 returns an empty array6038 when accessibility report has no data6039 returns an empty array6040Issues::RebalancingWorker6041 has the `until_executed` deduplicate strategy6042 #perform6043 without root_namespace param6044 is labeled as idempotent6045 performs multiple times sequentially without raising an exception6046 is labeled as idempotent6047 performs multiple times sequentially without raising an exception6048 behaves like running the worker6049 runs an instance of Issues::RelativePositionRebalancingService6050 anticipates there being too many concurent rebalances6051 takes no action if the value is nil6052 does not schedule a new rebalance if it finished under 1h ago6053 behaves like safely handles non-existent ids6054 anticipates the inability to find the issue6055 with root_namespace param6056 is labeled as idempotent6057 performs multiple times sequentially without raising an exception6058 is labeled as idempotent6059 performs multiple times sequentially without raising an exception6060 behaves like running the worker6061 runs an instance of Issues::RelativePositionRebalancingService6062 anticipates there being too many concurent rebalances6063 takes no action if the value is nil6064 does not schedule a new rebalance if it finished under 1h ago6065 behaves like safely handles non-existent ids6066 anticipates the inability to find the issue6067ProtectedBranches::CreateService6068 #execute6069 creates a new protected branch6070 when name has escaped HTML6071 creates the new protected branch matching the unescaped version6072 and name contains HTML tags6073 creates the new protected branch with sanitized name6074 and contains unsafe HTML6075 does not create the new protected branch6076 when name contains unescaped HTML tags6077 creates the new protected branch with sanitized name6078 when user does not have permission6079 creates a new protected branch if we skip authorization step6080 raises Gitlab::Access:AccessDeniedError6081 when a policy restricts rule creation6082 prevents creation of the protected branch rule6083DependencyProxy::FileUploader6084 DependencyProxy::Blob uploader6085 behaves like builds correct paths6086 #store_dir6087 behaves like matches the method pattern6088 is expected to match /\h{2}\/\h{2}/6089 #cache_dir6090 behaves like matches the method pattern6091 is expected to match /\/dependency_proxy\/tmp\/cache/6092 #work_dir6093 behaves like matches the method pattern6094 is expected to match /\/dependency_proxy\/tmp\/work/6095 #upload_path6096 behaves like matches the method pattern6097 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6098 #relative_path6099 is relative (PENDING: Path not set, skipping.)6100 .absolute_path6101 behaves like matches the method pattern6102 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6103 .base_dir6104 behaves like matches the method pattern6105 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6106 path traversal exploits6107 throws an exception6108 object store is remote6109 behaves like builds correct paths6110 #store_dir6111 behaves like matches the method pattern6112 is expected to match /\h{2}\/\h{2}/6113 #cache_dir6114 behaves like matches the method pattern6115 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6116 #work_dir6117 behaves like matches the method pattern6118 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6119 #upload_path6120 behaves like matches the method pattern6121 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6122 #relative_path6123 is relative (PENDING: Path not set, skipping.)6124 .absolute_path6125 behaves like matches the method pattern6126 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6127 .base_dir6128 behaves like matches the method pattern6129 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6130 path traversal exploits6131 throws an exception6132 DependencyProxy::Manifest uploader6133 will change upload file content type to match the model content type6134Ci::PendingBuilds::UpdateProjectWorker6135 #perform6136 when a project is not provided6137 does not call the service6138 when everything is ok6139 calls the service6140 is labeled as idempotent6141 performs multiple times sequentially without raising an exception6142 updates the pending builds6143Gitlab::IssuableMetadata6144 returns an empty Hash if an empty collection is provided6145 raises an error when given a collection with no limit6146 issues6147 aggregates stats on issues6148 merge requests6149 aggregates stats on merge requests6150Issues::RelatedBranchesService6151 #execute6152 no branches are available6153 returns an empty array6154 branches are available6155 selects relevant branches, along with pipeline status where available6156 excludes branches referenced in merge requests6157 the user has access to otherwise unreadable pipelines6158 when admin mode is enabled6159 returns info a developer could not see6160 when admin mode is disabled6161 does not return info a developer could not see6162 one of the branches is stable6163 is excluded6164EnvironmentsHelper6165 #metrics_data6166 returns data6167 without admin_operations permission6168 is expected to include {"can_access_operations_settings" => "false"}6169 with metrics_setting6170 adds external_dashboard_url6171 when the environment is not available6172 is expected to include {"environment_state" => "stopped"}6173 when request is from project scoped metrics path6174 /:namespace/:project/-/metrics6175 uses correct path for metrics_dashboard_base_path6176 /:namespace/:project/-/metrics/some_custom_dashboard.yml6177 uses correct path for metrics_dashboard_base_path6178 #custom_metrics_available?6179 returns true6180 #environment_logs_data6181 returns logs data6182 #environment_data6183 returns the environment as JSON6184admin/dashboard/index.html.haml6185 shows version of GitLab Workhorse6186 includes revision of GitLab for pre VERSION6187 shows the tag for GitLab version6188 does not include license breakdown6189 links to the GitLab Changelog6190Users::DeactivateDormantUsersWorker6191 #perform6192 does not run for GitLab.com6193 when automatic deactivation of dormant users is enabled6194 deactivates dormant users6195 does not deactivate non-active users6196 user_type: :human, expected_state: "deactivated"6197 deactivates certain user types6198 user_type: :support_bot, expected_state: "active"6199 deactivates certain user types6200 user_type: :alert_bot, expected_state: "active"6201 deactivates certain user types6202 user_type: :visual_review_bot, expected_state: "active"6203 deactivates certain user types6204 user_type: :service_user, expected_state: "deactivated"6205 deactivates certain user types6206 user_type: :ghost, expected_state: "active"6207 deactivates certain user types6208 user_type: :project_bot, expected_state: "active"6209 deactivates certain user types6210 user_type: :migration_bot, expected_state: "active"6211 deactivates certain user types6212 user_type: :security_bot, expected_state: "active"6213 deactivates certain user types6214 user_type: :automation_bot, expected_state: "active"6215 deactivates certain user types6216 when automatic deactivation of dormant users is disabled6217 does nothing6218Gitlab::Lograge::CustomOptions6219 .call6220 ignores some parameters6221 formats the parameters6222 adds the current time6223 adds the user id6224 adds Cloudflare headers6225 adds the metadata6226 when metadata is missing6227 does not break6228 trusted payload6229 is expected to include {:remote_ip => "192.168.1.2", :user_id => "test", :ua => "Nyxt", :queue_duration_s => 0.2, :etag_route => "/etag", :request_urgency => :default, :target_duration_s => 1, :cf_ray => "f338c9828011beff9ffbaba8c999f7a9", :cf_request_id => "86b57ac76b6c6aa30cfba8c8a1b976e4"}6230 payload with rejected fields6231 is expected to include {:request_urgency => :high}6232 is expected not to include {:something => "random"}6233 is expected not to include {:username => nil}6234 when correlation_id is overridden6235 sets the overridden value6236 when feature flags are present6237 and :feature_flag_log_states is enabled6238 adds feature flag events6239 and :feature_flag_log_states is disabled6240 does not track or add feature flag events6241Ci::PipelineVariable6242 is expected to validate that :key cannot be empty/falsy6243 behaves like CI variable6244 is expected to includes the Ci::HasVariable module6245 strips whitespaces when assigning key6246 can convert to runner variable6247 variable type6248 defines variable types6249 defaults variable type to env_var6250 supports variable type file6251 #hook_attrs6252 is expected to be a kind of Hash6253 is expected to eq {:key=>"foo", :value=>"bar"}6254Gitlab::LegacyGithubImport::Client6255 convert OAuth2 client options to symbols6256 does not crash (e.g. Settingslogic::MissingSetting) when verify_ssl config is not present6257 when config is missing6258 is still possible to get an Octokit client6259 is not be possible to get an OAuth2 client6260 allow SSL verification to be configurable on API6261 uses supplied value6262 #api_endpoint6263 when provider does not specity an API endpoint6264 uses GitHub root API endpoint6265 when provider specify a custom API endpoint6266 uses the custom API endpoint6267 when given a host6268 builds a endpoint with the given host and the default API version6269 when given an API version6270 does not use the API version without a host6271 when given a host and version6272 builds a endpoint with the given options6273 and hostname6274 builds a endpoint with the given options6275 github rate limit6276 does not raise error when rate limit is disabled6277 when wait for rate limit is disabled6278 raises the error limit error when requested6279Gitlab::SidekiqCluster6280 .start6281 starts Sidekiq with the given queues, environment and options6282 starts Sidekiq with the given queues and sensible default options6283 .start_sidekiq6284 starts a Sidekiq process6285 handles duplicate queue names6286 runs the sidekiq process in a new process group6287 .count_by_queue6288 tallies the queue counts6289 .concurrency6290 queue_count: 2, min: 0, max: 0, expected: 36291 is expected to eq 36292 queue_count: 2, min: 0, max: 9, expected: 36293 is expected to eq 36294 queue_count: 2, min: 1, max: 4, expected: 36295 is expected to eq 36296 queue_count: 2, min: 4, max: 5, expected: 46297 is expected to eq 46298 queue_count: 5, min: 2, max: 3, expected: 36299 is expected to eq 36300 queue_count: 2, min: 1, max: 1, expected: 16301 is expected to eq 16302 queue_count: 0, min: 3, max: 3, expected: 36303 is expected to eq 36304 queue_count: 1, min: 4, max: 3, expected: 36305 is expected to eq 36306Gitlab::Ci::Reports::TestReportsComparer6307 #suite_comparers6308 when head and base reports include two test suites6309 returns test suite comparers with specified values6310 #total_status6311 when all tests cases are success in head suites6312 returns the total status6313 when there is a failed test case in head suites6314 returns the total status in head suite6315 when there is an error test case in head suites6316 returns the total status in head suite6317 #total_count6318 returns the total test counts in head suites6319 #resolved_count6320 when there is a resolved failure test case in head suites6321 returns the correct count6322 when there is a resolved error test case in head suites6323 returns the correct count6324 when there are no resolved test cases in head suites6325 returns the correct count6326 #failed_count6327 when there is a failed test case in head suites6328 returns the correct count6329 when there are no failed test cases in head suites6330 returns the correct count6331 #error_count6332 when there is an error test case in head suites6333 returns the correct count6334 when there are no error test cases in head suites6335 returns the correct count6336Gitlab::Database::PostgresPartitionedTable6337 associations6338 is expected to have many postgres_partitions6339 behaves like a postgres model6340 .by_identifier6341 finds the Gitlab::Database::PostgresPartitionedTable6342 raises an error if not found6343 raises ArgumentError if given a non-fully qualified identifier6344 #to_s6345 returns the name6346 #schema6347 returns the schema6348 #name6349 returns the name6350 .find_by_name_in_current_schema6351 finds the partitioned tables in the current schema by name6352 does not find partitioned tables in a different schema6353 #dynamic?6354 returns true for tables partitioned by range6355 returns true for tables partitioned by list6356 returns false for tables partitioned by hash6357 #static?6358 returns false for tables partitioned by range6359 returns false for tables partitioned by list6360 returns true for tables partitioned by hash6361 #strategy6362 returns the partitioning strategy6363 #key_columns6364 returns the partitioning key columns6365Gitlab::Graphql::Lazy6366 #force6367 can extract the value6368 can derive new lazy values6369 only evaluates once6370 deals with nested laziness6371 .with_value6372 defers the application of a block to a value6373 evaluates to the application of the block to the value6374 .force6375 when given a plain value6376 unwraps the value6377 when given a wrapped lazy value6378 unwraps the value6379 when the value is from a batchloader6380 syncs the value6381 when the value is a GraphQL lazy6382 forces the evaluation6383 when the value is a promise6384 executes the promise and waits for the value6385RspecFlaky::Config6386 .generate_report?6387 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is not set6388 returns false6389 when ENV['FLAKY_RSPEC_GENERATE_REPORT'] is set6390 env_value: "1", result: true6391 returns false6392 env_value: "true", result: true6393 returns false6394 env_value: "foo", result: false6395 returns false6396 env_value: "0", result: false6397 returns false6398 env_value: "false", result: false6399 returns false6400 .suite_flaky_examples_report_path6401 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is not set6402 returns the default path6403 when ENV['SUITE_FLAKY_RSPEC_REPORT_PATH'] is set6404 returns the value of the env variable6405 .flaky_examples_report_path6406 when ENV['FLAKY_RSPEC_REPORT_PATH'] is not set6407 returns the default path6408 when ENV['FLAKY_RSPEC_REPORT_PATH'] is set6409 returns the value of the env variable6410 .new_flaky_examples_report_path6411 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is not set6412 returns the default path6413 when ENV['NEW_FLAKY_RSPEC_REPORT_PATH'] is set6414 returns the value of the env variable6415GpgKeys::CreateService6416 creates a gpg key6417 notification6418 sends a notification6419 when the public key contains subkeys6420 generates the gpg subkeys6421Gitlab::Cache::RequestCache6422 when RequestStore is active6423 computes once for different instances when keys are the same6424 computes twice if RequestStore starts over6425 behaves like cache for the same instance6426 does not compute twice for the same argument6427 computes twice for the different argument6428 computes twice for the different class name6429 computes twice for the different method6430 when request_cache_key is provided6431 computes twice for the different keys, id6432 computes twice for the different keys, name6433 uses extra method cache key if provided6434 when RequestStore is inactive6435 computes twice for different instances even if keys are the same6436 behaves like cache for the same instance6437 does not compute twice for the same argument6438 computes twice for the different argument6439 computes twice for the different class name6440 computes twice for the different method6441 when request_cache_key is provided6442 computes twice for the different keys, id6443 computes twice for the different keys, name6444 uses extra method cache key if provided6445Groups::AutoDevopsService#execute6446 when user does not have enough privileges6447 raises exception6448 when user has enough privileges6449 updates group auto devops enabled accordingly6450 when group has projects6451 reflects changes on projects6452 when group has subgroups6453 reflects changes on subgroups6454 when subgroups have projects6455 reflects changes on projects6456Gitlab::Database::Count::TablesampleCountStrategy6457 #count6458 for tables with an estimated small size6459 performs an exact count6460 for tables with an estimated large size6461 performs a tablesample count6462 insufficient permissions6463 returns an empty hash6464DesignManagement::GenerateImageVersionsService6465 #execute6466 generates the image6467 skips generating image versions if the mime type is not whitelisted6468 skips generating image versions if the design file size is too large6469 returns the status6470 returns the version6471 logs if the raw image cannot be found6472 when an error is encountered when generating the image versions6473 CarrierWave::IntegrityError6474 logs the exception6475 logs the error6476 CarrierWave::UploadError6477 logs the error6478 tracks the error6479RuboCop::Cop::RSpec::FactoriesInMigrationSpecs6480 behaves like an offensive factory call6481 registers an offense for build(:user)6482 registers an offense for build_list(:user)6483 registers an offense for create(:user)6484 registers an offense for create_list(:user)6485 registers an offense for attributes_for(:user)6486 behaves like an offensive factory call6487 registers an offense for FactoryBot.build(:user)6488 registers an offense for FactoryBot.build_list(:user)6489 registers an offense for FactoryBot.create(:user)6490 registers an offense for FactoryBot.create_list(:user)6491 registers an offense for FactoryBot.attributes_for(:user)6492Ci::DailyBuildGroupReportResultsFinder6493 #execute6494 when params are provided6495 when current user is not allowed to read data6496 returns an empty collection6497 when current user is allowed to read data6498 returns matching coverages within the given date range6499 when ref_path is nil6500 returns coverages for the default branch6501 when limit is specified6502 returns limited number of matching coverages within the given date range6503 when provided dates are nil6504 returns all coverages from the last 90 days6505Ci::DropPipelineService6506 #execute_async_for_all6507 drops only cancelable pipelines asynchronously6508 #execute6509 drops each cancelable build in the pipeline6510 avoids N+1 queries when reading data6511RemoveUnacceptedMemberInvitesWorker6512 #perform6513 unaccepted members6514 removes unaccepted members6515 invited members still within expiration threshold6516 leaves invited members6517 accepted members6518 leaves accepted members6519MergeRequests::MigrateExternalDiffsService6520 .enqueue!6521 enqueues nothing if external diffs are disabled6522 enqueues eligible in-database diffs if external diffs are enabled6523 #execute6524 migrates an in-database diff to the external store6525Users::UpdateTodoCountCacheService6526 #execute6527 updates the todos_counts for users6528 avoids N+1 queries6529 executes one query per batch of users6530 sets the correct cache expire time6531CleanupContainerRepositoryWorker6532 #perform6533 bulk delete api6534 executes the destroy service6535 does not raise error when user could not be found6536 does not raise error when repository could not be found6537 container expiration policy6538 executes the destroy service6539 doesn't reset the expiration policy started at if the destroy service returns an error6540forked project import6541 can access the MR6542Gitlab::EtagCaching::Router::Restful6543 matches issue notes endpoint6544 matches MR notes endpoint6545 matches issue title endpoint6546 matches with a project name that includes a suffix of create6547 matches with a project name that includes a prefix of create6548 matches project pipelines endpoint6549 matches commit pipelines endpoint6550 matches new merge request pipelines endpoint6551 matches merge request pipelines endpoint6552 matches build endpoint6553 does not match blob with confusing name6554 matches the cluster environments path6555 matches the environments path6556 does not match the operations environments list path6557 matches pipeline#show endpoint6558 has a valid feature category for every route6559 .cache_key6560 uses request path as cache key6561MergeRequests::AddContextService6562 #execute6563 when admin mode is enabled6564 adds context commit6565 when admin mode is disabled6566 doesn't add context commit6567 when user doesn't have permission to update merge request6568 doesn't add context commit6569 when the commits array is empty6570 doesn't add context commit6571AccessTokenValidationService6572 .include_any_scope?6573 returns true if the required scope is present in the token's scopes6574 returns true if more than one of the required scopes is present in the token's scopes6575 returns true if the list of required scopes is an exact match for the token's scopes6576 returns true if the list of required scopes contains all of the token's scopes, in addition to others6577 returns true if the list of required scopes is blank6578 returns false if there are no scopes in common between the required scopes and the token scopes6579 conditions6580 ignores any scopes whose `if` condition returns false6581 does not ignore scopes whose `if` condition is not set6582 does not ignore scopes whose `if` condition returns true6583Gitlab::ReactiveCacheSetCache6584 #cache_key6585 includes the suffix6586 #read6587 is expected to be empty6588 after item added6589 is expected to contain exactly "test_item"6590 #write6591 writes the value to the cache6592 sets the expiry of the set6593 #clear_cache!6594 deletes the cached items6595 #include?6596 is expected to equal false6597 item added6598 is expected to equal true6599Gitlab::FileMarkdownLinkBuilder6600 markdown_link6601 when file name has the character ]6602 escapes the character6603 when file is an image6604 returns preview markdown link6605 when file is video6606 returns preview markdown link6607 when file is audio6608 returns preview markdown link6609 when file is not embeddable6610 returns markdown link6611 when file name is blank6612 returns nil6613 mardown_name6614 when file is an image6615 retrieves the name without the extension6616 when file is video6617 retrieves the name without the extension6618 when file is audio6619 retrieves the name without the extension6620 when file is not embeddable6621 retrieves the name with the extesion6622 when file name is blank6623 returns nil6624Banzai::Filter::InlineClusterMetricsFilter6625 behaves like a metrics embed filter6626 when the document has an external link6627 leaves regular non-metrics links unchanged6628 when the document contains an embeddable link6629 leaves the original link unchanged6630 appends a metrics charts placeholder6631 in a paragraph6632 appends a metrics charts placeholder after the enclosing paragraph6633DesignManagement::Repository6634 #info_attributes6635 is expected to eql {"diff"=>"lfs", "filter"=>"lfs", "merge"=>"lfs", "text"=>false}6636 #attributes_at6637 is expected to eql {"diff"=>"lfs", "filter"=>"lfs", "merge"=>"lfs", "text"=>false}6638 #gitattribute6639 returns a gitattribute when path has gitattributes6640 returns nil when path has no gitattributes6641 #copy_gitattributes6642 always returns regardless of whether given a valid or invalid ref6643 #attributes6644 confirms that all files are LFS enabled6645Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit6646 behaves like value stream analytics event6647 is expected to be a kind of String6648 is expected to be a kind of Symbol6649 is expected to include ApplicationRecord(abstract)6650 is expected to respond to #timestamp_projection6651 is expected to respond to #html_description6652 is expected to be a kind of Array6653 #apply_query_customization6654 expects an ActiveRecord::Relation object as argument and returns a modified version of it6655 #hash_code6656 returns a hash that uniquely identifies an event6657 does not differ when the same object is built with the same params6658 behaves like LEFT JOIN-able value stream analytics event6659 can use the event as LEFT JOIN6660 when looking at the record with data6661 contains the timestamp expression6662 when looking at the record without data6663 returns nil for the timestamp expression6664Gitlab::Cleanup::RemoteUploads6665 when object_storage is enabled6666 when dry_run is set to false6667 moves files that are not in uploads table6668 when dry_run is set to true6669 does not move filese6670 when object_storage is not enabled6671 does not connect to any storage6672Gitlab::Database::Partitioning::PartitionManager6673 creating partitions (mocked)6674 creates the partition6675 when an error occurs during partition management6676 does not raise an error6677 creating partitions6678 creates partitions6679 detaching partitions (mocked)6680 detaches each extra partition6681 #detach_partitions6682 detaches exactly one partition6683 detaches the old partition6684 deletes zero tables6685 creates the appropriate PendingPartitionDrop entry6686 when the model is the target of a foreign key6687 does not detach partitions with a referenced foreign key6688 creating and then detaching partitions for a table6689 creates partitions for the future then drops the oldest one after a month6690Graphql::Arguments6691 returns a blank string if the arguments are blank6692 returns a serialized arguments if the arguments are not blank6693 supports merge with +6694 supports merge with + and a string6695 supports merge with + and a string when empty6696 supports merge with + and an empty string6697 serializes all values correctly6698Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder6699 scopes the query for the given project6700 author_username param6701 returns stage events associated with the given author6702 returns empty result when unknown author is given6703 milestone_title param6704 returns stage events associated with the milestone6705 returns empty result when unknown milestone is given6706 label_name param6707 returns stage events associated with multiple labels6708 does not include records with partial label match6709 assignee_username param6710 returns stage events associated assignee6711 timestamp filtering6712 filters by the end event time range6713 when in_progress items are requested6714 filters by the start event time range6715projects/environments/terminal6716 when environment has external URL6717 shows external URL button6718 when environment does not have external URL6719 shows external URL button6720Gitlab::DependencyLinker::PodspecJsonLinker6721 .support?6722 supports *.podspec.json6723 does not support other files6724 #link6725 links the gem name6726 links the license6727 links the homepage6728 links the source URL6729 links dependencies6730 does not link subspec names6731Gitlab::EndpointAttributes6732 is nil when nothing was defined6733 returns the expected category6734 falls back to default when urgency was not defined6735 returns the expected urgency6736 returns feature category for an implied action if not specify actions6737 returns expected duration for an implied action if not specify actions6738 returns the expected category for categories defined in subclasses6739 falls back to superclass's feature category6740 returns the expected urgency for categories defined in subclasses6741 falls back to superclass's expected duration6742 raises an error when defining for the controller and for individual actions6743 raises an error when multiple calls define the same action6744 raises an error when multiple calls define the same action6745 does not raise an error when multiple calls define the same action and configs6746 raises an error if the expected duration is not supported6747Gitlab::Verify::LfsObjects6748 behaves like Gitlab::Verify::BatchVerifier subclass6749 batching6750 iterates through objects in batches6751 allows the starting ID to be specified6752 allows the finishing ID to be specified6753 #run_batches6754 passes LFS objects with the correct file6755 fails LFS objects with a missing file6756 fails LFS objects with a mismatched oid6757 with remote files6758 passes LFS objects in object storage that exist6759 fails LFS objects in object storage that do not exist6760TodoPolicy6761 own_todo6762 allows owners to access their own todos if they can read todo target6763 does not allow users to access todos of other users6764Packages::Nuget::PackagesMetadataPresenter6765 #count6766 is expected to eq 16767 #items6768 returns an array6769 returns a summary structure6770 returns the catalog entries6771Gitlab::PhabricatorImport::Cache::Map6772 #get_gitlab_model6773 returns nil if there was nothing cached for the phabricator id6774 returns the object if it was set in redis6775 extends the TTL for the cache key6776 sets the object in redis once if a block was given and nothing was cached6777 does not cache `nil` objects6778 #set_gitlab_model6779 sets the class and id in redis with a ttl6780Gitlab::Database::UnidirectionalCopyTrigger6781 #name6782 when a single column name is given6783 returns the trigger name6784 when multiple column names are given6785 returns the trigger name6786 when a different number of new and old column names are given6787 raises an error6788 #create6789 when a single column name is given6790 creates the trigger and function6791 properly copies the column data using the trigger function6792 when multiple column names are given6793 creates the trigger and function to set all the columns6794 properly copies the columns using the trigger function6795 when a custom trigger name is given6796 creates the trigger and function with the custom name6797 when the trigger function already exists6798 does not raise an error6799 when a different number of new and old column names are given6800 raises an error6801 #drop6802 drops the trigger and function for the given arguments6803 when the trigger does not exist6804 does not raise an error6805Resolvers::Terraform::StatesResolver6806 is expected to have nullable GraphQL type TerraformStateConnection6807 is expected to be truthy6808 #resolve6809 returns states associated with the agent6810 user does not have permission6811 is expected to be empty6812Resolvers::Terraform::StatesResolver.single6813 is expected to be < Resolvers::Terraform::StatesResolver6814 arguments6815 name6816 is expected to be present6817ReviewAppSetupEntity6818 #as_json6819 contains can_setup_review_app6820 when the user can setup a review app6821 contains relevant fields6822 exposes the relevant review snippet6823 exposes whether the project has associated clusters6824 when the user cannot setup a review app6825 does not expose certain fields6826BulkImports::CreateService6827 #execute6828 creates bulk import6829 creates bulk import entities6830 creates bulk import configuration6831 enqueues BulkImportWorker6832 returns success ServiceResponse6833 returns ServiceResponse with error if validation fails6834Gitlab::Ci::Status::Build::Skipped6835 #illustration6836 is expected to include :image, :size, and :title6837 .matches?6838 when build is skipped6839 is a correct match6840 when build is not skipped6841 does not match6842Packages::Debian::ParseDebian822Service6843 with dpkg-deb --field output6844 return as expected, preserving order6845 with control file6846 return as expected, preserving order6847 with empty input6848 return a empty hash6849 with unexpected continuation line6850 raise error6851 with duplicate field6852 raise error6853 with incorrect input6854 raise error6855 with duplicate section6856 raise error6857Mutations::Todos::MarkDone6858 is expected to require graphql authorizations :update_todo6859 #resolve6860 marks a single todo as done6861 handles a todo which is already done as expected6862 ignores requests for todos which do not belong to the current user6863 ignores invalid GIDs6864Gitlab::Jira::Dvcs6865 .encode_slash6866 replaces slash character6867 ignores path without slash6868 .decode_slash6869 replaces slash character6870 ignores path without slash6871 .encode_project_name6872 root group6873 returns project path6874 nested group6875 returns encoded project full path6876 .restore_full_path6877 project name is an encoded full path6878 returns decoded project path6879 project name is not an encoded full path6880 assumes project belongs to root namespace and returns full project path based on passed in namespace6881AwardEmojis::CollectUserEmojiService6882 #execute6883 returns an Array containing the awarded emoji names6884 returns an empty Array when no user is given6885Ci::VariablesFinder6886 for a project6887 #initialize6888 without key filter6889 raises an error6890 #execute6891 with key filter6892 returns var16893 with key and environment_scope filter6894 returns var26895 for a group6896 #initialize6897 without key filter6898 raises an error6899 #execute6900 with key filter6901 returns var16902 with key and environment_scope filter6903 returns var26904Gitlab::HookData::MergeRequestBuilder6905 #build6906 includes safe attribute6907 includes additional attrs6908 source key6909 contains project data6910 target key6911 contains project data6912 when the MR has an image in the description6913 sets the image to use an absolute URL6914Clusters::Aws::FetchCredentialsService6915 #execute6916 provision role is configured6917 provider is specified6918 is expected to eq #<Double (anonymous)>6919 provider is not specifed6920 is expected to eq #<Double (anonymous)>6921 region is not specifed6922 is expected to eq #<Double (anonymous)>6923 provision role is not configured6924 raises an error6925 with an instance profile attached to an IAM role6926 provider is specified6927 returns credentials6928 provider is not specifed6929 returns credentials6930ImportExportCleanUpService6931 #execute6932 when the import/export tmp storage directory does not exist6933 does not remove any archives6934 when the import/export tmp storage directory exists6935 removes old files and logs6936 does not remove new files or logs6937 removes old files and logs6938 does not remove new files or logs6939 with uploader exports6940/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil6941 removes old files and logs6942 does not remove new files or logs6943WebHooks::DestroyWorker6944 #perform6945 with a Web hook6946 deletes the Web hook and logs6947 raises and tracks an error if destroy failed6948 with unknown hook6949 does not raise an error6950 with unknown user6951 does not raise an error6952schema_version_check rake task6953 allows migrations on databases meeting the min schema version requirement6954 raises an error when schema version is too old to migrate6955 skips running validation when passed the skip env variable6956 allows migrations on fresh databases6957Mutations::Ci::JobTokenScope::AddProject6958 #resolve6959 when user is not logged in6960 raises error6961 when user is logged in6962 when user does not have permissions to admin project6963 raises error6964 when user has permissions to admin project and read target project6965 adds target project to the job token scope6966 when the service returns an error6967 returns an error response6968RolloutStatusEntity6969 exposes status6970 exposes has_legacy_app_label6971 when kube deployment is valid6972 exposes deployment data6973 does not expose canary ingress if it does not exist6974 when canary ingress exists6975 expose canary ingress6976 when kube deployment is empty6977 exposes status6978 does not expose deployment data6979MergeRequestWidgetCommitEntity6980 as json6981 is expected to eq "Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"6982 is expected to eq "b83d6e39"6983 is expected to eq "Merge branch 'branch-merged' into 'master'"6984projects/generic_commit_statuses/_generic_commit_status.html.haml6985 won't include a column with a link to its pipeline by default6986 can include a column with a link to its pipeline6987Gitlab::Kubernetes::Node6988 #all6989 when connection to the cluster is successful6990 is expected to eq {:nodes=>[{"metadata"=>{"name"=>"gke-cluster-applications-default-pool-49b7f225-v527"}, "status"=>{"a...ity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}, "usage"=>{"cpu"=>"144208668n", "memory"=>"1789048Ki"}}]}6991 when an uncategorised error is raised6992 is expected to eq {:node_connection_error=>:unknown_error}6993 notifies Sentry6994JsonSchemaValidator6995 #validates_each6996 when filename is set6997 when data is valid6998 returns no errors6999 when data is invalid7000 returns json schema is invalid7001 when filename is not set7002 raises an ArgumentError7003 when filename is invalid7004 raises a FilenameError7005 hash_conversion option7006 when hash_conversion is enabled7007 returns no errors7008ApplicationSetting::Term7009 is expected to validate that :terms cannot be empty/falsy7010 .latest7011 finds the latest terms7012 #accepted_by_user?7013 is true when the user accepted the terms7014 is true when user is a bot7015 is false when the user declined the terms7016 does not cause a query when the user accepted the current terms7017 returns false if the currently accepted terms are different7018Ci::GenerateKubeconfigService7019 #execute7020 adds a cluster, and a user and context for each available agent7021PipelineNotificationWorker7022 #execute7023 calls NotificationService#pipeline_finished when the pipeline exists7024 does nothing when the pipeline does not exist7025 behaves like worker with data consistency7026 .get_data_consistency_feature_flag_enabled?7027 returns true7028 .get_data_consistency7029 returns correct data consistency7030Gitlab::Ci::Config::Entry::Inherit::Default7031 validations7032 config: true, valid: true7033 is expected to eq true7034 config: false, valid: true7035 is expected to eq true7036 config: ["image"], valid: true7037 is expected to eq true7038 config: ["unknown"], valid: false7039 is expected to eq false7040 config: [:image], valid: false7041 is expected to eq false7042 config: [true], valid: false7043 is expected to eq false7044 config: "string", valid: false7045 is expected to eq false7046 #inherit?7047 config: true, inherit: true7048 is expected to eq true7049 config: false, inherit: false7050 is expected to eq false7051 config: ["image"], inherit: true7052 is expected to eq true7053 config: ["before_script"], inherit: false7054 is expected to eq false7055Gitlab::GithubImport::MarkdownText7056 .format7057 formats the text7058 #to_s7059 returns the text when the author was found7060 returns the text when the author has no login7061 returns empty text when it receives nil7062 returns the text with an extra header when the author was not found7063 cleans invalid chars7064Forever7065 .date7066 returns Postgresql future date7067ServiceHookPresenter7068 #logs_details_path7069 is expected to eq "/namespace1795/project1538/-/services/drone_ci/hook_logs/9"7070 #logs_retry_path7071 is expected to eq "/namespace1796/project1539/-/services/drone_ci/hook_logs/10/retry"7072Gitlab::SidekiqMiddleware::AdminMode::Client7073 yields block7074 user is a regular user7075 no admin mode field in payload7076 user is an administrator7077 admin mode disabled7078 no admin mode field in payload7079 admin mode enabled7080 when sidekiq required context not set7081 no admin mode field in payload7082 when user stored in current request7083 has admin mode field in payload7084 when bypassing session7085 has admin mode field in payload7086 admin mode setting disabled7087 yields block7088 no admin mode field in payload7089Gitlab::Database::PostgresqlAdapter::TypeMapCache7090 #initialize_type_map7091 caches loading of types in memory7092 only reuses the cache if the connection parameters are exactly the same7093 #reload_type_map7094 clears the cache and executes the type map query again7095API::Validations::Validators::EmailOrEmailList7096 with valid email addresses7097 does not raise a validation error7098 including any invalid email address7099 raises a validation error7100projects/hooks/index7101 renders webhooks page with "Project Hooks"7102 webhook is rate limited7103 renders "Disabled" badge7104 webhook is permanently disabled7105 renders "Failed to connect" badge7106 webhook is temporarily disabled7107 renders "Fails to connect" badge7108ProjectPagesMetadatum7109 .only_on_legacy_storage7110 returns only deployed records without deployment7111Doorkeeper::OpenidConnect::DiscoveryController routing7112 to #provider7113 to #webfinger7114 to #keys7115Doorkeeper::OpenidConnect::UserinfoController routing7116 to #show7117 to #show7118Projects::CiFeatureUsage7119 associations7120 is expected to belong to project required: false7121 behaves like having unique enum values7122 has unique values in "feature"7123 validations7124 is expected to validate that :project cannot be empty/falsy7125 is expected to validate that :feature cannot be empty/falsy7126 .insert_usage7127 when data is not a duplicate7128 creates a new record7129 when data is a duplicate7130 does not create a new record7131Gitlab::Database::ConnectionTimer7132 .starting_now7133 when the configured interval is positive7134 randomizes the interval of the created timer7135 when the configured interval is not positive7136 sets the interval of the created timer to nil7137 .expired?7138 when the interval is positive7139 when the interval has elapsed7140 returns true7141 when the interval has not elapsed7142 returns false7143 when the interval is not positive7144 when the interval has elapsed7145 returns false7146 when the interval has not elapsed7147 returns false7148 when the interval is nil7149 returns false7150 .reset!7151 updates the timer clock value7152Gitlab::Metrics::Samplers::ThreadsSampler7153 behaves like metrics sampler7154 when sampling interval is passed explicitly7155 is expected to eq 427156 when sampling interval is passed through the environment7157 is expected to eq 427158 when no sampling interval is passed anywhere7159 uses the hardcoded default7160 #start7161 calls the sample method on the sampler thread7162 with warmup set to true7163 calls the sample method first on the caller thread7164 #safe_sample7165 calls #sample once7166 when sampling fails with error7167 recovers from errors7168 with logger7169 logs errors7170 #sample7171 sets the gauge for the concurrency total7172 thread counts7173 reports if any of the threads per group uses the db7174 thread names7175 thread_names: [nil], expected_names: ["unnamed"]7176 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7177 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]7178 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7179 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]7180 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7181 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]7182 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7183 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]7184 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7185Backup::FileBackupError7186 with lfs file7187 behaves like includes backup path7188 is expected to respond to #app_files_dir7189 is expected to respond to #backup_tarball7190 expects exception message to include file backup path location7191 expects exception message to include file being back-up7192 with uploads file7193 behaves like includes backup path7194 is expected to respond to #app_files_dir7195 is expected to respond to #backup_tarball7196 expects exception message to include file backup path location7197 expects exception message to include file being back-up7198Gitlab::ImportExport::AvatarSaver7199 saves a project avatar7200 is fine not to have an avatar7201Gitlab::Ci::Build::Releaser7202 #script7203 all nodes7204 generates the script7205 individual nodes7206 node_name: :name, node_value: "Release $CI_COMMIT_SHA", result: "release-cli create --name \"Release $CI_COMMIT_SHA\""7207 generates the script7208 node_name: :description, node_value: "Release-cli $EXTRA_DESCRIPTION", result: "release-cli create --description \"Release-cli $EXTRA_DESCRIPTION\""7209 generates the script7210 node_name: :tag_name, node_value: "release-$CI_COMMIT_SHA", result: "release-cli create --tag-name \"release-$CI_COMMIT_SHA\""7211 generates the script7212 node_name: :ref, node_value: "$CI_COMMIT_SHA", result: "release-cli create --ref \"$CI_COMMIT_SHA\""7213 generates the script7214 node_name: :milestones, node_value: ["m1", "m2", "m3"], result: "release-cli create --milestone \"m1\" --milestone \"m2\" --milestone \"m3\""7215 generates the script7216 node_name: :released_at, node_value: "2020-07-15T08:00:00Z", result: "release-cli create --released-at \"2020-07-15T08:00:00Z\""7217 generates the script7218 node_name: :assets, node_value: {:links=>[{:name=>"asset1", :url=>"https://example.com/assets/1", :link_type=>"other", :filepath=>"/pretty/asset/1"}]}, result: "release-cli create --assets-link \"{\\\"name\\\":\\\"asset1\\\",\\\"url\\\":\\\"https://example.com/assets/1\\\",\\\"link_type\\\":\\\"other\\\",\\\"filepath\\\":\\\"/pretty/asset/1\\\"}\""7219 generates the script7220Mutations::UserCallouts::Create7221 #resolve7222 when feature name is not supported7223 does not create a user callout7224 returns error about feature name not being supported7225 when feature name is supported7226 creates a user callout7227 sets dismissed_at for the user callout7228 has no errors7229Analytics::UsageTrends::CountJobTriggerWorker7230 behaves like an idempotent worker7231 is labeled as idempotent7232 performs multiple times sequentially without raising an exception7233 triggers a job for each measurement identifiers7234 triggers CounterJobWorker jobs7235Types::AvailabilityEnum7236 is expected to eq "AvailabilityEnum"7237 exposes all the existing access levels7238UserAgentDetail7239 .submittable?7240 is submittable when not already submitted7241 is not submittable when already submitted7242 .valid?7243 is valid with a subject7244 is invalid without a subject7245Sidebars::Groups::Menus::InviteTeamMembersMenu7246 when the group is viewed by an owner of the group7247 #render?7248 renders the Invite team members link7249 when the group already has at least 2 members7250 does not render the link7251 #title7252 displays the correct Invite team members text for the link in the side nav7253 when the group is viewed by a guest user without admin permissions7254 #render?7255 does not render the link7256Gitlab::Ci::Matching::BuildMatcher7257 .new7258 when attributes are missing7259 is expected to raise KeyError7260 with attributes7261 is expected to eq true7262 is expected to eq ["tag1", "tag2"]7263 is expected to eq [1, 2, 3]7264 is expected to eq :my_project7265 #protected?7266 when protected is set to true7267 is expected to be truthy7268 when protected is set to false7269 is expected to be falsey7270 #has_tags?7271 when tags are present7272 is expected to be truthy7273 when tags are empty7274 is expected to be falsey7275Gitlab::Ci::Build::Artifacts::Path7276 #valid?7277 when path contains a zero character7278 is not valid7279 when path is not utf8 string7280 is not valid7281 when path is valid7282 is valid7283 #directory?7284 when path ends with a directory indicator7285 is a directory7286 when path does not end with a directory indicator7287 is not a directory7288 #name7289 returns a base name7290 #nodes7291 returns number of path nodes7292 #to_s7293 when path is valid7294 returns a string representation of a path7295 when path is invalid7296 raises an error7297scripts/changed-feature-flags7298 GetFeatureFlagsFromFiles7299 .extracted_flags7300 with definition files in the development directory7301 behaves like extract feature flags7302 returns feature flags on their own7303 returns feature flags and their state as enabled7304 returns feature flags and their state as disabled7305 with definition files in the ops directory7306 behaves like extract feature flags7307 returns feature flags on their own7308 returns feature flags and their state as enabled7309 returns feature flags and their state as disabled7310 with definition files in the experiment directory7311 ignores the files7312Ci::DisableUserPipelineSchedulesService7313 #execute7314 when user has active pipeline schedules7315 disables all active pipeline schedules7316IdentityProviderPolicy7317 #rules7318 is expected to be allowed :link7319 is expected to be allowed :unlink7320 when user is anonymous7321 is expected not to be allowed :link7322 is expected not to be allowed :unlink7323 when provider is saml7324 is expected to be allowed :link7325 is expected not to be allowed :unlink7326 when provider is cas37327 is expected to be allowed :link7328 is expected not to be allowed :unlink7329Users::DismissCalloutService7330 #execute7331 behaves like dismissing user callout7332 creates a new user callout7333 returns a user callout7334 sets the dismissed_at attribute to current time7335 updates an existing callout dismissed_at time7336 does not update an invalid record with dismissed_at time7337Metrics::UsersStarredDashboards::DeleteService7338 #execute7339 without dashboard_path7340 does not scope user starred dashboards by dashboard path7341 with dashboard_path7342 does scope user starred dashboards by dashboard path7343MergeRequestUserMention7344 associations7345 is expected to belong to merge_request required: false7346 is expected to belong to note required: false7347 behaves like has user mentions7348 #has_mentions?7349 when no mentions7350 returns false7351 when mentioned_users_ids not null7352 returns true7353 when mentioned projects7354 returns true7355 when mentioned groups7356 returns true7357Terraform::ModulesPresenter7358 #modules7359 is expected to be a kind of Array7360 is expected to be a kind of Hash7361 is expected to match schema "public_api/v4/packages/terraform/modules/v1/modules"7362NestedAttributesDuplicatesValidator7363 #validate_each7364 with no scope7365 does not have any errors7366 with duplicates7367 has a duplicate key error7368 with a scope attribute7369 does not have any errors7370 with duplicates7371 has a duplicate key error7372 with a child attribute7373 does not have any errors7374 when name is duplicated7375 has a duplicate error7376 when url is duplicated7377 has a duplicate error7378ProgrammingLanguage7379 is expected to respond to #name7380 is expected to respond to #color7381 is expected to validate that :name cannot be empty/falsy7382 is expected to allow :color to be ‹"#000000"›7383 is expected not to allow :color to be ‹"000000"›7384 is expected not to allow :color to be ‹"#0z0000"›7385Gitlab::Ci::Status::Failed7386 #text7387 is expected to eq "failed"7388 #label7389 is expected to eq "failed"7390 #icon7391 is expected to eq "status_failed"7392 #favicon7393 is expected to eq "favicon_status_failed"7394 #group7395 is expected to eq "failed"7396 #details_path7397 is expected to be nil7398Gitlab::Auth::Atlassian::User7399 .assign_identity_from_auth_hash!7400 behaves like an atlassian identity7401 sets the proper values7402 #save7403 for an existing user7404 with an existing Atlassian Identity7405 finds the existing user and identity7406 behaves like an atlassian identity7407 sets the proper values7408 for a new user7409 creates the user and identity7410TermAgreement7411 validations7412 is expected to validate that :term cannot be empty/falsy7413 is expected to validate that :user cannot be empty/falsy7414 .accepted7415 only includes accepted terms7416Gitlab::DependencyLinker::GoModLinker7417 .support?7418 supports go.mod7419 does not support other files7420 #link7421 links the module name7422 links dependencies7423Issuable::ProcessAssignees7424 #execute7425 returns assignee_ids when add_assignee_ids and remove_assignee_ids are not specified7426 combines other ids when assignee_ids is nil7427 combines other ids when both add_assignee_ids and remove_assignee_ids are not empty7428 combines other ids when remove_assignee_ids is not empty7429 combines other ids when add_assignee_ids is not empty7430 combines ids when existing_assignee_ids and extra_assignee_ids are omitted7431Gitlab::UUID7432 .v57433 in development7434 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7435 in test7436 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"7437 in staging7438 is expected to eq "dd190b37-7754-5c7c-80a0-85621a5823ad"7439 in production7440 is expected to eq "4961388b-9d8e-5da0-a499-3ef5da58daf0"7441 v5?7442 test_string: "not even a uuid", is_uuid_v5: false7443 is expected to equal false7444 test_string: "this-seems-like-a-uuid", is_uuid_v5: false7445 is expected to equal false7446 test_string: "thislook-more-5lik-eava-liduuidbutno", is_uuid_v5: false7447 is expected to equal false7448 test_string: "9f470438-db0f-37b7-9ca9-1d47104c339a", is_uuid_v5: false7449 is expected to equal false7450 test_string: "9f470438-db0f-47b7-9ca9-1d47104c339a", is_uuid_v5: false7451 is expected to equal false7452 test_string: "9f470438-db0f-57b7-9ca9-1d47104c339a", is_uuid_v5: true7453 is expected to equal true7454Clusters::Aws::VerifyProvisionStatusService7455 #execute7456 stack creation is still in progress7457 schedules a worker to check again later7458 stack creation is taking too long7459 sets the status to :errored with an appropriate error message7460 stack creation is complete7461 finalizes creation7462 stack creation failed7463 sets the status to :errored with an appropriate error message7464 error communicating with CloudFormation API7465 sets the status to :errored with an appropriate error message7466Tooling::Danger::Specs7467 #add_suggestions_for_match_with_array7468 adds suggestions at the correct lines7469 #changed_specs_files7470 returns added, modified, and renamed_after files by default7471 with include_ee: :exclude7472 returns spec files without EE-specific files7473 with include_ee: :only7474 returns EE-specific spec files only7475 #added_line_matching_match_with_array7476 returns added, modified, and renamed_after files by default7477Gitlab::ImportExport::VersionChecker7478 bundle a project Git repo7479 returns true if Import/Export have the same version7480 newer version7481 returns false if export version is newer7482 shows the correct error message7483 version file access check7484 does not read a symlink7485Gitlab::Kubernetes::Ingress7486 #canary?7487 with canary ingress parameters7488 is expected to be truthy7489 with stable ingress parameters7490 is expected to be falsey7491 #canary_weight7492 with canary ingress parameters7493 is expected to eq 507494 with stable ingress parameters7495 is expected to be nil7496 #name7497 is expected to eq "production-auto-deploy"7498dashboard/projects/index.html.haml7499 shows the project the user is a member of in the list7500 shows the "New project" button7501Gitlab::SnowplowEventDefinitionGenerator7502 Creating event definition file7503 creates CE event definition file using the template7504 creates EE event definition file using the template7505 event definition already exists7506 overwrites event definition --force flag set to true7507 raises error when --force flag set to false7508Gitlab::Pagination::Keyset::InOperatorOptimization::ColumnData7509 accepts symbols for original_column_name and as7510 #array_aggregated_column_name7511 is expected to eq "issues_id_array"7512 #projection7513 returns the Arel projection for the column with a new alias7514Gitlab::ChatNameToken7515 when using unknown token7516 returns empty data7517 when storing data7518 returns stored data7519 and after deleting them7520 data are removed7521projects/issues/_related_branches7522 shows the related branches with their build status7523Gitlab::Ci::Artifacts::Metrics7524 #increment_destroyed_artifacts7525 when incrementing by more than one7526 increments a single counter7527Mutations::CustomerRelations::Organizations::Update7528 is expected to require graphql authorizations :admin_crm_organization7529 #resolve7530 when the user does not have permission to update an organization7531 raises an error7532 when the organization does not exist7533 raises an error7534 when the user has permission to update an organization7535 updates the organization with correct values7536 when the feature is disabled7537 raises an error7538Gitlab::View::Presenter::Simple7539 includes Gitlab::View::Presenter::Base7540 #initialize7541 takes arbitrary key/values and exposes them7542 override the presentee attributes7543 delegation7544 does not forward missing methods to subject7545Resolvers::EchoResolver7546 is expected to have non-null GraphQL type String7547 #resolve7548 echoes text and username7549 echoes text and nil as username7550Resolvers::Projects::GrafanaIntegrationResolver7551 #resolve7552 when object is not a project7553 is expected to eq nil7554 when object is a project7555 is expected to eq #<GrafanaIntegration id: 1, project_id: 1422, created_at: "2021-12-20 17:21:03.157822426 +0000", upda...ken_iv: "mNjfyDHODO5H3Uy4\n", grafana_url: "https://grafana.example.com", enabled: true, token: nil>7556 when object is nil7557 is expected to eq nil7558Gitlab::Usage::Metrics::Instrumentations::CollectedDataCategoriesMetric7559 behaves like a correct instrumented metric value7560 has correct value7561Types::ReleaseAssetsType7562 is expected to require graphql authorizations :read_release7563 has the expected fields7564 links field7565 is expected to have graphql type #<Class:0x00007fc725e23580>7566 sources field7567 is expected to have graphql type #<Class:0x00007fc7356fc788>7568Packages::GroupOrProjectPackageFinder7569 execute7570 is expected to raise NotImplementedError7571 execute!7572 is expected to raise NotImplementedError7573RuboCop::Cop::Migration::AddConcurrentIndex7574 when in migration7575 registers an offense when add_concurrent_index is used inside a change method7576 registers no offense when add_concurrent_index is used inside an up method7577 when outside of migration7578 registers no offense7579DisallowTwoFactorForSubgroupsWorker7580 schedules updating subgroups7581UserPreferences::UpdateService7582 #execute7583 successfully updating the record7584 updates the preference and returns a success7585 unsuccessfully updating the record7586 returns an error7587Types::Ci::Config::JobType7588 is expected to eq "CiConfigJob"7589 exposes the expected fields7590RuboCop::Cop::Scalability::FileUploads7591 with required params7592 detects File in types array7593 detects File as type argument7594 with optional params7595 detects File in types array7596 detects File as type argument7597PrometheusAlertPresenter7598 #humanized_text7599 is expected to eq "exceeded 1.0m/s"7600 when operator is eq7601 is expected to eq "is equal to 1.0m/s"7602 when operator is lt7603 is expected to eq "is less than 1.0m/s"7604API::Entities::Snippets::RepositoryStorageMove7605 #as_json7606 includes basic fields7607Gitlab::Graphql::Tracers::TimerTracer7608 adds duration_s to the trace metadata7609 adds a duration_s even if the query failed7610Types::UserCalloutFeatureNameEnum7611 is expected to eq "UserCalloutFeatureNameEnum"7612 exposes all the existing user callout feature names7613Gitlab::Database::Migrations::Observers::QueryLog7614 writes a file with the query log7615 does not change the default logger7616Gitlab::LanguageData7617 #extensions7618 loads the extensions once7619Sidebars::Concerns::ContainerWithHtmlOptions7620 #container_html_options7621 includes by default aria-label attribute7622 #collapsed_container_html_options7623 includes by default aria-label attribute7624Backup::Pages7625 #dump7626 uses the correct pages dir7627 excludes tmp from backup tar7628TermsHelper7629 #terms_data7630 returns correct json7631Gitlab::GithubImport::Representation::LfsObject7632 #github_identifiers7633 returns a hash with needed identifiers7634Ci::TriggerRequest7635 validation7636 be invalid if saving a variable7637 be valid if not saving a variable7638Gitlab::DependencyLinker::Parser::Gemfile7639 #parse7640 returns parsed packages7641 packages respond to name and external_ref accordingly7642Gitlab::GithubImport::Representation7643 .symbolize_hash7644 returns a Hash with the keys as Symbols7645 parses timestamp fields into Time instances7646Gitlab::DataBuilder::Alert7647 .build7648 is expected to be a kind of Hash7649 is expected to eq "alert"7650 contains the correct object attributes7651API::Entities::Nuget::Dependency7652 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}7653Bitbucket::Representation::User7654 #username7655 returns correct value7656CodequalityReportsComparerEntity7657 #as_json7658 when base and head report have errors7659 contains correct compared codequality report details7660Import::GitlabProviderRepoEntity7661 behaves like exposes required fields for import entity7662 exposes required fields7663 correctly exposes id7664 correctly exposes full name7665 correctly exposes sanitized name7666 correctly exposes provider link7667BoardSimpleEntity7668 #name7669 has `name` attribute7670Gitlab::Ci::Pipeline::Chain::Pipeline::Process7671 #perform!7672 schedules a job to process the pipeline7673 #break?7674 is expected to be falsey7675Types::Ci::StageType7676 is expected to eq "CiStage"7677 exposes the expected fields7678Gitlab::I18n::MetadataEntry7679 #expected_forms7680 returns the number of plurals7681 returns 0 for the POT-metadata7682Types::IssuableSortEnum7683 is expected to eq "IssuableSort"7684 exposes all the existing issuable sort values7685Types::SubscriptionType7686 has the expected fields7687TimeboxesRoutingHelper7688 #milestone_path7689 for a group milestone7690 links to the group milestone page7691 for a project milestone7692 links to the project milestone page7693 #milestone_url7694 for a group milestone7695 links to the group milestone page7696 for a project milestone7697 links to the project milestone page7698Gitlab::Email::Hook::AdditionalHeadersInterceptor7699 adds Auto-Submitted header7700 when the same mail object is sent twice7701 does not add the Auto-Submitted header twice7702Gitlab::QueryLimiting::ActiveSupportSubscriber7703 #sql7704 increments the number of executed SQL queries7705 when the query is actually a rails cache hit7706 does not increment the number of executed SQL queries7707Pages::VirtualDomain7708 #certificate and #key pair7709 returns nil if there is no domain provided7710 when Pages domain is provided7711 returns certificate and key from the provided domain7712 #lookup_paths7713 when there is pages domain provided7714 returns collection of projects pages lookup paths sorted by prefix in reverse7715 when there is trim_prefix provided7716 returns collection of projects pages lookup paths sorted by prefix in reverse7717Packages::Maven::CreatePackageService7718 #execute7719 with version7720 creates a new package with metadatum7721 behaves like assigns the package creator7722 assigns the package creator7723 without version7724 creates a new package with metadatum7725 behaves like assigns the package creator7726 assigns the package creator7727 path is missing7728 raises an error7729Deployments::HooksWorker7730 #perform7731 executes project services for deployment_hooks7732 does not execute an inactive service7733 does not execute if a deployment does not exist7734 execute webhooks7735 behaves like worker with data consistency7736 .get_data_consistency_feature_flag_enabled?7737 returns true7738 .get_data_consistency7739 returns correct data consistency7740Knapsack report was generated. Preview:7741{7742 "spec/models/merge_request_diff_spec.rb": 210.35358767900016,7743 "spec/models/namespace_spec.rb": 139.16059010499976,7744 "spec/services/issues/update_service_spec.rb": 154.05547485599982,7745 "spec/models/concerns/issuable_spec.rb": 97.34744578400023,7746 "spec/services/ci/create_downstream_pipeline_service_spec.rb": 80.05750000700027,7747 "spec/tooling/danger/project_helper_spec.rb": 18.993328431999544,7748 "spec/models/clusters/applications/cert_manager_spec.rb": 55.29269482499967,7749 "spec/models/integrations/slack_spec.rb": 44.465640737000285,7750 "spec/services/notes/create_service_spec.rb": 54.44001697099975,7751 "spec/models/snippet_spec.rb": 17.008716202999494,7752 "spec/finders/concerns/packages/finder_helper_spec.rb": 30.287264970999786,7753 "spec/uploaders/job_artifact_uploader_spec.rb": 30.93713358900004,7754 "spec/presenters/ci/build_runner_presenter_spec.rb": 26.842798646999654,7755 "spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb": 8.956764184999884,7756 "spec/helpers/groups_helper_spec.rb": 15.1396312880006,7757 "spec/services/design_management/copy_design_collection/copy_service_spec.rb": 23.139314303999527,7758 "spec/finders/merge_request_target_project_finder_spec.rb": 30.44374972999958,7759 "spec/models/ci/build_dependencies_spec.rb": 19.917088653000064,7760 "spec/workers/repository_fork_worker_spec.rb": 23.003110481000476,7761 "spec/lib/gitlab/url_builder_spec.rb": 8.568284193000181,7762 "spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb": 19.084517118000804,7763 "spec/models/serverless/domain_spec.rb": 16.016012509000575,7764 "spec/models/ability_spec.rb": 17.56085620199974,7765 "spec/models/route_spec.rb": 13.809407771000224,7766 "spec/lib/gitlab/usage/metric_definition_spec.rb": 8.01910924799995,7767 "spec/services/merge_requests/ff_merge_service_spec.rb": 19.385651086999133,7768 "spec/services/clusters/applications/check_upgrade_progress_service_spec.rb": 16.652585472999817,7769 "spec/services/resource_access_tokens/create_service_spec.rb": 11.431679852000343,7770 "spec/services/issues/duplicate_service_spec.rb": 12.055421298999136,7771 "spec/lib/gitlab/database/reflection_spec.rb": 5.914962341000319,7772 "spec/models/namespace/root_storage_statistics_spec.rb": 9.83648209399962,7773 "spec/services/serverless/associate_domain_service_spec.rb": 12.678374335999251,7774 "spec/services/discussions/update_diff_position_service_spec.rb": 9.923077375000503,7775 "spec/lib/gitlab/legacy_github_import/importer_spec.rb": 12.515907813000013,7776 "spec/helpers/auto_devops_helper_spec.rb": 8.386806049999905,7777 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 6.247901097000067,7778 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 9.605233407000014,7779 "spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb": 7.208864109999922,7780 "spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb": 8.5437124150003,7781 "spec/services/metrics/dashboard/dynamic_embed_service_spec.rb": 6.453917175999777,7782 "spec/services/projects/hashed_storage/rollback_repository_service_spec.rb": 9.038775345000431,7783 "spec/models/integrations/chat_message/pipeline_message_spec.rb": 1.6435826039996755,7784 "spec/services/jira_connect_subscriptions/create_service_spec.rb": 7.281863661999523,7785 "spec/models/project_auto_devops_spec.rb": 4.8316524010006106,7786 "spec/finders/access_requests_finder_spec.rb": 8.53666337499999,7787 "spec/tasks/gitlab/cleanup_rake_spec.rb": 5.912978231000125,7788 "spec/workers/remove_expired_members_worker_spec.rb": 8.10274693899919,7789 "spec/lib/banzai/reference_redactor_spec.rb": 4.9196448319999035,7790 "spec/rubocop/cop/graphql/old_types_spec.rb": 2.538773002999733,7791 "spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb": 5.123642270999881,7792 "spec/services/integrations/test/project_service_spec.rb": 4.597447264999573,7793 "spec/policies/award_emoji_policy_spec.rb": 8.125495647999742,7794 "spec/workers/namespaceless_project_destroy_worker_spec.rb": 6.14056392799921,7795 "spec/services/projects/deploy_tokens/create_service_spec.rb": 4.585708425000121,7796 "spec/finders/projects/groups_finder_spec.rb": 5.3156114909998,7797 "spec/services/snippets/update_statistics_service_spec.rb": 6.111514690999684,7798 "spec/lib/gitlab/ci/artifact_file_reader_spec.rb": 4.920494742000301,7799 "spec/services/ci/create_pipeline_service/dry_run_spec.rb": 3.999254445000588,7800 "spec/models/integrations/slack_slash_commands_spec.rb": 3.440961511999376,7801 "spec/workers/new_merge_request_worker_spec.rb": 7.075065092999466,7802 "spec/lib/gitlab/ci/pipeline/seed/deployment_spec.rb": 3.984649216999969,7803 "spec/serializers/merge_request_diff_entity_spec.rb": 6.053111126999283,7804 "spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb": 5.2630549369996515,7805 "spec/services/git/tag_push_service_spec.rb": 5.521878050999476,7806 "spec/models/chat_name_spec.rb": 2.341222153999297,7807 "spec/serializers/test_suite_summary_entity_spec.rb": 5.296903942999961,7808 "spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb": 3.137196323000353,7809 "spec/finders/security/license_compliance_jobs_finder_spec.rb": 5.069854217000284,7810 "spec/graphql/resolvers/base_resolver_spec.rb": 1.1982177379995846,7811 "spec/finders/design_management/versions_finder_spec.rb": 3.4213530540000647,7812 "spec/helpers/releases_helper_spec.rb": 5.205592823000188,7813 "spec/lib/gitlab/git/merge_base_spec.rb": 1.4478121929996632,7814 "spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb": 1.3015003790005721,7815 "spec/workers/issues/rebalancing_worker_spec.rb": 1.6062778679997791,7816 "spec/services/protected_branches/create_service_spec.rb": 5.170451736000359,7817 "spec/uploaders/dependency_proxy/file_uploader_spec.rb": 1.5095451780007352,7818 "spec/workers/ci/pending_builds/update_project_worker_spec.rb": 3.2969562150001366,7819 "spec/lib/gitlab/issuable_metadata_spec.rb": 4.565620176999801,7820 "spec/services/issues/related_branches_service_spec.rb": 3.753128039999865,7821 "spec/helpers/environments_helper_spec.rb": 1.8477807529998245,7822 "spec/views/admin/dashboard/index.html.haml_spec.rb": 4.0309765410002,7823 "spec/workers/users/deactivate_dormant_users_worker_spec.rb": 2.6836802279995027,7824 "spec/lib/gitlab/lograge/custom_options_spec.rb": 1.0430309639996267,7825 "spec/models/ci/pipeline_variable_spec.rb": 3.484147777000544,7826 "spec/lib/gitlab/legacy_github_import/client_spec.rb": 1.3581525030003831,7827 "spec/sidekiq_cluster/sidekiq_cluster_spec.rb": 1.0962504379995153,7828 "spec/lib/gitlab/ci/reports/test_reports_comparer_spec.rb": 0.9409216549993289,7829 "spec/lib/gitlab/database/postgres_partitioned_table_spec.rb": 1.639086244000282,7830 "spec/lib/gitlab/graphql/lazy_spec.rb": 0.9102395679992696,7831 "spec/tooling/rspec_flaky/config_spec.rb": 1.0612822920002145,7832 "spec/services/gpg_keys/create_service_spec.rb": 4.120118142999672,7833 "spec/lib/gitlab/cache/request_cache_spec.rb": 1.3124746170005892,7834 "spec/services/groups/auto_devops_service_spec.rb": 3.227473523000299,7835 "spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb": 5.123182650999297,7836 "spec/services/design_management/generate_image_versions_service_spec.rb": 2.3930797779994464,7837 "spec/rubocop/cop/rspec/factories_in_migration_specs_spec.rb": 0.9253409259999898,7838 "spec/finders/ci/daily_build_group_report_results_finder_spec.rb": 4.241949150999972,7839 "spec/services/ci/drop_pipeline_service_spec.rb": 4.727448675999767,7840 "spec/workers/remove_unaccepted_member_invites_worker_spec.rb": 2.2526962219999405,7841 "spec/services/merge_requests/migrate_external_diffs_service_spec.rb": 2.7633337460001712,7842 "spec/services/users/update_todo_count_cache_service_spec.rb": 3.9402578899998844,7843 "spec/workers/cleanup_container_repository_worker_spec.rb": 2.5750607620002484,7844 "spec/lib/gitlab/import_export/fork_spec.rb": 4.648305828000048,7845 "spec/lib/gitlab/etag_caching/router/restful_spec.rb": 1.3206865299998753,7846 "spec/services/merge_requests/add_context_service_spec.rb": 4.224447030999727,7847 "spec/services/access_token_validation_service_spec.rb": 0.7623857369999314,7848 "spec/lib/gitlab/reactive_cache_set_cache_spec.rb": 0.9351922809992175,7849 "spec/lib/gitlab/file_markdown_link_builder_spec.rb": 0.7624920759999441,7850 "spec/lib/banzai/filter/inline_cluster_metrics_filter_spec.rb": 2.5639223319994926,7851 "spec/models/design_management/repository_spec.rb": 2.9763317189999725,7852 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 1.5739078620008513,7853 "spec/lib/gitlab/cleanup/remote_uploads_spec.rb": 2.2885162309994485,7854 "spec/lib/gitlab/database/partitioning/partition_manager_spec.rb": 2.230411321000247,7855 "spec/support_specs/graphql/arguments_spec.rb": 0.8714168039996366,7856 "spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb": 2.0965316560004794,7857 "spec/views/projects/environments/terminal.html.haml_spec.rb": 2.1243011349997687,7858 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 1.0375394389993744,7859 "spec/lib/gitlab/endpoint_attributes_spec.rb": 1.2838748900003338,7860 "spec/lib/gitlab/verify/lfs_objects_spec.rb": 1.2127750640001977,7861 "spec/policies/todo_policy_spec.rb": 3.7004852169993683,7862 "spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb": 3.2473471209996205,7863 "spec/lib/gitlab/phabricator_import/cache/map_spec.rb": 1.4920015340003374,7864 "spec/lib/gitlab/database/unidirectional_copy_trigger_spec.rb": 1.0206394990000263,7865 "spec/graphql/resolvers/terraform/states_resolver_spec.rb": 2.298045810000076,7866 "spec/serializers/review_app_setup_entity_spec.rb": 2.86640619300033,7867 "spec/services/bulk_imports/create_service_spec.rb": 2.3417327580000347,7868 "spec/lib/gitlab/ci/status/build/skipped_spec.rb": 1.6255114409996168,7869 "spec/services/packages/debian/parse_debian822_service_spec.rb": 0.8649370940001972,7870 "spec/graphql/mutations/todos/mark_done_spec.rb": 2.608883500000047,7871 "spec/lib/gitlab/jira/dvcs_spec.rb": 1.763546936000239,7872 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 2.6039061410001523,7873 "spec/finders/ci/variables_finder_spec.rb": 2.2948205000002417,7874 "spec/lib/gitlab/hook_data/merge_request_builder_spec.rb": 2.3418343280000045,7875 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 1.9616255410001031,7876 "spec/services/import_export_clean_up_service_spec.rb": 2.0466317180007536,7877 "spec/workers/web_hooks/destroy_worker_spec.rb": 2.06795942700046,7878 "spec/tasks/migrate/schema_check_rake_spec.rb": 1.0531633379996492,7879 "spec/graphql/mutations/ci/job_token_scope/add_project_spec.rb": 2.069081257000107,7880 "spec/serializers/rollout_status_entity_spec.rb": 0.7487235970002075,7881 "spec/serializers/merge_request_widget_commit_entity_spec.rb": 1.8918418820003353,7882 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 1.8977796019999005,7883 "spec/lib/gitlab/kubernetes/node_spec.rb": 2.369146037000064,7884 "spec/validators/json_schema_validator_spec.rb": 1.7485375669994028,7885 "spec/models/application_setting/term_spec.rb": 1.5780703319996974,7886 "spec/services/ci/generate_kubeconfig_service_spec.rb": 2.136448195000412,7887 "spec/workers/pipeline_notification_worker_spec.rb": 1.072050417000355,7888 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 0.9192583719996037,7889 "spec/lib/gitlab/github_import/markdown_text_spec.rb": 0.9032916619999014,7890 "spec/lib/forever_spec.rb": 0.6213443500000722,7891 "spec/presenters/service_hook_presenter_spec.rb": 1.7518546169994806,7892 "spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb": 1.155255075000241,7893 "spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb": 0.8668420430003607,7894 "spec/lib/api/validations/validators/email_or_email_list_spec.rb": 0.7973881650004842,7895 "spec/views/projects/hooks/index.html.haml_spec.rb": 1.8538956740003414,7896 "spec/models/project_pages_metadatum_spec.rb": 1.713642267999603,7897 "spec/routing/openid_connect_spec.rb": 1.2670001710012002,7898 "spec/models/projects/ci_feature_usage_spec.rb": 1.117548985999747,7899 "spec/lib/gitlab/database/connection_timer_spec.rb": 0.9990588700002263,7900 "spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb": 1.2669229299999643,7901 "spec/lib/backup/file_backup_error_spec.rb": 1.0094338889994106,7902 "spec/lib/gitlab/import_export/avatar_saver_spec.rb": 1.5433001530000183,7903 "spec/lib/gitlab/ci/build/releaser_spec.rb": 0.903967582000405,7904 "spec/graphql/mutations/user_callouts/create_spec.rb": 1.411158947000331,7905 "spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb": 1.0886463169999843,7906 "spec/graphql/types/availability_enum_spec.rb": 0.6220054509994952,7907 "spec/models/user_agent_detail_spec.rb": 1.297237320000022,7908 "spec/lib/sidebars/groups/menus/invite_team_members_menu_spec.rb": 1.4685388849993615,7909 "spec/lib/gitlab/ci/matching/build_matcher_spec.rb": 0.9288532119999218,7910 "spec/lib/gitlab/ci/build/artifacts/path_spec.rb": 0.8747457130002658,7911 "spec/scripts/changed-feature-flags_spec.rb": 0.9528025210001942,7912 "spec/services/ci/disable_user_pipeline_schedules_service_spec.rb": 1.1361487860003763,7913 "spec/policies/identity_provider_policy_spec.rb": 0.9509993410001698,7914 "spec/services/users/dismiss_callout_service_spec.rb": 0.8505057439997472,7915 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 1.3788557380003112,7916 "spec/models/user_mentions/merge_request_user_mention_spec.rb": 0.8365255040007469,7917 "spec/presenters/terraform/modules_presenter_spec.rb": 1.1661925849994077,7918 "spec/validators/nested_attributes_duplicates_validator_spec.rb": 0.9360721009998088,7919 "spec/models/programming_language_spec.rb": 0.8618031240002892,7920 "spec/lib/gitlab/ci/status/failed_spec.rb": 0.7953327760005777,7921 "spec/lib/gitlab/auth/atlassian/user_spec.rb": 1.2949014999994688,7922 "spec/models/term_agreement_spec.rb": 1.2418823019997944,7923 "spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb": 0.7672608469993065,7924 "spec/services/issuable/process_assignees_spec.rb": 0.8173265450004692,7925 "spec/lib/gitlab/uuid_spec.rb": 1.0411872779995974,7926 "spec/services/clusters/aws/verify_provision_status_service_spec.rb": 1.9453192510000008,7927 "spec/tooling/danger/specs_spec.rb": 0.8135663550001482,7928 "spec/lib/gitlab/import_export/version_checker_spec.rb": 0.8371097440003723,7929 "spec/lib/gitlab/kubernetes/ingress_spec.rb": 0.8958928130005006,7930 "spec/views/dashboard/projects/index.html.haml_spec.rb": 1.5468374729998686,7931 "spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb": 1.4627910350000093,7932 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/column_data_spec.rb": 0.7085159289999865,7933 "spec/lib/gitlab/chat_name_token_spec.rb": 0.8681563629997981,7934 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.9982499200004895,7935 "spec/lib/gitlab/ci/artifacts/metrics_spec.rb": 1.107393385999785,7936 "spec/graphql/mutations/customer_relations/organizations/update_spec.rb": 1.509672244000285,7937 "spec/lib/gitlab/view/presenter/simple_spec.rb": 0.8103742149996833,7938 "spec/graphql/resolvers/echo_resolver_spec.rb": 0.7272242980006922,7939 "spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb": 1.1163423360003435,7940 "spec/lib/gitlab/usage/metrics/instrumentations/collected_data_categories_metric_spec.rb": 0.6757256300006702,7941 "spec/graphql/types/release_assets_type_spec.rb": 0.8048392460004834,7942 "spec/finders/packages/group_or_project_package_finder_spec.rb": 0.9322644809999474,7943 "spec/rubocop/cop/migration/add_concurrent_index_spec.rb": 0.741687187000025,7944 "spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb": 0.8875529030001417,7945 "spec/services/user_preferences/update_service_spec.rb": 0.8046145250000336,7946 "spec/graphql/types/ci/config/job_type_spec.rb": 0.6525886310000715,7947 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.750535337000656,7948 "spec/presenters/prometheus_alert_presenter_spec.rb": 1.0602088679997905,7949 "spec/lib/api/entities/snippets/repository_storage_move_spec.rb": 0.7727089769996383,7950 "spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb": 0.6556657199998881,7951 "spec/graphql/types/user_callout_feature_name_enum_spec.rb": 0.917634211999939,7952 "spec/lib/gitlab/database/migrations/observers/query_log_spec.rb": 0.6708599089997733,7953 "spec/lib/gitlab/language_data_spec.rb": 0.6735895400006484,7954 "spec/lib/sidebars/concerns/container_with_html_options_spec.rb": 0.8125513450004291,7955 "spec/lib/backup/pages_spec.rb": 0.730236187000628,7956 "spec/helpers/terms_helper_spec.rb": 0.5682911630001399,7957 "spec/lib/gitlab/github_import/representation/lfs_object_spec.rb": 0.6620295399998213,7958 "spec/models/ci/trigger_request_spec.rb": 0.7258623179995993,7959 "spec/lib/gitlab/dependency_linker/parser/gemfile_spec.rb": 0.8019275659999039,7960 "spec/lib/gitlab/github_import/representation_spec.rb": 0.74445441700027,7961 "spec/lib/gitlab/data_builder/alert_spec.rb": 0.9746486499998355,7962 "spec/lib/api/entities/nuget/dependency_spec.rb": 0.632164410999394,7963 "spec/lib/bitbucket/representation/user_spec.rb": 0.6315130209995914,7964 "spec/serializers/codequality_reports_comparer_entity_spec.rb": 0.7153085489999285,7965 "spec/serializers/import/gitlab_provider_repo_entity_spec.rb": 0.679303768999489,7966 "spec/serializers/board_simple_entity_spec.rb": 0.859746463999727,7967 "spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb": 0.988209750000351,7968 "spec/graphql/types/ci/stage_type_spec.rb": 0.8710760439998921,7969 "spec/lib/gitlab/i18n/metadata_entry_spec.rb": 0.762739277000037,7970 "spec/graphql/types/issuable_sort_enum_spec.rb": 0.7889448659998379,7971 "spec/graphql/types/subscription_type_spec.rb": 0.6967421579993243,7972 "spec/helpers/timeboxes_routing_helper_spec.rb": 1.062120376999701,7973 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.7375169779998032,7974 "spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb": 0.7074902080003085,7975 "spec/models/pages/virtual_domain_spec.rb": 0.7634110570006669,7976 "spec/services/packages/maven/create_package_service_spec.rb": 3.681370637999862,7977 "spec/workers/deployments/hooks_worker_spec.rb": 2.6502774689997757978}7979Knapsack global time execution for tests: 28m 56s7980Pending: (Failures listed here are expected and do not affect your suite's status)7981 1) JobArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 7982 # No pattern provided, skipping.7983 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87984 2) JobArtifactUploader behaves like builds correct paths #relative_path is relative7985 # Path not set, skipping.7986 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407987 3) JobArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 7988 # No pattern provided, skipping.7989 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87990 4) JobArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7991 # No pattern provided, skipping.7992 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87993 5) JobArtifactUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7994 # No pattern provided, skipping.7995 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87996 6) JobArtifactUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7997 # No pattern provided, skipping.7998 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87999 7) JobArtifactUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 8000 # No pattern provided, skipping.8001 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88002 8) JobArtifactUploader object store is REMOTE behaves like builds correct paths #relative_path is relative8003 # Path not set, skipping.8004 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408005 9) JobArtifactUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8006 # No pattern provided, skipping.8007 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88008 10) JobArtifactUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8009 # No pattern provided, skipping.8010 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88011 11) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8012 # No pattern provided, skipping.8013 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88014 12) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #relative_path is relative8015 # Path not set, skipping.8016 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408017 13) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8018 # No pattern provided, skipping.8019 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88020 14) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8021 # No pattern provided, skipping.8022 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88023 15) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8024 # No pattern provided, skipping.8025 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88026 16) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8027 # No pattern provided, skipping.8028 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88029 17) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8030 # No pattern provided, skipping.8031 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88032 18) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #relative_path is relative8033 # Path not set, skipping.8034 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408035 19) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8036 # No pattern provided, skipping.8037 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88038 20) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8039 # No pattern provided, skipping.8040 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88041Finished in 28 minutes 59 seconds (files took 51.24 seconds to load)80423626 examples, 0 failures, 20 pending8043Mon Dec 20 17:21:54 UTC 20218045Not uploading cache ruby-gems-v1-9 due to policy8046Not uploading cache gitaly-ruby-gems-v1-9 due to policy8048Uploading artifacts...8049coverage/: found 5 matching files and directories 8050crystalball/: found 2 matching files and directories 8051WARNING: deprecations/: no matching files 8052knapsack/: found 3 matching files and directories 8053rspec_flaky/: found 5 matching files and directories 8054rspec_profiling/: found 1 matching files and directories 8055WARNING: tmp/capybara/: no matching files 8056tmp/memory_test/: found 2 matching files and directories 8057log/*.log: found 17 matching files and directories 8058Uploading artifacts as "archive" to coordinator... ok id=1904366619 responseStatus=201 Created token=9V4iF7UJ8059Uploading artifacts...8060junit_rspec.xml: found 1 matching files and directories 8061Uploading artifacts as "junit" to coordinator... ok id=1904366619 responseStatus=201 Created token=9V4iF7UJ8063Job succeeded