rspec unit pg11-as-if-foss 13/20
Passed Started
by
@patrickbajao

Patrick Bajao
1Running with gitlab-runner 13.9.0-rc2 (69c049fd)2 on prm-com-gitlab-org ae3bfce23 feature flags: FF_GITLAB_REGISTRY_HELPER_IMAGE:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34 ...7Starting service postgres:11.6 ...8Pulling docker image postgres:11.6 ...9Using docker image sha256:2c963c0eb8c6efa49bb8352ea446f248d208d674cfc34fc9ea275b5f99f8dedd for postgres:11.6 with digest postgres@sha256:6f2062ab11d720f4756f17da4d0a64534346cce33b7cdea9d7ac4f43eed9fc02 ...10Starting service redis:5.0-alpine ...11Pulling docker image redis:5.0-alpine ...12Using docker image sha256:f5b24aafdf93a05581fac6db4430badb2024b27c7d6c29eb3144b01828ac5a07 for redis:5.0-alpine with digest redis@sha256:6151b520d9ac29c1524d9637e0b3dc69cba7dbef27a427d6dba355652fff8306 ...13Waiting for services to be up and running...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34 ...16Using docker image sha256:4d23ed899afed063085b02cb83fa639d1a880dc4059e6c7f0af9ee9b713ba41b for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:d70df1af0359f58b269fab0d70a090bca324eba3a03e465146b10aef05de3273 ...18Running on runner-ae3bfce2-project-278964-concurrent-0 via runner-ae3bfce2-prm-1614759475-90e94476...20$ eval "$CI_PRE_CLONE_SCRIPT"21Downloading archived master...22Connecting to storage.googleapis.com (172.217.193.128:443)23saving to '/tmp/gitlab.tar.gz'24gitlab.tar.gz 21% |******* | 87.0M 0:00:03 ETA25gitlab.tar.gz 97% |******************************* | 387M 0:00:00 ETA26gitlab.tar.gz 100% |********************************| 396M 0:00:00 ETA27'/tmp/gitlab.tar.gz' saved28Extracting tarball into /builds/gitlab-org/gitlab...29Fetching changes with git depth set to 20...30Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/31remote: Enumerating objects: 1210, done. 32remote: Counting objects: 100% (645/645), done. 33remote: Compressing objects: 100% (248/248), done. 34remote: Total 320 (delta 256), reused 130 (delta 68), pack-reused 035Receiving objects: 100% (320/320), 40.40 KiB | 1.15 MiB/s, done.36Resolving deltas: 100% (256/256), completed with 120 local objects.38 * [new ref] 4996f4cc3b5cc82b8b493bfd2a4ced37e8cf757c -> refs/pipelines/26473258739Checking out 4996f4cc as refs/merge-requests/55046/merge...40Skipping Git submodules setup42Checking cache for rails-v4-3...43cache.zip is up to date 44WARNING: vendor/ruby/2.7.0/gems/deprecation_toolkit-1.5.1/gemfiles/test/deprecations: chmod vendor/ruby/2.7.0/gems/deprecation_toolkit-1.5.1/gemfiles/test/deprecations: no such file or directory (suppressing repeats) 45Successfully extracted cache47Downloading artifacts for compile-test-assets as-if-foss (1069711723)...48Downloading artifacts from coordinator... ok id=1069711723 responseStatus=200 OK token=nvgyNQyG49Downloading artifacts for detect-tests (1069711729)...50Downloading artifacts from coordinator... ok id=1069711729 responseStatus=200 OK token=4KJ6tsyT51Downloading artifacts for retrieve-tests-metadata (1069711731)...52Downloading artifacts from coordinator... ok id=1069711731 responseStatus=200 OK token=nMSW8ysV53Downloading artifacts for setup-test-env (1069711725)...54Downloading artifacts from coordinator... ok id=1069711725 responseStatus=200 OK token=fSmN9Jtk55WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 57Using docker image sha256:4d23ed899afed063085b02cb83fa639d1a880dc4059e6c7f0af9ee9b713ba41b for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:d70df1af0359f58b269fab0d70a090bca324eba3a03e465146b10aef05de3273 ...58$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb59$ export GOPATH=$CI_PROJECT_DIR/.go60$ mkdir -p $GOPATH61$ source scripts/utils.sh62$ source scripts/prepare_build.sh63Bundler version 2.1.464$ bundle install --without=production development --jobs=2 --path=vendor --retry=3 --quiet65==> 'bundle install --without=production development --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 1 seconds.66$ bundle check67The Gemfile's dependencies are satisfied68==> 'bundle check' succeeded in 0 seconds.69$ bundle pristine pg70Installing pg 1.2.3 with native extensions71==> 'bundle pristine pg' succeeded in 10 seconds.72$ setup_db_user_only73CREATE ROLE74GRANT75==> 'setup_db_user_only' succeeded in 0 seconds.76$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee77Dropped database 'gitlabhq_test'78Created database 'gitlabhq_test'79==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 24 seconds.80$ run_timed_command "gem install knapsack --no-document"81$ gem install knapsack --no-document82Successfully installed knapsack-1.20.0831 gem installed84==> 'gem install knapsack --no-document' succeeded in 0 seconds.85$ run_timed_command "scripts/gitaly-test-spawn"86$ scripts/gitaly-test-spawn87Settings are listed in order of priority. The top value will be used.88retry89Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 390path91Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"92jobs93Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 494app_config95Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"96gemfile97Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"98flags99Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"100Don't run Bundler as root. Bundler can ask for sudo if it is needed, and101installing your bundle as root will break this application for all non-root102users on this machine.103Using abstract_type 0.0.7104Using concurrent-ruby 1.1.7105Using i18n 1.8.5106Using minitest 5.14.2107Using thread_safe 0.3.6108Using tzinfo 1.2.9109Using zeitwerk 2.4.2110Using activesupport 6.0.3.4111Using builder 3.2.4112Using erubi 1.10.0113Using mini_portile2 2.5.0114Using racc 1.5.2115Using nokogiri 1.11.1 (x86_64-linux)116Using rails-dom-testing 2.0.3117Using crass 1.0.6118Using loofah 2.9.0119Using rails-html-sanitizer 1.3.0120Using actionview 6.0.3.4121Using rack 2.2.3122Using rack-test 1.1.0123Using actionpack 6.0.3.4124Using ice_nine 0.11.2125Using memoizable 0.4.2126Using adamantium 0.2.0127Using public_suffix 4.0.6128Using addressable 2.7.0129Using ast 2.4.1130Using binding_ninja 0.2.3131Using bundler 2.1.4132Using charlock_holmes 0.7.7133Using coderay 1.1.2134Using equalizer 0.0.11135Using concord 0.1.5136Using diff-lcs 1.3137Using dotenv 2.7.6138Using escape_utils 1.2.1139Using factory_bot 5.0.2140Using multipart-post 2.1.1141Using faraday 1.0.1142Using ffi 1.13.1143Using json 2.5.1144Using gemojione 3.3.0145Using mini_mime 1.0.2146Using rugged 1.0.1147Using github-linguist 7.12.1148Using github-markup 1.7.0149Using mime-types-data 3.2020.1104150Using mime-types 3.3.1151Using gitlab-gollum-rugged_adapter 0.4.4.3.gitlab.1152Using rouge 3.26.0153Using nokogumbo 1.5.0154Using sanitize 4.6.6155Using stringex 2.8.5156Using gitlab-gollum-lib 4.2.7.10.gitlab.1157Using google-protobuf 3.12.4 (x86_64-linux)158Using googleapis-common-protos-types 1.0.5159Using grpc 1.30.2 (x86_64-linux)160Using opentracing 0.5.0161Using thrift 0.13.0162Using jaeger-client 1.1.0163Using pg_query 1.3.0164Using redis 4.2.5165Using gitlab-labkit 0.15.0166Using gitlab-markup 1.7.1167Using grpc-tools 1.30.2168Using sawyer 0.8.2169Using octokit 4.20.0170Using reverse_markdown 1.4.0171Using thor 1.1.0172Using licensee 9.14.1173Using method_source 0.9.2174Using msgpack 1.3.3175Using optimist 3.0.1176Using parallel 1.19.2177Using parser 2.7.2.0178Using procto 0.0.3179Using unparser 0.4.7180Using proc_to_ast 0.1.0181Using pry 0.12.2182Using rainbow 3.0.0183Using rbtrace 0.4.14184Using rdoc 6.2.0185Using regexp_parser 1.8.1186Using rexml 3.2.4187Using rspec-support 3.8.0188Using rspec-core 3.8.0189Using rspec-expectations 3.8.3190Using rspec-mocks 3.8.0191Using rspec 3.8.0192Using rspec-parameterized 0.4.2193Using rubocop-ast 0.2.0194Using ruby-progressbar 1.10.1195Using unicode-display_width 1.7.0196Using rubocop 0.86.0197Using sentry-raven 3.0.4198Using timecop 0.9.1199Bundle complete! 21 Gemfile dependencies, 96 gems now installed.200Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`201Checking gitaly-ruby Gemfile...202Checking gitaly-ruby bundle...203The Gemfile's dependencies are satisfied204Trying to connect to gitaly: ....... OK205Trying to connect to gitaly2: ................ OK206Trying to connect to praefect: ......... OK207==> 'scripts/gitaly-test-spawn' succeeded in 5 seconds.208$ source ./scripts/rspec_helpers.sh209$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"210KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb211Knapsack node specs:212spec/services/git/branch_push_service_spec.rb213spec/models/concerns/milestoneish_spec.rb214spec/services/projects/overwrite_project_service_spec.rb215spec/lib/gitlab/gpg/commit_spec.rb216spec/models/project_services/jira_service_spec.rb217spec/lib/gitlab/ci/status/build/factory_spec.rb218spec/policies/project_statistics_policy_spec.rb219spec/finders/todos_finder_spec.rb220spec/models/project_services/slack_service_spec.rb221spec/models/ci/job_artifact_spec.rb222spec/lib/banzai/filter/commit_range_reference_filter_spec.rb223spec/models/concerns/counter_attribute_spec.rb224spec/lib/gitlab/reference_extractor_spec.rb225spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb226spec/tasks/gitlab/workhorse_rake_spec.rb227spec/services/merge_requests/ff_merge_service_spec.rb228spec/lib/banzai/reference_parser/base_parser_spec.rb229spec/services/todos/destroy/group_private_service_spec.rb230spec/lib/gitlab/contributions_calendar_spec.rb231spec/finders/environment_names_finder_spec.rb232spec/lib/gitlab/email/message/repository_push_spec.rb233spec/presenters/commit_status_presenter_spec.rb234spec/models/concerns/project_api_compatibility_spec.rb235spec/finders/starred_projects_finder_spec.rb236spec/presenters/projects/settings/deploy_keys_presenter_spec.rb237spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb238spec/models/ci/build_runner_session_spec.rb239spec/models/project_services/jenkins_service_spec.rb240spec/lib/gitlab/background_migration/user_mentions/create_resource_user_mention_spec.rb241spec/models/diff_viewer/base_spec.rb242spec/graphql/mutations/issues/set_due_date_spec.rb243spec/lib/gitlab/import_export/project/object_builder_spec.rb244spec/models/packages/conan/file_metadatum_spec.rb245spec/models/operations/feature_flags/user_list_spec.rb246spec/finders/security/license_compliance_jobs_finder_spec.rb247spec/models/concerns/prometheus_adapter_spec.rb248spec/services/groups/group_links/create_service_spec.rb249spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb250spec/services/post_receive_service_spec.rb251spec/services/upload_service_spec.rb252spec/services/todos/destroy/confidential_issue_service_spec.rb253spec/services/files/update_service_spec.rb254spec/services/gpg_keys/create_service_spec.rb255spec/services/projects/move_project_members_service_spec.rb256spec/services/ci/destroy_expired_job_artifacts_service_spec.rb257spec/lib/gitlab/chat/responder/slack_spec.rb258spec/workers/remove_expired_members_worker_spec.rb259spec/lib/gitlab/slash_commands/issue_move_spec.rb260spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb261spec/services/ci/extract_sections_from_build_trace_service_spec.rb262spec/serializers/web_ide_terminal_entity_spec.rb263spec/services/issues/reorder_service_spec.rb264spec/lib/gitlab/import_export/lfs_restorer_spec.rb265spec/workers/clusters/applications/deactivate_service_worker_spec.rb266spec/lib/gitlab/background_migration/migrate_users_bio_to_user_details_spec.rb267spec/lib/gitlab/auth/saml/user_spec.rb268spec/lib/banzai/reference_parser/milestone_parser_spec.rb269spec/uploaders/import_export_uploader_spec.rb270spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb271spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb272spec/lib/gitlab/diff/diff_refs_spec.rb273spec/lib/gitlab/ci/config/external/file/project_spec.rb274spec/lib/gitlab/import_export/project/export_task_spec.rb275spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb276spec/views/projects/merge_requests/_commits.html.haml_spec.rb277spec/tasks/gitlab/update_templates_rake_spec.rb278spec/helpers/wiki_helper_spec.rb279spec/lib/banzai/reference_parser/external_issue_parser_spec.rb280spec/lib/gitlab/checks/snippet_check_spec.rb281spec/lib/banzai/reference_parser/label_parser_spec.rb282spec/helpers/application_helper_spec.rb283spec/lib/gitlab/ci/status/stage/common_spec.rb284spec/workers/design_management/new_version_worker_spec.rb285spec/lib/gitlab/consul/internal_spec.rb286spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb287spec/lib/api/entities/merge_request_approvals_spec.rb288spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb289spec/lib/gitlab/ci/status/build/common_spec.rb290spec/finders/protected_branches_finder_spec.rb291spec/lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb292spec/helpers/groups/group_members_helper_spec.rb293spec/services/clusters/applications/schedule_update_service_spec.rb294spec/lib/gitlab/email/smime/signer_spec.rb295spec/services/projects/batch_open_issues_count_service_spec.rb296spec/lib/gitlab/git/patches/commit_patches_spec.rb297spec/finders/packages/conan/package_finder_spec.rb298spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb299spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb300spec/lib/gitlab/x509/signature_spec.rb301spec/graphql/resolvers/snippets_resolver_spec.rb302spec/services/users/update_service_spec.rb303spec/views/projects/commits/_commit.html.haml_spec.rb304spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb305spec/lib/gitlab/slash_commands/issue_search_spec.rb306spec/workers/merge_request_cleanup_refs_worker_spec.rb307spec/lib/gitlab/usage/metric_spec.rb308spec/serializers/trigger_variable_entity_spec.rb309spec/lib/gitlab/database/count/exact_count_strategy_spec.rb310spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb311spec/lib/gitlab/git_access_project_spec.rb312spec/lib/gitlab/import/merge_request_creator_spec.rb313spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb314spec/services/award_emojis/collect_user_emoji_service_spec.rb315spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb316spec/services/boards/create_service_spec.rb317spec/policies/clusters/instance_policy_spec.rb318spec/tooling/danger/helper_spec.rb319spec/presenters/project_member_presenter_spec.rb320spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb321spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb322spec/finders/ci/variables_finder_spec.rb323spec/lib/gitlab/kubernetes/node_spec.rb324spec/policies/service_policy_spec.rb325spec/policies/terraform/state_policy_spec.rb326spec/services/protected_branches/update_service_spec.rb327spec/lib/gitlab/bare_repository_import/repository_spec.rb328spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb329spec/models/issue_email_participant_spec.rb330spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb331spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb332spec/models/project_pages_metadatum_spec.rb333spec/policies/alert_management/http_integration_policy_spec.rb334spec/graphql/mutations/terraform/state/unlock_spec.rb335spec/serializers/web_ide_terminal_serializer_spec.rb336spec/models/project_services/irker_service_spec.rb337spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb338spec/policies/application_setting/term_policy_spec.rb339spec/lib/gitlab/diff/line_mapper_spec.rb340spec/serializers/merge_request_sidebar_basic_entity_spec.rb341spec/workers/clusters/cleanup/service_account_worker_spec.rb342spec/views/notify/autodevops_disabled_email.text.erb_spec.rb343spec/lib/gitlab/gitlab_import/project_creator_spec.rb344spec/models/concerns/cacheable_attributes_spec.rb345spec/models/blob_viewer/changelog_spec.rb346spec/models/namespace/traversal_hierarchy_spec.rb347spec/models/import_export_upload_spec.rb348spec/lib/gitlab/import/set_async_jid_spec.rb349spec/initializers/rest-client-hostname_override_spec.rb350spec/models/uploads/local_spec.rb351spec/lib/gitlab/http_io_spec.rb352spec/services/incident_management/create_incident_label_service_spec.rb353spec/graphql/mutations/release_asset_links/create_spec.rb354spec/lib/gitlab/hook_data/issue_builder_spec.rb355spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb356spec/models/atlassian/identity_spec.rb357spec/policies/ci/bridge_policy_spec.rb358spec/models/snippets/repository_storage_move_spec.rb359spec/workers/build_hooks_worker_spec.rb360spec/models/identity_spec.rb361spec/serializers/evidences/release_entity_spec.rb362spec/validators/public_url_validator_spec.rb363spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb364spec/graphql/resolvers/user_notes_count_resolver_spec.rb365spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb366spec/serializers/diff_viewer_entity_spec.rb367spec/services/users/last_push_event_service_spec.rb368spec/workers/flush_counter_increments_worker_spec.rb369spec/models/user_detail_spec.rb370spec/services/wiki_pages/event_create_service_spec.rb371spec/services/projects/prometheus/alerts/update_service_spec.rb372spec/workers/update_project_statistics_worker_spec.rb373spec/helpers/projects/incidents_helper_spec.rb374spec/views/shared/projects/_project.html.haml_spec.rb375spec/lib/gitlab/database/reindexing/index_selection_spec.rb376spec/lib/gitlab/monitor/demo_projects_spec.rb377spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb378spec/models/concerns/nullify_if_blank_spec.rb379spec/lib/gitlab/middleware/read_only_spec.rb380spec/models/namespace_setting_spec.rb381spec/helpers/icons_helper_spec.rb382spec/serializers/group_link/group_group_link_entity_spec.rb383spec/finders/merge_requests/by_approvals_finder_spec.rb384spec/lib/gitlab/view/presenter/base_spec.rb385spec/lib/gitlab/analytics/unique_visits_spec.rb386spec/serializers/linked_project_issue_entity_spec.rb387spec/lib/gitlab/graphql/pagination/connections_spec.rb388spec/lib/gitlab/suggestions/suggestion_set_spec.rb389spec/lib/gitlab/metrics/dashboard/url_spec.rb390spec/tooling/danger/base_linter_spec.rb391spec/lib/api/entities/plan_limit_spec.rb392spec/lib/api/github/entities_spec.rb393spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb394spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb395spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb396spec/lib/gitlab/octokit/middleware_spec.rb397spec/services/keys/destroy_service_spec.rb398spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb399spec/lib/banzai/renderer_spec.rb400spec/finders/projects/prometheus/alerts_finder_spec.rb401spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb402spec/lib/gitlab/ci/status/composite_spec.rb403spec/lib/gitlab/changelog/parser_spec.rb404spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb405spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb406spec/helpers/environment_helper_spec.rb407spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb408spec/lib/gitlab/external_authorization_spec.rb409spec/lib/gitlab/ci/config/external/context_spec.rb410spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb411spec/services/web_hooks/destroy_service_spec.rb412spec/rubocop/cop/migration/datetime_spec.rb413spec/lib/api/entities/ssh_key_spec.rb414spec/lib/gitlab/sourcegraph_spec.rb415spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb416spec/services/prometheus/proxy_service_spec.rb417spec/lib/gitlab/language_data_spec.rb418spec/lib/gitlab/import_export/attributes_finder_spec.rb419spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb420spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb421spec/lib/banzai/filter/spaced_link_filter_spec.rb422spec/lib/gitlab/auth/otp/strategies/forti_authenticator_spec.rb423spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb424spec/workers/pages_domain_removal_cron_worker_spec.rb425spec/lib/gitlab/ci/pipeline_object_hierarchy_spec.rb426spec/lib/gitlab/usage_data/topology_spec.rb427spec/helpers/version_check_helper_spec.rb428spec/tooling/danger/feature_flag_spec.rb429spec/lib/gitlab/elasticsearch/logs/lines_spec.rb430spec/lib/gitlab/config/entry/composable_hash_spec.rb431spec/lib/gitlab/metrics/dashboard/cache_spec.rb432spec/lib/gitlab/import_export/error_spec.rb433spec/rubocop/cop/migration/schedule_async_spec.rb434spec/lib/gitlab/jwt_authenticatable_spec.rb435spec/lib/gitlab/dependency_linker_spec.rb436spec/rubocop/cop/code_reuse/serializer_spec.rb437spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb438spec/tooling/rspec_flaky/listener_spec.rb439spec/lib/mattermost/command_spec.rb440spec/lib/gitlab/gitaly_client/diff_spec.rb441spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb442spec/presenters/packages/nuget/service_index_presenter_spec.rb443spec/rubocop/cop/usage_data/large_table_spec.rb444spec/lib/gitlab/hook_data/group_builder_spec.rb445spec/models/concerns/from_intersect_spec.rb446spec/models/project_services/chat_message/note_message_spec.rb447spec/lib/gitlab/avatar_cache_spec.rb448spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb449spec/services/personal_access_tokens/last_used_service_spec.rb450spec/workers/issue_rebalancing_worker_spec.rb451spec/lib/api/helpers/merge_requests_helpers_spec.rb452spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb453spec/lib/json_web_token/rsa_token_spec.rb454spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb455spec/lib/gitlab/cross_project_access_spec.rb456spec/helpers/time_helper_spec.rb457spec/lib/bulk_imports/pipeline_spec.rb458spec/lib/gitlab/graphql/pagination/keyset/conditions/null_condition_spec.rb459spec/lib/api/entities/projects/repository_storage_move_spec.rb460spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb461spec/finders/admin/plans_finder_spec.rb462spec/lib/gitlab/ci/reports/coverage_reports_spec.rb463spec/lib/gitlab/ci/pipeline/duration_spec.rb464spec/graphql/types/user_type_spec.rb465spec/lib/gitlab/utils/log_limited_array_spec.rb466spec/services/user_project_access_changed_service_spec.rb467spec/models/concerns/optionally_search_spec.rb468spec/lib/gitlab/graphql/generic_tracing_spec.rb469spec/graphql/types/time_type_spec.rb470spec/experiments/members/invite_email_experiment_spec.rb471spec/services/system_notes/base_service_spec.rb472spec/models/concerns/uniquify_spec.rb473spec/lib/gitlab/ci/config/entry/files_spec.rb474spec/graphql/types/alert_management/alert_type_spec.rb475spec/lib/gitlab/config/entry/simplifiable_spec.rb476spec/lib/gitlab/metrics/subscribers/action_view_spec.rb477spec/lib/bitbucket/page_spec.rb478spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb479spec/workers/namespaces/onboarding_pipeline_created_worker_spec.rb480spec/lib/gitlab/rate_limit_helpers_spec.rb481spec/lib/gitlab/import_export/attribute_cleaner_spec.rb482spec/lib/gitlab/config/entry/unspecified_spec.rb483spec/rubocop/cop/rspec/any_instance_of_spec.rb484spec/services/metrics/users_starred_dashboards/delete_service_spec.rb485spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb486spec/serializers/import/fogbugz_provider_repo_entity_spec.rb487spec/policies/concerns/crud_policy_helpers_spec.rb488spec/services/product_analytics/build_graph_service_spec.rb489spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb490spec/graphql/types/grafana_integration_type_spec.rb491spec/lib/gitlab/phabricator_import/conduit/user_spec.rb492spec/graphql/types/release_assets_input_type_spec.rb493spec/lib/gitlab/config/entry/boolean_spec.rb494spec/graphql/types/alert_management/domain_filter_enum_spec.rb495spec/lib/gitlab/checks/timed_logger_spec.rb496spec/graphql/types/release_links_type_spec.rb497spec/support_specs/graphql/field_selection_spec.rb498spec/graphql/types/projects/jira_service_type_spec.rb499spec/lib/gitlab/graphql/query_analyzers/logger_analyzer_spec.rb500spec/serializers/ci/codequality_mr_diff_entity_spec.rb501spec/graphql/types/projects/services_enum_spec.rb502spec/serializers/project_serializer_spec.rb503spec/graphql/types/user_status_type_spec.rb504spec/graphql/types/tree/blob_type_spec.rb505spec/services/projects/prometheus/alerts/destroy_service_spec.rb506spec/graphql/types/design_management/design_version_event_enum_spec.rb507spec/graphql/types/alert_management/severity_enum_spec.rb508spec/graphql/types/container_expiration_policy_cadence_enum_spec.rb509spec/lib/gitlab/phabricator_import/representation/user_spec.rb510spec/models/instance_metadata_spec.rb511spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb512spec/lib/banzai/filter/output_safety_spec.rb513spec/helpers/subscribable_banner_helper_spec.rb514spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb515spec/workers/todos_destroyer/project_private_worker_spec.rb516spec/graphql/types/design_management_type_spec.rb517spec/graphql/types/eventable_type_spec.rb518spec/graphql/resolvers/metadata_resolver_spec.rb519spec/lib/gitlab/git/gitmodules_parser_spec.rb520spec/lib/gitlab/no_cache_headers_spec.rb521Filter specs:522Running specs:523Running all node tests without filter524spec/services/git/branch_push_service_spec.rb525spec/models/concerns/milestoneish_spec.rb526spec/services/projects/overwrite_project_service_spec.rb527spec/lib/gitlab/gpg/commit_spec.rb528spec/models/project_services/jira_service_spec.rb529spec/lib/gitlab/ci/status/build/factory_spec.rb530spec/policies/project_statistics_policy_spec.rb531spec/finders/todos_finder_spec.rb532spec/models/project_services/slack_service_spec.rb533spec/models/ci/job_artifact_spec.rb534spec/lib/banzai/filter/commit_range_reference_filter_spec.rb535spec/models/concerns/counter_attribute_spec.rb536spec/lib/gitlab/reference_extractor_spec.rb537spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb538spec/tasks/gitlab/workhorse_rake_spec.rb539spec/services/merge_requests/ff_merge_service_spec.rb540spec/lib/banzai/reference_parser/base_parser_spec.rb541spec/services/todos/destroy/group_private_service_spec.rb542spec/lib/gitlab/contributions_calendar_spec.rb543spec/finders/environment_names_finder_spec.rb544spec/lib/gitlab/email/message/repository_push_spec.rb545spec/presenters/commit_status_presenter_spec.rb546spec/models/concerns/project_api_compatibility_spec.rb547spec/finders/starred_projects_finder_spec.rb548spec/presenters/projects/settings/deploy_keys_presenter_spec.rb549spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb550spec/models/ci/build_runner_session_spec.rb551spec/models/project_services/jenkins_service_spec.rb552spec/lib/gitlab/background_migration/user_mentions/create_resource_user_mention_spec.rb553spec/models/diff_viewer/base_spec.rb554spec/graphql/mutations/issues/set_due_date_spec.rb555spec/lib/gitlab/import_export/project/object_builder_spec.rb556spec/models/packages/conan/file_metadatum_spec.rb557spec/models/operations/feature_flags/user_list_spec.rb558spec/finders/security/license_compliance_jobs_finder_spec.rb559spec/models/concerns/prometheus_adapter_spec.rb560spec/services/groups/group_links/create_service_spec.rb561spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb562spec/services/post_receive_service_spec.rb563spec/services/upload_service_spec.rb564spec/services/todos/destroy/confidential_issue_service_spec.rb565spec/services/files/update_service_spec.rb566spec/services/gpg_keys/create_service_spec.rb567spec/services/projects/move_project_members_service_spec.rb568spec/services/ci/destroy_expired_job_artifacts_service_spec.rb569spec/lib/gitlab/chat/responder/slack_spec.rb570spec/workers/remove_expired_members_worker_spec.rb571spec/lib/gitlab/slash_commands/issue_move_spec.rb572spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb573spec/services/ci/extract_sections_from_build_trace_service_spec.rb574spec/serializers/web_ide_terminal_entity_spec.rb575spec/services/issues/reorder_service_spec.rb576spec/lib/gitlab/import_export/lfs_restorer_spec.rb577spec/workers/clusters/applications/deactivate_service_worker_spec.rb578spec/lib/gitlab/background_migration/migrate_users_bio_to_user_details_spec.rb579spec/lib/gitlab/auth/saml/user_spec.rb580spec/lib/banzai/reference_parser/milestone_parser_spec.rb581spec/uploaders/import_export_uploader_spec.rb582spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb583spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb584spec/lib/gitlab/diff/diff_refs_spec.rb585spec/lib/gitlab/ci/config/external/file/project_spec.rb586spec/lib/gitlab/import_export/project/export_task_spec.rb587spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb588spec/views/projects/merge_requests/_commits.html.haml_spec.rb589spec/tasks/gitlab/update_templates_rake_spec.rb590spec/helpers/wiki_helper_spec.rb591spec/lib/banzai/reference_parser/external_issue_parser_spec.rb592spec/lib/gitlab/checks/snippet_check_spec.rb593spec/lib/banzai/reference_parser/label_parser_spec.rb594spec/helpers/application_helper_spec.rb595spec/lib/gitlab/ci/status/stage/common_spec.rb596spec/workers/design_management/new_version_worker_spec.rb597spec/lib/gitlab/consul/internal_spec.rb598spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb599spec/lib/api/entities/merge_request_approvals_spec.rb600spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb601spec/lib/gitlab/ci/status/build/common_spec.rb602spec/finders/protected_branches_finder_spec.rb603spec/lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb604spec/helpers/groups/group_members_helper_spec.rb605spec/services/clusters/applications/schedule_update_service_spec.rb606spec/lib/gitlab/email/smime/signer_spec.rb607spec/services/projects/batch_open_issues_count_service_spec.rb608spec/lib/gitlab/git/patches/commit_patches_spec.rb609spec/finders/packages/conan/package_finder_spec.rb610spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb611spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb612spec/lib/gitlab/x509/signature_spec.rb613spec/graphql/resolvers/snippets_resolver_spec.rb614spec/services/users/update_service_spec.rb615spec/views/projects/commits/_commit.html.haml_spec.rb616spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb617spec/lib/gitlab/slash_commands/issue_search_spec.rb618spec/workers/merge_request_cleanup_refs_worker_spec.rb619spec/lib/gitlab/usage/metric_spec.rb620spec/serializers/trigger_variable_entity_spec.rb621spec/lib/gitlab/database/count/exact_count_strategy_spec.rb622spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb623spec/lib/gitlab/git_access_project_spec.rb624spec/lib/gitlab/import/merge_request_creator_spec.rb625spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb626spec/services/award_emojis/collect_user_emoji_service_spec.rb627spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb628spec/services/boards/create_service_spec.rb629spec/policies/clusters/instance_policy_spec.rb630spec/tooling/danger/helper_spec.rb631spec/presenters/project_member_presenter_spec.rb632spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb633spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb634spec/finders/ci/variables_finder_spec.rb635spec/lib/gitlab/kubernetes/node_spec.rb636spec/policies/service_policy_spec.rb637spec/policies/terraform/state_policy_spec.rb638spec/services/protected_branches/update_service_spec.rb639spec/lib/gitlab/bare_repository_import/repository_spec.rb640spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb641spec/models/issue_email_participant_spec.rb642spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb643spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb644spec/models/project_pages_metadatum_spec.rb645spec/policies/alert_management/http_integration_policy_spec.rb646spec/graphql/mutations/terraform/state/unlock_spec.rb647spec/serializers/web_ide_terminal_serializer_spec.rb648spec/models/project_services/irker_service_spec.rb649spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb650spec/policies/application_setting/term_policy_spec.rb651spec/lib/gitlab/diff/line_mapper_spec.rb652spec/serializers/merge_request_sidebar_basic_entity_spec.rb653spec/workers/clusters/cleanup/service_account_worker_spec.rb654spec/views/notify/autodevops_disabled_email.text.erb_spec.rb655spec/lib/gitlab/gitlab_import/project_creator_spec.rb656spec/models/concerns/cacheable_attributes_spec.rb657spec/models/blob_viewer/changelog_spec.rb658spec/models/namespace/traversal_hierarchy_spec.rb659spec/models/import_export_upload_spec.rb660spec/lib/gitlab/import/set_async_jid_spec.rb661spec/initializers/rest-client-hostname_override_spec.rb662spec/models/uploads/local_spec.rb663spec/lib/gitlab/http_io_spec.rb664spec/services/incident_management/create_incident_label_service_spec.rb665spec/graphql/mutations/release_asset_links/create_spec.rb666spec/lib/gitlab/hook_data/issue_builder_spec.rb667spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb668spec/models/atlassian/identity_spec.rb669spec/policies/ci/bridge_policy_spec.rb670spec/models/snippets/repository_storage_move_spec.rb671spec/workers/build_hooks_worker_spec.rb672spec/models/identity_spec.rb673spec/serializers/evidences/release_entity_spec.rb674spec/validators/public_url_validator_spec.rb675spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb676spec/graphql/resolvers/user_notes_count_resolver_spec.rb677spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb678spec/serializers/diff_viewer_entity_spec.rb679spec/services/users/last_push_event_service_spec.rb680spec/workers/flush_counter_increments_worker_spec.rb681spec/models/user_detail_spec.rb682spec/services/wiki_pages/event_create_service_spec.rb683spec/services/projects/prometheus/alerts/update_service_spec.rbWARNING: `around(:context)` hooks are not supported and behave like `around(:example). Called from /builds/gitlab-org/gitlab/spec/support/omniauth_strategy.rb:36:in `block in <top (required)>'.684Run options:685 include {:focus=>true}686 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}687All examples were filtered out; ignoring {:focus=>true}688==> Setting up GitLab Workhorse...689 GitLab Workhorse set up in 67.325974703 seconds...690==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...691 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.037262224 seconds...692Git::BranchPushService693 Push branches694 new branch695 is expected to be truthy696 calls the after_push_commit hook697 calls the after_create_branch hook698 existing branch699 is expected to be truthy700 calls the after_push_commit hook701 rm branch702 is expected to be truthy703 calls the after_push_commit hook704 calls the after_remove_branch hook705 Pipelines706 creates a pipeline with the right parameters707 creates a new pipeline708 when pipeline has errors709 reports an error710 with push options711 sanitizes push options712 when .gitlab-ci.yml file is invalid713 persists an error pipeline714 Updates merge requests715 when pushing a new branch for the first time716 Updates git attributes717 for default branch718 calls the copy attributes method for the first push to the default branch719 calls the copy attributes method for changes to the default branch720 for non-default branch721 does not call copy attributes method722 Webhooks723 execute webhooks724 when pushing a branch for the first time725 when pushing a branch for the first time with default branch protection disabled726 when pushing a branch for the first time with default branch protection set to 'developers can push'727 when pushing a branch for the first time with an existing branch permission configured728 when pushing a branch for the first time with default branch protection set to 'developers can merge'729 when pushing new commits to existing branch730 cross-reference notes731 creates a note if a pushed commit mentions an issue732 only creates a cross-reference note if one doesn't already exist733 defaults to the pushing user if the commit's author is not known734 finds references in the first push to a non-default branch735 issue metrics736 while saving the 'first_mentioned_in_commit_at' metric for an issue737 sets the metric for referenced issues738 does not set the metric for non-referenced issues739 closing issues from pushed commits containing a closing reference740 to default branches741 closes issues742 adds a note indicating that the issue is now closed743 doesn't create additional cross-reference notes744 to non-default branches745 creates cross-reference notes746 doesn't close issues747 for jira issue tracker748 mentioning an issue749 initiates one api call to jira server to mention the issue750 closing an issue751 using right markdown752 initiates one api call to jira server to close the issue753 initiates one api call to jira server to comment on the issue754 using internal issue reference755 when internal issues are disabled756 does not initiates one api call to jira server to close the issue757 does not initiates one api call to jira server to comment on the issue758 when internal issues are enabled759 initiates one api call to jira server to close the jira issue760 initiates one api call to jira server to comment on the jira issue761 closes the internal issue762 adds a note indicating that the issue is now closed763 empty project764 push to first branch updates HEAD765 housekeeping766 does not perform housekeeping when not needed767 increments the push counter768 when housekeeping is needed769 performs housekeeping770 does not raise an exception771 CI environments772 create branch773 does nothing774 update branch775 does nothing776 delete branch777 stops environments778 artifacts779 create branch780 does nothing781 update branch782 does nothing783 delete branch784 unlocks artifacts785 Hooks786 run on a branch787 delegates to Git::BranchHooksService788 run on a tag789 does nothing790 Jira Connect hooks791 with a Jira subscription792 branch name contains Jira issue key793 behaves like enqueues Jira sync worker794 aggregate_failures795 commit message contains Jira issue key796 behaves like enqueues Jira sync worker797 aggregate_failures798 branch name and commit message does not contain Jira issue key799 behaves like does not enqueue Jira sync worker800 is expected not to change `Array#size`801 without a Jira subscription802 behaves like does not enqueue Jira sync worker803 is expected not to change `Array#size`804Milestone Milestoneish805 #sorted_issues806 sorts issues by label priority807 limits issue count and keeps the ordering808 attributes visibility809 #issue_participants_visible_by_user810 visibility: :public, user_role: nil, result: [:member]811 returns the proper participants812 visibility: :public, user_role: :non_member, result: [:member]813 returns the proper participants814 visibility: :public, user_role: :guest, result: [:member]815 returns the proper participants816 visibility: :public, user_role: :member, result: [:member, :assignee]817 returns the proper participants818 visibility: :internal, user_role: nil, result: []819 returns the proper participants820 visibility: :internal, user_role: :non_member, result: [:member]821 returns the proper participants822 visibility: :internal, user_role: :guest, result: [:member]823 returns the proper participants824 visibility: :internal, user_role: :member, result: [:member, :assignee]825 returns the proper participants826 visibility: :private, user_role: nil, result: []827 returns the proper participants828 visibility: :private, user_role: :non_member, result: []829 returns the proper participants830 visibility: :private, user_role: :guest, result: [:member]831 returns the proper participants832 visibility: :private, user_role: :member, result: [:member, :assignee]833 returns the proper participants834 #issue_labels_visible_by_user835 visibility: :public, user_role: nil, result: [:label1]836 returns the proper participants837 visibility: :public, user_role: :non_member, result: [:label1]838 returns the proper participants839 visibility: :public, user_role: :guest, result: [:label1]840 returns the proper participants841 visibility: :public, user_role: :member, result: [:label1, :label2]842 returns the proper participants843 visibility: :internal, user_role: nil, result: []844 returns the proper participants845 visibility: :internal, user_role: :non_member, result: [:label1]846 returns the proper participants847 visibility: :internal, user_role: :guest, result: [:label1]848 returns the proper participants849 visibility: :internal, user_role: :member, result: [:label1, :label2]850 returns the proper participants851 visibility: :private, user_role: nil, result: []852 returns the proper participants853 visibility: :private, user_role: :non_member, result: []854 returns the proper participants855 visibility: :private, user_role: :guest, result: [:label1]856 returns the proper participants857 visibility: :private, user_role: :member, result: [:label1, :label2]858 returns the proper participants859 #sorted_merge_requests860 sorts merge requests by label priority861 #merge_requests_visible_to_user862 when project is private863 does not return any merge request for a non member864 returns milestone merge requests for a member865 when project is public866 when merge requests are available to anyone867 returns milestone merge requests for a non member868 when merge requests are available to project members869 does not return any merge request for a non member870 returns milestone merge requests for a member871 when milestone is at parent level group872 does not return any merge request for a non member873 returns milestone merge requests for a member874 #complete?875 returns false when has items opened876 returns true when all items are closed877 #percent_complete878 division by zero879 is expected to eq 0880 #closed_issues_count881 counts all closed issues including confidential882 #total_issues_count883 counts all issues including confidential884 #remaining_days885 shows 0 if no due date886 shows 0 if expired887 shows correct remaining days888 #elapsed_days889 shows 0 if no start_date set890 shows 0 if start_date is a future891 shows correct amount of days892 #total_time_spent893 calculates total time spent894 includes merge request time spent895 #human_total_time_spent896 returns nil if no time has been spent897 #total_time_estimate898 calculates total estimate899 includes merge request time estimate900 #human_total_time_estimate901 returns nil if no time has been spent902Projects::OverwriteProjectService903 #execute904 when project does not have any relation905 behaves like overwrite actions906 moves deploy keys907 moves notification settings908 moves users stars909 moves project group links910 moves memberships and authorizations911 removes the original project912 renames the project913 moves lfs objects relationships914 is expected to eq 3915 when project with elements916 behaves like overwrite actions917 moves deploy keys918 moves notification settings919 moves users stars920 moves project group links921 moves memberships and authorizations922 removes the original project923 renames the project924 moves lfs objects relationships925 is expected to eq 3926 forks927 when moving a root forked project928 moves the descendant forks929 updates the fork network930 when moving a intermediate forked project931 moves the descendant forks932 moves the ascendant fork933 does not update fork network934 if an exception is raised935 rollbacks changes936 tries to restore the original project repositories937Gitlab::Gpg::Commit938 #signature939 unsigned commit940 returns nil941 invalid signature942 returns nil943 known key944 user matches the key uid945 user email matches the email committer946 returns a valid signature947 behaves like returns the cached signature on second call948 returns the cached signature on second call949 read-only mode950 does not create a cached signature951 valid key signed using recent version of Gnupg952 returns a valid signature953 valid key signed using older version of Gnupg954 returns a valid signature955 commit signed with a subkey956 returns a valid signature957 behaves like returns the cached signature on second call958 returns the cached signature on second call959 user email does not match the committer email, but is the same user960 returns an invalid signature961 behaves like returns the cached signature on second call962 returns the cached signature on second call963 user email does not match the committer email964 returns an invalid signature965 behaves like returns the cached signature on second call966 returns the cached signature on second call967 user does not match the key uid968 returns an invalid signature969 behaves like returns the cached signature on second call970 returns the cached signature on second call971 unknown key972 returns an invalid signature973 behaves like returns the cached signature on second call974 returns the cached signature on second call975 multiple commits with signatures976 does an aggregated sql request instead of 2 separate ones977JiraService978 #options979 sets the URL properly980 leaves out trailing slashes in context981 provides additional cookies to allow basic auth with oracle webgate982 username with trailing whitespaces983 leaves out trailing whitespaces in username984 using api URL985 leaves out trailing slashes in context986 #fields987 includes transition help link988 Associations989 is expected to belong to project required:990 is expected to have one service_hook991 .reference_pattern992 key: "#123", result: ""993 is expected to eq ""994 key: "1#23#12", result: ""995 is expected to eq ""996 key: "JIRA-1234A", result: "JIRA-1234"997 is expected to eq "JIRA-1234"998 key: "JIRA-1234-some_tag", result: "JIRA-1234"999 is expected to eq "JIRA-1234"1000 key: "JIRA-1234_some_tag", result: "JIRA-1234"1001 is expected to eq "JIRA-1234"1002 key: "EXT_EXT-1234", result: "EXT_EXT-1234"1003 is expected to eq "EXT_EXT-1234"1004 key: "EXT3_EXT-1234", result: "EXT3_EXT-1234"1005 is expected to eq "EXT3_EXT-1234"1006 key: "3EXT_EXT-1234", result: ""1007 is expected to eq ""1008 #create1009 does not store data into properties1010 stores data in data_fields correctly1011 when loading serverInfo1012 Cloud instance1013 is detected1014 Server instance1015 is detected1016 Unknown instance1017 is detected1018 overriding properties1019 when data are stored in properties1020 behaves like handles jira fields1021 reading data1022 reads data correctly1023 #update1024 basic update1025 leaves properties field emtpy1026 stores updated data in jira_tracker_data table1027 when updating the url, api_url, username, or password1028 updates deployment type1029 calls serverInfo for url1030 calls serverInfo for api_url1031 calls serverInfo for username1032 calls serverInfo for password1033 when not updating the url, api_url, username, or password1034 does not update deployment type1035 when not allowed to test an instance or group1036 does not update deployment type1037 stored password invalidation1038 when a password was previously set1039 when only web url present1040 resets password if url changed1041 does not reset password if url "changed" to the same url as before1042 resets password if url not changed but api url added1043 does not reset password if new url is set together with password, even if it's the same password1044 resets password if url changed, even if setter called multiple times1045 does not reset password if username changed1046 does not reset password if password changed1047 does not reset password if the password is touched and same as before1048 when both web and api url present1049 resets password if api url changed1050 does not reset password if url changed1051 resets password if api url set to empty1052 when no password was previously set1053 saves password if new url is set together with password1054 when data are stored in separated fields1055 behaves like handles jira fields1056 reading data1057 reads data correctly1058 #update1059 basic update1060 leaves properties field emtpy1061 stores updated data in jira_tracker_data table1062 when updating the url, api_url, username, or password1063 updates deployment type1064 calls serverInfo for url1065 calls serverInfo for api_url1066 calls serverInfo for username1067 calls serverInfo for password1068 when not updating the url, api_url, username, or password1069 does not update deployment type1070 when not allowed to test an instance or group1071 does not update deployment type1072 stored password invalidation1073 when a password was previously set1074 when only web url present1075 resets password if url changed1076 does not reset password if url "changed" to the same url as before1077 resets password if url not changed but api url added1078 does not reset password if new url is set together with password, even if it's the same password1079 resets password if url changed, even if setter called multiple times1080 does not reset password if username changed1081 does not reset password if password changed1082 does not reset password if the password is touched and same as before1083 when both web and api url present1084 resets password if api url changed1085 does not reset password if url changed1086 resets password if api url set to empty1087 when no password was previously set1088 saves password if new url is set together with password1089 when data are stored in both properties and separated fields1090 behaves like handles jira fields1091 reading data1092 reads data correctly1093 #update1094 basic update1095 leaves properties field emtpy1096 stores updated data in jira_tracker_data table1097 when updating the url, api_url, username, or password1098 updates deployment type1099 calls serverInfo for url1100 calls serverInfo for api_url1101 calls serverInfo for username1102 calls serverInfo for password1103 when not updating the url, api_url, username, or password1104 does not update deployment type1105 when not allowed to test an instance or group1106 does not update deployment type1107 stored password invalidation1108 when a password was previously set1109 when only web url present1110 resets password if url changed1111 does not reset password if url "changed" to the same url as before1112 resets password if url not changed but api url added1113 does not reset password if new url is set together with password, even if it's the same password1114 resets password if url changed, even if setter called multiple times1115 does not reset password if username changed1116 does not reset password if password changed1117 does not reset password if the password is touched and same as before1118 when both web and api url present1119 resets password if api url changed1120 does not reset password if url changed1121 resets password if api url set to empty1122 when no password was previously set1123 saves password if new url is set together with password1124 #find_issue1125 call the Jira API to get the issue1126 with options1127 calls the Jira API with the options to get the issue1128 #close_issue1129 when resource is a merge request1130 behaves like close_issue1131 calls Jira API1132 tracks usage1133 does not fail if remote_link.all on issue returns nil1134 creates Remote Link reference in Jira for comment1135 does not send comment or remote links to issues already closed1136 does not send comment or remote links to issues with unknown resolution1137 references the GitLab commit1138 references the GitLab commit1139 logs exception when transition id is not valid1140 calls the api with jira_issue_transition_id1141 when "comment_on_event_enabled" is set to false1142 creates Remote Link reference but does not create comment1143 when Remote Link already exists1144 does not create comment1145 when using multiple transition ids1146 calls the api with transition ids separated by comma1147 calls the api with transition ids separated by semicolon1148 when a transition fails1149 stops the sequence1150 when resource is a commit1151 behaves like close_issue1152 calls Jira API1153 tracks usage1154 does not fail if remote_link.all on issue returns nil1155 creates Remote Link reference in Jira for comment1156 does not send comment or remote links to issues already closed1157 does not send comment or remote links to issues with unknown resolution1158 references the GitLab commit1159 references the GitLab commit1160 logs exception when transition id is not valid1161 calls the api with jira_issue_transition_id1162 when "comment_on_event_enabled" is set to false1163 creates Remote Link reference but does not create comment1164 when Remote Link already exists1165 does not create comment1166 when using multiple transition ids1167 calls the api with transition ids separated by comma1168 calls the api with transition ids separated by semicolon1169 when a transition fails1170 stops the sequence1171 #create_cross_reference_note1172 when resource is a commit1173 when disabled1174 is expected to eq "Events for commits are disabled."1175 when enabled1176 behaves like creates a comment on Jira1177 creates a comment on Jira1178 tracks usage1179 when resource is a merge request1180 when disabled1181 is expected to eq "Events for merge requests are disabled."1182 when enabled1183 behaves like creates a comment on Jira1184 creates a comment on Jira1185 tracks usage1186 #test1187 when the test succeeds1188 gets Jira project with URL when API URL not set1189 gets Jira project with API URL if set1190 when the test fails1191 returns result with the error1192 project and issue urls1193 removes trailing slashes from url1194 when gitlab.yml was initialized1195 is prepopulated with the settings1196 favicon urls1197 includes the standard favicon1198DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.1/lib/carrierwave/sanitized_file.rb:316: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call1199/usr/local/lib/ruby/2.7.0/fileutils.rb:206: warning: The called method `mkdir_p' is defined here1200 (called from cache! at /builds/gitlab-org/gitlab/app/uploaders/object_storage.rb:369)1201 includes returns the custom favicon1202 generating external URLs1203 #issues_url1204 handles trailing slashes1205 #new_issue_url1206 handles trailing slashes1207Gitlab::Ci::Status::Build::Factory1208 when build is successful1209 matches correct core status1210 matches correct extended statuses1211 fabricates a retryable build status1212 fabricates status with correct details1213 when build is erased1214 matches correct core status1215 matches correct extended statuses1216 fabricates a retryable build status1217 fabricates status with correct details1218 when build is failed1219 when build is not allowed to fail1220 matches correct core status1221 matches correct extended statuses1222 fabricates a failed build status1223 fabricates status with correct details1224 when build is allowed to fail1225 matches correct core status1226 matches correct extended statuses1227 fabricates a failed but allowed build status1228 fabricates status with correct details1229 when build has unmet prerequisites1230 matches correct core status1231 matches correct extended statuses1232 fabricates a failed with unmet prerequisites build status1233 fabricates status with correct details1234 when build is a canceled1235 matches correct core status1236 matches correct extended statuses1237 fabricates a retryable build status1238 fabricates status with correct details1239 when build is running1240 matches correct core status1241 matches correct extended statuses1242 fabricates a canceable build status1243 fabricates status with correct details1244 when build is pending1245 matches correct core status1246 matches correct extended statuses1247 fabricates a cancelable build status1248 fabricates status with correct details1249 when build is skipped1250 matches correct core status1251 matches correct extended statuses1252 fabricates a skipped build status1253 fabricates status with correct details1254 when build is a manual action1255 when build is a play action1256 matches correct core status1257 matches correct extended statuses1258 fabricates action detailed status1259 fabricates status with correct details1260 when user has ability to play action1261 fabricates status that has action1262 when user does not have ability to play action1263 fabricates status that has no action1264 when build is an environment stop action1265 matches correct core status1266 matches correct extended statuses1267 fabricates action detailed status1268 when user is not allowed to execute manual action1269 fabricates status with correct details1270 when build is a delayed action1271 matches correct core status1272 matches correct extended statuses1273 fabricates action detailed status1274 fabricates status with correct details1275 when user has ability to play action1276 fabricates status that has action1277 when user does not have ability to play action1278 fabricates status that has no action1279ProjectStatisticsPolicy1280 #rules1281 project_type: :public, user_type: :unauthenticated, outcome: false1282 is expected to eq false1283 when the user is external1284 is expected to eq false1285 project_type: :public, user_type: :non_member, outcome: false1286 is expected to eq false1287 when the user is external1288 is expected to eq false1289 project_type: :public, user_type: :guest, outcome: false1290 is expected to eq false1291 when the user is external1292 is expected to eq false1293 project_type: :public, user_type: :reporter, outcome: true1294 is expected to eq true1295 when the user is external1296 is expected to eq true1297 project_type: :public, user_type: :developer, outcome: true1298 is expected to eq true1299 when the user is external1300 is expected to eq true1301 project_type: :public, user_type: :maintainer, outcome: true1302 is expected to eq true1303 when the user is external1304 is expected to eq true1305 project_type: :private, user_type: :unauthenticated, outcome: false1306 is expected to eq false1307 when the user is external1308 is expected to eq false1309 project_type: :private, user_type: :non_member, outcome: false1310 is expected to eq false1311 when the user is external1312 is expected to eq false1313 project_type: :private, user_type: :guest, outcome: false1314 is expected to eq false1315 when the user is external1316 is expected to eq false1317 project_type: :private, user_type: :reporter, outcome: true1318 is expected to eq true1319 when the user is external1320 is expected to eq true1321 project_type: :private, user_type: :developer, outcome: true1322 is expected to eq true1323 when the user is external1324 is expected to eq true1325 project_type: :private, user_type: :maintainer, outcome: true1326 is expected to eq true1327 when the user is external1328 is expected to eq true1329 project_type: :internal, user_type: :unauthenticated, outcome: false1330 is expected to eq false1331 when the user is external1332 is expected to eq false1333 project_type: :internal, user_type: :non_member, outcome: false1334 is expected to eq false1335 when the user is external1336 is expected to eq false1337 project_type: :internal, user_type: :guest, outcome: false1338 is expected to eq false1339 when the user is external1340 is expected to eq false1341 project_type: :internal, user_type: :reporter, outcome: true1342 is expected to eq true1343 when the user is external1344 is expected to eq true1345 project_type: :internal, user_type: :developer, outcome: true1346 is expected to eq true1347 when the user is external1348 is expected to eq true1349 project_type: :internal, user_type: :maintainer, outcome: true1350 is expected to eq true1351 when the user is external1352 is expected to eq true1353TodosFinder1354 #execute1355 #execute1356 returns no todos if user is nil1357 filtering1358 returns correct todos when filtered by a project1359 returns correct todos when filtered by a group1360 when filtering by type1361 returns todos by type when filtered by a single type1362 returns todos by type when filtered by multiple types1363 returns all todos when type is nil1364 returns all todos when type is an empty collection1365 returns all todos when type is blank1366 returns todos by type when blank type is in type collection1367 returns todos of all types when only blanks are in a collection1368 returns all todos when no type param1369 raises an argument error when invalid type is passed1370 when filtering for actions1371 by action ids1372 returns the expected todos1373 returns the expected todos when filtering for multiple action ids1374 by action names1375 returns the expected todos1376 returns the expected todos when filtering for multiple action names1377 when filtering by author1378 returns correct todos when filtering by an author1379 querying for multiple authors1380 returns the correct todo items1381 by groups1382 with subgroups1383 returns todos from subgroups when filtered by a group1384 filtering for multiple groups1385 returns the expected groups1386 by state1387 returns the expected items when no state is provided1388 returns the expected items when a state is provided1389 returns the expected items when multiple states are provided1390 by project1391 returns the expected todos for one project1392 returns the expected todos for many projects1393 when filtering by target id1394 returns the expected todos for the target1395 returns the expected todos for multiple target ids1396 returns the expected todos for empty target id collection1397 external authorization1398 behaves like a finder with external authorization service1399 finds the subject1400 with an external authorization service1401 does not include the subject when no project was given1402 includes the subject when a project id was given1403 #sort1404 sorts by priority1405 by date1406 sorts with oldest created first1407 sorts with newest created first1408 .todo_types1409 returns the expected types1410 #any_for_target?1411 returns true if there are any todos for the given target1412 returns false if there are no todos for the given target1413SlackService1414 behaves like slack or mattermost notifications1415 Associations1416 is expected to belong to project required:1417 is expected to have one service_hook1418 Validations1419 when service is active1420 is expected to validate that :webhook cannot be empty/falsy1421 behaves like issue tracker service URL attribute1422 is expected to allow :webhook to be ‹"https://example.com"›1423 is expected not to allow :webhook to be ‹"example.com"›1424 is expected not to allow :webhook to be ‹"ftp://example.com"›1425 is expected not to allow :webhook to be ‹"herp-and-derp"›1426 when service is inactive1427 is expected not to validate that :webhook cannot be empty/falsy1428 #execute1429 with username for slack configured1430 uses the username as an option1431 push events1432 calls Slack API for push events1433 with event channel1434 uses the right channel for push event1435 issue events1436 calls Slack API for issue events1437 whith event channel1438 uses the right channel for issue event1439 for confidential issues1440 falls back to issue channel1441 and confidential_issue_channel is defined1442 uses the confidential issue channel when it is defined1443 merge request events1444 calls Slack API for merge requests events1445 with event channel1446 uses the right channel for merge request event1447 wiki page events1448 calls Slack API for wiki page events1449 with event channel1450 uses the right channel for wiki event1451 deployment events1452 calls Slack API for deployment events1453 note event1454 calls Slack API for note events1455 with event channel1456 uses the right channel1457 for confidential notes1458 falls back to note channel1459 and confidential_note_channel is defined1460 uses confidential channel1461 Push events1462 on default branch1463 pushing tags1464 behaves like triggered Slack service1465 notifies about push events1466 notification enabled only for default branch1467 behaves like triggered Slack service1468 notifies about push events1469 notification enabled only for protected branches1470 behaves like untriggered Slack service1471 notifies about push events1472 notification enabled only for default and protected branches1473 behaves like triggered Slack service1474 notifies about push events1475 notification enabled for all branches1476 behaves like triggered Slack service1477 notifies about push events1478 on a protected branch1479 pushing tags1480 behaves like triggered Slack service1481 notifies about push events1482 notification enabled only for default branch1483 behaves like untriggered Slack service1484 notifies about push events1485 notification enabled only for protected branches1486 behaves like triggered Slack service1487 notifies about push events1488 notification enabled only for default and protected branches1489 behaves like triggered Slack service1490 notifies about push events1491 notification enabled for all branches1492 behaves like triggered Slack service1493 notifies about push events1494 on a protected branch with protected branches defined using wildcards1495 pushing tags1496 behaves like triggered Slack service1497 notifies about push events1498 notification enabled only for default branch1499 behaves like untriggered Slack service1500 notifies about push events1501 notification enabled only for protected branches1502 behaves like triggered Slack service1503 notifies about push events1504 notification enabled only for default and protected branches1505 behaves like triggered Slack service1506 notifies about push events1507 notification enabled for all branches1508 behaves like triggered Slack service1509 notifies about push events1510 on a neither protected nor default branch1511 pushing tags1512 behaves like triggered Slack service1513 notifies about push events1514 notification enabled only for default branch1515 behaves like untriggered Slack service1516 notifies about push events1517 notification enabled only for protected branches1518 behaves like untriggered Slack service1519 notifies about push events1520 notification enabled only for default and protected branches1521 behaves like untriggered Slack service1522 notifies about push events1523 notification enabled for all branches1524 behaves like triggered Slack service1525 notifies about push events1526 Note events1527 when commit comment event executed1528 behaves like triggered Slack service1529 notifies about commit comment events1530 when merge request comment event executed1531 behaves like triggered Slack service1532 notifies about merge request comment events1533 when issue comment event executed1534 behaves like triggered Slack service1535 notifies about issue comment events1536 when snippet comment event executed1537 behaves like triggered Slack service1538 notifies about snippet comment events1539 Pipeline events1540 with succeeded pipeline1541 with default to notify_only_broken_pipelines1542 behaves like untriggered Slack service1543 notifies about pipeline events1544 with setting notify_only_broken_pipelines to false1545 behaves like triggered Slack service1546 notifies about pipeline events1547 with failed pipeline1548 on default branch1549 notification enabled only for default branch1550 behaves like triggered Slack service1551 notifies about pipeline events1552 notification enabled only for protected branches1553 behaves like untriggered Slack service1554 notifies about pipeline events1555 notification enabled only for default and protected branches1556 behaves like triggered Slack service1557 notifies about pipeline events1558 notification enabled for all branches1559 behaves like triggered Slack service1560 notifies about pipeline events1561 on a protected branch1562 notification enabled only for default branch1563 behaves like untriggered Slack service1564 notifies about pipeline events1565 notification enabled only for protected branches1566 behaves like triggered Slack service1567 notifies about pipeline events1568 notification enabled only for default and protected branches1569 behaves like triggered Slack service1570 notifies about pipeline events1571 notification enabled for all branches1572 behaves like triggered Slack service1573 notifies about pipeline events1574 on a protected branch with protected branches defined usin wildcards1575 notification enabled only for default branch1576 behaves like untriggered Slack service1577 notifies about pipeline events1578 notification enabled only for protected branches1579 behaves like triggered Slack service1580 notifies about pipeline events1581 notification enabled only for default and protected branches1582 behaves like triggered Slack service1583 notifies about pipeline events1584 notification enabled for all branches1585 behaves like triggered Slack service1586 notifies about pipeline events1587 on a neither protected nor default branch1588 notification enabled only for default branch1589 behaves like untriggered Slack service1590 notifies about pipeline events1591 notification enabled only for protected branches1592 behaves like untriggered Slack service1593 notifies about pipeline events1594 notification enabled only for default and protected branches1595 behaves like untriggered Slack service1596 notifies about pipeline events1597 notification enabled for all branches1598 behaves like triggered Slack service1599 notifies about pipeline events1600Ci::JobArtifact1601 is expected to respond to #file1602 is expected to respond to #created_at1603 is expected to respond to #updated_at1604 is expected to delegate #open to the #file object1605 is expected to delegate #exists? to the #file object1606 Associations1607 is expected to belong to project required:1608 is expected to belong to job required:1609 behaves like having unique enum values1610 has unique values in "file_format"1611 has unique values in "file_type"1612 has unique values in "file_location"1613 behaves like UpdateProjectStatistics1614 is expected to be a new record1615 when feature flag efficient_counter_attribute is disabled1616 when creating1617 updates the project statistics1618 schedules a namespace statistics worker1619 when updating1620 updates project statistics1621 schedules a namespace statistics worker1622 avoids N + 1 queries1623 when destroying1624 updates the project statistics1625 schedules a namespace statistics worker1626 when it is destroyed from the project level1627 does not update the project statistics1628 does not schedule a namespace statistics worker1629 when statistic is a counter attribute1630 when creating1631 stores pending increments for async update1632 when updating1633 stores pending increments for async update1634 avoids N + 1 queries1635 when destroying1636 stores pending increment for async update1637 when it is destroyed from the project level1638 does not update the project statistics1639 does not schedule a namespace statistics worker1640 .not_expired1641 returns artifacts that have not expired1642 .with_reports1643 is expected to be empty1644 when there are reports1645 is expected to contain exactly #<Ci::JobArtifact id: 28, project_id: 509, job_id: 69, file_type: "junit", size: 568, created_at: "20...nil, file: "junit.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil> and #<Ci::JobArtifact id: 29, project_id: 510, job_id: 70, file_type: "codequality", size: 1877, created_..., file: "codeclimate.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil>1646 .test_reports1647 when there is a test report1648 is expected to eq [#<Ci::JobArtifact id: 30, project_id: 511, job_id: 71, file_type: "junit", size: 568, created_at: "2...il, file: "junit.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil>]1649 when there are no test reports1650 is expected to be empty1651 .accessibility_reports1652 when there is an accessibility report1653 is expected to eq [#<Ci::JobArtifact id: 32, project_id: 513, job_id: 73, file_type: "accessibility", size: 5977, creat... "pa11y_with_errors.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil>]1654 when there are no accessibility report1655 is expected to be empty1656 .coverage_reports1657 when there is a coverage report1658 is expected to eq [#<Ci::JobArtifact id: 33, project_id: 514, job_id: 74, file_type: "cobertura", size: 576, created_at... file: "coverage.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil>]1659 when there are no coverage reports1660 is expected to be empty1661 .codequality_reports1662 when there is a codequality report1663 is expected to eq [#<Ci::JobArtifact id: 35, project_id: 516, job_id: 76, file_type: "codequality", size: 1877, created... file: "codeclimate.json", file_store: 1, file_sha256: nil, file_format: "raw", file_location: nil>]1664 when there are no codequality reports1665 is expected to be empty1666 .terraform_reports1667 when there is a terraform report1668 return the job artifact1669 when there are no terraform reports1670 return the an empty array1671 .associated_file_types_for1672 file_type: "codequality", result: ["codequality"]1673 is expected to eq ["codequality"]1674 file_type: "quality", result: nil1675 is expected to eq nil1676 .erasable1677 when there is an erasable artifact1678 is expected to eq [#<Ci::JobArtifact id: 38, project_id: 519, job_id: 79, file_type: "junit", size: 568, created_at: "2...il, file: "junit.xml.gz", file_store: 1, file_sha256: nil, file_format: "gzip", file_location: nil>]1679 when there are no erasable artifacts1680 is expected to be empty1681 .downloadable1682 filters for downloadable artifacts1683 .archived_trace_exists_for?1684 when the specified job_id exists1685 is expected to be truthy1686 when the job does have archived trace1687 is expected to be falsy1688 when the specified job_id does not exist1689 is expected to be falsy1690 .for_sha1691 returns job artifacts for a given pipeline sha1692 .for_job_name1693 returns job artifacts for a given job name1694 .unlocked1695 with locked pipelines1696 returns an empty array1697 with unlocked pipelines1698 returns the artifact1699 .order_expired_desc1700 returns ordered artifacts1701 callbacks1702 #schedule_background_upload1703 when object storage is disabled1704 does not schedule the migration1705 when object storage is enabled1706 when background upload is enabled1707 schedules the model for migration1708 when background upload is disabled1709 schedules the model for migration1710 creating the artifact1711 sets the size from the file size1712 updating the artifact file1713 updates the artifact size1714 validates if file format is supported1715 when license_management is supported1716 is expected to be valid1717 when license_management is not supported1718 is expected not to be valid1719 validates file format1720 when archive type with zip format1721 is expected to be valid1722 when archive type without format specification1723 is expected not to be valid1724 when archive type with other formats1725 is expected not to be valid1726 is expected not to be valid1727 when metadata type with gzip format1728 is expected to be valid1729 when metadata type without format specification1730 is expected not to be valid1731 when metadata type with other formats1732 is expected not to be valid1733 is expected not to be valid1734 when junit type with gzip format1735 is expected to be valid1736 when junit type without format specification1737 is expected not to be valid1738 when junit type with other formats1739 is expected not to be valid1740 is expected not to be valid1741 when metrics type with gzip format1742 is expected to be valid1743 when metrics type without format specification1744 is expected not to be valid1745 when metrics type with other formats1746 is expected not to be valid1747 is expected not to be valid1748 when metrics_referee type with gzip format1749 is expected to be valid1750 when metrics_referee type without format specification1751 is expected not to be valid1752 when metrics_referee type with other formats1753 is expected not to be valid1754 is expected not to be valid1755 when network_referee type with gzip format1756 is expected to be valid1757 when network_referee type without format specification1758 is expected not to be valid1759 when network_referee type with other formats1760 is expected not to be valid1761 is expected not to be valid1762 when dotenv type with gzip format1763 is expected to be valid1764 when dotenv type without format specification1765 is expected not to be valid1766 when dotenv type with other formats1767 is expected not to be valid1768 is expected not to be valid1769 when cobertura type with gzip format1770 is expected to be valid1771 when cobertura type without format specification1772 is expected not to be valid1773 when cobertura type with other formats1774 is expected not to be valid1775 is expected not to be valid1776 when cluster_applications type with gzip format1777 is expected to be valid1778 when cluster_applications type without format specification1779 is expected not to be valid1780 when cluster_applications type with other formats1781 is expected not to be valid1782 is expected not to be valid1783 when lsif type with zip format1784 is expected to be valid1785 when lsif type without format specification1786 is expected not to be valid1787 when lsif type with other formats1788 is expected not to be valid1789 is expected not to be valid1790 when sast type with raw format1791 is expected to be valid1792 when sast type without format specification1793 is expected not to be valid1794 when sast type with other formats1795 is expected not to be valid1796 is expected not to be valid1797 when secret_detection type with raw format1798 is expected to be valid1799 when secret_detection type without format specification1800 is expected not to be valid1801 when secret_detection type with other formats1802 is expected not to be valid1803 is expected not to be valid1804 when dependency_scanning type with raw format1805 is expected to be valid1806 when dependency_scanning type without format specification1807 is expected not to be valid1808 when dependency_scanning type with other formats1809 is expected not to be valid1810 is expected not to be valid1811 when container_scanning type with raw format1812 is expected to be valid1813 when container_scanning type without format specification1814 is expected not to be valid1815 when container_scanning type with other formats1816 is expected not to be valid1817 is expected not to be valid1818 when dast type with raw format1819 is expected to be valid1820 when dast type without format specification1821 is expected not to be valid1822 when dast type with other formats1823 is expected not to be valid1824 is expected not to be valid1825 when license_management type with raw format1826 is expected to be valid1827 when license_management type without format specification1828 is expected not to be valid1829 when license_management type with other formats1830 is expected not to be valid1831 is expected not to be valid1832 when license_scanning type with raw format1833 is expected to be valid1834 when license_scanning type without format specification1835 is expected not to be valid1836 when license_scanning type with other formats1837 is expected not to be valid1838 is expected not to be valid1839 when accessibility type with raw format1840 is expected to be valid1841 when accessibility type without format specification1842 is expected not to be valid1843 when accessibility type with other formats1844 is expected not to be valid1845 is expected not to be valid1846 when codequality type with raw format1847 is expected to be valid1848 when codequality type without format specification1849 is expected not to be valid1850 when codequality type with other formats1851 is expected not to be valid1852 is expected not to be valid1853 when performance type with raw format1854 is expected to be valid1855 when performance type without format specification1856 is expected not to be valid1857 when performance type with other formats1858 is expected not to be valid1859 is expected not to be valid1860 when browser_performance type with raw format1861 is expected to be valid1862 when browser_performance type without format specification1863 is expected not to be valid1864 when browser_performance type with other formats1865 is expected not to be valid1866 is expected not to be valid1867 when load_performance type with raw format1868 is expected to be valid1869 when load_performance type without format specification1870 is expected not to be valid1871 when load_performance type with other formats1872 is expected not to be valid1873 is expected not to be valid1874 when terraform type with raw format1875 is expected to be valid1876 when terraform type without format specification1877 is expected not to be valid1878 when terraform type with other formats1879 is expected not to be valid1880 is expected not to be valid1881 when requirements type with raw format1882 is expected to be valid1883 when requirements type without format specification1884 is expected not to be valid1885 when requirements type with other formats1886 is expected not to be valid1887 is expected not to be valid1888 when coverage_fuzzing type with raw format1889 is expected to be valid1890 when coverage_fuzzing type without format specification1891 is expected not to be valid1892 when coverage_fuzzing type with other formats1893 is expected not to be valid1894 is expected not to be valid1895 when api_fuzzing type with raw format1896 is expected to be valid1897 when api_fuzzing type without format specification1898 is expected not to be valid1899 when api_fuzzing type with other formats1900 is expected not to be valid1901 is expected not to be valid1902 validates DEFAULT_FILE_NAMES1903 expects archive to be included1904 expects metadata to be included1905 expects trace to be included1906 expects junit to be included1907 expects sast to be included1908 expects dependency_scanning to be included1909 expects container_scanning to be included1910 expects dast to be included1911 expects codequality to be included1912 expects license_management to be included1913 expects license_scanning to be included1914 expects performance to be included1915 expects metrics to be included1916 expects metrics_referee to be included1917 expects network_referee to be included1918 expects lsif to be included1919 expects dotenv to be included1920 expects cobertura to be included1921 expects terraform to be included1922 expects accessibility to be included1923 expects cluster_applications to be included1924 expects secret_detection to be included1925 expects requirements to be included1926 expects coverage_fuzzing to be included1927 expects browser_performance to be included1928 expects load_performance to be included1929 expects api_fuzzing to be included1930 validates TYPE_AND_FORMAT_PAIRS1931 expects archive to be included1932 expects metadata to be included1933 expects trace to be included1934 expects junit to be included1935 expects sast to be included1936 expects dependency_scanning to be included1937 expects container_scanning to be included1938 expects dast to be included1939 expects codequality to be included1940 expects license_management to be included1941 expects license_scanning to be included1942 expects performance to be included1943 expects metrics to be included1944 expects metrics_referee to be included1945 expects network_referee to be included1946 expects lsif to be included1947 expects dotenv to be included1948 expects cobertura to be included1949 expects terraform to be included1950 expects accessibility to be included1951 expects cluster_applications to be included1952 expects secret_detection to be included1953 expects requirements to be included1954 expects coverage_fuzzing to be included1955 expects browser_performance to be included1956 expects load_performance to be included1957 expects api_fuzzing to be included1958 #file1959 the uploader api1960 is expected to respond to #store_dir1961 is expected to respond to #cache_dir1962 is expected to respond to #work_dir1963 expired?1964 when expire_at is nil1965 returns false1966 when expire_at is in the past1967 returns true1968 when expire_at is in the future1969 returns false1970 #expiring?1971 when expire_at is nil1972 returns false1973 when expire_at is in the past1974 returns false1975 when expire_at is in the future1976 returns true1977 #expire_in1978 is expected to be nil1979 when expire_at is specified1980 is expected to be within 5 of 604799.9996875881981 #expire_in=1982 when assigning valid duration1983 when assigning invalid duration1984 when resetting value1985 when setting to 01986 file is being stored1987 when existing object has local store1988 behaves like mounted file in local store1989 is stored locally1990 when direct upload is enabled1991 when file is stored1992 behaves like mounted file in object store1993 is stored remotely1994 .file_types1995 all file types have corresponding limit1996 file_type: "archive"1997 is expected to include "ci_max_artifact_size_archive"1998 file_type: "metadata"1999 is expected to include "ci_max_artifact_size_metadata"2000 file_type: "trace"2001 is expected to include "ci_max_artifact_size_trace"2002 file_type: "junit"2003 is expected to include "ci_max_artifact_size_junit"2004 file_type: "sast"2005 is expected to include "ci_max_artifact_size_sast"2006 file_type: "dependency_scanning"2007 is expected to include "ci_max_artifact_size_dependency_scanning"2008 file_type: "container_scanning"2009 is expected to include "ci_max_artifact_size_container_scanning"2010 file_type: "dast"2011 is expected to include "ci_max_artifact_size_dast"2012 file_type: "codequality"2013 is expected to include "ci_max_artifact_size_codequality"2014 file_type: "license_management"2015 is expected to include "ci_max_artifact_size_license_management"2016 file_type: "license_scanning"2017 is expected to include "ci_max_artifact_size_license_scanning"2018 file_type: "performance"2019 is expected to include "ci_max_artifact_size_performance"2020 file_type: "metrics"2021 is expected to include "ci_max_artifact_size_metrics"2022 file_type: "metrics_referee"2023 is expected to include "ci_max_artifact_size_metrics_referee"2024 file_type: "network_referee"2025 is expected to include "ci_max_artifact_size_network_referee"2026 file_type: "lsif"2027 is expected to include "ci_max_artifact_size_lsif"2028 file_type: "dotenv"2029 is expected to include "ci_max_artifact_size_dotenv"2030 file_type: "cobertura"2031 is expected to include "ci_max_artifact_size_cobertura"2032 file_type: "terraform"2033 is expected to include "ci_max_artifact_size_terraform"2034 file_type: "accessibility"2035 is expected to include "ci_max_artifact_size_accessibility"2036 file_type: "cluster_applications"2037 is expected to include "ci_max_artifact_size_cluster_applications"2038 file_type: "secret_detection"2039 is expected to include "ci_max_artifact_size_secret_detection"2040 file_type: "requirements"2041 is expected to include "ci_max_artifact_size_requirements"2042 file_type: "coverage_fuzzing"2043 is expected to include "ci_max_artifact_size_coverage_fuzzing"2044 file_type: "browser_performance"2045 is expected to include "ci_max_artifact_size_browser_performance"2046 file_type: "load_performance"2047 is expected to include "ci_max_artifact_size_load_performance"2048 file_type: "api_fuzzing"2049 is expected to include "ci_max_artifact_size_api_fuzzing"2050 .max_artifact_size2051 when file type is supported2052 and plan limit is disabled for the given artifact type2053 behaves like basing off the project closest setting2054 is expected to eq 10737418242055 and project closest setting results to zero2056 is expected to eq 02057 and plan limit is enabled for the given artifact type2058 and plan limit is smaller than project setting2059 behaves like basing off the plan limit2060 is expected to eq 10726932482061 and plan limit is larger than project setting2062 behaves like basing off the project closest setting2063 is expected to eq 10737418242064Banzai::Filter::CommitRangeReferenceFilter2065 requires project context2066 ignores valid references contained inside 'pre' element2067 ignores valid references contained inside 'code' element2068 ignores valid references contained inside 'a' element2069 ignores valid references contained inside 'style' element2070 internal reference2071 links to a valid two-dot reference2072 links to a valid three-dot reference2073 links to a valid short ID2074 links with adjacent text2075 ignores invalid commit IDs2076 includes no title attribute2077 includes default classes2078 includes a data-project attribute2079 includes a data-commit-range attribute2080 supports an :only_path option2081 cross-project / cross-namespace complete reference2082 links to a valid reference2083 link has valid text2084 has valid text2085 ignores invalid commit IDs on the referenced project2086 cross-project / same-namespace complete reference2087 links to a valid reference2088 link has valid text2089 has valid text2090 ignores invalid commit IDs on the referenced project2091 cross-project shorthand reference2092 links to a valid reference2093 link has valid text2094 has valid text2095 ignores invalid commit IDs on the referenced project2096 cross-project URL reference2097 links to a valid reference2098 links with adjacent text2099 ignores invalid commit IDs on the referenced project2100 group context2101 ignores internal references2102 links to a full-path reference2103CounterAttribute2104 behaves like CounterAttribute2105 defines a Redis counter_key2106 defines a method to store counters2107 build_artifacts_size2108 #delayed_increment_counter2109 when attribute is a counter attribute2110 increment: 102111 increments the counter in Redis2112 does not increment the counter for the record2113 schedules a worker to flush counter increments asynchronously2114 increment: -32115 increments the counter in Redis2116 does not increment the counter for the record2117 schedules a worker to flush counter increments asynchronously2118 when increment is 02119 does nothing2120 when attribute is not a counter attribute2121 delegates to ActiveRecord update!2122 when feature flag is disabled2123 delegates to ActiveRecord update!2124 does not increment the counter in Redis2125 commit_count2126 #delayed_increment_counter2127 when attribute is a counter attribute2128 increment: 102129 increments the counter in Redis2130 does not increment the counter for the record2131 schedules a worker to flush counter increments asynchronously2132 increment: -32133 increments the counter in Redis2134 does not increment the counter for the record2135 schedules a worker to flush counter increments asynchronously2136 when increment is 02137 does nothing2138 when attribute is not a counter attribute2139 delegates to ActiveRecord update!2140 when feature flag is disabled2141 delegates to ActiveRecord update!2142 does not increment the counter in Redis2143 .flush_increments_to_database!2144 obtains an exclusive lease during processing2145 when there is a counter to flush2146 updates the record2147 removes the increment entry from Redis2148 when there are no counters to flush2149 when there are no counters in the relative :flushed key2150 does not change the record2151 when there are counters in the relative :flushed key2152 updates the record2153 deletes the relative :flushed key2154 when deleting :flushed key fails2155 does a rollback of the counter update2156 after_flush callbacks2157 has registered callbacks2158 when there are increments to flush2159 executes the callbacks2160 when there are no increments to flush2161 does not execute the callbacks2162 .steal_increments2163 increment: nil, flushed: nil, result: 0, flushed_key_present: false2164 is expected to eq 02165 drops the increment key and creates the flushed key if it does not exist2166 increment: nil, flushed: 0, result: 0, flushed_key_present: false2167 is expected to eq 02168 drops the increment key and creates the flushed key if it does not exist2169 increment: 0, flushed: 0, result: 0, flushed_key_present: false2170 is expected to eq 02171 drops the increment key and creates the flushed key if it does not exist2172 increment: 1, flushed: 0, result: 1, flushed_key_present: true2173 is expected to eq 12174 drops the increment key and creates the flushed key if it does not exist2175 increment: 1, flushed: nil, result: 1, flushed_key_present: true2176 is expected to eq 12177 drops the increment key and creates the flushed key if it does not exist2178 increment: 1, flushed: 1, result: 2, flushed_key_present: true2179 is expected to eq 22180 drops the increment key and creates the flushed key if it does not exist2181 increment: 1, flushed: -2, result: -1, flushed_key_present: true2182 is expected to eq -12183 drops the increment key and creates the flushed key if it does not exist2184 increment: -1, flushed: 1, result: 0, flushed_key_present: false2185 is expected to eq 02186 drops the increment key and creates the flushed key if it does not exist2187Gitlab::ReferenceExtractor2188 accesses valid user objects2189 ignores user mentions inside specific elements2190 does not include anchors from table of contents in issue references2191 accesses valid issue objects2192 accesses valid merge requests2193 accesses valid labels2194 accesses valid snippets2195 accesses valid commits2196 accesses valid commit ranges2197 directly addressed users2198 when a user is directly addressed2199 accesses the user object which is mentioned in the beginning of the line2200 doesn't access the user object if it's not mentioned in the beginning of the line2201 when multiple users are addressed2202 accesses the user objects which are mentioned in the beginning of the line2203 doesn't access the user objects if they are not mentioned in the beginning of the line2204 when multiple users are addressed in different paragraphs2205 accesses user objects which are mentioned in the beginning of each paragraph2206 with an external issue tracker2207 when GitLab issues are enabled2208 returns both Jira and internal issues2209 returns only Jira issues if the internal one does not exist2210 when GitLab issues are disabled2211 returns only Jira issues2212 with an inactive external issue tracker2213 when GitLab issues are enabled2214 returns only internal issue2215 does not return any issue if the internal one does not exist2216 with a project with an underscore2217 handles project issue references2218 #all2219 returns all referables2220 .references_pattern2221 is expected to be a kind of Regexp2222 referables prefixes2223 returns all supported prefixes2224 does not allow one prefix for multiple referables if not allowed specificly2225 #references2226 increases stateful_not_visible_counter2227 when references are visible2228 returns visible references of given type2229 does not increase stateful_not_visible_counter2230Gitlab::ImportExport::FastHashSerializer2231 saves the correct hash2232 has approvals_before_merge set2233 has milestones2234 has merge requests2235 has merge request's milestones2236 has merge request's source branch SHA2237 has merge request's target branch SHA2238 has events2239 has snippets2240 has snippet notes2241 has releases2242 has no author on releases2243 has the author ID on releases2244 has issues2245 has issue comments2246 has issue assignees2247 has author on issue comments2248 has project members2249 has merge requests diffs2250 has merge request diff files2251 has merge request diff commits2252 has merge requests comments2253 has author on merge requests comments2254 has pipeline stages2255 has pipeline statuses2256 has pipeline builds2257 has pipeline commits2258 has ci pipeline notes2259 has labels with no associations2260 has labels associated to records2261 has project and group labels2262 has priorities associated to labels2263 has issue resource label events2264 has merge request resource label events2265 has project feature2266 has custom attributes2267 has badges2268 does not complain about non UTF-8 characters in MR diff files2269 has a board and a list2270 project attributes2271 does not contain the runners token2272 relation ordering2273 orders exported pipelines by primary key2274gitlab:workhorse namespace rake task2275 install2276 clones the origin and creates a gitlab-workhorse binary2277 no dir given2278 aborts and display a help message2279 when an underlying Git command fails2280 aborts and display a help message2281MergeRequests::FfMergeService2282 #execute2283 valid params2284 does not create merge commit2285 keeps the merge request valid2286 updates the merge request to merged2287 sends email to user2 about merge of new merge_request2288 creates resource event about merge_request merge2289 does not update squash_commit_sha if it is not a squash2290 updates squash_commit_sha if it is a squash2291 error handling2292 logs and saves error if there is an exception2293 logs and saves error if there is an PreReceiveError exception2294 does not update squash_commit_sha if squash merge is not successful2295Banzai::ReferenceParser::BaseParser2296 .reference_type=2297 sets the reference type2298 #project_for_node2299 returns the Project for a node2300 #nodes_visible_to_user2301 when the link has a data-project attribute2302 includes the link if can_read_reference? returns true2303 excludes the link if can_read_reference? returns false2304 when the link does not have a data-project attribute2305 returns the nodes2306 #nodes_user_can_reference2307 returns the nodes2308 #referenced_by2309 when references_relation is implemented2310 returns a collection of objects2311 when references_relation is not implemented2312 raises NotImplementedError2313 #references_relation2314 raises NotImplementedError2315 #gather_attributes_per_project2316 returns a Hash containing attribute values per project2317 #grouped_objects_for_nodes2318 returns a Hash grouping objects per node2319 returns an empty Hash when entry does not exist in the database2320 #unique_attribute_values2321 returns an Array of unique values2322 #process2323 gathers the references for every node matching the reference type2324 #gather_references2325 returns referenceable and visible objects, alongside nodes that are referenceable but not visible2326 is always empty if the input is empty2327 #can?2328 delegates the permissions check to the Ability class2329 #find_projects_for_hash_keys2330 returns a list of Projects2331 #collection_objects_for_ids2332 with RequestStore disabled2333 queries the collection directly2334 with RequestStore enabled2335 queries the collection on the first call2336 does not query previously queried objects2337 casts String based IDs to Fixnums before querying objects2338 queries any additional objects after the first call2339 caches objects on a per collection class basis2340 will not overflow the stack2341 #collection_cache_key2342 returns the cache key for a Class2343 returns the cache key for an ActiveRecord::Relation2344Todos::Destroy::GroupPrivateService2345 #execute2346 when a group set to private2347 removes todos only for users who are not group users2348 with nested groups2349 removes todos only for users who are not group users2350 when group is not private2351 does not remove any todos2352Gitlab::ContributionsCalendar2353 #activity_dates2354 returns a hash of date => count2355 counts the diff notes on merge request2356 counts the discussions on merge requests and issues2357 when the user has opted-in for private contributions2358 shows private and public events to all users2359 when events fall under different dates depending on the time zone2360 renders correct event counts within the UTC timezone2361 renders correct event counts within the Sydney timezone2362 renders correct event counts within the US Central timezone2363 #events_by_date2364 returns all events for a given date2365 only shows private events to authorized users2366 when the user cannot read cross project2367 does not return any events2368 #starting_year2369 is the start of last year2370 #starting_month2371 is the start of this month2372EnvironmentNamesFinder2373 #execute2374 using a group2375 with a group developer2376 returns environment names for all projects2377 with a group reporter2378 returns environment names for all projects2379 with a public project reporter2380 returns environment names for all public projects2381 with a private project reporter2382 returns environment names for all public projects2383 with a group guest2384 returns environment names for all public projects2385 with a non-member2386 returns environment names for all public projects2387 without a user2388 returns environment names for all public projects2389 using a public project2390 with a project developer2391 returns all the unique environment names2392 with a project reporter2393 returns all the unique environment names2394 with a project guest2395 returns all the unique environment names2396 with a non-member2397 returns all the unique environment names2398 without a user2399 returns all the unique environment names2400 using a private project2401 with a project developer2402 returns all the unique environment names2403 with a project reporter2404 returns all the unique environment names2405 with a project guest2406 does not return any environment names2407 with a non-member2408 does not return any environment names2409 without a user2410 does not return any environment names2411Gitlab::Email::Message::RepositoryPush2412 new commits have been pushed to repository2413 #project2414 is expected to eq #<Project id:795 my_group/project907>>2415 is expected to be an instance of Project2416 #project_namespace2417 is expected to eq #<Group id:1621 @my_group>2418 is expected to be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_a...override_disabled_shared_runners: boolean, traversal_ids: integer, delayed_project_removal: boolean)2419 #project_name_with_namespace2420 is expected to eq "my_group / project911"2421 #author2422 is expected to eq #<User id:1475 @user1568>2423 is expected to be an instance of User2424 #author_name2425 is expected to eq "Author"2426 #commits2427 is expected to be a kind of Array2428 is expected to all be an instance of Commit2429 #diffs2430 is expected to all be an instance of Gitlab::Diff::File2431 #diffs_count2432 is expected to eq 92433 #compare2434 is expected to be an instance of Compare2435 #compare_timeout2436 is expected to eq false2437 #reverse_compare?2438 is expected to eq false2439 #disable_diffs?2440 is expected to eq false2441 #send_from_committer_email?2442 is expected to eq true2443 #action_name2444 is expected to eq "pushed to"2445 #ref_name2446 is expected to eq "master"2447 #ref_type2448 is expected to eq "branch"2449 #target_url2450 is expected to include "compare"2451 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"2452 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2453 #subject2454 is expected to include "[Git][my_group/project930]"2455 is expected to include "6 commits"2456 is expected to include "Ruby files modified"2457CommitStatusPresenter2458 inherits from Gitlab::View::Presenter::Delegated2459 covers all failure reasons2460 unknown_failure2461 is a valid status2462 script_failure2463 is a valid status2464 api_failure2465 is a valid status2466 stuck_or_timeout_failure2467 is a valid status2468 runner_system_failure2469 is a valid status2470 missing_dependency_failure2471 is a valid status2472 runner_unsupported2473 is a valid status2474 stale_schedule2475 is a valid status2476 job_execution_timeout2477 is a valid status2478 archived_failure2479 is a valid status2480 unmet_prerequisites2481 is a valid status2482 scheduler_failure2483 is a valid status2484 data_integrity_failure2485 is a valid status2486 forward_deployment_failure2487 is a valid status2488 insufficient_bridge_permissions2489 is a valid status2490 downstream_bridge_project_not_found2491 is a valid status2492 invalid_bridge_trigger2493 is a valid status2494 bridge_pipeline_is_child_pipeline2495 is a valid status2496 downstream_pipeline_creation_failed2497 is a valid status2498 secrets_provider_not_found2499 is a valid status2500 reached_max_descendant_pipelines_depth2501 is a valid status2502 invalid failure message2503 is an invalid status2504ProjectAPICompatibility2505 converts build_git_strategy=fetch to build_allow_git_fetch=true2506 converts build_git_strategy=clone to build_allow_git_fetch=false2507 #auto_devops_enabled2508 initial: :missing, final: nil2509 sets the correct value2510 initial: :missing, final: false2511 sets the correct value2512 initial: :missing, final: true2513 sets the correct value2514 initial: nil, final: nil2515 sets the correct value2516 initial: nil, final: false2517 sets the correct value2518 initial: nil, final: true2519 sets the correct value2520 initial: false, final: nil2521 sets the correct value2522 initial: false, final: false2523 sets the correct value2524 initial: false, final: true2525 sets the correct value2526 initial: true, final: nil2527 sets the correct value2528 initial: true, final: false2529 sets the correct value2530 initial: true, final: true2531 sets the correct value2532 #auto_devops_deploy_strategy2533 initial: :missing, final: "continuous"2534 sets the correct value2535 initial: :missing, final: "manual"2536 sets the correct value2537 initial: :missing, final: "timed_incremental"2538 sets the correct value2539 initial: "continuous", final: "continuous"2540 sets the correct value2541 initial: "continuous", final: "manual"2542 sets the correct value2543 initial: "continuous", final: "timed_incremental"2544 sets the correct value2545 initial: "manual", final: "continuous"2546 sets the correct value2547 initial: "manual", final: "manual"2548 sets the correct value2549 initial: "manual", final: "timed_incremental"2550 sets the correct value2551 initial: "timed_incremental", final: "continuous"2552 sets the correct value2553 initial: "timed_incremental", final: "manual"2554 sets the correct value2555 initial: "timed_incremental", final: "timed_incremental"2556 sets the correct value2557StarredProjectsFinder2558 #execute2559 user has a public profile2560 as same user2561 is expected to contain exactly #<Project id:869 namespace772/project981>>, #<Project id:870 namespace773/project982>>, and #<Project id:871 namespace774/project983>>2562 as other user2563 is expected to contain exactly #<Project id:872 namespace775/project984>> and #<Project id:873 namespace776/project985>>2564 as no user2565 is expected to contain exactly #<Project id:875 namespace778/project987>> and #<Project id:876 namespace779/project988>>2566 user has a private profile2567 as same user2568 is expected to contain exactly #<Project id:878 namespace781/project990>>, #<Project id:879 namespace782/project991>>, and #<Project id:880 namespace783/project992>>2569 as other user2570 user does not have access to view the private profile2571 is expected to be empty2572 user has access to view the private profile2573 is expected to contain exactly #<Project id:884 namespace787/project996>>, #<Project id:885 namespace788/project997>>, and #<Project id:886 namespace789/project998>>2574 as no user2575 is expected to be empty2576Projects::Settings::DeployKeysPresenter2577 inherits from Gitlab::View::Presenter::Simple2578 #enabled_keys2579 returns currently enabled keys2580 does not contain enabled_keys inside available_keys2581 returns the enabled_keys size2582 #available_keys/#available_project_keys2583 returns the current available_keys2584 returns the current available_project_keys2585 returns the available_project_keys size2586 prevent N + 1 queries2587 returns correct counts2588 does not increase the query count2589Gitlab::GithubImport::Importer::PullRequestImporter2590 #execute2591 imports the pull request2592 #create_merge_request2593 when the author could be found2594 imports the pull request with the pull request author as the merge request author2595 returns the created merge request2596 when the source and target branch are identical2597 uses a generated source branch name for the merge request2598 when the import fails due to a foreign key error2599 does not raise any errors2600 when the merge request already exists2601 returns the existing merge request2602 when the author could not be found2603 imports the pull request with the project creator as the merge request author2604 #set_merge_request_assignees2605 when pull request has an assignee2606 sets merge request assignees2607 when pull request does not have any assignees2608 does not set merge request assignees2609 #insert_git_data2610 does not create the source branch if merge request is merged2611 creates a merge request diff and sets it as the latest2612 creates the merge request diff commits2613 when merge request is open2614 creates the source branch2615 is able to retry on pre-receive errors2616 ignores Git command errors when creating a branch2617 when the merge request exists2618 creates the merge request diffs if they do not yet exist2619Ci::BuildRunnerSession2620 is expected to belong to build required:2621 is expected to validate that :build cannot be empty/falsy2622 is expected to validate that :url cannot be empty/falsy, producing a custom validation error on failure2623 nested attribute assignment2624 creates a new session2625 updates session with new attributes2626 #terminal_specification2627 returns terminal.gitlab.com protocol2628 returns a wss url2629 returns empty hash if no url2630 when url is present2631 returns ca_pem nil if empty certificate2632 adds Authorization header if authorization is present2633 #service_specification2634 returns service proxy url2635 returns default service proxy websocket subprotocol2636 returns empty hash if no url2637 when port is not present2638 uses the default port name2639 when the service is not present2640 uses the service name "build" as default2641 when url is present2642 returns ca_pem nil if empty certificate2643 adds Authorization header if authorization is present2644 when subprotocol is present2645 returns the new subprotocol2646JenkinsService2647 Associations2648 is expected to belong to project required:2649 is expected to have one service_hook2650 username validation2651 when the service is active2652 when password was not touched2653 is expected not to validate that :username cannot be empty/falsy2654 when password was touched2655 is expected to validate that :username cannot be empty/falsy2656 when password is blank2657 does not validate the username2658 when the service is inactive2659 is expected not to validate that :username cannot be empty/falsy2660 #hook_url2661 when the jenkins_url has no relative path2662 is expected to eq "http://jenkins.example.com/project/my_project"2663 when the jenkins_url has relative path2664 is expected to eq "http://organization.example.com/jenkins/project/my_project"2665 userinfo is missing and username and password are set2666 is expected to eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"2667 userinfo is provided and username and password are set2668 is expected to eq "http://username:password@organization.example.com/jenkins/project/my_project"2669 userinfo is provided username and password are not set2670 is expected to eq "http://u:p@organization.example.com/jenkins/project/my_project"2671 #test2672 returns the right status2673 #execute2674 invokes the Jenkins API2675 adds default web hook headers to the request2676 request url contains properly serialized username and password2677 Stored password invalidation2678 when a password was previously set2679 resets password if url changed2680 resets password if username is blank2681 does not reset password if username changed2682 does not reset password if new url is set together with password, even if it's the same password2683 resets password if url changed, even if setter called multiple times2684 when no password was previously set2685 saves password if new url is set together with password2686DiffViewer::Base2687 .can_render?2688 when the extension is supported2689 when the binaryness matches2690 returns true2691 when the binaryness does not match2692 returns false2693 when the extension and file type are not supported2694 returns false2695 when the file was renamed and only the old blob is supported2696 returns false2697 #collapsed?2698 when the combined blob size is larger than the collapse limit2699 returns true2700 when the combined blob size is smaller than the collapse limit2701 returns false2702 #too_large?2703 when the combined blob size is larger than the size limit2704 returns true2705 when the blob size is smaller than the size limit2706 returns false2707 #render_error2708 when the combined blob size is larger than the size limit2709 returns :too_large2710 when the combined blob size is smaller than the size limit2711 returns nil2712 #render_error_message2713 returns nothing when no render_error2714 when render_error error2715 returns an error message2716 includes a "view the blob" link2717Mutations::Issues::SetDueDate2718 is expected to require graphql authorizations :update_issue2719 #resolve2720 behaves like permission level for issue mutation is correctly verified2721 when the user is not a project member2722 behaves like when the user does not have access to the resource2723 raises an error2724 even if assigned to the issue2725 does not modify issue2726 even if author of the issue2727 raises an error2728 when the user is a project member2729 with guest role2730 behaves like when the user does not have access to the resource2731 raises an error2732 even if assigned to the issue2733 does not modify issue2734 even if author of the issue2735 raises an error2736 when the user can update the issue2737 returns the issue with updated due date2738 when passing incorrect due date value2739 does not update due date2740Gitlab::ImportExport::Project::ObjectBuilder2741 request store is not active2742 ignore cache initialize2743 request store is active2744 initialize cache in memory2745 cache object when first time find the object2746 read from cache when object has been cached2747 labels2748 finds the existing group label2749 finds the existing group label in root ancestor2750 creates a new label2751 milestones2752 finds the existing group milestone2753 finds the existing group milestone in root ancestor2754 creates a new milestone2755 merge_request2756 finds the existing merge_request2757 creates a new merge_request2758Packages::Conan::FileMetadatum2759 relationships2760 is expected to belong to package_file required:2761 validations2762 is expected to validate that :package_file cannot be empty/falsy2763 is expected to validate that :recipe_revision cannot be empty/falsy2764 #recipe_revision2765 is expected to allow :recipe_revision to be ‹"0"›2766 is expected not to allow :recipe_revision to be ‹nil›2767 #package_revision_for_package_file2768 recipe file2769 is valid with empty value2770 is invalid with value2771 package file2772 is valid with default value2773 is invalid with non-default value2774 #conan_package_reference_for_package_file2775 recipe file2776 is valid with empty value2777 is invalid with value2778 package file2779 is valid with acceptable value2780 is invalid with invalid value2781 is invalid when nil2782 #conan_package_type2783 validates package of type conan2784Operations::FeatureFlags::UserList2785 validations2786 is expected to validate that :project cannot be empty/falsy2787 is expected to validate that :name cannot be empty/falsy2788 is expected to validate that :name is case-sensitively unique within the scope of :project_id2789 is expected to validate that the length of :name is between 1 and 2552790 user_xids2791 valid_value: ""2792 is valid with a string of comma separated values2793 valid_value: "sam"2794 is valid with a string of comma separated values2795 valid_value: "1"2796 is valid with a string of comma separated values2797 valid_value: "a"2798 is valid with a string of comma separated values2799 valid_value: "uuid-of-some-kind"2800 is valid with a string of comma separated values2801 valid_value: "sam,fred,tom,jane,joe,mike"2802 is valid with a string of comma separated values2803 valid_value: "gitlab@example.com"2804 is valid with a string of comma separated values2805 valid_value: "123,4"2806 is valid with a string of comma separated values2807 valid_value: "UPPER,Case,charActeRS"2808 is valid with a string of comma separated values2809 valid_value: "0"2810 is valid with a string of comma separated values2811 valid_value: "$valid$email#2345\#$%..{}+=-)?\\/@example.com"2812 is valid with a string of comma separated values2813 valid_value: "spaces allowed"2814 is valid with a string of comma separated values2815 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"2816 is valid with a string of comma separated values2817 valid_value: "a,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccc"2818 is valid with a string of comma separated values2819 valid_value: "many spaces"2820 is valid with a string of comma separated values2821 typecast_value: 12822 automatically casts values of other types2823 typecast_value: 2.52824 automatically casts values of other types2825 typecast_value: {}2826 automatically casts values of other types2827 typecast_value: []2828 automatically casts values of other types2829 invalid_value: nil2830 is invalid2831 invalid_value: "123\n456"2832 is invalid2833 invalid_value: "1,2,3,12\t3"2834 is invalid2835 invalid_value: "\n"2836 is invalid2837 invalid_value: "\n\r"2838 is invalid2839 invalid_value: "joe\r,sam"2840 is invalid2841 invalid_value: "1,2,2"2842 is invalid2843 invalid_value: "1,,2"2844 is invalid2845 invalid_value: "1,2,,,,"2846 is invalid2847 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"2848 is invalid2849 invalid_value: "1, ,2"2850 is invalid2851 invalid_value: "tim, ,7"2852 is invalid2853 invalid_value: " "2854 is invalid2855 invalid_value: " "2856 is invalid2857 invalid_value: " ,1"2858 is invalid2859 invalid_value: "1, "2860 is invalid2861 invalid_value: " leading,1"2862 is invalid2863 invalid_value: "1,trailing "2864 is invalid2865 invalid_value: "1, both ,2"2866 is invalid2867 url_helpers2868 generates paths based on the internal id2869 #destroy2870 deletes the model if it is not associated with any feature flag strategies2871 does not delete the model if it is associated with a feature flag strategy2872 .for_name_like2873 returns a found name2874 returns an empty array when no lists match the query2875 behaves like AtomicInternalId2876 .has_internal_id2877 Module inclusion2878 is expected to includes the AtomicInternalId module2879 Validation2880 when presence validation is required2881 when creating an object2882 raises an error if the internal id is blank2883 when updating an object2884 raises an error if the internal id is blank2885 when presence validation is not required2886 when creating an object2887 does not raise an error if the internal id is blank (PENDING: No reason given)2888 when updating an object2889 does not raise an error if the internal id is blank (PENDING: No reason given)2890 Creating an instance2891 saves a new instance properly2892 internal id generation2893 calls InternalId.generate_next and sets internal id attribute2894 does not overwrite an existing internal id2895 when the instance has an internal ID set2896 calls InternalId.update_last_value and sets the `last_value` to that of the instance2897 unsetting the instance internal id on rollback2898 when the internal id has been changed2899 when the internal id is automatically set2900 clears it on the instance2901 when the internal id is manually set2902 does not clear it on the instance2903 when the internal id has not been changed2904 preserves the value on the instance2905 supply of internal ids2906 provides a persistent supply of IID values, sensitive to the current state2907 #reset_scope_internal_id_attribute2908 rewinds the allocated IID2909 allocates the same IID2910Security::LicenseComplianceJobsFinder2911 behaves like Security::JobsFinder2912 #new2913 does not get initialized for unsupported job types2914 #execute2915 when using legacy CI build metadata config storage2916 behaves like JobsFinder core functionality2917 when the pipeline has no jobs2918 is expected to be empty2919 when the pipeline has no Secure jobs2920 is expected to be empty2921 when the pipeline only has jobs without report artifacts2922 is expected to be empty2923 when the pipeline only has jobs with reports unrelated to Secure products2924 is expected to be empty2925 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports2926 is expected to be empty2927 when there is more than one pipeline2928 returns jobs associated with provided pipeline2929 when using the new CI build metadata config storage2930 behaves like JobsFinder core functionality2931 when the pipeline has no jobs2932 is expected to be empty2933 when the pipeline has no Secure jobs2934 is expected to be empty2935 when the pipeline only has jobs without report artifacts2936 is expected to be empty2937 when the pipeline only has jobs with reports unrelated to Secure products2938 is expected to be empty2939 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports2940 is expected to be empty2941 when there is more than one pipeline2942 returns jobs associated with provided pipeline2943 #execute2944 returns only the license_scanning jobs2945PrometheusAdapter2946 #query2947 validate_query2948 with valid data2949 returns query data2950 environment2951 with valid data2952 returns reactive data2953 matched_metrics2954 with valid data2955 returns reactive data2956 deployment2957 with valid data2958 returns reactive data2959 additional_metrics2960 with valid data2961 returns reactive data2962 #calculate_reactive_cache2963 when service is inactive2964 is expected to be nil2965 when Prometheus responds with valid data2966 is expected to eq "{\"success\":true,\"data\":{\"memory_values\":[{\"metric\":{},\"values\":[[1488758662.506,\"0.000029...lue\":[1488772511.004,\"0.000041021495238095323\"]}]},\"last_update\":\"2021-03-03T12:12:06.000Z\"}"2967 when Prometheus responds with 4042968 is expected to eq {:result=>"404 - \"QUERY FAILED!\"", :success=>false}2969 when Prometheus responds with 5002970 is expected to eq {:result=>"500 - \"QUERY FAILED!\"", :success=>false}2971 #build_query_args2972 when active record models are included2973 serializes by id2974 when args are safe for serialization2975 does nothing2976Groups::GroupLinks::CreateService#execute2977 adds group to another group2978 returns false if shared group is blank2979 user does not have access to group2980 returns error2981 user does not have admin access to shared group2982 returns error2983 project authorizations based on group hierarchies2984 project authorizations refresh2985 is executed only for the direct members of the group2986 project authorizations2987 group user2988 create proper authorizations2989 parent group user2990 create proper authorizations2991 child group user2992 create proper authorizations2993projects/deployments/_confirm_rollback_modal2994 when re-deploying last deployment2995 shows "re-deploy"2996 links to re-deploying the environment2997 when rolling back to previous deployment2998 shows "rollback"2999 links to re-deploying the environment3000PostReceiveService3001 when project is nil3002 does not return error3003 behaves like does not record an onboarding progress action3004 is expected not to receive new(*(any args)) 0 times3005 when repository is nil3006 does not return error3007 when both repository and project are nil3008 does not return error3009 with Project3010 returns link to create new merge request3011 returns the link to an existing merge request when it exists3012 does not invoke MergeRequests::PushOptionsHandlerService3013 behaves like post_receive_service actions3014 enqueues a PostReceive worker job3015 decreases the reference counter and returns the result3016 behaves like records an onboarding progress action3017 is expected to receive execute({:action=>:git_write}) 1 time3018 when printing_merge_request_link_enabled is false3019 returns no merge request messages3020 when there are merge_request push options3021 invokes MergeRequests::PushOptionsHandlerService3022 creates a new merge request3023 links to the newly created merge request3024 adds errors on the service instance to warnings3025 adds ActiveRecord errors on invalid MergeRequest records to warnings3026 with PersonalSnippet3027 does not return link to create new merge request3028 does not return the link to an existing merge request when it exists3029 behaves like post_receive_service actions3030 enqueues a PostReceive worker job3031 decreases the reference counter and returns the result3032 behaves like records an onboarding progress action3033 is expected to receive execute({:action=>:git_write}) 1 time3034 with ProjectSnippet3035 does not return link to create new merge request3036 does not return the link to an existing merge request when it exists3037 behaves like post_receive_service actions3038 enqueues a PostReceive worker job3039 decreases the reference counter and returns the result3040 behaves like records an onboarding progress action3041 is expected to receive execute({:action=>:git_write}) 1 time3042 broadcast message banner exists3043 outputs a broadcast message3044 broadcast message notification exists3045 does not output a broadcast message3046 broadcast message does not exist3047 does not output a broadcast message3048 nil broadcast message3049 does not output a broadcast message3050 broadcast message has a target_path3051 no project path matches3052 does not output the scoped broadcast messages3053 does output another message that doesn't have a target_path3054 project path matches3055 does output the latest scoped broadcast message3056 does not output the older scoped broadcast message3057 does not output another message that doesn't have a target_path3058 with a redirected data3059 returns redirected message on the response3060 with new project data3061 returns new project message on the response3062 #process_mr_push_options3063 when repository belongs to a snippet3064 with PersonalSnippet3065 returns an error message3066 with ProjectSnippet3067 returns an error message3068 #merge_request_urls3069 when repository belongs to a snippet3070 with PersonalSnippet3071 returns an empty array3072 with ProjectSnippet3073 returns an empty array3074UploadService3075 File service3076 for valid gif file3077 is expected to have key :alt3078 is expected to have key :url3079 is expected to have value "banana_sample"3080 is expected to match "banana_sample.gif"3081 for valid png file3082 is expected to have key :alt3083 is expected to have key :url3084 is expected to have value "dk"3085 is expected to match "dk.png"3086 for valid jpg file3087 is expected to have key :alt3088 is expected to have key :url3089 is expected to have value "rails_sample"3090 is expected to match "rails_sample.jpg"3091 for txt file3092 is expected to have key :alt3093 is expected to have key :url3094 is expected to have value "doc_sample.txt"3095 is expected to match "doc_sample.txt"3096 for too large a file3097 is expected to eq {}3098Todos::Destroy::ConfidentialIssueService3099 #execute3100 when issue_id parameter is present3101 when provided issue is confidential3102 removes issue todos for users who can not access the confidential issue3103 when provided issue is not confidential3104 does not remove any todos3105 when project_id parameter is present3106 removes issues todos for users that cannot access confidential issues3107Files::UpdateService3108 #execute3109 when the file's last commit sha does not match the supplied last_commit_sha3110 returns a hash with the correct error message and a :error status3111 when the file's last commit sha does match the supplied last_commit_sha3112 returns a hash with the :success status3113 updates the file with the new contents3114 uses the commit email3115 when the last_commit_sha is not supplied3116 returns a hash with the :success status3117 updates the file with the new contents3118GpgKeys::CreateService3119 creates a gpg key3120 notification3121 sends a notification3122 when the public key contains subkeys3123 generates the gpg subkeys3124Projects::MoveProjectMembersService3125 #execute3126 moves the members from one project to another3127 does not move existent members to the current project3128 rollbacks changes if transaction fails3129 when remove_remaining_elements is false3130 does not remove remaining project members3131Ci::DestroyExpiredJobArtifactsService3132 .execute3133 when artifact is expired3134 with preloaded relationships3135 performs the smallest number of queries for job_artifacts3136 when artifact is not locked3137 deletes job artifact record3138 when the artifact does not a file attached to it3139 does not create deleted objects3140 when the artifact has a file attached to it3141 creates a deleted object3142 resets project statistics3143 does not remove the files3144 reports metrics for destroyed artifacts3145 when artifact is locked3146 does not destroy job artifact3147 when artifact is not expired3148 does not destroy expired job artifacts3149 when artifact is permanent3150 does not destroy expired job artifacts3151 when failed to destroy artifact3152 when the import fails3153 raises an exception and stop destroying3154 when the delete fails3155 raises an exception rolls back the insert3156 when exclusive lease has already been taken by the other instance3157 raises an error and does not start destroying3158 when timeout happens3159 destroys one artifact3160 reports the number of destroyed artifacts3161 when loop reached loop limit3162 destroys one artifact3163 reports the number of destroyed artifacts3164 when there are no artifacts3165 does not raise error3166 reports the number of destroyed artifacts3167 when there are artifacts more than batch sizes3168 destroys all expired artifacts3169 reports the number of destroyed artifacts3170 when some artifacts are locked3171 destroys only unlocked artifacts3172Gitlab::Chat::Responder::Slack3173 #send_response3174 sends a response back to Slack3175 #success3176 returns the output for a successful build3177 limits the output to a fixed size3178 does not send a response if the output is empty3179 #failure3180 returns the output for a failed build3181 #scheduled_output3182 returns the output for a scheduled build3183RemoveExpiredMembersWorker3184 #perform3185 project members3186 removes expired members3187 leaves members that expire in the future3188 leaves members that do not expire at all3189 project bots3190 expired project bot3191 removes expired project bot membership3192 deletes expired project bot3193 non-expired project bot3194 does not remove expired project bot that expires in the future3195 does not delete project bot expiring in the future3196 group members3197 removes expired members3198 leaves members that expire in the future3199 leaves members that do not expire at all3200 when the last group owner expires3201 does not delete the owner3202Gitlab::SlashCommands::IssueMove3203 #match3204 behaves like move command3205 can be parsed to extract the needed fields3206 behaves like move command3207 can be parsed to extract the needed fields3208 behaves like move command3209 can be parsed to extract the needed fields3210 behaves like move command3211 can be parsed to extract the needed fields3212 behaves like move command3213 can be parsed to extract the needed fields3214 behaves like move command3215 can be parsed to extract the needed fields3216 #execute3217 when the user can move the issue3218 when the move fails3219 returns the error message3220 when the move succeeds3221 moves the issue to the new destination3222 returns the new issue3223 mentions the old issue3224 when the issue does not exist3225 returns not found3226 when the target project does not exist3227 returns not found3228 when the user cannot see the target project3229 returns not found3230 when the user does not have the required permissions on the target project3231 returns the error message3232Atlassian::JiraConnect::Serializers::DeploymentEntity3233 when the deployment does not belong to any Jira issue3234 #issue_keys3235 is empty3236 #to_json3237 can encode the object3238 is invalid, since it has no issue keys3239 this is an external deployment3240 does not raise errors when serializing3241 returns an empty list of issue keys3242 environment type3243 env_name: "prod", env_type: "production"3244 has the correct environment type3245 env_name: "test", env_type: "testing"3246 has the correct environment type3247 env_name: "staging", env_type: "staging"3248 has the correct environment type3249 env_name: "dev", env_type: "development"3250 has the correct environment type3251 env_name: "review/app", env_type: "development"3252 has the correct environment type3253 env_name: "something-else", env_type: "unmapped"3254 has the correct environment type3255 when the deployment can be linked to a Jira issue3256 because it belongs to an MR with a jira_branch3257 #issue_keys3258 is not empty3259 #to_json3260 is valid according to the deployment info schema3261 because it belongs to an MR with a jira_title3262 #issue_keys3263 is not empty3264 #to_json3265 is valid according to the deployment info schema3266Ci::ExtractSectionsFromBuildTraceService#execute3267 when the build has no user3268 behaves like build trace has sections markers3269 saves the correct extracted sections3270 fails if trace_sections isn't empty3271 behaves like build trace has no sections markers3272 extracts no sections3273 when the build has a valid user3274 behaves like build trace has sections markers3275 saves the correct extracted sections3276 fails if trace_sections isn't empty3277 behaves like build trace has no sections markers3278 extracts no sections3279WebIdeTerminalEntity3280 is expected to have key :id3281 is expected to have key :status3282 is expected to have key :show_path3283 is expected to have key :cancel_path3284 is expected to have key :retry_path3285 is expected to have key :terminal_path3286 is expected to have key :services3287 is expected to have key :proxy_websocket_path3288 when feature flag build_service_proxy is disabled3289 is expected not to have key :proxy_websocket_path3290Issues::ReorderService3291 #execute3292 when ordering issues in a project3293 behaves like issues reorder service3294 when reordering issues3295 returns false with no params3296 returns false with both invalid params3297 sorts issues3298 sorts issues if only given one neighbour, on the left3299 sorts issues if only given one neighbour, on the right3300 when ordering issues in a group3301 behaves like issues reorder service3302 when reordering issues3303 returns false with no params3304 returns false with both invalid params3305 sorts issues3306 sorts issues if only given one neighbour, on the left3307 sorts issues if only given one neighbour, on the right3308 when ordering in a group issue list3309 sends the board_group_id parameter3310 sorts issues3311Gitlab::ImportExport::LfsRestorer3312 #restore3313 when the archive contains lfs files3314 succeeds3315 does not create a new `LfsObject` records, as one already exists3316 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`3317 restores the correct `LfsObject` records3318 restores the correct `LfsObjectsProject` records for the project3319 assigns the file correctly3320 when there is not an existing `LfsObject`3321 creates a new lfs object3322 stores the upload3323 when there is no lfs-objects.json file3324 restores the correct `LfsObject` records3325 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`3326 without any LFS-objects3327 succeeds3328Clusters::Applications::DeactivateServiceWorker#perform3329 cluster exists3330 prometheus service3331 prometheus service exists3332 cluster type: group3333 ensures Prometheus service is deactivated3334 cluster type: project3335 ensures Prometheus service is deactivated3336 cluster type: instance3337 ensures Prometheus service is deactivated3338 prometheus service does not exist3339 cluster type: project3340 does not raise errors3341 cluster does not exist3342 raises Record Not Found error3343Gitlab::Auth::Saml::User3344 #save3345 account exists on server3346 and should bind with SAML3347DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3348 adds the SAML identity to the existing user3349 external groups3350 are defined3351DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3352 marks the user as external3353 are defined but the user does not belong there3354DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3355 does not mark the user as external3356 user was external, now should not be3357DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3358 makes user internal3359 no account exists on server3360 external groups3361 are defined3362DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3363 marks the user as external3364 are defined but the user does not belong there3365DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3366 does not mark the user as external3367 with auto_link_ldap_user disabled (default)3368 with allow_single_sign_on enabled3369DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3370 creates a user from SAML3371 with allow_single_sign_on default (["saml"])3372DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3373 does not throw an error3374 with allow_single_sign_on disabled3375 throws an error3376 with auto_link_ldap_user enabled3377 and at least one LDAP provider is defined3378 and a corresponding LDAP person3379 and no account for the LDAP user3380DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3381 creates a user with dual LDAP and SAML identities3382 and LDAP user has an account already3383DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3384 adds the omniauth identity to the LDAP account3385DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3386DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3387 saves successfully on subsequent tries, when both identities are present3388 when uid is an uid3389 behaves like find LDAP person3390DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3391 adds the omniauth identity to the LDAP account3392 when uid is a dn3393 behaves like find LDAP person3394DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3395 adds the omniauth identity to the LDAP account3396 when uid is an email3397 behaves like find LDAP person3398DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3399 adds the omniauth identity to the LDAP account3400 user has SAML user, and wants to add their LDAP identity3401DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3402 adds the LDAP identity to the existing SAML user3403 when signup is disabled3404DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3405 creates the user3406 when user confirmation email is enabled3407DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3408 creates and confirms the user anyway3409 when the current minimum password length is different from the default minimum password length3410DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3411 creates the user3412 blocking3413 signup with SAML only3414 dont block on create3415DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3416 does not block the user3417 block on create3418DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3419 blocks user3420 sign-in3421 dont block on create3422DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3423 is expected not to be blocked3424 block on create3425DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3426 is expected not to be blocked3427 #find_user3428 raw info hash attributes empty3429DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3430 does not mark user as external3431 #bypass_two_factor?3432 with authn_contexts_worth_two_factors configured3433DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3434 returns true when authn_context is worth two factors3435DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3436 returns false when authn_context is not worth two factors3437DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3438 returns false when authn_context is blank3439 without auth_contexts_worth_two_factors_configured3440DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3441 returns false when authn_context is present3442DEPRECATION WARNING: ActiveSupport::Multibyte::Chars#normalize is deprecated and will be removed from Rails 6.1. Use #unicode_normalize(:nfkd) instead. (called from generate_username at /builds/gitlab-org/gitlab/lib/gitlab/auth/o_auth/auth_hash.rb:84)3443 returns false when authn_context is blank3444Banzai::ReferenceParser::MilestoneParser3445 #nodes_visible_to_user3446 when the link has a data-issue attribute3447 behaves like referenced feature visibility3448 when feature is disabled3449 does not create reference3450 when feature is enabled only for team members3451 does not create reference for non member3452 creates reference for member3453 when feature is enabled3454 creates reference3455 #referenced_by3456 when the link has a data-milestone attribute3457 using an existing milestone ID3458 returns an Array of milestones3459 using a non-existing milestone ID3460 returns an empty Array3461ImportExportUploader3462 local store3463 #move_to_store3464 returns true3465 object_store is REMOTE3466 behaves like builds correct paths3467 #store_dir3468 behaves like matches the method pattern3469 is expected to match /import_export_upload\/import_file\//3470 #cache_dir3471 behaves like matches the method pattern3472 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3473 #work_dir3474 behaves like matches the method pattern3475 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3476 #upload_path3477 behaves like matches the method pattern3478 is expected to match /import_export_upload\/import_file\//3479 #relative_path3480 is relative (PENDING: Path not set, skipping.)3481 .absolute_path3482 behaves like matches the method pattern3483 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3484 .base_dir3485 behaves like matches the method pattern3486 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3487 path traversal exploits3488 throws an exception3489 #move_to_store3490 returns false3491 with an export file directly uploaded3492 cleans up cached file3493 .workhorse_local_upload_path3494 returns path that includes uploads dir3495Gitlab::Ci::Pipeline::Chain::Build::Associations3496 when a bridge is passed in to the pipeline creation3497 links the pipeline to the upstream bridge job3498 never breaks the chain3499 when a bridge is not passed in to the pipeline creation3500 leaves the source pipeline empty3501 never breaks the chain3502Gitlab::Diff::DiffRefs3503 #==3504 when shas are missing3505 returns false3506 when shas are equal3507 returns true3508 when shas are unequal3509 returns false3510 when shas are truncated3511 when sha prefixes are too short3512 returns false3513 when sha prefixes are equal3514 returns true3515 when sha prefixes are unequal3516 returns false3517 #compare_in3518 with diff refs for the initial commit3519 returns an appropriate comparison3520 with diff refs for a commit3521 returns an appropriate comparison3522 with diff refs for a comparison through the base3523 returns an appropriate comparison3524 with diff refs for a straight comparison3525 returns an appropriate comparison3526Gitlab::Ci::Config::External::File::Project3527 #matching?3528 when a file and project is specified3529 returns true3530 with only file is specified3531 returns false3532 with only project is specified3533 returns false3534 with a missing local key3535 returns false3536 #valid?3537 when a valid path is used3538 returns true3539 when user does not have permission to access file3540 returns false3541 when a valid path with custom ref is used3542 returns true3543 when an empty file is used3544 returns false3545 when non-existing ref is used3546 returns false3547 when non-existing file is requested3548 returns false3549 when file is not a yaml file3550 returns false3551 #expand_context3552 inherits user, and target project and sha3553Gitlab::ImportExport::Project::ExportTask3554 when project is found3555/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.1/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3556 performs project export successfully3557 behaves like rake task with disabled object_storage3558 disables direct & background upload only for service call3559 when project is not found3560 logs an error3561 returns false3562 when file path is invalid3563 logs an error3564 returns false3565 when after export strategy fails3566/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.1/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil3567 error is logged3568 when saving services fail3569 error is logged3570Jobs/Build.gitlab-ci.yml3571 the created pipeline3572 on master3573 creates the build job3574 on another branch3575 creates the build job3576 on tag3577 creates the build job3578 on merge request3579 has no jobs3580projects/merge_requests/_commits.html.haml3581 shows commits from source project3582 when there are hidden commits3583 shows notice about omitted commits3584gitlab:update_project_templates rake task3585 updates valid project templates3586WikiHelper3587 #wiki_page_title3588 sets the title for the show action3589 sets the title for a custom action3590 sets the title for an unsaved page3591 #breadcrumb3592 when the page is at the root level3593 returns the capitalized page name3594 when the page is inside a directory3595 returns the capitalized name of each directory and of the page itself3596 #wiki_attachment_upload_url3597 returns the upload endpoint for project wikis3598 raises an exception for unsupported wiki containers3599 #wiki_sort_controls3600 initial call3601 renders with default values3602 sort by title3603 renders a link with opposite direction3604 sort by created_at3605 renders a link with opposite direction3606 #wiki_sort_title3607 returns a title corresponding to a key3608 defaults to Title if a key is unknown3609 #wiki_page_tracking_context3610 returns the tracking context3611 returns a nest level of zero for toplevel files3612Banzai::ReferenceParser::ExternalIssueParser3613 #nodes_visible_to_user3614 when the link has a data-issue attribute3615 creates reference when the feature is 03616 creates reference when the feature is 103617 creates reference when the feature is 203618 #referenced_by3619 when the link has a data-project attribute3620 when the link has a data-external-issue attribute3621 returns an Array of ExternalIssue instances3622 when the link does not have a data-external-issue attribute3623 returns an empty Array3624 when the link does not have a data-project attribute3625 returns an empty Array3626 #issue_ids_per_project3627 returns a Hash containing range IDs per project3628 does not add a project when the data-external-issue attribute is empty3629Gitlab::Checks::SnippetCheck3630 #validate!3631 does not raise any error3632 trying to delete the branch3633 behaves like raises and logs error3634 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3635 trying to create the branch3636 behaves like raises and logs error3637 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3638 when branch is the same as the default branch3639 allows the operation3640 when snippet has an empty repo3641 allows the operation3642 when default_branch is nil3643 behaves like raises and logs error3644 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3645Banzai::ReferenceParser::LabelParser3646 #nodes_visible_to_user3647 when the link has a data-issue attribute3648 behaves like referenced feature visibility3649 when feature is disabled3650 does not create reference3651 when feature is enabled only for team members3652 does not create reference for non member3653 creates reference for member3654 when feature is enabled3655 creates reference3656 #referenced_by3657 when the link has a data-label attribute3658 using an existing label ID3659 returns an Array of labels3660 using a non-existing label ID3661 returns an empty Array3662ApplicationHelper3663 current_controller?3664 returns true when controller matches argument3665 returns false when controller does not match argument3666 takes any number of arguments3667 when namespaced3668 returns true when controller matches argument3669 returns true when controller and namespace matches argument in path notation3670 returns false when namespace doesnt match3671 current_action?3672 returns true when action matches3673 returns false when action does not match3674 takes any number of arguments3675 #admin_section?3676 when controller is under the admin namespace3677 returns true3678 when controller is not under the admin namespace3679 returns true3680 simple_sanitize3681 allows the a tag3682 allows the span tag3683 disallows other tags3684 time_ago_with_tooltip3685 returns a time element3686 includes the date string3687 has a datetime attribute3688 has a formatted title attribute3689 includes a default js-timeago class3690 accepts a custom html_class3691 accepts a custom tooltip placement3692 converts to Time3693 add class for the short format3694 #active_when3695 is expected to eq "active"3696 is expected to eq nil3697 #promo_host3698 returns the url3699 #promo_url3700 returns the url3701 changes if promo_host changes3702 #contact_sales_url3703 returns the url3704 changes if promo_url changes3705 #support_url3706 when alternate support url is specified3707 returns the alternate support url3708 when alternate support url is not specified3709 builds the support url from the promo_url3710 #instance_review_permitted?3711 app_setting: true, is_admin: true3712 is expected to equal true3713 app_setting: true, is_admin: false3714 is expected to equal false3715 app_setting: true, is_admin: nil3716 is expected to equal nil3717 app_setting: false, is_admin: true3718 is expected to equal false3719 app_setting: false, is_admin: false3720 is expected to equal false3721 app_setting: false, is_admin: nil3722 is expected to equal false3723 #locale_path3724 returns the locale path with an `_`3725 #client_class_list3726 returns string containing CSS classes representing client browser and platform3727 #client_js_flags3728 returns map containing JS flags representing client browser and platform3729 #page_startup_api_calls3730 returns map containing JS Page Startup Calls3731 #autocomplete_data_sources3732 returns paths for autocomplete_sources_controller3733 #external_storage_url_or_path3734 when external storage is disabled3735 returns the passed path3736 when @snippet is set3737 returns the passed path3738 when external storage is enabled3739 returns the external storage URL prepended to the path3740 preserves the path query parameters3741 when project is public3742 returns does not append a token parameter3743 #body_data3744 when @project is not set3745 does not include project data in the body data elements3746 when @group is set3747 sets group in the body data elements3748 when @project is set3749 includes all possible body data elements and associates the project elements with project3750 when @project is owned by a group3751 includes all possible body data elements and associates the project elements with project3752 when controller is issues3753 when params[:id] is present and the issue exsits and action_name is show3754 sets all project and id elements correctly related to the issue3755 when current_user has download_code permission3756 returns find_file with the default branch3757Gitlab::Ci::Status::Stage::Common3758 does not have action3759 links to the pipeline details page3760 when user has permission to read pipeline3761 has details3762 when user does not have permission to read pipeline3763 does not have details3764DesignManagement::NewVersionWorker3765 #perform3766 the id is wrong or out-of-date3767 does not create system notes3768 does not invoke GenerateImageVersionsService3769 logs the reason for this failure3770 the version id is valid3771 creates a system note3772 does not create a system note if skip_system_notes is true3773 invokes GenerateImageVersionsService3774 does not log anything3775 the version includes multiple types of action3776 creates two system notes3777 calls design_version_added3778Gitlab::Consul::Internal3779 .api_url3780 returns correct value3781 when consul setting is not present in gitlab.yml3782 does not fail3783 .discover_service3784 behaves like returns nil given blank value of3785 is expected to be nil3786 is expected to be nil3787 behaves like returns nil given blank value of3788 is expected to be nil3789 is expected to be nil3790 one service discovered3791 returns the service address and port3792 multiple services discovered3793 uses the first service3794 behaves like handles failure response3795 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued3796 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued3797 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued3798 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued3799 raises Consul::Internal::UnexpectedResponseError when request returns 5003800 raises Consul::Internal::UnexpectedResponseError when request returns non json data3801 .discover_prometheus_server_address3802 returns the server address3803 behaves like returns nil given blank value of3804 is expected to be nil3805 is expected to be nil3806 behaves like handles failure response3807 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued3808 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued3809 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued3810 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued3811 raises Consul::Internal::UnexpectedResponseError when request returns 5003812 raises Consul::Internal::UnexpectedResponseError when request returns non json data3813Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules3814 #perform!3815 when pipeline has been skipped by workflow configuration3816 does not save the pipeline3817 breaks the chain3818 attaches an error to the pipeline3819 when pipeline has not been skipped by workflow configuration3820 continues the pipeline processing chain3821 does not skip the pipeline3822 attaches no errors3823API::Entities::MergeRequestApprovals3824 serializes an approved merge request3825 serializes a merge request that is not approved3826RemoveUnreferencedLfsObjectsWorker3827 #perform3828 removes unreferenced lfs objects3829 leaves referenced lfs objects3830 removes unreferenced lfs objects after project removal3831Gitlab::Ci::Status::Build::Common3832 #has_action?3833 is expected not to have action3834 #has_details?3835 when user has access to read build3836 is expected to have details3837 when user does not have access to read build3838 is expected not to have details3839 #details_path3840 links to the build details page3841 #illustration3842 provides a fallback empty state illustration3843ProtectedBranchesFinder3844 #execute3845 returns all protected branches of project by default3846 when search param is present3847 filters by search param3848 when there are more protected branches than the limit3849 returns limited protected branches of project3850Groups::GroupMembersHelper3851 .group_member_select_options3852 returns an options hash3853 #group_group_links_data_json3854 matches json schema3855 #members_data_json3856 for a group member3857 behaves like members.json3858 matches json schema3859 with user status set3860 behaves like members.json3861 matches json schema3862 for an invited group member3863 behaves like members.json3864 matches json schema3865 for an access request3866 behaves like members.json3867 matches json schema3868 #group_members_list_data_attributes3869 returns expected hash3870 #group_group_links_list_data_attributes3871 returns expected hash3872Clusters::Applications::ScheduleUpdateService3873 #execute3874 when application is able to be updated3875 when the application was recently scheduled3876 schedules worker with a backoff delay3877 when the application has not been recently updated3878 schedules worker3879Gitlab::Email::Smime::Signer3880 when using an intermediate CA3881 signs data appropriately with SMIME3882 when not using an intermediate CA3883 signs data appropriately with SMIME3884Projects::BatchOpenIssuesCountService3885 #refresh_cache3886 when cache is clean3887 refreshes cache keys correctly3888 when issues count is already cached3889 does update cache again3890Gitlab::Git::Patches::CommitPatches3891 #commit3892 applies the patches3893 updates the branch cache3894 when the repository does not exist3895 raises the correct error3896 when the patch does not apply3897 raises the correct error3898Packages::Conan::PackageFinder3899 #execute3900 packages that are not visible to user3901 is expected to eq [#<Packages::Package id: 20, project_id: 1312, created_at: "2021-03-03 12:14:11", updated_at: "2021-0..., name: "package-21", version: "1.0.0", package_type: "conan", creator_id: 2265, status: "default">]3902Gitlab::Cleanup::OrphanJobArtifactFilesBatch3903 no dry run3904 deletes only orphan job artifacts from disk3905 does not mix up job ID and artifact ID3906 with dry run3907 does not remove files3908Gitlab::ImportExport::SnippetsRepoSaver3909 bundle a project Git repo3910 creates the snippet bundles dir if not exists3911 when project does not have any snippet3912 does not perform any action3913 when project has snippets3914 calls the SnippetRepoSaver for each snippet3915 when one snippet cannot be saved3916 returns false and do not process other snippets3917Gitlab::X509::Signature3918 commit signature3919 verified signature3920 with trusted certificate store3921 behaves like a verified signature3922 returns a verified signature if email does match3923 returns an unverified signature if email does not match3924 returns an unverified signature if email does match and time is wrong3925 returns an unverified signature if certificate is revoked3926 with the certificate defined by OpenSSL::X509::DEFAULT_CERT_FILE3927 behaves like a verified signature3928 returns a verified signature if email does match3929 returns an unverified signature if email does not match3930 returns an unverified signature if email does match and time is wrong3931 returns an unverified signature if certificate is revoked3932 without trusted certificate within store3933 returns an unverified signature3934 invalid signature3935 returns nil3936 invalid commit message3937 returns nil3938 certificate_crl3939 valid crlDistributionPoints3940 creates an issuer3941 valid crlDistributionPoints providing multiple http URIs3942 extracts the first URI3943 email3944 subjectAltName with email, othername3945 extracts email3946 subjectAltName with othername, email3947 extracts email3948 #user3949 if email is not assigned to a user, return nil3950 if email is assigned to a user3951 returns user3952 tag signature3953 verified signature3954 with trusted certificate store3955 returns a verified signature if email does match3956 returns an unverified signature if email does not match3957 returns an unverified signature if email does match and time is wrong3958 returns an unverified signature if certificate is revoked3959 without trusted certificate within store3960 returns an unverified signature3961 invalid signature3962 returns nil3963 invalid message3964 returns nil3965Resolvers::SnippetsResolver3966 #resolve3967 calls SnippetsFinder3968 when using no filter3969 returns expected snippets3970 when using filters3971 returns the snippets by type3972 returns the snippets by visibility3973 returns snippets to explore3974 returns the snippets by single gid3975 returns the snippets by array of gid3976 returns an error if the id cannot be coerced3977 returns an error if both project and author are provided3978 by author id3979 returns the snippets3980 returns an error if the param id is invalid3981 by project id3982 returns the snippets3983 returns an error if the param id is invalid3984Users::UpdateService3985 #execute3986 updates time preferences3987 returns an error result when record cannot be updated3988 includes namespace error messages3989 updates the status if status params were given3990 does not delete the status if no status param was passed3991 includes status error messages3992 updates user detail with provided attributes3993 updating canonical email3994 if email was changed3995 calls canonicalize_email3996 if email was NOT changed3997 skips update canonicalize email service call3998 #execute!3999 updates the name4000 raises an error when record cannot be updated4001 fires system hooks when a new user is saved4002projects/commits/_commit.html.haml4003 with a signed commit4004 does not display a loading spinner for GPG status4005 with ci status4006 when pipelines are disabled4007 does not display a ci status icon4008 when pipelines are enabled4009 does display a ci status icon when pipelines are enabled4010Ci::PipelineArtifacts::CodeCoveragePresenter4011 #for_files4012 when code coverage has data4013 when filenames is empty4014 returns hash without coverage4015 when filenames do not match code coverage data4016 returns hash without coverage4017 when filenames matches code coverage data4018 when asking for one filename4019 returns coverage for the given filename4020 when asking for multiple filenames4021 returns coverage for a the given filenames4022Gitlab::SlashCommands::IssueSearch4023 #execute4024 when the user has no access4025 only returns the open issues4026 the user has access4027 returns all results4028 without hits on the query4029 returns an empty collection4030 self.match4031 matches the query4032MergeRequestCleanupRefsWorker4033 #perform4034 when merge request exists4035 is labeled as idempotent4036 performs multiple times sequentially without raising an exception4037 calls MergeRequests::CleanupRefsService#execute4038 when merge_request_refs_cleanup flag is disabled4039 does not clean up the merge request4040 when merge request does not exist4041 does not call MergeRequests::CleanupRefsService4042Gitlab::Usage::Metric4043 #definition4044 returns key_path metric definiton4045 #unflatten_default_path4046 key_path: "uuid", value: nil, expected_hash: {:uuid=>nil}4047 is expected to eq {:uuid=>nil}4048 key_path: "uuid", value: "1111", expected_hash: {:uuid=>"1111"}4049 is expected to eq {:uuid=>"1111"}4050 key_path: "counts.issues", value: nil, expected_hash: {:counts=>{:issues=>nil}}4051 is expected to eq {:counts=>{:issues=>nil}}4052 key_path: "counts.issues", value: 100, expected_hash: {:counts=>{:issues=>100}}4053 is expected to eq {:counts=>{:issues=>100}}4054 key_path: "usage_activity_by_stage.verify.ci_builds", value: 100, expected_hash: {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}4055 is expected to eq {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}4056TriggerVariableEntity4057 exposes the variable key4058 when user has access to the value4059 when user is maintainer4060 exposes the variable value4061 when user is owner4062 exposes the variable value4063 when user does not have access to the value4064 does not expose the variable value4065Gitlab::Database::Count::ExactCountStrategy4066 #count4067 counts all models4068 returns default value if count times out4069Ci::PipelineArtifacts::CodeQualityMrDiffPresenter4070 #for_files4071 when code quality has data4072 when filenames is empty4073 returns hash without quality4074 when filenames do not match code quality data4075 returns hash without quality4076 when filenames matches code quality data4077 when asking for one filename4078 returns quality for the given filename4079 when asking for multiple filenames4080 returns quality for the given filenames4081Gitlab::GitAccessProject4082 #check_namespace!4083 when namespace is nil4084 does not allow push and pull access4085 #check_project_accessibility!4086 when the project is nil4087 when user is allowed to create project in namespace4088 blocks pull access with "not found"4089 allows push access4090 when user is not allowed to create project in namespace4091 blocks push and pull with "not found"4092 #ensure_project_on_push!4093 when push4094 when project does not exist4095 when changes is _any4096 when authentication abilities include push code4097 when user can create project in namespace4098 creates a new project in the correct namespace4099 when namespace is blank4100 behaves like no project is created4101 does not create a new project4102 when namespace does not exist4103 behaves like no project is created4104 does not create a new project4105 when user cannot create project in namespace4106 behaves like no project is created4107 does not create a new project4108 when authentication abilities do not include push code4109 when user can create project in namespace4110 behaves like no project is created4111 does not create a new project4112 when check contains actual changes4113 behaves like no project is created4114 does not create a new project4115 when project exists4116 behaves like no project is created4117 does not create a new project4118 when deploy key is used4119 behaves like no project is created4120 does not create a new project4121 when pull4122 when project does not exist4123 behaves like no project is created4124 does not create a new project4125Gitlab::Import::MergeRequestCreator4126 #execute4127 merge request already exists4128 updates the data4129 new merge request4130 creates a new merge request4131clusters/clusters/gcp/_form4132 with all feature flags enabled4133 has a cloud run checkbox4134 with cloud run feature flag disabled4135 does not have a cloud run checkbox4136AwardEmojis::CollectUserEmojiService4137 #execute4138 returns an Array containing the awarded emoji names4139 returns an empty Array when no user is given4140Metrics::Dashboard::ClusterDashboardService4141 .valid_params?4142 is expected to be truthy4143 with matching dashboard_path4144 is expected to be truthy4145 missing cluster without dashboard_path4146 is expected to be falsey4147 #get_dashboard4148 behaves like valid dashboard service response4149 behaves like valid dashboard service response for schema4150 returns a json representation of the dashboard4151 behaves like caches the unprocessed dashboard for subsequent calls4152DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.0.3.4/lib/active_support/cache.rb:330: warning: Passing the keyword argument as the last hash parameter is deprecated4153/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activesupport-6.0.3.4/lib/active_support/cache.rb:710: warning: The called method `get_entry_value' is defined here4154 (called from fetch at /builds/gitlab-org/gitlab/lib/gitlab/metrics/dashboard/cache.rb:15)4155 is expected to receive load_raw!(*(any args)) 1 time4156 behaves like refreshes cache when dashboard_version is changed4157 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/cluster_metrics.yml>) 2 times4158 behaves like dashboard_version contains SHA256 hash of dashboard file content4159 is expected to eq "e1a4f8cc2c044cf32273af2cd775eb484729baac0995db687d81d92686bf588e"4160 when called with a non-system dashboard4161 behaves like valid dashboard service response4162 behaves like valid dashboard service response for schema4163 returns a json representation of the dashboard4164Boards::CreateService4165 #execute4166 when board parent is a project4167 behaves like boards create service4168 when parent does not have a board4169 creates a new board4170 creates the default lists4171 when parent has a board4172 does not create a new board4173 when board parent is a group4174 behaves like boards create service4175 when parent does not have a board4176 creates a new board4177 creates the default lists4178 when parent has a board4179 does not create a new board4180Clusters::InstancePolicy4181 rules4182 when user4183 is expected to be disallowed :read_cluster4184 is expected to be disallowed :add_cluster4185 is expected to be disallowed :create_cluster4186 is expected to be disallowed :update_cluster4187 is expected to be disallowed :admin_cluster4188 when admin4189 when admin mode is enabled4190 is expected to be allowed :read_cluster4191 is expected to be allowed :add_cluster4192 is expected to be allowed :create_cluster4193 is expected to be allowed :update_cluster4194 is expected to be allowed :admin_cluster4195 when admin mode is disabled4196 is expected to be disallowed :read_cluster4197 is expected to be disallowed :add_cluster4198 is expected to be disallowed :create_cluster4199 is expected to be disallowed :update_cluster4200 is expected to be disallowed :admin_cluster4201Tooling::Danger::Helper4202 #gitlab_helper4203 when gitlab helper is not available4204 returns nil4205 when gitlab helper is available4206 returns the gitlab helper4207 when danger gitlab plugin is not available4208 returns nil4209 #release_automation?4210 when gitlab helper is not available4211 returns false4212 when gitlab helper is available4213 but the MR author isn't the RELEASE_TOOLS_BOT4214 returns false4215 and the MR author is the RELEASE_TOOLS_BOT4216 returns true4217 #all_changed_files4218 interprets a list of changes from the danger git plugin4219 #changed_lines4220 when file has diff4221 returns file changes4222 when file has no diff (renamed without changes)4223 returns a blank array4224 changed_files4225 returns list of changed files matching given regex4226 #all_ee_changes4227 returns all changed files starting with ee/4228 #ee?4229 returns true if CI_PROJECT_NAME if set to gitlab4230 delegates to CHANGELOG-EE.md existence if CI_PROJECT_NAME is set to something else4231 returns true if ee exists4232 returns false if ee doesn't exist4233 #project_name4234 returns gitlab if ee? returns true4235 returns gitlab-ce if ee? returns false4236 #markdown_list4237 creates a markdown list of items4238 wraps items in <details> when there are more than 10 items4239 #changes_by_category4240 categorizes changed files4241 Tooling::Danger::Helper::Changes4242 #has_category?4243 returns true when changes include given category, false otherwise4244 #by_category4245 returns an array of Change objects4246 returns an array of Change objects with the given category4247 #categories4248 returns an array of category symbols4249 #files4250 returns an array of files4251 #changes4252 returns an array of Change objects4253 groups changes by change type4254 #categories_for_file4255 path: "usage_data.rb", expected_categories: [:database, :backend]4256 is expected to eq [:database, :backend]4257 path: "doc/foo.md", expected_categories: [:docs]4258 is expected to eq [:docs]4259 path: "CONTRIBUTING.md", expected_categories: [:docs]4260 is expected to eq [:docs]4261 path: "LICENSE", expected_categories: [:docs]4262 is expected to eq [:docs]4263 path: "MAINTENANCE.md", expected_categories: [:docs]4264 is expected to eq [:docs]4265 path: "PHILOSOPHY.md", expected_categories: [:docs]4266 is expected to eq [:docs]4267 path: "PROCESS.md", expected_categories: [:docs]4268 is expected to eq [:docs]4269 path: "README.md", expected_categories: [:docs]4270 is expected to eq [:docs]4271 path: "ee/doc/foo", expected_categories: [:unknown]4272 is expected to eq [:unknown]4273 path: "ee/README", expected_categories: [:unknown]4274 is expected to eq [:unknown]4275 path: "app/assets/foo", expected_categories: [:frontend]4276 is expected to eq [:frontend]4277 path: "app/views/foo", expected_categories: [:frontend]4278 is expected to eq [:frontend]4279 path: "public/foo", expected_categories: [:frontend]4280 is expected to eq [:frontend]4281 path: "scripts/frontend/foo", expected_categories: [:frontend]4282 is expected to eq [:frontend]4283 path: "spec/javascripts/foo", expected_categories: [:frontend]4284 is expected to eq [:frontend]4285 path: "spec/frontend/bar", expected_categories: [:frontend]4286 is expected to eq [:frontend]4287 path: "vendor/assets/foo", expected_categories: [:frontend]4288 is expected to eq [:frontend]4289 path: "babel.config.js", expected_categories: [:frontend]4290 is expected to eq [:frontend]4291 path: "jest.config.js", expected_categories: [:frontend]4292 is expected to eq [:frontend]4293 path: "package.json", expected_categories: [:frontend]4294 is expected to eq [:frontend]4295 path: "yarn.lock", expected_categories: [:frontend]4296 is expected to eq [:frontend]4297 path: "config/foo.js", expected_categories: [:frontend]4298 is expected to eq [:frontend]4299 path: "config/deep/foo.js", expected_categories: [:frontend]4300 is expected to eq [:frontend]4301 path: "ee/app/assets/foo", expected_categories: [:frontend]4302 is expected to eq [:frontend]4303 path: "ee/app/views/foo", expected_categories: [:frontend]4304 is expected to eq [:frontend]4305 path: "ee/spec/javascripts/foo", expected_categories: [:frontend]4306 is expected to eq [:frontend]4307 path: "ee/spec/frontend/bar", expected_categories: [:frontend]4308 is expected to eq [:frontend]4309 path: ".gitlab/ci/frontend.gitlab-ci.yml", expected_categories: [:frontend, :engineering_productivity]4310 is expected to eq [:frontend, :engineering_productivity]4311 path: "app/models/foo", expected_categories: [:backend]4312 is expected to eq [:backend]4313 path: "bin/foo", expected_categories: [:backend]4314 is expected to eq [:backend]4315 path: "config/foo", expected_categories: [:backend]4316 is expected to eq [:backend]4317 path: "lib/foo", expected_categories: [:backend]4318 is expected to eq [:backend]4319 path: "rubocop/foo", expected_categories: [:backend]4320 is expected to eq [:backend]4321 path: ".rubocop.yml", expected_categories: [:backend]4322 is expected to eq [:backend]4323 path: ".rubocop_todo.yml", expected_categories: [:backend]4324 is expected to eq [:backend]4325 path: ".rubocop_manual_todo.yml", expected_categories: [:backend]4326 is expected to eq [:backend]4327 path: "spec/foo", expected_categories: [:backend]4328 is expected to eq [:backend]4329 path: "spec/foo/bar", expected_categories: [:backend]4330 is expected to eq [:backend]4331 path: "ee/app/foo", expected_categories: [:backend]4332 is expected to eq [:backend]4333 path: "ee/bin/foo", expected_categories: [:backend]4334 is expected to eq [:backend]4335 path: "ee/spec/foo", expected_categories: [:backend]4336 is expected to eq [:backend]4337 path: "ee/spec/foo/bar", expected_categories: [:backend]4338 is expected to eq [:backend]4339 path: "spec/features/foo", expected_categories: [:test]4340 is expected to eq [:test]4341 path: "ee/spec/features/foo", expected_categories: [:test]4342 is expected to eq [:test]4343 path: "spec/support/shared_examples/features/foo", expected_categories: [:test]4344 is expected to eq [:test]4345 path: "ee/spec/support/shared_examples/features/foo", expected_categories: [:test]4346 is expected to eq [:test]4347 path: "spec/support/shared_contexts/features/foo", expected_categories: [:test]4348 is expected to eq [:test]4349 path: "ee/spec/support/shared_contexts/features/foo", expected_categories: [:test]4350 is expected to eq [:test]4351 path: "spec/support/helpers/features/foo", expected_categories: [:test]4352 is expected to eq [:test]4353 path: "ee/spec/support/helpers/features/foo", expected_categories: [:test]4354 is expected to eq [:test]4355 path: "generator_templates/foo", expected_categories: [:backend]4356 is expected to eq [:backend]4357 path: "vendor/languages.yml", expected_categories: [:backend]4358 is expected to eq [:backend]4359 path: "file_hooks/examples/", expected_categories: [:backend]4360 is expected to eq [:backend]4361 path: "Gemfile", expected_categories: [:backend]4362 is expected to eq [:backend]4363 path: "Gemfile.lock", expected_categories: [:backend]4364 is expected to eq [:backend]4365 path: "Rakefile", expected_categories: [:backend]4366 is expected to eq [:backend]4367 path: "FOO_VERSION", expected_categories: [:backend]4368 is expected to eq [:backend]4369 path: "Dangerfile", expected_categories: [:engineering_productivity]4370 is expected to eq [:engineering_productivity]4371 path: "danger/commit_messages/Dangerfile", expected_categories: [:engineering_productivity]4372 is expected to eq [:engineering_productivity]4373 path: "ee/danger/commit_messages/Dangerfile", expected_categories: [:engineering_productivity]4374 is expected to eq [:engineering_productivity]4375 path: "danger/commit_messages/", expected_categories: [:engineering_productivity]4376 is expected to eq [:engineering_productivity]4377 path: "ee/danger/commit_messages/", expected_categories: [:engineering_productivity]4378 is expected to eq [:engineering_productivity]4379 path: ".gitlab-ci.yml", expected_categories: [:engineering_productivity]4380 is expected to eq [:engineering_productivity]4381 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_categories: [:engineering_productivity]4382 is expected to eq [:engineering_productivity]4383 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_categories: [:engineering_productivity]4384 is expected to eq [:engineering_productivity]4385 path: "scripts/foo", expected_categories: [:engineering_productivity]4386 is expected to eq [:engineering_productivity]4387 path: "tooling/danger/foo", expected_categories: [:engineering_productivity]4388 is expected to eq [:engineering_productivity]4389 path: "ee/tooling/danger/foo", expected_categories: [:engineering_productivity]4390 is expected to eq [:engineering_productivity]4391 path: "lefthook.yml", expected_categories: [:engineering_productivity]4392 is expected to eq [:engineering_productivity]4393 path: ".editorconfig", expected_categories: [:engineering_productivity]4394 is expected to eq [:engineering_productivity]4395 path: "tooling/bin/find_foss_tests", expected_categories: [:engineering_productivity]4396 is expected to eq [:engineering_productivity]4397 path: ".codeclimate.yml", expected_categories: [:engineering_productivity]4398 is expected to eq [:engineering_productivity]4399 path: ".gitlab/CODEOWNERS", expected_categories: [:engineering_productivity]4400 is expected to eq [:engineering_productivity]4401 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_categories: [:ci_template]4402 is expected to eq [:ci_template]4403 path: "lib/gitlab/ci/templates/dotNET-Core.yml", expected_categories: [:ci_template]4404 is expected to eq [:ci_template]4405 path: "ee/FOO_VERSION", expected_categories: [:unknown]4406 is expected to eq [:unknown]4407 path: "db/schema.rb", expected_categories: [:database]4408 is expected to eq [:database]4409 path: "db/structure.sql", expected_categories: [:database]4410 is expected to eq [:database]4411 path: "db/migrate/foo", expected_categories: [:database, :migration]4412 is expected to eq [:database, :migration]4413 path: "db/post_migrate/foo", expected_categories: [:database, :migration]4414 is expected to eq [:database, :migration]4415 path: "ee/db/geo/migrate/foo", expected_categories: [:database, :migration]4416 is expected to eq [:database, :migration]4417 path: "ee/db/geo/post_migrate/foo", expected_categories: [:database, :migration]4418 is expected to eq [:database, :migration]4419 path: "app/models/project_authorization.rb", expected_categories: [:database]4420 is expected to eq [:database]4421 path: "app/services/users/refresh_authorized_projects_service.rb", expected_categories: [:database]4422 is expected to eq [:database]4423 path: "lib/gitlab/background_migration.rb", expected_categories: [:database]4424 is expected to eq [:database]4425 path: "lib/gitlab/background_migration/foo", expected_categories: [:database]4426 is expected to eq [:database]4427 path: "ee/lib/gitlab/background_migration/foo", expected_categories: [:database]4428 is expected to eq [:database]4429 path: "lib/gitlab/database.rb", expected_categories: [:database]4430 is expected to eq [:database]4431 path: "lib/gitlab/database/foo", expected_categories: [:database]4432 is expected to eq [:database]4433 path: "ee/lib/gitlab/database/foo", expected_categories: [:database]4434 is expected to eq [:database]4435 path: "lib/gitlab/github_import.rb", expected_categories: [:database]4436 is expected to eq [:database]4437 path: "lib/gitlab/github_import/foo", expected_categories: [:database]4438 is expected to eq [:database]4439 path: "lib/gitlab/sql/foo", expected_categories: [:database]4440 is expected to eq [:database]4441 path: "rubocop/cop/migration/foo", expected_categories: [:database]4442 is expected to eq [:database]4443 path: "db/fixtures/foo.rb", expected_categories: [:backend]4444 is expected to eq [:backend]4445 path: "ee/db/fixtures/foo.rb", expected_categories: [:backend]4446 is expected to eq [:backend]4447 path: "qa/foo", expected_categories: [:qa]4448 is expected to eq [:qa]4449 path: "ee/qa/foo", expected_categories: [:qa]4450 is expected to eq [:qa]4451 path: "changelogs/foo", expected_categories: [:none]4452 is expected to eq [:none]4453 path: "ee/changelogs/foo", expected_categories: [:none]4454 is expected to eq [:none]4455 path: "locale/gitlab.pot", expected_categories: [:none]4456 is expected to eq [:none]4457 path: "FOO", expected_categories: [:unknown]4458 is expected to eq [:unknown]4459 path: "foo", expected_categories: [:unknown]4460 is expected to eq [:unknown]4461 path: "foo/bar.rb", expected_categories: [:backend]4462 is expected to eq [:backend]4463 path: "foo/bar.js", expected_categories: [:frontend]4464 is expected to eq [:frontend]4465 path: "foo/bar.txt", expected_categories: [:none]4466 is expected to eq [:none]4467 path: "foo/bar.md", expected_categories: [:none]4468 is expected to eq [:none]4469 having specific changes4470 expected_categories: [:database, :backend], patch: "+ count(User.active)", changed_files: ["usage_data.rb", "lib/gitlab/usage_data.rb", "ee/lib/ee/gitlab/usage_data.rb"]4471 has the correct categories4472 expected_categories: [:database, :backend], patch: "+ estimate_batch_distinct_count(User.active)", changed_files: ["usage_data.rb"]4473 has the correct categories4474 expected_categories: [:backend], patch: "+ alt_usage_data(User.active)", changed_files: ["usage_data.rb"]4475 has the correct categories4476 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["user.rb"]4477 has the correct categories4478 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["usage_data/topology.rb"]4479 has the correct categories4480 expected_categories: [:backend], patch: "+ foo_count(User.active)", changed_files: ["usage_data.rb"]4481 has the correct categories4482 #label_for_category4483 category: :backend, expected_label: "~backend"4484 is expected to eq "~backend"4485 category: :database, expected_label: "~database"4486 is expected to eq "~database"4487 category: :docs, expected_label: "~documentation"4488 is expected to eq "~documentation"4489 category: :foo, expected_label: "~foo"4490 is expected to eq "~foo"4491 category: :frontend, expected_label: "~frontend"4492 is expected to eq "~frontend"4493 category: :none, expected_label: ""4494 is expected to eq ""4495 category: :qa, expected_label: "~QA"4496 is expected to eq "~QA"4497 category: :engineering_productivity, expected_label: "~\"Engineering Productivity\" for CI, Danger"4498 is expected to eq "~\"Engineering Productivity\" for CI, Danger"4499 category: :ci_template, expected_label: "~\"ci::templates\""4500 is expected to eq "~\"ci::templates\""4501 #new_teammates4502 returns an array of Teammate4503 #mr_iid4504 returns "" when `gitlab_helper` is unavailable4505 returns the MR IID when `gitlab_helper` is available4506 #mr_title4507 returns "" when `gitlab_helper` is unavailable4508 returns the MR title when `gitlab_helper` is available4509 #mr_web_url4510 returns "" when `gitlab_helper` is unavailable4511 returns the MR web_url when `gitlab_helper` is available4512 #mr_labels4513 returns "" when `gitlab_helper` is unavailable4514 returns the MR labels when `gitlab_helper` is available4515 #mr_target_branch4516 returns "" when `gitlab_helper` is unavailable4517 returns the MR web_url when `gitlab_helper` is available4518 #security_mr?4519 returns false when on a normal merge request4520 returns true when on a security merge request4521 #draft_mr?4522 returns true for a draft MR4523 returns false for non draft MR4524 #cherry_pick_mr?4525 when MR title does not mention a cherry-pick4526 returns false4527 when MR title mentions a cherry-pick4528 returns true4529 returns true4530 returns true4531 #run_all_rspec_mr?4532 when MR title does not mention RUN ALL RSPEC4533 returns false4534 when MR title mentions RUN ALL RSPEC4535 returns true4536 #run_as_if_foss_mr?4537 when MR title does not mention RUN AS-IF-FOSS4538 returns false4539 when MR title mentions RUN AS-IF-FOSS4540 returns true4541 #stable_branch?4542 returns false when `gitlab_helper` is unavailable4543 when MR target branch is not a stable branch4544 returns false4545 when MR target branch is a stable branch4546 returns true4547 returns true4548 #mr_has_label?4549 returns false when `gitlab_helper` is unavailable4550 when mr has labels4551 returns true with a matched label4552 returns false with unmatched label4553 returns true with an array of labels4554 returns true with multi arguments with matched labels4555 returns false with multi arguments with unmatched labels4556 #labels_list4557 composes the labels string4558 returns empty string for empty array4559 when passing a separator4560 composes the labels string with the given separator4561 #prepare_labels_for_mr4562 composes the labels string4563 returns empty string for empty array4564 #has_ci_changes?4565 when .gitlab/ci is changed4566 returns true4567 when .gitlab-ci.yml is changed4568 returns true4569 when neither .gitlab/ci/ or .gitlab-ci.yml is changed4570 returns false4571 #group_label4572 returns nil when no group label is present4573 returns the group label when a group label is present4574ProjectMemberPresenter4575 #can_resend_invite?4576 when project_member is invited4577 and user can admin_project_member4578 is expected to eq true4579 and user cannot admin_project_member4580 is expected to eq false4581 when project_member is not invited4582 and user can admin_project_member4583 is expected to eq false4584 and user cannot admin_project_member4585 is expected to eq false4586 #can_update?4587 when user can update_project_member4588 is expected to eq true4589 when user cannot update_project_member4590 is expected to eq false4591 #can_remove?4592 when user can destroy_project_member4593 is expected to eq true4594 when user cannot destroy_project_member4595 is expected to eq false4596 #can_approve?4597 when project_member has request an invite4598 and user can update_project_member4599 is expected to eq true4600 and user cannot update_project_member4601 is expected to eq false4602 when project_member did not request an invite4603 and user can update_project_member4604 is expected to eq false4605 and user cannot update_project_member4606 is expected to eq false4607 behaves like #valid_level_roles4608 returns all roles when no parent member is present4609 returns higher roles when a parent member is present4610Gitlab::GithubImport::Importer::LabelLinksImporter4611 #execute4612 creates the label links4613 #create_labels4614 inserts the label links in bulk4615 does not insert label links for non-existing labels4616 #find_target_id4617 returns the ID of the issuable to create the label link for4618Gitlab::UsageDataCounters::HLLRedisCounter4619 .categories4620 gets all unique category names4621 known_events4622 .events_for_category4623 gets the event names for given category4624 .track_event4625 with feature flag set4626 tracks the event when feature enabled4627 does not track the event with feature flag disabled4628 with no feature flag set4629 tracks the event4630 when usage_ping is disabled4631 does not track the event4632 when usage_ping is enabled4633 tracks event when using symbol4634 tracks events with multiple values4635 raise error if metrics don't have same aggregation4636 raise error if metrics of unknown event4637 for weekly events4638 sets the keys in Redis to expire automatically after the given expiry time4639 sets the keys in Redis to expire automatically after 6 weeks by default4640 for daily events4641 sets the keys in Redis to expire after the given expiry time4642 sets the keys in Redis to expire after 29 days by default4643 .track_event_in_context4644 with valid contex4645 increments context event counter4646 tracks events with multiple values4647 with empty context4648 does not increment a counter4649 when sending invalid context4650 does not increment a counter4651 .unique_events4652 raise error if metrics are not in the same slot4653 raise error if metrics are not in the same category4654 raise error if metrics don't have same aggregation4655 when data for the last complete week4656 is expected to eq 14657 when data for the last 4 complete weeks4658 is expected to eq 24659 when data for the week 4 weeks ago4660 is expected to eq 14661 when using symbol as parameter4662 is expected to eq 14663 when using daily aggregation4664 is expected to eq 24665 is expected to eq 34666 is expected to eq 14667 when no slot is set4668 is expected to eq 14669 when data crosses into new year4670 does not raise error4671 .weekly_redis_keys4672 returns 1 key for last for week4673 returns 4 key for last for weeks4674 start_date: "2020-12-21", end_date: "2020-12-21", keys: []4675 returns the correct keys4676 start_date: "2020-12-21", end_date: "2020-12-20", keys: []4677 returns the correct keys4678 start_date: "2020-12-21", end_date: "2020-11-21", keys: []4679 returns the correct keys4680 start_date: "2021-01-01", end_date: "2020-12-28", keys: []4681 returns the correct keys4682 start_date: "2020-12-21", end_date: "2020-12-28", keys: ["g_{compliance}_dashboard-2020-52"]4683 returns the correct keys4684 start_date: "2020-12-21", end_date: "2021-01-01", keys: ["g_{compliance}_dashboard-2020-52"]4685 returns the correct keys4686 start_date: "2020-12-27", end_date: "2021-01-01", keys: ["g_{compliance}_dashboard-2020-52"]4687 returns the correct keys4688 start_date: "2020-12-26", end_date: "2021-01-04", keys: ["g_{compliance}_dashboard-2020-52", "g_{compliance}_dashboard-2020-53"]4689 returns the correct keys4690 start_date: "2020-12-26", end_date: "2021-01-11", keys: ["g_{compliance}_dashboard-2020-52", "g_{compliance}_dashboard-2020-53", "g_{compliance}_dashboard-2021-01"]4691 returns the correct keys4692 start_date: "2020-12-26", end_date: "2021-01-17", keys: ["g_{compliance}_dashboard-2020-52", "g_{compliance}_dashboard-2020-53", "g_{compliance}_dashboard-2021-01"]4693 returns the correct keys4694 start_date: "2020-12-26", end_date: "2021-01-18", keys: ["g_{compliance}_dashboard-2020-52", "g_{compliance}_dashboard-2020-53", "g_{compliance}_dashboard-2021-01", "g_{compliance}_dashboard-2021-02"]4695 returns the correct keys4696 context level tracking4697 with correct arguments4698 event_names: ["event_name_1"], context: "default", value: 24699 is expected to eq 24700 event_names: ["event_name_1"], context: "", value: 04701 is expected to eq 04702 event_names: ["event_name_2"], context: "", value: 04703 is expected to eq 04704 with invalid context4705 raise error4706 unique_events_data4707 returns the number of unique events for all known events4708 .calculate_events_union4709 calculates union of given events4710 validates and raise exception if events has mismatched slot or aggregation4711 .weekly_time_range4712 return hash with weekly time range boundaries4713 .monthly_time_range4714 return hash with monthly time range boundaries4715Ci::VariablesFinder4716 #initialize4717 without key filter4718 raises an error4719 #execute4720 with key filter4721 returns var14722 with key and environment_scope filter4723 returns var24724Gitlab::Kubernetes::Node4725 #all4726 when connection to the cluster is successful4727 is expected to eq {:nodes=>[{"metadata"=>{"name"=>"gke-cluster-applications-default-pool-49b7f225-v527"}, "status"=>{"a...ity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}, "usage"=>{"cpu"=>"144208668n", "memory"=>"1789048Ki"}}]}4728 when an uncategorised error is raised4729 is expected to eq {:node_connection_error=>:unknown_error}4730 notifies Sentry4731ServicePolicy4732 when the integration is a prometheus_service4733 rules4734 is expected to be disallowed :admin_project4735 when maintainer4736 is expected to be allowed :admin_project4737Terraform::StatePolicy4738 rules4739 no access4740 is expected to be disallowed :read_terraform_state4741 is expected to be disallowed :admin_terraform_state4742 developer4743 is expected to be allowed :read_terraform_state4744 is expected to be disallowed :admin_terraform_state4745 maintainer4746 is expected to be allowed :read_terraform_state4747 is expected to be allowed :admin_terraform_state4748ProtectedBranches::UpdateService4749 #execute4750 updates a protected branch4751 without admin_project permissions4752 raises error4753 when a policy restricts rule creation4754 prevents creation of the protected branch rule4755Gitlab::BareRepositoryImport::Repository4756 legacy storage4757 stores the repo path4758 stores the group path4759 stores the project name4760 stores the wiki path4761 #processable?4762 returns false if it is a wiki4763 returns true if group path is missing4764 returns true when group path and project name are present4765 #project_full_path4766 returns the project full path with trailing slash in the root path4767 returns the project full path with no trailing slash in the root path4768 hashed storage4769 stores the repo path4770 stores the wiki path4771 reads the group path from .git/config4772 reads the project name from .git/config4773 #processable?4774 returns false if it is a wiki4775 returns false when group and project name are missing4776 returns true when group path and project name are present4777 #project_full_path4778 returns the project full path with trailing slash in the root path4779 returns the project full path with no trailing slash in the root path4780Mutations::Security::CiConfiguration::ConfigureSast4781 is expected to require graphql authorizations :push_code4782 #resolve4783 raises an error if the resource is not accessible to the user4784 when user does not have enough permissions4785 raises an error4786 when user is a maintainer of a different project4787 raises an error4788 when the user does not have permission to create a new branch4789 returns an array of errors4790 when the user can create a merge request4791 when service successfully generates a path to create a new merge request4792 returns a success path4793 when service can not generate any path to create a new merge request4794 returns an array of errors4795IssueEmailParticipant4796 Associations4797 is expected to belong to issue required:4798 Validations4799 is expected to validate that :issue cannot be empty/falsy4800 is expected to validate that :email is unique within the scope of :issue_id4801 is invalid if the email is nil4802 behaves like an object with RFC3696 compliant email-formatted attributes4803 specifically its :email attribute4804 with a value of 'info@example.com'4805 is valid4806 with a value of 'info+test@example.com'4807 is valid4808 with a value of 'o'reilly@example.com'4809 is valid4810 with a value of 'foobar'4811 is invalid4812 with a value of 'test@test@example.com'4813 is invalid4814 with a value of 'test.test.@example.com'4815 is invalid4816 with a value of '.test.test@example.com'4817 is invalid4818 with a value of 'mailto:test@example.com'4819 is invalid4820 with a value of 'lol!'+=?><#$%^&*()@gmail.com'4821 is invalid4822Ci::CreatePipelineService4823 .pre/.post stages4824 when pipeline contains a build except .pre/.post4825 creates a pipeline4826 when pipeline does not contain any other build except .pre/.post4827 does not create a pipeline4828Gitlab::Ci::Pipeline::Seed::Environment4829 #to_resource4830 when job has environment name attribute4831 behaves like returning a correct environment4832 returns a persisted environment object4833 when environment has already existed4834 returns the existing environment object4835 and job environment also has an auto_stop_in attribute4836 behaves like returning a correct environment4837 returns a persisted environment object4838 when environment has already existed4839 returns the existing environment object4840 when job starts a review app4841 behaves like returning a correct environment4842 returns a persisted environment object4843 when environment has already existed4844 returns the existing environment object4845 when job stops a review app4846 behaves like returning a correct environment4847 returns a persisted environment object4848 when environment has already existed4849 returns the existing environment object4850ProjectPagesMetadatum4851 .only_on_legacy_storage4852 returns only deployed records without deployment4853AlertManagement::HttpIntegrationPolicy4854 rules4855 is expected to be disallowed :admin_operations4856 when maintainer4857 is expected to be allowed :admin_operations4858Mutations::Terraform::State::Unlock4859 is expected to eq "TerraformStateUnlock"4860 is expected to require graphql authorizations :admin_terraform_state4861 #resolve4862 user does not have permission4863 raises an error4864 user has permission4865 unlocks the state4866 state is already unlocked4867 does not modify the state4868 with invalid params4869 raises an error4870WebIdeTerminalSerializer4871 represents WebIdeTerminalEntity entities4872 accepts WebIdeTerminal as a resource4873 when resource is a build4874 transforms it into a WebIdeTerminal resource4875IrkerService4876 Associations4877 is expected to belong to project required:4878 is expected to have one service_hook4879 Validations4880 when service is active4881 is expected to validate that :recipients cannot be empty/falsy4882 when service is inactive4883 is expected not to validate that :recipients cannot be empty/falsy4884 Execute4885 sends valid JSON messages to an Irker listener4886ApplicationSetting::TermPolicy4887 has the correct permissions4888 for anonymous users4889 has the correct permissions4890 when the terms are not current4891 has the correct permissions4892 when the user already accepted the terms4893 has the correct permissions4894Gitlab::Diff::LineMapper4895 #old_to_new4896 with a diff file4897 returns the new line number for the old line number4898 without a diff file4899 returns the same line number4900 #new_to_old4901 with a diff file4902 returns the old line number for the new line number4903 without a diff file4904 returns the same line number4905MergeRequestSidebarBasicEntity4906 #current_user4907 contains attributes related to the current user4908Clusters::Cleanup::ServiceAccountWorker4909 #perform4910 when cluster.cleanup_status is cleanup_removing_service_account4911 calls Clusters::Cleanup::ServiceAccountService4912 when cluster.cleanup_status is not cleanup_removing_service_account4913 does not call Clusters::Cleanup::ServiceAccountService4914notify/autodevops_disabled_email.text.erb4915 when the pipeline contains a failed job4916 renders the email correctly4917Gitlab::GitlabImport::ProjectCreator4918 creates project4919CacheableAttributes4920 .expire4921 wipes the cache4922 .current_without_cache4923 defaults to last4924 can be overridden4925 .cache_key4926 excludes cache attributes4927 .defaults4928 defaults to {}4929 with defaults defined4930 can be overridden4931 .build_from_defaults4932 without any attributes given4933 intializes a new object with the defaults4934 with attributes given4935 intializes a new object with the given attributes merged into the defaults4936 edge cases on concrete implementations4937 .build_from_defaults4938 without any attributes given4939 intializes all attributes even if they are nil4940 .current4941 uses RequestStore in addition to process memory cache4942 redis unavailable4943 in production environment4944 returns an uncached record and logs a warning4945 in other environments4946 returns an uncached record and logs a warning4947 when a record is not yet present4948 does not cache nil object4949 caches non-nil object4950 edge cases4951 caching behavior4952 retrieves upload fields properly4953 retrieves markdown fields properly4954 .cached4955 when cache is cold4956 returns nil4957 when cached is warm4958 retrieves the record from cache4959 #cache!4960 caches the attributes4961 edge cases4962 caches the attributes4963BlobViewer::Changelog4964 #render_error4965 when there are no tags4966 returns :no_tags4967 when there are tags4968 returns nil4969Namespace::TraversalHierarchy4970 .for_namespace4971 with root group4972 is expected to eq #<Group id:2693 @group215>4973 with child group4974 is expected to eq #<Group id:2693 @group215>4975 with group outside of hierarchy4976 is expected not to eq #<Group id:2693 @group215>4977 .new4978 with root group4979 is expected to eq #<Group id:2693 @group215>4980 with child group4981 is expected to raise StandardError with "Must specify a root node"4982 #incorrect_traversal_ids4983 is expected to contain exactly #<Group id:2693 @group215>, #<Group id:2694 @group215/group216>, #<Group id:2695 @group215/group216/group217>, #<Group id:2696 @group215/group216/group217/group218>, #<Group id:2697 @group215/group216/group217/group219>, #<Group id:2698 @group215/group216/group217/group220>, #<Group id:2699 @group215/group216/group217/group221>, #<Group id:2700 @group215/group216/group222>, #<Group id:2701 @group215/group216/group222/group223>, #<Group id:2702 @group215/group216/group222/group224>, #<Group id:2703 @group215/group216/group222/group225>, #<Group id:2704 @group215/group216/group222/group226>, #<Group id:2705 @group215/group216/group227>, #<Group id:2706 @group215/group216/group227/group228>, #<Group id:2707 @group215/group216/group227/group229>, #<Group id:2708 @group215/group216/group227/group230>, #<Group id:2709 @group215/group216/group227/group231>, #<Group id:2710 @group215/group216/group232>, #<Group id:2711 @group215/group216/group232/group233>, #<Group id:2712 @group215/group216/group232/group234>, #<Group id:2713 @group215/group216/group232/group235>, #<Group id:2714 @group215/group216/group232/group236>, #<Group id:2715 @group215/group237>, #<Group id:2716 @group215/group237/group238>, #<Group id:2717 @group215/group237/group238/group239>, #<Group id:2718 @group215/group237/group238/group240>, #<Group id:2719 @group215/group237/group238/group241>, #<Group id:2720 @group215/group237/group238/group242>, #<Group id:2721 @group215/group237/group243>, #<Group id:2722 @group215/group237/group243/group244>, #<Group id:2723 @group215/group237/group243/group245>, #<Group id:2724 @group215/group237/group243/group246>, #<Group id:2725 @group215/group237/group243/group247>, #<Group id:2726 @group215/group237/group248>, #<Group id:2727 @group215/group237/group248/group249>, #<Group id:2728 @group215/group237/group248/group250>, #<Group id:2729 @group215/group237/group248/group251>, #<Group id:2730 @group215/group237/group248/group252>, #<Group id:2731 @group215/group237/group253>, #<Group id:2732 @group215/group237/group253/group254>, #<Group id:2733 @group215/group237/group253/group255>, #<Group id:2734 @group215/group237/group253/group256>, #<Group id:2735 @group215/group237/group253/group257>, #<Group id:2736 @group215/group258>, #<Group id:2737 @group215/group258/group259>, #<Group id:2738 @group215/group258/group259/group260>, #<Group id:2739 @group215/group258/group259/group261>, #<Group id:2740 @group215/group258/group259/group262>, #<Group id:2741 @group215/group258/group259/group263>, #<Group id:2742 @group215/group258/group264>, #<Group id:2743 @group215/group258/group264/group265>, #<Group id:2744 @group215/group258/group264/group266>, #<Group id:2745 @group215/group258/group264/group267>, #<Group id:2746 @group215/group258/group264/group268>, #<Group id:2747 @group215/group258/group269>, #<Group id:2748 @group215/group258/group269/group270>, #<Group id:2749 @group215/group258/group269/group271>, #<Group id:2750 @group215/group258/group269/group272>, #<Group id:2751 @group215/group258/group269/group273>, #<Group id:2752 @group215/group258/group274>, #<Group id:2753 @group215/group258/group274/group275>, #<Group id:2754 @group215/group258/group274/group276>, #<Group id:2755 @group215/group258/group274/group277>, #<Group id:2756 @group215/group258/group274/group278>, #<Group id:2757 @group215/group279>, #<Group id:2758 @group215/group279/group280>, #<Group id:2759 @group215/group279/group280/group281>, #<Group id:2760 @group215/group279/group280/group282>, #<Group id:2761 @group215/group279/group280/group283>, #<Group id:2762 @group215/group279/group280/group284>, #<Group id:2763 @group215/group279/group285>, #<Group id:2764 @group215/group279/group285/group286>, #<Group id:2765 @group215/group279/group285/group287>, #<Group id:2766 @group215/group279/group285/group288>, #<Group id:2767 @group215/group279/group285/group289>, #<Group id:2768 @group215/group279/group290>, #<Group id:2769 @group215/group279/group290/group291>, #<Group id:2770 @group215/group279/group290/group292>, #<Group id:2771 @group215/group279/group290/group293>, #<Group id:2772 @group215/group279/group290/group294>, #<Group id:2773 @group215/group279/group295>, #<Group id:2774 @group215/group279/group295/group296>, #<Group id:2775 @group215/group279/group295/group297>, #<Group id:2776 @group215/group279/group295/group298>, and #<Group id:2777 @group215/group279/group295/group299>4984 #sync_traversal_ids!4985 is expected to be empty4986 behaves like hierarchy with traversal_ids4987 will be valid4988ImportExportUpload4989 import4990 behaves like stores the Import/Export file4991 stores the import file4992 export4993 behaves like stores the Import/Export file4994 stores the import file4995Gitlab::Import::SetAsyncJid4996 .set_jid4997 sets the JID in Redis4998 updates the import JID of the project4999rest-client dns rebinding protection5000 behaves like a request using Gitlab::UrlBlocker5001 when local requests are not allowed5002 allows an external request with http5003 allows an external request with https5004 raises error when it is a request that resolves to a local address5005 raises error when it is a request that resolves to a localhost address5006 raises error when it is a request to local address5007 raises error when it is a request to localhost address5008 when port different from URL scheme is used5009 allows the request5010 raises error when it is a request to local address5011 raises error when it is a request to localhost address5012 when DNS rebinding protection is disabled5013 allows the request5014 when http(s) proxy environment variable is set5015 allows the request5016 when local requests are allowed5017 allows an external request5018 allows an external request that resolves to a local address5019 allows an external request that resolves to a localhost address5020 allows a local address request5021 allows a localhost address request5022Uploads::Local5023 model with uploads5024 #keys5025 returns keys5026 #delete_keys5027 deletes multiple data5028Gitlab::HttpIO5029 #close5030 is expected to be nil5031 #binmode5032 is expected to be nil5033 #binmode?5034 is expected to be truthy5035 #path5036 is expected to be nil5037 #url5038 is expected to eq "http://object-storage/trace"5039 #seek5040 when moves pos to end of the file5041 is expected to eq 1924375042 when moves pos to middle of the file5043 is expected to eq 962185044 when moves pos around5045 matches the result5046 #eof?5047 when current pos is at end of the file5048 is expected to be truthy5049 when current pos is not at end of the file5050 is expected to be falsey5051 #each_line5052 yields lines5053 when buckets on GCS5054 when BUFFER_SIZE is larger than file size5055 calls get_chunk only once5056 #read5057 when there are no network issue5058 when read whole size5059 when BUFFER_SIZE is smaller than file size5060 reads a trace5061 when BUFFER_SIZE is larger than file size5062 reads a trace5063 when read only first 100 bytes5064 when BUFFER_SIZE is smaller than file size5065 reads a trace5066 when BUFFER_SIZE is larger than file size5067 reads a trace5068 when tries to read oversize5069 when BUFFER_SIZE is smaller than file size5070 reads a trace5071 when BUFFER_SIZE is larger than file size5072 reads a trace5073 when tries to read 0 bytes5074 when BUFFER_SIZE is smaller than file size5075 reads a trace5076 when BUFFER_SIZE is larger than file size5077 reads a trace5078 when there is anetwork issue5079 reads a trace5080 #readline5081 when there is anetwork issue5082 reads a trace5083 when BUFFER_SIZE is smaller than file size5084 behaves like all line matching5085 reads a line5086 when BUFFER_SIZE is larger than file size5087 behaves like all line matching5088 reads a line5089 when pos is at middle of the file5090 reads from pos5091 #write5092 is expected to raise NotImplementedError5093 #truncate5094 is expected to raise NotImplementedError5095 #flush5096 is expected to raise NotImplementedError5097 #present?5098 is expected to be truthy5099 #send5100 does not set the "accept-encoding" header5101IncidentManagement::CreateIncidentLabelService5102 behaves like incident management label service5103 execute5104 with predefined project label5105 behaves like existing label5106 returns the existing label5107 with predefined group label5108 behaves like existing label5109 returns the existing label5110 without label5111 when user has permissions to create labels5112 behaves like new label5113 creates a new label5114 when user has no permissions to create labels5115 behaves like new label5116 creates a new label5117Mutations::ReleaseAssetLinks::Create5118 #resolve5119 when the user has access and no validation errors occur5120 creates a new release asset link5121 when the user doesn't have access to the project5122 raises an error5123 when the project doesn't exist5124 raises an error5125 when a validation errors occur5126 when the release doesn't exist5127 behaves like returns errors-as-data5128 is expected to eq ["Release with tag \"nonexistent-tag\" was not found"]5129 when the URL is badly formatted5130 behaves like returns errors-as-data5131 is expected to eq ["Url is blocked: Only allowed schemes are http, https, ftp"]5132 when the name is not provided5133 behaves like returns errors-as-data5134 is expected to eq ["Name can't be blank"]5135 when the link already exists5136 behaves like returns errors-as-data5137 is expected to eq ["Url has already been taken", "Name has already been taken", "Filepath has already been taken"]5138Gitlab::HookData::IssueBuilder5139 #build5140 includes safe attribute5141 includes additional attrs5142 when the issue has an image in the description5143 sets the image to use an absolute URL5144Gitlab::PhabricatorImport::ImportTasksWorker5145 #perform5146 calls the correct importer5147Atlassian::Identity5148 associations5149 is expected to belong to user required:5150 validations5151 is expected to validate that :extern_uid cannot be empty/falsy5152 is expected to validate that :extern_uid is case-sensitively unique5153 is expected to validate that :user cannot be empty/falsy5154 is expected to validate that :user is case-sensitively unique5155 encrypted tokens5156 saves the encrypted token, refresh token and corresponding ivs5157Ci::BridgePolicy5158 #play_job5159 when user can update the downstream branch5160 allows5161 when user can not update the downstream branch5162 does not allow5163Snippets::RepositoryStorageMove5164 behaves like handles repository moves5165 associations5166 is expected to belong to container required:5167 validations5168 is expected to validate that :container cannot be empty/falsy5169 is expected to validate that :state cannot be empty/falsy5170 is expected to validate that :source_storage_name cannot be empty/falsy5171 is expected to validate that :destination_storage_name cannot be empty/falsy5172 source_storage_name inclusion5173 does not allow repository storages that don't match a label in the configuration5174 destination_storage_name inclusion5175 does not allow repository storages that don't match a label in the configuration5176 container repository read-only5177 does not allow the container to be read-only on create5178 defaults5179 destination_storage_name5180 can pick new storage5181 state transitions5182 when in the default state5183 and transits to scheduled5184 triggers the corresponding repository storage worker5185 when the transition fails5186 does not trigger the corresponding repository storage worker and adds an error5187 and transits to started5188 does not allow the transition5189 when started5190 and transits to replicated5191 marks the container as writable5192 updates the updated_at column of the container5193 and transits to failed5194 marks the container as writable5195BuildHooksWorker5196 #perform5197 when build exists5198 calls build hooks5199 when build does not exist5200 does not raise exception5201Identity5202 relations5203 is expected to belong to user required:5204 fields5205 is expected to respond to #provider5206 is expected to respond to #extern_uid5207 validations5208 with existing user and provider5209 returns false for a duplicate entry5210 returns true when a different provider is used5211 with newly-created user5212 successfully validates even with a nil user_id5213 #is_ldap?5214 returns true if it is a ldap identity5215 returns false if it is not a ldap identity5216 .with_extern_uid5217 LDAP identity5218 finds the identity when the DN is formatted differently5219 any other provider5220 the extern_uid lookup is case insensitive5221 .with_any_extern_uid5222 provider with extern uid5223 finds any extern uids associated with a provider5224 provider with nil extern uid5225 has no results when there are no extern uids5226 no provider5227 has no results when there is no associated provider5228 callbacks5229 before_save5230 normalizes extern uid5231 if extern_uid changes5232 if current_uid is nil5233 if extern_uid changed and not nil5234 after_destroy5235 if user synced attributes metadada provider5236 matches the identity provider5237 removes the user synced attributes5238 does not matche the identity provider5239 does not remove the user synced attributes5240Evidences::ReleaseEntity5241 exposes the expected fields5242 when the release has milestones5243 exposes these milestones5244 when the release has no milestone5245 exposes an empty array for milestones5246PublicUrlValidator5247 #validate5248 with no options5249 allows http,https schemes by default5250 checks that the url structure is valid5251 with schemes5252 allows urls with the defined schemes5253 add error if the url scheme does not match the selected ones5254 by default5255 blocks urls pointing to localhost5256 blocks urls pointing to the local network5257 when local requests are allowed5258 does not block urls pointing to localhost5259 does not block urls pointing to the local network5260Mutations::AlertManagement::HttpIntegration::ResetToken5261 is expected to require graphql authorizations :admin_operations5262 #resolve5263 user has sufficient access to project5264 when HttpIntegrations::UpdateService responds with success5265 returns the integration with no errors5266 when HttpIntegrations::UpdateService responds with an error5267 returns errors5268 when resource is not accessible to the user5269 raises an error if the resource is not accessible to the user5270Resolvers::UserNotesCountResolver5271 #resolve5272 is expected to have nullable GraphQL type Int5273 when counting notes from an issue5274 when counting notes from a public issue5275 returns the number of non-system notes for the issue5276 when a user has permission to view notes5277 returns the number of notes for the issue5278 when a user does not have permission to view notes5279 raises an error5280 when counting notes from a merge request5281 when counting notes from a public merge request5282 returns the number of non-system notes for the merge request5283 when a user has permission to view notes5284 returns the number of notes for the merge request5285 when a user does not have permission to view notes5286 raises an error5287Gitlab::Ci::Pipeline::Seed::Build::Cache5288 #build_attributes5289 with cache:key5290 is expected to include {:options => {:cache => {:key => "a-key", :paths => ["vendor/ruby"]}}}5291 with cache:key as a symbol5292 is expected to include {:options => {:cache => {:key => "a_key", :paths => ["vendor/ruby"]}}}5293 with cache:key:files5294 with existing files5295 behaves like version and gemfile files5296 builds a string key5297 with files starting with ./5298 behaves like version and gemfile files5299 builds a string key5300 with files ending with /5301 behaves like default key5302 uses default key5303 with new line in filenames5304 behaves like default key5305 uses default key5306 with missing files5307 behaves like default key5308 uses default key5309 with directories5310 with directory5311 behaves like foo/bar directory key5312 builds a string key5313 with directory ending in slash5314 behaves like foo/bar directory key5315 builds a string key5316 with directories ending in slash star5317 behaves like foo/bar directory key5318 builds a string key5319 with cache:key:prefix5320 without files5321 adds prefix to default key5322 with existing files5323 adds prefix key5324 with missing files5325 adds prefix to default key5326 with all cache option keys5327 is expected to include {:options => {:cache => {:key => "a-key", :paths => ["vendor/ruby"], :untracked => true, :policy => "push", :when => "on_success"}}}5328 with unknown cache option keys5329 is expected to raise ArgumentError with message matching /unknown_key/5330 with empty config5331 is expected to include {:options => {}}5332DiffViewerEntity5333 serializes diff file viewer5334Users::LastPushEventService5335 #cache_last_push_event5336 caches the event for the event's project and current user5337 caches the event for the origin project when pushing to a fork5338 #last_event_for_user5339 returns the last push event for the current user5340 returns nil when no push event could be found5341 #last_event_for_project5342 returns the last push event for the given project5343 returns nil when no push event could be found5344 #find_cached_event5345 with a non-existing cache key5346 returns nil5347 with an existing cache key5348 returns a PushEvent when no merge requests exist for the event5349 removes the cache key when no event could be found and returns nil5350FlushCounterIncrementsWorker5351 #perform5352 flushes increments to database5353 when model class does not exist5354 does nothing5355 when record does not exist5356 does nothing5357UserDetail5358 is expected to belong to user required:5359 validations5360 #job_title5361 is expected not to validate that :job_title cannot be empty/falsy5362 is expected to validate that the length of :job_title is at most 2005363 #bio5364 is expected to validate that the length of :bio is at most 2555365 #bio_html5366 falls back to #bio when the html representation is missing5367 stores rendered html5368 does not try to set the value when the column is not there5369WikiPages::EventCreateService5370 #execute5371 returns a successful response5372 creates a wiki page event5373 returns an event in the payload5374 records the slug for the page5375 the user is nil5376 raises an error on construction5377 the action is illegal5378 returns an error5379 does not create an event5380 does not create a metadata record5381 the action is a deletion5382 does not synchronize the wiki metadata timestamps with the git commit5383Projects::Prometheus::Alerts::UpdateService5384DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.0.3.4/lib/active_record/relation.rb:412: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call5385/builds/gitlab-org/gitlab/app/models/concerns/has_environment_scope.rb:25: warning: The called method is defined here5386 (called from find_platform_kubernetes_with_cte at /builds/gitlab-org/gitlab/app/models/concerns/deployment_platform.rb:27)5387 #execute5388 with valid params5389 updates the alert5390 with invalid params5391 fails to update5392UpdateProjectStatisticsWorker5393 #perform5394 updates the project statistics5395Projects::IncidentsHelper5396 #incidents_data5397 returns frontend configuration5398shared/projects/_project.html.haml5399 renders creator avatar if project has a creator5400 renders a generic avatar if project does not have a creator5401Gitlab::Database::Reindexing::IndexSelection5402 orders by highest bloat first5403 with time frozen5404 does not return indexes with reindex action in the last 7 days5405Gitlab::Monitor::DemoProjects5406 #primary_keys5407 fetches primary_keys when on gitlab.com5408 fetches primary_keys when on staging5409 fetches all keys when in the dev or test env5410 falls back on empty array5411Gitlab::GithubImport::Stage::ImportPullRequestsWorker5412 #import5413 imports all the pull requests5414NullifyIfBlank5415 attribute exists5416 attribute is blank5417 is expected to be nil5418 attribute is nil5419 is expected to be nil5420 attribute is not blank5421 is expected to eq "name"5422 attribute does not exist5423 is expected to raise ActiveModel::UnknownAttributeError5424Gitlab::Middleware::ReadOnly5425 when database is read-only5426 behaves like write access for a read-only GitLab instance5427 normal requests to a read-only GitLab instance5428 expects PATCH requests to be disallowed5429 expects PUT requests to be disallowed5430 expects POST requests to be disallowed5431 expects a internal POST request to be allowed after a disallowed request5432 expects DELETE requests to be disallowed5433 expects POST of new file that looks like an LFS batch url to be disallowed5434 returns last_vistited_url for disallowed request5435 allowlisted requests5436 expects a POST internal request to be allowed5437 expects a graphql request to be allowed5438 relative URL is configured5439 expects a graphql request to be allowed5440 sidekiq admin requests5441 mounted_at: ""5442 allows requests5443 mounted_at: "/"5444 allows requests5445 mounted_at: "/gitlab"5446 allows requests5447 mounted_at: "/gitlab/"5448 allows requests5449 mounted_at: "/gitlab/gitlab"5450 allows requests5451 mounted_at: "/gitlab/gitlab/"5452 allows requests5453 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"5454 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed5455 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"5456 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed5457 description: "user sign out", path: "/users/sign_out"5458 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed5459 description: "admin session", path: "/admin/session"5460 expects a POST description: "admin session", path: "/admin/session" URL to be allowed5461 description: "admin session destroy", path: "/admin/session/destroy"5462 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed5463 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"5464 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed5465 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"5466 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed5467 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"5468 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed5469 json requests to a read-only GitLab instance5470 expects PATCH requests to be disallowed5471 expects PUT requests to be disallowed5472 expects POST requests to be disallowed5473 expects DELETE requests to be disallowed5474NamespaceSetting5475 Associations5476 is expected to belong to namespace required:5477 validations5478 #default_branch_name_content5479 when not set5480 behaves like doesn't return an error5481 doesn't return an error5482 when set5483 behaves like doesn't return an error5484 doesn't return an error5485 when an empty string5486 behaves like doesn't return an error5487 doesn't return an error5488 #allow_mfa_for_group5489 group is top-level group5490 is valid5491 group is a subgroup5492 is invalid5493IconsHelper5494 sprite_icon_path5495 returns relative path5496 only calls image_path once when called multiple times5497 when an asset_host is set in the config it will return an absolute local URL5498 returns an absolute URL on that asset host5499 sprite_icon5500 returns svg icon html with DEFAULT_ICON_SIZE5501 returns svg icon html without size class5502 returns svg icon html + size classes5503 returns svg icon html + size classes + additional class5504 non existing icon5505 raises in development mode5506 raises in test mode5507 does not raise in production mode5508 audit icon5509 returns right icon name for standard auth5510 returns right icon name for two-factor auth5511 returns right icon name for google_oauth2 auth5512 file_type_icon_class5513 returns folder-o class5514 returns share class5515 returns document class with .pdf5516 returns doc-image class with .jpg5517 returns doc-image class with .JPG5518 returns doc-image class with .png5519 returns doc-image class with .apng5520 returns doc-image class with .webp5521 returns doc-compressed class with .tar5522 returns doc-compressed class with .TAR5523 returns doc-compressed class with .tar.gz5524 returns volume-up class with .mp35525 returns volume-up class with .MP35526 returns volume-up class with .m4a5527 returns volume-up class with .wav5528 returns live-preview class with .avi5529 returns live-preview class with .AVI5530 returns live-preview class with .mp45531 returns doc-text class with .odt5532 returns doc-text class with .doc5533 returns doc-text class with .DOC5534 returns doc-text class with .docx5535 returns document class with .xls5536 returns document class with .XLS5537 returns document class with .xlsx5538 returns doc-chart class with .odp5539 returns doc-chart class with .ppt5540 returns doc-chart class with .PPT5541 returns doc-chart class with .pptx5542 returns doc-text class with .unknow5543 returns doc-text class with no extension5544 #external_snippet_icon5545 returns external snippet icon5546 loading_icon5547 returns span with gl-spinner class and default configuration5548 when css_class is provided5549 appends css_class to gl-spinner element5550 when container is true5551 creates a container that has the gl-spinner-container class selector5552GroupLink::GroupGroupLinkEntity5553 matches json schema5554 when current user has `:admin_group_member` permissions5555 exposes `can_update` and `can_remove` as `true`5556MergeRequests::ByApprovalsFinder5557 filter by no approvals5558 returns merge requests without approvals5559 filter by any approvals5560 returns merge requests approved by at least one user5561 filter by specific user approval5562 returns merge requests approved by specific user5563 filter by multiple user approval5564 returns merge requests approved by both users5565 limiting max conditional elements5566 returns merge requests approved by both users, considering limit of 2 being defined5567 with empty params5568 returns all merge requests5569Gitlab::View::Presenter::Base5570 .presenter?5571 returns true5572 .presents5573 exposes #subject with the given keyword5574 #can?5575 user is not allowed5576 returns false5577 user is allowed5578 returns true5579 subject is overridden5580 returns true5581 #present5582 returns self5583 #url_builder5584 returns the UrlBuilder instance5585 #web_url5586 delegates to the UrlBuilder5587 #web_path5588 delegates to the UrlBuilder5589Gitlab::Analytics::UniqueVisits5590 #track_visit5591 tracks the unique weekly visits for targets5592 sets the keys in Redis to expire automatically after 12 weeks5593 raises an error if an invalid target id is given5594LinkedProjectIssueEntity5595 issue_link_type5596 is expected to include {:link_type => "relates_to"}5597Gitlab::Graphql::Pagination::Connections5598 OffsetPaginatedRelation5599 maps to Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection5600 ActiveRecord::Relation5601 maps to Gitlab::Graphql::Pagination::Keyset::Connection5602 ExternallyPaginatedArray5603 maps to Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection5604 Array5605 maps to Gitlab::Graphql::Pagination::ArrayConnection5606Gitlab::Suggestions::SuggestionSet5607 #project5608 returns the project associated with the suggestions5609 #branch5610 returns the branch associated with the suggestions5611 #valid?5612 returns true if no errors are found5613 returns false if an error is found5614 #error_message5615 returns an error message if an error is found5616 returns nil if no errors are found5617 #actions5618 returns an array of hashes with proper key/value pairs5619 #file_paths5620 returns an array of unique file paths associated with the suggestions5621Gitlab::Metrics::Dashboard::Url5622 #metrics_regex5623 for /-/environments/:environment_id/metrics route5624 behaves like regex which matches url when expected5625 is expected to be a kind of Regexp5626 matches a metrics dashboard link with named params5627 does not match other gitlab urls that contain the term metrics5628 does not match other gitlab urls5629 does not match non-gitlab urls5630 for /-/metrics?environment=:environment_id route5631 behaves like regex which matches url when expected5632 is expected to be a kind of Regexp5633 matches a metrics dashboard link with named params5634 does not match other gitlab urls that contain the term metrics5635 does not match other gitlab urls5636 does not match non-gitlab urls5637 for metrics_dashboard route5638 behaves like regex which matches url when expected5639 is expected to be a kind of Regexp5640 matches a metrics dashboard link with named params5641 does not match other gitlab urls that contain the term metrics5642 does not match other gitlab urls5643 does not match non-gitlab urls5644 #clusters_regex5645 behaves like regex which matches url when expected5646 is expected to be a kind of Regexp5647 matches a metrics dashboard link with named params5648 does not match other gitlab urls that contain the term metrics5649 does not match other gitlab urls5650 does not match non-gitlab urls5651 for metrics_dashboard route5652 behaves like regex which matches url when expected5653 is expected to be a kind of Regexp5654 matches a metrics dashboard link with named params5655 does not match other gitlab urls that contain the term metrics5656 does not match other gitlab urls5657 does not match non-gitlab urls5658 #grafana_regex5659 behaves like regex which matches url when expected5660 is expected to be a kind of Regexp5661 matches a metrics dashboard link with named params5662 does not match other gitlab urls that contain the term metrics5663 does not match other gitlab urls5664 does not match non-gitlab urls5665 #alert_regex5666 behaves like regex which matches url when expected5667 is expected to be a kind of Regexp5668 matches a metrics dashboard link with named params5669 does not match other gitlab urls that contain the term metrics5670 does not match other gitlab urls5671 does not match non-gitlab urls5672 behaves like regex which matches url when expected5673 is expected to be a kind of Regexp5674 matches a metrics dashboard link with named params5675 does not match other gitlab urls that contain the term metrics5676 does not match other gitlab urls5677 does not match non-gitlab urls5678 #build_dashboard_url5679 builds the url for the dashboard endpoint5680Tooling::Danger::BaseLinter5681 #failed?5682 with no failures5683 is expected not to be failed5684 with failures5685 is expected to be failed5686 #add_problem5687 stores messages in #failures5688 #lint_subject5689 when subject valid5690 behaves like a valid commit5691 does not have any problem5692 when subject is too short5693 adds a problem5694 when subject is too long5695 adds a problem5696 when ignoring length issues for subject having not-ready wording5697 when used as prefix5698 prefix: "WIP: "5699 does not have any problems5700 prefix: "WIP:"5701 does not have any problems5702 prefix: "wIp:"5703 does not have any problems5704 prefix: "[WIP] "5705 does not have any problems5706 prefix: "[WIP]"5707 does not have any problems5708 prefix: "[draft]"5709 does not have any problems5710 prefix: "[draft] "5711 does not have any problems5712 prefix: "(draft)"5713 does not have any problems5714 prefix: "(draft) "5715 does not have any problems5716 prefix: "draft - "5717 does not have any problems5718 prefix: "draft: "5719 does not have any problems5720 prefix: "draft:"5721 does not have any problems5722 prefix: "DRAFT:"5723 does not have any problems5724 when used as suffix5725 suffix: "WIP"5726 does not have any problems5727 suffix: "draft"5728 does not have any problems5729 when subject does not have enough words and is too long5730 adds a problem5731 when subject starts with lowercase5732 adds a problem5733 when subject is '[ci skip] A commit message'5734 does not add a problem5735 when subject is '[Ci skip] A commit message'5736 does not add a problem5737 when subject is '[API] A commit message'5738 does not add a problem5739 when subject is 'api: A commit message'5740 does not add a problem5741 when subject is 'API: A commit message'5742 does not add a problem5743 when subject is 'API: a commit message'5744 does not add a problem5745 when subject is 'API: a commit message'5746 does not add a problem5747 when subject is '[ci skip]A commit message'5748 adds a problem5749 when subject is '[Ci skip] A commit message'5750 adds a problem5751 when subject is '[ci skip] a commit message'5752 adds a problem5753 when subject is 'api: a commit message'5754 adds a problem5755 when subject is '! A commit message'5756 adds a problem5757 when subject ends with a period5758 adds a problem5759API::Entities::PlanLimit5760 exposes correct attributes5761 does not expose id and plan_id5762API::Github::Entities5763 API::Github::Entities::User5764 aggregate_failure5765 with avatar5766 is expected to include "http://localhost/uploads/-/system/user/avatar/"5767Gitlab::UsageDataCounters::WikiPageCounter5768 behaves like a redis usage counter5769 .count(view)5770 increments the Wiki Page view counter by 15771 .read(view)5772 returns the total number of view events5773 behaves like a redis usage counter5774 .count(create)5775 increments the Wiki Page create counter by 15776 .read(create)5777 returns the total number of create events5778 behaves like a redis usage counter5779 .count(update)5780 increments the Wiki Page update counter by 15781 .read(update)5782 returns the total number of update events5783 behaves like a redis usage counter5784 .count(delete)5785 increments the Wiki Page delete counter by 15786 .read(delete)5787 returns the total number of delete events5788 behaves like a redis usage counter with totals5789 totals5790 can report all totals5791 unknown events5792 cannot increment5793 cannot read5794Banzai::Filter::BroadcastMessagePlaceholdersFilter5795 when current user is set5796 replaces placeholder in text5797 is expected to eq "Email: helloworld@example.com"5798 replaces placeholder when they are in a link5799 is expected to eq "<a href=\"http://example.com?email=helloworld%40example.com\">link</a>"5800 replaces placeholder when they are in an escaped link5801 is expected to eq "<a href=\"http://example.com?name=GitLab+Tanunki+%3A%29\">link</a>"5802 works with empty text5803 is expected to eq " "5804 replaces multiple placeholders in a given text5805 is expected to eq "helloworld@example.com GitLab Tanunki :)"5806 available placeholders5807 replaces the email of the user5808 is expected to eq "helloworld@example.com"5809 replaces the name of the user5810 is expected to eq "GitLab Tanunki :)"5811 replaces the ID of the user5812 is expected to eq "2509"5813 replaces the username of the user5814 is expected to eq "user2630"5815 replaces the instance_id5816 is expected to eq "123"5817 when there is no current user set5818 replaces placeholder with empty string5819 is expected to eq "Email: "5820Gitlab::SidekiqMiddleware::ClientMetrics5821 with worker attribution5822 when workers are not attributed5823 behaves like a metrics client middleware5824 with mocked prometheus5825 #call5826 yields block5827 increments enqueued jobs metric with correct labels when worker is a string of the class5828 increments enqueued jobs metric with correct labels5829 when a worker is wrapped into ActiveJob5830 behaves like a metrics client middleware5831 with mocked prometheus5832 #call5833 yields block5834 increments enqueued jobs metric with correct labels when worker is a string of the class5835 increments enqueued jobs metric with correct labels5836 when workers are attributed5837 high urgency5838 behaves like a metrics client middleware5839 with mocked prometheus5840 #call5841 yields block5842 increments enqueued jobs metric with correct labels when worker is a string of the class5843 increments enqueued jobs metric with correct labels5844 no urgency5845 behaves like a metrics client middleware5846 with mocked prometheus5847 #call5848 yields block5849 increments enqueued jobs metric with correct labels when worker is a string of the class5850 increments enqueued jobs metric with correct labels5851 external dependencies5852 behaves like a metrics client middleware5853 with mocked prometheus5854 #call5855 yields block5856 increments enqueued jobs metric with correct labels when worker is a string of the class5857 increments enqueued jobs metric with correct labels5858 cpu boundary5859 behaves like a metrics client middleware5860 with mocked prometheus5861 #call5862 yields block5863 increments enqueued jobs metric with correct labels when worker is a string of the class5864 increments enqueued jobs metric with correct labels5865 memory boundary5866 behaves like a metrics client middleware5867 with mocked prometheus5868 #call5869 yields block5870 increments enqueued jobs metric with correct labels when worker is a string of the class5871 increments enqueued jobs metric with correct labels5872 feature category5873 behaves like a metrics client middleware5874 with mocked prometheus5875 #call5876 yields block5877 increments enqueued jobs metric with correct labels when worker is a string of the class5878 increments enqueued jobs metric with correct labels5879 combined5880 behaves like a metrics client middleware5881 with mocked prometheus5882 #call5883 yields block5884 increments enqueued jobs metric with correct labels when worker is a string of the class5885 increments enqueued jobs metric with correct labels5886Gitlab::Octokit::Middleware5887 #call5888 when the URL is a public URL5889 behaves like Public URL5890 does not raise an error5891 when the URL is a localhost adresss5892 when localhost requests are not allowed5893 behaves like Local URL5894 raises an error5895 when localhost requests are allowed5896 behaves like Public URL5897 does not raise an error5898 when the URL is a local network address5899 when local network requests are not allowed5900 behaves like Local URL5901 raises an error5902 when local network requests are allowed5903 behaves like Public URL5904 does not raise an error5905Keys::DestroyService5906 destroys a key5907Gitlab::Metrics::Exporter::BaseExporter5908 when exporter is enabled5909 when exporter is stopped5910 #start5911 starts the exporter5912 with custom settings5913 starts server with port and address from settings5914 when thread is not alive5915 does close listeners5916 #stop5917 doesn't shutdown stopped server5918 when exporter is running5919 #start5920 doesn't start running server5921 #stop5922 shutdowns server5923 request handling5924 method_class: Net::HTTP::Get, path: "/metrics", http_status: 2005925 responds with proper http_status5926 method_class: Net::HTTP::Get, path: "/liveness", http_status: 2005927 responds with proper http_status5928 method_class: Net::HTTP::Get, path: "/readiness", http_status: 2005929 responds with proper http_status5930 method_class: Net::HTTP::Get, path: "/", http_status: 4045931 responds with proper http_status5932 when exporter is disabled5933 #start5934 doesn't start5935 #stop5936 doesn't shutdown5937Banzai::Renderer5938 #cache_collection_render5939 when an item has a rendered field5940 does not touch redis if the field is in the cache5941 #render_field5942 without cache5943 returns cacheless render field5944 with cache5945 with a stale cache5946 caches and returns the result5947 skips database caching on a GitLab read-only instance5948 with an up-to-date cache5949 uses the cache5950 #post_process5951 when xhtml5952 without :post_process_pipeline key5953 uses PostProcessPipeline5954 with :post_process_pipeline key5955 uses passed post process pipeline5956 when not xhtml5957 without :post_process_pipeline key5958 uses PostProcessPipeline5959 with :post_process_pipeline key5960 uses passed post process pipeline5961Projects::Prometheus::AlertsFinder5962 with params5963 #execute5964 with project5965 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 95, project_id: 1444, prometheus_metric_id: 4, runbook_url: nil>]5966 with matching metric5967 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5968 with matching metric id5969 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5970 with project non-specific metric5971 is expected to be empty5972 with environment5973 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 3, runbook_url: nil>]5974 with matching metric5975 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5976 with environment non-specific metric5977 is expected to be empty5978 with matching project and environment5979 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 3, runbook_url: nil>]5980 with matching metric5981 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5982 with environment non-specific metric5983 is expected to be empty5984 with matching id5985 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5986 with a nil id5987 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 3, runbook_url: nil>]5988 with non-matching project-environment pair5989 is expected to be empty5990 with id5991 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 94, project_id: 1444, prometheus_metric_id: 2, runbook_url: nil>]5992 with multiple ids5993 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:15:58", updated_at: "2021-03-03 12:15:58", thres...0, operator: "gt", environment_id: 93, project_id: 1445, prometheus_metric_id: 5, runbook_url: nil>]5994 with non-matching id5995 is expected to be empty5996 without params5997 raises an error5998Gitlab::Metrics::Samplers::ActionCableSampler5999 behaves like metrics sampler6000 when sampling interval is passed explicitly6001 is expected to eq 426002 when sampling interval is passed through the environment6003 is expected to eq 426004 when no sampling interval is passed anywhere6005 uses the hardcoded default6006 #sample6007 for in-app mode6008 behaves like collects metrics6009 includes active connections6010 includes minimum worker pool size6011 includes maximum worker pool size6012 includes current worker pool size6013 includes largest worker pool size6014 includes worker pool completed task count6015 includes worker pool pending task count6016 for standalone mode6017 behaves like collects metrics6018 includes active connections6019 includes minimum worker pool size6020 includes maximum worker pool size6021 includes current worker pool size6022 includes largest worker pool size6023 includes worker pool completed task count6024 includes worker pool pending task count6025Gitlab::Ci::Status::Composite6026 #status6027 allow_failure: false6028 build_statuses: [:skipped], dag: false, result: "skipped", has_warnings: false6029 behaves like compares status and warnings6030 returns status and warnings?6031 build_statuses: [:skipped, :success], dag: false, result: "success", has_warnings: false6032 behaves like compares status and warnings6033 returns status and warnings?6034 build_statuses: [:skipped, :success], dag: true, result: "skipped", has_warnings: false6035 behaves like compares status and warnings6036 returns status and warnings?6037 build_statuses: [:created], dag: false, result: "created", has_warnings: false6038 behaves like compares status and warnings6039 returns status and warnings?6040 build_statuses: [:preparing], dag: false, result: "preparing", has_warnings: false6041 behaves like compares status and warnings6042 returns status and warnings?6043 build_statuses: [:canceled, :success, :skipped], dag: false, result: "canceled", has_warnings: false6044 behaves like compares status and warnings6045 returns status and warnings?6046 build_statuses: [:canceled, :success, :skipped], dag: true, result: "skipped", has_warnings: false6047 behaves like compares status and warnings6048 returns status and warnings?6049 build_statuses: [:pending, :created, :skipped], dag: false, result: "pending", has_warnings: false6050 behaves like compares status and warnings6051 returns status and warnings?6052 build_statuses: [:pending, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6053 behaves like compares status and warnings6054 returns status and warnings?6055 build_statuses: [:running, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6056 behaves like compares status and warnings6057 returns status and warnings?6058 build_statuses: [:pending, :created, :skipped], dag: true, result: "skipped", has_warnings: false6059 behaves like compares status and warnings6060 returns status and warnings?6061 build_statuses: [:pending, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6062 behaves like compares status and warnings6063 returns status and warnings?6064 build_statuses: [:running, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6065 behaves like compares status and warnings6066 returns status and warnings?6067 build_statuses: [:success, :waiting_for_resource], dag: false, result: "waiting_for_resource", has_warnings: false6068 behaves like compares status and warnings6069 returns status and warnings?6070 build_statuses: [:success, :manual], dag: false, result: "manual", has_warnings: false6071 behaves like compares status and warnings6072 returns status and warnings?6073 build_statuses: [:success, :scheduled], dag: false, result: "scheduled", has_warnings: false6074 behaves like compares status and warnings6075 returns status and warnings?6076 build_statuses: [:created, :preparing], dag: false, result: "preparing", has_warnings: false6077 behaves like compares status and warnings6078 returns status and warnings?6079 build_statuses: [:created, :success, :pending], dag: false, result: "running", has_warnings: false6080 behaves like compares status and warnings6081 returns status and warnings?6082 build_statuses: [:skipped, :success, :failed], dag: false, result: "failed", has_warnings: false6083 behaves like compares status and warnings6084 returns status and warnings?6085 build_statuses: [:skipped, :success, :failed], dag: true, result: "skipped", has_warnings: false6086 behaves like compares status and warnings6087 returns status and warnings?6088 build_statuses: [:success, :manual], dag: true, result: "pending", has_warnings: false6089 behaves like compares status and warnings6090 returns status and warnings?6091 build_statuses: [:success, :failed, :created], dag: true, result: "pending", has_warnings: false6092 behaves like compares status and warnings6093 returns status and warnings?6094 allow_failure: true6095 build_statuses: [:manual], dag: false, result: "skipped", has_warnings: false6096 behaves like compares status and warnings6097 returns status and warnings?6098 build_statuses: [:skipped, :failed], dag: false, result: "success", has_warnings: true6099 behaves like compares status and warnings6100 returns status and warnings?6101 build_statuses: [:skipped, :failed], dag: true, result: "skipped", has_warnings: true6102 behaves like compares status and warnings6103 returns status and warnings?6104 build_statuses: [:created, :failed], dag: false, result: "created", has_warnings: true6105 behaves like compares status and warnings6106 returns status and warnings?6107 build_statuses: [:preparing, :manual], dag: false, result: "preparing", has_warnings: false6108 behaves like compares status and warnings6109 returns status and warnings?6110Gitlab::Changelog::Parser6111 #root6112 parses an empty template6113 parses a variable with a single identifier step6114 parses a variable with a single integer step6115 parses a variable with multiple selector steps6116 parses a variable with an integer selector step6117 parses the special "it" variable6118 parses a text node6119 parses an if expression6120 parses an if-else expression6121 parses an each expression6122 parses an escaped newline6123 parses a regular newline6124 parses the default changelog template6125 raises an error when parsing an integer selector that is too large6126 #parse_and_transform6127 parses and transforms a template6128 raises parsing errors using a custom error class6129dashboard/projects/_blank_state_admin_welcome.html.haml6130 links to new group path6131Gitlab::Ci::Pipeline::Expression::Lexeme::And6132 .build6133 creates a new instance of the token6134 with non-evaluable operands6135 raises an operator error6136 .type6137 is an operator6138 .precedence6139 has a precedence6140 #evaluate6141 when left and right are truthy6142 left_value: true, right_value: 16143 is expected to be truthy6144 is expected to eq 16145 left_value: true, right_value: "a"6146 is expected to be truthy6147 is expected to eq "a"6148 left_value: 1, right_value: true6149 is expected to be truthy6150 is expected to eq true6151 left_value: 1, right_value: "a"6152 is expected to be truthy6153 is expected to eq "a"6154 left_value: "a", right_value: true6155 is expected to be truthy6156 is expected to eq true6157 left_value: "a", right_value: 16158 is expected to be truthy6159 is expected to eq 16160 when left or right is falsey6161 left_value: true, right_value: false6162 is expected to be falsey6163 left_value: true, right_value: nil6164 is expected to be falsey6165 left_value: false, right_value: true6166 is expected to be falsey6167 left_value: false, right_value: nil6168 is expected to be falsey6169 left_value: nil, right_value: true6170 is expected to be falsey6171 left_value: nil, right_value: false6172 is expected to be falsey6173 when left and right are falsey6174 left_value: false, right_value: nil6175 is expected to be falsey6176 is expected to eq false6177 left_value: nil, right_value: false6178 is expected to be falsey6179 is expected to eq nil6180EnvironmentHelper6181 #render_deployment_status6182 when using a manual deployment6183 renders a span tag6184 when using a deployment from a build6185 renders a link tag6186Gitlab::DependencyLinker::GemfileLinker6187 .support?6188 supports Gemfile6189 supports gems.rb6190 does not support other files6191 #link6192 links sources6193 links dependencies6194 links to external dependencies6195 links GitHub repos6196 links Git repos6197Gitlab::ExternalAuthorization6198 #access_allowed?6199 is always true when the feature is disabled6200 #rejection_reason6201 is always nil when the feature is disabled6202 #access_for_user_to_label6203 only loads the access once per request6204 logs the access request once per request6205Gitlab::Ci::Config::External::Context6206 attributes6207 with values6208 is expected to have attributes {:project => #<Double "Project">, :sha => "12345", :user => #<Double "User">}6209 is expected to eq #<Set: {}>6210 is expected to eq 06211 without values6212 is expected to have attributes {:project => nil, :sha => nil, :user => nil}6213 is expected to eq #<Set: {}>6214 is expected to eq 06215 #set_deadline6216 with a float value6217 updates execution_deadline6218 with nil as a value6219 updates execution_deadline6220 #check_execution_time!6221 when execution is expired6222 raises an error6223 when execution is not expired6224 does not raises any errors6225 without setting a deadline6226 does not raises any errors6227 #mutate6228 with attributes6229 behaves like a mutated context6230 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x0000563240a939e0 @project=#<Double "Project">, @sha="12345"...rent_pipeline=nil, @variables=[], @expandset=#<Set: {:a_file}>, @execution_deadline=14291.667048057>6231 is expected to be a kind of Gitlab::Ci::Config::External::Context6232 is expected to have attributes {:project => #<Double (anonymous)>, :sha => "56789", :user => #<Double (anonymous)>}6233 is expected to eq #<Set: {:a_file}>6234 is expected to eq 14291.6937483866235 without attributes6236 behaves like a mutated context6237 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x00005632408f3630 @project=#<Double "Project">, @sha="12345"...rent_pipeline=nil, @variables=[], @expandset=#<Set: {:a_file}>, @execution_deadline=14291.701306728>6238 is expected to be a kind of Gitlab::Ci::Config::External::Context6239 is expected to have attributes {}6240 is expected to eq #<Set: {:a_file}>6241 is expected to eq 14291.7274460766242 #sentry_payload6243 is expected to match (a hash including :project and :user)6244Snippets::ScheduleBulkRepositoryShardMovesService6245 behaves like moves repository shard in bulk6246 #execute6247 schedules container repository storage moves6248 read-only repository6249 does not get scheduled6250 .enqueue6251 defers to the worker6252WebHooks::DestroyService6253 with system hook6254 behaves like batched destroys6255 destroys all hooks in batches6256 returns an error if sync destroy fails6257 schedules an async delete6258 with project hook6259 behaves like batched destroys6260 destroys all hooks in batches6261 returns an error if sync destroy fails6262 schedules an async delete6263RuboCop::Cop::Migration::Datetime6264 when in migration6265 registers an offense when the ":datetime" data type is used on create_table6266 registers an offense when the ":timestamp" data type is used on create_table6267 does not register an offense when the ":datetime" data type is not used on create_table6268 does not register an offense when the ":datetime_with_timezone" data type is used on create_table6269 registers an offense when the ":datetime" data type is used on add_column6270 registers an offense when the ":timestamp" data type is used on add_column6271 does not register an offense when the ":datetime" data type is not used on add_column6272 does not register an offense when the ":datetime_with_timezone" data type is used on add_column6273 when outside of migration6274 registers no offense6275API::Entities::SSHKey6276 #as_json6277 includes basic fields6278Gitlab::Sourcegraph6279 .feature_conditional?6280 when feature is enabled globally6281 is expected to be falsey6282 when feature is enabled only to a resource6283 is expected to be truthy6284 .feature_available?6285 when feature is enabled globally6286 is expected to be truthy6287 when feature is enabled only to a resource6288 is expected to be truthy6289 .feature_enabled?6290 when feature is enabled globally6291 is expected to be truthy6292 when feature is enabled only to a resource6293 for the same resource6294 is expected to be truthy6295 for a different resource6296 is expected to be falsey6297Gitlab::DependencyLinker::CargoTomlLinker6298 .support?6299 supports Cargo.toml6300 does not support other files6301 #link6302/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/6303 links dependencies6304/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/6305 does not contain metadata identified as package6306Prometheus::ProxyService6307 configuration6308 ReactiveCaching refresh is not needed6309 #initialize6310 initializes attributes6311 converts ActionController::Parameters into hash6312 with unknown params6313 filters unknown params6314 with series method6315 allows match, start and end parameters6316 #execute6317 when prometheus_adapter is nil6318 returns error6319 when prometheus_adapter cannot query6320 returns error6321 cannot proxy6322 returns error6323 with caching6324 when value present in cache6325 returns cached value6326 when value not present in cache6327 returns nil6328 call prometheus api6329 connection to prometheus server succeeds6330 returns the http status code and body from prometheus6331 connection to prometheus server fails6332 prometheus client raises Gitlab::PrometheusClient::Error6333 returns error6334 with series API6335 calls PrometheusClient with given parameters6336 .from_cache6337 initializes an instance of ProxyService class6338Gitlab::LanguageData6339 #extensions6340 loads the extensions once6341Gitlab::ImportExport::AttributesFinder6342 #find_root6343 generates hash from project tree config6344 individual scenarios6345 generates the correct hash for a single project relation6346 generates the correct hash for a single project feature relation6347 generates the correct hash for a multiple project relation6348 generates the correct hash for a single sub-relation6349 generates the correct hash for a multiple sub-relation6350 generates the correct hash for a sub-relation with another sub-relation6351 generates the correct hash for a relation with included attributes6352 generates the correct hash for a relation with excluded attributes6353 generates the correct hash for a relation with both excluded and included attributes6354 generates the correct hash for a relation with custom methods6355 #find_relations_tree6356 when initialized with config including tree6357 when relation is in top-level keys of the tree6358 is expected to eq {:issues=>{}}6359 when the relation is not in top-level keys6360 is expected to be nil6361 when tree is not present in config6362 is expected to be nil6363 #find_excluded_keys6364 when initialized with excluded_attributes6365 is expected to eq ["name", "path"]6366 when excluded_attributes are not present in config6367 is expected to eq []6368Gitlab::Kubernetes::Helm::V2::DeleteCommand6369 behaves like helm command generator6370 #generate_script6371 returns appropriate command6372 #pod_name6373 is expected to eq "uninstall-app-name"6374 behaves like helm command6375 HELM_VERSION6376 is expected to match /\d+\.\d+\.\d+/6377 #env6378 is expected to be a kind of Hash6379 #rbac?6380 rbac is enabled6381 is expected to be truthy6382 rbac is not enabled6383 is expected to be falsey6384 #pod_resource6385 rbac is enabled6386 is expected to be an instance of Kubeclient::Resource6387 generates a pod that uses the tiller serviceAccountName6388 rbac is not enabled6389 is expected to be an instance of Kubeclient::Resource6390 generates a pod that uses the default serviceAccountName6391 #config_map_resource6392 returns a KubeClient resource with config map content for the application6393 #service_account_resource6394 rbac is enabled6395 generates a Kubeclient resource for the tiller ServiceAccount6396 rbac is not enabled6397 generates nothing6398 #cluster_role_binding_resource6399 rbac is enabled6400 generates a Kubeclient resource for the ClusterRoleBinding for tiller6401 binds the account in #service_account_resource6402 rbac is not enabled6403 generates nothing6404 #delete_command6405 deletes the release6406Gitlab::Kubernetes::Helm::V2::InstallCommand6407 behaves like helm command generator6408 #generate_script6409 returns appropriate command6410 when rbac is true6411 behaves like helm command generator6412 #generate_script6413 returns appropriate command6414 when there is a pre-install script6415 behaves like helm command generator6416 #generate_script6417 returns appropriate command6418 when there is a post-install script6419 behaves like helm command generator6420 #generate_script6421 returns appropriate command6422 when there is no version6423 behaves like helm command generator6424 #generate_script6425 returns appropriate command6426 behaves like helm command6427 HELM_VERSION6428 is expected to match /\d+\.\d+\.\d+/6429 #env6430 is expected to be a kind of Hash6431 #rbac?6432 rbac is enabled6433 is expected to be truthy6434 rbac is not enabled6435 is expected to be falsey6436 #pod_resource6437 rbac is enabled6438 is expected to be an instance of Kubeclient::Resource6439 generates a pod that uses the tiller serviceAccountName6440 rbac is not enabled6441 is expected to be an instance of Kubeclient::Resource6442 generates a pod that uses the default serviceAccountName6443 #config_map_resource6444 returns a KubeClient resource with config map content for the application6445 #service_account_resource6446 rbac is enabled6447 generates a Kubeclient resource for the tiller ServiceAccount6448 rbac is not enabled6449 generates nothing6450 #cluster_role_binding_resource6451 rbac is enabled6452 generates a Kubeclient resource for the ClusterRoleBinding for tiller6453 binds the account in #service_account_resource6454 rbac is not enabled6455 generates nothing6456Banzai::Filter::SpacedLinkFilter6457 converts multiple URLs6458 ignores valid links contained inside 'a' element6459 ignores valid links contained inside 'code' element6460 ignores valid links contained inside 'kbd' element6461 ignores valid links contained inside 'pre' element6462 ignores valid links contained inside 'script' element6463 ignores valid links contained inside 'style' element6464 when a link is detected6465 converts slug with spaces to a link6466 converts slug with spaces and a title to a link6467 does nothing with empty text6468 does nothing with an empty slug6469 when an image is detected6470 converts slug with spaces to an iamge6471 converts slug with spaces and a title to an image6472Gitlab::Auth::Otp::Strategies::FortiAuthenticator6473 successful validation6474 returns success6475 unsuccessful validation6476 returns error6477 unexpected error6478 returns error6479Gitlab::Analytics::CycleAnalytics::Average6480 #seconds6481 when no results6482 is expected to eq nil6483 returns the average duration in seconds6484 is expected to be within 0.5 of 648000.06485 #days6486 when no results6487 is expected to eq nil6488 returns the average duration in days6489 is expected to be within 0.01 of 7.56490PagesDomainRemovalCronWorker6491 #perform6492 when there is domain which should be removed6493 removes domain6494 where there is a domain which scheduled for removal in the future6495 does not remove pages domain6496Gitlab::Ci::PipelineObjectHierarchy6497 #base_and_ancestors6498 includes the base and its ancestors6499 can find ancestors upto a certain level6500 hierarchy_order option6501 :asc6502 orders by child to ancestor6503 :desc6504 orders by ancestor to child6505 #base_and_descendants6506 includes the base and its descendants6507 when with_depth is true6508 includes depth in the results6509 #all_objects6510 includes its ancestors and descendants6511 returns all family tree6512Gitlab::UsageData::Topology6513 #topology_usage_data6514 can reach a ready Prometheus client6515 behaves like query topology data from Prometheus6516 tracking node metrics6517 contains node level metrics for each instance6518 and some node memory metrics are missing6519 removes the respective entries and includes the failures6520 and services run on the same node but report different instance values6521 normalizes equivalent instance values and maps them to the same node6522 and node metrics are missing but service metrics exist6523 still reports service metrics6524 and unknown services are encountered6525 filters out unknown service data and reports the unknown services as a failure6526 and an error is raised when querying Prometheus6527 without timeout failures6528 returns empty result and executes subsequent queries as usual6529 with timeout failures6530 exception: Errno::ETIMEDOUT6531 returns empty result and cancelled subsequent queries6532 exception: Net::OpenTimeout6533 returns empty result and cancelled subsequent queries6534 exception: Net::ReadTimeout6535 returns empty result and cancelled subsequent queries6536 can not reach a ready Prometheus client6537 behaves like returns empty result with no failures6538 is expected to eq {:duration_s=>0, :failures=>[]}6539 when top-level function raises error6540 returns empty result with generic failure6541VersionCheckHelper6542 #version_status_badge6543 returns nil if not dev environment and not enabled6544 when production and enabled6545 returns an image tag6546 has a js prefixed css class6547 has a VersionCheck url as the src6548Tooling::Danger::FeatureFlag6549 #feature_flag_files6550 retrieves added feature flag files6551 with added added feature flag files6552 returns an array of Found objects6553 without added added feature flag files6554 returns an array of Found objects6555 retrieves modified feature flag files6556 with modified modified feature flag files6557 returns an array of Found objects6558 without modified modified feature flag files6559 returns an array of Found objects6560 retrieves deleted feature flag files6561 with deleted deleted feature flag files6562 returns an array of Found objects6563 without deleted deleted feature flag files6564 returns an array of Found objects6565 Tooling::Danger::FeatureFlag::Found6566 #raw6567 returns the raw YAML6568 #group6569 returns the group found in the YAML6570 #group_match_mr_label?6571 when MR labels match FF group6572 is expected to eq true6573 when MR labels does not match FF group6574 is expected to eq false6575 when group is nil6576 and MR has no group label6577 is expected to eq true6578 and MR has a group label6579 is expected to eq false6580Gitlab::Elasticsearch::Logs::Lines6581 #pod_logs6582 returns the logs as an array6583 can further filter the logs by container name6584 can further filter the logs by search6585 can further filter the logs by start_time and end_time6586 can further filter the logs by only start_time6587 can further filter the logs by only end_time6588 can search after a cursor6589 can search on filebeat 66590Gitlab::Config::Entry::ComposableHash6591 when ComposableHash is instantiated6592 behaves like composes a hash6593 #valid?6594 is valid6595 is invalid6596 is expected not to be valid6597 #value6598 when config is a hash6599 returns key value6600 #compose!6601 composes child entry with configured value6602 composes child entries with configured values6603 #descendants6604 creates descendant nodes6605 when ComposableHash entry is configured in the parent class6606 creates entry with configuration from parent class6607 behaves like composes a hash6608 #valid?6609 is valid6610 is invalid6611 is expected not to be valid6612 #value6613 when config is a hash6614 returns key value6615 #compose!6616 composes child entry with configured value6617 composes child entries with configured values6618 #descendants6619 creates descendant nodes6620Gitlab::Metrics::Dashboard::Cache6621 .fetch6622 stores data correctly6623 .for6624 returns a new instance6625 #fetch6626 stores data correctly6627 #delete_all!6628 deletes keys of the given project6629 does not fail when nothing to delete6630 multiple fetches and deletes6631 aggregate_failures6632Gitlab::ImportExport::Error6633 .permission_error6634 when supplied a project6635 returns an error with the correct message6636 when supplied a group6637 returns an error with the correct message6638RuboCop::Cop::Migration::ScheduleAsync6639 outside of a migration6640 behaves like a disabled cop6641 does not register any offenses6642 in a migration6643 in an old migration6644 behaves like a disabled cop6645 does not register any offenses6646 that is recent6647 BackgroundMigrationWorker.perform_async6648 adds an offense when calling `BackgroundMigrationWorker.peform_async` and corrects6649 BackgroundMigrationWorker.perform_in6650 adds an offense and corrects6651 BackgroundMigrationWorker.bulk_perform_async6652 adds an offense and corrects6653 BackgroundMigrationWorker.bulk_perform_in6654 adds an offense and corrects6655Gitlab::JwtAuthenticatable6656 .secret6657 returns 32 bytes6658 accepts a trailing newline6659 raises an exception if the secret file cannot be read6660 raises an exception if the secret file contains the wrong number of bytes6661 .write_secret6662 uses mode 06006663 writes base64 data6664 .decode_jwt_for_issuer6665 accepts a correct header6666 raises an error when the JWT is not signed6667 raises an error when the header is signed with the wrong secret6668 raises an error when the issuer is incorrect6669Gitlab::DependencyLinker6670 .link6671 links using GemfileLinker6672 links using GemspecLinker6673 links using PackageJsonLinker6674 links using ComposerJsonLinker6675 links using PodfileLinker6676 links using PodspecLinker6677 links using PodspecJsonLinker6678 links using CartfileLinker6679 links using GodepsJsonLinker6680 links using RequirementsTxtLinker6681 links using CargoTomlLinker6682 links using GoModLinker6683 links using GoSumLinker6684RuboCop::Cop::CodeReuse::Serializer6685 flags the use of a Serializer in a Service class6686 flags the use of a Serializer in a Finder6687 flags the use of a Serializer in a Presenter6688 flags the use of a Serializer in a Serializer6689 flags the use of a Serializer in a model instance method6690 flags the use of a Serializer in a model class method6691 flags the use of a Serializer in a worker6692Gitlab::Ci::Config::Normalizer::NumberStrategy6693 .applies_to?6694 with numbers6695 is expected to be truthy6696 with hash that has :number key6697 is expected to be truthy6698 with a float number6699 is expected to be falsey6700 with hash that does not have :number key6701 is expected to be falsey6702 .build_from6703 with numbers6704 behaves like parallelized job6705 is expected to eq 36706 has attributes6707 has parallelized name6708 with hash that has :number key6709 behaves like parallelized job6710 is expected to eq 36711 has attributes6712 has parallelized name6713RspecFlaky::Listener6714 #initialize6715 when no report file exists6716 behaves like a valid Listener instance6717 returns a valid Listener instance6718 when SUITE_FLAKY_RSPEC_REPORT_PATH is set6719 and report file exists6720 delegates the load to RspecFlaky::Report6721 and report file does not exist6722 return an empty hash6723 #example_passed6724 when the RSpec example does not respond to attempts6725 behaves like a non-flaky example6726 does not change the flaky examples hash6727 when the RSpec example has 1 attempt6728 behaves like a non-flaky example6729 does not change the flaky examples hash6730 when the RSpec example has 2 attempts6731 behaves like a new flaky example6732 changes the all flaky examples hash6733 with an existing flaky example6734 behaves like an existing flaky example6735 changes the flaky examples hash6736 #dump_summary6737 when a report file path is set by FLAKY_RSPEC_REPORT_PATH6738 delegates the writes to RspecFlaky::Report6739Mattermost::Command6740 #create6741 for valid trigger word6742 returns a token6743 for error message6744 raises an error with message6745Gitlab::GitalyClient::Diff6746 is expected to respond to #from_path6747 is expected to respond to #to_path6748 is expected to respond to #old_mode6749 is expected to respond to #new_mode6750 is expected to respond to #from_id6751 is expected to respond to #to_id6752 is expected to respond to #patch6753 is expected to respond to #collapsed6754 is expected to respond to #too_large6755 #==6756 is expected to eq #<Gitlab::GitalyClient::Diff:0x000056323f4cbf18 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>6757 is expected not to eq #<Gitlab::GitalyClient::Diff:0x000056323f48e2a8 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>6758Gitlab::Ci::Config::EdgeStagesInjector6759 #call6760 without stages6761 is expected to match {:test=>{:script=>"test"}}6762 with values6763 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6764 with bad values6765 is expected to match {:stages=>"stage1", :test=>{:script=>"test"}}6766 with collision values6767 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6768 with types6769 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6770 with types6771 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6772 .wrap_stages6773 with empty value6774 is expected to eq [".pre", ".post"]6775 with values6776 is expected to eq [".pre", "s1", ".post"]6777Packages::Nuget::ServiceIndexPresenter6778 #version6779 for a group6780 is expected to eq "3.0.0"6781 for a project6782 is expected to eq "3.0.0"6783 #resources6784 for a group6785 behaves like returning valid resources6786 has valid resources6787 does not return the publish resource6788 for a project6789 behaves like returning valid resources6790 has valid resources6791 does return the publish resource6792RuboCop::Cop::UsageData::LargeTable6793 when in usage_data files6794 with large tables6795 when calling Issue.count6796 registers an offense6797 when calling Issue.active.count6798 registers an offense6799 when calling count(Issue)6800 does not register an offense6801 when calling count(Ci::Build.active)6802 does not register an offense6803 when calling Ci::Build.active.count6804 registers an offense6805 when using allowed methods6806 does not register an offense6807 with non related class6808 does not register an offense6809Gitlab::HookData::GroupBuilder6810 #build6811 data6812 on create6813 is expected to eq "group_create"6814 behaves like includes the required attributes6815 includes the required attributes6816 behaves like does not include old path attributes6817 does not include old path attributes6818 on destroy6819 is expected to eq "group_destroy"6820 behaves like includes the required attributes6821 includes the required attributes6822 behaves like does not include old path attributes6823 does not include old path attributes6824 on rename6825 is expected to eq "group_rename"6826 includes old path details6827 behaves like includes the required attributes6828 includes the required attributes6829FromIntersect6830 behaves like from set operator6831 #from_intersect6832 selects from the results of the INTERSECT6833 supports the use of a custom alias for the sub query6834 supports keeping duplicate rows6835ChatMessage::NoteMessage6836 commit notes6837 without markdown6838 returns a message regarding notes on commits6839 with markdown6840 returns a message regarding notes on commits6841 merge request notes6842 without markdown6843 returns a message regarding notes on a merge request6844 with markdown6845 returns a message regarding notes on a merge request6846 issue notes6847 without markdown6848 returns a message regarding notes on an issue6849 with markdown6850 returns a message regarding notes on an issue6851 project snippet notes6852 without markdown6853 returns a message regarding notes on a project snippet6854 with markdown6855 returns a message regarding notes on a project snippet6856Gitlab::AvatarCache6857 #by_email6858 writes a new value into the cache6859 finds the cached value and doesn't execute the block6860 finds the cached value in the request store and doesn't execute the block6861 #delete_by_email6862 no emails, somehow6863 is expected to eq 06864 single email6865 removes the email6866 multiple emails6867 removes the emails it finds6868Gitlab::Email::Hook::DeliveryMetricsObserver6869 when email has been delivered6870 increments both email delivery metrics6871 when email has not been delivered due to an error6872 increments only delivery attempt metric6873PersonalAccessTokens::LastUsedService6874 #execute6875 when the personal access token has not been used recently6876 updates the last_used_at timestamp6877 does not run on read-only GitLab instances6878 when the personal access token has been used recently6879 does not update the last_used_at timestamp6880 when the last_used_at timestamp is nil6881 updates the last_used_at timestamp6882 when not a personal access token6883 does not execute6884IssueRebalancingWorker6885 #perform6886 runs an instance of IssueRebalancingService6887 anticipates the inability to find the issue6888 anticipates there being too many issues6889 takes no action if the value is nil6890API::Helpers::MergeRequestsHelpers6891 #handle_merge_request_errors!6892 when merge request is valid6893 returns nil6894 when merge request is invalid6895 responds to a project_access error with unprocessable_entity6896 responds to a branch_conflict error with unprocessable_entity6897 responds to a validate_fork error with unprocessable_entity6898 responds to a base error with unprocessable_entity6899 responds to a validate_branches error with conflict6900 responds with bad request6901Gitlab::GrapeLogging::Loggers::ExceptionLogger6902 .parameters6903 when no exception is available6904 returns an empty hash6905 with a response6906 with a String response6907 logs the response body6908 with an Array response6909 casts all elements to strings6910 with a Rack BodyProxy response6911 logs the response body6912 unauthorized error6913 does not log an api_error field6914 HTTP success6915 does not log an api_error field6916 when an exception is available6917 returns the correct fields6918 with backtrace6919 includes the backtrace6920JSONWebToken::RSAToken6921 token6922 for valid key to be validated6923 is expected not to raise Exception6924 is expected to include {"key" => "value"}6925 is expected to eq {"alg"=>"RS256", "kid"=>"OGXY:4TR7:FAVO:WEM2:XXEW:E4FP:TKL7:7ACK:TZAF:D54P:SUIA:P3B2", "typ"=>"JWT"}6926 for invalid key to raise an exception6927 is expected to raise JWT::DecodeError6928Gitlab::SidekiqMiddleware::MemoryKiller6929 when MAX_RSS is set to 06930 does nothing6931 when MAX_RSS is exceeded6932 sends the TSTP, TERM and KILL signals at expected times6933 sends TSTP and TERM to the pid, but KILL to the pgroup, when running as process leader6934 when MAX_RSS is not exceeded6935 does nothing6936Gitlab::CrossProjectAccess6937 #add_check6938 keeps track of the properties to check6939 builds the check correctly6940 merges the checks of a parent class into existing checks of a subclass6941 merges the existing checks of a superclass into the checks of a subclass6942 #find_check6943 returns a check when it was defined for a superclass6944 caches the result for a subclass6945 returns the checks for the closest class if there are more checks available6946TimeHelper6947 #time_interval_in_words6948 returns minutes and seconds6949 #duration_in_numbers6950 duration: 0, formatted_string: "00:00"6951 is expected to eq "00:00"6952 duration: 1 second, formatted_string: "00:01"6953 is expected to eq "00:01"6954 duration: 42 seconds, formatted_string: "00:42"6955 is expected to eq "00:42"6956 duration: 2 minutes and 1 second, formatted_string: "02:01"6957 is expected to eq "02:01"6958 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"6959 is expected to eq "03:02:01"6960 duration: 30 hours, formatted_string: "30:00:00"6961 is expected to eq "30:00:00"6962 #time_in_milliseconds6963 returns the time in milliseconds6964BulkImports::Pipeline6965 pipeline attributes6966 getters6967 retrieves class attributes6968 when extractor and loader are defined within the pipeline6969 returns itself when retrieving extractor & loader6970 setters6971 sets class attributes6972 #instantiate6973 when options are present6974 instantiates new object with options6975 when options are missing6976 instantiates new object without options6977 #transformers6978 has instance transform method first to run6979Gitlab::Graphql::Pagination::Keyset::Conditions::NullCondition6980 #build6981 when ordering by a column attribute6982 when :after6983 behaves like :after condition6984 generates sql6985 when :before6986 generates :before sql6987 when :foo6988 behaves like :after condition6989 generates sql6990 when ordering by LOWER6991 when :after6992 generates sql6993 when :before6994 generates :before sql6995API::Entities::Projects::RepositoryStorageMove6996 #as_json6997 includes basic fields6998Gitlab::Graphql::Loaders::BatchLfsOidLoader6999 #find7000 batch-resolves LFS blob IDs7001Admin::PlansFinder7002 #execute7003 with no params7004 returns all plans7005 with missing name in params7006 returns all plans7007 with existing name in params7008 returns the plan7009 with non-existing name in params7010 returns nil7011Gitlab::Ci::Reports::CoverageReports7012 is expected to eq {}7013 #pick7014 returns only picked files while ignoring nonexistent ones7015 #add_file7016 when providing two individual files7017 initializes a new test suite and returns it7018 when providing the same files twice7019 with different line coverage7020 initializes a new test suite and returns it7021 with identical line coverage7022 initializes a new test suite and returns it7023Gitlab::Ci::Pipeline::Duration7024 test sample A7025 behaves like calculating duration7026 is expected to eq 47027 test sample B7028 behaves like calculating duration7029 is expected to eq 47030 test sample C7031 behaves like calculating duration7032 is expected to eq 87033 test sample D7034 behaves like calculating duration7035 is expected to eq 47036 test sample E7037 behaves like calculating duration7038 is expected to eq 77039 test sample F7040 behaves like calculating duration7041 is expected to eq 67042 test sample G7043 behaves like calculating duration7044 is expected to eq 47045Types::UserType7046 is expected to eq "User"7047 is expected to require graphql authorizations :read_user7048 has the expected fields7049 snippets field7050 returns snippets7051Gitlab::Utils::LogLimitedArray7052 .log_limited_array7053 when the argument is not an array7054 returns an empty array7055 when the argument is an array7056 when the array is under the limit7057 returns the array unchanged7058 when the array exceeds the limit7059 when no sentinel value is passed7060 replaces arguments after the limit with an ellipsis string7061 when a sentinel value is passed7062 replaces arguments after the limit with the sentinel7063 when the array contains arrays and hashes7064 calculates the size based on the JSON representation7065UserProjectAccessChangedService7066 #execute7067 schedules the user IDs7068 permits non-blocking operation7069 permits low-priority operation7070OptionallySearch7071 .search7072 raises NotImplementedError7073 .optionally_search7074 when a query is given7075 delegates to the search method7076 when an option is provided7077 delegates to the search method7078 when no query is given7079 returns the current relation7080 when an empty query is given7081 returns the current relation7082Gitlab::Graphql::GenericTracing7083 updates graphql histogram with expected labels7084 when labkit tracing is enabled7085 yields with labkit tracing7086 when labkit tracing is disabled7087 yields without measurement7088Types::TimeType7089 is expected to eq "Time"7090 coerces Time object into ISO 86017091 coerces an ISO-time into Time object7092 rejects invalid input7093 rejects nil7094Members::InviteEmailExperiment7095 #rollout_strategy7096 resolves to round_robin7097 #variants7098 has all the expected variants7099 exclusions7100 excludes when created by is nil7101 excludes when avatar_url is nil7102SystemNotes::BaseService7103 #noteable7104 is expected to eq #<Double (anonymous)>7105 returns nil if no arguments are given7106 #project7107 is expected to eq #<Double (anonymous)>7108 returns nil if no arguments are given7109 #author7110 is expected to eq #<Double (anonymous)>7111 returns nil if no arguments are given7112Uniquify7113 #string7114 returns the given string if it does not exist7115 returns the given string with a counter attached if the string exists7116 increments the counter for each candidate string that also exists7117 allows to pass an initial value for the counter7118 allows passing in a base function that defines the location of the counter7119Gitlab::Ci::Config::Entry::Files7120 validations7121 when entry config value is valid7122 #value7123 returns key value7124 #valid?7125 is valid7126 #errors7127 when entry value is not an array7128 saves errors7129 when entry value is not an array of strings7130 saves errors7131 when entry value contains more than two values7132 saves errors7133Types::AlertManagement::AlertType7134 is expected to eq "AlertManagementAlert"7135 is expected to require graphql authorizations :read_alert_management_alert7136 exposes the expected fields7137Gitlab::Config::Entry::Simplifiable7138 .strategy7139 defines entry strategies7140 setting strategy by a condition7141 when first strategy should be used7142 attemps to load a first strategy7143 when second strategy should be used7144 attemps to load a second strategy7145 when neither one is a valid strategy7146 instantiates an unknown strategy7147 when a unknown strategy class is not defined7148 raises an error when being initialized7149Gitlab::Metrics::Subscribers::ActionView7150 #render_template7151 tracks rendering of a template7152 observes view rendering time7153Bitbucket::Page7154 #items7155 returns collection of needed objects7156 #attrs7157 returns attributes7158 #next?7159 returns true7160 returns false7161 #next7162 returns next attribute7163ResourceEvents::SyntheticMilestoneNotesBuilderService7164 #execute7165 builds milestone notes for resource milestone events7166Namespaces::OnboardingPipelineCreatedWorker#perform7167 behaves like records an onboarding progress action7168 is expected to receive execute({:action=>:pipeline_created}) 1 time7169 behaves like does not record an onboarding progress action7170 is expected not to receive new(*(any args)) 0 times7171Gitlab::RateLimitHelpers7172 #archive_rate_limit_reached?7173 with a user7174 rate limits the user properly7175 with an anonymous user7176 rate limits with higher limits7177Gitlab::ImportExport::AttributeCleaner7178 removes unwanted attributes from the hash7179 removes attributes not present in relation_class7180 removes excluded keys from the hash7181 does not remove excluded key if not listed7182Gitlab::Config::Entry::Unspecified7183 #valid?7184 delegates method to entry7185 #errors7186 delegates method to entry7187 #value7188 delegates method to entry7189 #specified?7190 is always false7191RuboCop::Cop::RSpec::AnyInstanceOf7192 when calling allow_any_instance_of7193 registers an offense and corrects7194 when calling expect_any_instance_of7195 registers an offense and corrects7196Metrics::UsersStarredDashboards::DeleteService7197 #execute7198 without dashboard_path7199 does not scope user starred dashboards by dashboard path7200 with dashboard_path7201 does scope user starred dashboards by dashboard path7202Gitlab::GithubImport::Representation::PullRequestReview7203 .from_api_response7204 does not set the user if the response did not include a user7205 behaves like a PullRequest review7206 returns an instance of PullRequest7207 .from_json_hash7208 does not set the user if the response did not include a user7209 behaves like a PullRequest review7210 returns an instance of PullRequest7211Import::FogbugzProviderRepoEntity7212 behaves like exposes required fields for import entity7213 exposes required fields7214 correctly exposes id7215 correctly exposes full name7216 correctly exposes sanitized name7217 correctly exposes provider link7218CrudPolicyHelpers7219 .create_read_update_admin_destroy7220 returns an array of the appropriate abilites given a feature name7221 .create_update_admin_destroy7222 returns an array of the appropriate abilites given a feature name7223 .create_update_admin7224 returns an array of the appropriate abilites given a feature name7225ProductAnalytics::BuildGraphService7226 returns a valid graph hash7227Gitlab::Middleware::HandleIpSpoofAttackError7228 passes through the response from a valid upstream7229 translates an ActionDispatch::IpSpoofAttackError to a 400 response7230 passes through the exception raised by an invalid upstream7231Types::GrafanaIntegrationType7232 is expected to eq "GrafanaIntegration"7233 is expected to require graphql authorizations :admin_operations7234 is expected to have graphql fields :id, :grafana_url, :enabled, :created_at, and :updated_at7235Gitlab::PhabricatorImport::Conduit::User7236 #users7237 calls the api with the correct params7238 returns an array of parsed responses7239 performs multiple requests if more phids than the maximum page size are passed7240Types::ReleaseAssetsInputType7241 is expected to eq "ReleaseAssetsInput"7242 has the correct arguments7243 sets the type of links argument to ReleaseAssetLinkInputType7244Gitlab::Config::Entry::Boolean7245 validations7246 when entry config value is valid7247 #value7248 returns key value7249 #valid?7250 is valid7251 when entry value is not valid7252 #errors7253 saves errors7254Types::AlertManagement::DomainFilterEnum7255 is expected to eq "AlertManagementDomainFilter"7256 exposes all the severity values7257Gitlab::Checks::TimedLogger7258 #log_timed7259 logs message7260 when time limit was reached7261 cancels action7262 cancels action with time elapsed if work was performed7263Types::ReleaseLinksType7264 is expected to require graphql authorizations :download_code7265 has the expected fields7266Graphql::FieldSelection7267 can report on the paths that are selected7268 can serialize a field selection nicely7269Types::Projects::Services::JiraServiceType7270 is expected to eq "JiraService"7271 has basic expected fields7272 is expected to require graphql authorizations :admin_project7273Gitlab::Graphql::QueryAnalyzers::LoggerAnalyzer7274 #initial_value7275 filters out sensitive variables7276 #final_value7277 returns a duration in seconds7278Ci::CodequalityMrDiffEntity7279 #as_json7280 when quality report has degradations7281 contains correct codequality mr diff report7282Types::Projects::ServiceTypeEnum7283 is expected to eq "ServiceType"7284 exposes all the existing project services7285ProjectSerializer7286 when serializer option is :import7287 represents with ProjectImportEntity7288 when serializer option is omitted7289 represents with ProjectEntity7290Types::UserStatusType7291 is expected to eq "UserStatus"7292 exposes the expected fields7293Types::Tree::BlobType7294 is expected to eq "Blob"7295 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, :web_path, :lfs_oid, and :mode7296Projects::Prometheus::Alerts::DestroyService7297 #execute7298 deletes the alert7299Types::DesignManagement::DesignVersionEventEnum7300 is expected to eq "DesignVersionEvent"7301 exposes the correct event states7302Types::AlertManagement::SeverityEnum7303 is expected to eq "AlertManagementSeverity"7304 exposes all the severity values7305Types::ContainerExpirationPolicyCadenceEnum7306 behaves like exposing container expiration policy option7307 exposes all options7308 uses all possible options from model7309Gitlab::PhabricatorImport::Representation::User7310 #phabricator_id7311 returns the phabricator id7312 #username7313 returns the username7314InstanceMetadata7315 has the correct properties7316Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata7317 #call7318 merges Application#logging_extras in to job7319 does not raise when the worker does not respond to #done_log_extra_metadata7320Banzai::Filter::OutputSafety7321 when given HTML is safe7322 returns safe HTML7323 when given HTML is not safe7324 returns escaped HTML7325SubscribableBannerHelper7326 #display_subscription_banner!7327 is over-written in EE7328API::Entities::Nuget::PackageMetadataCatalogEntry7329 is expected to eq {:@id=>"http://sandbox.com/json/package", :authors=>"Authors", :dependencyGroups=>[], :iconUrl=>"http...tUrl=>"http://sandbox.com/project", :summary=>"Summary", :tags=>"tag1 tag2 tag3", :version=>"1.2.3"}7330TodosDestroyer::ProjectPrivateWorker7331 calls the Todos::Destroy::ProjectPrivateService with the params it was given7332Types::DesignManagementType7333 is expected to have graphql fields :version and :design_at_version7334Types::EventableType7335 exposes events field7336Resolvers::MetadataResolver7337 #resolve7338 returns version and revision7339Gitlab::Git::GitmodulesParser7340 parses a .gitmodules file correctly7341Gitlab::NoCacheHeaders7342 #no_cache_headers7343 raises a RuntimeError7344Pending: (Failures listed here are expected and do not affect your suite's status)7345 1) 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 blank7346 # No reason given7347 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497348 2) 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 blank7349 # No reason given7350 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577351 3) ImportExportUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7352 # No pattern provided, skipping.7353 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87354 4) ImportExportUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7355 # No pattern provided, skipping.7356 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87357 5) ImportExportUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative7358 # Path not set, skipping.7359 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407360 6) ImportExportUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7361 # No pattern provided, skipping.7362 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87363 7) ImportExportUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7364 # No pattern provided, skipping.7365 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87366Finished in 14 minutes 12 seconds (files took 36.19 seconds to load)73673344 examples, 0 failures, 7 pending7368Wed 03 Mar 2021 12:17:08 PM UTC7370Not uploading cache rails-v4-3 due to policy7372Uploading artifacts...7373coverage/: found 5 matching files and directories 7374WARNING: crystalball/: no matching files 7375deprecations/: found 17 matching files and directories 7376knapsack/: found 3 matching files and directories 7377rspec_flaky/: found 2 matching files and directories 7378rspec_profiling/: found 1 matching files and directories 7379WARNING: tmp/capybara/: no matching files 7380tmp/memory_test/: found 2 matching files and directories 7381tmp/feature_flags/: found 69 matching files and directories 7382log/*.log: found 18 matching files and directories 7383Uploading artifacts as "archive" to coordinator... ok id=1069712176 responseStatus=201 Created token=UAeahzA47384Uploading artifacts...7385junit_rspec.xml: found 1 matching files and directories 7386Uploading artifacts as "junit" to coordinator... ok id=1069712176 responseStatus=201 Created token=UAeahzA47388Job succeeded