rspec unit pg12 single-db 22/22
Passed Started
by
@leetickett

Lee Tickett
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-2.shared-gitlab-org.runners-manager.gitlab.com/default NL4gfoBe3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-nl4gfobe-project-278964-concurrent-0 via runner-nl4gfobe-shared-gitlab-org-1656907468-0af3bdcf...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: 115982, done. 25remote: Counting objects: 100% (115982/115982), done. 26remote: Compressing objects: 100% (81018/81018), done. 27remote: Total 115982 (delta 48513), reused 75495 (delta 30560), pack-reused 0 28Receiving objects: 100% (115982/115982), 108.44 MiB | 34.95 MiB/s, done.29Resolving deltas: 100% (48513/48513), done.31 * [new ref] refs/pipelines/579176392 -> refs/pipelines/57917639232Checking out 204b4379 as refs/merge-requests/91556/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673336706)...44Downloading artifacts from coordinator... ok id=2673336706 responseStatus=200 OK token=12M9aw3c45Downloading artifacts for detect-tests (2673336715)...46Downloading artifacts from coordinator... ok id=2673336715 responseStatus=200 OK token=12M9aw3c47Downloading artifacts for retrieve-tests-metadata (2673336722)...48Downloading artifacts from coordinator... ok id=2673336722 responseStatus=200 OK token=12M9aw3c49Downloading artifacts for setup-test-env (2673336712)...50Downloading artifacts from coordinator... ok id=2673336712 responseStatus=200 OK token=12M9aw3c52Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 9 seconds.84$ setup_db_user_only85CREATE ROLE86GRANT87==> 'setup_db_user_only' succeeded in 0 seconds.88$ bundle exec rake db:drop db:create db:schema:load db:migrate89Dropped database 'gitlabhq_test'90Dropped database 'gitlabhq_geo_test'91Created database 'gitlabhq_test'92Created database 'gitlabhq_geo_test'93==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 25 seconds.94$ setup_db_praefect95SELECT pg_catalog.set_config('search_path', '', false);96CREATE DATABASE praefect_test ENCODING 'UTF8';97==> 'setup_db_praefect' succeeded in 1 seconds.98$ run_timed_command "gem install knapsack --no-document"99$ gem install knapsack --no-document100Successfully installed knapsack-4.0.01011 gem installed102==> 'gem install knapsack --no-document' succeeded in 0 seconds.103$ run_timed_command "scripts/gitaly-test-spawn"104$ scripts/gitaly-test-spawn105find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory106Don't run Bundler as root. Bundler can ask for sudo if it is needed, and107installing your bundle as root will break this application for all non-root108users on this machine.109Using abstract_type 0.0.7110Using concurrent-ruby 1.1.10111Using i18n 1.10.0112Using minitest 5.15.0113Using tzinfo 2.0.4114Using zeitwerk 2.5.4115Using activesupport 6.1.4.7116Using builder 3.2.4117Using erubi 1.10.0118Using mini_portile2 2.8.0119Using racc 1.6.0120Using nokogiri 1.13.6 (x86_64-linux)121Using rails-dom-testing 2.0.3122Using crass 1.0.6123Using loofah 2.16.0124Using rails-html-sanitizer 1.4.2125Using actionview 6.1.4.7126Using rack 2.2.3127Using rack-test 1.1.0128Using actionpack 6.1.4.7129Using ice_nine 0.11.2130Using thread_safe 0.3.6131Using memoizable 0.4.2132Using adamantium 0.2.0133Using public_suffix 4.0.6134Using addressable 2.7.0135Using ast 2.4.2136Using binding_ninja 0.2.3137Using bundler 2.3.15138Using charlock_holmes 0.7.7139Using coderay 1.1.2140Using equalizer 0.0.11141Using concord 0.1.5142Using diff-lcs 1.3143Using dotenv 2.7.6144Using escape_utils 1.2.1145Using factory_bot 5.0.2146Using multipart-post 2.1.1147Using faraday 1.0.1148Using ffi 1.15.3149Using json 2.5.1150Using gemojione 3.3.0151Using mini_mime 1.0.2152Using rugged 1.2.0153Using github-linguist 7.12.1154Using github-markup 1.7.0155Using mime-types-data 3.2020.1104156Using mime-types 3.3.1157Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1158Using rouge 3.27.0159Using sanitize 6.0.0160Using stringex 2.8.5161Using gitlab-gollum-lib 4.2.7.10.gitlab.2162Using google-protobuf 3.19.1 (x86_64-linux)163Using googleapis-common-protos-types 1.3.0164Using grpc 1.42.0 (x86_64-linux)165Using opentracing 0.5.0166Using thrift 0.15.0167Using jaeger-client 1.1.0168Using pg_query 2.1.1169Using redis 4.4.0170Using gitlab-labkit 0.23.0171Using rubyzip 2.3.2172Using thor 1.1.0173Using tomlrb 2.0.1174Using with_env 1.1.0175Using rexml 3.2.5176Using xml-simple 1.1.9177Using gitlab-license_finder 6.14.2.1178Using gitlab-markup 1.7.1179Using grpc-tools 1.42.0180Using sawyer 0.8.2181Using octokit 4.20.0182Using reverse_markdown 1.4.0183Using licensee 9.14.1184Using method_source 0.9.2185Using msgpack 1.3.3186Using optimist 3.0.1187Using parallel 1.19.2188Using parser 3.0.3.2189Using procto 0.0.3190Using unparser 0.4.7191Using proc_to_ast 0.1.0192Using pry 0.12.2193Using rainbow 3.0.0194Using rbtrace 0.4.14195Using rdoc 6.3.2196Using regexp_parser 1.8.1197Using rspec-support 3.8.0198Using rspec-core 3.8.0199Using rspec-expectations 3.8.3200Using rspec-mocks 3.8.0201Using rspec 3.8.0202Using rspec-parameterized 0.4.2203Using rubocop-ast 0.2.0204Using ruby-progressbar 1.10.1205Using unicode-display_width 1.7.0206Using rubocop 0.86.0207Using sentry-raven 3.0.4208Using timecop 0.9.1209Bundle complete! 22 Gemfile dependencies, 100 gems now installed.210Gems in the groups 'production' and 'development' were not installed.211Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`212Checking gitaly-ruby Gemfile...213Checking gitaly-ruby bundle...214The Gemfile's dependencies are satisfied215Trying to connect to gitaly: ..................................... OK216Trying to connect to gitaly2: ...................................................... OK217Starting Praefect with in-memory election strategyTrying to connect to praefect: ....... OK218==> 'scripts/gitaly-test-spawn' succeeded in 11 seconds.219$ source ./scripts/rspec_helpers.sh220$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"221SKIP_FLAKY_TESTS_AUTOMATICALLY: true222RETRY_FAILED_TESTS_IN_NEW_PROCESS: true223KNAPSACK_GENERATE_REPORT: true224FLAKY_RSPEC_GENERATE_REPORT: true225KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb226KNAPSACK_LOG_LEVEL: debug227KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_single-db_22_22_report.json228FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json229FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_single-db_22_22_report.json230NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_single-db_22_22_report.json231SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_single-db_22_22_report.txt232RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_single-db_22_22_report.txt233CRYSTALBALL: 234Knapsack node specs:235spec/services/groups/transfer_service_spec.rb236spec/services/merge_requests/refresh_service_spec.rb237spec/services/issues/update_service_spec.rb238spec/lib/gitlab/import_export/project/tree_saver_spec.rb239spec/tasks/gitlab/storage_rake_spec.rb240spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb241spec/lib/gitlab/color_spec.rb242spec/lib/gitlab/database/migration_helpers_spec.rb243spec/models/commit_spec.rb244spec/models/clusters/applications/crossplane_spec.rb245spec/lib/banzai/reference_parser/snippet_parser_spec.rb246spec/lib/gitlab/ci/parsers/security/common_spec.rb247spec/finders/notes_finder_spec.rb248spec/lib/gitlab/ci/status/pipeline/factory_spec.rb249spec/graphql/resolvers/issues_resolver_spec.rb250spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb251spec/helpers/namespaces_helper_spec.rb252spec/models/concerns/avatarable_spec.rb253spec/services/snippets/create_service_spec.rb254spec/models/notification_recipient_spec.rb255spec/services/projects/import_export/export_service_spec.rb256spec/models/project_feature_spec.rb257spec/lib/gitlab/ci/parsers/coverage/sax_document_spec.rb258spec/lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images_spec.rb259spec/models/operations/feature_flags/user_list_spec.rb260spec/workers/packages/debian/process_changes_worker_spec.rb261spec/models/projects/build_artifacts_size_refresh_spec.rb262spec/helpers/blob_helper_spec.rb263spec/presenters/ci/pipeline_presenter_spec.rb264spec/services/issues/zoom_link_service_spec.rb265spec/lib/gitlab/database/transaction/observer_spec.rb266spec/models/serverless/domain_spec.rb267spec/services/pages/migrate_from_legacy_storage_service_spec.rb268spec/services/merge_requests/approval_service_spec.rb269spec/policies/metrics/dashboard/annotation_policy_spec.rb270spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb271spec/models/onboarding_progress_spec.rb272spec/presenters/blob_presenter_spec.rb273spec/lib/backup/repositories_spec.rb274spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb275spec/graphql/features/authorization_spec.rb276spec/workers/merge_request_cleanup_refs_worker_spec.rb277spec/models/project_group_link_spec.rb278spec/graphql/mutations/issues/set_confidential_spec.rb279spec/lib/gitlab/ci/config/external/processor_spec.rb280spec/services/discussions/update_diff_position_service_spec.rb281spec/services/milestones/promote_service_spec.rb282spec/models/commit_signatures/x509_commit_signature_spec.rb283spec/finders/alert_management/alerts_finder_spec.rb284spec/serializers/ci/trigger_entity_spec.rb285spec/lib/gitlab/alert_management/payload/base_spec.rb286spec/lib/gitlab/search/found_blob_spec.rb287spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb288spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb289spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb290spec/services/metrics/dashboard/annotations/create_service_spec.rb291spec/lib/gitlab/ci/reports/security/report_spec.rb292spec/finders/projects/groups_finder_spec.rb293spec/models/personal_snippet_spec.rb294spec/workers/tasks_to_be_done/create_worker_spec.rb295spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb296spec/workers/deployments/update_environment_worker_spec.rb297spec/finders/packages/conan/package_finder_spec.rb298spec/lib/gitlab/github_import/importer/issue_importer_spec.rb299spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb300spec/models/customer_relations/organization_spec.rb301spec/models/lfs_file_lock_spec.rb302spec/serializers/merge_request_diff_entity_spec.rb303spec/lib/gitlab/discussions_diff/file_collection_spec.rb304spec/graphql/resolvers/project_packages_resolver_spec.rb305spec/lib/gitlab/pagination/keyset/paginator_spec.rb306spec/lib/gitlab/repository_cache_spec.rb307spec/services/system_notes/time_tracking_service_spec.rb308spec/services/clusters/applications/patch_service_spec.rb309spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb310spec/services/work_items/task_list_reference_replacement_service_spec.rb311spec/helpers/invite_members_helper_spec.rb312spec/services/users/create_service_spec.rb313spec/services/projects/lfs_pointers/lfs_link_service_spec.rb314spec/lib/gitlab/api_authentication/token_resolver_spec.rb315spec/lib/gitlab/diff/suggestion_spec.rb316spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb317spec/services/clusters/destroy_service_spec.rb318spec/models/blob_viewer/metrics_dashboard_yml_spec.rb319spec/services/feature_flags/update_service_spec.rb320spec/views/layouts/_header_search.html.haml_spec.rb321spec/graphql/types/query_type_spec.rb322spec/lib/gitlab/middleware/same_site_cookies_spec.rb323spec/workers/repository_check/single_repository_worker_spec.rb324spec/lib/gitlab/fogbugz_import/importer_spec.rb325spec/lib/gitlab/event_store/store_spec.rb326spec/lib/gitlab/kubernetes/helm/api_spec.rb327spec/models/concerns/ci/maskable_spec.rb328spec/lib/gitlab/metrics/dashboard/validator_spec.rb329spec/services/clusters/aws/fetch_credentials_service_spec.rb330spec/services/members/import_project_team_service_spec.rb331spec/models/bulk_imports/export_spec.rb332spec/lib/gitlab/health_checks/redis/cache_check_spec.rb333spec/lib/gitlab/database/postgres_partitioned_table_spec.rb334spec/services/packages/debian/update_distribution_service_spec.rb335spec/workers/design_management/new_version_worker_spec.rb336spec/models/time_tracking/timelog_category_spec.rb337spec/finders/boards/boards_finder_spec.rb338spec/uploaders/dependency_proxy/file_uploader_spec.rb339spec/lib/gitlab/database/migrations/instrumentation_spec.rb340spec/lib/gitlab/ci/config/entry/product/matrix_spec.rb341spec/lib/gitlab/utils/delegator_override_spec.rb342spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb343spec/workers/merge_requests/delete_source_branch_worker_spec.rb344spec/lib/gitlab/metrics/dashboard/service_selector_spec.rb345spec/finders/merge_requests/by_approvals_finder_spec.rb346spec/services/ci/create_pipeline_service/include_spec.rb347spec/workers/packages/helm/extraction_worker_spec.rb348spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb349spec/graphql/mutations/boards/lists/update_spec.rb350spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb351spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb352spec/lib/gitlab/slash_commands/issue_close_spec.rb353spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb354spec/lib/gitlab/background_migration/base_job_spec.rb355spec/models/alert_management/alert_user_mention_spec.rb356spec/lib/gitlab/alert_management/fingerprint_spec.rb357spec/services/ci/destroy_pipeline_service_spec.rb358spec/services/ci/create_pipeline_service/custom_config_content_spec.rb359spec/services/issuable/destroy_label_links_service_spec.rb360spec/graphql/types/terraform/state_type_spec.rb361spec/services/spam/akismet_mark_as_spam_service_spec.rb362spec/lib/bitbucket_server/connection_spec.rb363spec/services/import/gitlab_projects/create_project_service_spec.rb364spec/services/import_export_clean_up_service_spec.rb365spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb366spec/rubocop/cop/migration/background_migration_record_spec.rb367spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb368spec/graphql/resolvers/projects/snippets_resolver_spec.rb369spec/lib/gitlab/checks/push_check_spec.rb370spec/services/chat_names/find_user_service_spec.rb371spec/rubocop/cop/migration/drop_table_spec.rb372spec/models/work_items/parent_link_spec.rb373spec/policies/deploy_token_policy_spec.rb374spec/lib/sidebars/groups/menus/group_information_menu_spec.rb375spec/services/users/reject_service_spec.rb376spec/services/error_tracking/list_projects_service_spec.rb377spec/models/oauth_access_token_spec.rb378spec/support_specs/helpers/migrations_helpers_spec.rb379spec/lib/gitlab/import_export/project/sample/date_calculator_spec.rb380spec/lib/gitlab/diff/line_mapper_spec.rb381spec/models/blob_viewer/markup_spec.rb382spec/views/projects/environments/terminal.html.haml_spec.rb383spec/graphql/resolvers/release_resolver_spec.rb384spec/serializers/member_serializer_spec.rb385spec/lib/gitlab/utils/lazy_attributes_spec.rb386spec/lib/gitlab/kubernetes/config_map_spec.rb387spec/models/analytics/cycle_analytics/stage_event_hash_spec.rb388spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb389spec/serializers/cluster_entity_spec.rb390spec/workers/hashed_storage/project_rollback_worker_spec.rb391spec/services/projects/repository_languages_service_spec.rb392spec/rubocop/cop/code_reuse/finder_spec.rb393spec/models/concerns/bulk_insertable_associations_spec.rb394spec/finders/packages/pypi/package_finder_spec.rb395spec/lib/gitlab/gl_repository_spec.rb396spec/services/alert_management/alerts/todo/create_service_spec.rb397spec/lib/gitlab/web_ide/config_spec.rb398spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb399spec/validators/x509_certificate_credentials_validator_spec.rb400spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb401spec/lib/gitlab/import_export/hash_util_spec.rb402spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb403spec/graphql/types/issue_status_count_type_spec.rb404spec/workers/cleanup_container_repository_worker_spec.rb405spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb406spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb407spec/graphql/resolvers/project_resolver_spec.rb408spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb409spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb410spec/graphql/types/time_type_spec.rb411spec/graphql/resolvers/design_management/version_in_collection_resolver_spec.rb412spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb413spec/services/ci/build_unschedule_service_spec.rb414spec/services/projects/open_merge_requests_count_service_spec.rb415spec/graphql/types/metrics/dashboard_type_spec.rb416spec/graphql/resolvers/branch_commit_resolver_spec.rb417spec/views/projects/settings/integrations/edit.html.haml_spec.rb418spec/services/ci/destroy_secure_file_service_spec.rb419spec/graphql/types/snippets/blob_action_input_type_spec.rb420spec/lib/gitlab/utils/deep_size_spec.rb421spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb422spec/lib/gitlab/database/shared_model_spec.rb423spec/lib/gitlab/reference_counter_spec.rb424spec/services/discussions/unresolve_service_spec.rb425spec/validators/js_regex_validator_spec.rb426spec/workers/jira_connect/sync_merge_request_worker_spec.rb427spec/presenters/packages/nuget/service_index_presenter_spec.rb428spec/workers/packages/composer/cache_update_worker_spec.rb429spec/graphql/types/work_items/widgets/description_input_type_spec.rb430spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb431spec/serializers/ci/daily_build_group_report_result_entity_spec.rb432spec/services/ci/generate_terraform_reports_service_spec.rb433spec/models/packages/helm/file_metadatum_spec.rb434spec/initializers/pages_storage_check_spec.rb435spec/services/bulk_imports/file_export_service_spec.rb436spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb437spec/models/projects/import_export/relation_export_upload_spec.rb438spec/lib/bulk_imports/network_error_spec.rb439spec/services/bulk_imports/lfs_objects_export_service_spec.rb440spec/services/packages/debian/extract_deb_metadata_service_spec.rb441spec/lib/gitlab/throttle_spec.rb442spec/graphql/types/namespace/package_settings_type_spec.rb443spec/services/analytics/cycle_analytics/stages/list_service_spec.rb444spec/models/discussion_note_spec.rb445spec/lib/banzai/pipeline/post_process_pipeline_spec.rb446spec/services/feature_flags/hook_service_spec.rb447spec/lib/gitlab/graphql/present/field_extension_spec.rb448spec/lib/gitlab/anonymous_session_spec.rb449spec/workers/jira_connect/sync_feature_flags_worker_spec.rb450spec/graphql/types/group_member_relation_enum_spec.rb451spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb452spec/support_specs/graphql/field_selection_spec.rb453spec/initializers/100_patch_omniauth_oauth2_spec.rb454spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb455spec/validators/import/gitlab_projects/remote_file_validator_spec.rb456spec/initializers/attr_encrypted_no_db_connection_spec.rb457spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb458spec/models/diff_viewer/image_spec.rb459spec/graphql/resolvers/topics_resolver_spec.rb460spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb461spec/lib/api/entities/ci/job_request/service_spec.rb462spec/models/dependency_proxy/group_setting_spec.rb463spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb464spec/lib/banzai/filter/image_lazy_load_filter_spec.rb465spec/lib/gitlab/ci/jwt_v2_spec.rb466spec/graphql/types/event_type_spec.rb467spec/lib/gitlab/git/changed_path_spec.rb468spec/lib/api/entities/plan_limit_spec.rb469spec/workers/deployments/archive_in_project_worker_spec.rb470spec/graphql/types/packages/helm/metadata_type_spec.rb471spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb472spec/lib/banzai/pipeline/email_pipeline_spec.rb473spec/lib/gitlab/ci/config/entry/paths_spec.rb474spec/graphql/types/project_member_relation_enum_spec.rb475spec/graphql/types/issuable_severity_enum_spec.rb476spec/graphql/types/saved_reply_type_spec.rb477spec/initializers/00_connection_logger_spec.rb478spec/lib/gitlab/performance_bar/stats_spec.rb479spec/rubocop/cop/graphql/gid_expected_type_spec.rb480spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb481spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb482spec/serializers/admin/user_entity_spec.rb483spec/graphql/types/ci/job_kind_enum_spec.rb484spec/lib/mattermost/client_spec.rb485spec/lib/gitlab/utils/merge_hash_spec.rb486spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb487spec/lib/gitlab/api_authentication/token_type_builder_spec.rb488spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb489spec/graphql/types/permission_types/project_spec.rb490spec/helpers/enable_search_settings_helper_spec.rb491spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb492spec/graphql/types/merge_request_review_state_enum_spec.rb493spec/lib/gitlab/github_import/representation/lfs_object_spec.rb494Filter specs:495Running specs:496Running all node tests without filter497spec/services/groups/transfer_service_spec.rb498spec/services/merge_requests/refresh_service_spec.rb499spec/services/issues/update_service_spec.rb500spec/lib/gitlab/import_export/project/tree_saver_spec.rb501spec/tasks/gitlab/storage_rake_spec.rb502spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb503spec/lib/gitlab/color_spec.rb504spec/lib/gitlab/database/migration_helpers_spec.rb505spec/models/commit_spec.rb506spec/models/clusters/applications/crossplane_spec.rb507spec/lib/banzai/reference_parser/snippet_parser_spec.rb508spec/lib/gitlab/ci/parsers/security/common_spec.rb509spec/finders/notes_finder_spec.rb510spec/lib/gitlab/ci/status/pipeline/factory_spec.rb511spec/graphql/resolvers/issues_resolver_spec.rb512spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb513spec/helpers/namespaces_helper_spec.rb514spec/models/concerns/avatarable_spec.rb515spec/services/snippets/create_service_spec.rb516spec/models/notification_recipient_spec.rb517spec/services/projects/import_export/export_service_spec.rb518spec/models/project_feature_spec.rb519spec/lib/gitlab/ci/parsers/coverage/sax_document_spec.rb520spec/lib/gitlab/background_migration/disable_expiration_policies_linked_to_no_container_images_spec.rb521spec/models/operations/feature_flags/user_list_spec.rb522spec/workers/packages/debian/process_changes_worker_spec.rb523spec/models/projects/build_artifacts_size_refresh_spec.rb524spec/helpers/blob_helper_spec.rb525spec/presenters/ci/pipeline_presenter_spec.rb526spec/services/issues/zoom_link_service_spec.rb527spec/lib/gitlab/database/transaction/observer_spec.rb528spec/models/serverless/domain_spec.rb529spec/services/pages/migrate_from_legacy_storage_service_spec.rb530spec/services/merge_requests/approval_service_spec.rb531spec/policies/metrics/dashboard/annotation_policy_spec.rb532spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb533spec/models/onboarding_progress_spec.rb534spec/presenters/blob_presenter_spec.rb535spec/lib/backup/repositories_spec.rb536spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb537spec/graphql/features/authorization_spec.rb538spec/workers/merge_request_cleanup_refs_worker_spec.rb539spec/models/project_group_link_spec.rb540spec/graphql/mutations/issues/set_confidential_spec.rb541spec/lib/gitlab/ci/config/external/processor_spec.rb542spec/services/discussions/update_diff_position_service_spec.rb543spec/services/milestones/promote_service_spec.rb544spec/models/commit_signatures/x509_commit_signature_spec.rb545spec/finders/alert_management/alerts_finder_spec.rb546spec/serializers/ci/trigger_entity_spec.rb547spec/lib/gitlab/alert_management/payload/base_spec.rb548spec/lib/gitlab/search/found_blob_spec.rb549spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb550spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb551spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb552spec/services/metrics/dashboard/annotations/create_service_spec.rb553spec/lib/gitlab/ci/reports/security/report_spec.rb554spec/finders/projects/groups_finder_spec.rb555spec/models/personal_snippet_spec.rb556spec/workers/tasks_to_be_done/create_worker_spec.rb557spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb558spec/workers/deployments/update_environment_worker_spec.rb559spec/finders/packages/conan/package_finder_spec.rb560spec/lib/gitlab/github_import/importer/issue_importer_spec.rb561spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb562spec/models/customer_relations/organization_spec.rb563spec/models/lfs_file_lock_spec.rb564spec/serializers/merge_request_diff_entity_spec.rb565spec/lib/gitlab/discussions_diff/file_collection_spec.rb566spec/graphql/resolvers/project_packages_resolver_spec.rb567spec/lib/gitlab/pagination/keyset/paginator_spec.rb568spec/lib/gitlab/repository_cache_spec.rb569spec/services/system_notes/time_tracking_service_spec.rb570spec/services/clusters/applications/patch_service_spec.rb571spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb572spec/services/work_items/task_list_reference_replacement_service_spec.rb573spec/helpers/invite_members_helper_spec.rb574spec/services/users/create_service_spec.rb575spec/services/projects/lfs_pointers/lfs_link_service_spec.rb576spec/lib/gitlab/api_authentication/token_resolver_spec.rb577spec/lib/gitlab/diff/suggestion_spec.rb578spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb579spec/services/clusters/destroy_service_spec.rb580spec/models/blob_viewer/metrics_dashboard_yml_spec.rb581spec/services/feature_flags/update_service_spec.rb582spec/views/layouts/_header_search.html.haml_spec.rb583spec/graphql/types/query_type_spec.rb584spec/lib/gitlab/middleware/same_site_cookies_spec.rb585spec/workers/repository_check/single_repository_worker_spec.rb586spec/lib/gitlab/fogbugz_import/importer_spec.rb587spec/lib/gitlab/event_store/store_spec.rb588spec/lib/gitlab/kubernetes/helm/api_spec.rb589spec/models/concerns/ci/maskable_spec.rb590spec/lib/gitlab/metrics/dashboard/validator_spec.rb591spec/services/clusters/aws/fetch_credentials_service_spec.rb592spec/services/members/import_project_team_service_spec.rb593spec/models/bulk_imports/export_spec.rb594spec/lib/gitlab/health_checks/redis/cache_check_spec.rb595spec/lib/gitlab/database/postgres_partitioned_table_spec.rb596spec/services/packages/debian/update_distribution_service_spec.rb597spec/workers/design_management/new_version_worker_spec.rb598spec/models/time_tracking/timelog_category_spec.rb599spec/finders/boards/boards_finder_spec.rb600spec/uploaders/dependency_proxy/file_uploader_spec.rb601spec/lib/gitlab/database/migrations/instrumentation_spec.rb602spec/lib/gitlab/ci/config/entry/product/matrix_spec.rb603spec/lib/gitlab/utils/delegator_override_spec.rb604spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb605spec/workers/merge_requests/delete_source_branch_worker_spec.rb606spec/lib/gitlab/metrics/dashboard/service_selector_spec.rb607spec/finders/merge_requests/by_approvals_finder_spec.rb608spec/services/ci/create_pipeline_service/include_spec.rb609spec/workers/packages/helm/extraction_worker_spec.rb610spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb611spec/graphql/mutations/boards/lists/update_spec.rb612spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb613spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb614spec/lib/gitlab/slash_commands/issue_close_spec.rb615spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb616spec/lib/gitlab/background_migration/base_job_spec.rb617spec/models/alert_management/alert_user_mention_spec.rb618spec/lib/gitlab/alert_management/fingerprint_spec.rb619spec/services/ci/destroy_pipeline_service_spec.rb620spec/services/ci/create_pipeline_service/custom_config_content_spec.rb621spec/services/issuable/destroy_label_links_service_spec.rb622spec/graphql/types/terraform/state_type_spec.rb623spec/services/spam/akismet_mark_as_spam_service_spec.rb624spec/lib/bitbucket_server/connection_spec.rb625spec/services/import/gitlab_projects/create_project_service_spec.rb626spec/services/import_export_clean_up_service_spec.rb627spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb628spec/rubocop/cop/migration/background_migration_record_spec.rb629spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb630spec/graphql/resolvers/projects/snippets_resolver_spec.rb631spec/lib/gitlab/checks/push_check_spec.rb632spec/services/chat_names/find_user_service_spec.rb633spec/rubocop/cop/migration/drop_table_spec.rb634spec/models/work_items/parent_link_spec.rb635spec/policies/deploy_token_policy_spec.rb636spec/lib/sidebars/groups/menus/group_information_menu_spec.rb637spec/services/users/reject_service_spec.rb638spec/services/error_tracking/list_projects_service_spec.rb639spec/models/oauth_access_token_spec.rb640spec/support_specs/helpers/migrations_helpers_spec.rb641spec/lib/gitlab/import_export/project/sample/date_calculator_spec.rb642spec/lib/gitlab/diff/line_mapper_spec.rb643spec/models/blob_viewer/markup_spec.rb644spec/views/projects/environments/terminal.html.haml_spec.rb645spec/graphql/resolvers/release_resolver_spec.rb646spec/serializers/member_serializer_spec.rb647spec/lib/gitlab/utils/lazy_attributes_spec.rb648spec/lib/gitlab/kubernetes/config_map_spec.rb649spec/models/analytics/cycle_analytics/stage_event_hash_spec.rb650spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb651spec/serializers/cluster_entity_spec.rb652spec/workers/hashed_storage/project_rollback_worker_spec.rb653spec/services/projects/repository_languages_service_spec.rb654spec/rubocop/cop/code_reuse/finder_spec.rb655spec/models/concerns/bulk_insertable_associations_spec.rb656spec/finders/packages/pypi/package_finder_spec.rb657spec/lib/gitlab/gl_repository_spec.rb658spec/services/alert_management/alerts/todo/create_service_spec.rb659spec/lib/gitlab/web_ide/config_spec.rb660spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb661spec/validators/x509_certificate_credentials_validator_spec.rb662spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb663spec/lib/gitlab/import_export/hash_util_spec.rb664spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb665spec/graphql/types/issue_status_count_type_spec.rb666spec/workers/cleanup_container_repository_worker_spec.rb667spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb668spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb669spec/graphql/resolvers/project_resolver_spec.rb670spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb671spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb672spec/graphql/types/time_type_spec.rb673spec/graphql/resolvers/design_management/version_in_collection_resolver_spec.rb674spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb675spec/services/ci/build_unschedule_service_spec.rb676spec/services/projects/open_merge_requests_count_service_spec.rb677spec/graphql/types/metrics/dashboard_type_spec.rb678spec/graphql/resolvers/branch_commit_resolver_spec.rb679spec/views/projects/settings/integrations/edit.html.haml_spec.rb680spec/services/ci/destroy_secure_file_service_spec.rb681spec/graphql/types/snippets/blob_action_input_type_spec.rb682spec/lib/gitlab/utils/deep_size_spec.rb683spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb684spec/lib/gitlab/database/shared_model_spec.rb685spec/lib/gitlab/reference_counter_spec.rb686spec/services/discussions/unresolve_service_spec.rb687spec/validators/js_regex_validator_spec.rb688spec/workers/jira_connect/sync_merge_request_worker_spec.rb689spec/presenters/packages/nuget/service_index_presenter_spec.rb690spec/workers/packages/composer/cache_update_worker_spec.rb691spec/graphql/types/work_items/widgets/description_input_type_spec.rbKnapsack report generator started!692DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call693/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here694 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)695Run options: exclude {:quarantine=>true, :level=>"migration"}696Test environment set up in 0.474317001 seconds697Groups::TransferService698 handling packages699 with an npm package700 behaves like transfer not allowed701 does not allow transfer when there is a root namespace change702 with a project within subgroup703 behaves like transfer not allowed704 does not allow transfer when there is a root namespace change705 without a root namespace change706 allows transfer707 when transferring a group into a root group708 behaves like transfer not allowed709 does not allow transfer when there is a root namespace change710 without an npm package711 when transferring a group into a root group712 allows transfer713 #execute714 when transforming a group into a root group715 behaves like ensuring allowed transfer for a group716 when there's an exception on GitLab shell directories717 returns false718 adds an error on group719 when the group is already a root group720 adds an error on group721 when the user does not have the right policies722 returns false723 adds an error on group724 when there is a group with the same path725 returns false726 adds an error on group727 when the group is a subgroup and the transfer is valid728 updates group attributes729 updates group children path730 updates group projects path731 when projects have project namespaces732 behaves like project namespace path is in sync with project path733 keeps project and project namespace attributes in sync734 when transferring a subgroup into another group735 behaves like ensuring allowed transfer for a group736 when there's an exception on GitLab shell directories737 returns false738 adds an error on group739 when the new parent group is the same as the previous parent group740 returns false741 adds an error on group742 when the user does not have the right policies743 returns false744 adds an error on group745 when the parent has a group with the same path746 returns false747 adds an error on group748 when the parent group has a project with the same path749 adds an error on group750 when projects have project namespaces751 behaves like project namespace path is in sync with project path752 keeps project and project namespace attributes in sync753 when the group is allowed to be transferred754 updates visibility for the group based on the parent group755 updates parent group to the new parent756 returns the group as children of the new parent757 creates a redirect for the group758 when the group has a lower visibility than the parent group759 does not update the visibility for the group760 when the group has a higher visibility than the parent group761 updates visibility level based on the parent group762 with a group integration763 with an inherited integration764 replaces inherited integrations765 with a custom integration766 does not updates the integrations767 shared runners configuration768 if parent group has disabled shared runners but allows overrides769 calls update service770 if parent group does not allow shared runners771 calls update service772 if parent group allows shared runners773 does not call update service and keeps them disabled on the group774 when a group is transferred to its subgroup775 does not execute the transfer776 when transferring a group with group descendants777 updates subgroups path778 creates redirects for the subgroups779 when the new parent has a higher visibility than the children780 does not update the children visibility781 when the new parent has a lower visibility than the children782 updates children visibility to match the new parent783 when transferring a group with project descendants784 updates projects path785 creates permanent redirects for the projects786 when the new parent has a higher visibility than the projects787 does not update projects visibility788 behaves like project namespace path is in sync with project path789 keeps project and project namespace attributes in sync790 when the new parent has a lower visibility than the projects791 updates projects visibility to match the new parent792 behaves like project namespace path is in sync with project path793 keeps project and project namespace attributes in sync794 when transferring a group with subgroups & projects descendants795 updates subgroups path796 updates projects path797 creates redirect for the subgroups and projects798 behaves like project namespace path is in sync with project path799 keeps project and project namespace attributes in sync800 when transferring a group with nested groups and projects801 updated paths802 updates subgroups path803 updates projects path804 creates redirect for the subgroups and projects805 resets project authorizations806 removes old project authorizations807 adds new project authorizations808 performs authorizations job immediately809 for nested projects810 removes old project authorizations811 adds new project authorizations812 preserves existing project authorizations for direct project members813 for nested groups with unique members814 preserves existing project authorizations815 for groups with many projects816 adds new project authorizations for the user which makes a transfer817 adds project authorizations for users in the new hierarchy818 removes project authorizations for users in the old hierarchy819 schedules authorizations job820 transferring groups with shared_projects821 when the group that has existing project share is transferred822 behaves like drops the authorizations of ancestor members from the old hierarchy823 drops the authorizations of ancestor members from the old hierarchy824 when the group whose subgroup has an existing project share is transferred825 behaves like drops the authorizations of ancestor members from the old hierarchy826 drops the authorizations of ancestor members from the old hierarchy827 when a group that has existing group share is transferred828 retains the authorizations of direct members829 when transferring a group with two factor authentication switched on830 does not update group two factor authentication setting831 when new parent disallows two factor authentication switched on for descendants832 updates group two factor authentication setting833 schedules update of group two factor authentication setting for descendants834 when updating the group goes wrong835 restores group and projects visibility836 when group has pending builds837 updates pending builds for the group838 when transferring a subgroup into root group839 ensures there is still an owner for the transferred group840 when group has explicit owner841 does not add additional owner842 when a project has container images843 within group844 does not transfer845 within subgroup846 does not transfer847 crm848 moving up849DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated850and will be no longer quoted as id value in Rails 6.2.851 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)852 retains issue contacts853 moving down854 retains issue contacts855 moving sideways856 retains issue contacts857 moving to new root group858 moves all crm objects859 retains issue contacts860 moving to a subgroup within a new root group861 with permission on the root group862 moves all crm objects863 retains issue contacts864 with permission on the subgroup865 raises error866MergeRequests::RefreshService867 #execute868 push to origin repo source branch869 executes hooks with update action870 reloads source branch MRs memoization871 outdates MR suggestions872 calls the merge request activity counter873 query count874 does not execute a lot of queries875 when a merge error exists876 clears merge errors when pushing to the source branch877 does not clear merge errors when pushing to the target branch878 when source branch ref does not exists879 closes MRs without source branch ref880 does not change the merge request diff881 when pipeline exists for the source branch882 updates the head_pipeline_id for @merge_request883 does not update the head_pipeline_id for @fork_merge_request884 Pipelines for merge requests885 when .gitlab-ci.yml has merge_requests keywords886 create detached merge request pipeline with commits887 does not create detached merge request pipeline for forked project888 create detached merge request pipeline for non-fork merge request889 when "push_options: nil" is passed890 creates a detached merge request pipeline with commits891 when ci.skip push_options are passed892 creates a skipped detached merge request pipeline with commits893 when service is hooked by target branch894 does not create detached merge request pipeline895 when service runs on forked project896 creates detached merge request pipeline for fork merge request897 when branch pipeline was created before a detaced merge request pipeline has been created898 sets the latest detached merge request pipeline as a head pipeline899 returns pipelines in correct order900 when MergeRequestUpdateWorker is retried by an exception901 does not re-create a duplicate detached merge request pipeline902 when the pipeline should be skipped903 saves a skipped detached merge request pipeline904 when .gitlab-ci.yml does not have merge_requests keywords905 does not create a detached merge request pipeline906 when .gitlab-ci.yml is invalid907 persists a pipeline with config error908 when .gitlab-ci.yml file is valid but has a logical error909 persists a pipeline with config error910 push to origin repo source branch911 executes hooks with update action912 push to origin repo target branch913 when all MRs to the target branch had diffs914 updates the merge state915 when an MR to be closed was empty already916 only updates the non-empty MRs917 manual merge of source branch918 updates the merge state919 push to fork repo source branch920 open fork merge request921 calls MergeRequests::LinkLfsObjectsService#execute922 executes hooks with update action923 outdates opened forked MR suggestions924 closed fork merge request925 do not execute hooks with update action926 updates merge request to closed state927 push to fork repo target branch928 changes to merge requests929 updates the merge request state930 merge request diff931 does not reload the diff of the merge request made from fork932 forked projects with the same source branch name as target branch933 reloads a new diff for a push to the forked project934 reloads a new diff for a force push to the source branch935 reloads a new diff for a force push to the target branch936 reloads a new diff for a push to the target project that contains a commit in the MR937 does not increase the diff count for a new push to target branch938 push to origin repo target branch after fork project was removed939 updates the merge request state940 push new branch that exists in a merge request941 refreshes the merge request942 merge request metrics943 when the merge request is sourced from the same project944 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit945 when the merge request is sourced from a different project946 creates a `MergeRequestsClosingIssues` record for each issue closed by a commit947 marking the merge request as draft948 marks the merge request as draft from fixup commits949 references the commit that caused the draft status950 does not mark as draft based on commits that do not belong to an MR951 updating merge_commit952 feature enabled953 updates merge requests' merge_commits954 #abort_ff_merge_requests_with_when_pipeline_succeeds955 when Project#merge_method is set to FF956 behaves like aborted merge requests for MWPS957 aborts auto_merge958 removes merge_user959 does not add todos for merge user960 adds todos for merge author961 with forked project962 behaves like aborted merge requests for MWPS963 aborts auto_merge964 removes merge_user965 does not add todos for merge user966 adds todos for merge author967 with bogus auto merge strategy968 behaves like maintained merge requests for MWPS969 does not cancel auto merge970 does not change merge_user971 does not add todos972 when Project#merge_method is set to rebase_merge973 behaves like aborted merge requests for MWPS974 aborts auto_merge975 removes merge_user976 does not add todos for merge user977 adds todos for merge author978 with forked project979 behaves like aborted merge requests for MWPS980 aborts auto_merge981 removes merge_user982 does not add todos for merge user983 adds todos for merge author984 when Project#merge_method is set to merge985 behaves like maintained merge requests for MWPS986 does not cancel auto merge987 does not change merge_user988 does not add todos989 with forked project990 behaves like maintained merge requests for MWPS991 does not cancel auto merge992 does not change merge_user993 does not add todos994Issues::UpdateService995 execute996 valid params997 updates the issue with the given params998 updates issue milestone when passing `milestone` param999 refreshes the number of open issues when the issue is made confidential1000 enqueues ConfidentialIssueWorker when an issue is made confidential1001 does not enqueue ConfidentialIssueWorker when an issue is made non confidential1002 updates open issue counter for assignees when issue is reassigned1003 does not rebalance even if needed if the flag is disabled1004 rebalances if needed if the flag is enabled for the project1005 rebalances if needed on the left1006 rebalances if needed on the right1007 verifies the number of queries1008 when sentry identifier is given1009 assigns the sentry error1010 user is a guest1011 does not assign the sentry error1012 when issue type is not incident1013 behaves like not an incident issue1014 has not incident as issue type1015 when confidentiality is changed1016 behaves like does not track incident management event1017 does not track the event1018 when issue type is incident1019 does not add an incident label1020 behaves like incident issue1021 has incident as issue type1022 when confidentiality is changed1023 behaves like an incident management tracked event1024 .track_event1025 tracks the event using redis1026 changing issue_type1027 from issue to incident1028 creates system note about issue type1029 creates an escalation status1030 behaves like incident issue1031 has incident as issue type1032 for an issue with multiple labels1033 does not add an `incident` label if one already exist1034 from incident to issue1035 changed from an incident to an issue type1036 for an incident with multiple labels1037 does not remove an `incident` label if one exists on the incident1038 filtering the incident label1039 does not add an incident label id to remove_label_ids for it to be removed1040 from issue to restricted issue types1041 without sufficient permissions1042 does nothing to the labels1043 when changing relative position1044 sorts issues as specified by parameters1045 when block_issue_positioning flag is enabled1046 raises error1047 when moving issue between issues from different projects1048 sorts issues as specified by parameters1049 when current user cannot admin issues in the project1050 filters out params that cannot be set without the :admin_issue permission1051 with background jobs processed1052 sends email to user2 about assign of new issue and email to user3 about issue unassignment1053 creates system note about issue reassign1054 creates a resource label event1055 creates system note about title change1056 creates system note about discussion lock1057 after_save callback to store_mentions1058 when mentionable attributes change1059 saves mentions1060 when mentionable attributes do not change1061 does not call store_mentions1062 when save fails1063 does not call store_mentions1064 when description changed1065 creates system note about description change1066 when issue turns confidential1067 creates system note about confidentiality change1068 executes confidential issue hooks1069 does not update assignee_id with unauthorized users1070 todos1071 when the title change1072 marks pending todos as done1073 does not create any new todos1074 when the description change1075 marks todos as done1076 creates only 1 new todo1077 when is reassigned1078 marks previous assignee todos as done1079 creates a todo for new assignee1080 when a new assignee added1081 creates only 1 new todo1082 creates a todo for new assignee1083 issue is incident type1084 behaves like an incident management tracked event1085 .track_event1086 tracks the event using redis1087 when the milestone is removed1088 sends notifications for subscribers of changed milestone1089 clears milestone issue counters cache1090 when the milestone is assigned1091 marks todos as done1092 sends notifications for subscribers of changed milestone1093 deletes issue counters cache for the milestone1094 when the milestone is changed1095 deletes issue counters cache for both milestones1096 when the labels change1097 marks todos as done1098 updates updated_at1099 when the issue is relabeled1100 sends notifications for subscribers of newly added labels1101 when issue has the `label` label1102 does not send notifications for existing labels1103 does not send notifications for removed labels1104 when issue has tasks1105 is expected to eq true1106 behaves like updating a single task1107 usage counters1108 update as expected1109 when a task is marked as completed1110 creates system note about task status change1111 when a task is marked as incomplete1112 creates system note about task status change1113 when the task position has been modified1114 raises an exception1115 when the content changes but not task line number1116 creates system note about task status change1117 when tasks are marked as completed1118 does not check for spam on task status change1119 creates system note about task status change1120 when tasks are marked as incomplete1121 creates system note about task status change1122 when tasks position has been modified1123 does not create a system note for the task1124 when a Task list with a completed item is totally replaced1125 does not create a system note referencing the position the old item1126 does not generate a new note at all1127 updating labels1128 when add_label_ids and label_ids are passed1129 replaces the labels with the ones in label_ids and adds those in add_label_ids1130 when remove_label_ids and label_ids are passed1131 replaces the labels with the ones in label_ids and removes those in remove_label_ids1132 when add_label_ids and remove_label_ids are passed1133 adds the passed labels1134 removes the passed labels1135 when same id is passed as add_label_ids and remove_label_ids1136 for a label assigned to an issue1137 removes the label1138 for a label not assigned to an issue1139 does not add the label1140 when duplicate label titles are given1141 assigns the label once1142 updating asssignee_id1143 does not update assignee when assignee_id is invalid1144 unassigns assignee when user id is 01145 does not update assignee_id when user cannot read issue1146 when issuable feature is private1147 does not update with unauthorized assignee when project is Internal1148 does not update with unauthorized assignee when project is Public1149 updating mentions1150 when mentioning a different user1151 in title1152 emails only the newly-mentioned user1153 in description1154 emails only the newly-mentioned user1155 when mentioning a user and a group with access to1156 when group is public1157 behaves like updating attribute with allowed mentions1158 emails group members1159 behaves like updating attribute with allowed mentions1160 emails group members1161 behaves like updating attribute with existing group mention1162 creates todos for only newly mentioned users1163 behaves like updating attribute with existing group mention1164 creates todos for only newly mentioned users1165 when the group is private1166 behaves like updating attribute with allowed mentions1167 emails group members1168 behaves like updating attribute with allowed mentions1169 emails group members1170 behaves like updating attribute with existing group mention1171 creates todos for only newly mentioned users1172 behaves like updating attribute with existing group mention1173 creates todos for only newly mentioned users1174 when mentioning a user and a group without access to1175 when the group is private1176 behaves like updating attribute with not allowed mentions1177 emails mentioned user1178 behaves like updating attribute with not allowed mentions1179 emails mentioned user1180 updating severity1181 on incidents1182 when severity has not been set previously1183 creates a new record1184 behaves like updates the severity1185 has correct value1186 creates a system note1187 triggers webhooks1188 with unsupported severity value1189 behaves like does not change the severity1190 retains the original value1191 does not trigger side-effects1192 with severity value defined but unchanged1193 behaves like does not change the severity1194 retains the original value1195 does not trigger side-effects1196 as guest1197 behaves like does not change the severity1198 retains the original value1199 does not trigger side-effects1200 and also author1201 behaves like does not change the severity1202 retains the original value1203 does not trigger side-effects1204 and also assignee1205 behaves like does not change the severity1206 retains the original value1207 does not trigger side-effects1208 when severity has been set before1209 does not create a new record1210 behaves like updates the severity1211 has correct value1212 creates a system note1213 triggers webhooks1214 with unsupported severity value1215 behaves like updates the severity1216 has correct value1217 creates a system note1218 triggers webhooks1219 with severity value defined but unchanged1220 behaves like does not change the severity1221 retains the original value1222 does not trigger side-effects1223 when issue type is not incident1224 behaves like does not change the severity1225 retains the original value1226 does not trigger side-effects1227 updating escalation status1228 when issue is an incident1229 with an escalation status record1230 behaves like updates the escalation status record1231 has correct value1232 triggers webhooks1233 with associated alert1234 syncs the update back to the alert1235 with a status change reason provided1236 behaves like updates the escalation status record1237 has correct value1238 triggers webhooks1239 with unsupported status value1240 behaves like does not change the status record1241 retains the original value1242 does not trigger side-effects1243 with status value defined but unchanged1244 behaves like does not change the status record1245 retains the original value1246 does not trigger side-effects1247 without an escalation status record1248 creates a new record1249 behaves like updates the escalation status record1250 has correct value1251 triggers webhooks1252 when issue type is not incident1253 behaves like does not change the status record1254 retains the original value1255 does not trigger side-effects1256 duplicate issue1257 invalid canonical_issue_id1258 does not call the duplicate service1259 valid canonical_issue_id1260 calls the duplicate service with both issues1261 move issue to another project1262 valid project1263 calls the move service with the proper issue and project1264 clone an issue1265 valid project1266 calls the move service with the proper issue and project1267 clone an issue with notes1268 valid project1269 calls the move service with the proper issue and project1270 when moving an issue1271 raises an error for invalid move ids1272 changing state1273 to reopened1274 executes hooks only once1275 to closed1276 executes hooks only once1277 broadcasting issue assignee updates1278 triggers the GraphQL subscription1279 when assignee is not updated1280 does not trigger the GraphQL subscription1281 labels are updated1282 behaves like keeps issuable labels sorted after update1283 when label is changed1284 keeps the labels sorted by title ASC1285 behaves like broadcasting issuable labels updates1286 when label is added1287 triggers the GraphQL subscription1288 when label is removed1289 triggers the GraphQL subscription1290 when label is unchanged1291 does not trigger the GraphQL subscription1292 behaves like issuable record that supports quick actions1293 with labels in command only1294 attaches labels to issuable1295 with labels in params and command1296 attaches all labels to issuable1297 with assignee and milestone in command only1298 assigns and sets milestone to issuable1299Gitlab::ImportExport::Project::TreeSaver1300 with JSON1301 behaves like saves project tree successfully1302 saves project tree attributes1303 with project root1304 is expected to include {"description" => "description", "visibility_level" => 20}1305 is expected not to include {"runners_token" => "token"}1306 has approvals_before_merge set1307 with milestones1308 is expected not to be empty1309 with merge_requests1310 is expected not to be empty1311 has merge request's milestones1312 has merge request's source branch SHA1313 has merge request's target branch SHA1314 has events1315 has merge requests diffs1316 has merge request diff files1317 has merge request diff commits1318 has merge requests comments1319 has author on merge requests comments1320 has merge request resource label events1321 with snippets1322 is expected not to be empty1323 has snippet notes1324 with releases1325 is expected not to be empty1326 has no author on releases1327 has the author ID on releases1328 with issues1329 is expected not to be empty1330 has issue comments1331 has issue assignees1332 has author on issue comments1333 has labels associated to records1334 has project and group labels1335 has priorities associated to labels1336 has issue resource label events1337 saves the issue designs correctly1338 saves the issue design notes correctly1339 saves the issue design versions correctly1340 with ci_pipelines1341 is expected not to be empty1342 has pipeline stages1343 has pipeline statuses1344 has pipeline builds1345 has ci pipeline notes1346 with labels1347 is expected not to be empty1348 with project_feature1349 is expected not to be empty1350 has project feature1351 with custom_attributes1352 has custom attributes1353 with badges1354 has badges1355 with project_members1356 is expected not to be empty1357 with boards1358 is expected not to be empty1359 #saves project tree1360 saves project successfully1361 does not complain about non UTF-8 characters in MR diff files1362 overrides group members1363 when has no permission1364 does not export group members1365 when has permission as maintainer1366 does not export group members1367 when has permission as group owner1368 exports group members as group owner1369 as admin1370 when admin mode is enabled1371 exports group members as admin1372 exports group members as project members1373 when admin mode is disabled1374 does not export group members1375 with description override1376 is expected to include {"description" => "Foo Bar"}1377 with NDJSON1378 behaves like saves project tree successfully1379 saves project tree attributes1380 with project root1381 is expected to include {"description" => "description", "visibility_level" => 20}1382 is expected not to include {"runners_token" => "token"}1383 has approvals_before_merge set1384 with milestones1385 is expected not to be empty1386 with merge_requests1387 is expected not to be empty1388 has merge request's milestones1389 has merge request's source branch SHA1390 has merge request's target branch SHA1391 has events1392 has merge requests diffs1393 has merge request diff files1394 has merge request diff commits1395 has merge requests comments1396 has author on merge requests comments1397 has merge request resource label events1398 with snippets1399 is expected not to be empty1400 has snippet notes1401 with releases1402 is expected not to be empty1403 has no author on releases1404 has the author ID on releases1405 with issues1406 is expected not to be empty1407 has issue comments1408 has issue assignees1409 has author on issue comments1410 has labels associated to records1411 has project and group labels1412 has priorities associated to labels1413 has issue resource label events1414 saves the issue designs correctly1415 saves the issue design notes correctly1416 saves the issue design versions correctly1417 with ci_pipelines1418 is expected not to be empty1419 has pipeline stages1420 has pipeline statuses1421 has pipeline builds1422 has ci pipeline notes1423 with labels1424 is expected not to be empty1425 with project_feature1426 is expected not to be empty1427 has project feature1428 with custom_attributes1429 has custom attributes1430 with badges1431 has badges1432 with project_members1433 is expected not to be empty1434 with boards1435 is expected not to be empty1436 #saves project tree1437 saves project successfully1438 does not complain about non UTF-8 characters in MR diff files1439 overrides group members1440 when has no permission1441 does not export group members1442 when has permission as maintainer1443 does not export group members1444 when has permission as group owner1445 exports group members as group owner1446 as admin1447 when admin mode is enabled1448 exports group members as admin1449 exports group members as project members1450 when admin mode is disabled1451 does not export group members1452 with description override1453 is expected to include {"description" => "Foo Bar"}1454 when streaming has to retry1455 retries and succeeds1456 retries and does not succeed1457rake gitlab:storage:*1458 gitlab:storage:migrate_to_hashed1459 with rollback already scheduled1460 does nothing1461 with 0 legacy projects1462 does nothing1463 with 3 legacy projects1464 enqueues migrations and count projects correctly1465 behaves like handles custom BATCH env var1466 in batches of 11467 enqueues one HashedStorage::MigratorWorker per project1468 in batches of 21469 enqueues one HashedStorage::MigratorWorker per 2 projects1470 with same id in range1471 displays message when project cant be found1472 displays a message when project exists but its already migrated1473 enqueues migration when project can be found1474 gitlab:storage:rollback_to_legacy1475 behaves like make sure database is writable1476 read-only database1477 does nothing1478 with migration already scheduled1479 does nothing1480 with 0 hashed projects1481 does nothing1482 with 3 hashed projects1483 enqueues migrations and count projects correctly1484 behaves like handles custom BATCH env var1485 in batches of 11486 enqueues one HashedStorage::RollbackerWorker per project1487 in batches of 21488 enqueues one HashedStorage::RollbackerWorker per 2 projects1489 gitlab:storage:legacy_projects1490 behaves like rake entities summary1491 with existing 3 legacy projects1492 reports 3 legacy projects1493 without any legacy project1494 displays message for empty results1495 behaves like wait until database is ready1496 checks if the database is ready once1497 handles custom env vars1498 tries for 3 times, polling every 0.1 seconds1499 gitlab:storage:list_legacy_projects1500 behaves like rake listing entities1501 limiting to 21502 lists 2 out of 3 legacy projects1503 without any legacy project1504 displays message for empty results1505 gitlab:storage:hashed_projects1506 behaves like rake entities summary1507 with existing 3 hashed projects1508 reports 3 hashed projects1509 without any hashed project1510 displays message for empty results1511 gitlab:storage:list_hashed_projects1512 behaves like rake listing entities1513 limiting to 21514 lists 2 out of 3 hashed projects1515 without any hashed project1516 displays message for empty results1517 gitlab:storage:legacy_attachments1518 behaves like rake entities summary1519 with existing 3 legacy attachments1520 reports 3 legacy attachments1521 without any legacy attachment1522 displays message for empty results1523 behaves like wait until database is ready1524 checks if the database is ready once1525 handles custom env vars1526 tries for 3 times, polling every 0.1 seconds1527 gitlab:storage:list_legacy_attachments1528 behaves like rake listing entities1529 limiting to 21530 lists 2 out of 3 legacy attachments1531 without any legacy attachment1532 displays message for empty results1533 gitlab:storage:hashed_attachments1534 behaves like rake entities summary1535 with existing 3 hashed attachments1536 reports 3 hashed attachments1537 without any hashed attachment1538 displays message for empty results1539 gitlab:storage:list_hashed_attachments1540 behaves like rake listing entities1541 limiting to 21542 lists 2 out of 3 hashed attachments1543 without any hashed attachment1544 displays message for empty results1545Gitlab::Color1546 .of1547 parses black to #0000001548 parses silver to #C0C0C01549 parses gray to #8080801550 parses white to #FFFFFF1551 parses maroon to #8000001552 parses red to #FF00001553 parses purple to #8000801554 parses fuchsia to #FF00FF1555 parses green to #0080001556 parses lime to #00FF001557 parses olive to #8080001558 parses yellow to #FFFF001559 parses navy to #0000801560 parses blue to #0000FF1561 parses teal to #0080801562 parses aqua to #00FFFF1563 parses orange to #FFA5001564 parses aliceblue to #F0F8FF1565 parses antiquewhite to #FAEBD71566 parses aquamarine to #7FFFD41567 parses azure to #F0FFFF1568 parses beige to #F5F5DC1569 parses bisque to #FFE4C41570 parses blanchedalmond to #FFEBCD1571 parses blueviolet to #8A2BE21572 parses brown to #A52A2A1573 parses burlywood to #DEB8871574 parses cadetblue to #5F9EA01575 parses chartreuse to #7FFF001576 parses chocolate to #D2691E1577 parses coral to #FF7F501578 parses cornflowerblue to #6495ED1579 parses cornsilk to #FFF8DC1580 parses crimson to #DC143C1581 parses darkblue to #00008B1582 parses darkcyan to #008B8B1583 parses darkgoldenrod to #B8860B1584 parses darkgray to #A9A9A91585 parses darkgreen to #0064001586 parses darkgrey to #A9A9A91587 parses darkkhaki to #BDB76B1588 parses darkmagenta to #8B008B1589 parses darkolivegreen to #556B2F1590 parses darkorange to #FF8C001591 parses darkorchid to #9932CC1592 parses darkred to #8B00001593 parses darksalmon to #E9967A1594 parses darkseagreen to #8FBC8F1595 parses darkslateblue to #483D8B1596 parses darkslategray to #2F4F4F1597 parses darkslategrey to #2F4F4F1598 parses darkturquoise to #00CED11599 parses darkviolet to #9400D31600 parses deeppink to #FF14931601 parses deepskyblue to #00BFFF1602 parses dimgray to #6969691603 parses dimgrey to #6969691604 parses dodgerblue to #1E90FF1605 parses firebrick to #B222221606 parses floralwhite to #FFFAF01607 parses forestgreen to #228B221608 parses gainsboro to #DCDCDC1609 parses ghostwhite to #F8F8FF1610 parses gold to #FFD7001611 parses goldenrod to #DAA5201612 parses greenyellow to #ADFF2F1613 parses grey to #8080801614 parses honeydew to #F0FFF01615 parses hotpink to #FF69B41616 parses indianred to #CD5C5C1617 parses indigo to #4B00821618 parses ivory to #FFFFF01619 parses khaki to #F0E68C1620 parses lavender to #E6E6FA1621 parses lavenderblush to #FFF0F51622 parses lawngreen to #7CFC001623 parses lemonchiffon to #FFFACD1624 parses lightblue to #ADD8E61625 parses lightcoral to #F080801626 parses lightcyan to #E0FFFF1627 parses lightgoldenrodyellow to #FAFAD21628 parses lightgray to #D3D3D31629 parses lightgreen to #90EE901630 parses lightgrey to #D3D3D31631 parses lightpink to #FFB6C11632 parses lightsalmon to #FFA07A1633 parses lightseagreen to #20B2AA1634 parses lightskyblue to #87CEFA1635 parses lightslategray to #7788991636 parses lightslategrey to #7788991637 parses lightsteelblue to #B0C4DE1638 parses lightyellow to #FFFFE01639 parses limegreen to #32CD321640 parses linen to #FAF0E61641 parses mediumaquamarine to #66CDAA1642 parses mediumblue to #0000CD1643 parses mediumorchid to #BA55D31644 parses mediumpurple to #9370DB1645 parses mediumseagreen to #3CB3711646 parses mediumslateblue to #7B68EE1647 parses mediumspringgreen to #00FA9A1648 parses mediumturquoise to #48D1CC1649 parses mediumvioletred to #C715851650 parses midnightblue to #1919701651 parses mintcream to #F5FFFA1652 parses mistyrose to #FFE4E11653 parses moccasin to #FFE4B51654 parses navajowhite to #FFDEAD1655 parses oldlace to #FDF5E61656 parses olivedrab to #6B8E231657 parses orangered to #FF45001658 parses orchid to #DA70D61659 parses palegoldenrod to #EEE8AA1660 parses palegreen to #98FB981661 parses paleturquoise to #AFEEEE1662 parses palevioletred to #DB70931663 parses papayawhip to #FFEFD51664 parses peachpuff to #FFDAB91665 parses peru to #CD853F1666 parses pink to #FFC0CB1667 parses plum to #DDA0DD1668 parses powderblue to #B0E0E61669 parses rosybrown to #BC8F8F1670 parses royalblue to #4169E11671 parses saddlebrown to #8B45131672 parses salmon to #FA80721673 parses sandybrown to #F4A4601674 parses seagreen to #2E8B571675 parses seashell to #FFF5EE1676 parses sienna to #A0522D1677 parses skyblue to #87CEEB1678 parses slateblue to #6A5ACD1679 parses slategray to #7080901680 parses slategrey to #7080901681 parses snow to #FFFAFA1682 parses springgreen to #00FF7F1683 parses steelblue to #4682B41684 parses tan to #D2B48C1685 parses thistle to #D8BFD81686 parses tomato to #FF63471687 parses turquoise to #40E0D01688 parses violet to #EE82EE1689 parses wheat to #F5DEB31690 parses whitesmoke to #F5F5F51691 parses yellowgreen to #9ACD321692 parses rebeccapurple to #6633991693 parses hex literals as colors1694 raises if the input is nil1695 returns an invalid color if the input is not valid1696 .color_for1697 when generating color for nil value1698 is expected to be valid1699 behaves like deterministic1700 is deterministoc1701 when generating color for empty string value1702 is expected to be valid1703 behaves like deterministic1704 is deterministoc1705 when generating color for number value1706 is expected to be valid1707 behaves like deterministic1708 is deterministoc1709 when generating color for string value1710 is expected to be valid1711 behaves like deterministic1712 is deterministoc1713 #new1714 handles nil values1715 strips input1716 #valid?1717 black is a valid color1718 silver is a valid color1719 gray is a valid color1720 white is a valid color1721 maroon is a valid color1722 red is a valid color1723 purple is a valid color1724 fuchsia is a valid color1725 green is a valid color1726 lime is a valid color1727 olive is a valid color1728 yellow is a valid color1729 navy is a valid color1730 blue is a valid color1731 teal is a valid color1732 aqua is a valid color1733 orange is a valid color1734 aliceblue is a valid color1735 antiquewhite is a valid color1736 aquamarine is a valid color1737 azure is a valid color1738 beige is a valid color1739 bisque is a valid color1740 blanchedalmond is a valid color1741 blueviolet is a valid color1742 brown is a valid color1743 burlywood is a valid color1744 cadetblue is a valid color1745 chartreuse is a valid color1746 chocolate is a valid color1747 coral is a valid color1748 cornflowerblue is a valid color1749 cornsilk is a valid color1750 crimson is a valid color1751 darkblue is a valid color1752 darkcyan is a valid color1753 darkgoldenrod is a valid color1754 darkgray is a valid color1755 darkgreen is a valid color1756 darkgrey is a valid color1757 darkkhaki is a valid color1758 darkmagenta is a valid color1759 darkolivegreen is a valid color1760 darkorange is a valid color1761 darkorchid is a valid color1762 darkred is a valid color1763 darksalmon is a valid color1764 darkseagreen is a valid color1765 darkslateblue is a valid color1766 darkslategray is a valid color1767 darkslategrey is a valid color1768 darkturquoise is a valid color1769 darkviolet is a valid color1770 deeppink is a valid color1771 deepskyblue is a valid color1772 dimgray is a valid color1773 dimgrey is a valid color1774 dodgerblue is a valid color1775 firebrick is a valid color1776 floralwhite is a valid color1777 forestgreen is a valid color1778 gainsboro is a valid color1779 ghostwhite is a valid color1780 gold is a valid color1781 goldenrod is a valid color1782 greenyellow is a valid color1783 grey is a valid color1784 honeydew is a valid color1785 hotpink is a valid color1786 indianred is a valid color1787 indigo is a valid color1788 ivory is a valid color1789 khaki is a valid color1790 lavender is a valid color1791 lavenderblush is a valid color1792 lawngreen is a valid color1793 lemonchiffon is a valid color1794 lightblue is a valid color1795 lightcoral is a valid color1796 lightcyan is a valid color1797 lightgoldenrodyellow is a valid color1798 lightgray is a valid color1799 lightgreen is a valid color1800 lightgrey is a valid color1801 lightpink is a valid color1802 lightsalmon is a valid color1803 lightseagreen is a valid color1804 lightskyblue is a valid color1805 lightslategray is a valid color1806 lightslategrey is a valid color1807 lightsteelblue is a valid color1808 lightyellow is a valid color1809 limegreen is a valid color1810 linen is a valid color1811 mediumaquamarine is a valid color1812 mediumblue is a valid color1813 mediumorchid is a valid color1814 mediumpurple is a valid color1815 mediumseagreen is a valid color1816 mediumslateblue is a valid color1817 mediumspringgreen is a valid color1818 mediumturquoise is a valid color1819 mediumvioletred is a valid color1820 midnightblue is a valid color1821 mintcream is a valid color1822 mistyrose is a valid color1823 moccasin is a valid color1824 navajowhite is a valid color1825 oldlace is a valid color1826 olivedrab is a valid color1827 orangered is a valid color1828 orchid is a valid color1829 palegoldenrod is a valid color1830 palegreen is a valid color1831 paleturquoise is a valid color1832 palevioletred is a valid color1833 papayawhip is a valid color1834 peachpuff is a valid color1835 peru is a valid color1836 pink is a valid color1837 plum is a valid color1838 powderblue is a valid color1839 rosybrown is a valid color1840 royalblue is a valid color1841 saddlebrown is a valid color1842 salmon is a valid color1843 sandybrown is a valid color1844 seagreen is a valid color1845 seashell is a valid color1846 sienna is a valid color1847 skyblue is a valid color1848 slateblue is a valid color1849 slategray is a valid color1850 slategrey is a valid color1851 snow is a valid color1852 springgreen is a valid color1853 steelblue is a valid color1854 tan is a valid color1855 thistle is a valid color1856 tomato is a valid color1857 turquoise is a valid color1858 violet is a valid color1859 wheat is a valid color1860 whitesmoke is a valid color1861 yellowgreen is a valid color1862 rebeccapurple is a valid color1863 #fff is a valid color1864 #ffffff is a valid color1865 #ABCDEF is a valid color1866 #123456 is a valid color1867 #1234567 is not a valid color1868 fff is not a valid color1869 #deadbeaf is not a valid color1870 #a1b2c3 is a valid color1871 nil is not a valid color1872 #light?1873 #fff is light1874 #a7a7a7 is light1875 #a6a7a7 is dark1876 #000 is dark1877 invalid colors are not light1878 #contrast1879 with light colors1880 is dark1881 with dark colors1882 is light1883 as_json1884 serializes correctly1885Gitlab::Database::MigrationHelpers1886 overridden dynamic model helpers1887 #define_batchable_model1888 defines a batchable model with the migration connection1889 #each_batch1890 calls each_batch with the migration connection1891 #each_batch_range1892 calls each_batch with the migration connection1893 #remove_timestamps1894 can remove the default timestamps1895 can remove custom timestamps1896 #add_timestamps_with_timezone1897 adds "created_at" and "updated_at" fields with the "datetime_with_timezone" data type1898 can disable the NOT NULL constraint1899 can add just one column1900 can add choice of acceptable columns1901 cannot add unacceptable column names1902 #create_table_with_constraints1903 when no check constraints are defined1904 creates the table as expected1905 when check constraints are defined1906 runs the change within a with_lock_retries1907 when the text_limit is explicity named1908 creates the table as expected1909 when the text_limit is not named1910 creates the table as expected, naming the text limit1911 when with_lock_retries re-runs the block1912 only creates constraint for unique definitions1913 when constraints are given invalid names1914 when the explicit text limit name is not valid1915 raises an error1916 when a check constraint name is not valid1917 raises an error1918 #add_concurrent_index1919 outside a transaction1920 creates the index concurrently1921 creates unique index concurrently1922 unprepares the async index creation1923 when the index exists and is valid1924 does leaves the existing index1925 when an invalid copy of the index exists1926 when the default name is used1927 drops and recreates the index1928 when a custom name is used1929 drops and recreates the index1930 when a qualified table name is used1931 drops and recreates the index1932 inside a transaction1933 raises RuntimeError1934 #remove_concurrent_index1935 outside a transaction1936 by column name1937 removes the index concurrently1938 does nothing if the index does not exist1939 unprepares the async index creation1940 by index name1941 removes the index concurrently by index name1942 does nothing if the index does not exist1943 removes the index with keyword arguments1944 raises an error if the index is blank1945 unprepares the async index creation1946 inside a transaction1947 raises RuntimeError1948 #remove_foreign_key_if_exists1949 when the foreign key does not exist1950 does nothing1951 when the foreign key exists1952 removes the foreign key1953 when the target table is not given1954 passes the options as the second parameter1955 when the reverse_lock_order option is given1956 requests for lock before removing the foreign key1957 when not inside a transaction1958 does not lock1959 #add_concurrent_foreign_key1960 inside a transaction1961 raises an error1962 outside a transaction1963 target column1964 defaults to (id) when no custom target column is provided1965 references the custom taget column when provided1966 ON DELETE statements1967 on_delete: :nullify1968 appends ON DELETE SET NULL statement1969 on_delete: :cascade1970 appends ON DELETE CASCADE statement1971 on_delete: nil1972 appends no ON DELETE statement1973 when no custom key name is supplied1974 creates a concurrent foreign key and validates it1975 does not create a foreign key if it exists already1976 when a custom key name is supplied1977 for creating a new foreign key for a column that does not presently exist1978 creates a new foreign key1979 for creating a duplicate foreign key for a column that presently exists1980 when the supplied key name is the same as the existing foreign key name1981 does not create a new foreign key1982 when the supplied key name is different from the existing foreign key name1983 creates a new foreign key1984 validate option1985 when validate is supplied with a falsey value1986 behaves like skips validation1987 skips validation1988 behaves like skips validation1989 skips validation1990 when validate is supplied with a truthy value1991 behaves like performs validation1992 performs validation1993 behaves like performs validation1994 performs validation1995 when validate is not supplied1996 behaves like performs validation1997 performs validation1998 when the reverse_lock_order flag is set1999 explicitly locks the tables in target-source order2000 #validate_foreign_key2001 when name is provided2002 does not infer the foreign key constraint name2003 when name is not provided2004 infers the foreign key constraint name2005 when the inferred foreign key constraint does not exist2006 raises an error2007 #concurrent_foreign_key_name2008 returns the name for a foreign key2009 #foreign_key_exists?2010 compares by target table if no column given2011 without specifying a target table2012 behaves like foreign key checks2013 finds existing foreign keys by column2014 finds existing foreign keys by name2015 finds existing foreign_keys by name and column2016 finds existing foreign_keys by name, column and on_delete2017 finds existing foreign keys by target table only2018 compares by column name if given2019 compares by target column name if given2020 compares by foreign key name if given2021 compares by foreign key name and column if given2022 compares by foreign key name, column and on_delete if given2023 specifying a target table2024 behaves like foreign key checks2025 finds existing foreign keys by column2026 finds existing foreign keys by name2027 finds existing foreign_keys by name and column2028 finds existing foreign_keys by name, column and on_delete2029 finds existing foreign keys by target table only2030 compares by column name if given2031 compares by target column name if given2032 compares by foreign key name if given2033 compares by foreign key name and column if given2034 compares by foreign key name, column and on_delete if given2035 #disable_statement_timeout2036 disables statement timeouts to current transaction only2037 with real environment2038 defines statement to 0 only for current transaction2039 when passing a blocks2040 disables statement timeouts on session level and executes the block2041 with real environment2042 defines statement to 0 for any code run inside the block2043 when the statement_timeout is already disabled2044 yields control without disabling the timeout or resetting2045 #true_value2046 returns the appropriate value2047 #false_value2048 returns the appropriate value2049 #update_column_in_batches2050 when running outside of a transaction2051 updates all the rows in a table2052 updates boolean values correctly2053 when a block is supplied2054 yields an Arel table and query object to the supplied block2055 when the value is Arel.sql (Arel::Nodes::SqlLiteral)2056 updates the value as a SQL expression2057 when running inside the transaction2058 raises RuntimeError2059 #add_column_with_default2060 delegates to #add_column2061 #rename_column_concurrently2062 in a transaction2063 raises RuntimeError2064 outside a transaction2065 when the column to rename exists2066 renames a column concurrently2067 passes the batch_column_name2068 passes the type_cast_function2069 raises an error with invalid batch_column_name2070 with existing records and type casting2071 copies the value to the new column using the type_cast_function2072 when default is false2073 copies the default to the new column2074 when the column to be renamed does not exist2075 raises an error with appropriate message2076 #undo_rename_column_concurrently2077 reverses the operations of rename_column_concurrently2078 #cleanup_concurrent_column_rename2079 cleans up the renaming procedure2080 #undo_cleanup_concurrent_column_rename2081 in a transaction2082 raises RuntimeError2083 outside a transaction2084 reverses the operations of cleanup_concurrent_column_rename2085 passes the batch_column_name2086 raises an error with invalid batch_column_name2087 when default is false2088 copies the default to the old column2089 #change_column_type_concurrently2090 changes the column type2091 passed the batch column name2092 with type cast2093 changes the column type with casting the value to the new type2094 #undo_change_column_type_concurrently2095 reverses the operations of change_column_type_concurrently2096 #cleanup_concurrent_column_type_change2097 cleans up the type changing procedure2098 #undo_cleanup_concurrent_column_type_change2099 in a transaction2100 raises RuntimeError2101 outside a transaction2102 reverses the operations of cleanup_concurrent_column_type_change2103 passes the type_cast_function, batch_column_name and limit2104 raises an error with invalid batch_column_name2105 #install_rename_triggers2106 installs the triggers2107 #remove_rename_triggers2108 removes the function and trigger2109 #rename_trigger_name2110 returns a String2111 #indexes_for2112 returns the indexes for a column2113 #foreign_keys_for2114 returns the foreign keys for a column2115 #copy_indexes2116 using a regular index using a single column2117 copies the index2118 using a regular index with multiple columns2119 copies the index2120 using an index with a WHERE clause2121 copies the index2122 using an index with a USING clause2123 copies the index2124 using an index with custom operator classes2125 copies the index2126 using an index with multiple columns and custom operator classes2127 copies the index2128 using an index with multiple columns and a custom operator class on the non affected column2129 copies the index2130 using an index of which the name does not contain the source column2131 raises RuntimeError2132 #copy_foreign_keys2133 copies foreign keys from one column to another2134 #column_for2135 returns a column object for an existing column2136 raises an error when a column does not exist2137 #replace_sql2138 builds the sql with correct functions2139 results2140 replaces the correct part of the string2141 sidekiq migration helpers2142 #sidekiq_queue_length2143 when queue is empty2144 returns zero2145 when queue contains jobs2146 returns correct size of the queue2147 #migrate_sidekiq_queue2148 migrates jobs from one sidekiq queue to another2149 #check_trigger_permissions!2150 does nothing when the user has the correct permissions2151 raises RuntimeError when the user does not have the correct permissions2152 #convert_to_bigint_column2153 returns the name of the temporary column used to convert to bigint2154 #initialize_conversion_of_integer_to_bigint2155 when the target table does not exist2156 raises an error2157 when the primary key does not exist2158 raises an error2159 when the column to migrate does not exist2160 raises an error2161 when the column to convert is the primary key2162 creates a not-null bigint column and installs triggers2163 when the column to convert is not the primary key, but non-nullable2164 creates a not-null bigint column and installs triggers2165 when the column to convert is not the primary key, but nullable2166 creates a nullable bigint column and installs triggers2167 when multiple columns are given2168 creates the correct columns and installs the trigger2169 #restore_conversion_of_integer_to_bigint2170 when the target table does not exist2171 raises an error2172 when the column to migrate does not exist2173 raises an error2174 when a single column is given2175 creates the correct columns and installs the trigger2176 when multiple columns are given2177 creates the correct columns and installs the trigger2178 #revert_initialize_conversion_of_integer_to_bigint2179 when single column is given2180 removes column, trigger, and function2181 when multiple columns are given2182 removes column, trigger, and function2183 #backfill_conversion_of_integer_to_bigint2184 when the target table does not exist2185 raises an error2186 when the primary key does not exist2187 raises an error2188 when the column to convert does not exist2189 raises an error2190 when the temporary column does not exist2191 raises an error2192 when the conversion is properly initialized2193 when a single column is being converted2194 creates the batched migration tracking record2195 when multiple columns are being converted2196 creates the batched migration tracking record2197 #revert_backfill_conversion_of_integer_to_bigint2198 when a single column is being converted2199 deletes the batched migration tracking record2200 when a multiple columns are being converted2201 deletes the batched migration tracking record2202 when primary key column has custom name2203 deletes the batched migration tracking record2204 #ensure_batched_background_migration_is_finished2205 raises an error when migration exists and is not marked as finished2206 does not raise error when migration exists and is marked as finished2207 logs a warning when migration does not exist2208 finalizes the migration2209 when the flag finalize is false2210 does not finalize the migration2211 #index_exists_by_name?2212 returns true if an index exists2213 returns false if the index does not exist2214 when an index with a function exists2215 returns true if an index exists2216 when an index exists for a table with the same name in another schema2217 returns false if the index does not exist in the current schema2218 #create_or_update_plan_limit2219 properly escapes names2220 when plan does not exist2221 does not create any plan limits2222 when plan does exist2223 when limit does not exist2224 inserts a new plan limits2225 when limit does exist2226 updates an existing plan limits2227 #with_lock_retries2228 sets the migration class name in the logs2229 does not raise on exhaustion by default2230 defaults to allowing subtransactions2231 raise_on_exhaustion: true2232 sets raise_on_exhaustion as requested2233 raise_on_exhaustion: false2234 sets raise_on_exhaustion as requested2235 #backfill_iids2236 generates iids properly for models created after the migration2237 generates iids properly for models created after the migration when iids are backfilled2238 generates iids properly for models created after the migration across multiple projects2239 when the first model is created for a project after the migration2240 generates an iid2241 when a row already has an iid set in the database2242 backfills iids2243 backfills for multiple projects2244 #check_constraint_name2245 returns a valid constraint name2246 #check_constraint_exists?2247 returns true if a constraint exists2248 returns false if a constraint does not exist2249 returns false if a constraint with the same name exists in another table2250 returns false if a constraint with the same name exists for the same table in another schema2251 #add_check_constraint2252 constraint name validation2253 raises an error when too long2254 does not raise error when the length is acceptable2255 inside a transaction2256 raises an error2257 outside a transaction2258 when the constraint is already defined in the database2259 does not create a constraint2260 when the constraint is not defined in the database2261 creates the constraint2262 when validate is not provided2263 performs validation2264 when validate is provided with a falsey value2265 skips validation2266 when validate is provided with a truthy value2267 performs validation2268 #validate_check_constraint2269 when the constraint does not exist2270 raises an error2271 when the constraint exists2272 performs validation2273 #remove_check_constraint2274 removes the constraint2275 #copy_check_constraints2276 inside a transaction2277 raises an error2278 outside a transaction2279 copies check constraints from one column to another2280 does nothing if there are no constraints defined for the old column2281 raises an error when the orginating column does not exist2282 raises an error when the target column does not exist2283 #add_text_limit2284 when it is called with the default options2285 calls add_check_constraint with an infered constraint name and validate: true2286 when all parameters are provided2287 calls add_check_constraint with the correct parameters2288 #validate_text_limit2289 when constraint_name is not provided2290 calls validate_check_constraint with an infered constraint name2291 when constraint_name is provided2292 calls validate_check_constraint with the correct parameters2293 #remove_text_limit2294 when constraint_name is not provided2295 calls remove_check_constraint with an infered constraint name2296 when constraint_name is provided2297 calls remove_check_constraint with the correct parameters2298 #check_text_limit_exists?2299 when constraint_name is not provided2300 calls check_constraint_exists? with an infered constraint name2301 when constraint_name is provided2302 calls check_constraint_exists? with the correct parameters2303 #add_not_null_constraint2304 when it is called with the default options2305 calls add_check_constraint with an infered constraint name and validate: true2306 when all parameters are provided2307 calls add_check_constraint with the correct parameters2308 when the column is defined as NOT NULL2309 does not add a check constraint2310 #validate_not_null_constraint2311 when constraint_name is not provided2312 calls validate_check_constraint with an infered constraint name2313 when constraint_name is provided2314 calls validate_check_constraint with the correct parameters2315 #remove_not_null_constraint2316 when constraint_name is not provided2317 calls remove_check_constraint with an infered constraint name2318 when constraint_name is provided2319 calls remove_check_constraint with the correct parameters2320 #check_not_null_constraint_exists?2321 when constraint_name is not provided2322 calls check_constraint_exists? with an infered constraint name2323 when constraint_name is provided2324 calls check_constraint_exists? with the correct parameters2325 #create_extension2326 executes CREATE EXTENSION statement2327 without proper permissions2328 raises an exception and prints an error message2329 #drop_extension2330 executes CREATE EXTENSION statement2331 without proper permissions2332 raises an exception and prints an error message2333 #rename_constraint2334 executes the statement to rename constraint2335 #drop_sequence2336 executes the statement to drop the sequence2337 #add_sequence2338 executes the statement to add the sequence2339Commit2340 modules2341 is expected to includes the Mentionable module2342 is expected to includes the Participable module2343 is expected to includes the Referable module2344 is expected to includes the StaticModel module2345 is expected to includes the Presentable module2346 .lazy2347 with project2348 behaves like .lazy checks2349 when the commits are found2350 batches requests for commits2351 maintains ordering2352 does not attempt to replace methods via BatchLoader2353 when not found2354 returns nil as commit2355 with personal snippet2356 behaves like .lazy checks2357 when the commits are found2358 batches requests for commits2359 maintains ordering2360 does not attempt to replace methods via BatchLoader2361 when not found2362 returns nil as commit2363 with project snippet2364 behaves like .lazy checks2365 when the commits are found2366 batches requests for commits2367 maintains ordering2368 does not attempt to replace methods via BatchLoader2369 when not found2370 returns nil as commit2371 #diff_refs2372 is equal to itself2373 from a factory2374 is equal to itself2375 #author2376 looks up the author in a case-insensitive way2377 caches the author2378 with a user with an unconfirmed e-mail2379 returns no user2380 using eager loading2381 executes only two SQL queries2382 preloads the authors for Commits matching a user's primary Email2383 preloads the authors for Commits using a User's alternative Email2384 preloads the authors for Commits using a User's private commit Email2385 preloads the authors for Commits using a User's outdated private commit Email2386 sets the author to Nil if an author could not be found for a Commit2387 does not execute SQL queries once the authors are preloaded2388 #committer2389 with a confirmed e-mail2390 returns the user2391 with an unconfirmed e-mail2392 returns no user2393 returns the user2394 #to_reference2395 with project2396 returns a String reference to the object2397 supports a cross-project reference2398 with personal snippet2399 returns a String reference to the object2400 supports a cross-snippet reference2401 with project snippet2402 returns a String reference to the object2403 supports a cross-snippet project reference2404 .reference_valid?2405 ref: "1234567", result: true2406 is expected to eq true2407 ref: "123456", result: false2408 is expected to eq false2409 ref: "1", result: false2410 is expected to eq false2411 ref: "0000000000000000000000000000000000000000", result: true2412 is expected to eq true2413 ref: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: true2414 is expected to eq true2415 ref: "H1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: false2416 is expected to eq false2417 ref: nil, result: false2418 is expected to eq false2419 #reference_link_text2420 with project2421 returns a String reference to the object2422 supports a cross-project reference2423 with personal snippet2424 returns a String reference to the object2425 supports a cross-snippet reference2426 with project snippet2427 returns a String reference to the object2428 supports a cross-snippet project reference2429 #title2430 returns no_commit_message when safe_message is blank2431 truncates a message without a newline at natural break to 80 characters2432 truncates a message with a newline before 80 characters at the newline2433 does not truncates a message with a newline after 80 but less 100 characters2434 #full_title2435 returns no_commit_message when safe_message is blank2436 returns entire message if there is no newline2437 returns first line of message if there is a newLine2438 truncates html representation if more than 1KiB2439 description2440 returns no_commit_message when safe_message is blank2441 returns description of commit message if title less than 100 characters2442 returns full commit message if commit title more than 100 characters2443 truncates html representation if more than 1Mib2444 delegation2445 is expected to respond to #message2446 is expected to respond to #authored_date2447 is expected to respond to #committed_date2448 is expected to respond to #committer_email2449 is expected to respond to #author_email2450 is expected to respond to #parents2451 is expected to respond to #date2452 is expected to respond to #diffs2453 is expected to respond to #id2454 behaves like a mentionable2455 generates a descriptive back-reference2456 extracts references from its reference property2457 creates cross-reference notes2458 uses the CachedMarkdownField cache instead of the Mentionable cache2459 when there are cached markdown fields2460 sends in cached markdown fields when appropriate2461 #hook_attrs2462 is expected to be a kind of Hash2463 is expected to include "adds bar folder and branch-test text file to check Repository merged_to_root_ref method"2464 is expected to eq "2016-09-27T14:37:46+00:00"2465 is expected to contain exactly "bar/branch-test.txt"2466 is expected to eq []2467 is expected to eq []2468 #cherry_pick_message2469 of a regular commit2470 is expected to include "\n\n(cherry picked from commit 88790590ed1337ab189bccaa355f068481c90bec)"2471 of a merge commit2472 that is found2473 is expected to include "\n(cherry picked from commit 356b6a03baa3c4638baf0d455747b2f4a0b23fe7)\n\n467dc98f Add new 'videos' directory\n88790590 Upload new video file"2474 that is existing but not found2475 does not include details of the merged commits2476 #reverts_commit?2477 is expected to be falsy2478 commit has no description2479 is expected to be falsy2480 another_commit's description does not revert commit2481 is expected to be falsy2482 another_commit's description reverts commit2483 is expected to be truthy2484 another_commit's description reverts merged merge request2485 is expected to be truthy2486 #participants2487 includes the commit author2488 includes the committer2489 includes the authors of the commit notes2490 #uri_type with Gitaly enabled2491 behaves like #uri_type2492 returns the URI type at the given path2493 returns nil if the path doesn't exists2494 is nil if the path is nil or empty2495 #uri_type with Rugged enabled2496 calls out to the Rugged implementation2497 behaves like #uri_type2498 returns the URI type at the given path2499 returns nil if the path doesn't exists2500 is nil if the path is nil or empty2501 .diff_max_files2502 returns the current settings2503 .diff_max_lines2504 returns the current settings2505 .diff_safe_max_files2506 returns the commit diff max divided by the limit factor of 102507 .diff_safe_max_lines2508 returns the commit diff max divided by the limit factor of 102509 .from_hash2510 with project2511 behaves like returns Commit2512 returns a Commit2513 wraps a Gitlab::Git::Commit2514 stores the correct commit fields2515 with personal snippet2516 behaves like returns Commit2517 returns a Commit2518 wraps a Gitlab::Git::Commit2519 stores the correct commit fields2520 with project snippet2521 behaves like returns Commit2522 returns a Commit2523 wraps a Gitlab::Git::Commit2524 stores the correct commit fields2525 #draft?2526 detects the 'squash! ' prefix2527 detects the 'fixup! ' prefix2528 detects the 'draft: ' prefix2529 detects the '[Draft] ' prefix2530 detects the '(draft) ' prefix2531 detects the 'Draft: ' prefix2532 does not detect a commit just saying 'draft' as draft? == true2533 doesn't detect 'FIXUP!' at the start of the title as a draft2534 doesn't detect 'Draft - ' at the start of the title as a draft2535 doesn't detect 'Wipeout' at the start of the title as a draft2536 doesn't detect 'WIP: ' at the start of the title as a draft2537 doesn't detect '[WIP] ' at the start of the title as a draft2538 doesn't detect 'wip: ' at the start of the title as a draft2539 .valid_hash?2540 checks hash contents2541 checks hash length2542 signed commits2543 returns signature_type properly2544 returns has_signature? properly2545 #has_been_reverted?2546 returns true if the commit has been reverted2547 returns false if the commit has not been reverted2548Clusters::Applications::Crossplane2549 is expected to belong to cluster required: false2550 is expected to validate that :cluster cannot be empty/falsy2551 #can_uninstall?2552 calls allowed_to_uninstall?2553 #name2554 is .application_name2555 is recorded in Clusters::Cluster::APPLICATIONS2556 .association_name2557 is expected to eq :application_crossplane2558 #helm_command_module2559 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22560 is expected to eq Gitlab::Kubernetes::Helm::V22561 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32562 is expected to eq Gitlab::Kubernetes::Helm::V32563 #status_states2564 returns a hash of state values2565 returns an integer for installed state value2566 .available2567 is expected to contain exactly #<Clusters::Applications::Crossplane id: 1, created_at: "2022-07-04 07:23:15.095815065 +0000", update...:15.095815065 +0000", cluster_id: 12, status: 3, version: "0.4.1", stack: "gcp", status_reason: nil> and #<Clusters::Applications::Crossplane id: 2, created_at: "2022-07-04 07:23:15.844514976 +0000", update...:15.844514976 +0000", cluster_id: 18, status: 5, version: "0.4.1", stack: "gcp", status_reason: nil>2568 status state machine2569 #make_installing2570 is installing2571 #make_installed2572 is installed2573 does not update the helm version2574 the cluster has no helm installed2575 runs without errors2576 application is updating2577 is updated2578 does not update the helm version2579 the cluster has no helm installed2580 runs without errors2581 #make_errored2582 is errored2583 application is updating2584 is update_errored2585 application is uninstalling2586 is uninstall_errored2587 #make_externally_installed2588 is installed2589 helm record does not exist2590 does not create a helm record2591 helm record exists2592 does not update helm version2593 application is updated2594 is installed2595 application is errored2596 is installed2597 clears #status_reason2598 #make_externally_uninstalled2599 is uninstalled2600 application is updated2601 is uninstalled2602 application is errored2603 is uninstalled2604 clears #status_reason2605 #make_scheduled2606 is scheduled2607 when installed2608 is scheduled2609 when was errored2610 clears #status_reason2611 when was updated_errored2612 clears #status_reason2613 when was uninstall_errored2614 clears #status_reason2615 #make_uninstalling2616 is uninstalling2617 #available?2618 trait: :not_installable, available: false2619 is expected not to be available2620 trait: :installable, available: false2621 is expected not to be available2622 trait: :scheduled, available: false2623 is expected not to be available2624 trait: :installing, available: false2625 is expected not to be available2626 trait: :installed, available: true2627 is expected to be available2628 trait: :updating, available: false2629 is expected not to be available2630 trait: :updated, available: true2631 is expected to be available2632 trait: :errored, available: false2633 is expected not to be available2634 trait: :update_errored, available: false2635 is expected not to be available2636 trait: :uninstalling, available: false2637 is expected not to be available2638 trait: :uninstall_errored, available: false2639 is expected not to be available2640 trait: :uninstalled, available: false2641 is expected not to be available2642 trait: :timed_out, available: false2643 is expected not to be available2644 trait: :externally_installed, available: true2645 is expected to be available2646 update_available?2647 version is not the same as VERSION2648 is expected to be truthy2649 version is the same as VERSION2650 is expected to be falsey2651 #make_installed2652 sets the correct version of the application2653 application is updating2654 updates the version of the application2655 #make_externally_installed2656 sets to a special version2657 #status2658 sets a default status2659 validations2660 is expected to validate that :stack cannot be empty/falsy2661 #can_uninstall?2662 is expected to be truthy2663 #install_command2664 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand2665 is initialized with crossplane arguments2666 application failed to install previously2667 is initialized with the locked version2668 #files2669 includes crossplane specific keys in the values.yaml file2670Banzai::ReferenceParser::SnippetParser2671 #nodes_visible_to_user2672 when a project is public and the snippets feature is enabled for everyone2673 avoids N+1 cached queries2674 creates a reference for guest for a public snippet2675 creates a reference for a regular user for a public snippet2676 creates a reference for a regular user for an internal snippet2677 does not create a reference for an external user for an internal snippet2678 creates a reference for a project member for a private snippet2679 does not create a reference for a regular user for a private snippet2680 when a project is public and the snippets feature is enabled for project team members2681 creates a reference for a project member for a public snippet2682 does not create a reference for guest for a public snippet2683 does not create a reference for a regular user for a public snippet2684 creates a reference for a project member for an internal snippet2685 does not create a reference for a regular user for an internal snippet2686 creates a reference for a project member for a private snippet2687 does not create a reference for a regular user for a private snippet2688 when a project is internal and the snippets feature is enabled for everyone2689 does not create a reference for guest for a public snippet2690 does not create a reference for an external user for a public snippet2691 creates a reference for a regular user for a public snippet2692 creates a reference for a regular user for an internal snippet2693 does not create a reference for an external user for an internal snippet2694 creates a reference for a project member for a private snippet2695 does not create a reference for a regular user for a private snippet2696 when a project is internal and the snippets feature is enabled for project team members2697 creates a reference for a project member for a public snippet2698 does not create a reference for guest for a public snippet2699 does not create reference for a regular user for a public snippet2700 creates a reference for a project member for an internal snippet2701 does not create a reference for a regular user for an internal snippet2702 creates a reference for a project member for a private snippet2703 does not create reference for a regular user for a private snippet2704 when a project is private and the snippets feature is enabled for project team members2705 creates a reference for a project member for a public snippet2706 does not create a reference for guest for a public snippet2707 does not create a reference for a regular user for a public snippet2708 creates a reference for a project member for an internal snippet2709 does not create a reference for a regular user for an internal snippet2710 creates a reference for a project member for a private snippet2711 does not create a reference for a regular user for a private snippet2712 #referenced_by2713 when the link has a data-snippet attribute2714 using an existing snippet ID2715 returns an Array of snippets2716 using a non-existing snippet ID2717 returns an empty Array2718Gitlab::Ci::Parsers::Security::Common2719 #parse!2720 vulnerability_finding_signatures_enabled: true2721 schema validation2722 when the validate flag is set to `false`2723 instantiates the validator with correct params2724 when the report data is not valid according to the schema2725 adds warnings to the report2726 keeps the execution flow as normal2727 when the report data is valid according to the schema2728 does not add errors to the report2729 does not add warnings to the report2730 keeps the execution flow as normal2731 when the validate flag is set to `true`2732 instantiates the validator with correct params2733 when the report data is not valid according to the schema2734 adds errors to the report2735 does not try to create report entities2736 when the report data is valid according to the schema2737 does not add errors to the report2738 does not add warnings to the report2739 keeps the execution flow as normal2740 report parsing2741 parsing finding.name2742 when message is provided2743 sets message from the report as a finding name2744 when message is not provided2745 and name is provided2746 sets name from the report as a name2747 and name is not provided2748 when CVE identifier exists2749 combines identifier with location to create name2750 when CWE identifier exists2751 combines identifier with location to create name2752 when neither CVE nor CWE identifier exist2753 combines identifier with location to create name2754 parsing finding.details2755 when details are provided2756 sets details from the report2757 when details are not provided2758 sets empty hash2759 top-level scanner2760 is the primary scanner2761 returns nil report has no scanner2762 parsing scanners2763 when vendor is not missing in scanner2764 returns scanner with parsed vendor value2765 parsing scan2766 returns scan object for each finding2767 returns nil when scan is not a hash2768 parsing schema version2769 parses the version2770 returns nil when there is no version2771 parsing analyzer2772 associates analyzer with report2773 returns nil when analyzer data is not available2774 parsing flags2775 returns flags object for each finding2776 parsing links2777 returns links object for each finding2778 parsing evidence2779 returns evidence object for each finding2780 setting the uuid2781 sets the UUIDv5 for findings2782 parsing tracking2783 with valid tracking information2784 creates signatures for each algorithm2785 with invalid tracking information2786 ignores invalid algorithm types2787 with valid tracking information2788 creates signatures for each signature algorithm2789 sets the uuid according to the higest priority signature2790 vulnerability_finding_signatures_enabled: false2791 schema validation2792 when the validate flag is set to `false`2793 instantiates the validator with correct params2794 when the report data is not valid according to the schema2795 adds warnings to the report2796 keeps the execution flow as normal2797 when the report data is valid according to the schema2798 does not add errors to the report2799 does not add warnings to the report2800 keeps the execution flow as normal2801 when the validate flag is set to `true`2802 instantiates the validator with correct params2803 when the report data is not valid according to the schema2804 adds errors to the report2805 does not try to create report entities2806 when the report data is valid according to the schema2807 does not add errors to the report2808 does not add warnings to the report2809 keeps the execution flow as normal2810 report parsing2811 parsing finding.name2812 when message is provided2813 sets message from the report as a finding name2814 when message is not provided2815 and name is provided2816 sets name from the report as a name2817 and name is not provided2818 when CVE identifier exists2819 combines identifier with location to create name2820 when CWE identifier exists2821 combines identifier with location to create name2822 when neither CVE nor CWE identifier exist2823 combines identifier with location to create name2824 parsing finding.details2825 when details are provided2826 sets details from the report2827 when details are not provided2828 sets empty hash2829 top-level scanner2830 is the primary scanner2831 returns nil report has no scanner2832 parsing scanners2833 when vendor is not missing in scanner2834 returns scanner with parsed vendor value2835 parsing scan2836 returns scan object for each finding2837 returns nil when scan is not a hash2838 parsing schema version2839 parses the version2840 returns nil when there is no version2841 parsing analyzer2842 associates analyzer with report2843 returns nil when analyzer data is not available2844 parsing flags2845 returns flags object for each finding2846 parsing links2847 returns links object for each finding2848 parsing evidence2849 returns evidence object for each finding2850 setting the uuid2851 sets the UUIDv5 for findings2852 parsing tracking2853 with valid tracking information2854 creates signatures for each algorithm2855 with invalid tracking information2856 ignores invalid algorithm types2857 with valid tracking information2858 creates signatures for each signature algorithm2859 sets the uuid according to the higest priority signature2860NotesFinder2861 #execute2862 finds notes on merge requests2863 finds notes on snippets2864 excludes notes on commits the author can't download2865 succeeds when no notes found2866 when notes filter is present2867 returns only user notes when using only_comments filter2868 returns only system notes when using only_activity filters2869 gets all notes2870 on restricted projects2871 publicly excludes notes on merge requests2872 publicly excludes notes on issues2873 publicly excludes notes on snippets2874 for target type2875 finds only notes for the selected type2876 for target2877 finds all notes2878 finds notes on merge requests2879 finds notes on snippets2880 finds notes on personal snippets2881 raises an exception for an invalid target_type2882 filters out old notes2883 confidential issue notes2884 returns notes if user can see the issue2885 raises an error if user can not see the issue2886 raises an error for project members with guest role2887 for explicit target2888 returns the expected notes2889 returns the expected notes when last_fetched_at is given2890 fails when nil is provided2891 sorting2892 allows sorting2893 defaults to sort by .fresh2894 .search2895 returns notes with matching content2896 returns notes with matching content regardless of the casing2897 returns commit notes user can access2898 confidential issues2899 returns notes with matching content if user can see the issue2900 does not return notes with matching content if user can not see the issue2901 does not return notes with matching content for project members with guest role2902 does not return notes with matching content for unauthenticated users2903 inlines SQL filters on subqueries for performance2904 project_id check2905 search filter2906 #target2907 for a issue target2908 returns the issue2909 for a merge request target2910 returns the merge_request2911 for a snippet target2912 returns the snippet2913 for a commit target2914 returns the commit2915 target_iid2916 finds issues by iid2917 finds merge requests by iid2918 returns nil if both target_id and target_iid are not given2919 prioritizes target_id over target_iid2920Gitlab::Ci::Status::Pipeline::Factory2921 when pipeline has a core status2922 when core status is created2923 matches correct core status for created2924 does not match extended statuses2925 fabricates a core status created2926 extends core status with common pipeline methods2927 when core status is waiting_for_resource2928 matches correct core status for waiting_for_resource2929 does not match extended statuses2930 fabricates a core status waiting_for_resource2931 extends core status with common pipeline methods2932 when core status is preparing2933 matches correct core status for preparing2934 does not match extended statuses2935 fabricates a core status preparing2936 extends core status with common pipeline methods2937 when core status is pending2938 matches correct core status for pending2939 does not match extended statuses2940 fabricates a core status pending2941 extends core status with common pipeline methods2942 when core status is running2943 matches correct core status for running2944 does not match extended statuses2945 fabricates a core status running2946 extends core status with common pipeline methods2947 when core status is success2948 matches correct core status for success2949 does not match extended statuses2950 fabricates a core status success2951 extends core status with common pipeline methods2952 when core status is failed2953 matches correct core status for failed2954 does not match extended statuses2955 fabricates a core status failed2956 extends core status with common pipeline methods2957 when core status is canceled2958 matches correct core status for canceled2959 does not match extended statuses2960 fabricates a core status canceled2961 extends core status with common pipeline methods2962 when core status is skipped2963 matches correct core status for skipped2964 does not match extended statuses2965 fabricates a core status skipped2966 extends core status with common pipeline methods2967 when core status is manual2968 matches manual core status2969 matches a correct extended statuses2970 extends core status with common pipeline methods2971 when core status is scheduled2972 matches scheduled core status2973 matches a correct extended statuses2974 extends core status with common pipeline methods2975 when pipeline has warnings2976 matches correct core status2977 matches correct extended statuses2978 fabricates extended "success with warnings" status2979 extends core status with common pipeline method2980Resolvers::IssuesResolver2981 is expected to have nullable GraphQL type IssueConnection2982 increases field complexity based on arguments2983 with a project2984 #resolve2985 finds all issues2986 filters by state2987 filters by milestone2988 filters by two assignees2989 filters by assignee_id2990 filters by any assignee2991 filters by no assignee2992 filters by author2993 filters by labels2994 returns issues user can see2995 finds a specific issue with iid2996 batches queries that only include IIDs2997 finds a specific issue with iids2998 finds multiple issues with iids2999 finds only the issues within the project we are looking at3000 filtering by milestone wildcard id3001 returns issues with started milestone3002 returns issues with upcoming milestone3003 returns issues with any milestone3004 returns issues with no milestone3005 generates a mutually exclusive filter error when wildcard and title are provided3006 negated filtering3007 returns issues matching the searched title after applying a negated filter3008 returns issues excluding the ones with started milestone3009 returns issues excluding the ones with upcoming milestone3010 generates a mutually exclusive filter error when wildcard and title are provided as negated filters3011 filter by release3012 filter by release_tag3013 returns all issues associated with the specified tags3014 when release_tag_wildcard_id is also provided3015 generates a mutually eclusive argument error3016 filter by negated release_tag3017 returns all issues not associated with the specified tags3018 filter by release_tag_wildcard_id3019 when filtering by ANY3020 is expected to contain exactly #<Issue id:284 group392/project576#3>, #<Issue id:285 group392/project576#4>, and #<Issue id:286 group392/project576#5>3021 when filtering by NONE3022 is expected to contain exactly #<Issue id:273 group392/project576#1> and #<Issue id:274 group392/project576#2>3023 filters by assignee_username3024 filters by assignee_username3025 filters by assignee_usernames3026 when both assignee_username and assignee_usernames are provided3027 generates a mutually exclusive filter error3028 filters by created_at3029 filters by created_before3030 filters by created_after3031 filters by updated_at3032 filters by updated_before3033 filters by updated_after3034 filters by closed_at3035 filters by closed_before3036 filters by closed_after3037 filters by issue_type3038 filters by a single type3039 filters by a single type, negative assertion3040 filters by more than one type3041 ignores the filter if none given3042 filtering by reaction emoji3043 filters by reaction emoji3044 filters by reaction emoji wildcard "none"3045 filters by reaction emoji wildcard "any"3046 filters by negated reaction emoji3047 confidential issues3048 when user is allowed to view confidential issues3049 returns all viewable issues by default3050 returns only the non-confidential issues for the project when filter is set to false3051 returns only the confidential issues for the project when filter is set to true3052 when user is not allowed to see confidential issues3053 returns all viewable issues by default3054 does not return the confidential issues when filter is set to false3055 does not return the confidential issues when filter is set to true3056 when searching issues3057 returns correct issues3058 uses project search optimization3059 with anonymous user3060 with disable_anonymous_search enabled3061 generates an error3062 with disable_anonymous_search disabled3063 returns correct issues3064 filters by negated params3065 returns issues without the specified iids3066 returns issues without the specified label names3067 returns issues without the specified milestone3068 returns issues without the specified assignee_usernames3069 returns issues without the specified assignee_id3070 returns issues without the specified issue_type3071 when filtering by negated author3072 returns issues without the specified author_username3073 filtering by crm3074 contact3075 returns only the issues for the contact3076 organization3077 returns only the issues for the contact3078 sorting3079 when sorting by created3080 sorts issues ascending3081 sorts issues descending3082 when sorting by closed at3083 sorts issues ascending3084 sorts issues descending3085 when sorting by due date3086 sorts issues ascending3087 sorts issues descending3088 when sorting by relative position3089 sorts issues ascending3090 when sorting by priority3091 sorts issues ascending3092 sorts issues descending3093 when sorting by label priority3094 sorts issues ascending3095 sorts issues descending3096 when sorting by milestone due date3097 sorts issues ascending3098 sorts issues descending3099 when sorting by severity3100 sorts issues ascending3101 sorts issues descending3102 when sorting by popularity3103 sorts issues ascending (ties broken by id in desc order)3104 sorts issues descending (ties broken by id in desc order)3105 when sorting by escalation status3106 sorts issues ascending3107 sorts issues descending3108 sorts issues created_at3109 when sorting with non-stable cursors3110 uses offset-pagination when sorting by priority_asc3111 uses offset-pagination when sorting by priority_desc3112 uses offset-pagination when sorting by popularity_asc3113 uses offset-pagination when sorting by popularity_desc3114 uses offset-pagination when sorting by label_priority_asc3115 uses offset-pagination when sorting by label_priority_desc3116 uses offset-pagination when sorting by milestone_due_asc3117 uses offset-pagination when sorting by milestone_due_desc3118 uses offset-pagination when sorting by escalation_status_asc3119 uses offset-pagination when sorting by escalation_status_desc3120 when sorting by title3121 sorts issues ascending3122 sorts issues descending3123 when passing a non existent, batch loaded project3124 returns nil without breaking3125NamespacesHelper3126 #namespaces_as_json3127 returns the user's groups3128 returns the user's namespace3129 #namespaces_options3130 returns only allowed namespaces for user3131 avoids duplicate groups when extra_group is used3132 selects the new group by default3133 falls back to current user selection3134 returns only groups if groups_only option is true3135 when admin mode is enabled3136 returns groups without being a member for admin3137 when admin mode is disabled3138 returns only allowed namespaces for admin3139 when admin mode is disabled3140 selects existing group3141 when nested groups are available3142 includes groups nested in groups the user can administer3143 orders the groups correctly3144 #cascading_namespace_settings_popover_data3145 when locked by an application setting3146 returns expected hash3147 when locked by an ancestor namespace3148 returns expected hash3149 #cascading_namespace_setting_locked?3150 when `group` argument is `nil`3151 returns `false`3152 when `*_locked?` method does not exist3153 returns `false`3154 when `*_locked?` method does exist3155 calls corresponding `*_locked?` method3156 #pipeline_usage_app_data3157 returns a hash with necessary data for the frontend3158Avatarable3159 #update3160 when avatar changed3161 validates the file size3162 when avatar was not changed3163 skips validation of file size3164 #avatar_path3165 with caching enabled3166 only calls local_url once3167 calls local_url twice for path and URLs3168 calls local_url twice for different sizes3169 handles unpersisted objects3170 has_asset_host: true, visibility_level: 0, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3171 returns the expected avatar path3172 returns the expected avatar path with width parameter3173 when avatar is stored remotely3174 returns the expected avatar path3175 has_asset_host: true, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3176 returns the expected avatar path3177 returns the expected avatar path with width parameter3178 when avatar is stored remotely3179 returns the expected avatar path3180 has_asset_host: true, visibility_level: 10, only_path: true, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3181 returns the expected avatar path3182 returns the expected avatar path with width parameter3183 when avatar is stored remotely3184 returns the expected avatar path3185 has_asset_host: true, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3186 returns the expected avatar path3187 returns the expected avatar path with width parameter3188 when avatar is stored remotely3189 returns the expected avatar path3190 has_asset_host: true, visibility_level: 20, only_path: true, avatar_path_prefix: []3191 returns the expected avatar path3192 returns the expected avatar path with width parameter3193 when avatar is stored remotely3194 returns the expected avatar path3195 has_asset_host: true, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab-assets.example.com"]3196 returns the expected avatar path3197 returns the expected avatar path with width parameter3198 when avatar is stored remotely3199 returns the expected avatar path3200 has_asset_host: false, visibility_level: 0, only_path: true, avatar_path_prefix: ["/gitlab"]3201 returns the expected avatar path3202 returns the expected avatar path with width parameter3203 when avatar is stored remotely3204 returns the expected avatar path3205 has_asset_host: false, visibility_level: 0, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3206 returns the expected avatar path3207 returns the expected avatar path with width parameter3208 when avatar is stored remotely3209 returns the expected avatar path3210 has_asset_host: false, visibility_level: 10, only_path: true, avatar_path_prefix: ["/gitlab"]3211 returns the expected avatar path3212 returns the expected avatar path with width parameter3213 when avatar is stored remotely3214 returns the expected avatar path3215 has_asset_host: false, visibility_level: 10, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3216 returns the expected avatar path3217 returns the expected avatar path with width parameter3218 when avatar is stored remotely3219 returns the expected avatar path3220 has_asset_host: false, visibility_level: 20, only_path: true, avatar_path_prefix: ["/gitlab"]3221 returns the expected avatar path3222 returns the expected avatar path with width parameter3223 when avatar is stored remotely3224 returns the expected avatar path3225 has_asset_host: false, visibility_level: 20, only_path: false, avatar_path_prefix: ["https://gitlab.example.com", "/gitlab"]3226 returns the expected avatar path3227 returns the expected avatar path with width parameter3228 when avatar is stored remotely3229 returns the expected avatar path3230Snippets::CreateService3231 #execute3232 when ProjectSnippet3233 behaves like a service that creates a snippet3234 creates a snippet with the provided attributes3235 behaves like public visibility level restrictions apply3236 when user is not an admin3237 responds with an error3238 does not create a public snippet3239 when user is an admin3240 responds with success3241 creates a public snippet3242 when visibility level is passed as a string3243 assigns the correct visibility level3244 behaves like checking spam3245 executes SpamActionService3246 behaves like snippet create data is tracked3247 increments count when create succeeds3248 when create fails3249 does not increment count3250 behaves like an error service response when save fails3251 responds with an error3252 does not create the snippet3253 behaves like creates repository and files3254 creates repository3255 commits the files to the repository3256 when repository creation action fails3257 does not create the snippet3258 returns a generic creation error3259 does not return a snippet with an id3260 when repository creation fails with invalid file name3261 returns an appropriate error3262 when the commit action fails3263 does not create the snippet3264 destroys the created repository3265 destroys the snippet_repository3266 logs the error3267 returns a generic error3268 when snippet creation fails3269 does not create repository3270 behaves like after_save callback to store_mentions3271 when mentionable attributes change3272 saves mentions3273 when mentionable attributes do not change3274 does not call store_mentions3275 when save fails3276 does not call store_mentions3277 behaves like when snippet_actions param is present3278 creates a snippet with the provided attributes3279 commit the files to the repository3280 when content or file_name params are present3281 a validation error is raised3282 when snippet_actions param is invalid3283 a validation error is raised3284 when snippet_actions contain an action different from "create"3285 a validation error is raised3286 when "create" operation does not have file_path or is empty3287 generates the file path for the files3288 behaves like invalid params error response3289 responds to errors appropriately3290 when uploaded files are passed to the service3291 does not move uploaded files to the snippet3292 when PersonalSnippet3293 behaves like a service that creates a snippet3294 creates a snippet with the provided attributes3295 behaves like public visibility level restrictions apply3296 when user is not an admin3297 responds with an error3298 does not create a public snippet3299 when user is an admin3300 responds with success3301 creates a public snippet3302 when visibility level is passed as a string3303 assigns the correct visibility level3304 behaves like checking spam3305 executes SpamActionService3306 behaves like snippet create data is tracked3307 increments count when create succeeds3308 when create fails3309 does not increment count3310 behaves like an error service response when save fails3311 responds with an error3312 does not create the snippet3313 behaves like creates repository and files3314 creates repository3315 commits the files to the repository3316 when repository creation action fails3317 does not create the snippet3318 returns a generic creation error3319 does not return a snippet with an id3320 when repository creation fails with invalid file name3321 returns an appropriate error3322 when the commit action fails3323 does not create the snippet3324 destroys the created repository3325 destroys the snippet_repository3326 logs the error3327 returns a generic error3328 when snippet creation fails3329 does not create repository3330 behaves like after_save callback to store_mentions3331 when mentionable attributes change3332 saves mentions3333 when mentionable attributes do not change3334 does not call store_mentions3335 when save fails3336 does not call store_mentions3337 behaves like when snippet_actions param is present3338 creates a snippet with the provided attributes3339 commit the files to the repository3340 when content or file_name params are present3341 a validation error is raised3342 when snippet_actions param is invalid3343 a validation error is raised3344 when snippet_actions contain an action different from "create"3345 a validation error is raised3346 when "create" operation does not have file_path or is empty3347 generates the file path for the files3348 behaves like invalid params error response3349 responds to errors appropriately3350 when the snippet description contains files3351 stores the snippet description correctly3352 when there is a validation error3353 does not move uploaded files to the snippet3354NotificationRecipient3355 #notifiable?3356 when emails are disabled3357 returns false if group disabled3358 returns false if project disabled3359 when emails are enabled3360 returns true if group enabled3361 returns true if project enabled3362 #has_access?3363 user cannot read cross project3364 returns false3365 user cannot read build3366 returns false3367 user cannot read commit3368 returns false3369 target has no policy3370 returns true3371 #notification_setting3372 for child groups3373 when notification setting is global3374 considers notification setting from the first parent without global setting3375 when notification setting is not global3376 considers notification setting from lowest group member in hierarchy3377 #suitable_notification_level?3378 when notification level is mention3379 when type is mention3380 returns true3381 when type is not mention3382 returns false3383 when notification level is participating3384 when type is participating3385 returns true3386 when type is mention3387 returns true3388 with custom action3389 when action is failed_pipeline3390 returns true3391 when action is fixed_pipeline3392 returns true3393 when action is not fixed_pipeline or failed_pipeline3394 returns false3395 when notification level is custom3396 when type is participating3397 with custom event enabled3398 returns true3399 without custom event enabled3400 returns true3401 when type is mention3402 with custom event enabled3403 returns true3404 without custom event enabled3405 returns true3406 when type is watch3407 with custom event enabled3408 returns true3409 without custom event enabled3410 returns false3411 when custom_action is fixed_pipeline and success_pipeline event is enabled3412 returns true3413 with merge_when_pipeline_succeeds3414 custom event enabled3415 returns true3416 custom event disabled3417 returns false3418 when notification level is watch3419 when type is watch3420 without excluded watcher events3421 returns true3422 with excluded watcher events3423 returns false3424 when type is not watch3425 without excluded watcher events3426 returns true3427 with excluded watcher events3428 returns true3429Projects::ImportExport::ExportService3430 #execute3431 saves the version3432 saves the avatar3433 saves the models3434 saves the uploads3435 saves the repo (PENDING: No reason given)3436 saves the wiki repo3437 saves the design repo3438 saves the lfs objects3439 saves the snippets3440 when all saver services succeed3441 saves the project in the file system3442 calls the after export strategy3443 when the upload fails3444 notifies the user of an error3445 when after export strategy fails3446 removes the remaining exported data3447 notifies the user3448 notifies logger3449 when saving services fail3450 removes the remaining exported data3451 notifies the user3452 notifies logger3453 does not call the export strategy3454 when one of the savers fail unexpectedly3455 removes the remaining exported data3456 when user does not have admin_project permission3457 fails3458 behaves like measurable service3459 when measurement is enabled3460 measure service execution with Gitlab::Utils::Measuring3461 when measurement is disabled3462 does not measure service execution3463ProjectFeature3464 is expected to belong to project required: false3465 allows public access level for :pages feature3466 PRIVATE_FEATURES_MIN_ACCESS_LEVEL_FOR_PRIVATE_PROJECT3467 has higher level than that of PRIVATE_FEATURES_MIN_ACCESS_LEVEL3468 repository related features3469 does not allow repository related features have higher level3470 behaves like access level validation3471 does not allow public access level for issues3472 does not allow public access level for forking3473 does not allow public access level for merge_requests3474 does not allow public access level for wiki3475 does not allow public access level for snippets3476 does not allow public access level for builds3477 does not allow public access level for repository3478 does not allow public access level for metrics_dashboard3479 does not allow public access level for analytics3480 does not allow public access level for operations3481 does not allow public access level for security_and_compliance3482 does not allow public access level for container_registry3483 default pages access level3484 when new project is private3485 is expected to eq 103486 when new project is internal3487 is expected to eq 103488 when new project is public3489 is expected to eq 203490 when access control is forced on the admin level3491 is expected to eq 103492 #public_pages?3493 returns true if Pages access control is not enabled3494 when Pages access control is enabled3495 project_visibility: :private, pages_access_level: 30, result: true3496 properly handles project and Pages visibility settings3497 returns false if access_control is forced on the admin level3498 project_visibility: :internal, pages_access_level: 30, result: true3499 properly handles project and Pages visibility settings3500 returns false if access_control is forced on the admin level3501 project_visibility: :internal, pages_access_level: 20, result: false3502 properly handles project and Pages visibility settings3503 returns false if access_control is forced on the admin level3504 project_visibility: :public, pages_access_level: 20, result: true3505 properly handles project and Pages visibility settings3506 returns false if access_control is forced on the admin level3507 project_visibility: :private, pages_access_level: 10, result: false3508 properly handles project and Pages visibility settings3509 returns false if access_control is forced on the admin level3510 project_visibility: :public, pages_access_level: 10, result: false3511 properly handles project and Pages visibility settings3512 returns false if access_control is forced on the admin level3513 #private_pages?3514 returns false if public_pages? is true3515 returns true if public_pages? is false3516 .required_minimum_access_level3517 handles reporter level3518 handles guest level3519 accepts ActiveModel3520 accepts string3521 handles repository3522 handles package registry3523 raises error if feature is invalid3524 .required_minimum_access_level_for_private_project3525 returns higher permission for repository3526 returns normal permission for issues3527 container_registry_access_level3528 with default value3529 when the default is false3530 creates project_feature with `disabled` container_registry_access_level3531 when the default is true3532 creates project_feature with `enabled` container_registry_access_level3533 when the default is nil3534 creates project_feature with `disabled` container_registry_access_level3535 test build factory3536 private3537 is expected to eq 103538 enabled3539 is expected to eq 203540 disabled3541 is expected to eq 03542 package_registry_access_level3543 with default value3544 config_packages_enabled: false, expected_result: 03545 creates project_feature with correct package_registry_access_level3546 config_packages_enabled: true, expected_result: 203547 creates project_feature with correct package_registry_access_level3548 config_packages_enabled: nil, expected_result: 03549 creates project_feature with correct package_registry_access_level3550 sync packages_enabled3551 initial_value: 0, new_value: 0, expected_result: false3552 set correct value3553 initial_value: 0, new_value: 20, expected_result: true3554 set correct value3555 initial_value: 0, new_value: 30, expected_result: true3556 set correct value3557 initial_value: 20, new_value: 0, expected_result: false3558 set correct value3559 initial_value: 20, new_value: 20, expected_result: true3560 set correct value3561 initial_value: 20, new_value: 30, expected_result: true3562 set correct value3563 initial_value: 30, new_value: 0, expected_result: false3564 set correct value3565 initial_value: 30, new_value: 20, expected_result: true3566 set correct value3567 initial_value: 30, new_value: 30, expected_result: true3568 set correct value3569 #feature_available?3570 when features are disabled3571 returns false3572 when features are enabled only for team members3573 returns false when user is not a team member3574 returns true when user is a team member3575 returns true when user is a member of project group3576 when admin mode is enabled3577 returns true if user is an admin3578 when admin mode is disabled3579 returns false when user is an admin3580 when feature is enabled for everyone3581 returns true3582 when feature has any other value3583 returns true3584Gitlab::Ci::Parsers::Coverage::SaxDocument3585 #parse!3586 when data is Cobertura style XML3587 when there is no <sources>3588 behaves like ignoring sources, project_path, and worktree_paths3589 when there is no <class>3590 parses XML and returns empty coverage3591 when there is a single <class>3592 with no lines3593 parses XML and returns empty coverage3594 with a single line3595 parses XML and returns a single file with coverage3596 without a package parent3597 parses XML and returns a single file with coverage3598 with multiple lines and methods info3599 parses XML and returns a single file with coverage3600 when there are multiple packages3601 parses XML and returns coverage information per class3602 when there are multiple <class>3603 without a package parent3604 parses XML and returns coverage information per class3605 with the same filename and different lines3606 parses XML and returns a single file with merged coverage3607 with the same filename and lines3608 parses XML and returns a single file with summed-up coverage3609 with missing filename3610 parses XML and ignores class with missing name3611 with invalid line information3612 raises an error3613 when there is an empty <sources>3614 behaves like ignoring sources, project_path, and worktree_paths3615 when there is no <class>3616 parses XML and returns empty coverage3617 when there is a single <class>3618 with no lines3619 parses XML and returns empty coverage3620 with a single line3621 parses XML and returns a single file with coverage3622 without a package parent3623 parses XML and returns a single file with coverage3624 with multiple lines and methods info3625 parses XML and returns a single file with coverage3626 when there are multiple packages3627 parses XML and returns coverage information per class3628 when there are multiple <class>3629 without a package parent3630 parses XML and returns coverage information per class3631 with the same filename and different lines3632 parses XML and returns a single file with merged coverage3633 with the same filename and lines3634 parses XML and returns a single file with summed-up coverage3635 with missing filename3636 parses XML and ignores class with missing name3637 with invalid line information3638 raises an error3639 when there is a <sources>3640 and has a single source with a pattern for Go projects3641 behaves like ignoring sources, project_path, and worktree_paths3642 when there is no <class>3643 parses XML and returns empty coverage3644 when there is a single <class>3645 with no lines3646 parses XML and returns empty coverage3647 with a single line3648 parses XML and returns a single file with coverage3649 without a package parent3650 parses XML and returns a single file with coverage3651 with multiple lines and methods info3652 parses XML and returns a single file with coverage3653 when there are multiple packages3654 parses XML and returns coverage information per class3655 when there are multiple <class>3656 without a package parent3657 parses XML and returns coverage information per class3658 with the same filename and different lines3659 parses XML and returns a single file with merged coverage3660 with the same filename and lines3661 parses XML and returns a single file with summed-up coverage3662 with missing filename3663 parses XML and ignores class with missing name3664 with invalid line information3665 raises an error3666 and has multiple sources with a pattern for Go projects3667 behaves like ignoring sources, project_path, and worktree_paths3668 when there is no <class>3669 parses XML and returns empty coverage3670 when there is a single <class>3671 with no lines3672 parses XML and returns empty coverage3673 with a single line3674 parses XML and returns a single file with coverage3675 without a package parent3676 parses XML and returns a single file with coverage3677 with multiple lines and methods info3678 parses XML and returns a single file with coverage3679 when there are multiple packages3680 parses XML and returns coverage information per class3681 when there are multiple <class>3682 without a package parent3683 parses XML and returns coverage information per class3684 with the same filename and different lines3685 parses XML and returns a single file with merged coverage3686 with the same filename and lines3687 parses XML and returns a single file with summed-up coverage3688 with missing filename3689 parses XML and ignores class with missing name3690 with invalid line information3691 raises an error3692 and has a single source but already is at the project root path3693 behaves like ignoring sources, project_path, and worktree_paths3694 when there is no <class>3695 parses XML and returns empty coverage3696 when there is a single <class>3697 with no lines3698 parses XML and returns empty coverage3699 with a single line3700 parses XML and returns a single file with coverage3701 without a package parent3702 parses XML and returns a single file with coverage3703 with multiple lines and methods info3704 parses XML and returns a single file with coverage3705 when there are multiple packages3706 parses XML and returns coverage information per class3707 when there are multiple <class>3708 without a package parent3709 parses XML and returns coverage information per class3710 with the same filename and different lines3711 parses XML and returns a single file with merged coverage3712 with the same filename and lines3713 parses XML and returns a single file with summed-up coverage3714 with missing filename3715 parses XML and ignores class with missing name3716 with invalid line information3717 raises an error3718 and has multiple sources but already are at the project root path3719 behaves like ignoring sources, project_path, and worktree_paths3720 when there is no <class>3721 parses XML and returns empty coverage3722 when there is a single <class>3723 with no lines3724 parses XML and returns empty coverage3725 with a single line3726 parses XML and returns a single file with coverage3727 without a package parent3728 parses XML and returns a single file with coverage3729 with multiple lines and methods info3730 parses XML and returns a single file with coverage3731 when there are multiple packages3732 parses XML and returns coverage information per class3733 when there are multiple <class>3734 without a package parent3735 parses XML and returns coverage information per class3736 with the same filename and different lines3737 parses XML and returns a single file with merged coverage3738 with the same filename and lines3739 parses XML and returns a single file with summed-up coverage3740 with missing filename3741 parses XML and ignores class with missing name3742 with invalid line information3743 raises an error3744 and has a single source that is not at the project root path3745 when there is no <class>3746 parses XML and returns empty coverage3747 when there is a single <class>3748 with no lines3749 parses XML and returns empty coverage3750 with a single line but the filename cannot be determined based on extracted source and worktree paths3751 parses XML and returns empty coverage3752 with a single line3753 parses XML and returns a single file with the filename relative to project root3754 with multiple lines and methods info3755 parses XML and returns a single file with the filename relative to project root3756 when there are multiple <class>3757 with the same filename but the filename cannot be determined based on extracted source and worktree paths3758 parses XML and returns empty coverage3759 without a parent package3760 parses XML and returns coverage information with the filename relative to project root3761 with the same filename and different lines3762 parses XML and returns a single file with merged coverage, and with the filename relative to project root3763 with the same filename and lines3764 parses XML and returns a single file with summed-up coverage, and with the filename relative to project root3765 with missing filename3766 parses XML and ignores class with missing name3767 with filename that cannot be determined based on extracted source and worktree paths3768 parses XML and ignores class with undetermined filename3769 with invalid line information3770 raises an error3771 and has multiple sources that are not at the project root path3772 and a class filename is available under multiple extracted sources3773 parses XML and returns the files with the filename relative to project root3774 and a class filename is available under one of the extracted sources3775 parses XML and returns a single file with the filename relative to project root using the extracted source where it is first found under3776 and a class filename is not found under any of the extracted sources3777 parses XML and returns empty coverage3778 and a class filename is not found under any of the extracted sources within the iteratable limit3779 parses XML and returns empty coverage3780 when project_path is not present3781 behaves like non-smart parsing3782 parses XML and returns filenames unchanged just as how they are found in the class node3783 when worktree_paths is not present3784 behaves like non-smart parsing3785 parses XML and returns filenames unchanged just as how they are found in the class node3786 when data is not Cobertura style XML3787 raises an error3788Operations::FeatureFlags::UserList3789 validations3790 is expected to validate that :project cannot be empty/falsy3791 is expected to validate that :name cannot be empty/falsy3792 is expected to validate that :name is case-sensitively unique within the scope of :project_id3793 is expected to validate that the length of :name is between 1 and 2553794 user_xids3795 valid_value: ""3796 is valid with a string of comma separated values3797 valid_value: "sam"3798 is valid with a string of comma separated values3799 valid_value: "1"3800 is valid with a string of comma separated values3801 valid_value: "a"3802 is valid with a string of comma separated values3803 valid_value: "uuid-of-some-kind"3804 is valid with a string of comma separated values3805 valid_value: "sam,fred,tom,jane,joe,mike"3806 is valid with a string of comma separated values3807 valid_value: "gitlab@example.com"3808 is valid with a string of comma separated values3809 valid_value: "123,4"3810 is valid with a string of comma separated values3811 valid_value: "UPPER,Case,charActeRS"3812 is valid with a string of comma separated values3813 valid_value: "0"3814 is valid with a string of comma separated values3815 valid_value: "$valid$email#2345\#$%..{}+=-)?\\/@example.com"3816 is valid with a string of comma separated values3817 valid_value: "spaces allowed"3818 is valid with a string of comma separated values3819 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"3820 is valid with a string of comma separated values3821 valid_value: "a,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccc"3822 is valid with a string of comma separated values3823 valid_value: "many spaces"3824 is valid with a string of comma separated values3825 typecast_value: 13826 automatically casts values of other types3827 typecast_value: 2.53828 automatically casts values of other types3829 typecast_value: {}3830 automatically casts values of other types3831 typecast_value: []3832 automatically casts values of other types3833 invalid_value: nil3834 is invalid3835 invalid_value: "123\n456"3836 is invalid3837 invalid_value: "1,2,3,12\t3"3838 is invalid3839 invalid_value: "\n"3840 is invalid3841 invalid_value: "\n\r"3842 is invalid3843 invalid_value: "joe\r,sam"3844 is invalid3845 invalid_value: "1,2,2"3846 is invalid3847 invalid_value: "1,,2"3848 is invalid3849 invalid_value: "1,2,,,,"3850 is invalid3851 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"3852 is invalid3853 invalid_value: "1, ,2"3854 is invalid3855 invalid_value: "tim, ,7"3856 is invalid3857 invalid_value: " "3858 is invalid3859 invalid_value: " "3860 is invalid3861 invalid_value: " ,1"3862 is invalid3863 invalid_value: "1, "3864 is invalid3865 invalid_value: " leading,1"3866 is invalid3867 invalid_value: "1,trailing "3868 is invalid3869 invalid_value: "1, both ,2"3870 is invalid3871 url_helpers3872 generates paths based on the internal id3873 #destroy3874 deletes the model if it is not associated with any feature flag strategies3875 does not delete the model if it is associated with a feature flag strategy3876 .for_name_like3877 returns a found name3878 returns an empty array when no lists match the query3879 behaves like AtomicInternalId3880 .has_internal_id3881 Module inclusion3882 is expected to includes the AtomicInternalId module3883 Validation3884 when presence validation is required3885 when creating an object3886 raises an error if the internal id is blank3887 when updating an object3888 raises an error if the internal id is blank3889 when presence validation is not required3890 when creating an object3891 does not raise an error if the internal id is blank (PENDING: No reason given)3892 when updating an object3893 does not raise an error if the internal id is blank (PENDING: No reason given)3894 Creating an instance3895 saves a new instance properly3896 internal id generation3897 calls InternalId.generate_next and sets internal id attribute3898 does not overwrite an existing internal id3899 when the instance has an internal ID set3900 calls InternalId.update_last_value and sets the `last_value` to that of the instance3901 unsetting the instance internal id on rollback3902 when the internal id has been changed3903 when the internal id is automatically set3904 clears it on the instance3905 when the internal id is manually set3906 does not clear it on the instance3907 when the internal id has not been changed3908 preserves the value on the instance3909 supply of internal ids3910 provides a persistent supply of IID values, sensitive to the current state3911 #reset_scope_internal_id_attribute3912 rewinds the allocated IID3913 allocates the same IID3914Packages::Debian::ProcessChangesWorker3915 #perform3916 with mocked service3917 calls ProcessChangesService3918 with non existing package file3919 returns early without error3920 with nil package file id3921 returns early without error3922 with non existing user3923 returns early without error3924 with nil user id3925 returns early without error3926 when the service raises an error3927 removes package file3928 behaves like an idempotent worker3929 is labeled as idempotent3930 performs multiple times sequentially without raising an exception3931 sets the Debian file type as changes3932Projects::BuildArtifactsSizeRefresh3933 associations3934 is expected to belong to project required: false3935 validations3936 is expected to validate that :project cannot be empty/falsy3937 scopes3938 stale3939 returns records in running state and has not been updated for more than 2 hours3940 remaining3941 returns stale, created, and pending records3942 processing_queue3943 prioritizes pending -> stale -> created3944 state machine3945 initial state3946 defaults to created3947 #process!3948 when refresh state is created3949 transitions the state to running3950 sets the refresh_started_at3951 sets last_job_artifact_id_on_refresh_start3952 bumps the updated_at3953 resets the build artifacts size stats3954 resets the counter attribute to zero3955 when refresh state is pending3956 transitions the state to running3957 bumps the updated_at3958 when refresh state is running3959 keeps the state at running3960 bumps the updated_at3961 #requeue!3962 transitions refresh state from running to pending3963 bumps updated_at3964 updates last_job_artifact_id3965 .process_next_refresh!3966 picks the first record from the remaining work3967 .enqueue_refresh3968 creates refresh records for each given project, skipping duplicates3969 #next_batch3970 returns the job artifact records that were created not later than the refresh_started_at and IDs greater than the last_job_artifact_id3971 when created_at is set before artifact id is persisted3972 returns ordered job artifacts3973 #started?3974 refresh_state: :created, result: false3975 is expected to eq false3976 refresh_state: :pending, result: true3977 is expected to eq true3978 refresh_state: :running, result: true3979 is expected to eq true3980BlobHelper3981 #sanitize_svg_data3982 retains essential elements3983 #edit_blob_button3984 does not render edit button when blob is not text3985 uses the passed blob instead retrieve from repository3986 returns a link with the proper route3987 returns a link with the passed link_opts on the expected route3988 #relative_raw_path3989 pointing from '/file.md' to '/-/raw/main/'3990 pointing from '/test/file.md' to '/-/raw/main/test/'3991 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'3992 viewer related3993 #blob_render_error_reason3994 for error :too_large3995 when the blob size is larger than the absolute size limit3996 returns an error message3997 when the blob size is larger than the size limit3998 returns an error message3999 for error :server_side_but_stored_externally4000 returns an error message4001 #blob_render_error_options4002 for error :collapsed4003 includes a "load it anyway" link4004 for error :too_large4005 does not include a "load it anyway" link4006 includes a "download it" link4007 when the viewer is rich4008 the blob is rendered as text4009 includes a "view the source" link4010 the blob is not rendered as text4011 does not include a "view the source" link4012 when the viewer is not rich4013 does not include a "view the source" link4014 for error :server_side_but_stored_externally4015 does not include a "load it anyway" link4016 does not include a "view the source" link4017 includes a "download it" link4018 #show_suggest_pipeline_creation_celebration?4019 when file is a pipeline config file4020 is true4021 file is invalid format4022 is false4023 does not use the default ci config4024 is false4025 does not have the needed cookie4026 is false4027 blob does not have auxiliary view4028 is false4029 when file is not a pipeline config file4030 is false4031 suggest_pipeline_commit_cookie_name4032 uses project id to make up the cookie name4033 #ide_edit_path4034 returns full IDE path4035 returns full IDE path with second -4036 returns IDE path without relative_url_root4037 escapes special characters4038 does not escape "/" character4039 when user is not logged in4040 returns IDE path inside the project4041 when user cannot push to the project4042 returns IDE path with the user's fork4043 #ide_merge_request_path4044 returns IDE path for the given MR if MR is not merged4045 when the MR comes from a fork4046 returns IDE path for MR in the forked repo with target project included as param4047 when the MR is merged4048 returns default IDE url with master branch4049 includes file path passed4050 when target branch exists4051 returns IDE edit url with the target branch4052 #ide_fork_and_edit_path4053 returns path to fork the repo with a redirect param to the full IDE path4054 does not include notice params with_notice: false4055 when user is not logged in4056 returns nil4057 #fork_and_edit_path4058 returns path to fork the repo with a redirect param to the full edit path4059 when user is not logged in4060 returns nil4061 #editing_ci_config?4062 when path is nil4063 is expected to be falsey4064 when path is not a ci file4065 is expected to be falsey4066 when path ends is gitlab-ci.yml4067 is expected to be truthy4068 when path ends with gitlab-ci.yml4069 is expected to be truthy4070 with custom ci paths4071 is expected to be truthy4072 with custom ci config and path4073 is expected to be truthy4074Ci::PipelinePresenter4075 inherits from Gitlab::View::Presenter::Delegated4076 #initialize4077 takes a pipeline and optional params4078 exposes pipeline4079 forwards missing methods to pipeline4080 #status_title4081 when pipeline is auto-canceled4082 shows that the pipeline is auto-canceled4083 when pipeline is not auto-canceled4084 does not have a status title4085 #failure_reason4086 when pipeline has a failure reason4087 when failure reason is unknown_failure4088 represents a failure reason sentence4089 when failure reason is config_error4090 represents a failure reason sentence4091 when failure reason is external_validation_failure4092 represents a failure reason sentence4093 when failure reason is user_not_verified4094 represents a failure reason sentence4095 when failure reason is activity_limit_exceeded4096 represents a failure reason sentence4097 when failure reason is size_limit_exceeded4098 represents a failure reason sentence4099 when failure reason is job_activity_limit_exceeded4100 represents a failure reason sentence4101 when failure reason is deployments_limit_exceeded4102 represents a failure reason sentence4103 when failure reason is project_deleted4104 represents a failure reason sentence4105 when pipeline does not have failure reason4106 returns nil4107 #name4108 for a detached merge request pipeline4109 is expected to eq "Detached merge request pipeline"4110 for a merged result pipeline4111 is expected to eq "Merged result pipeline"4112 for a merge train pipeline4113 is expected to eq "Merge train pipeline"4114 when pipeline is branch pipeline4115 is expected to eq "Pipeline"4116 #coverage4117 when pipeline has coverage4118 formats coverage into 2 decimal points4119 when pipeline does not have coverage4120 returns nil4121 #ref_text4122 when pipeline is detached merge request pipeline4123 returns a correct ref text4124 when pipeline is merge request pipeline4125 returns a correct ref text4126 when pipeline is branch pipeline4127 when ref exists in the repository4128 returns a correct ref text4129 when ref contains malicious script4130 does not include the malicious script4131 when ref does not exist in the repository4132 returns a correct ref text4133 when ref contains malicious script4134 does not include the malicious script4135 #all_related_merge_request_text4136 with zero related merge requests (branch pipeline)4137 is expected to eq "No related merge requests found."4138 with one related merge request4139 is expected to eq "1 related merge request: <a class=\"mr-iid\" href=\"/namespace626/project842/-/merge_requests/1\">!1 My title 824</a>"4140 with two related merge requests4141 is expected to eq "2 related merge requests: <a class=\"mr-iid\" href=\"/namespace627/project843/-/merge_requests/1\">!...5</a>, <a class=\"mr-iid\" href=\"/namespace626/project842/-/merge_requests/1\">!1 My title 824</a>"4142 with a limit passed4143 is expected to eq "2 related merge requests: <a class=\"mr-iid\" href=\"/namespace627/project843/-/merge_requests/1\">!1 My title 825</a>"4144 #all_related_merge_requests4145 memoizes the returned relation4146 for a branch pipeline with two open MRs4147 is expected to contain exactly #<MergeRequest id:203 namespace623/project839!1> and #<MergeRequest id:204 namespace623/project839!2>4148 permissions4149 with a private project4150 behaves like private merge requests4151 when not logged in4152 is expected to be empty4153 when logged in as a non_member4154 is expected to be empty4155 when logged in as a guest4156 is expected to be empty4157 when logged in as a developer4158 is expected to contain exactly #<MergeRequest id:205 namespace623/project839!1>4159 when logged in as a maintainer4160 is expected to contain exactly #<MergeRequest id:205 namespace623/project839!1>4161 with a public project with private merge requests4162 behaves like private merge requests4163 when not logged in4164 is expected to be empty4165 when logged in as a non_member4166 is expected to be empty4167 when logged in as a guest4168 is expected to be empty4169 when logged in as a developer4170 is expected to contain exactly #<MergeRequest id:205 namespace623/project839!1>4171 when logged in as a maintainer4172 is expected to contain exactly #<MergeRequest id:205 namespace623/project839!1>4173 with a public project with public merge requests4174 when not logged in4175 is expected to contain exactly #<MergeRequest id:205 namespace623/project839!1>4176 #link_to_merge_request4177 with a related merge request4178 returns a correct link4179 when pipeline is branch pipeline4180 is expected to be nil4181 #link_to_merge_request_source_branch4182 with a related merge request4183 returns a correct link4184 when pipeline is branch pipeline4185 is expected to be nil4186 #link_to_merge_request_target_branch4187 with a related merge request4188 returns a correct link4189 when pipeline is branch pipeline4190 is expected to be nil4191Issues::ZoomLinkService4192 #add_link4193 without existing Zoom meeting4194 when updating an issue4195 appends the new meeting to zoom_meetings4196 tracks the add event4197 creates a zoom_link_added notification4198 issue is incident type4199 behaves like an incident management tracked event4200 .track_event4201 tracks the event using redis4202 with insufficient issue update permissions4203 cannot add the meeting4204 creates no notification4205 when creating an issue4206 creates a new zoom meeting4207 with insufficient issue create permissions4208 cannot add the meeting4209 creates no notification4210 with invalid Zoom url4211 cannot add the meeting4212 creates no notification4213 with "added" Zoom meeting4214 cannot add the meeting4215 creates no notification4216 with "added" Zoom meeting and race condition4217 cannot add the meeting4218 creates no notification4219 #can_add_link?4220 without "added" zoom meeting4221 is expected to eq true4222 with insufficient issue update permissions4223 is expected to eq false4224 with Zoom meeting in the issue description4225 is expected to eq false4226 #remove_link4227 with Zoom meeting4228 with existing issue4229 creates no notification4230 can remove the meeting4231 tracks the remove event4232 without existing issue4233 cannot remove the meeting4234 creates no notification4235 with insufficient issue update permissions4236 cannot remove the meeting4237 creates no notification4238 without "added" Zoom meeting4239 cannot remove the meeting4240 creates no notification4241 #can_remove_link?4242 without Zoom meeting4243 is expected to eq false4244 with only "removed" zoom meetings4245 is expected to eq false4246 with "added" Zoom meeting4247 is expected to eq true4248 with "removed" zoom meetings4249 is expected to eq true4250 with insufficient issue update permissions4251 is expected to eq false4252 #parse_link4253 with valid Zoom links4254 description: "Some text https://zoom.us/j/123456789 more text"4255 is expected to eq "https://zoom.us/j/123456789"4256 description: "Mixed https://zoom.us/j/123456789 http://example.com"4257 is expected to eq "https://zoom.us/j/123456789"4258 description: "Multiple link https://zoom.us/my/name https://zoom.us/j/123456789"4259 is expected to eq "https://zoom.us/j/123456789"4260 with invalid Zoom links4261 description: nil4262 is expected to eq nil4263 description: ""4264 is expected to eq nil4265 description: "Text only"4266 is expected to eq nil4267 description: "Non-Zoom http://example.com"4268 is expected to eq nil4269 description: "Almost Zoom http://zoom.us"4270 is expected to eq nil4271Gitlab::Database::Transaction::Observer4272 .instrument_transactions4273 tracks transaction data4274 tracking external network requests4275 tracks external requests4276 when external HTTP requests duration has been exceeded4277 logs transaction details including exceeding thresholds4278 when external HTTP requests count has been exceeded4279 logs transaction details including exceeding thresholds4280 .extract_sql_command4281 sql: "SELECT 1", expected: "SELECT 1"4282 is expected to eq "SELECT 1"4283 sql: "/* test comment */ SELECT 1", expected: "SELECT 1"4284 is expected to eq "SELECT 1"4285 sql: "/* test comment */ ROLLBACK TO SAVEPOINT point1", expected: "ROLLBACK TO SAVEPOINT "4286 is expected to eq "ROLLBACK TO SAVEPOINT "4287 sql: "SELECT 1 /* trailing comment */", expected: "SELECT 1 /* trailing comment */"4288 is expected to eq "SELECT 1 /* trailing comment */"4289Serverless::Domain4290 .new4291 with valid arguments4292 behaves like a valid Domain4293 #uri4294 matches valid URI4295 #function_name4296 returns function_name4297 #serverless_domain_cluster4298 returns serverless_domain_cluster4299 #environment4300 returns environment4301 with invalid arguments4302 is expected not to be valid4303 with nil cluster argument4304 is expected not to be valid4305 .generate_uuid4306 has 14 characters4307 consists of only hexadecimal characters4308 uses random characters4309Pages::MigrateFromLegacyStorageService4310 #execute_with_threads4311 does not try to migrate pages if pages are not deployed4312 when pages are marked as deployed4313 when pages directory does not exist4314 counts project as errored4315 when mark_projects_as_not_deployed is set4316 counts project as migrated4317 when pages directory exists on disk4318 migrates pages projects without deployments4319 when deployed already exists for the project4320 does not try to migrate project4321 when there is work for multiple threads4322 uses multiple threads4323 #execute_for_batch4324 does not try to migrate pages if pages are not deployed4325 only tries to migrate projects with passed ids4326 when pages are marked as deployed4327 when pages directory does not exist4328 counts project as errored4329 when mark_projects_as_not_deployed is set4330 counts project as migrated4331 when pages directory exists on disk4332 migrates pages projects without deployments4333 when deployed already exists for the project4334 does not try to migrate project4335MergeRequests::ApprovalService4336 #execute4337 with invalid approval4338 does not create an approval note4339 does not mark pending todos as done4340 does not track merge request approve action4341 with valid approval4342 creates an approval note and marks pending todos as done4343 creates approve MR event4344 sends a notification when approving4345 removes attention requested state4346 tracks merge request approve action4347 with remaining approvals4348 fires an approval webhook4349 user cannot update the merge request4350 does not update approvals4351Metrics::Dashboard::AnnotationPolicy4352 rules4353 environments annotation4354 behaves like metrics dashboard annotation policy4355 when guest4356 is expected to be disallowed :read_metrics_dashboard_annotation4357 is expected to be disallowed :create_metrics_dashboard_annotation4358 is expected to be disallowed :update_metrics_dashboard_annotation4359 is expected to be disallowed :delete_metrics_dashboard_annotation4360 when reporter4361 is expected to be allowed :read_metrics_dashboard_annotation4362 is expected to be disallowed :create_metrics_dashboard_annotation4363 is expected to be disallowed :update_metrics_dashboard_annotation4364 is expected to be disallowed :delete_metrics_dashboard_annotation4365 when developer4366 is expected to be allowed :read_metrics_dashboard_annotation4367 is expected to be allowed :create_metrics_dashboard_annotation4368 is expected to be allowed :update_metrics_dashboard_annotation4369 is expected to be allowed :delete_metrics_dashboard_annotation4370 when maintainer4371 is expected to be allowed :read_metrics_dashboard_annotation4372 is expected to be allowed :create_metrics_dashboard_annotation4373 is expected to be allowed :update_metrics_dashboard_annotation4374 is expected to be allowed :delete_metrics_dashboard_annotation4375 cluster annotation4376 behaves like metrics dashboard annotation policy4377 when guest4378 is expected to be disallowed :read_metrics_dashboard_annotation4379 is expected to be disallowed :create_metrics_dashboard_annotation4380 is expected to be disallowed :update_metrics_dashboard_annotation4381 is expected to be disallowed :delete_metrics_dashboard_annotation4382 when reporter4383 is expected to be allowed :read_metrics_dashboard_annotation4384 is expected to be disallowed :create_metrics_dashboard_annotation4385 is expected to be disallowed :update_metrics_dashboard_annotation4386 is expected to be disallowed :delete_metrics_dashboard_annotation4387 when developer4388 is expected to be allowed :read_metrics_dashboard_annotation4389 is expected to be allowed :create_metrics_dashboard_annotation4390 is expected to be allowed :update_metrics_dashboard_annotation4391 is expected to be allowed :delete_metrics_dashboard_annotation4392 when maintainer4393 is expected to be allowed :read_metrics_dashboard_annotation4394 is expected to be allowed :create_metrics_dashboard_annotation4395 is expected to be allowed :update_metrics_dashboard_annotation4396 is expected to be allowed :delete_metrics_dashboard_annotation4397Packages::Maven::Metadata::CreatePluginsXmlService4398 #execute4399 with same plugins on both sides4400 behaves like returning no changes4401 returns no changes4402 with more plugins4403 in database4404 behaves like returning no changes4405 returns no changes4406 in xml4407 behaves like returning an xml with plugins from the database4408 returns an metadata versions xml with versions in the database4409 with no versions in the database4410 returns a success4411 with an incomplete metadata content4412 behaves like returning an error service response4413 returns an error service response4414 with an invalid metadata content4415 behaves like returning an error service response4416 returns an error service response4417 behaves like handling metadata content pointing to a file for the create xml service4418 with metadata content pointing to a file4419 with valid content4420 returns no changes4421 with invalid content4422 behaves like returning an error service response4423 returns an error service response4424 with no content4425 behaves like returning an error service response4426 returns an error service response4427 behaves like handling invalid parameters for create xml service4428 with no package4429 behaves like returning an error service response4430 returns an error service response4431 with no metadata content4432 behaves like returning an error service response4433 returns an error service response4434OnboardingProgress4435 associations4436 is expected to belong to namespace required: true4437 validations4438 namespace_is_root_namespace4439 when associated namespace is root4440 is expected to be valid4441 when associated namespace is not root4442 is invalid4443 scopes4444 .incomplete_actions4445 when given one action4446 is expected to eq [#<OnboardingProgress id: 1, namespace_id: 3182, created_at: "2022-07-04 07:30:26.127045899 +0000", u...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4447 when given an array of actions4448 is expected to eq [#<OnboardingProgress id: 3, namespace_id: 3184, created_at: "2022-07-04 07:30:26.525714021 +0000", u...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4449 .completed_actions4450 when given one action4451 is expected to eq [#<OnboardingProgress id: 5, namespace_id: 3186, created_at: "2022-07-04 07:30:26.929979822 +0000", u...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4452 when given an array of actions4453 is expected to eq [#<OnboardingProgress id: 8, namespace_id: 3189, created_at: "2022-07-04 07:30:27.508954988 +0000", u...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4454 .completed_actions_with_latest_in_range4455 when given one action4456 is expected to eq [#<OnboardingProgress id: 10, namespace_id: 3191, created_at: "2022-07-04 07:30:27.910868370 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4457 when given an array of actions4458 is expected to eq [#<OnboardingProgress id: 16, namespace_id: 3197, created_at: "2022-07-04 07:30:28.941233090 +0000", ...e_cluster_image_scanning_run_at: nil, secure_api_fuzzing_run_at: nil, license_scanning_run_at: nil>]4459 .onboard4460 adds a record for the namespace4461 when not given a namespace4462 does not add a record for the namespace4463 when not given a root namespace4464 does not add a record for the namespace4465 .onboarding?4466 when onboarded4467 is expected to eq true4468 when not onboarding4469 is expected to eq false4470 .register4471 for a single action4472 when the namespace was onboarded4473 registers the action for the namespace4474 does not override timestamp4475 when the action does not exist4476 does not register the action for the namespace4477 when the namespace was not onboarded4478 does not register the action for the namespace4479 for multiple actions4480 when the namespace was onboarded4481 registers the actions for the namespace4482 does not override timestamp4483 when one of the actions does not exist4484 does not register any action for the namespace4485 when the namespace was not onboarded4486 does not register the action for the namespace4487 .completed?4488 when the namespace has not yet been onboarded4489 is expected to eq false4490 when the namespace has been onboarded but not registered the action yet4491 is expected to eq false4492 when the action has been registered4493 is expected to eq true4494 .not_completed?4495 when the namespace has not yet been onboarded4496 is expected to equal false4497 when the namespace has been onboarded but not registered the action yet4498 is expected to equal true4499 when the action has been registered4500 is expected to equal false4501 .column_name4502 is expected to eq :subscription_created_at4503 #number_of_completed_actions4504 0 completed actions4505 is expected to eq 04506 1 completed action4507 is expected to eq 14508 2 completed actions4509 is expected to eq 24510BlobPresenter4511 #web_url4512 is expected to eq "http://localhost/namespace752/project931/-/blob/HEAD/files/ruby/regex.rb"4513 #web_path4514 is expected to eq "/namespace752/project931/-/blob/HEAD/files/ruby/regex.rb"4515 #edit_blob_path4516 is expected to eq "/namespace752/project931/-/edit/HEAD/files/ruby/regex.rb"4517 #raw_path4518 is expected to eq "/namespace752/project931/-/raw/HEAD/files/ruby/regex.rb"4519 #replace_path4520 is expected to eq "/namespace752/project931/-/update/HEAD/files/ruby/regex.rb"4521 #can_current_user_push_to_branch4522 is expected to eq true4523 current_user is nil4524 is expected to eq false4525 branch does not exist4526 is expected to eq false4527 #archived?4528 is expected to eq false4529 #pipeline_editor_path4530 when blob is .gitlab-ci.yml4531 is expected to eq "/namespace752/project931/-/ci/editor?branch_name=main"4532 Gitpod4533 Gitpod enabled for application and user4534 #gitpod_blob_url4535 is expected to eq "https://gitpod.io#http://localhost/namespace752/project931/-/tree/HEAD/files/ruby/regex.rb"4536 Gitpod disabled at application level4537 #gitpod_blob_url4538 is expected to eq nil4539 Gitpod disabled at user level4540 #gitpod_blob_url4541 is expected to eq nil4542 #find_file_path4543 is expected to eq "/namespace752/project931/-/find_file/HEAD"4544 #blame_path4545 is expected to eq "/namespace752/project931/-/blame/HEAD/files/ruby/regex.rb"4546 #history_path4547 is expected to eq "/namespace752/project931/-/commits/HEAD/files/ruby/regex.rb"4548 #permalink_path4549 is expected to eq "/namespace752/project931/-/blob/b83d6e391c22777fca1ed3012fce84f633d7fed0/files/ruby/regex.rb"4550 environment has been deployed4551 #environment_formatted_external_url4552 is expected to eq "some.environment"4553 #environment_external_url_for_route_map4554 is expected to eq "https://some.environment/files/ruby/regex.rb"4555 chooses the latest deployed environment for #environment_formatted_external_url and #environment_external_url_for_route_map4556 is expected to eq "another.environment"4557 is expected to eq "https://another.environment/files/ruby/regex.rb"4558 #code_owners4559 is expected to contain exactly4560 #ide_edit_path4561 is expected to eq "/-/ide/project/namespace752/project931/edit/HEAD/-/files/ruby/regex.rb"4562 #fork_and_edit_path4563 generates expected URI + query4564 current_user is nil4565 is expected to be nil4566 #ide_fork_and_edit_path4567 generates expected URI + query4568 current_user is nil4569 is expected to be nil4570 #code_navigation_path4571 is expected to eq nil4572 #project_blob_path_root4573 is expected to eq "/namespace752/project931/-/blob/HEAD"4574 given a Gitlab::Graphql::Representation::TreeEntry4575 #web_url4576 is expected to eq "http://localhost/namespace752/project931/-/blob/HEAD/files/ruby/regex.rb"4577 #web_path4578 is expected to eq "/namespace752/project931/-/blob/HEAD/files/ruby/regex.rb"4579 #highlight4580 returns highlighted content4581 returns plain content when :plain is true4582 "to" param is present4583 returns limited highlighted content4584 gitlab-language contains a match4585 passes language to inner call4586 #blob_language4587 is expected to eq "ruby"4588 gitlab-language contains a match4589 is expected to eq "cpp"4590 when blob is binary4591 is expected to be nil4592 #raw_plain_data4593 when blob is text4594 does not include html in the content4595 #plain_data4596 when blob is binary4597 returns nil4598 when blob is markup4599 returns plain content4600 when blob has syntax4601 returns highlighted syntax content4602 when blob has plain data4603 returns plain text highlighted content4604Backup::Repositories4605 #dump4606 avoids N+1 database queries4607 hashed storage4608 behaves like creates repository bundles4609 calls enqueue for each repository type4610 legacy storage4611 behaves like creates repository bundles4612 calls enqueue for each repository type4613 command failure4614 enqueue_project raises an error4615 project query raises an error4616 storages4617 calls enqueue for all repositories on the specified storage4618 paths4619 project path4620 calls enqueue for all repositories on the specified project4621 group path4622 calls enqueue for all repositories on all descendant projects4623 #restore4624 calls enqueue for each repository type4625 restoring object pools4626 schedules restoring of the pool4627 skips pools when no source project is found4628 cleanup snippets4629 shows the appropriate error4630 removes the snippets from the DB4631 removes the repository from disk4632 storages4633 calls enqueue for all repositories on the specified storage4634 paths4635 project path4636 calls enqueue for all repositories on the specified project4637 group path4638 calls enqueue for all repositories on all descendant projects4639DependencyProxy::ImageTtlGroupPolicies::UpdateService4640 #execute4641 with existing dependency proxy image ttl policy4642 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"4643 behaves like updating the dependency proxy image ttl policy4644 behaves like updating the dependency proxy image ttl policy attributes4645 updates the dependency proxy image ttl policy4646 behaves like not creating the dependency proxy image ttl policy4647 doesn't create the dependency proxy image ttl policy4648 behaves like returning a success4649 returns a success4650 with invalid params4651 doesn't update4652 behaves like not creating the dependency proxy image ttl policy4653 doesn't create the dependency proxy image ttl policy4654 behaves like returning an error4655 returns an error4656 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4657 behaves like denying access to dependency proxy image ttl policy4658 with existing dependency proxy image ttl policy4659 behaves like not creating the dependency proxy image ttl policy4660 doesn't create the dependency proxy image ttl policy4661 behaves like returning an error4662 returns an error4663 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4664 behaves like denying access to dependency proxy image ttl policy4665 with existing dependency proxy image ttl policy4666 behaves like not creating the dependency proxy image ttl policy4667 doesn't create the dependency proxy image ttl policy4668 behaves like returning an error4669 returns an error4670 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4671 behaves like denying access to dependency proxy image ttl policy4672 with existing dependency proxy image ttl policy4673 behaves like not creating the dependency proxy image ttl policy4674 doesn't create the dependency proxy image ttl policy4675 behaves like returning an error4676 returns an error4677 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4678 behaves like denying access to dependency proxy image ttl policy4679 with existing dependency proxy image ttl policy4680 behaves like not creating the dependency proxy image ttl policy4681 doesn't create the dependency proxy image ttl policy4682 behaves like returning an error4683 returns an error4684 without existing dependency proxy image ttl policy4685 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"4686 behaves like creating the dependency proxy image ttl policy4687 creates a new package setting4688 saves the settings4689 behaves like returning a success4690 returns a success4691 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4692 behaves like denying access to dependency proxy image ttl policy4693 with existing dependency proxy image ttl policy4694 behaves like not creating the dependency proxy image ttl policy4695 doesn't create the dependency proxy image ttl policy4696 behaves like returning an error4697 returns an error4698 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4699 behaves like denying access to dependency proxy image ttl policy4700 with existing dependency proxy image ttl policy4701 behaves like not creating the dependency proxy image ttl policy4702 doesn't create the dependency proxy image ttl policy4703 behaves like returning an error4704 returns an error4705 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4706 behaves like denying access to dependency proxy image ttl policy4707 with existing dependency proxy image ttl policy4708 behaves like not creating the dependency proxy image ttl policy4709 doesn't create the dependency proxy image ttl policy4710 behaves like returning an error4711 returns an error4712 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4713 behaves like denying access to dependency proxy image ttl policy4714 with existing dependency proxy image ttl policy4715 behaves like not creating the dependency proxy image ttl policy4716 doesn't create the dependency proxy image ttl policy4717 behaves like returning an error4718 returns an error4719 when the policy is not found4720 behaves like returning an error4721 returns an error4722DeclarativePolicy authorization in GraphQL4723 Field authorizations4724 with a single permission4725 returns the protected field when user has permission4726 returns nil when user is not authorized4727 with a collection of permissions4728 returns the protected field when user has all permissions4729 returns nil when user only has one of the permissions4730 returns nil when user only has the other of the permissions4731 returns nil when user has neither of the required permissions4732 Field authorizations when field is a built in type4733 with a single permission4734 returns the protected field when user has permission4735 returns nil when user is not authorized4736 with a collection of permissions4737 returns the protected field when user has all permissions4738 returns nil when user only has one of the permissions4739 returns nil when user only has none of the permissions4740 Type authorizations4741 with a single permission4742 returns the protected field when user has permission4743 returns nil when user is not authorized4744 with a collection of permissions4745 returns the protected field when user has all permissions4746 returns nil when user only has one of the permissions4747 returns nil when user only has the other of the permissions4748 returns nil when user has neither of the required permissions4749 type and field authorizations together4750 returns the protected field when user has all permissions4751 returns nil when user only has one of the permissions4752 returns nil when user only has the other of the permissions4753 returns nil when user has neither of the required permissions4754 resolver and field authorizations together4755 when the resolver authorizes the object4756 returns the protected field when user has all permissions4757 returns nil when user only has one of the permissions4758 returns nil when user only has the other of the permissions4759 returns nil when user has neither of the required permissions4760 when the resolver is a subclass of one that authorizes the object4761 returns the protected field when user has all permissions4762 returns nil when user only has one of the permissions4763 returns nil when user only has the other of the permissions4764 returns nil when user has neither of the required permissions4765 when the resolver is a subclass of one that authorizes the object, extra permission4766 when the field does not define any permissions4767 returns the protected field when user has all permissions4768 returns nil when user only has one of the permissions4769 returns nil when user only has the other of the permissions4770 returns nil when user has neither of the required permissions4771 when the resolver does not authorize the object, but instead calls authorized_find!4772 returns the protected field when user has all permissions4773 returns nil when user only has one of the permissions4774 returns nil when user only has the other of the permissions4775 returns nil when user has neither of the required permissions4776 when the resolver calls authorized_find!, but does not list any permissions4777 raises a configuration error4778 when type authorizations when applied to a relay connection4779 returns only the elements visible to the user4780 returns nil when user is not authorized4781 limiting connections with multiple objects4782 only checks permissions for the first object4783 type authorizations when applied to a basic connection4784 returns the protected field when user has permission4785 returns nil when user is not authorized4786 Authorizations on active record relations4787 renders the issues the user has access to4788 does not check access on fields that will not be rendered4789 Authorization on GraphQL::Execution::Execute::SKIP4790 skips redaction4791MergeRequestCleanupRefsWorker4792 #perform_work4793 when next cleanup schedule is found4794 marks the cleanup schedule as completed on success4795 when service fails4796 marks the cleanup schedule as unstarted and track the failure4797 and cleanup schedule has already failed 3 times4798 marks the cleanup schedule as failed and track the failure4799 when merge_request_refs_cleanup flag is disabled4800 does nothing4801 when there is no next cleanup schedule found4802 does nothing4803 #remaining_work_count4804 returns number of scheduled and unstarted cleanup schedule records4805 when count exceeds max_running_jobs4806 gets capped at max_running_jobs4807 #max_running_jobs4808 returns the value of MAX_RUNNING_JOBS4809ProjectGroupLink4810 Associations4811 is expected to belong to group required: false4812 is expected to belong to project required: false4813 Validation4814 is expected to validate that :project_id cannot be empty/falsy4815 is expected to validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure4816 is expected to validate that :group cannot be empty/falsy4817 is expected to validate that :group_access cannot be empty/falsy4818 doesn't allow a project to be shared with the group it is in4819 doesn't allow a project to be shared with an ancestor of the group it is in4820 does not allow a project to be shared with `OWNER` access level4821 scopes4822 .non_guests4823 returns all records which are greater than Guests access4824 search by group name4825 is expected to eq [#<ProjectGroupLink id: 14, project_id: 940, group_id: 3356, created_at: "2022-07-04 07:31:29.835183927 +0000", updated_at: "2022-07-04 07:31:29.835183927 +0000", group_access: 30, expires_at: nil>]4826 is expected to be empty4827Mutations::Issues::SetConfidential4828 is expected to require graphql authorizations :update_issue4829 #resolve4830 behaves like permission level for issue mutation is correctly verified4831 when the user is not a project member4832 behaves like when the user does not have access to the resource4833 raises an error4834 even if assigned to the issue4835 does not modify issue4836 even if author of the issue4837 does not modify issue4838 when the user is a project member4839 with guest role4840 behaves like when the user does not have access to the resource4841 raises an error4842 even if assigned to the issue4843 does not modify issue4844 even if author of the issue4845 does not modify issue4846 when the user can update the issue4847 returns the issue as confidential4848 when passing confidential as false4849 updates the issue confidentiality to false4850 when guest user is an assignee4851 does not change issue confidentiality4852Gitlab::Ci::Config::External::Processor4853 #perform4854 when no external files defined4855 returns the same values4856 when an invalid local file is defined4857 raises an error4858 when an invalid remote file is defined4859 raises an error4860 with a valid remote external file is defined4861 appends the file to the values4862 removes the 'include' keyword4863 with a valid local external file is defined4864 appends the file to the values4865 removes the 'include' keyword4866 with multiple external files are defined4867 appends the files to the values4868 removes the 'include' keyword4869 when external files are defined but not valid4870 raises an error4871 when both external files and values defined the same key4872 takes precedence4873 when a nested includes are defined4874 when project is public4875 properly expands all includes4876 propagates the pipeline logger4877 stores includes4878 when user is reporter of another project4879 properly expands all includes4880 when user is not allowed4881 raises an error4882 when too many includes is included4883 raises an error4884 when config includes an external configuration file via SSL web request4885 with an acceptable certificate4886 is expected to include {:image => "image:1.0"}4887 with a self-signed certificate4888 returns a reportable configuration error4889 when a valid project file is defined4890 appends the file to the values4891 when valid project files are defined in a single include4892 appends the file to the values4893 stores includes4894 when local file path has wildcard4895 fetches the matched files4896 stores includes4897 when rules defined4898 when a rule is invalid4899 raises IncludeError4900Discussions::UpdateDiffPositionService4901 #execute4902 when the diff line is the same4903 updates the position4904 when the resolve_outdated_diff_discussions setting is set4905 does not resolve the discussion4906 when the diff line has changed4907 doesn't update the position4908 sets the change position4909 creates a system discussion4910 when the resolve_outdated_diff_discussions setting is set4911 sets resolves the discussion and sets resolved_by_push4912 doesn't update the position4913 sets the change position4914 creates a system discussion4915Milestones::PromoteService4916 #execute4917 validations4918 raises error if milestone does not belong to a project4919 raises error if project does not belong to a group4920 does not promote milestone and update issuables if promoted milestone is not valid4921 without duplicated milestone titles across projects4922 promotes project milestone to group milestone4923 does not update issuables without milestone with the new promoted milestone4924 sets issuables with new promoted milestone4925 with duplicated milestone titles across projects4926 deletes project milestones with the same title4927 does not update issuables without milestone with the new promoted milestone4928 sets all issuables with new promoted milestone4929CommitSignatures::X509CommitSignature4930 behaves like having unique enum values4931 has unique values in "verification_status"4932 behaves like commit signature4933 associations4934 is expected to belong to project required: true4935 validation4936 is expected to validate that :commit_sha cannot be empty/falsy4937 is expected to validate that :project_id cannot be empty/falsy4938 .safe_create!4939 finds a signature by commit sha if it existed4940 creates a new signature if it was not found4941 assigns the correct attributes when creating4942 does not raise an error in case of a race condition4943 #commit4944 fetches the commit through the project4945 validation4946 is expected to validate that :x509_certificate_id cannot be empty/falsy4947 associations4948 is expected to belong to x509_certificate required: true4949 #user4950 if email is not assigned to a user, return nil4951 if email is assigned to a user4952 returns user4953AlertManagement::AlertsFinder#execute4954 #execute4955 user is not a developer or above4956 is expected to be empty4957 user is developer4958 domain4959 domain is threat management4960 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4961 domain is unknown4962 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4963 domain is missing4964 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4965 skips domain if iid is given4966 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>4967 empty params4968 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4969 iid given4970 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>4971 unknown iid4972 is expected to be empty4973 status given4974 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>4975 with an array of statuses4976 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>4977 with no alerts of status4978 is expected to be empty4979 with an empty status array4980 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4981 with an nil status4982 is expected to contain exactly #<AlertManagement::Alert id:2 namespace840/project1031^alert#1> and #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>4983 sorting4984 when sorting by created4985 sorts alerts ascending4986 is expected to eq [#<AlertManagement::Alert id:2 namespace840/project1031^alert#1>, #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>]4987 sorts alerts descending4988 is expected to eq [#<AlertManagement::Alert id:3 namespace840/project1031^alert#2>, #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>]4989 when sorting by updated4990 sorts alerts ascending4991 is expected to eq [#<AlertManagement::Alert id:2 namespace840/project1031^alert#1>, #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>]4992 sorts alerts descending4993 is expected to eq [#<AlertManagement::Alert id:3 namespace840/project1031^alert#2>, #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>]4994 when sorting by start time4995 sorts alerts ascending4996 is expected to eq [#<AlertManagement::Alert id:2 namespace840/project1031^alert#1>, #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>]4997 sorts alerts descending4998 is expected to eq [#<AlertManagement::Alert id:3 namespace840/project1031^alert#2>, #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>]4999 when sorting by end time5000 sorts alerts ascending5001 is expected to eq [#<AlertManagement::Alert id:2 namespace840/project1031^alert#1>, #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>]5002 sorts alerts descending5003 is expected to eq [#<AlertManagement::Alert id:3 namespace840/project1031^alert#2>, #<AlertManagement::Alert id:2 namespace840/project1031^alert#1>]5004 when sorting by events count5005 sorts alerts ascending5006 is expected to eq [#<AlertManagement::Alert id:3 namespace840/project1031^alert#2>, #<AlertManagement::Alert id:2 names... namespace840/project1031^alert#4>, #<AlertManagement::Alert id:6 namespace840/project1031^alert#3>]5007 sorts alerts descending5008 is expected to eq [#<AlertManagement::Alert id:6 namespace840/project1031^alert#3>, #<AlertManagement::Alert id:7 names... namespace840/project1031^alert#1>, #<AlertManagement::Alert id:3 namespace840/project1031^alert#2>]5009 when sorting by severity5010 with ascending sort order5011 sorts alerts by severity from less critical to more critical5012 with descending sort order5013 sorts alerts by severity from more critical to less critical5014 when sorting by status5015 with ascending sort order5016 sorts by status: Ignored > Resolved > Acknowledged > Triggered5017 with descending sort order5018 sorts by status: Triggered > Acknowledged > Resolved > Ignored5019 search query given5020 searching title5021 is expected to contain exactly #<AlertManagement::Alert id:18 namespace840/project1031^alert#3>5022 searching description5023 is expected to contain exactly #<AlertManagement::Alert id:18 namespace840/project1031^alert#3>5024 searching service5025 is expected to contain exactly #<AlertManagement::Alert id:18 namespace840/project1031^alert#3>5026 searching monitoring tool5027 is expected to contain exactly #<AlertManagement::Alert id:18 namespace840/project1031^alert#3>5028 searching something else5029 is expected to be empty5030 assignee username given5031 with valid assignee_username5032 is expected to contain exactly #<AlertManagement::Alert id:19 namespace840/project1031^alert#3>5033 with invalid assignee_username5034 is expected to be empty5035 .counts_by_status5036 is expected to match {:resolved=>1, :ignored=>1}5037 when filtering params are included5038 is expected to match {:resolved=>1}5039Ci::TriggerEntity5040 #as_json5041 contains required fields5042 contains user fields5043 when current user can manage triggers5044 returns short_token as token5045 contains project_trigger_path5046 does not contain edit_project_trigger_path5047 returns has_token_exposed5048 when current user is the owner of the trigger5049 returns token as token5050 contains project_trigger_path5051 contains edit_project_trigger_path5052 returns has_token_exposed5053Gitlab::AlertManagement::Payload::Base5054 .attribute5055 with a single path provided5056 is expected to be nil5057 and a matching value5058 is expected to eq "value"5059 with multiple paths provided5060 is expected to be nil5061 and a matching value5062 is expected to eq "value"5063 with a fallback provided5064 is expected to eq "fallback"5065 and a matching value5066 is expected to eq "value"5067 with a time type provided5068 is expected to be nil5069 with a compatible matching value5070 is expected to eq 2022-07-04 07:32:30.000000000 +00005071 with a value in rfc3339 format5072 is expected to eq 2022-07-04 07:32:30.000000000 +00005073 with an incompatible matching value5074 is expected to be nil5075 with time in seconds5076 is expected to be nil5077 with an integer type provided5078 is expected to be nil5079 with a compatible matching value5080 is expected to eq 155081 with an incompatible matching value5082 is expected to be nil5083 with an incompatible matching value5084 is expected to be nil5085 #alert_params5086 with every key5087 is expected to eq {:description=>"description", :ended_at=>2022-07-04 07:32:30.565616047 +0000, :environment=>#<Environ..."service", :severity=>"critical", :started_at=>2022-07-04 07:32:30.733579412 +0000, :title=>"title"}5088 can generate a valid new alert5089 with too-long strings5090 is expected to eq {:description=>"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee..."}5091 with too-long hosts array5092 is expected to eq {:hosts=>["abc", "def", "ghi"], :project_id=>1003}5093 with host cut off between elements5094 is expected to eq {:hosts=>["abcde", "fghi"], :project_id=>1003}5095 with nested hosts5096 is expected to eq {:hosts=>["abc", "de", "f", "g", "hi"], :project_id=>1003}5097 #gitlab_fingerprint5098 is expected to be nil5099 when plain_gitlab_fingerprint is defined5100 returns a fingerprint5101 #environment5102 without an environment name5103 is expected to be nil5104 with a non-matching environment name5105 is expected to be nil5106 with a matching environment name5107 is expected to eq #<Environment id: 19, project_id: 1003, name: "production", created_at: "2022-07-04 07:32:31.06946955... state: "available", slug: "production", auto_stop_at: nil, auto_delete_at: nil, tier: "production">5108 #resolved?5109 when status is not defined5110 is expected to be falsey5111 when status is not resovled5112 is expected to be falsey5113 when status is resovled5114 is expected to be truthy5115 #has_required_attributes?5116 is expected to equal true5117Gitlab::Search::FoundBlob5118 parsing content results5119 returns a valid FoundBlob5120 does not parse content if not needed5121 parses content only once when needed5122 when the matching filename contains a colon5123 returns a valid FoundBlob5124 when the matching content contains a number surrounded by colons5125 returns a valid FoundBlob5126 when the matching content contains multiple null bytes5127 returns a valid FoundBlob5128 when the search result ends with an empty line5129 returns a valid FoundBlob that ends with an empty line5130 when the search returns non-ASCII data5131 with UTF-85132 returns results as UTF-85133 with UTF-8 in the filename5134 returns results as UTF-85135 with ISO-8859-15136 returns results as UTF-85137 when filename has extension5138 is expected to eq "CONTRIBUTE.md"5139 is expected to eq "CONTRIBUTE"5140 when file is under directory5141 is expected to eq "a/b/c.md"5142 is expected to eq "a/b/c"5143 parsing title results5144 when file is under directory5145 is expected to eq "a/b/c.md"5146 is expected to eq "a/b/c"5147 when filename has multiple extensions5148 is expected to eq "a/b/c.whatever"5149 policy5150 works with policy5151Projects::HashedStorage::MigrateAttachmentsService5152 #execute5153 works even when project validation fails5154 when succeeds5155 moves attachments to hashed storage layout5156 returns true5157 sets skipped to false5158 when original folder does not exist anymore5159 skips moving folders and go to next5160 returns true5161 sets skipped to true5162 when target folder already exists5163 succeed when target is empty5164 succeed when target include only discardable items5165 raises AttachmentCannotMoveError when there are non discardable items on target path5166 #old_disk_path5167 returns old disk_path for project5168 #new_disk_path5169 returns new disk_path for project5170 #target_path_discardable?5171 returns true when it include only items on the discardable list5172Gitlab::GithubImport::Importer::MilestonesImporter5173 #execute5174 imports the milestones in bulk5175 #build_milestones5176 returns an Array containnig milestone rows5177 does not create milestones that already exist5178 #build_milestones_cache5179 builds the milestones cache5180 #build5181 returns the attributes of the milestone as a Hash5182 the returned Hash5183 includes the milestone number5184 includes the milestone title5185 includes the milestone description5186 includes the project ID5187 includes the milestone state5188 includes the due date5189 responds correctly to no due date value5190 includes the created timestamp5191 includes the updated timestamp5192 #each_milestone5193 returns the milestones5194Gitlab::ImportExport::SnippetRepoRestorer5195 when the snippet does not have a bundle file path5196 behaves like no bundle file present5197 creates the repository from the database content5198 does not call snippet update statistics service5199 when the repository creation fails5200 returns false5201 when the snippet bundle path is not present5202 behaves like no bundle file present5203 creates the repository from the database content5204 does not call snippet update statistics service5205 when the repository creation fails5206 returns false5207 when the snippet repository bundle exists5208 refreshes snippet statistics5209 when it is valid5210 creates the repository from the bundle5211 sets same shard in snippet repository as in the repository storage5212 when it is invalid5213 returns false and deletes the repository from disk and the database5214Metrics::Dashboard::Annotations::CreateService5215 .execute5216 with environment5217 with anonymous user5218 behaves like prevented annotation creation5219 returns error response5220 does not change db state5221 with maintainer user5222 behaves like executed annotation creation5223 returns success response5224 creates annotation5225 with cluster5226 with anonymous user5227 behaves like prevented annotation creation5228 returns error response5229 does not change db state5230 with maintainer user5231 behaves like executed annotation creation5232 returns success response5233 creates annotation5234 with owner user5235 behaves like executed annotation creation5236 returns success response5237 creates annotation5238 non cluster nor environment is supplied5239 behaves like annotation creation failure5240 returns error response5241 missing dashboard_path5242 with maintainer user5243 behaves like annotation creation failure5244 returns error response5245 incorrect dashboard_path5246 with maintainer user5247 behaves like prevented annotation creation5248 returns error response5249 does not change db state5250Gitlab::Ci::Reports::Security::Report5251 is expected to eq "sast"5252 is expected to delegate #project_id to the #pipeline object5253 #add_scanner5254 stores given scanner params in the map5255 returns the added scanner5256 #add_identifier5257 stores given identifier params in the map5258 returns the added identifier5259 #add_finding5260 enriches given finding and stores it in the collection5261 #clone_as_blank5262 creates a blank report with copied type and pipeline5263 #replace_with!5264 replaces report contents with other reports contents5265 #merge!5266 invokes the merge with other report and then replaces this report contents by merge result5267 #primary_scanner5268 is expected to eq #<Gitlab::Ci::Reports::Security::Scanner:0x00007f801ce3f5c8 @external_id="external_id_1", @name="Find Security Bugs", @vendor="Security Scanner Vendor", @version="1.0.0">5269 #add_error5270 when the message is not given5271 adds a new error to report with the generic error message5272 when the message is given5273 adds a new error to report5274 #add_warning5275 when the message is given5276 adds a new warning to report5277 errored?5278 when the report does not have any errors5279 is expected to be falsey5280 when the report has errors5281 is expected to be truthy5282 warnings?5283 when the report does not have any errors5284 is expected to be falsey5285 when the report has warnings5286 is expected to be truthy5287 #primary_scanner_order_to5288 when the primary scanner of the receiver is nil5289 when the primary scanner of the other is nil5290 is expected to equal 15291 when the primary scanner of the other is not nil5292 is expected to equal 15293 when the primary scanner of the receiver is not nil5294 when the primary scanner of the other is nil5295 is expected to equal -15296 when the primary scanner of the other is not nil5297 compares two scanners5298 #has_signatures?5299 when the findings of the report does not have signatures5300 is expected to be falsey5301 when the findings of the report have signatures5302 is expected to be truthy5303Projects::GroupsFinder5304 #execute5305 Public project5306 behaves like finding related groups5307 returns ancestor groups for this project5308 when the project does not belong to any group5309 is expected to eq []5310 when shared groups option is on5311 returns ancestor and all shared groups5312 when shared_min_access_level is developer5313 returns ancestor and shared groups with at least developer access5314 when shared_visible_only is on5315 returns ancestor and public shared groups5316 when user has access to the private shared group5317 returns ancestor and shared groups user has access to5318 when skip group option is on5319 excludes provided groups5320 when user is not authorized5321 returns ancestor groups for this project5322 when visible shared groups are requested5323 returns ancestor groups and public shared groups for this project5324 Private project5325 behaves like finding related groups5326 returns ancestor groups for this project5327 when the project does not belong to any group5328 is expected to eq []5329 when shared groups option is on5330 returns ancestor and all shared groups5331 when shared_min_access_level is developer5332 returns ancestor and shared groups with at least developer access5333 when shared_visible_only is on5334 returns ancestor and public shared groups5335 when user has access to the private shared group5336 returns ancestor and shared groups user has access to5337 when skip group option is on5338 excludes provided groups5339 when user is not authorized5340 is expected to eq []5341 Missing project5342 is expected to eq []5343PersonalSnippet5344 #embeddable?5345 returns true when snippet is public5346 returns true when snippet is public5347 returns true when snippet is public5348 behaves like model with repository5349 container class includes HasRepository5350 #commits_by5351 retrieves several commits from the repository by oid5352 #web_url5353 when given the only_path option5354 when only_path is false5355 returns the full web URL for this repo5356 when only_path is true5357 returns the relative web URL for this repo5358 when only_path is nil5359 returns the full web URL for this repo5360 when not given the only_path option5361 returns the full web URL for this repo5362 #url_to_repo5363 returns the SSH URL to the repository5364 #ssh_url_to_repo5365 returns the SSH URL to the repository5366 #http_url_to_repo5367 returns the HTTP URL to the repository5368 #repository5369 returns valid repo5370 uses the same container5371 #storage5372 returns valid storage5373 #full_path5374 returns valid full_path5375 #lfs_enabled?5376 returns the expected value5377 #empty_repo?5378 when the repo does not exist5379 returns true5380 when the repo exists5381 returns the empty state of the repository5382 #valid_repo?5383 is expected to equal false5384 is expected to equal true5385 #repository_exists?5386 is expected to equal false5387 is expected to equal true5388 #repo_exists?5389 is expected to equal false5390 is expected to equal true5391 #root_ref5392 is expected to equal true5393 is expected to equal false5394 is expected to equal false5395 Respond to5396 is expected to respond to #base_dir5397 is expected to respond to #disk_path5398 is expected to respond to #gitlab_shell5399 #change_head5400 delegates #change_head to repository5401 #after_repository_change_head5402 calls #reload_default_branch5403 #parent_user5404 returns the snippet author5405TasksToBeDone::CreateWorker5406 is labeled as idempotent5407 performs multiple times sequentially without raising an exception5408 creates 3 task issues5409 .perform5410 executes the task services for all tasks to be done5411Gitlab::Database::LoadBalancing::SidekiqServerMiddleware5412 #call5413 when worker class does not include ApplicationWorker5414 sticks to the primary5415 sets load balancing strategy to primary5416 when worker data consistency is :always5417 sticks to the primary5418 sets load balancing strategy to primary5419 when delay interval has not elapsed5420 does not sleep5421 when worker data consistency is :delayed5422 when load_balancing_for_test_data_consistency_worker is disabled5423 sticks to the primary5424 sets load balancing strategy to primary5425 when database wal location is set5426 behaves like replica is up to date5427 does not stick to the primary5428 sets load balancing strategy to replica5429 when deduplication wal location is set5430 behaves like replica is up to date5431 does not stick to the primary5432 sets load balancing strategy to replica5433 when database location is not set5434 sticks to the primary5435 sets load balancing strategy to primary_no_wal5436 when WAL locations are blank5437 does not sleep5438 when WAL locations are present5439 when delay interval has not elapsed5440 when replica is up to date5441 does not sleep5442 when replica is not up to date5443 sleeps until the minimum delay is reached5444 when delay interval has elapsed5445 does not sleep5446 when created_at is in the future5447 does not sleep5448 when replica is not up to date5449 when job is executed first5450 raises an error and retries5451 sets load balancing strategy to retry5452 when job is retried5453 and replica still lagging behind5454 sticks to the primary5455 sets load balancing strategy to primary5456 and replica is now up-to-date5457 does not stick to the primary5458 sets load balancing strategy to replica_retried5459 when worker data consistency is :sticky5460 when load_balancing_for_test_data_consistency_worker is disabled5461 sticks to the primary5462 sets load balancing strategy to primary5463 when database wal location is set5464 behaves like replica is up to date5465 does not stick to the primary5466 sets load balancing strategy to replica5467 when deduplication wal location is set5468 behaves like replica is up to date5469 does not stick to the primary5470 sets load balancing strategy to replica5471 when database location is not set5472 sticks to the primary5473 sets load balancing strategy to primary_no_wal5474 when WAL locations are blank5475 does not sleep5476 when WAL locations are present5477 when delay interval has not elapsed5478 when replica is up to date5479 does not sleep5480 when replica is not up to date5481 sleeps until the minimum delay is reached5482 when delay interval has elapsed5483 does not sleep5484 when created_at is in the future5485 does not sleep5486 when replica is not up to date5487 sticks to the primary5488 sets load balancing strategy to primary5489 #databases_in_sync?5490 treats load balancers without WAL entries as in sync5491 returns true when all load balancers are in sync5492 returns false when the load balancers are not in sync5493Deployments::UpdateEnvironmentWorker5494 when successful deployment5495 executes Deployments::UpdateEnvironmentService5496 when canceled deployment5497 does not execute Deployments::UpdateEnvironmentService5498 when deploy record does not exist5499 does not execute Deployments::UpdateEnvironmentService5500 idempotent5501 is labeled as idempotent5502 performs multiple times sequentially without raising an exception5503 updates merge requests metrics5504Packages::Conan::PackageFinder5505 #execute5506 visibility: :private, role: :maintainer, packages_visible: true5507 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5508 visibility: :private, role: :developer, packages_visible: true5509 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5510 visibility: :private, role: :reporter, packages_visible: true5511 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5512 visibility: :private, role: :guest, packages_visible: false5513 is expected to eq []5514 visibility: :private, role: :anonymous, packages_visible: false5515 is expected to eq []5516 visibility: :internal, role: :maintainer, packages_visible: true5517 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5518 visibility: :internal, role: :developer, packages_visible: true5519 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5520 visibility: :internal, role: :reporter, packages_visible: true5521 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5522 visibility: :internal, role: :guest, packages_visible: true5523 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5524 visibility: :internal, role: :anonymous, packages_visible: false5525 is expected to eq []5526 visibility: :public, role: :maintainer, packages_visible: true5527 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5528 visibility: :public, role: :developer, packages_visible: true5529 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5530 visibility: :public, role: :reporter, packages_visible: true5531 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5532 visibility: :public, role: :guest, packages_visible: true5533 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5534 visibility: :public, role: :anonymous, packages_visible: true5535 is expected to eq [#<Packages::Package id: 74, project_id: 1084, created_at: "2022-07-04 07:33:37.219021846 +0000", upd...", name: "package-3", version: "1.0.0", package_type: "conan", creator_id: 2078, status: "default">]5536Gitlab::GithubImport::Importer::IssueImporter5537 .import_if_issue5538 imports an issuable if it is a regular issue5539 does not import the issuable if it is a pull request5540 #execute5541 when :issues_full_test_search is disabled5542 creates the issue and assignees but does not update search data5543 when :issues_full_text_search feature is enabled5544 creates the issue and assignees and updates_search_data5545 #create_issue5546 produces a valid Issue5547 returns the ID of the created issue5548 when the issue author could be found5549 creates the issue with the found author as the issue author5550 when the issue author could not be found5551 creates the issue with the project creator as the issue author5552 when the import fails due to a foreign key error5553 does not raise any errors5554 #create_assignees5555 inserts the issue assignees in bulk5556Gitlab::Ci::Badge::Coverage::Metadata5557 behaves like badge metadata5558 #to_html5559 points to link5560 contains clickable image5561 #to_markdown5562 is expected to include "http://localhost/namespace942/project1144/badges/feature/coverage.svg"5563 is expected to include "http://localhost/namespace943/project1145/-/commits/feature"5564 #to_asciidoc5565 is expected to include "http://localhost/namespace944/project1146/badges/feature/coverage.svg"5566 is expected to include "http://localhost/namespace945/project1147/-/commits/feature"5567 is expected to include "image:"5568 is expected to include "link="5569 is expected to include "title="5570 #title5571 returns coverage report title5572 #image_url5573 returns valid url5574 #link_url5575 returns valid link5576CustomerRelations::Organization5577 associations5578 is expected to belong to group required: false5579 validations5580 is expected to validate that :group cannot be empty/falsy5581 is expected to validate that :name cannot be empty/falsy5582 is expected to validate that :name is case-insensitively unique within the scope of :group_id5583 is expected to validate that the length of :name is at most 2555584 is expected to validate that the length of :description is at most 10245585 #root_group5586 when root group5587 is expected to be valid5588 when subgroup5589 is expected to be invalid5590 #name5591 strips name5592 #find_by_name5593 strips name5594 #self.move_to_root_group5595 moves organizations with unique names and deletes the rest5596 updates contact.organization_id for dupes and leaves the rest untouched5597 .search5598 when search term is empty5599 returns all group organizations5600 when search term is not empty5601 when searching for name5602 is expected to contain exactly #<CustomerRelations::Organization id: 34, group_id: 3773, created_at: "2022-07-04 07:33:51.160363559 ...33:51.160363559 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>5603 when searching for description5604 is expected to contain exactly #<CustomerRelations::Organization id: 33, group_id: 3773, created_at: "2022-07-04 07:33:51.155574110 ...:33:51.155574110 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]>5605 when searching for name and description5606 is expected to contain exactly #<CustomerRelations::Organization id: 33, group_id: 3773, created_at: "2022-07-04 07:33:51.155574110 ...:33:51.155574110 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]> and #<CustomerRelations::Organization id: 34, group_id: 3773, created_at: "2022-07-04 07:33:51.160363559 ...33:51.160363559 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>5607 .search_by_state5608 when searching for organizations state5609 returns only inactive organizations5610 returns only active organizations5611 .sort_by_name5612 when sorting the organizations5613 sorts them by name in ascendent order5614LfsFileLock5615 is expected to belong to project required: false5616 is expected to belong to user required: false5617 is expected to validate that :project_id cannot be empty/falsy5618 is expected to validate that :user_id cannot be empty/falsy5619 is expected to validate that :path cannot be empty/falsy5620 #can_be_unlocked_by?5621 when it's forced5622 can be unlocked by the author5623 can be unlocked by a maintainer5624 can't be unlocked by other user5625 when it isn't forced5626 can be unlocked by the author5627 can't be unlocked by a maintainer5628 can't be unlocked by other user5629MergeRequestDiffEntity5630 as json5631 exposes needed attributes5632 #version_index5633 when diff is not present5634 behaves like version_index is nil5635 returns nil5636 when diff is not included in @merge_request_diffs5637 behaves like version_index is nil5638 returns nil5639 when @merge_request_diffs.size <= 15640 behaves like version_index is nil5641 returns nil5642 when @merge_request_diffs.size > 15643 returns difference between size and diff index5644 #short_commit_sha5645 returns short sha5646 returns nil if head_commit_sha does not exist5647 #head_version_path5648 merge request can be merged5649 returns diff path with diff_head param set5650 merge request cannot be merged5651 returns diff path with diff_head param set5652Gitlab::DiscussionsDiff::FileCollection5653 #load_highlight5654 writes uncached diffs highlight5655 does not write cache for already cached file5656 does not write cache for empty mapping5657 does not write cache for resolved notes5658 loaded diff files have highlighted lines loaded5659 not loaded diff files does not have highlighted lines loaded5660Resolvers::ProjectPackagesResolver5661 #resolve5662 behaves like group and projects packages resolver5663 without sort5664 returns the proper packages5665 with sorting and filtering5666 CREATED_DESC5667 is expected to eq [#<Packages::Package id: 85, project_id: 1123, created_at: "2022-07-04 06:34:07.372077712 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5668 NAME_DESC5669 is expected to eq [#<Packages::Package id: 85, project_id: 1123, created_at: "2022-07-04 06:34:07.372077712 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5670 VERSION_DESC5671 is expected to eq [#<Packages::Package id: 85, project_id: 1123, created_at: "2022-07-04 06:34:07.372077712 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5672 TYPE_ASC5673 is expected to eq [#<Packages::Package id: 85, project_id: 1123, created_at: "2022-07-04 06:34:07.372077712 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5674 CREATED_ASC5675 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd...03 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2136, status: "error">]5676 NAME_ASC5677 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd...03 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2136, status: "error">]5678 VERSION_ASC5679 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd...03 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2136, status: "error">]5680 TYPE_DESC5681 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd...03 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2136, status: "error">]5682 filter by package_name5683 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5684 filter by package_type5685 is expected to eq [#<Packages::Package id: 83, project_id: 1123, created_at: "2022-07-03 07:34:06.885144063 +0000", upd... +0000", name: "bar", version: "1.0.0", package_type: "conan", creator_id: 2136, status: "default">]5686 filter by status5687 is expected to eq [#<Packages::Package id: 85, project_id: 1123, created_at: "2022-07-04 06:34:07.372077712 +0000", upd...03 +0000", name: "foo", version: "2.0.0", package_type: "maven", creator_id: 2136, status: "error">]5688 include_versionless5689 is expected to include #<Packages::Package id: 87, project_id: 1123, created_at: "2022-07-04 07:33:07.766162625 +0000", upda...68986 +0000", name: "baz", version: nil, package_type: "maven", creator_id: 2136, status: "default">5690Gitlab::Pagination::Keyset::Paginator5691 pagination5692 when per_page is greater than the record count5693 is expected to eq [#<Project id:1127 namespace967/project1169>>, #<Project id:1130 namespace970/project1172>>, #<Projec...t1171>>, #<Project id:1128 namespace968/project1170>>, #<Project id:1131 namespace971/project1173>>]5694 is expected not to have next page5695 is expected not to have previous page5696 has no next and previous cursor values5697 when 0 records are returned5698 is expected to be empty5699 is expected not to have next page5700 is expected not to have previous page5701 when page size is smaller than the record count5702 is expected to eq [#<Project id:1127 namespace967/project1169>>, #<Project id:1130 namespace970/project1172>>]5703 is expected to have next page5704 is expected not to have previous page5705 has next page cursor5706 does not have previous page cursor5707 when on the second page5708 is expected to eq [#<Project id:1129 namespace969/project1171>>, #<Project id:1128 namespace968/project1170>>]5709 is expected to have next page5710 is expected to have previous page5711 and then going back to the first page5712 is expected to eq [#<Project id:1127 namespace967/project1169>>, #<Project id:1130 namespace970/project1172>>]5713 is expected to have next page5714 is expected not to have previous page5715 when jumping to the last page5716 is expected to eq [#<Project id:1128 namespace968/project1170>>, #<Project id:1131 namespace971/project1173>>]5717 is expected not to have next page5718 is expected to have previous page5719 when paginating backwards5720 is expected to eq [#<Project id:1130 namespace970/project1172>>, #<Project id:1129 namespace969/project1171>>]5721 is expected to have next page5722 is expected to have previous page5723 when jumping to the first page5724 is expected to eq [#<Project id:1127 namespace967/project1169>>, #<Project id:1130 namespace970/project1172>>]5725 is expected to have next page5726 is expected not to have previous page5727 default keyset direction parameter5728 exposes the direction parameter in the cursor5729 when unsupported order is given5730 raises error5731 when use_union_optimization option is true and ordering by two columns5732 uses UNION queries5733Gitlab::RepositoryCache5734 #cache_key5735 project repository5736 behaves like cache_key examples5737 includes the namespace5738 with a given namespace5739 includes the full namespace5740 personal snippet repository5741 behaves like cache_key examples5742 includes the namespace5743 with a given namespace5744 includes the full namespace5745 project snippet repository5746 behaves like cache_key examples5747 includes the namespace5748 with a given namespace5749 includes the full namespace5750 #expire5751 expires the given key from the cache5752 #fetch5753 fetches the given key from the cache5754 accepts a block5755 #write5756 writes the given key and value to the cache5757 passes additional options to the backend5758 #fetch_without_caching_false5759 requires a block5760 when the key does not exist in the cache5761 when the result of the block is truthy5762 returns the result of the block5763 caches the value5764 when the result of the block is falsey5765 returns the result of the block5766 does not cache the value5767 when the cached value is truthy5768 returns the cached value5769 does not execute the block5770 does not write to the cache5771 when the cached value is falsey5772 returns the result of the block5773 writes the truthy value to the cache5774SystemNotes::TimeTrackingService5775 #change_due_date5776 when noteable is an issue5777 tracks the issue event in usage ping5778 behaves like a note with overridable created_at5779 the note has the correct time5780 behaves like a system note5781 has the correct attributes5782 when due date added5783 sets the note text5784 when due date removed5785 sets the note text5786 when noteable is a merge request5787 does not track the issue event in usage ping5788 #change_time_estimate5789 when noteable is an issue5790 tracks the issue event in usage ping5791 behaves like a system note5792 has the correct attributes5793 with a time estimate5794 sets the note text5795 when time_tracking_limit_to_hours setting is true5796 sets the note text5797 without a time estimate5798 sets the note text5799 when noteable is a merge request5800 does not track the issue event in usage ping5801 #remove_timelog5802 when the timelog has a positive time spent value5803 sets the note text5804 when the timelog has a negative time spent value5805 sets the note text5806 #change_time_spent5807 when noteable is an issue5808 behaves like a system note5809 has the correct attributes5810 when time was added5811 sets the note text5812 tracks the issue event in usage ping5813 when time was subtracted5814 sets the note text5815 when time was removed5816 sets the note text5817 when time_tracking_limit_to_hours setting is true5818 sets the note text5819 when noteable is a merge request5820 does not track the issue event in usage ping5821Clusters::Applications::PatchService5822 #execute5823 when there are no errors5824 make the application updating5825 schedule async installation status check5826 when kubernetes cluster communication fails5827 logs into kubernetes.log and Sentry5828 make the application errored5829 a non kubernetes error happens5830 logs into kubernetes.log and Sentry5831 make the application errored5832IncidentManagement::PagerDuty::CreateIncidentIssueService5833 #execute5834 when PagerDuty webhook setting is active5835 when issue can be created5836 creates a new issue5837 responds with success5838 the issue author is Alert bot5839 issue has a correct title5840 issue has a correct description5841 when the payload does not contain a title5842 does not create a GitLab issue5843 responds with error5844 when PagerDuty webhook setting is not active5845 does not create a GitLab issue5846 responds with forbidden5847WorkItems::TaskListReferenceReplacementService5848 #execute5849 when task mardown spans a single line5850 behaves like successful work item task reference replacement service5851 is expected to be success5852 replaces the original issue markdown description with new work item reference5853 when task mardown spans multiple lines5854 behaves like successful work item task reference replacement service5855 is expected to be success5856 replaces the original issue markdown description with new work item reference5857 when description does not contain a task5858 behaves like failing work item task reference replacement service5859 is expected to be error5860 returns an error message5861 when description is empty5862 behaves like failing work item task reference replacement service5863 is expected to be error5864 returns an error message5865 when line_number_start is lower than 15866 behaves like failing work item task reference replacement service5867 is expected to be error5868 returns an error message5869 when line_number_end is lower than line_number_start5870 behaves like failing work item task reference replacement service5871 is expected to be error5872 returns an error message5873 when lock_version is older than current5874 behaves like failing work item task reference replacement service5875 is expected to be error5876 returns an error message5877 when work item is stale before updating5878 behaves like failing work item task reference replacement service5879 is expected to be error5880 returns an error message5881InviteMembersHelper5882 #common_invite_group_modal_data5883 has expected common attributes5884 when sharing with groups outside the hierarchy is disabled5885 provides the correct attributes5886 when sharing with groups outside the hierarchy is enabled5887 does not return filter attributes5888 #common_invite_modal_dataset5889 has expected common attributes5890 tasks_to_be_done5891 inviting members for tasks5892 open_modal_param_present?: true, logged_in?: true, expected?: true5893 when the source is a project5894 behaves like including the tasks to be done attributes5895 includes the tasks to be done attributes when expected5896 when the source is a group5897 behaves like including the tasks to be done attributes5898 includes the tasks to be done attributes when expected5899 open_modal_param_present?: true, logged_in?: false, expected?: false5900 when the source is a project5901 behaves like including the tasks to be done attributes5902 includes the tasks to be done attributes when expected5903 when the source is a group5904 behaves like including the tasks to be done attributes5905 includes the tasks to be done attributes when expected5906 open_modal_param_present?: false, logged_in?: true, expected?: false5907 when the source is a project5908 behaves like including the tasks to be done attributes5909 includes the tasks to be done attributes when expected5910 when the source is a group5911 behaves like including the tasks to be done attributes5912 includes the tasks to be done attributes when expected5913 open_modal_param_present?: false, logged_in?: false, expected?: false5914 when the source is a project5915 behaves like including the tasks to be done attributes5916 includes the tasks to be done attributes when expected5917 when the source is a group5918 behaves like including the tasks to be done attributes5919 includes the tasks to be done attributes when expected5920 the invite_for_help_continuous_onboarding experiment5921 invite_for_help_continuous_onboarding?: true, logged_in?: true, expected?: true5922 when the source is a project5923 behaves like including the tasks to be done attributes5924 includes the tasks to be done attributes when expected5925 when the source is a group5926 behaves like including the tasks to be done attributes5927 includes the tasks to be done attributes when expected5928 invite_for_help_continuous_onboarding?: true, logged_in?: false, expected?: false5929 when the source is a project5930 behaves like including the tasks to be done attributes5931 includes the tasks to be done attributes when expected5932 when the source is a group5933 behaves like including the tasks to be done attributes5934 includes the tasks to be done attributes when expected5935 invite_for_help_continuous_onboarding?: false, logged_in?: true, expected?: false5936 when the source is a project5937 behaves like including the tasks to be done attributes5938 includes the tasks to be done attributes when expected5939 when the source is a group5940 behaves like including the tasks to be done attributes5941 includes the tasks to be done attributes when expected5942 invite_for_help_continuous_onboarding?: false, logged_in?: false, expected?: false5943 when the source is a project5944 behaves like including the tasks to be done attributes5945 includes the tasks to be done attributes when expected5946 when the source is a group5947 behaves like including the tasks to be done attributes5948 includes the tasks to be done attributes when expected5949 with project5950 #can_invite_members_for_project?5951 when the user can_admin_project_member5952 returns true5953 when the user can not manage project members5954 returns false5955Users::CreateService5956 #execute5957 with an admin user5958 when required parameters are provided5959 returns a persisted user5960 persists the given attributes5961 user is not confirmed if skip_confirmation param is not present5962 logs the user creation5963 executes system hooks5964 does not send a notification email5965 when the current_user is not persisted5966 persists the given attributes and sets created_by_id to nil5967 when force_random_password parameter is true5968 generates random password5969 when password_automatically_set parameter is true5970 persists the given attributes5971 when skip_confirmation parameter is true5972 confirms the user5973 when reset_password parameter is true5974 resets password even if a password parameter is given5975 sends a notification email5976 with nil user5977 persists the given attributes5978Projects::LfsPointers::LfsLinkService5979 #execute5980 raises an error when trying to link too many objects at once5981 links existing lfs objects to the project5982 returns linked oids5983 links in batches5984 only queries for the batch that will be processed5985 only queries 3 times5986Gitlab::APIAuthentication::TokenResolver5987 .new5988 with a valid type5989 creates a new instance5990 with an invalid type5991 raises a validation error5992 #resolve5993 with :personal_access_token_with_username5994 with valid credentials5995 behaves like an authorized request5996 returns the correct token5997 with an invalid username5998 behaves like an unauthorized request5999 raises an error6000 with no username6001 behaves like an unauthorized request6002 raises an error6003 with :job_token_with_username6004 with valid credentials6005 behaves like an authorized request6006 returns the correct token6007 when the job is not running6008 behaves like an unauthorized request6009 raises an error6010 with the wrong username6011 behaves like an anoymous request6012 returns nil6013 with an invalid job token6014 behaves like an unauthorized request6015 raises an error6016 with :deploy_token_with_username6017 with a valid deploy token6018 behaves like an authorized request6019 returns the correct token6020 with an invalid username6021 behaves like an unauthorized request6022 raises an error6023 with :personal_access_token6024 with valid credentials6025 behaves like an authorized request6026 returns the correct token6027 with :job_token6028 with valid credentials6029 behaves like an authorized request6030 returns the correct token6031 when the job is not running6032 behaves like an unauthorized request6033 raises an error6034 with an invalid job token6035 behaves like an unauthorized request6036 raises an error6037 with :deploy_token6038 with a valid deploy token6039 behaves like an authorized request6040 returns the correct token6041 with :personal_access_token_from_jwt6042 with valid credentials6043 behaves like an authorized request6044 returns the correct token6045 with :deploy_token_from_jwt6046 with valid credentials6047 behaves like an authorized request6048 returns the correct token6049 with :job_token_from_jwt6050 with valid credentials6051 behaves like an authorized request6052 returns the correct token6053 when the job is not running6054 behaves like an unauthorized request6055 raises an error6056 with an invalid job token6057 behaves like an unauthorized request6058 raises an error6059Gitlab::Diff::Suggestion6060 #to_hash6061 when changing content surpasses the top limit6062 behaves like correct suggestion raw content6063 returns correct raw data6064 returns diff lines with correct line numbers6065 when changing content surpasses the amount of lines in the blob (bottom)6066 behaves like correct suggestion raw content6067 returns correct raw data6068 returns diff lines with correct line numbers6069 when lines are within blob lines boundary6070 behaves like correct suggestion raw content6071 returns correct raw data6072 returns diff lines with correct line numbers6073RemoveUnreferencedLfsObjectsWorker6074 #perform6075 removes unreferenced lfs objects6076 leaves referenced lfs objects6077 removes unreferenced lfs objects after project removal6078 behaves like an idempotent worker6079 is labeled as idempotent6080 performs multiple times sequentially without raising an exception6081Clusters::DestroyService6082 #execute6083 when correct params6084 when params are empty6085 behaves like only removes cluster6086 does not start cleanup6087 destroys the cluster6088 when cleanup param is false6089 behaves like only removes cluster6090 does not start cleanup6091 destroys the cluster6092 when cleanup param is true6093 does not destroy cluster6094 transition cluster#cleanup_status from cleanup_not_started to cleanup_removing_project_namespaces6095BlobViewer::MetricsDashboardYml6096 with metrics_dashboard_exhaustive_validations feature flag on6097 when the definition is valid6098 #valid?6099 calls prepare! on the viewer6100 processes dashboard yaml and returns true6101 #errors6102 returns empty array6103 when definition is invalid6104 #valid?6105 returns false6106 #errors6107 returns validation errors6108 when YAML syntax is invalid6109 #valid?6110 returns false6111 #errors6112 returns validation errors6113 when YAML loader raises error6114 is invalid6115 returns validation errors6116 with metrics_dashboard_exhaustive_validations feature flag off6117 when the definition is valid6118 #valid?6119 calls prepare! on the viewer6120 processes dashboard yaml and returns true6121 #errors6122 returns empty array6123 when definition is invalid6124 #valid?6125 returns false6126 #errors6127 returns validation errors6128 when YAML syntax is invalid6129 #valid?6130 returns false6131 #errors6132 returns validation errors6133 when YAML loader raises error6134 is invalid6135 returns validation errors6136FeatureFlags::UpdateService6137 #execute6138 returns success status6139 creates audit event with correct message6140 when Jira Connect subscription does not exist6141 does not sync the feature flag to Jira6142 when Jira Connect subscription exists6143 syncs the feature flag to Jira6144 with invalid params6145 returns error status6146 returns error messages6147 does not create audit event6148 does not sync the feature flag to Jira6149 when user is reporter6150 returns error status6151 when nothing is changed6152 returns success status6153 does not create audit event6154 description is being changed6155 creates audit event with changed description6156 when flag active state is changed6157 creates audit event about changing active state6158 executes hooks6159layouts/_header_search6160 when doing a project level search6161 sets project_id field6162 behaves like hidden fields are properly set6163 when search_context has a scope value6164 sets scope input to issues6165 when search_context has a code_search value6166 sets search_code input to true6167 when search_context has a ref value6168 sets repository_ref input to test-branch6169 when search_context has a for_snippets value6170 sets for_snippets input to true6171 nav_source6172 always set to navbar6173 submit button6174 always renders for specs6175 when doing a group level search6176 sets group_id field6177 behaves like hidden fields are properly set6178 when search_context has a scope value6179 sets scope input to issues6180 when search_context has a code_search value6181 sets search_code input to true6182 when search_context has a ref value6183 sets repository_ref input to test-branch6184 when search_context has a for_snippets value6185 sets for_snippets input to true6186 nav_source6187 always set to navbar6188 submit button6189 always renders for specs6190Types::QueryType6191 is called Query6192 has the expected fields6193 namespace field6194 finds namespaces by full path6195 project field6196 finds projects by full path6197 metadata field6198 returns metadata6199 issue field6200 finds an issue by it's gid6201 merge_request field6202 finds a merge_request by it's gid6203 usage_trends_measurements field6204 returns usage trends measurements6205 runner field6206 is expected to have graphql type Types::Ci::RunnerType6207 runners field6208 is expected to have graphql type #<Class:0x00007f80480d6fe0>6209 runner_platforms field6210 returns runner platforms6211 runner_setup field6212 returns runner setup instructions6213 container_repository field6214 is expected to have graphql type Types::ContainerRepositoryDetailsType6215 package field6216 is expected to have graphql type Types::Packages::PackageDetailsType6217 timelogs field6218 returns timelogs6219 boardList field6220 finds a board list by its gid6221Gitlab::Middleware::SameSiteCookies6222 #call6223 without SSL enabled6224 with cookie6225 does not add headers to cookies6226 with SSL enabled6227 with no cookies6228 does not add headers6229 with different browsers6230 description: "iOS 12", user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", expected: false6231 returns expected SameSite status6232 description: "macOS 10.14 + Safari", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15", expected: false6233 returns expected SameSite status6234 description: "macOS 10.14 + Opera", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.55", expected: false6235 returns expected SameSite status6236 description: "macOS 10.14 + Chrome v80", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36", expected: true6237 returns expected SameSite status6238 description: "Chrome v41", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", expected: true6239 returns expected SameSite status6240 description: "Chrome v50", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2348.1 Safari/537.36", expected: true6241 returns expected SameSite status6242 description: "Chrome v51", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2718.15 Safari/537.36", expected: false6243 returns expected SameSite status6244 description: "Chrome v62", user_agent: "Mozilla/5.0 (Macintosh; Intel NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", expected: false6245 returns expected SameSite status6246 description: "Chrome v66", user_agent: "Mozilla/5.0 (Linux; Android 4.4.2; Avvio_793 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36", expected: false6247 returns expected SameSite status6248 description: "Chrome v67", user_agent: "Mozilla/5.0 (Linux; Android 7.1.1; SM-J510F Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3371.0 Mobile Safari/537.36", expected: true6249 returns expected SameSite status6250 description: "Chrome v85", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", expected: true6251 returns expected SameSite status6252 description: "Chromium v66", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 HeadlessChrome/66.0.3359.181 Safari/537.36", expected: false6253 returns expected SameSite status6254 description: "Chromium v85", user_agent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/85.0.4183.59 Chrome/85.0.4183.59 Safari/537.36", expected: true6255 returns expected SameSite status6256 description: "UC Browser 12.0.4", user_agent: "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-CN; A31 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.0.4.986 Mobile Safari/537.36", expected: false6257 returns expected SameSite status6258 description: "UC Browser 12.13.0", user_agent: "Mozilla/5.0 (Linux; U; Android 7.1.1; en-US; SM-C9000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.0.1207 Mobile Safari/537.36", expected: false6259 returns expected SameSite status6260 description: "UC Browser 12.13.2", user_agent: "Mozilla/5.0 (Linux; U; Android 9; en-US; Redmi Note 7 Build/PQ3B.190801.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.2.1208 Mobile Safari/537.36", expected: true6261 returns expected SameSite status6262 description: "UC Browser 12.13.5", user_agent: "Mozilla/5.0 (Linux; U; Android 5.1.1; en-US; PHICOMM C630 (CLUE L) Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.5.1209 Mobile Safari/537.36", expected: true6263 returns expected SameSite status6264 description: "Playstation", user_agent: "Mozilla/5.0 (PlayStation 4 2.51) AppleWebKit/537.73 (KHTML, like Gecko)", expected: true6265 returns expected SameSite status6266 with single cookie6267 adds required headers6268 multiple cookies6269 adds required headers6270 multiple cookies with some missing headers6271 adds missing headers6272 multiple cookies with all headers present6273 does not add new headers6274RepositoryCheck::SingleRepositoryWorker6275 skips when the project has no push events6276 fails when the project has push events and a broken repository6277 succeeds when the project repo is valid6278 fails if the wiki repository is broken6279 skips wikis when disabled6280 creates missing wikis6281 does not create a wiki if the main repo does not exist at all6282Gitlab::FogbugzImport::Importer6283 imports bugs6284 imports opened bugs6285 imports closed bugs6286 verify url6287 when host is localhost6288 does not allow localhost requests6289 when host is on local network6290 does not allow localhost requests6291 when host is ftp protocol6292 only accept http and https requests6293Gitlab::EventStore::Store6294 #subscribe6295 subscribes a worker to an event6296 subscribes multiple workers to an event6297 subscribes a worker to multiple events is separate calls6298 subscribes a worker to multiple events in a single call6299 subscribes a worker to an event with condition6300 refuses the subscription if the target is not an Event object6301 refuses the subscription if the subscriber is not a worker6302 #publish6303 when event has a subscribed worker6304 dispatches the event to the subscribed worker6305 does not raise any Sidekiq warning6306 raises and tracks an error when event is published inside a database transaction6307 refuses publishing if the target is not an Event object6308 when other workers subscribe to the same event6309 dispatches the event to each subscribed worker6310 when an error is raised6311 is rescued and tracked6312 when event has subscribed workers with condition6313 dispatches the event to the workers satisfying the condition6314 when the event does not have any subscribers6315 returns successfully6316 does not dispatch the event to another subscription6317 subscriber6318 is a Sidekiq worker6319 handles the event6320 when the event name does not exist6321 raises an error6322 when the worker does not define handle_event method6323 raises an error6324Gitlab::Kubernetes::Helm::API6325 #initialize6326 creates a namespace object6327 #uninstall6328 ensures the namespace exists before creating the POD6329 removes an existing pod before installing6330 with a ConfigMap6331 creates a ConfigMap on kubeclient6332 config map already exists6333 updates the config map6334 #install6335 ensures the namespace exists before creating the POD6336 removes an existing pod before installing6337 with a ConfigMap6338 creates a ConfigMap on kubeclient6339 config map already exists6340 updates the config map6341 without a service account6342 does not create a service account on kubeclient6343 with a service account6344 rbac-enabled cluster6345 service account does not exist6346 creates a service account, followed the cluster role binding on kubeclient6347 service account already exists6348 updates the service account, followed by creating the cluster role binding6349 a non-404 error is thrown6350 raises an error6351 legacy abac cluster6352 does not create a service account on kubeclient6353 #status6354 fetches POD phase from kubernetes cluster6355 #log6356 fetches POD phase from kubernetes cluster6357 #delete_pod!6358 deletes the POD from kubernetes cluster6359 when the resource being deleted does not exist6360 catches the error6361 #get_config_map6362 ensures the namespace exists before retrieving the config map6363 gets the config map on kubeclient6364Ci::Maskable6365 masked value validations6366 when variable is masked6367 is expected not to allow :value to be ‹"hello"›6368 is expected not to allow :value to be ‹"hello world"›6369 is expected not to allow :value to be ‹"hello$VARIABLEworld"›6370 is expected not to allow :value to be ‹"hello\\rworld"›6371 is expected to allow :value to be ‹"helloworld"›6372 when variable is not masked6373 is expected to allow :value to be ‹"hello"›6374 is expected to allow :value to be ‹"hello world"›6375 is expected to allow :value to be ‹"hello$VARIABLEworld"›6376 is expected to allow :value to be ‹"hello\\rworld"›6377 is expected to allow :value to be ‹"helloworld"›6378 REGEX6379 does not match strings shorter than 8 letters6380 does not match strings with spaces6381 does not match strings with shell variables6382 does not match strings with escape characters6383 does not match strings that span more than one line6384 does not match strings using unsupported characters6385 matches valid strings6386 #to_runner_variable6387 exposes the masked attribute6388Gitlab::Metrics::Dashboard::Validator6389 #validate6390 valid dashboard schema6391 returns true6392 with duplicate metric_ids6393 returns false6394 with dashboard_path and project6395 with no conflicting metric identifiers in db6396 is expected to equal true6397 with metric identifier present in current dashboard6398 is expected to equal true6399 with metric identifier present in another dashboard6400 is expected to equal false6401 invalid dashboard schema6402 returns false6403 #validate!6404 valid dashboard schema6405 returns true6406 with duplicate metric_ids6407 behaves like validation failed6408 raises error with corresponding messages6409 with dashboard_path and project6410 with no conflicting metric identifiers in db6411 is expected to equal true6412 with metric identifier present in current dashboard6413 is expected to equal true6414 with metric identifier present in another dashboard6415 behaves like validation failed6416 raises error with corresponding messages6417 invalid dashboard schema6418 wrong property type6419 behaves like validation failed6420 raises error with corresponding messages6421 panel groups missing6422 behaves like validation failed6423 raises error with corresponding messages6424 groups are missing panels and group keys6425 behaves like validation failed6426 raises error with corresponding messages6427 panel is missing metrics key6428 behaves like validation failed6429 raises error with corresponding messages6430 #errors6431 valid dashboard schema6432 returns no errors6433 with duplicate metric_ids6434 returns errors6435 with dashboard_path and project6436 with no conflicting metric identifiers in db6437 is expected to eq []6438 with metric identifier present in current dashboard6439 is expected to eq []6440 with metric identifier present in another dashboard6441 is expected to eq [#<Gitlab::Metrics::Dashboard::Validator::Errors::DuplicateMetricIds: metric_id must be unique across a project>]6442 invalid dashboard schema6443 returns collection of validation errors6444Clusters::Aws::FetchCredentialsService6445 #execute6446 provision role is configured6447 provider is specified6448 is expected to eq #<Double (anonymous)>6449 provider is not specifed6450 is expected to eq #<Double (anonymous)>6451 region is not specifed6452 is expected to eq #<Double (anonymous)>6453 provision role is not configured6454 raises an error6455 with an instance profile attached to an IAM role6456 provider is specified6457 returns credentials6458 provider is not specifed6459 returns credentials6460Members::ImportProjectTeamService6461 #execute6462 when project team members are imported successfully6463 returns true6464 when the project team import fails6465 when the target project cannot be found6466 returns false6467 when the source project cannot be found6468 returns false6469 when the user doing the import does not exist6470 returns false6471 when the user does not have permission to read the source project members6472 returns false6473 when the user does not have permission to admin the target project6474 returns false6475 when the source and target project are valid but the ProjectTeam#import command fails6476 returns false6477BulkImports::Export6478 associations6479 is expected to belong to group required: false6480 is expected to belong to project required: false6481 is expected to have one upload6482 validations6483 is expected to validate that :relation cannot be empty/falsy6484 is expected to validate that :status cannot be empty/falsy6485 when not associated with a group or project6486 is invalid6487 when associated with a group6488 is valid6489 when associated with a project6490 is valid6491 when relation is invalid6492 is invalid6493 #portable6494 when associated with project6495 returns project6496 when associated with group6497 returns group6498 #config6499 when associated with project6500 returns project config6501 when associated with group6502 returns group config6503Gitlab::HealthChecks::Redis::CacheCheck6504 #metrics6505 Check is passing6506 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 1})6507 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})6508 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})6509 Check is misbehaving6510 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 0})6511 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})6512 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})6513 Check is timeouting6514 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 0})6515 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 1})6516 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})6517 #readiness6518 Check returns ok6519 is expected to have attributes {:success => true}6520 Check is misbehaving6521 is expected to have attributes {:message => "unexpected Cache check result: error!", :success => false}6522 Check is timeouting6523 is expected to have attributes {:message => "Cache check timed out", :success => false}6524 Check is raising an unhandled exception6525 is expected to have attributes {:message => "unexpected Cache check result: unexpected error", :success => false}6526Gitlab::Database::PostgresPartitionedTable6527 associations6528 is expected to have many postgres_partitions6529 behaves like a postgres model6530 .by_identifier6531 finds the Gitlab::Database::PostgresPartitionedTable6532 raises an error if not found6533 raises ArgumentError if given a non-fully qualified identifier6534 #to_s6535 returns the name6536 #schema6537 returns the schema6538 #name6539 returns the name6540 .find_by_name_in_current_schema6541 finds the partitioned tables in the current schema by name6542 does not find partitioned tables in a different schema6543 #dynamic?6544 returns true for tables partitioned by range6545 returns true for tables partitioned by list6546 returns false for tables partitioned by hash6547 #static?6548 returns false for tables partitioned by range6549 returns false for tables partitioned by list6550 returns true for tables partitioned by hash6551 #strategy6552 returns the partitioning strategy6553 #key_columns6554 returns the partitioning key columns6555Packages::Debian::UpdateDistributionService6556 behaves like Debian Update Distribution Service6557 with a Debian project distribution6558 with valid simple params6559 behaves like Update Debian Distribution6560 returns ServiceResponse6561 with invalid simple params6562 behaves like Update Debian Distribution6563 returns ServiceResponse6564 with valid components and architectures6565 behaves like Update Debian Distribution6566 returns ServiceResponse6567 with invalid components6568 behaves like Update Debian Distribution6569 returns ServiceResponse6570 with invalid architectures6571 behaves like Update Debian Distribution6572 returns ServiceResponse6573 behaves like Debian Update Distribution Service6574 with a Debian group distribution6575 with valid simple params6576 behaves like Update Debian Distribution6577 returns ServiceResponse6578 with invalid simple params6579 behaves like Update Debian Distribution6580 returns ServiceResponse6581 with valid components and architectures6582 behaves like Update Debian Distribution6583 returns ServiceResponse6584 with invalid components6585 behaves like Update Debian Distribution6586 returns ServiceResponse6587 with invalid architectures6588 behaves like Update Debian Distribution6589 returns ServiceResponse6590DesignManagement::NewVersionWorker6591 #perform6592 the id is wrong or out-of-date6593 does not create system notes6594 does not invoke GenerateImageVersionsService6595 logs the reason for this failure6596 the version id is valid6597 creates a system note6598 does not create a system note if skip_system_notes is true6599 invokes GenerateImageVersionsService6600 does not log anything6601 the version includes multiple types of action6602 creates two system notes6603 calls design_version_added6604TimeTracking::TimelogCategory6605 associations6606 is expected to belong to namespace required: false6607 validations6608 is expected to validate that :namespace cannot be empty/falsy6609 is expected to validate that :name cannot be empty/falsy6610 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id6611 is expected to validate that the length of :name is at most 2556612 is expected to validate that the length of :description is at most 10246613 is expected to validate that the length of :color is at most 76614 validations when billable6615 is expected to validate that :billing_rate cannot be empty/falsy6616 is expected to validate that :billing_rate looks like a number greater than 06617 #name6618 strips name6619 #color6620 strips color6621 #find_by_name6622 finds the correct timelog category6623 returns empty if not found6624Boards::BoardsFinder6625 #execute6626 when board parent is a project6627 behaves like boards list service6628 does not create a new board6629 returns parent boards6630 behaves like multiple boards list service6631 #execute6632 returns all issue boards6633 returns boards ordered by name6634 when wanting a specific board6635 returns board specified by id6636 raises exception when board is not found6637 when board parent is a group6638 behaves like boards list service6639 does not create a new board6640 returns parent boards6641DependencyProxy::FileUploader6642 DependencyProxy::Blob uploader6643 behaves like builds correct paths6644 #store_dir6645 behaves like matches the method pattern6646 is expected to match /\h{2}\/\h{2}/6647 #cache_dir6648 behaves like matches the method pattern6649 is expected to match /\/dependency_proxy\/tmp\/cache/6650 #work_dir6651 behaves like matches the method pattern6652 is expected to match /\/dependency_proxy\/tmp\/work/6653 #upload_path6654 behaves like matches the method pattern6655 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6656 #relative_path6657 is relative (PENDING: Path not set, skipping.)6658 .absolute_path6659 behaves like matches the method pattern6660 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6661 .base_dir6662 behaves like matches the method pattern6663 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6664 path traversal exploits6665 throws an exception6666 object store is remote6667 behaves like builds correct paths6668 #store_dir6669 behaves like matches the method pattern6670 is expected to match /\h{2}\/\h{2}/6671 #cache_dir6672 behaves like matches the method pattern6673 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6674 #work_dir6675 behaves like matches the method pattern6676 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6677 #upload_path6678 behaves like matches the method pattern6679 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6680 #relative_path6681 is relative (PENDING: Path not set, skipping.)6682 .absolute_path6683 behaves like matches the method pattern6684 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6685 .base_dir6686 behaves like matches the method pattern6687 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6688 path traversal exploits6689 throws an exception6690 DependencyProxy::Manifest uploader6691 will change upload file content type to match the model content type6692Gitlab::Database::Migrations::Instrumentation6693 #observe6694 executes the given block6695 behavior with observers6696 instantiates observer with observation6697 calls #before, #after, #record on given observers6698 ignores errors coming from observers #before6699 ignores errors coming from observers #after6700 ignores errors coming from observers #record6701 on successful execution6702 records a valid observation6703 upon failure6704 exception: "something went wrong"6705 raises the exception6706 retrieving observations6707 records a valid observation6708 exception: SystemStackError6709 raises the exception6710 retrieving observations6711 records a valid observation6712 exception: Interrupt6713 raises the exception6714 retrieving observations6715 records a valid observation6716 sequence of migrations with failures6717 records observations for all migrations6718Gitlab::Ci::Config::Entry::Product::Matrix6719 validations6720 when entry config value is correct6721 #valid?6722 is expected to be valid6723 when entry config generates too many jobs6724 #valid?6725 is expected not to be valid6726 #errors6727 returns error about too many jobs6728 when entry config has only one variable with multiple values6729 #valid?6730 is expected to be valid6731 #errors6732 returns no errors6733 #value6734 returns the value without raising an error6735 when entry config has only one variable with one value6736 #valid?6737 is expected to be valid6738 #errors6739 returns no errors6740 #value6741 returns the value without raising an error6742 when config value has wrong type6743 #valid?6744 is expected not to be valid6745 #errors6746 returns error about incorrect type6747 .compose!6748 when valid job entries composed6749 #value6750 returns key value6751 #descendants6752 creates valid descendant nodes6753 with empty config6754 #value6755 returns empty value6756 #number_of_generated_jobs6757 with empty config6758 is expected to be zero6759 with only one variable6760 is expected to eq 106761 with two variables6762 is expected to eq 506763 with two sets of variables6764 is expected to eq 566765Gitlab::Utils::DelegatorOverride6766 .delegator_target6767 sets the delegator target to the validator6768 when the class does not inherit SimpleDelegator6769 raises an error6770 .delegator_override6771 adds the method name to the allowlist6772 .delegator_override_with6773 adds the method names of the module to the allowlist6774 .verify!6775 does not raise an error when an override is in allowlist6776 raises an error when there is an override6777Gitlab::Usage::Metrics::Aggregates::Sources::PostgresHll6778 metric calculations6779 .calculate_events_union6780 returns the number of unique events in the union of all metrics6781 when there is no aggregated data saved6782 raises error when union data is missing6783 when there is only one metric defined as aggregated6784 returns the number of unique events for that metric6785 .calculate_metrics_intersections6786 returns the number of common events in the intersection of all metrics6787 when there is no aggregated data saved6788 raises error when union data is missing6789 when there is only one metric defined in aggregate6790 returns the number of common/unique events for the intersection of that metric6791 .save_aggregated_metrics6792 with compatible data argument6793 persists serialized data in Redis6794 with monthly key6795 persists serialized data in Redis6796 with all_time key6797 persists serialized data in Redis6798 error handling6799 rescues and reraise ::Redis::CommandError for development and test environments6800 for environment different than development6801 rescues ::Redis::CommandError6802 with incompatible data argument6803 raises error for development environment6804 for environment different than development6805 does not persist data in Redis6806MergeRequests::DeleteSourceBranchWorker6807 #perform6808 with a non-existing merge request6809 does nothing6810 with a non-existing user6811 does nothing6812 with existing user and merge request6813 calls service to delete source branch6814 calls service to try retarget merge requests6815 source branch sha does not match6816 does nothing6817 behaves like an idempotent worker6818 is labeled as idempotent6819 performs multiple times sequentially without raising an exception6820Gitlab::Metrics::Dashboard::ServiceSelector6821 #call6822 is expected to equal Metrics::Dashboard::SystemDashboardService6823 when just the dashboard path is provided6824 is expected to equal Metrics::Dashboard::CustomDashboardService6825 when the path is for the system dashboard6826 is expected to equal Metrics::Dashboard::SystemDashboardService6827 when the path is for the pod dashboard6828 is expected to equal Metrics::Dashboard::PodDashboardService6829 when the path is for the self monitoring dashboard6830 is expected to equal Metrics::Dashboard::SelfMonitoringDashboardService6831 when the embedded flag is provided6832 is expected to equal Metrics::Dashboard::DefaultEmbedService6833 when an incomplete set of dashboard identifiers are provided6834 is expected to equal Metrics::Dashboard::DefaultEmbedService6835 when all the chart identifiers are provided6836 is expected to equal Metrics::Dashboard::DynamicEmbedService6837 when all chart params expect dashboard_path are provided6838 is expected to equal Metrics::Dashboard::DynamicEmbedService6839 with a system dashboard and "custom" group6840 is expected to equal Metrics::Dashboard::CustomMetricEmbedService6841 with a grafana link6842 is expected to equal Metrics::Dashboard::GrafanaMetricEmbedService6843 with the embed defined in the arguments6844 is expected to equal Metrics::Dashboard::TransientEmbedService6845 when cluster is provided6846 is expected to equal Metrics::Dashboard::ClusterDashboardService6847 when cluster is provided and embedded is not true6848 is expected to equal Metrics::Dashboard::ClusterDashboardService6849 when cluster dashboard_path is provided6850 is expected to equal Metrics::Dashboard::ClusterDashboardService6851 when cluster is provided and embed params6852 is expected to equal Metrics::Dashboard::ClusterMetricsEmbedService6853 when metrics embed is for an alert6854 is expected to equal Metrics::Dashboard::GitlabAlertEmbedService6855MergeRequests::ByApprovalsFinder6856 filter by no approvals6857 returns merge requests without approvals6858 filter by any approvals6859 returns merge requests approved by at least one user6860 filter by specific user approval6861 returns merge requests approved by specific user6862 filter by multiple user approval6863 returns merge requests approved by both users6864 limiting max conditional elements6865 returns merge requests approved by both users, considering limit of 2 being defined6866 with empty params6867 returns all merge requests6868Ci::CreatePipelineService6869 include:6870 with a local file6871 behaves like including the file6872 includes the job in the file6873 with a local file with rules with a project variable6874 when the rules matches6875 behaves like including the file6876 includes the job in the file6877 when the rules does not match6878 behaves like not including the file6879 does not include the job in the file6880 with a local file with rules with a predefined pipeline variable6881 when the rules matches6882 behaves like including the file6883 includes the job in the file6884 when the rules does not match6885 behaves like not including the file6886 does not include the job in the file6887 with a local file with rules with a run pipeline variable6888 when the rules matches6889 behaves like including the file6890 includes the job in the file6891 when the rules does not match6892 behaves like not including the file6893 does not include the job in the file6894Packages::Helm::ExtractionWorker6895 #perform6896 with valid package file6897 behaves like an idempotent worker6898 is labeled as idempotent6899 performs multiple times sequentially without raising an exception6900 updates package and package file6901 with invalid package file id6902 doesn't update helm_file_metadatum6903 with an empty package file6904 behaves like handling error6905 mark the package as errored6906 with an invalid YAML6907 behaves like handling error6908 mark the package as errored6909 with an invalid Chart.yaml6910 behaves like handling error6911 mark the package as errored6912Gitlab::Metrics::Samplers::ActionCableSampler6913 behaves like metrics sampler6914 when sampling interval is passed explicitly6915 is expected to eq 426916 when sampling interval is passed through the environment6917 is expected to eq 426918 when no sampling interval is passed anywhere6919 uses the hardcoded default6920 #start6921 calls the sample method on the sampler thread6922 with warmup set to true6923 calls the sample method first on the caller thread6924 #safe_sample6925 calls #sample once6926 when sampling fails with error6927 recovers from errors6928 with logger6929 logs errors6930 #sample6931 includes active connections6932 includes minimum worker pool size6933 includes maximum worker pool size6934 includes current worker pool size6935 includes largest worker pool size6936 includes worker pool completed task count6937 includes worker pool pending task count6938Mutations::Boards::Lists::Update6939 on group issue boards6940 behaves like update board list mutation6941 #resolve6942 with permission to admin board lists6943 updates the list position and collapsed state as expected6944 with permission to read board lists6945 updates the list collapsed state but not the list position6946 without permission to read board lists6947 raises Resource Not Found error6948Gitlab::Ci::Config::Entry::Product::Parallel6949 with invalid config6950 when it is not a numeric value6951 behaves like invalid config6952 #valid?6953 is expected not to be valid6954 #errors6955 returns error about invalid type6956 when it is lower than two6957 behaves like invalid config6958 #valid?6959 is expected not to be valid6960 #errors6961 returns error about invalid type6962 when it is bigger than 506963 behaves like invalid config6964 #valid?6965 is expected not to be valid6966 #errors6967 returns error about invalid type6968 when it is not an integer6969 behaves like invalid config6970 #valid?6971 is expected not to be valid6972 #errors6973 returns error about invalid type6974 with empty hash config6975 behaves like invalid config6976 #valid?6977 is expected not to be valid6978 #errors6979 returns error about invalid type6980 with numeric config6981 when job is specified6982 #valid?6983 is expected to be valid6984 #value6985 returns job needs configuration6986 when :numeric is not allowed6987 behaves like invalid config6988 #valid?6989 is expected not to be valid6990 #errors6991 returns error about invalid type6992 with matrix builds config6993 when matrix is specified6994 #valid?6995 is expected to be valid6996 #value6997 returns job needs configuration6998 when :matrix is not allowed6999 behaves like invalid config7000 #valid?7001 is expected not to be valid7002 #errors7003 returns error about invalid type7004Groups::ProjectsRequiringAuthorizationsRefresh::OnDirectMembershipFinder7005 #execute7006 projects affected when a new member is added to a specific group (here, `Group B`)7007 returns all projects IDs where authorizations need to be created for the userdue to their new membership being created in `Group B`7008 includes only the expected projects7009Gitlab::SlashCommands::IssueClose7010 #execute7011 when the user does not have permission7012 does not allow the user to close the issue7013 the issue exists7014 closes and returns the issue7015 when its reference is given7016 closes and returns the issue7017 the issue does not exist7018 returns not found7019 when the issue is already closed7020 shows the issue7021 .match7022 matches the iid7023 accepts a reference7024Gitlab::Ci::Reports::Security::Locations::Sast7025 behaves like vulnerability location7026 #initialize7027 when all params are given7028 initializes an instance7029 param: :file_path7030 when param file_path is missing7031 raises an error7032 param: :start_line7033 when param start_line is missing7034 raises an error7035 #fingerprint7036 generates expected fingerprint7037 #fingerprint_path7038 generates expected fingerprint7039 #==7040 returns true when fingerprints are equal7041 returns false when fingerprints are different7042AlertManagement::AlertUserMention7043 associations7044 is expected to belong to alert_management_alert required: false7045 is expected to belong to note required: false7046 behaves like has user mentions7047 #has_mentions?7048 when no mentions7049 returns false7050 when mentioned_users_ids not null7051 returns true7052 when mentioned projects7053 returns true7054 when mentioned groups7055 returns true7056Gitlab::AlertManagement::Fingerprint7057 .generate7058 when data is an array7059 returns the hashed fingerprint7060 with a variety of data7061 data: 1117062 performs like a hashed fingerprint7063 data: "fingerprint"7064 performs like a hashed fingerprint7065 data: :fingerprint7066 performs like a hashed fingerprint7067 data: true7068 performs like a hashed fingerprint7069 when data is a hash7070 behaves like fingerprinted Hash7071 performs like a hashed fingerprint7072 hashes with different order7073 calculates the same result7074 hash is too large7075 raises an error7076Ci::DestroyPipelineService7077 user is owner7078 destroys the pipeline7079 clears the cache7080 does not log an audit event7081 when the pipeline has jobs7082 destroys associated jobs7083 destroys associated stages7084 when job has artifacts7085 destroys associated artifacts7086 inserts deleted objects for object storage files7087 when job has trace chunks7088 destroys associated trace chunks7089 removes data from object store7090 when pipeline is in cancelable state7091 cancels the pipeline7092 user is not owner7093 raises an exception7094Ci::CreatePipelineService7095 custom config content7096 creates a pipeline using the content passed in as param7097 when bridge includes yaml from artifact7098 when referenced job exists7099 created a pipeline using the content passed in as param and download the artifact7100 when referenced job does not exist7101 creates an empty pipeline7102Issuable::DestroyLabelLinksService7103 #execute7104 when target is an Issue7105 behaves like service deleting label links of an issuable7106 deletes label links for specified target ID and type7107 when target is a MergeRequest7108 behaves like service deleting label links of an issuable7109 deletes label links for specified target ID and type7110Types::Terraform::StateType7111 is expected to eq "TerraformState"7112 is expected to require graphql authorizations :read_terraform_state7113 fields7114 is expected to have graphql fields :id, :name, :locked_by_user, :locked_at, :latest_version, :created_at, :updated_at, and :deleted_at7115 is expected to be non null7116 is expected to be non null7117 is expected not to be non null7118 is expected not to be non null7119 is expected to be non null7120 is expected to be non null7121 is expected not to be non null7122 is expected not to be non null7123 is expected to eq 37124Spam::AkismetMarkAsSpamService7125 #execute7126 when the spammable object is not submittable7127 does not submit as spam7128 spam is submitted successfully7129 submits as spam7130 updates the spammable object's user agent detail as being submitted as spam7131 when Akismet does not consider it spam7132 does not update the spammable object as spam7133BitbucketServer::Connection7134 #get7135 returns JSON body7136 throws an exception if the response is not 2007137 throws an exception if the response is not JSON7138 throws an exception upon a network error7139 #post7140 returns JSON body7141 throws an exception if the response is not 2007142 throws an exception upon a network error7143 #delete7144 branch API7145 returns JSON body7146 throws an exception if the response is not 2007147 throws an exception upon a network error7148Import::GitlabProjects::CreateProjectService7149 validation7150 is expected to be valid7151 validates presence of path7152 validates presence of name7153 is invalid if the strategy is invalid7154 #execute7155 creates a project successfully7156 when the project creation raises an error7157 fails to create a project7158 when the validation fail7159 fails to create a project7160 when the project contains multilple errors7161 fails to create a project7162 when the strategy adds project parameters7163 merges the strategy project parameters7164ImportExportCleanUpService7165 #execute7166 when the import/export tmp storage directory does not exist7167 does not remove any archives7168 when the import/export tmp storage directory exists7169 removes old files and logs7170 does not remove new files or logs7171 removes old files and logs7172 does not remove new files or logs7173 with uploader exports7174/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 nil7175 removes old files and logs7176 does not remove new files or logs7177Atlassian::JiraConnect::Serializers::PullRequestEntity7178 exposes commentCount7179 with user_notes_count option7180 avoids N+1 database queries7181 uses counts from user_notes_count7182 when count is missing for some MRs7183 uses 0 as default when count for the MR is not available7184RuboCop::Cop::Migration::BackgroundMigrationRecord7185 outside of a migration7186 does not register any offenses7187 in migration7188 adds an offense if inheriting from ActiveRecord::Base7189 adds an offense if create dynamic model from ActiveRecord::Base7190 adds an offense if inheriting from ::ActiveRecord::Base7191Gitlab::Ci::Config::Entry::Kubernetes7192 attributes7193 is expected to respond to #namespace7194 is expected to respond to #has_namespace?7195 validations7196 config7197 is a hash containing known keys7198 is expected to be valid7199 is a hash containing an unknown key7200 is expected not to be valid7201 is a string7202 is expected not to be valid7203 namespace7204 is a string7205 is expected to be valid7206 is a hash7207 is expected not to be valid7208 is not present7209 is expected not to be valid7210Resolvers::Projects::SnippetsResolver7211 #resolve7212 calls SnippetsFinder7213 when using no filter7214 returns expected snippets7215 when using filters7216 returns the snippets by visibility7217 returns the snippets by gid7218 returns the snippets by array of gid7219 when no project is provided7220 returns no snippets7221 when provided user is not current user7222 returns no snippets7223 when project snippets are disabled7224 generates an error7225Gitlab::Checks::PushCheck7226 #validate!7227 does not raise any error7228 when the user is not allowed to push to the repo7229 raises an error7230 when using a DeployKeyAccess instance7231 when the deploy key cannot push to the targetted branch7232 raises an error7233 when the deploy key can push to the targetted branch7234 is valid7235ChatNames::FindUserService7236 #execute7237 find user mapping7238 when existing user is requested7239 returns the existing chat_name7240 updates the last used timestamp if one is not already set7241 only updates an existing timestamp once within a certain time frame7242 when different user is requested7243 returns existing user7244RuboCop::Cop::Migration::DropTable7245 when in deployment migration7246 with drop_table DSL method7247 when in down method7248 does not register an offense7249 when in up method7250 registers an offense7251 when in change method7252 registers an offense7253 with DROP TABLE SQL literal7254 does not register an offense7255 when in up method7256 registers an offense7257 when in change method7258 registers an offense7259 when in post-deployment migration7260 registers no offense7261 when outside of migration7262 registers no offense7263WorkItems::ParentLink7264 associations7265 is expected to belong to work_item required: false7266 is expected to belong to work_item_parent class_name => WorkItem required: false7267 validations7268 is expected to validate that :work_item cannot be empty/falsy7269 is expected to validate that :work_item_parent cannot be empty/falsy7270 hierarchy7271 is valid if not-task parent has task child7272 is not valid if child is not task7273 is not valid if parent is task7274 is not valid if parent is in other project7275 when parent already has maximum number of links7276 is not valid when another link is added7277 existing link is still valid7278DeployTokenPolicy7279 creating a deploy key7280 when user is maintainer7281 is expected to be allowed :create_deploy_token7282 when user is not maintainer7283 is expected to be disallowed :create_deploy_token7284 updating a deploy key7285 when user is maintainer7286 is expected to be allowed :update_deploy_token7287 when user is not maintainer7288 is expected to be disallowed :update_deploy_token7289Sidebars::Groups::Menus::GroupInformationMenu7290 #title7291 when group is a root group7292 is expected to eq "Group information"7293 when group is a child group7294 is expected to eq "Subgroup information"7295 #sprite_icon7296 when group is a root group7297 is expected to eq "group"7298 when group is a child group7299 is expected to eq "subgroup"7300 Menu Items7301 Activity7302 is expected not to be nil7303 behaves like menu access rights7304 is expected not to be nil7305 when the user does not have access7306 is expected to be nil7307 Labels7308 behaves like menu access rights7309 is expected not to be nil7310 when the user does not have access7311 is expected to be nil7312 Members7313 behaves like menu access rights7314 is expected not to be nil7315 when the user does not have access7316 is expected to be nil7317Users::RejectService7318 #execute7319 failures7320 when the executor user is not allowed to reject users7321 returns error result7322 when the executor user is an admin in admin mode7323 when user is not in pending approval state7324 returns error result7325 success7326 when the executor user is an admin in admin mode7327 deletes the user7328 emails the user on rejection7329 logs rejection in application logs7330 audit events7331 when not licensed7332 does not log any audit event7333ErrorTracking::ListProjectsService7334 #execute7335 with authorized user7336 set model attributes to new values7337 uses new api_url and token7338 masked param token7339 uses database token7340 with invalid url7341 returns error7342 when list_sentry_projects returns projects7343 returns the projects7344 with unauthorized user7345 returns error7346 with error tracking disabled7347 ignores enabled flag7348 error_tracking_setting is nil7349 builds a new error_tracking_setting7350OauthAccessToken7351 scopes7352 .distinct_resource_owner_counts7353 returns unique owners7354 .latest_per_application7355 returns only the latest token for each application7356MigrationsHelpers7357 #active_record_base7358 returns the main base model7359 raises ArgumentError for bad database argument7360 ci database configured7361 returns the CI base model (PENDING: Skipping because multiple databases not set up)7362 ci database not configured7363 returns the main base model7364 #table7365 creates a class based on main base model7366 ci database configured7367 create a class based on the CI base model (PENDING: Skipping because multiple databases not set up)7368 ci database not configured7369 creates a class based on main base model7370Gitlab::ImportExport::Project::Sample::DateCalculator7371 #closest date to average7372 when dates are empty7373 is expected to be nil7374 when dates are not empty7375 is expected to eq 2021-01-01 00:00:00.000000000 +00007376 #calculate_by_closest_date_to_average7377 when average date is nil7378 is expected to eq 2022-07-04 07:36:34.760392453 +00007379 when average date is in the past7380 is expected to eq 2023-07-04 07:36:34.785707079 +00007381 when average date is in the future7382 is expected to eq 2022-07-04 07:36:34.810089956 +00007383Gitlab::Diff::LineMapper7384 #old_to_new7385 with a diff file7386 returns the new line number for the old line number7387 without a diff file7388 returns the same line number7389 #new_to_old7390 with a diff file7391 returns the old line number for the new line number7392 without a diff file7393 returns the same line number7394BlobViewer::Markup7395 #banzai_render_context7396 returns context needed for banzai rendering7397 when blob does respond to rendered_markup7398 does sets rendered key7399projects/environments/terminal7400 when environment has external URL7401 shows external URL button7402 when environment does not have external URL7403 shows external URL button7404Resolvers::ReleaseResolver7405 #resolve7406 when the user does not have access to the project7407 returns nil7408 when the user has full access to the project's releases7409 returns the release associated with the specified tag7410 when no tag_name argument was passed7411 raises an error7412MemberSerializer7413 group member7414 handles last group owner assignment7415 behaves like members.json7416 is expected to match schema "members"7417 project member7418 does not invoke group owner assignment7419 behaves like members.json7420 is expected to match schema "members"7421Gitlab::Utils::LazyAttributes7422 class methods7423 is expected to respond to [:lazy_attr_reader, :lazy_attr_accessor]7424 is expected not to respond to [:define_lazy_reader, :define_lazy_writer]7425 instance methods7426 is expected to respond to [:number, :reader_1, :reader_2, :incorrect_type, :incorrect_type=, :accessor_2, :accessor_2=, :string_attribute, :string_attribute=]7427 reading attributes7428 returns the correct values for procs7429 does not return the value if the type did not match what was specified7430 only calls the block once even if it returned `nil`7431 writing attributes7432 sets the correct values7433Gitlab::Kubernetes::ConfigMap7434 #generate7435 builds a Kubeclient Resource7436 #config_map_name7437 returns the config_map name7438Analytics::CycleAnalytics::StageEventHash7439 associations7440 is expected to have many cycle_analytics_project_stages7441 validations7442 is expected to validate that :hash_sha256 cannot be empty/falsy7443 .record_id_by_hash_sha2567444 returns an existing id7445 creates a new record7446 .cleanup_if_unused7447 removes the record7448 does not remove the record7449Sidebars::Groups::Menus::MergeRequestsMenu7450 #render?7451 when user can read merge requests7452 returns true7453 when user cannot read merge requests7454 returns false7455 behaves like pill_count formatted results7456 returns all digits for count value under 10007457 returns truncated digits for count value over 10007458 returns truncated digits for count value over 100007459 returns truncated digits for count value over 1000007460ClusterEntity7461 #as_json7462 when provider type is gcp7463 when status is creating7464 has corresponded data7465 when status is errored7466 has corresponded data7467 when provider type is user7468 has corresponded data7469 when no application has been installed7470 contains helm as not_installable7471HashedStorage::ProjectRollbackWorker7472 #perform7473 skips when project no longer exists7474 skips when project is pending delete7475 delegates rollback to service class when have exclusive lease7476 skips when it cant acquire the exclusive lease7477Projects::RepositoryLanguagesService7478 when detected_repository_languages flag is set7479 when a project is without detected programming languages7480 schedules a worker and returns the empty result7481 when a project is with detected programming languages7482 does not schedule a worker and returns the detected languages7483 sets detected_repository_languages flag7484 when detected_repository_languages flag is not set7485 returns repository languages7486RuboCop::Cop::CodeReuse::Finder7487 flags the use of a Finder inside another Finder7488 flags the use of a Finder inside a model class method7489 does not flag the use of a Finder in a non Finder file7490 does not flag the use of a Finder in a regular class method7491BulkInsertableAssociations7492-- create_table(:_test_bulk_parents, {:force=>true})7493 -> 0.0043s7494-- create_table(:_test_bulk_foos, {:force=>true})7495 -> 0.0052s7496-- create_table(:_test_bulk_bars, {:force=>true})7497 -> 0.0046s7498-- create_table(:_test_simple_bars, {:force=>true})7499 -> 0.0044s7500 saving bulk insertable associations7501 can disable bulk-inserts within a bulk-insert block7502 when items already have IDs7503 stores nothing and raises an error7504 when items have no IDs set7505 stores them all and updates items with IDs7506 when items are empty7507 does nothing7508 when relation name does not match class name7509 stores them all7510 with multiple threads7511 isolates bulk insert behavior between threads7512 with multiple associations7513 isolates writes between associations7514 passing bulk insert arguments7515 disables validations on target association7516 when association is not bulk-insert safe7517 saves it normally7518 when association is not has_many7519 saves it normally7520 when an item is not valid7521 .save7522 invalidates the parent and returns false7523 .save!7524 invalidates the parent and raises error7525-- drop_table(:_test_bulk_foos, {:force=>true})7526 -> 0.0025s7527-- drop_table(:_test_bulk_bars, {:force=>true})7528 -> 0.0024s7529-- drop_table(:_test_simple_bars, {:force=>true})7530 -> 0.0022s7531-- drop_table(:_test_bulk_parents, {:force=>true})7532 -> 0.0020s7533Packages::Pypi::PackageFinder7534 execute7535 within a project7536 is expected to eq #<Packages::Package id: 90, project_id: 1270, created_at: "2022-07-04 07:36:54.033925061 +0000", upda...name: "pypi-package-2", version: "1.0.2", package_type: "pypi", creator_id: 2469, status: "default">7537 within a group7538 is expected to eq #<Packages::Package id: 90, project_id: 1270, created_at: "2022-07-04 07:36:54.033925061 +0000", upda...name: "pypi-package-2", version: "1.0.2", package_type: "pypi", creator_id: 2469, status: "default">7539Gitlab::GlRepository7540 .parse7541 parses a project gl_repository7542 parses a project wiki gl_repository7543 parses a snippet gl_repository7544 parses a design gl_repository7545 throws an argument error on an invalid gl_repository type7546 throws an argument error on an invalid gl_repository id7547AlertManagement::Alerts::Todo::CreateService7548 #execute7549 when the user is anonymous7550 behaves like permissions error7551 returns an error7552 when the user does not have permission7553 behaves like permissions error7554 returns an error7555 when user has permission7556 creates a todo7557 returns the alert and todo in the payload7558 when the user has a marked todo for the alert7559 when todo is pending7560 does not create a todo7561 returns an error7562 when todo is done7563 is expected to equal true7564 is expected to change `Todo.count` by 17565Gitlab::WebIde::Config7566 when config is valid7567 #to_hash7568 returns hash created from string7569 #valid?7570 is valid7571 has no errors7572 when config is invalid7573 when yml is incorrect7574 .new7575 raises error7576 when config logic is incorrect7577 #valid?7578 is not valid7579 has errors7580 #errors7581 returns an array of strings7582Gitlab::GithubImport::Importer::PullRequestMergedByImporter7583 when the merger user can be mapped7584 assigns the merged by user when mapped7585 when the merger user cannot be mapped to a gitlab user7586 adds a note referencing the merger user7587 when the merger user is not provided7588 adds a note referencing the merger user7589X509CertificateCredentialsValidator7590 is not valid when the certificate is not valid7591 is not valid without a certificate7592 when a valid certificate is passed7593 does not track an error for the certificate7594 adds an error when not passing a correct private key7595 adds an error when private key does not match certificate7596 has no error when the private key is correct7597 when using a passphrase7598 is valid with the correct data7599 adds an error when the passphrase is wrong7600BulkImports::Groups::Pipelines::GroupPipeline7601 #run7602 imports new group into destination group7603 pipeline parts7604 is expected to includes the BulkImports::Pipeline module7605 is expected to includes the BulkImports::Pipeline::Runner module7606 has extractors7607 has transformers7608 has loaders7609Gitlab::ImportExport::HashUtil7610 .deep_symbolize_array!7611 symbolizes keys7612 .deep_symbolize_array_with_date!7613 symbolizes keys7614 transforms date strings into Time objects7615Gitlab::GithubImport::Importer::PullRequestsMergedByImporter7616 is expected to includes the Gitlab::GithubImport::ParallelScheduling module7617 #representation_class7618 is expected to eq Gitlab::GithubImport::Representation::PullRequest7619 #importer_class7620 is expected to eq Gitlab::GithubImport::Importer::PullRequestMergedByImporter7621 #collection_method7622 is expected to eq :pull_requests_merged_by7623 #id_for_already_imported_cache7624 is expected to eq 17625 #each_object_to_import7626 fetches the merged pull requests data7627 skips cached merge requests7628Types::IssueStatusCountsType7629 is expected to eq "IssueStatusCountsType"7630 exposes the expected fields7631CleanupContainerRepositoryWorker7632 #perform7633 bulk delete api7634 executes the destroy service7635 does not raise error when user could not be found7636 does not raise error when repository could not be found7637Gitlab::SlashCommands::Presenters::IssueSearch7638 formats the message correct7639 shows a list of results7640Gitlab::DependencyLinker::ComposerJsonLinker7641 .support?7642 supports composer.json7643 does not support other files7644 #link7645 does not link the module name7646 links the homepage7647 links the repository URL7648 links the license7649 links dependencies7650 does not link core dependencies7651Resolvers::ProjectResolver7652 does not increase complexity depending on number of load limits7653 #resolve7654 batch-resolves projects by full path7655 resolves an unknown full_path to nil7656 treats project full path as case insensitive7657Gitlab::Graphql::Authorize::AuthorizeResource7658 when the user is allowed to perform the action7659 #authorized_find!7660 returns the object7661 #authorize!7662 does not raise an error7663 when the user is not allowed to perform the action7664 #authorized_find!7665 raises an error7666 #authorize!7667 raises an error7668 when the class does not define #find_object7669 raises a comprehensive error message7670 #authorize7671 adds permissions from subclasses to those of superclasses when used on classes7672 authorizes_object?7673 is false by default7674 is true after calling authorizes_object!7675 is true if a parent authorizes_object7676Mutations::AlertManagement::PrometheusIntegration::Update7677 is expected to require graphql authorizations :admin_project7678 #resolve7679 user has sufficient access to project7680 when ::Projects::Operations::UpdateService responds with success7681 returns the integration with no errors7682 when ::Projects::Operations::UpdateService responds with an error7683 returns errors7684 when resource is not accessible to the user7685 raises an error if the resource is not accessible to the user7686Types::TimeType7687 is expected to eq "Time"7688 coerces Time object into ISO 86017689 coerces an ISO-time into Time object7690 rejects invalid input7691 allows nil7692Resolvers::DesignManagement::VersionInCollectionResolver7693 #resolve7694 Neither id nor sha is passed as parameters7695 generates an appropriate error7696 we pass an id7697 is expected to eq #<DesignManagement::Version id: 42, sha: "849a77904299367a6c8be5adaee17c0d6b877fc3", issue_id: 443, created_at: "2022-07-04 07:37:08.108557545 +0000", author_id: 2490>7698 we pass a sha7699 is expected to eq #<DesignManagement::Version id: 42, sha: "849a77904299367a6c8be5adaee17c0d6b877fc3", issue_id: 443, created_at: "2022-07-04 07:37:08.108557545 +0000", author_id: 2490>7700 we pass an inconsistent mixture of sha and version id7701 is expected to be nil7702Projects::Members::EffectiveAccessLevelPerUserFinder#execute7703 a combination of all possible avenues of membership7704 includes the highest access level from all avenues of memberships for the specific user alone7705Ci::BuildUnscheduleService7706 #execute7707 when user is authorized to unschedule the build7708 when build is scheduled7709 transits build to manual7710 when build is not scheduled7711 responds with unprocessable entity7712 when user is not authorized to unschedule the build7713 responds with forbidden7714Projects::OpenMergeRequestsCountService7715 behaves like a counter caching service7716 #count7717 caches the count7718 #refresh_cache7719 refreshes the cache7720 #delete_cache7721 removes the cache7722 #uncached_count7723 does not cache the count7724 #count7725 returns the number of open merge requests7726Types::Metrics::DashboardType7727 is expected to eq "MetricsDashboard"7728 has the expected fields7729 annotations field7730 is expected to have graphql type #<Class:0x00007f8048c07770>7731 is expected to have graphql resolver Resolvers::Metrics::Dashboards::AnnotationResolver7732Resolvers::BranchCommitResolver7733 #resolve7734 resolves commit7735 sets project container7736 is N+1 safe7737 when branch does not exist7738 returns nil7739projects/settings/integrations/edit7740 is expected not to have text "Recent events"7741 integration using WebHooks7742 is expected to have text "Recent events"7743Ci::DestroySecureFileService7744 user is a maintainer7745 destroys the secure file7746 user is a developer7747 raises an exception7748Types::Snippets::BlobActionInputType7749 is expected to eq "SnippetBlobActionInputType"7750 has the correct arguments7751 sets the type of action argument to BlobActionEnum7752Gitlab::Utils::DeepSize7753 is expected to eq 10485767754 is expected to eq 1007755 #initialize7756 when max_size is nil7757 sets max_size to DEFAULT_MAX_SIZE7758 when max_depth is nil7759 sets max_depth to DEFAULT_MAX_DEPTH7760 #valid?7761 when data within size and depth limits7762 is expected to be valid7763 when data not within size limit7764 is expected not to be valid7765 when data not within depth limit7766 is expected not to be valid7767 .human_default_max_size7768 returns 1 MB7769Gitlab::Ci::Build::Prerequisite::Factory7770 .for_build7771 prerequisite is unmet7772 is expected to eq [#<InstanceDouble(Gitlab::Ci::Build::Prerequisite::KubernetesNamespace) (anonymous)>]7773 prerequisite is met7774 is expected to be empty7775Gitlab::Database::SharedModel7776 using an external connection7777 overrides the connection for the duration of the block7778 does not affect connections in other threads7779 raises an error if the connection does not include `:gitlab_shared` schema7780 when multiple connection overrides are nested7781 allows the nesting with the same connection object7782 raises an error if the connection is changed7783 when the block raises an error7784 re-raises the error, removing the overridden connection7785 #connection_db_config7786 returns the class connection_db_config7787Gitlab::ReferenceCounter7788 #increase7789 increases and sets the expire time of a reference count for a path7790 #decrease7791 decreases the reference count for a path7792 warns if attempting to decrease a counter with a value of zero or less, and resets the counter7793 #value7794 get the reference count for a path7795 #reset!7796 resets reference count down to zero7797 #expires_in7798 displays the expiration time in seconds7799Discussions::UnresolveService7800 #execute7801 unresolves the discussion7802 counts the unresolve event7803JsRegexValidator7804 #validates_each7805 user_default_internal_regex: nil, result: []7806 generates correct errors7807 user_default_internal_regex: "", result: []7808 generates correct errors7809 user_default_internal_regex: "(?#comment)", result: ["Regex Pattern (?#comment) can not be expressed in Javascript"]7810 generates correct errors7811 user_default_internal_regex: "(?(a)b|c)", result: ["invalid conditional pattern: /(?(a)b|c)/i"]7812 generates correct errors7813JiraConnect::SyncMergeRequestWorker7814 behaves like worker with data consistency7815 .get_data_consistency_feature_flag_enabled?7816 returns true7817 .get_data_consistency7818 returns correct data consistency7819 #perform7820 calls JiraConnect::SyncService#execute7821 when MR no longer exists7822 does not call JiraConnect::SyncService7823Packages::Nuget::ServiceIndexPresenter7824 #version7825 for a group7826 is expected to eq "3.0.0"7827 for a project7828 is expected to eq "3.0.0"7829 #resources7830 for a group7831 behaves like returning valid resources7832 has valid resources7833 does not return the publish resource7834 for a project7835 behaves like returning valid resources7836 has valid resources7837 does return the publish resource7838Packages::Composer::CacheUpdateWorker7839 #perform7840 is labeled as idempotent7841 performs multiple times sequentially without raising an exception7842 creating a package7843 does nothing7844 deleting a package7845 does nothing7846Types::WorkItems::Widgets::DescriptionInputType7847 is expected to eq "WorkItemWidgetDescriptionInput"7848 is expected to contain exactly "description"7849RuboCop::Cop::Scalability::BulkPerformWithContext7850 adds an offense when calling bulk_perform_async7851 adds an offense when calling bulk_perform_in7852 does not add an offense for migrations7853 does not add an offence for specs7854 does not add an offense for scheduling on the BackgroundMigrationWorker7855 does not add an offense for scheduling on the CiDatabaseWorker7856Ci::DailyBuildGroupReportResultEntity7857 #as_json7858 is expected to include :date7859 is expected not to include :group_name7860 is expected to include :coverage7861 when given param_type is not allowed7862 is expected not to include :coverage7863 is expected not to include :something_else7864Ci::GenerateTerraformReportsService7865 #execute7866 when head pipeline has terraform reports7867 returns status and data7868 when head pipeline has corrupted terraform reports7869 returns a report with error messages7870 when head pipeline is corrupted7871 returns status and error message7872Packages::Helm::FileMetadatum7873 relationships7874 is expected to belong to package_file required: false7875 validations7876 #package_file7877 is expected to validate that :package_file cannot be empty/falsy7878 #valid_helm_package_type7879 validates package of type helm7880 #channel7881 validates #channel7882 #metadata7883 validates #metadata7884pages storage check7885 when local store does not exist yet7886 is expected to be truthy7887 when pages is not enabled7888 is expected to be truthy7889 when pages is enabled7890 local_storage_enabled: false, object_storage_enabled: false, raises_exception: true7891 validates pages storage configuration7892 local_storage_enabled: false, object_storage_enabled: true, raises_exception: false7893 validates pages storage configuration7894 local_storage_enabled: true, object_storage_enabled: false, raises_exception: false7895 validates pages storage configuration7896 local_storage_enabled: true, object_storage_enabled: true, raises_exception: false7897 validates pages storage configuration7898 local_storage_enabled: 1, object_storage_enabled: 0, raises_exception: false7899 validates pages storage configuration7900 local_storage_enabled: nil, object_storage_enabled: nil, raises_exception: true7901 validates pages storage configuration7902BulkImports::FileExportService7903 #execute7904 executes export service and archives exported data for each file relation7905 when unsupported relation is passed7906 raises an error7907 #exported_filename7908 returns filename of the exported file7909Gitlab::InactiveProjectsDeletionWarningTracker7910 .notified_projects7911 returns the list of projects for which deletion warning email has been sent7912 .reset_all7913 deletes all the projects for which deletion warning email was sent7914 #notified?7915 returns true if the project has already been notified7916 returns false if the project has not been notified7917 #mark_notified7918 marks the project as being notified7919 #notification_date7920 returns the date if a deletion warning email has been sent for a given project7921 returns nil if a deletion warning email has not been sent for a given project7922 #scheduled_deletion_date7923 without a stored deletion email date7924 behaves like returns the expected deletion date7925 is expected to eq "2022-08-04"7926 with a stored deletion email date7927 behaves like returns the expected deletion date7928 is expected to eq "2022-08-04"7929 #reset7930 resets the project as not being notified7931Projects::ImportExport::RelationExportUpload7932 stores export file7933 associations7934 is expected to belong to relation_export required: false7935BulkImports::NetworkError7936 .new7937 requires either a message or a HTTP response7938 #retriable?7939 returns true for MAX_RETRIABLE_COUNT times when cause if one of RETRIABLE_EXCEPTIONS7940 returns true for MAX_RETRIABLE_COUNT times when response is one of RETRIABLE_CODES7941 returns false for other exceptions7942 #retry_delay7943 returns the default value when there is not a rate limit error7944 when the exception is a rate limit error7945 returns the "Retry-After"7946 returns the default value when there is no "Retry-After" header7947BulkImports::LfsObjectsExportService7948 #execute7949 exports lfs objects and their repository types7950 when lfs object has file on disk missing7951 does not attempt to copy non-existent file7952 when lfs object is remotely stored7953 downloads lfs object from object storage7954Packages::Debian::ExtractDebMetadataService7955 with correct file7956 return as expected7957 with incorrect file7958 raise error7959Gitlab::Throttle7960 .protected_paths_enabled?7961 returns Application Settings throttle_protected_paths_enabled?7962 .bypass_header7963 is nil7964 when a header is configured7965 is a funny upper case rack key7966 .rate_limiting_response_text7967 when the setting is not present7968 returns the default value with a trailing newline7969 when the setting is present7970 returns the default value with a trailing newline7971Types::Namespace::PackageSettingsType7972 is expected to eq "PackageSettings"7973 is expected to eq "Namespace-level Package Registry settings"7974 is expected to require graphql authorizations :admin_package7975 maven_duplicate_exception_regex field7976 is expected to have graphql type Types::UntrustedRegexp7977Analytics::CycleAnalytics::Stages::ListService7978 returns only the default stages7979 provides the default stages as non-persisted objects7980DiscussionNote7981 #to_ability_name7982 is expected to eq "note"7983Banzai::Pipeline::PostProcessPipeline7984 when a document only has upload links7985 does not make any Gitaly calls7986 when both upload and repository links are present7987 searches for attributes only once7988FeatureFlags::HookService7989 #execute_hooks7990 calls feature_flag.project.execute_hooks7991 HOOK_NAME7992 is expected to eq :feature_flag_hooks7993Gitlab::Graphql::Present::FieldExtension7994 when the object does not declare a presenter7995 does not affect normal resolution7996 when the field is declared on an interface, and implemented by a presenter7997 resolves the interface field using the implementation from the presenter7998 when the implementation is inherited7999 resolves the interface field using the implementation from the presenter8000 interactions with inheritance8001 can resolve value, foo and bar8002 when the object declares a presenter8003 when the presenter overrides the original method8004 behaves like calling the presenter method8005 calls the presenter method8006 when the presenter provides a new method8007 when we select the original field8008 is unaffected8009 when we select the new field8010 behaves like calling the presenter method8011 calls the presenter method8012Gitlab::AnonymousSession8013 removes obsolete lookup through ip entries8014 #store_session_ip8015 adds session id to proper key8016 adds expiration time to key8017 when there is already one session8018 increments the session count8019 #stored_sessions8020 returns all anonymous sessions per ip8021JiraConnect::SyncFeatureFlagsWorker8022 behaves like worker with data consistency8023 .get_data_consistency_feature_flag_enabled?8024 returns true8025 .get_data_consistency8026 returns correct data consistency8027 #perform8028 when object exists8029 calls the Jira sync service8030 when object does not exist8031 does not call the sync service8032Types::GroupMemberRelationEnum8033 is expected to eq "GroupMemberRelation"8034 exposes all the existing group member relation type values8035Gitlab::GrapeLogging::Loggers::CloudflareLogger8036 #parameters8037 with no Cloudflare headers8038 returns an empty hash8039 with Cloudflare headers8040 returns the correct duration in seconds8041Graphql::FieldSelection8042 can report on the paths that are selected8043 can serialize a field selection nicely8044OmniAuth::Strategies::OAuth28045 verifies the gem version8046 when a Faraday exception is raised8047 exception: Faraday::TimeoutError8048 passes the exception to OmniAuth8049 exception: Faraday::ConnectionFailed8050 passes the exception to OmniAuth8051MergeRequests::Mergeability::CheckDraftStatusService8052 #execute8053 when the merge request is a draft8054 returns a check result with status failed8055 when the merge request is not a draft8056 returns a check result with status success8057 #skip?8058 returns false8059 #cacheable?8060 returns false8061Import::GitlabProjects::RemoteFileValidator8062 does nothing when the oject is valid8063 content_length validation8064 is invalid with file too small8065 is invalid with file too large8066 content_type validation8067 only allows ALLOWED_CONTENT_TYPES as content_type8068GitLab monkey-patches to AttrEncrypted8069 #attribute_instance_methods_as_symbols_available?8070 returns false8071 does not define virtual attributes8072 calls attr_changed? method with kwargs8073BulkImports::Projects::Pipelines::ContainerExpirationPolicyPipeline8074 #run8075 imports project feature8076DiffViewer::Image8077 .can_render?8078 returns false if both old and new blob are absent8079 returns true if the old blob is present8080 returns true if the new blob is present8081 returns true if both old and new blobs are present8082Resolvers::TopicsResolver8083 #resolve8084 finds all topics8085 with search8086 searches environment by name8087 when the search term does not match any topic8088 is empty8089Banzai::Filter::JiraImport::AdfToCommonmarkFilter8090 renders a complex document8091 renders original source when it is invalid JSON8092 renders original source when missing document node8093API::Entities::Ci::JobRequest::Service8094 exposes attributes8095 when the ports param is nil8096 does not return the ports8097 when the FF ci_docker_image_pull_policy is disabled8098 is expected not to have key :pull_policy8099DependencyProxy::GroupSetting8100 relationships8101 is expected to belong to group required: false8102 validations8103 is expected to validate that :group cannot be empty/falsy8104Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumnData8105 #arel_column8106 delegates to column_expression8107 #column_for_projection8108 returns the expression with AS using the original column name8109 #projection8110 returns the expression with AS using the specified column lias8111Banzai::Filter::ImageLazyLoadFilter8112 adds a class attribute8113 appends to the current class attribute8114 adds a async decoding attribute8115 transforms the image src to a data-src8116 works with external images8117Gitlab::Ci::JwtV28118 is expected to be a kind of Gitlab::Ci::Jwt8119 #payload8120 has correct values for the standard JWT attributes8121Types::EventType8122 is expected to eq "Event"8123 is expected to require graphql authorizations :read_event8124 is expected to have graphql fields :id, :author, :action, :created_at, and :updated_at8125Gitlab::Git::ChangedPath8126 #new_file?8127 when it is a new file8128 returns true8129 when it is not a new file8130 returns false8131API::Entities::PlanLimit8132 exposes correct attributes8133 does not expose id and plan_id8134Deployments::ArchiveInProjectWorker8135 #perform8136 executes Deployments::ArchiveInProjectService8137Types::Packages::Helm::MetadataType8138 is expected to eq "PackageHelmMetadataType"8139 includes helm json fields8140Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns8141 builds array column names8142 when no columns are given8143 is expected to raise /No array columns were given/8144 when Arel AS node is given as input8145 works with Arel AS nodes8146Banzai::Pipeline::EmailPipeline8147 .filters8148 returns the expected type8149 excludes ImageLazyLoadFilter8150 shows punycode for autolinks8151Gitlab::Ci::Config::Entry::Paths8152 validations8153 when entry config value is valid8154 #value8155 returns key value8156 #valid?8157 is valid8158 when entry value is not valid8159 #errors8160 saves errors8161Types::ProjectMemberRelationEnum8162 is expected to eq "ProjectMemberRelation"8163 exposes all the existing project member relation type values8164Types::IssuableSeverityEnum8165 is expected to eq "IssuableSeverity"8166 exposes all the existing issuable severity values8167Types::SavedReplyType8168 is expected to eq "SavedReply"8169 has all the required fields8170 is expected to require graphql authorizations :read_saved_replies8171ActiveRecord::ConnectionAdapters::PostgreSQLAdapter8172 when warn_on_new_connection is enabled8173 warns on new connection8174 when warn_on_new_connection is disabled8175 does not warn on new connection8176Gitlab::PerformanceBar::Stats8177 #process8178 #process8179 logs each SQL query including its duration8180 logs an error when the request could not be processed8181RuboCop::Cop::Graphql::GIDExpectedType8182 adds an offense when there is no expected_type parameter8183 does not add an offense for calls that have an expected_type parameter8184Gitlab::Kubernetes::Kubeconfig::Entry::Cluster8185 #to_h8186 is expected to eq {:cluster=>{:server=>"url"}, :name=>"name"}8187 with a certificate8188 is expected to eq {:cluster=>{:"certificate-authority-data"=>"Y2VydGlmaWNhdGU=", :server=>"url"}, :name=>"name"}8189Types::Ci::PipelineMergeRequestEventTypeEnum8190 is expected to eq "PipelineMergeRequestEventType"8191 has specific values8192Admin::UserEntity8193 #as_json8194 exposes correct attributes8195Types::Ci::JobKindEnum8196 exposes some job type values8197Mattermost::Client8198 JSON parse error8199 yields an error on malformed JSON8200/builds/gitlab-org/gitlab/spec/lib/mattermost/client_spec.rb:12: warning: redefining constant Struct::Request8201 shows a client error if the request was unsuccessful8202Gitlab::Utils::MergeHash8203 .crush8204 can flatten a hash to each element8205 .elements8206 deep merges an array of elements8207Resolvers::Ci::RunnerPlatformsResolver8208 #resolve8209 returns all possible runner platforms8210Gitlab::APIAuthentication::TokenTypeBuilder8211 #token_types8212 passes strategies and resolvers to SentThroughBuilder8213Gitlab::GithubImport::ImportIssueEventWorker8214 #import8215 imports an issue event8216Types::PermissionTypes::Project8217 is expected to have graphql field :destroy_design8218EnableSearchSettingsHelper8219 #enable_search_settings8220 sets content for before_content8221Gitlab::APIAuthentication::SentThroughBuilder8222 #sent_through8223 adds a strategy for each of locators x resolvers8224Types::MergeRequestReviewStateEnum8225 the correct enum members8226Gitlab::GithubImport::Representation::LfsObject8227 #github_identifiers8228 returns a hash with needed identifiers8229Knapsack report was generated. Preview:8230{8231 "spec/services/groups/transfer_service_spec.rb": 191.61686716700024,8232 "spec/services/merge_requests/refresh_service_spec.rb": 228.22752546899937,8233 "spec/services/issues/update_service_spec.rb": 132.5880079159997,8234 "spec/lib/gitlab/import_export/project/tree_saver_spec.rb": 79.81178355699922,8235 "spec/tasks/gitlab/storage_rake_spec.rb": 93.80710997200003,8236 "spec/lib/gitlab/color_spec.rb": 9.977862800998992,8237 "spec/lib/gitlab/database/migration_helpers_spec.rb": 19.710967035000067,8238 "spec/models/commit_spec.rb": 33.640345064999565,8239 "spec/models/clusters/applications/crossplane_spec.rb": 37.09646289199918,8240 "spec/lib/banzai/reference_parser/snippet_parser_spec.rb": 27.616196390999903,8241 "spec/lib/gitlab/ci/parsers/security/common_spec.rb": 25.606061976999626,8242 "spec/finders/notes_finder_spec.rb": 37.60756903299989,8243 "spec/lib/gitlab/ci/status/pipeline/factory_spec.rb": 29.880127894999532,8244 "spec/graphql/resolvers/issues_resolver_spec.rb": 22.7086682879999,8245 "spec/helpers/namespaces_helper_spec.rb": 21.542972237999493,8246 "spec/models/concerns/avatarable_spec.rb": 17.50763109500076,8247 "spec/services/snippets/create_service_spec.rb": 13.357933478000632,8248 "spec/models/notification_recipient_spec.rb": 19.959075067999947,8249 "spec/services/projects/import_export/export_service_spec.rb": 15.100654443998792,8250 "spec/models/project_feature_spec.rb": 13.662377602999186,8251 "spec/lib/gitlab/ci/parsers/coverage/sax_document_spec.rb": 6.472084728999107,8252 "spec/models/operations/feature_flags/user_list_spec.rb": 11.23404177699922,8253 "spec/workers/packages/debian/process_changes_worker_spec.rb": 16.56482246199994,8254 "spec/models/projects/build_artifacts_size_refresh_spec.rb": 13.588750434999383,8255 "spec/helpers/blob_helper_spec.rb": 12.464648246999786,8256 "spec/presenters/ci/pipeline_presenter_spec.rb": 10.407829046998813,8257 "spec/services/issues/zoom_link_service_spec.rb": 7.319075175999387,8258 "spec/lib/gitlab/database/transaction/observer_spec.rb": 6.581048293001004,8259 "spec/models/serverless/domain_spec.rb": 19.042786080999576,8260 "spec/services/pages/migrate_from_legacy_storage_service_spec.rb": 12.51878946999932,8261 "spec/services/merge_requests/approval_service_spec.rb": 14.666361817000507,8262 "spec/policies/metrics/dashboard/annotation_policy_spec.rb": 5.815709804999642,8263 "spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb": 13.882387182000457,8264 "spec/models/onboarding_progress_spec.rb": 6.695953526999801,8265 "spec/presenters/blob_presenter_spec.rb": 4.02083215499988,8266 "spec/lib/backup/repositories_spec.rb": 22.526443665001352,8267 "spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb": 6.224773964999258,8268 "spec/graphql/features/authorization_spec.rb": 3.916522800000166,8269 "spec/workers/merge_request_cleanup_refs_worker_spec.rb": 12.571054541000194,8270 "spec/models/project_group_link_spec.rb": 8.653197202000229,8271 "spec/graphql/mutations/issues/set_confidential_spec.rb": 6.596205431000271,8272 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 8.211234446000162,8273 "spec/services/discussions/update_diff_position_service_spec.rb": 11.408850490999612,8274 "spec/services/milestones/promote_service_spec.rb": 9.539673514000242,8275 "spec/models/commit_signatures/x509_commit_signature_spec.rb": 10.539015276999635,8276 "spec/finders/alert_management/alerts_finder_spec.rb": 5.384044307000295,8277 "spec/serializers/ci/trigger_entity_spec.rb": 8.050304619999224,8278 "spec/lib/gitlab/alert_management/payload/base_spec.rb": 1.6461928209992038,8279 "spec/lib/gitlab/search/found_blob_spec.rb": 12.111901088001105,8280 "spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb": 9.182653275998746,8281 "spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb": 4.661244932000045,8282 "spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb": 6.578777753000395,8283 "spec/services/metrics/dashboard/annotations/create_service_spec.rb": 9.108085236000989,8284 "spec/lib/gitlab/ci/reports/security/report_spec.rb": 1.9209910700010369,8285 "spec/finders/projects/groups_finder_spec.rb": 4.938191180999638,8286 "spec/models/personal_snippet_spec.rb": 1.5646808130004501,8287 "spec/workers/tasks_to_be_done/create_worker_spec.rb": 6.578772944001685,8288 "spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb": 1.2868801530003111,8289 "spec/workers/deployments/update_environment_worker_spec.rb": 7.1480672710004,8290 "spec/finders/packages/conan/package_finder_spec.rb": 3.9095868109998264,8291 "spec/lib/gitlab/github_import/importer/issue_importer_spec.rb": 4.412599608998789,8292 "spec/lib/gitlab/ci/badge/coverage/metadata_spec.rb": 4.883038680000027,8293 "spec/models/customer_relations/organization_spec.rb": 1.7909979590003786,8294 "spec/models/lfs_file_lock_spec.rb": 2.547647979999965,8295 "spec/serializers/merge_request_diff_entity_spec.rb": 5.759355521999169,8296 "spec/lib/gitlab/discussions_diff/file_collection_spec.rb": 6.570377414000177,8297 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 2.886052040999857,8298 "spec/lib/gitlab/pagination/keyset/paginator_spec.rb": 2.7021988079995936,8299 "spec/lib/gitlab/repository_cache_spec.rb": 1.5750701809993188,8300 "spec/services/system_notes/time_tracking_service_spec.rb": 4.267723229999319,8301 "spec/services/clusters/applications/patch_service_spec.rb": 6.161654114001067,8302 "spec/services/incident_management/pager_duty/create_incident_issue_service_spec.rb": 2.9790495769993868,8303 "spec/services/work_items/task_list_reference_replacement_service_spec.rb": 1.8384749320011906,8304 "spec/helpers/invite_members_helper_spec.rb": 1.5700404219987831,8305 "spec/services/users/create_service_spec.rb": 2.558402438000485,8306 "spec/services/projects/lfs_pointers/lfs_link_service_spec.rb": 3.4407035799995356,8307 "spec/lib/gitlab/api_authentication/token_resolver_spec.rb": 1.8040894369987654,8308 "spec/lib/gitlab/diff/suggestion_spec.rb": 6.131725319000907,8309 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 2.7351833320008154,8310 "spec/services/clusters/destroy_service_spec.rb": 4.637881205999292,8311 "spec/models/blob_viewer/metrics_dashboard_yml_spec.rb": 1.6759151260012004,8312 "spec/services/feature_flags/update_service_spec.rb": 1.637973212000361,8313 "spec/views/layouts/_header_search.html.haml_spec.rb": 3.2179029020007874,8314 "spec/graphql/types/query_type_spec.rb": 0.9754592680001224,8315 "spec/lib/gitlab/middleware/same_site_cookies_spec.rb": 1.1317802459998347,8316 "spec/workers/repository_check/single_repository_worker_spec.rb": 5.1707144690008136,8317 "spec/lib/gitlab/fogbugz_import/importer_spec.rb": 3.3459448529993097,8318 "spec/lib/gitlab/event_store/store_spec.rb": 1.2531103580004128,8319 "spec/lib/gitlab/kubernetes/helm/api_spec.rb": 0.7260705339995184,8320 "spec/models/concerns/ci/maskable_spec.rb": 0.9248868659997243,8321 "spec/lib/gitlab/metrics/dashboard/validator_spec.rb": 1.2866891230005422,8322 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 1.1200386170003185,8323 "spec/services/members/import_project_team_service_spec.rb": 1.7216076899985637,8324 "spec/models/bulk_imports/export_spec.rb": 1.6998464519983827,8325 "spec/lib/gitlab/health_checks/redis/cache_check_spec.rb": 0.4760408309994091,8326 "spec/lib/gitlab/database/postgres_partitioned_table_spec.rb": 0.8816705320004985,8327 "spec/services/packages/debian/update_distribution_service_spec.rb": 1.939547488000244,8328 "spec/workers/design_management/new_version_worker_spec.rb": 3.200591335000354,8329 "spec/models/time_tracking/timelog_category_spec.rb": 1.8611858599997504,8330 "spec/finders/boards/boards_finder_spec.rb": 3.420752463000099,8331 "spec/uploaders/dependency_proxy/file_uploader_spec.rb": 1.3970757070001127,8332 "spec/lib/gitlab/database/migrations/instrumentation_spec.rb": 1.1635343810012273,8333 "spec/lib/gitlab/ci/config/entry/product/matrix_spec.rb": 0.8162379209989012,8334 "spec/lib/gitlab/utils/delegator_override_spec.rb": 0.8736550430003263,8335 "spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb": 0.6564437050001288,8336 "spec/workers/merge_requests/delete_source_branch_worker_spec.rb": 2.2379958140008966,8337 "spec/lib/gitlab/metrics/dashboard/service_selector_spec.rb": 0.7770834370003286,8338 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 3.3047600990012143,8339 "spec/services/ci/create_pipeline_service/include_spec.rb": 2.785554415000661,8340 "spec/workers/packages/helm/extraction_worker_spec.rb": 0.9570631810001942,8341 "spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb": 0.8363199580016953,8342 "spec/graphql/mutations/boards/lists/update_spec.rb": 1.3116268490011862,8343 "spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb": 1.0703621249995194,8344 "spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb": 3.523376837998512,8345 "spec/lib/gitlab/slash_commands/issue_close_spec.rb": 3.0344084789994668,8346 "spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb": 0.5058770860014192,8347 "spec/models/alert_management/alert_user_mention_spec.rb": 0.5405072609992203,8348 "spec/lib/gitlab/alert_management/fingerprint_spec.rb": 0.744241142001556,8349 "spec/services/ci/destroy_pipeline_service_spec.rb": 2.899385238000832,8350 "spec/services/ci/create_pipeline_service/custom_config_content_spec.rb": 1.8047181380006805,8351 "spec/services/issuable/destroy_label_links_service_spec.rb": 3.3357233249989804,8352 "spec/graphql/types/terraform/state_type_spec.rb": 0.5537631600000168,8353 "spec/services/spam/akismet_mark_as_spam_service_spec.rb": 0.9227167760000157,8354 "spec/lib/bitbucket_server/connection_spec.rb": 1.4920369629999186,8355 "spec/services/import/gitlab_projects/create_project_service_spec.rb": 1.3919851979990199,8356 "spec/services/import_export_clean_up_service_spec.rb": 1.4502345290002268,8357 "spec/lib/atlassian/jira_connect/serializers/pull_request_entity_spec.rb": 2.307747713999561,8358 "spec/rubocop/cop/migration/background_migration_record_spec.rb": 0.4869129089984199,8359 "spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb": 0.8128753719993256,8360 "spec/graphql/resolvers/projects/snippets_resolver_spec.rb": 2.0446658929995465,8361 "spec/lib/gitlab/checks/push_check_spec.rb": 3.8221899239997583,8362 "spec/services/chat_names/find_user_service_spec.rb": 2.4235421779994795,8363 "spec/rubocop/cop/migration/drop_table_spec.rb": 0.6094783319986163,8364 "spec/models/work_items/parent_link_spec.rb": 1.3867094380002527,8365 "spec/policies/deploy_token_policy_spec.rb": 2.57066920699981,8366 "spec/lib/sidebars/groups/menus/group_information_menu_spec.rb": 1.583641159999388,8367 "spec/services/users/reject_service_spec.rb": 1.8826956859993516,8368 "spec/services/error_tracking/list_projects_service_spec.rb": 2.9968063249998522,8369 "spec/models/oauth_access_token_spec.rb": 1.4080174650007393,8370 "spec/support_specs/helpers/migrations_helpers_spec.rb": 0.6557061950006755,8371 "spec/lib/gitlab/import_export/project/sample/date_calculator_spec.rb": 0.2275335360009194,8372 "spec/lib/gitlab/diff/line_mapper_spec.rb": 2.108394443001089,8373 "spec/models/blob_viewer/markup_spec.rb": 1.6596703390005132,8374 "spec/views/projects/environments/terminal.html.haml_spec.rb": 1.9212771109996538,8375 "spec/graphql/resolvers/release_resolver_spec.rb": 1.0644715750004252,8376 "spec/serializers/member_serializer_spec.rb": 2.061112900999433,8377 "spec/lib/gitlab/utils/lazy_attributes_spec.rb": 0.3353855410005053,8378 "spec/lib/gitlab/kubernetes/config_map_spec.rb": 2.4442354239999986,8379 "spec/models/analytics/cycle_analytics/stage_event_hash_spec.rb": 0.9432395429994358,8380 "spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb": 0.418287889999192,8381 "spec/serializers/cluster_entity_spec.rb": 1.660395889000938,8382 "spec/workers/hashed_storage/project_rollback_worker_spec.rb": 1.6505345299992769,8383 "spec/services/projects/repository_languages_service_spec.rb": 1.4619089770003484,8384 "spec/rubocop/cop/code_reuse/finder_spec.rb": 0.1430836099989392,8385 "spec/models/concerns/bulk_insertable_associations_spec.rb": 0.6716662229991925,8386 "spec/finders/packages/pypi/package_finder_spec.rb": 0.7659874279997894,8387 "spec/lib/gitlab/gl_repository_spec.rb": 1.1909679159998632,8388 "spec/services/alert_management/alerts/todo/create_service_spec.rb": 1.0535889570001018,8389 "spec/lib/gitlab/web_ide/config_spec.rb": 0.1997017110006709,8390 "spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb": 1.6868553849999444,8391 "spec/validators/x509_certificate_credentials_validator_spec.rb": 0.5130000350000046,8392 "spec/lib/bulk_imports/groups/pipelines/group_pipeline_spec.rb": 1.3146377690009103,8393 "spec/lib/gitlab/import_export/hash_util_spec.rb": 0.31265692400120315,8394 "spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb": 1.0133806630001345,8395 "spec/graphql/types/issue_status_count_type_spec.rb": 0.22840306699981738,8396 "spec/workers/cleanup_container_repository_worker_spec.rb": 1.528692977000901,8397 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 1.3436492550008552,8398 "spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb": 0.5112102060011239,8399 "spec/graphql/resolvers/project_resolver_spec.rb": 0.9152076070004114,8400 "spec/lib/gitlab/graphql/authorize/authorize_resource_spec.rb": 0.45303920400147035,8401 "spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb": 0.8327252189992578,8402 "spec/graphql/types/time_type_spec.rb": 0.23832157500146423,8403 "spec/graphql/resolvers/design_management/version_in_collection_resolver_spec.rb": 1.861315709000337,8404 "spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb": 1.913827541999126,8405 "spec/services/ci/build_unschedule_service_spec.rb": 0.9295272449999175,8406 "spec/services/projects/open_merge_requests_count_service_spec.rb": 0.6041682819995913,8407 "spec/graphql/types/metrics/dashboard_type_spec.rb": 0.21114641900021525,8408 "spec/graphql/resolvers/branch_commit_resolver_spec.rb": 0.9512870620001195,8409 "spec/views/projects/settings/integrations/edit.html.haml_spec.rb": 1.4114585250008531,8410 "spec/services/ci/destroy_secure_file_service_spec.rb": 1.4317735009990429,8411 "spec/graphql/types/snippets/blob_action_input_type_spec.rb": 0.2243073480003659,8412 "spec/lib/gitlab/utils/deep_size_spec.rb": 0.47757184999863966,8413 "spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb": 1.3299442669995187,8414 "spec/lib/gitlab/database/shared_model_spec.rb": 0.3823007739993045,8415 "spec/lib/gitlab/reference_counter_spec.rb": 0.41354323999985354,8416 "spec/services/discussions/unresolve_service_spec.rb": 1.853856010000527,8417 "spec/validators/js_regex_validator_spec.rb": 0.44455512599961367,8418 "spec/workers/jira_connect/sync_merge_request_worker_spec.rb": 1.4435274199986452,8419 "spec/presenters/packages/nuget/service_index_presenter_spec.rb": 0.7906825549998757,8420 "spec/workers/packages/composer/cache_update_worker_spec.rb": 0.8813624819995312,8421 "spec/graphql/types/work_items/widgets/description_input_type_spec.rb": 0.23159632600072655,8422 "spec/rubocop/cop/scalability/bulk_perform_with_context_spec.rb": 0.43197656700067455,8423 "spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.26158267199934926,8424 "spec/services/ci/generate_terraform_reports_service_spec.rb": 1.427215122999769,8425 "spec/models/packages/helm/file_metadatum_spec.rb": 0.9024315379992913,8426 "spec/initializers/pages_storage_check_spec.rb": 0.5004736179998872,8427 "spec/services/bulk_imports/file_export_service_spec.rb": 0.6244711300005292,8428 "spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb": 0.6010526919999393,8429 "spec/models/projects/import_export/relation_export_upload_spec.rb": 0.3883647740003653,8430 "spec/lib/bulk_imports/network_error_spec.rb": 0.5014167469998938,8431 "spec/services/bulk_imports/lfs_objects_export_service_spec.rb": 0.6606945839994296,8432 "spec/services/packages/debian/extract_deb_metadata_service_spec.rb": 0.2938614670001698,8433 "spec/lib/gitlab/throttle_spec.rb": 0.2516030530005082,8434 "spec/graphql/types/namespace/package_settings_type_spec.rb": 0.2825276389994542,8435 "spec/services/analytics/cycle_analytics/stages/list_service_spec.rb": 0.5191605549989617,8436 "spec/models/discussion_note_spec.rb": 0.36046774700116657,8437 "spec/lib/banzai/pipeline/post_process_pipeline_spec.rb": 0.7375476329998492,8438 "spec/services/feature_flags/hook_service_spec.rb": 1.1914297469993471,8439 "spec/lib/gitlab/graphql/present/field_extension_spec.rb": 0.5343793420015572,8440 "spec/lib/gitlab/anonymous_session_spec.rb": 0.6048987619997206,8441 "spec/workers/jira_connect/sync_feature_flags_worker_spec.rb": 0.5981812030004221,8442 "spec/graphql/types/group_member_relation_enum_spec.rb": 0.07236030999956711,8443 "spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb": 0.07783397899947886,8444 "spec/support_specs/graphql/field_selection_spec.rb": 0.18208970399973623,8445 "spec/initializers/100_patch_omniauth_oauth2_spec.rb": 0.1257833510007913,8446 "spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb": 0.31144436499926087,8447 "spec/validators/import/gitlab_projects/remote_file_validator_spec.rb": 0.36905502599984175,8448 "spec/initializers/attr_encrypted_no_db_connection_spec.rb": 0.5408528010011651,8449 "spec/lib/bulk_imports/projects/pipelines/container_expiration_policy_pipeline_spec.rb": 0.6143359699999564,8450 "spec/models/diff_viewer/image_spec.rb": 0.30927459499980614,8451 "spec/graphql/resolvers/topics_resolver_spec.rb": 0.2530160030000843,8452 "spec/lib/banzai/filter/jira_import/adf_to_commonmark_filter_spec.rb": 0.35288728900013666,8453 "spec/lib/api/entities/ci/job_request/service_spec.rb": 0.35611713800062716,8454 "spec/models/dependency_proxy/group_setting_spec.rb": 0.12180140300006315,8455 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb": 0.23528714500025671,8456 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.19842850099848874,8457 "spec/lib/gitlab/ci/jwt_v2_spec.rb": 0.25285933399936766,8458 "spec/graphql/types/event_type_spec.rb": 0.24440401399988332,8459 "spec/lib/gitlab/git/changed_path_spec.rb": 0.32662529299886955,8460 "spec/lib/api/entities/plan_limit_spec.rb": 0.23764410600051633,8461 "spec/workers/deployments/archive_in_project_worker_spec.rb": 0.9658976400005486,8462 "spec/graphql/types/packages/helm/metadata_type_spec.rb": 0.2260848679998162,8463 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.14507364800010691,8464 "spec/lib/banzai/pipeline/email_pipeline_spec.rb": 0.48968718799915223,8465 "spec/lib/gitlab/ci/config/entry/paths_spec.rb": 0.44341435599926626,8466 "spec/graphql/types/project_member_relation_enum_spec.rb": 0.09198911699968448,8467 "spec/graphql/types/issuable_severity_enum_spec.rb": 0.08171519799907401,8468 "spec/graphql/types/saved_reply_type_spec.rb": 0.09554368600038288,8469 "spec/initializers/00_connection_logger_spec.rb": 0.36643506700056605,8470 "spec/lib/gitlab/performance_bar/stats_spec.rb": 0.24268504500105337,8471 "spec/rubocop/cop/graphql/gid_expected_type_spec.rb": 0.149525368000468,8472 "spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb": 0.16530913600036,8473 "spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb": 0.24268409499927657,8474 "spec/serializers/admin/user_entity_spec.rb": 0.13477459000023373,8475 "spec/graphql/types/ci/job_kind_enum_spec.rb": 0.21968858800028102,8476 "spec/lib/mattermost/client_spec.rb": 0.2821832289992017,8477 "spec/lib/gitlab/utils/merge_hash_spec.rb": 0.25566132300082245,8478 "spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb": 0.4324827969994658,8479 "spec/lib/gitlab/api_authentication/token_type_builder_spec.rb": 0.30731897499936167,8480 "spec/workers/gitlab/github_import/import_issue_event_worker_spec.rb": 0.26513940199947683,8481 "spec/graphql/types/permission_types/project_spec.rb": 0.16029697599879,8482 "spec/helpers/enable_search_settings_helper_spec.rb": 0.3137379339987092,8483 "spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb": 0.13373841999964498,8484 "spec/graphql/types/merge_request_review_state_enum_spec.rb": 0.2814185189999989,8485 "spec/lib/gitlab/github_import/representation/lfs_object_spec.rb": 0.371943435999128278486}8487Knapsack global time execution for tests: 27m 45s8488Pending: (Failures listed here are expected and do not affect your suite's status)8489 1) Projects::ImportExport::ExportService#execute saves the repo8490 # No reason given8491 # ./spec/services/projects/import_export/export_service_spec.rb:508492 2) Operations::FeatureFlags::UserList behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8493 # No reason given8494 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498495 3) Operations::FeatureFlags::UserList behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8496 # No reason given8497 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578498 4) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8499 # No pattern provided, skipping.8500 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88501 5) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths #relative_path is relative8502 # Path not set, skipping.8503 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408504 6) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8505 # No pattern provided, skipping.8506 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88507 7) DependencyProxy::FileUploader DependencyProxy::Blob uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8508 # No pattern provided, skipping.8509 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88510 8) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8511 # No pattern provided, skipping.8512 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88513 9) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8514 # No pattern provided, skipping.8515 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88516 10) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8517 # No pattern provided, skipping.8518 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88519 11) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths #relative_path is relative8520 # Path not set, skipping.8521 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408522 12) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8523 # No pattern provided, skipping.8524 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88525 13) DependencyProxy::FileUploader DependencyProxy::Blob uploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8526 # No pattern provided, skipping.8527 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88528 14) MigrationsHelpers#active_record_base ci database configured returns the CI base model8529 # Skipping because multiple databases not set up8530 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:268531 15) MigrationsHelpers#table ci database configured create a class based on the CI base model8532 # Skipping because multiple databases not set up8533 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:578534Finished in 27 minutes 47 seconds (files took 41.21 seconds to load)85353968 examples, 0 failures, 15 pending8536RSpec exited with 0.8537No examples to retry, congrats!8539Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8540Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy8542Uploading artifacts...8543coverage/: found 5 matching files and directories 8544crystalball/: found 2 matching files and directories 8545deprecations/: found 4 matching files and directories 8546knapsack/: found 3 matching files and directories 8547rspec/: found 8 matching files and directories 8548WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8549log/*.log: found 20 matching files and directories 8550WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673337090/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8551WARNING: Retrying... context=artifacts-uploader error=request redirected8552Uploading artifacts as "archive" to coordinator... 201 Created id=2673337090 responseStatus=201 Created token=12M9aw3c8553Uploading artifacts...8554rspec/junit_rspec.xml: found 1 matching files and directories 8555WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673337090/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8556WARNING: Retrying... context=artifacts-uploader error=request redirected8557Uploading artifacts as "junit" to coordinator... 201 Created id=2673337090 responseStatus=201 Created token=12M9aw3c8559Job succeeded