rspec unit pg11 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-1614768086-ace320d9...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 61% |******************* | 242M 0:00:00 ETA25gitlab.tar.gz 100% |********************************| 396M 0:00:00 ETA26'/tmp/gitlab.tar.gz' saved27Extracting tarball into /builds/gitlab-org/gitlab...28Fetching changes with git depth set to 20...29Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/30remote: Enumerating objects: 1210, done. 31remote: Counting objects: 100% (645/645), done. 32remote: Compressing objects: 100% (248/248), done. 33remote: Total 320 (delta 256), reused 130 (delta 68), pack-reused 0 34Receiving objects: 100% (320/320), 40.40 KiB | 1.15 MiB/s, done.35Resolving deltas: 100% (256/256), completed with 120 local objects.37 * [new ref] 4996f4cc3b5cc82b8b493bfd2a4ced37e8cf757c -> refs/pipelines/26473258738Checking out 4996f4cc as refs/merge-requests/55046/merge...39Skipping Git submodules setup41Checking cache for rails-v4-3...42cache.zip is up to date 43WARNING: 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) 44Successfully extracted cache46Downloading artifacts for compile-test-assets (1069711722)...47Downloading artifacts from coordinator... ok id=1069711722 responseStatus=200 OK token=cQ-zkx2s48Downloading artifacts for detect-tests (1069711729)...49Downloading artifacts from coordinator... ok id=1069711729 responseStatus=200 OK token=4KJ6tsyT50Downloading artifacts for retrieve-tests-metadata (1069711731)...51Downloading artifacts from coordinator... ok id=1069711731 responseStatus=200 OK token=nMSW8ysV52Downloading artifacts for setup-test-env (1069711725)...53Downloading artifacts from coordinator... ok id=1069711725 responseStatus=200 OK token=fSmN9Jtk54WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 56Using 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 ...57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh62Bundler version 2.1.463$ bundle install --without=production development --jobs=2 --path=vendor --retry=3 --quiet64==> 'bundle install --without=production development --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 1 seconds.65$ bundle check66The Gemfile's dependencies are satisfied67==> 'bundle check' succeeded in 1 seconds.68$ bundle pristine pg69Installing pg 1.2.3 with native extensions70==> 'bundle pristine pg' succeeded in 10 seconds.71$ setup_db_user_only72CREATE ROLE73GRANT74==> 'setup_db_user_only' succeeded in 0 seconds.75$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee76Dropped database 'gitlabhq_test'77Created database 'gitlabhq_test'78Dropped database 'gitlabhq_geo_test'79Created database 'gitlabhq_geo_test'80==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 27 seconds.81$ run_timed_command "gem install knapsack --no-document"82$ gem install knapsack --no-document83Successfully installed knapsack-1.20.0841 gem installed85==> 'gem install knapsack --no-document' succeeded in 0 seconds.86$ run_timed_command "scripts/gitaly-test-spawn"87$ scripts/gitaly-test-spawn88Settings are listed in order of priority. The top value will be used.89retry90Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 391path92Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"93jobs94Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 495app_config96Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"97gemfile98Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"99flags100Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"101Don't run Bundler as root. Bundler can ask for sudo if it is needed, and102installing your bundle as root will break this application for all non-root103users on this machine.104Using abstract_type 0.0.7105Using concurrent-ruby 1.1.7106Using i18n 1.8.5107Using minitest 5.14.2108Using thread_safe 0.3.6109Using tzinfo 1.2.9110Using zeitwerk 2.4.2111Using activesupport 6.0.3.4112Using builder 3.2.4113Using erubi 1.10.0114Using mini_portile2 2.5.0115Using racc 1.5.2116Using nokogiri 1.11.1 (x86_64-linux)117Using rails-dom-testing 2.0.3118Using crass 1.0.6119Using loofah 2.9.0120Using rails-html-sanitizer 1.3.0121Using actionview 6.0.3.4122Using rack 2.2.3123Using rack-test 1.1.0124Using actionpack 6.0.3.4125Using ice_nine 0.11.2126Using memoizable 0.4.2127Using adamantium 0.2.0128Using public_suffix 4.0.6129Using addressable 2.7.0130Using ast 2.4.1131Using binding_ninja 0.2.3132Using bundler 2.1.4133Using charlock_holmes 0.7.7134Using coderay 1.1.2135Using equalizer 0.0.11136Using concord 0.1.5137Using diff-lcs 1.3138Using dotenv 2.7.6139Using escape_utils 1.2.1140Using factory_bot 5.0.2141Using multipart-post 2.1.1142Using faraday 1.0.1143Using ffi 1.13.1144Using json 2.5.1145Using gemojione 3.3.0146Using mini_mime 1.0.2147Using rugged 1.0.1148Using github-linguist 7.12.1149Using github-markup 1.7.0150Using mime-types-data 3.2020.1104151Using mime-types 3.3.1152Using gitlab-gollum-rugged_adapter 0.4.4.3.gitlab.1153Using rouge 3.26.0154Using nokogumbo 1.5.0155Using sanitize 4.6.6156Using stringex 2.8.5157Using gitlab-gollum-lib 4.2.7.10.gitlab.1158Using google-protobuf 3.12.4 (x86_64-linux)159Using googleapis-common-protos-types 1.0.5160Using grpc 1.30.2 (x86_64-linux)161Using opentracing 0.5.0162Using thrift 0.13.0163Using jaeger-client 1.1.0164Using pg_query 1.3.0165Using redis 4.2.5166Using gitlab-labkit 0.15.0167Using gitlab-markup 1.7.1168Using grpc-tools 1.30.2169Using sawyer 0.8.2170Using octokit 4.20.0171Using reverse_markdown 1.4.0172Using thor 1.1.0173Using licensee 9.14.1174Using method_source 0.9.2175Using msgpack 1.3.3176Using optimist 3.0.1177Using parallel 1.19.2178Using parser 2.7.2.0179Using procto 0.0.3180Using unparser 0.4.7181Using proc_to_ast 0.1.0182Using pry 0.12.2183Using rainbow 3.0.0184Using rbtrace 0.4.14185Using rdoc 6.2.0186Using regexp_parser 1.8.1187Using rexml 3.2.4188Using rspec-support 3.8.0189Using rspec-core 3.8.0190Using rspec-expectations 3.8.3191Using rspec-mocks 3.8.0192Using rspec 3.8.0193Using rspec-parameterized 0.4.2194Using rubocop-ast 0.2.0195Using ruby-progressbar 1.10.1196Using unicode-display_width 1.7.0197Using rubocop 0.86.0198Using sentry-raven 3.0.4199Using timecop 0.9.1200Bundle complete! 21 Gemfile dependencies, 96 gems now installed.201Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`202Checking gitaly-ruby Gemfile...203Checking gitaly-ruby bundle...204The Gemfile's dependencies are satisfied205Trying to connect to gitaly: ....... OK206Trying to connect to gitaly2: .................. OK207Trying to connect to praefect: ......... OK208==> 'scripts/gitaly-test-spawn' succeeded in 5 seconds.209$ source ./scripts/rspec_helpers.sh210$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"211KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb212Knapsack node specs:213spec/services/git/branch_push_service_spec.rb214spec/models/concerns/milestoneish_spec.rb215spec/services/projects/overwrite_project_service_spec.rb216spec/lib/gitlab/gpg/commit_spec.rb217spec/models/project_services/jira_service_spec.rb218spec/lib/gitlab/ci/status/build/factory_spec.rb219spec/policies/project_statistics_policy_spec.rb220spec/finders/todos_finder_spec.rb221spec/models/project_services/slack_service_spec.rb222spec/models/ci/job_artifact_spec.rb223spec/lib/banzai/filter/commit_range_reference_filter_spec.rb224spec/models/concerns/counter_attribute_spec.rb225spec/lib/gitlab/reference_extractor_spec.rb226spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb227spec/tasks/gitlab/workhorse_rake_spec.rb228spec/services/merge_requests/ff_merge_service_spec.rb229spec/lib/banzai/reference_parser/base_parser_spec.rb230spec/services/todos/destroy/group_private_service_spec.rb231spec/lib/gitlab/contributions_calendar_spec.rb232spec/finders/environment_names_finder_spec.rb233spec/lib/gitlab/email/message/repository_push_spec.rb234spec/presenters/commit_status_presenter_spec.rb235spec/models/concerns/project_api_compatibility_spec.rb236spec/finders/starred_projects_finder_spec.rb237spec/presenters/projects/settings/deploy_keys_presenter_spec.rb238spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb239spec/models/ci/build_runner_session_spec.rb240spec/models/project_services/jenkins_service_spec.rb241spec/lib/gitlab/background_migration/user_mentions/create_resource_user_mention_spec.rb242spec/models/diff_viewer/base_spec.rb243spec/graphql/mutations/issues/set_due_date_spec.rb244spec/lib/gitlab/import_export/project/object_builder_spec.rb245spec/models/packages/conan/file_metadatum_spec.rb246spec/models/operations/feature_flags/user_list_spec.rb247spec/finders/security/license_compliance_jobs_finder_spec.rb248spec/models/concerns/prometheus_adapter_spec.rb249spec/services/groups/group_links/create_service_spec.rb250spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb251spec/services/post_receive_service_spec.rb252spec/services/upload_service_spec.rb253spec/services/todos/destroy/confidential_issue_service_spec.rb254spec/services/files/update_service_spec.rb255spec/services/gpg_keys/create_service_spec.rb256spec/services/projects/move_project_members_service_spec.rb257spec/services/ci/destroy_expired_job_artifacts_service_spec.rb258spec/lib/gitlab/chat/responder/slack_spec.rb259spec/workers/remove_expired_members_worker_spec.rb260spec/lib/gitlab/slash_commands/issue_move_spec.rb261spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb262spec/services/ci/extract_sections_from_build_trace_service_spec.rb263spec/serializers/web_ide_terminal_entity_spec.rb264spec/services/issues/reorder_service_spec.rb265spec/lib/gitlab/import_export/lfs_restorer_spec.rb266spec/workers/clusters/applications/deactivate_service_worker_spec.rb267spec/lib/gitlab/background_migration/migrate_users_bio_to_user_details_spec.rb268spec/lib/gitlab/auth/saml/user_spec.rb269spec/lib/banzai/reference_parser/milestone_parser_spec.rb270spec/uploaders/import_export_uploader_spec.rb271spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb272spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb273spec/lib/gitlab/diff/diff_refs_spec.rb274spec/lib/gitlab/ci/config/external/file/project_spec.rb275spec/lib/gitlab/import_export/project/export_task_spec.rb276spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb277spec/views/projects/merge_requests/_commits.html.haml_spec.rb278spec/tasks/gitlab/update_templates_rake_spec.rb279spec/helpers/wiki_helper_spec.rb280spec/lib/banzai/reference_parser/external_issue_parser_spec.rb281spec/lib/gitlab/checks/snippet_check_spec.rb282spec/lib/banzai/reference_parser/label_parser_spec.rb283spec/helpers/application_helper_spec.rb284spec/lib/gitlab/ci/status/stage/common_spec.rb285spec/workers/design_management/new_version_worker_spec.rb286spec/lib/gitlab/consul/internal_spec.rb287spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb288spec/lib/api/entities/merge_request_approvals_spec.rb289spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb290spec/lib/gitlab/ci/status/build/common_spec.rb291spec/finders/protected_branches_finder_spec.rb292spec/lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb293spec/helpers/groups/group_members_helper_spec.rb294spec/services/clusters/applications/schedule_update_service_spec.rb295spec/lib/gitlab/email/smime/signer_spec.rb296spec/services/projects/batch_open_issues_count_service_spec.rb297spec/lib/gitlab/git/patches/commit_patches_spec.rb298spec/finders/packages/conan/package_finder_spec.rb299spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb300spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb301spec/lib/gitlab/x509/signature_spec.rb302spec/graphql/resolvers/snippets_resolver_spec.rb303spec/services/users/update_service_spec.rb304spec/views/projects/commits/_commit.html.haml_spec.rb305spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb306spec/lib/gitlab/slash_commands/issue_search_spec.rb307spec/workers/merge_request_cleanup_refs_worker_spec.rb308spec/lib/gitlab/usage/metric_spec.rb309spec/serializers/trigger_variable_entity_spec.rb310spec/lib/gitlab/database/count/exact_count_strategy_spec.rb311spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb312spec/lib/gitlab/git_access_project_spec.rb313spec/lib/gitlab/import/merge_request_creator_spec.rb314spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb315spec/services/award_emojis/collect_user_emoji_service_spec.rb316spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb317spec/services/boards/create_service_spec.rb318spec/policies/clusters/instance_policy_spec.rb319spec/tooling/danger/helper_spec.rb320spec/presenters/project_member_presenter_spec.rb321spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb322spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb323spec/finders/ci/variables_finder_spec.rb324spec/lib/gitlab/kubernetes/node_spec.rb325spec/policies/service_policy_spec.rb326spec/policies/terraform/state_policy_spec.rb327spec/services/protected_branches/update_service_spec.rb328spec/lib/gitlab/bare_repository_import/repository_spec.rb329spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb330spec/models/issue_email_participant_spec.rb331spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb332spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb333spec/models/project_pages_metadatum_spec.rb334spec/policies/alert_management/http_integration_policy_spec.rb335spec/graphql/mutations/terraform/state/unlock_spec.rb336spec/serializers/web_ide_terminal_serializer_spec.rb337spec/models/project_services/irker_service_spec.rb338spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb339spec/policies/application_setting/term_policy_spec.rb340spec/lib/gitlab/diff/line_mapper_spec.rb341spec/serializers/merge_request_sidebar_basic_entity_spec.rb342spec/workers/clusters/cleanup/service_account_worker_spec.rb343spec/views/notify/autodevops_disabled_email.text.erb_spec.rb344spec/lib/gitlab/gitlab_import/project_creator_spec.rb345spec/models/concerns/cacheable_attributes_spec.rb346spec/models/blob_viewer/changelog_spec.rb347spec/models/namespace/traversal_hierarchy_spec.rb348spec/models/import_export_upload_spec.rb349spec/lib/gitlab/import/set_async_jid_spec.rb350spec/initializers/rest-client-hostname_override_spec.rb351spec/models/uploads/local_spec.rb352spec/lib/gitlab/http_io_spec.rb353spec/services/incident_management/create_incident_label_service_spec.rb354spec/graphql/mutations/release_asset_links/create_spec.rb355spec/lib/gitlab/hook_data/issue_builder_spec.rb356spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb357spec/models/atlassian/identity_spec.rb358spec/policies/ci/bridge_policy_spec.rb359spec/models/snippets/repository_storage_move_spec.rb360spec/workers/build_hooks_worker_spec.rb361spec/models/identity_spec.rb362spec/serializers/evidences/release_entity_spec.rb363spec/validators/public_url_validator_spec.rb364spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb365spec/graphql/resolvers/user_notes_count_resolver_spec.rb366spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb367spec/serializers/diff_viewer_entity_spec.rb368spec/services/users/last_push_event_service_spec.rb369spec/workers/flush_counter_increments_worker_spec.rb370spec/models/user_detail_spec.rb371spec/services/wiki_pages/event_create_service_spec.rb372spec/services/projects/prometheus/alerts/update_service_spec.rb373spec/workers/update_project_statistics_worker_spec.rb374spec/helpers/projects/incidents_helper_spec.rb375spec/views/shared/projects/_project.html.haml_spec.rb376spec/lib/gitlab/database/reindexing/index_selection_spec.rb377spec/lib/gitlab/monitor/demo_projects_spec.rb378spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb379spec/models/concerns/nullify_if_blank_spec.rb380spec/lib/gitlab/middleware/read_only_spec.rb381spec/models/namespace_setting_spec.rb382spec/helpers/icons_helper_spec.rb383spec/serializers/group_link/group_group_link_entity_spec.rb384spec/finders/merge_requests/by_approvals_finder_spec.rb385spec/lib/gitlab/view/presenter/base_spec.rb386spec/lib/gitlab/analytics/unique_visits_spec.rb387spec/serializers/linked_project_issue_entity_spec.rb388spec/lib/gitlab/graphql/pagination/connections_spec.rb389spec/lib/gitlab/suggestions/suggestion_set_spec.rb390spec/lib/gitlab/metrics/dashboard/url_spec.rb391spec/tooling/danger/base_linter_spec.rb392spec/lib/api/entities/plan_limit_spec.rb393spec/lib/api/github/entities_spec.rb394spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb395spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb396spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb397spec/lib/gitlab/octokit/middleware_spec.rb398spec/services/keys/destroy_service_spec.rb399spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb400spec/lib/banzai/renderer_spec.rb401spec/finders/projects/prometheus/alerts_finder_spec.rb402spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb403spec/lib/gitlab/ci/status/composite_spec.rb404spec/lib/gitlab/changelog/parser_spec.rb405spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb406spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb407spec/helpers/environment_helper_spec.rb408spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb409spec/lib/gitlab/external_authorization_spec.rb410spec/lib/gitlab/ci/config/external/context_spec.rb411spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb412spec/services/web_hooks/destroy_service_spec.rb413spec/rubocop/cop/migration/datetime_spec.rb414spec/lib/api/entities/ssh_key_spec.rb415spec/lib/gitlab/sourcegraph_spec.rb416spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb417spec/services/prometheus/proxy_service_spec.rb418spec/lib/gitlab/language_data_spec.rb419spec/lib/gitlab/import_export/attributes_finder_spec.rb420spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb421spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb422spec/lib/banzai/filter/spaced_link_filter_spec.rb423spec/lib/gitlab/auth/otp/strategies/forti_authenticator_spec.rb424spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb425spec/workers/pages_domain_removal_cron_worker_spec.rb426spec/lib/gitlab/ci/pipeline_object_hierarchy_spec.rb427spec/lib/gitlab/usage_data/topology_spec.rb428spec/helpers/version_check_helper_spec.rb429spec/tooling/danger/feature_flag_spec.rb430spec/lib/gitlab/elasticsearch/logs/lines_spec.rb431spec/lib/gitlab/config/entry/composable_hash_spec.rb432spec/lib/gitlab/metrics/dashboard/cache_spec.rb433spec/lib/gitlab/import_export/error_spec.rb434spec/rubocop/cop/migration/schedule_async_spec.rb435spec/lib/gitlab/jwt_authenticatable_spec.rb436spec/lib/gitlab/dependency_linker_spec.rb437spec/rubocop/cop/code_reuse/serializer_spec.rb438spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb439spec/tooling/rspec_flaky/listener_spec.rb440spec/lib/mattermost/command_spec.rb441spec/lib/gitlab/gitaly_client/diff_spec.rb442spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb443spec/presenters/packages/nuget/service_index_presenter_spec.rb444spec/rubocop/cop/usage_data/large_table_spec.rb445spec/lib/gitlab/hook_data/group_builder_spec.rb446spec/models/concerns/from_intersect_spec.rb447spec/models/project_services/chat_message/note_message_spec.rb448spec/lib/gitlab/avatar_cache_spec.rb449spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb450spec/services/personal_access_tokens/last_used_service_spec.rb451spec/workers/issue_rebalancing_worker_spec.rb452spec/lib/api/helpers/merge_requests_helpers_spec.rb453spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb454spec/lib/json_web_token/rsa_token_spec.rb455spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb456spec/lib/gitlab/cross_project_access_spec.rb457spec/helpers/time_helper_spec.rb458spec/lib/bulk_imports/pipeline_spec.rb459spec/lib/gitlab/graphql/pagination/keyset/conditions/null_condition_spec.rb460spec/lib/api/entities/projects/repository_storage_move_spec.rb461spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb462spec/finders/admin/plans_finder_spec.rb463spec/lib/gitlab/ci/reports/coverage_reports_spec.rb464spec/lib/gitlab/ci/pipeline/duration_spec.rb465spec/graphql/types/user_type_spec.rb466spec/lib/gitlab/utils/log_limited_array_spec.rb467spec/services/user_project_access_changed_service_spec.rb468spec/models/concerns/optionally_search_spec.rb469spec/lib/gitlab/graphql/generic_tracing_spec.rb470spec/graphql/types/time_type_spec.rb471spec/experiments/members/invite_email_experiment_spec.rb472spec/services/system_notes/base_service_spec.rb473spec/models/concerns/uniquify_spec.rb474spec/lib/gitlab/ci/config/entry/files_spec.rb475spec/graphql/types/alert_management/alert_type_spec.rb476spec/lib/gitlab/config/entry/simplifiable_spec.rb477spec/lib/gitlab/metrics/subscribers/action_view_spec.rb478spec/lib/bitbucket/page_spec.rb479spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb480spec/workers/namespaces/onboarding_pipeline_created_worker_spec.rb481spec/lib/gitlab/rate_limit_helpers_spec.rb482spec/lib/gitlab/import_export/attribute_cleaner_spec.rb483spec/lib/gitlab/config/entry/unspecified_spec.rb484spec/rubocop/cop/rspec/any_instance_of_spec.rb485spec/services/metrics/users_starred_dashboards/delete_service_spec.rb486spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb487spec/serializers/import/fogbugz_provider_repo_entity_spec.rb488spec/policies/concerns/crud_policy_helpers_spec.rb489spec/services/product_analytics/build_graph_service_spec.rb490spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb491spec/graphql/types/grafana_integration_type_spec.rb492spec/lib/gitlab/phabricator_import/conduit/user_spec.rb493spec/graphql/types/release_assets_input_type_spec.rb494spec/lib/gitlab/config/entry/boolean_spec.rb495spec/graphql/types/alert_management/domain_filter_enum_spec.rb496spec/lib/gitlab/checks/timed_logger_spec.rb497spec/graphql/types/release_links_type_spec.rb498spec/support_specs/graphql/field_selection_spec.rb499spec/graphql/types/projects/jira_service_type_spec.rb500spec/lib/gitlab/graphql/query_analyzers/logger_analyzer_spec.rb501spec/serializers/ci/codequality_mr_diff_entity_spec.rb502spec/graphql/types/projects/services_enum_spec.rb503spec/serializers/project_serializer_spec.rb504spec/graphql/types/user_status_type_spec.rb505spec/graphql/types/tree/blob_type_spec.rb506spec/services/projects/prometheus/alerts/destroy_service_spec.rb507spec/graphql/types/design_management/design_version_event_enum_spec.rb508spec/graphql/types/alert_management/severity_enum_spec.rb509spec/graphql/types/container_expiration_policy_cadence_enum_spec.rb510spec/lib/gitlab/phabricator_import/representation/user_spec.rb511spec/models/instance_metadata_spec.rb512spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb513spec/lib/banzai/filter/output_safety_spec.rb514spec/helpers/subscribable_banner_helper_spec.rb515spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb516spec/workers/todos_destroyer/project_private_worker_spec.rb517spec/graphql/types/design_management_type_spec.rb518spec/graphql/types/eventable_type_spec.rb519spec/graphql/resolvers/metadata_resolver_spec.rb520spec/lib/gitlab/git/gitmodules_parser_spec.rb521spec/lib/gitlab/no_cache_headers_spec.rb522Filter specs:523Running specs:524Running all node tests without filter525spec/services/git/branch_push_service_spec.rb526spec/models/concerns/milestoneish_spec.rb527spec/services/projects/overwrite_project_service_spec.rb528spec/lib/gitlab/gpg/commit_spec.rb529spec/models/project_services/jira_service_spec.rb530spec/lib/gitlab/ci/status/build/factory_spec.rb531spec/policies/project_statistics_policy_spec.rb532spec/finders/todos_finder_spec.rb533spec/models/project_services/slack_service_spec.rb534spec/models/ci/job_artifact_spec.rb535spec/lib/banzai/filter/commit_range_reference_filter_spec.rb536spec/models/concerns/counter_attribute_spec.rb537spec/lib/gitlab/reference_extractor_spec.rb538spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb539spec/tasks/gitlab/workhorse_rake_spec.rb540spec/services/merge_requests/ff_merge_service_spec.rb541spec/lib/banzai/reference_parser/base_parser_spec.rb542spec/services/todos/destroy/group_private_service_spec.rb543spec/lib/gitlab/contributions_calendar_spec.rb544spec/finders/environment_names_finder_spec.rb545spec/lib/gitlab/email/message/repository_push_spec.rb546spec/presenters/commit_status_presenter_spec.rb547spec/models/concerns/project_api_compatibility_spec.rb548spec/finders/starred_projects_finder_spec.rb549spec/presenters/projects/settings/deploy_keys_presenter_spec.rb550spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb551spec/models/ci/build_runner_session_spec.rb552spec/models/project_services/jenkins_service_spec.rb553spec/lib/gitlab/background_migration/user_mentions/create_resource_user_mention_spec.rb554spec/models/diff_viewer/base_spec.rb555spec/graphql/mutations/issues/set_due_date_spec.rb556spec/lib/gitlab/import_export/project/object_builder_spec.rb557spec/models/packages/conan/file_metadatum_spec.rb558spec/models/operations/feature_flags/user_list_spec.rb559spec/finders/security/license_compliance_jobs_finder_spec.rb560spec/models/concerns/prometheus_adapter_spec.rb561spec/services/groups/group_links/create_service_spec.rb562spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb563spec/services/post_receive_service_spec.rb564spec/services/upload_service_spec.rb565spec/services/todos/destroy/confidential_issue_service_spec.rb566spec/services/files/update_service_spec.rb567spec/services/gpg_keys/create_service_spec.rb568spec/services/projects/move_project_members_service_spec.rb569spec/services/ci/destroy_expired_job_artifacts_service_spec.rb570spec/lib/gitlab/chat/responder/slack_spec.rb571spec/workers/remove_expired_members_worker_spec.rb572spec/lib/gitlab/slash_commands/issue_move_spec.rb573spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb574spec/services/ci/extract_sections_from_build_trace_service_spec.rb575spec/serializers/web_ide_terminal_entity_spec.rb576spec/services/issues/reorder_service_spec.rb577spec/lib/gitlab/import_export/lfs_restorer_spec.rb578spec/workers/clusters/applications/deactivate_service_worker_spec.rb579spec/lib/gitlab/background_migration/migrate_users_bio_to_user_details_spec.rb580spec/lib/gitlab/auth/saml/user_spec.rb581spec/lib/banzai/reference_parser/milestone_parser_spec.rb582spec/uploaders/import_export_uploader_spec.rb583spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb584spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb585spec/lib/gitlab/diff/diff_refs_spec.rb586spec/lib/gitlab/ci/config/external/file/project_spec.rb587spec/lib/gitlab/import_export/project/export_task_spec.rb588spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb589spec/views/projects/merge_requests/_commits.html.haml_spec.rb590spec/tasks/gitlab/update_templates_rake_spec.rb591spec/helpers/wiki_helper_spec.rb592spec/lib/banzai/reference_parser/external_issue_parser_spec.rb593spec/lib/gitlab/checks/snippet_check_spec.rb594spec/lib/banzai/reference_parser/label_parser_spec.rb595spec/helpers/application_helper_spec.rb596spec/lib/gitlab/ci/status/stage/common_spec.rb597spec/workers/design_management/new_version_worker_spec.rb598spec/lib/gitlab/consul/internal_spec.rb599spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb600spec/lib/api/entities/merge_request_approvals_spec.rb601spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb602spec/lib/gitlab/ci/status/build/common_spec.rb603spec/finders/protected_branches_finder_spec.rb604spec/lib/gitlab/background_migration/update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb605spec/helpers/groups/group_members_helper_spec.rb606spec/services/clusters/applications/schedule_update_service_spec.rb607spec/lib/gitlab/email/smime/signer_spec.rb608spec/services/projects/batch_open_issues_count_service_spec.rb609spec/lib/gitlab/git/patches/commit_patches_spec.rb610spec/finders/packages/conan/package_finder_spec.rb611spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb612spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb613spec/lib/gitlab/x509/signature_spec.rb614spec/graphql/resolvers/snippets_resolver_spec.rb615spec/services/users/update_service_spec.rb616spec/views/projects/commits/_commit.html.haml_spec.rb617spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb618spec/lib/gitlab/slash_commands/issue_search_spec.rb619spec/workers/merge_request_cleanup_refs_worker_spec.rb620spec/lib/gitlab/usage/metric_spec.rb621spec/serializers/trigger_variable_entity_spec.rb622spec/lib/gitlab/database/count/exact_count_strategy_spec.rb623spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb624spec/lib/gitlab/git_access_project_spec.rb625spec/lib/gitlab/import/merge_request_creator_spec.rb626spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb627spec/services/award_emojis/collect_user_emoji_service_spec.rb628spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb629spec/services/boards/create_service_spec.rb630spec/policies/clusters/instance_policy_spec.rb631spec/tooling/danger/helper_spec.rb632spec/presenters/project_member_presenter_spec.rb633spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb634spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb635spec/finders/ci/variables_finder_spec.rb636spec/lib/gitlab/kubernetes/node_spec.rb637spec/policies/service_policy_spec.rb638spec/policies/terraform/state_policy_spec.rb639spec/services/protected_branches/update_service_spec.rb640spec/lib/gitlab/bare_repository_import/repository_spec.rb641spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb642spec/models/issue_email_participant_spec.rb643spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb644spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb645spec/models/project_pages_metadatum_spec.rb646spec/policies/alert_management/http_integration_policy_spec.rb647spec/graphql/mutations/terraform/state/unlock_spec.rb648spec/serializers/web_ide_terminal_serializer_spec.rb649spec/models/project_services/irker_service_spec.rb650spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb651spec/policies/application_setting/term_policy_spec.rb652spec/lib/gitlab/diff/line_mapper_spec.rb653spec/serializers/merge_request_sidebar_basic_entity_spec.rb654spec/workers/clusters/cleanup/service_account_worker_spec.rb655spec/views/notify/autodevops_disabled_email.text.erb_spec.rb656spec/lib/gitlab/gitlab_import/project_creator_spec.rb657spec/models/concerns/cacheable_attributes_spec.rb658spec/models/blob_viewer/changelog_spec.rb659spec/models/namespace/traversal_hierarchy_spec.rb660spec/models/import_export_upload_spec.rb661spec/lib/gitlab/import/set_async_jid_spec.rb662spec/initializers/rest-client-hostname_override_spec.rb663spec/models/uploads/local_spec.rb664spec/lib/gitlab/http_io_spec.rb665spec/services/incident_management/create_incident_label_service_spec.rb666spec/graphql/mutations/release_asset_links/create_spec.rb667spec/lib/gitlab/hook_data/issue_builder_spec.rb668spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb669spec/models/atlassian/identity_spec.rb670spec/policies/ci/bridge_policy_spec.rb671spec/models/snippets/repository_storage_move_spec.rb672spec/workers/build_hooks_worker_spec.rb673spec/models/identity_spec.rb674spec/serializers/evidences/release_entity_spec.rb675spec/validators/public_url_validator_spec.rb676spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb677spec/graphql/resolvers/user_notes_count_resolver_spec.rb678spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb679spec/serializers/diff_viewer_entity_spec.rb680spec/services/users/last_push_event_service_spec.rb681spec/workers/flush_counter_increments_worker_spec.rb682spec/models/user_detail_spec.rb683spec/services/wiki_pages/event_create_service_spec.rb684spec/services/projects/prometheus/alerts/update_service_spec.rbKnapsack report generator started!685WARNING: `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)>'.686Run options:687 include {:focus=>true}688 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}689All examples were filtered out; ignoring {:focus=>true}690==> Setting up GitLab Workhorse...691 GitLab Workhorse set up in 65.529847455 seconds...692==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...693 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.037460185 seconds...694Git::BranchPushService695 Push branches696 new branch697 is expected to be truthy698 calls the after_push_commit hook699 calls the after_create_branch hook700 existing branch701 is expected to be truthy702 calls the after_push_commit hook703 rm branch704 is expected to be truthy705 calls the after_push_commit hook706 calls the after_remove_branch hook707 Pipelines708 creates a pipeline with the right parameters709 creates a new pipeline710 when pipeline has errors711 reports an error712 with push options713 sanitizes push options714 when .gitlab-ci.yml file is invalid715 persists an error pipeline716 Updates merge requests717 when pushing a new branch for the first time718 Updates git attributes719 for default branch720 calls the copy attributes method for the first push to the default branch721 calls the copy attributes method for changes to the default branch722 for non-default branch723 does not call copy attributes method724 Webhooks725 execute webhooks726 when pushing a branch for the first time727 when pushing a branch for the first time with default branch protection disabled728 when pushing a branch for the first time with default branch protection set to 'developers can push'729 when pushing a branch for the first time with an existing branch permission configured730 when pushing a branch for the first time with default branch protection set to 'developers can merge'731 when pushing new commits to existing branch732 cross-reference notes733 creates a note if a pushed commit mentions an issue734 only creates a cross-reference note if one doesn't already exist735 defaults to the pushing user if the commit's author is not known736 finds references in the first push to a non-default branch737 issue metrics738 while saving the 'first_mentioned_in_commit_at' metric for an issue739 sets the metric for referenced issues740 does not set the metric for non-referenced issues741 closing issues from pushed commits containing a closing reference742 to default branches743 closes issues744 adds a note indicating that the issue is now closed745 doesn't create additional cross-reference notes746 to non-default branches747 creates cross-reference notes748 doesn't close issues749 for jira issue tracker750 mentioning an issue751 initiates one api call to jira server to mention the issue752 closing an issue753 using right markdown754 initiates one api call to jira server to close the issue755 initiates one api call to jira server to comment on the issue756 using internal issue reference757 when internal issues are disabled758 does not initiates one api call to jira server to close the issue759 does not initiates one api call to jira server to comment on the issue760 when internal issues are enabled761 initiates one api call to jira server to close the jira issue762 initiates one api call to jira server to comment on the jira issue763 closes the internal issue764 adds a note indicating that the issue is now closed765 empty project766 push to first branch updates HEAD767 housekeeping768 does not perform housekeeping when not needed769 increments the push counter770 when housekeeping is needed771 performs housekeeping772 does not raise an exception773 CI environments774 create branch775 does nothing776 update branch777 does nothing778 delete branch779 stops environments780 artifacts781 create branch782 does nothing783 update branch784 does nothing785 delete branch786 unlocks artifacts787 Hooks788 run on a branch789 delegates to Git::BranchHooksService790 run on a tag791 does nothing792 Jira Connect hooks793 with a Jira subscription794 branch name contains Jira issue key795 behaves like enqueues Jira sync worker796 aggregate_failures797 commit message contains Jira issue key798 behaves like enqueues Jira sync worker799 aggregate_failures800 branch name and commit message does not contain Jira issue key801 behaves like does not enqueue Jira sync worker802 is expected not to change `Array#size`803 without a Jira subscription804 behaves like does not enqueue Jira sync worker805 is expected not to change `Array#size`806Milestone Milestoneish807 #sorted_issues808 sorts issues by label priority809 limits issue count and keeps the ordering810 attributes visibility811 #issue_participants_visible_by_user812 visibility: :public, user_role: nil, result: [:member]813 returns the proper participants814 visibility: :public, user_role: :non_member, result: [:member]815 returns the proper participants816 visibility: :public, user_role: :guest, result: [:member]817 returns the proper participants818 visibility: :public, user_role: :member, result: [:member, :assignee]819 returns the proper participants820 visibility: :internal, user_role: nil, result: []821 returns the proper participants822 visibility: :internal, user_role: :non_member, result: [:member]823 returns the proper participants824 visibility: :internal, user_role: :guest, result: [:member]825 returns the proper participants826 visibility: :internal, user_role: :member, result: [:member, :assignee]827 returns the proper participants828 visibility: :private, user_role: nil, result: []829 returns the proper participants830 visibility: :private, user_role: :non_member, result: []831 returns the proper participants832 visibility: :private, user_role: :guest, result: [:member]833 returns the proper participants834 visibility: :private, user_role: :member, result: [:member, :assignee]835 returns the proper participants836 #issue_labels_visible_by_user837 visibility: :public, user_role: nil, result: [:label1]838 returns the proper participants839 visibility: :public, user_role: :non_member, result: [:label1]840 returns the proper participants841 visibility: :public, user_role: :guest, result: [:label1]842 returns the proper participants843 visibility: :public, user_role: :member, result: [:label1, :label2]844 returns the proper participants845 visibility: :internal, user_role: nil, result: []846 returns the proper participants847 visibility: :internal, user_role: :non_member, result: [:label1]848 returns the proper participants849 visibility: :internal, user_role: :guest, result: [:label1]850 returns the proper participants851 visibility: :internal, user_role: :member, result: [:label1, :label2]852 returns the proper participants853 visibility: :private, user_role: nil, result: []854 returns the proper participants855 visibility: :private, user_role: :non_member, result: []856 returns the proper participants857 visibility: :private, user_role: :guest, result: [:label1]858 returns the proper participants859 visibility: :private, user_role: :member, result: [:label1, :label2]860 returns the proper participants861 #sorted_merge_requests862 sorts merge requests by label priority863 #merge_requests_visible_to_user864 when project is private865 does not return any merge request for a non member866 returns milestone merge requests for a member867 when project is public868 when merge requests are available to anyone869 returns milestone merge requests for a non member870 when merge requests are available to project members871 does not return any merge request for a non member872 returns milestone merge requests for a member873 when milestone is at parent level group874 does not return any merge request for a non member875 returns milestone merge requests for a member876 #complete?877 returns false when has items opened878 returns true when all items are closed879 #percent_complete880 division by zero881 is expected to eq 0882 #closed_issues_count883 counts all closed issues including confidential884 #total_issues_count885 counts all issues including confidential886 #remaining_days887 shows 0 if no due date888 shows 0 if expired889 shows correct remaining days890 #elapsed_days891 shows 0 if no start_date set892 shows 0 if start_date is a future893 shows correct amount of days894 #total_time_spent895 calculates total time spent896 includes merge request time spent897 #human_total_time_spent898 returns nil if no time has been spent899 #total_time_estimate900 calculates total estimate901 includes merge request time estimate902 #human_total_time_estimate903 returns nil if no time has been spent904Projects::OverwriteProjectService905 #execute906 when project does not have any relation907 behaves like overwrite actions908 moves deploy keys909 moves notification settings910 moves users stars911 moves project group links912 moves memberships and authorizations913 removes the original project914 renames the project915 moves lfs objects relationships916 is expected to eq 3917 when project with elements918 behaves like overwrite actions919 moves deploy keys920 moves notification settings921 moves users stars922 moves project group links923 moves memberships and authorizations924 removes the original project925 renames the project926 moves lfs objects relationships927 is expected to eq 3928 forks929 when moving a root forked project930 moves the descendant forks931 updates the fork network932 when moving a intermediate forked project933 moves the descendant forks934 moves the ascendant fork935 does not update fork network936 if an exception is raised937 rollbacks changes938 tries to restore the original project repositories939Gitlab::Gpg::Commit940 #signature941 unsigned commit942 returns nil943 invalid signature944 returns nil945 known key946 user matches the key uid947 user email matches the email committer948 returns a valid signature949 behaves like returns the cached signature on second call950 returns the cached signature on second call951 read-only mode952 does not create a cached signature953 valid key signed using recent version of Gnupg954 returns a valid signature955 valid key signed using older version of Gnupg956 returns a valid signature957 commit signed with a subkey958 returns a valid signature959 behaves like returns the cached signature on second call960 returns the cached signature on second call961 user email does not match the committer email, but is the same user962 returns an invalid signature963 behaves like returns the cached signature on second call964 returns the cached signature on second call965 user email does not match the committer email966 returns an invalid signature967 behaves like returns the cached signature on second call968 returns the cached signature on second call969 user does not match the key uid970 returns an invalid signature971 behaves like returns the cached signature on second call972 returns the cached signature on second call973 unknown key974 returns an invalid signature975 behaves like returns the cached signature on second call976 returns the cached signature on second call977 multiple commits with signatures978 does an aggregated sql request instead of 2 separate ones979JiraService980 #options981 sets the URL properly982 leaves out trailing slashes in context983 provides additional cookies to allow basic auth with oracle webgate984 username with trailing whitespaces985 leaves out trailing whitespaces in username986 using api URL987 leaves out trailing slashes in context988 #fields989 includes transition help link990 Associations991 is expected to belong to project required:992 is expected to have one service_hook993 .reference_pattern994 key: "#123", result: ""995 is expected to eq ""996 key: "1#23#12", result: ""997 is expected to eq ""998 key: "JIRA-1234A", 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: "JIRA-1234_some_tag", result: "JIRA-1234"1003 is expected to eq "JIRA-1234"1004 key: "EXT_EXT-1234", result: "EXT_EXT-1234"1005 is expected to eq "EXT_EXT-1234"1006 key: "EXT3_EXT-1234", result: "EXT3_EXT-1234"1007 is expected to eq "EXT3_EXT-1234"1008 key: "3EXT_EXT-1234", result: ""1009 is expected to eq ""1010 #create1011 does not store data into properties1012 stores data in data_fields correctly1013 when loading serverInfo1014 Cloud instance1015 is detected1016 Server instance1017 is detected1018 Unknown instance1019 is detected1020 overriding properties1021 when data are stored in properties1022 behaves like handles jira fields1023 reading data1024 reads data correctly1025 #update1026 basic update1027 leaves properties field emtpy1028 stores updated data in jira_tracker_data table1029 when updating the url, api_url, username, or password1030 updates deployment type1031 calls serverInfo for url1032 calls serverInfo for api_url1033 calls serverInfo for username1034 calls serverInfo for password1035 when not updating the url, api_url, username, or password1036 does not update deployment type1037 when not allowed to test an instance or group1038 does not update deployment type1039 stored password invalidation1040 when a password was previously set1041 when only web url present1042 resets password if url changed1043 does not reset password if url "changed" to the same url as before1044 resets password if url not changed but api url added1045 does not reset password if new url is set together with password, even if it's the same password1046 resets password if url changed, even if setter called multiple times1047 does not reset password if username changed1048 does not reset password if password changed1049 does not reset password if the password is touched and same as before1050 when both web and api url present1051 resets password if api url changed1052 does not reset password if url changed1053 resets password if api url set to empty1054 when no password was previously set1055 saves password if new url is set together with password1056 when data are stored in separated fields1057 behaves like handles jira fields1058 reading data1059 reads data correctly1060 #update1061 basic update1062 leaves properties field emtpy1063 stores updated data in jira_tracker_data table1064 when updating the url, api_url, username, or password1065 updates deployment type1066 calls serverInfo for url1067 calls serverInfo for api_url1068 calls serverInfo for username1069 calls serverInfo for password1070 when not updating the url, api_url, username, or password1071 does not update deployment type1072 when not allowed to test an instance or group1073 does not update deployment type1074 stored password invalidation1075 when a password was previously set1076 when only web url present1077 resets password if url changed1078 does not reset password if url "changed" to the same url as before1079 resets password if url not changed but api url added1080 does not reset password if new url is set together with password, even if it's the same password1081 resets password if url changed, even if setter called multiple times1082 does not reset password if username changed1083 does not reset password if password changed1084 does not reset password if the password is touched and same as before1085 when both web and api url present1086 resets password if api url changed1087 does not reset password if url changed1088 resets password if api url set to empty1089 when no password was previously set1090 saves password if new url is set together with password1091 when data are stored in both properties and separated fields1092 behaves like handles jira fields1093 reading data1094 reads data correctly1095 #update1096 basic update1097 leaves properties field emtpy1098 stores updated data in jira_tracker_data table1099 when updating the url, api_url, username, or password1100 updates deployment type1101 calls serverInfo for url1102 calls serverInfo for api_url1103 calls serverInfo for username1104 calls serverInfo for password1105 when not updating the url, api_url, username, or password1106 does not update deployment type1107 when not allowed to test an instance or group1108 does not update deployment type1109 stored password invalidation1110 when a password was previously set1111 when only web url present1112 resets password if url changed1113 does not reset password if url "changed" to the same url as before1114 resets password if url not changed but api url added1115 does not reset password if new url is set together with password, even if it's the same password1116 resets password if url changed, even if setter called multiple times1117 does not reset password if username changed1118 does not reset password if password changed1119 does not reset password if the password is touched and same as before1120 when both web and api url present1121 resets password if api url changed1122 does not reset password if url changed1123 resets password if api url set to empty1124 when no password was previously set1125 saves password if new url is set together with password1126 #find_issue1127 call the Jira API to get the issue1128 with options1129 calls the Jira API with the options to get the issue1130 #close_issue1131 when resource is a merge request1132 behaves like close_issue1133 calls Jira API1134 tracks usage1135 does not fail if remote_link.all on issue returns nil1136 creates Remote Link reference in Jira for comment1137 does not send comment or remote links to issues already closed1138 does not send comment or remote links to issues with unknown resolution1139 references the GitLab commit1140 references the GitLab commit1141 logs exception when transition id is not valid1142 calls the api with jira_issue_transition_id1143 when "comment_on_event_enabled" is set to false1144 creates Remote Link reference but does not create comment1145 when Remote Link already exists1146 does not create comment1147 when using multiple transition ids1148 calls the api with transition ids separated by comma1149 calls the api with transition ids separated by semicolon1150 when a transition fails1151 stops the sequence1152 when resource is a commit1153 behaves like close_issue1154 calls Jira API1155 tracks usage1156 does not fail if remote_link.all on issue returns nil1157 creates Remote Link reference in Jira for comment1158 does not send comment or remote links to issues already closed1159 does not send comment or remote links to issues with unknown resolution1160 references the GitLab commit1161 references the GitLab commit1162 logs exception when transition id is not valid1163 calls the api with jira_issue_transition_id1164 when "comment_on_event_enabled" is set to false1165 creates Remote Link reference but does not create comment1166 when Remote Link already exists1167 does not create comment1168 when using multiple transition ids1169 calls the api with transition ids separated by comma1170 calls the api with transition ids separated by semicolon1171 when a transition fails1172 stops the sequence1173 #create_cross_reference_note1174 when resource is a commit1175 when disabled1176 is expected to eq "Events for commits are disabled."1177 when enabled1178 behaves like creates a comment on Jira1179 creates a comment on Jira1180 tracks usage1181 when resource is a merge request1182 when disabled1183 is expected to eq "Events for merge requests are disabled."1184 when enabled1185 behaves like creates a comment on Jira1186 creates a comment on Jira1187 tracks usage1188 #test1189 when the test succeeds1190 gets Jira project with URL when API URL not set1191 gets Jira project with API URL if set1192 when the test fails1193 returns result with the error1194 project and issue urls1195 removes trailing slashes from url1196 when gitlab.yml was initialized1197 is prepopulated with the settings1198 favicon urls1199 includes the standard favicon1200DEPRECATION 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 call1201/usr/local/lib/ruby/2.7.0/fileutils.rb:206: warning: The called method `mkdir_p' is defined here1202 (called from cache! at /builds/gitlab-org/gitlab/app/uploaders/object_storage.rb:369)1203 includes returns the custom favicon1204 generating external URLs1205 #issues_url1206 handles trailing slashes1207 #new_issue_url1208 handles trailing slashes1209Gitlab::Ci::Status::Build::Factory1210 when build is successful1211 matches correct core status1212 matches correct extended statuses1213 fabricates a retryable build status1214 fabricates status with correct details1215 when build is erased1216 matches correct core status1217 matches correct extended statuses1218 fabricates a retryable build status1219 fabricates status with correct details1220 when build is failed1221 when build is not allowed to fail1222 matches correct core status1223 matches correct extended statuses1224 fabricates a failed build status1225 fabricates status with correct details1226 when build is allowed to fail1227 matches correct core status1228 matches correct extended statuses1229 fabricates a failed but allowed build status1230 fabricates status with correct details1231 when build has unmet prerequisites1232 matches correct core status1233 matches correct extended statuses1234 fabricates a failed with unmet prerequisites build status1235 fabricates status with correct details1236 when build is a canceled1237 matches correct core status1238 matches correct extended statuses1239 fabricates a retryable build status1240 fabricates status with correct details1241 when build is running1242 matches correct core status1243 matches correct extended statuses1244 fabricates a canceable build status1245 fabricates status with correct details1246 when build is pending1247 matches correct core status1248 matches correct extended statuses1249 fabricates a cancelable build status1250 fabricates status with correct details1251 when build is skipped1252 matches correct core status1253 matches correct extended statuses1254 fabricates a skipped build status1255 fabricates status with correct details1256 when build is a manual action1257 when build is a play action1258 matches correct core status1259 matches correct extended statuses1260 fabricates action detailed status1261 fabricates status with correct details1262 when user has ability to play action1263 fabricates status that has action1264 when user does not have ability to play action1265 fabricates status that has no action1266 when build is an environment stop action1267 matches correct core status1268 matches correct extended statuses1269 fabricates action detailed status1270 when user is not allowed to execute manual action1271 fabricates status with correct details1272 when build is a delayed action1273 matches correct core status1274 matches correct extended statuses1275 fabricates action detailed status1276 fabricates status with correct details1277 when user has ability to play action1278 fabricates status that has action1279 when user does not have ability to play action1280 fabricates status that has no action1281ProjectStatisticsPolicy1282 #rules1283 project_type: :public, user_type: :unauthenticated, outcome: false1284 is expected to eq false1285 when the user is external1286 is expected to eq false1287 project_type: :public, user_type: :non_member, outcome: false1288 is expected to eq false1289 when the user is external1290 is expected to eq false1291 project_type: :public, user_type: :guest, outcome: false1292 is expected to eq false1293 when the user is external1294 is expected to eq false1295 project_type: :public, user_type: :reporter, outcome: true1296 is expected to eq true1297 when the user is external1298 is expected to eq true1299 project_type: :public, user_type: :developer, outcome: true1300 is expected to eq true1301 when the user is external1302 is expected to eq true1303 project_type: :public, user_type: :maintainer, outcome: true1304 is expected to eq true1305 when the user is external1306 is expected to eq true1307 project_type: :private, user_type: :unauthenticated, outcome: false1308 is expected to eq false1309 when the user is external1310 is expected to eq false1311 project_type: :private, user_type: :non_member, outcome: false1312 is expected to eq false1313 when the user is external1314 is expected to eq false1315 project_type: :private, user_type: :guest, outcome: false1316 is expected to eq false1317 when the user is external1318 is expected to eq false1319 project_type: :private, user_type: :reporter, outcome: true1320 is expected to eq true1321 when the user is external1322 is expected to eq true1323 project_type: :private, user_type: :developer, outcome: true1324 is expected to eq true1325 when the user is external1326 is expected to eq true1327 project_type: :private, user_type: :maintainer, outcome: true1328 is expected to eq true1329 when the user is external1330 is expected to eq true1331 project_type: :internal, user_type: :unauthenticated, outcome: false1332 is expected to eq false1333 when the user is external1334 is expected to eq false1335 project_type: :internal, user_type: :non_member, outcome: false1336 is expected to eq false1337 when the user is external1338 is expected to eq false1339 project_type: :internal, user_type: :guest, outcome: false1340 is expected to eq false1341 when the user is external1342 is expected to eq false1343 project_type: :internal, user_type: :reporter, outcome: true1344 is expected to eq true1345 when the user is external1346 is expected to eq true1347 project_type: :internal, user_type: :developer, outcome: true1348 is expected to eq true1349 when the user is external1350 is expected to eq true1351 project_type: :internal, user_type: :maintainer, outcome: true1352 is expected to eq true1353 when the user is external1354 is expected to eq true1355TodosFinder1356 #execute1357 #execute1358 returns no todos if user is nil1359 filtering1360 returns correct todos when filtered by a project1361 returns correct todos when filtered by a group1362 when filtering by type1363 returns todos by type when filtered by a single type1364 returns todos by type when filtered by multiple types1365 returns all todos when type is nil1366 returns all todos when type is an empty collection1367 returns all todos when type is blank1368 returns todos by type when blank type is in type collection1369 returns todos of all types when only blanks are in a collection1370 returns all todos when no type param1371 raises an argument error when invalid type is passed1372 when filtering for actions1373 by action ids1374 returns the expected todos1375 returns the expected todos when filtering for multiple action ids1376 by action names1377 returns the expected todos1378 returns the expected todos when filtering for multiple action names1379 when filtering by author1380 returns correct todos when filtering by an author1381 querying for multiple authors1382 returns the correct todo items1383 by groups1384 with subgroups1385 returns todos from subgroups when filtered by a group1386 filtering for multiple groups1387 returns the expected groups1388 by state1389 returns the expected items when no state is provided1390 returns the expected items when a state is provided1391 returns the expected items when multiple states are provided1392 by project1393 returns the expected todos for one project1394 returns the expected todos for many projects1395 when filtering by target id1396 returns the expected todos for the target1397 returns the expected todos for multiple target ids1398 returns the expected todos for empty target id collection1399 external authorization1400 behaves like a finder with external authorization service1401 finds the subject1402 with an external authorization service1403 does not include the subject when no project was given1404 includes the subject when a project id was given1405 #sort1406 sorts by priority1407 by date1408 sorts with oldest created first1409 sorts with newest created first1410 .todo_types1411 returns the expected types1412 #any_for_target?1413 returns true if there are any todos for the given target1414 returns false if there are no todos for the given target1415SlackService1416 behaves like slack or mattermost notifications1417 Associations1418 is expected to belong to project required:1419 is expected to have one service_hook1420 Validations1421 when service is active1422 is expected to validate that :webhook cannot be empty/falsy1423 behaves like issue tracker service URL attribute1424 is expected to allow :webhook to be ‹"https://example.com"›1425 is expected not to allow :webhook to be ‹"example.com"›1426 is expected not to allow :webhook to be ‹"ftp://example.com"›1427 is expected not to allow :webhook to be ‹"herp-and-derp"›1428 when service is inactive1429 is expected not to validate that :webhook cannot be empty/falsy1430 #execute1431 with username for slack configured1432 uses the username as an option1433 push events1434 calls Slack API for push events1435 with event channel1436 uses the right channel for push event1437 issue events1438 calls Slack API for issue events1439 whith event channel1440 uses the right channel for issue event1441 for confidential issues1442 falls back to issue channel1443 and confidential_issue_channel is defined1444 uses the confidential issue channel when it is defined1445 merge request events1446 calls Slack API for merge requests events1447 with event channel1448 uses the right channel for merge request event1449 wiki page events1450 calls Slack API for wiki page events1451 with event channel1452 uses the right channel for wiki event1453 deployment events1454 calls Slack API for deployment events1455 note event1456 calls Slack API for note events1457 with event channel1458 uses the right channel1459 for confidential notes1460 falls back to note channel1461 and confidential_note_channel is defined1462 uses confidential channel1463 Push events1464 on default branch1465 pushing tags1466 behaves like triggered Slack service1467 notifies about push events1468 notification enabled only for default branch1469 behaves like triggered Slack service1470 notifies about push events1471 notification enabled only for protected branches1472 behaves like untriggered Slack service1473 notifies about push events1474 notification enabled only for default and protected branches1475 behaves like triggered Slack service1476 notifies about push events1477 notification enabled for all branches1478 behaves like triggered Slack service1479 notifies about push events1480 on a protected branch1481 pushing tags1482 behaves like triggered Slack service1483 notifies about push events1484 notification enabled only for default branch1485 behaves like untriggered Slack service1486 notifies about push events1487 notification enabled only for protected branches1488 behaves like triggered Slack service1489 notifies about push events1490 notification enabled only for default and protected branches1491 behaves like triggered Slack service1492 notifies about push events1493 notification enabled for all branches1494 behaves like triggered Slack service1495 notifies about push events1496 on a protected branch with protected branches defined using wildcards1497 pushing tags1498 behaves like triggered Slack service1499 notifies about push events1500 notification enabled only for default branch1501 behaves like untriggered Slack service1502 notifies about push events1503 notification enabled only for protected branches1504 behaves like triggered Slack service1505 notifies about push events1506 notification enabled only for default and protected branches1507 behaves like triggered Slack service1508 notifies about push events1509 notification enabled for all branches1510 behaves like triggered Slack service1511 notifies about push events1512 on a neither protected nor default branch1513 pushing tags1514 behaves like triggered Slack service1515 notifies about push events1516 notification enabled only for default branch1517 behaves like untriggered Slack service1518 notifies about push events1519 notification enabled only for protected branches1520 behaves like untriggered Slack service1521 notifies about push events1522 notification enabled only for default and protected branches1523 behaves like untriggered Slack service1524 notifies about push events1525 notification enabled for all branches1526 behaves like triggered Slack service1527 notifies about push events1528 Note events1529 when commit comment event executed1530 behaves like triggered Slack service1531 notifies about commit comment events1532 when merge request comment event executed1533 behaves like triggered Slack service1534 notifies about merge request comment events1535 when issue comment event executed1536 behaves like triggered Slack service1537 notifies about issue comment events1538 when snippet comment event executed1539 behaves like triggered Slack service1540 notifies about snippet comment events1541 Pipeline events1542 with succeeded pipeline1543 with default to notify_only_broken_pipelines1544 behaves like untriggered Slack service1545 notifies about pipeline events1546 with setting notify_only_broken_pipelines to false1547 behaves like triggered Slack service1548 notifies about pipeline events1549 with failed pipeline1550 on default branch1551 notification enabled only for default branch1552 behaves like triggered Slack service1553 notifies about pipeline events1554 notification enabled only for protected branches1555 behaves like untriggered Slack service1556 notifies about pipeline events1557 notification enabled only for default and protected branches1558 behaves like triggered Slack service1559 notifies about pipeline events1560 notification enabled for all branches1561 behaves like triggered Slack service1562 notifies about pipeline events1563 on a protected branch1564 notification enabled only for default branch1565 behaves like untriggered Slack service1566 notifies about pipeline events1567 notification enabled only for protected branches1568 behaves like triggered Slack service1569 notifies about pipeline events1570 notification enabled only for default and protected branches1571 behaves like triggered Slack service1572 notifies about pipeline events1573 notification enabled for all branches1574 behaves like triggered Slack service1575 notifies about pipeline events1576 on a protected branch with protected branches defined usin wildcards1577 notification enabled only for default branch1578 behaves like untriggered Slack service1579 notifies about pipeline events1580 notification enabled only for protected branches1581 behaves like triggered Slack service1582 notifies about pipeline events1583 notification enabled only for default and protected branches1584 behaves like triggered Slack service1585 notifies about pipeline events1586 notification enabled for all branches1587 behaves like triggered Slack service1588 notifies about pipeline events1589 on a neither protected nor default branch1590 notification enabled only for default branch1591 behaves like untriggered Slack service1592 notifies about pipeline events1593 notification enabled only for protected branches1594 behaves like untriggered Slack service1595 notifies about pipeline events1596 notification enabled only for default and protected branches1597 behaves like untriggered Slack service1598 notifies about pipeline events1599 notification enabled for all branches1600 behaves like triggered Slack service1601 notifies about pipeline events1602Ci::JobArtifact1603 is expected to respond to #file1604 is expected to respond to #created_at1605 is expected to respond to #updated_at1606 is expected to delegate #open to the #file object1607 is expected to delegate #exists? to the #file object1608 Associations1609 is expected to belong to project required:1610 is expected to belong to job required:1611 behaves like having unique enum values1612 has unique values in "file_format"1613 has unique values in "file_type"1614 has unique values in "file_location"1615 behaves like UpdateProjectStatistics1616 is expected to be a new record1617 when feature flag efficient_counter_attribute is disabled1618 when creating1619 updates the project statistics1620 schedules a namespace statistics worker1621 when updating1622 updates project statistics1623 schedules a namespace statistics worker1624 avoids N + 1 queries1625 when destroying1626 updates the project statistics1627 schedules a namespace statistics worker1628 when it is destroyed from the project level1629 does not update the project statistics1630 does not schedule a namespace statistics worker1631 when statistic is a counter attribute1632 when creating1633 stores pending increments for async update1634 when updating1635 stores pending increments for async update1636 avoids N + 1 queries1637 when destroying1638 stores pending increment for async update1639 when it is destroyed from the project level1640 does not update the project statistics1641 does not schedule a namespace statistics worker1642 .not_expired1643 returns artifacts that have not expired1644 .with_reports1645 is expected to be empty1646 when there are reports1647 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>1648 .test_reports1649 when there is a test report1650 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>]1651 when there are no test reports1652 is expected to be empty1653 .accessibility_reports1654 when there is an accessibility report1655 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>]1656 when there are no accessibility report1657 is expected to be empty1658 .coverage_reports1659 when there is a coverage report1660 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>]1661 when there are no coverage reports1662 is expected to be empty1663 .codequality_reports1664 when there is a codequality report1665 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>]1666 when there are no codequality reports1667 is expected to be empty1668 .terraform_reports1669 when there is a terraform report1670 return the job artifact1671 when there are no terraform reports1672 return the an empty array1673 .associated_file_types_for1674 file_type: "codequality", result: ["codequality"]1675 is expected to eq ["codequality"]1676 file_type: "quality", result: nil1677 is expected to eq nil1678 .erasable1679 when there is an erasable artifact1680 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>]1681 when there are no erasable artifacts1682 is expected to be empty1683 .downloadable1684 filters for downloadable artifacts1685 .archived_trace_exists_for?1686 when the specified job_id exists1687 is expected to be truthy1688 when the job does have archived trace1689 is expected to be falsy1690 when the specified job_id does not exist1691 is expected to be falsy1692 .for_sha1693 returns job artifacts for a given pipeline sha1694 .for_job_name1695 returns job artifacts for a given job name1696 .unlocked1697 with locked pipelines1698 returns an empty array1699 with unlocked pipelines1700 returns the artifact1701 .order_expired_desc1702 returns ordered artifacts1703 callbacks1704 #schedule_background_upload1705 when object storage is disabled1706 does not schedule the migration1707 when object storage is enabled1708 when background upload is enabled1709 schedules the model for migration1710 when background upload is disabled1711 schedules the model for migration1712 creating the artifact1713 sets the size from the file size1714 updating the artifact file1715 updates the artifact size1716 validates if file format is supported1717 when license_management is supported1718 is expected to be valid1719 when license_management is not supported1720 is expected not to be valid1721 validates file format1722 when archive type with zip format1723 is expected to be valid1724 when archive type without format specification1725 is expected not to be valid1726 when archive type with other formats1727 is expected not to be valid1728 is expected not to be valid1729 when metadata type with gzip format1730 is expected to be valid1731 when metadata type without format specification1732 is expected not to be valid1733 when metadata type with other formats1734 is expected not to be valid1735 is expected not to be valid1736 when junit type with gzip format1737 is expected to be valid1738 when junit type without format specification1739 is expected not to be valid1740 when junit type with other formats1741 is expected not to be valid1742 is expected not to be valid1743 when metrics type with gzip format1744 is expected to be valid1745 when metrics type without format specification1746 is expected not to be valid1747 when metrics type with other formats1748 is expected not to be valid1749 is expected not to be valid1750 when metrics_referee type with gzip format1751 is expected to be valid1752 when metrics_referee type without format specification1753 is expected not to be valid1754 when metrics_referee type with other formats1755 is expected not to be valid1756 is expected not to be valid1757 when network_referee type with gzip format1758 is expected to be valid1759 when network_referee type without format specification1760 is expected not to be valid1761 when network_referee type with other formats1762 is expected not to be valid1763 is expected not to be valid1764 when dotenv type with gzip format1765 is expected to be valid1766 when dotenv type without format specification1767 is expected not to be valid1768 when dotenv type with other formats1769 is expected not to be valid1770 is expected not to be valid1771 when cobertura type with gzip format1772 is expected to be valid1773 when cobertura type without format specification1774 is expected not to be valid1775 when cobertura type with other formats1776 is expected not to be valid1777 is expected not to be valid1778 when cluster_applications type with gzip format1779 is expected to be valid1780 when cluster_applications type without format specification1781 is expected not to be valid1782 when cluster_applications type with other formats1783 is expected not to be valid1784 is expected not to be valid1785 when lsif type with zip format1786 is expected to be valid1787 when lsif type without format specification1788 is expected not to be valid1789 when lsif type with other formats1790 is expected not to be valid1791 is expected not to be valid1792 when sast type with raw format1793 is expected to be valid1794 when sast type without format specification1795 is expected not to be valid1796 when sast type with other formats1797 is expected not to be valid1798 is expected not to be valid1799 when secret_detection type with raw format1800 is expected to be valid1801 when secret_detection type without format specification1802 is expected not to be valid1803 when secret_detection type with other formats1804 is expected not to be valid1805 is expected not to be valid1806 when dependency_scanning type with raw format1807 is expected to be valid1808 when dependency_scanning type without format specification1809 is expected not to be valid1810 when dependency_scanning type with other formats1811 is expected not to be valid1812 is expected not to be valid1813 when container_scanning type with raw format1814 is expected to be valid1815 when container_scanning type without format specification1816 is expected not to be valid1817 when container_scanning type with other formats1818 is expected not to be valid1819 is expected not to be valid1820 when dast type with raw format1821 is expected to be valid1822 when dast type without format specification1823 is expected not to be valid1824 when dast type with other formats1825 is expected not to be valid1826 is expected not to be valid1827 when license_management type with raw format1828 is expected to be valid1829 when license_management type without format specification1830 is expected not to be valid1831 when license_management type with other formats1832 is expected not to be valid1833 is expected not to be valid1834 when license_scanning type with raw format1835 is expected to be valid1836 when license_scanning type without format specification1837 is expected not to be valid1838 when license_scanning type with other formats1839 is expected not to be valid1840 is expected not to be valid1841 when accessibility type with raw format1842 is expected to be valid1843 when accessibility type without format specification1844 is expected not to be valid1845 when accessibility type with other formats1846 is expected not to be valid1847 is expected not to be valid1848 when codequality type with raw format1849 is expected to be valid1850 when codequality type without format specification1851 is expected not to be valid1852 when codequality type with other formats1853 is expected not to be valid1854 is expected not to be valid1855 when performance type with raw format1856 is expected to be valid1857 when performance type without format specification1858 is expected not to be valid1859 when performance type with other formats1860 is expected not to be valid1861 is expected not to be valid1862 when browser_performance type with raw format1863 is expected to be valid1864 when browser_performance type without format specification1865 is expected not to be valid1866 when browser_performance type with other formats1867 is expected not to be valid1868 is expected not to be valid1869 when load_performance type with raw format1870 is expected to be valid1871 when load_performance type without format specification1872 is expected not to be valid1873 when load_performance type with other formats1874 is expected not to be valid1875 is expected not to be valid1876 when terraform type with raw format1877 is expected to be valid1878 when terraform type without format specification1879 is expected not to be valid1880 when terraform type with other formats1881 is expected not to be valid1882 is expected not to be valid1883 when requirements type with raw format1884 is expected to be valid1885 when requirements type without format specification1886 is expected not to be valid1887 when requirements type with other formats1888 is expected not to be valid1889 is expected not to be valid1890 when coverage_fuzzing type with raw format1891 is expected to be valid1892 when coverage_fuzzing type without format specification1893 is expected not to be valid1894 when coverage_fuzzing type with other formats1895 is expected not to be valid1896 is expected not to be valid1897 when api_fuzzing type with raw format1898 is expected to be valid1899 when api_fuzzing type without format specification1900 is expected not to be valid1901 when api_fuzzing type with other formats1902 is expected not to be valid1903 is expected not to be valid1904 validates DEFAULT_FILE_NAMES1905 expects archive to be included1906 expects metadata to be included1907 expects trace to be included1908 expects junit to be included1909 expects sast to be included1910 expects dependency_scanning to be included1911 expects container_scanning to be included1912 expects dast to be included1913 expects codequality to be included1914 expects license_management to be included1915 expects license_scanning to be included1916 expects performance to be included1917 expects metrics to be included1918 expects metrics_referee to be included1919 expects network_referee to be included1920 expects lsif to be included1921 expects dotenv to be included1922 expects cobertura to be included1923 expects terraform to be included1924 expects accessibility to be included1925 expects cluster_applications to be included1926 expects secret_detection to be included1927 expects requirements to be included1928 expects coverage_fuzzing to be included1929 expects browser_performance to be included1930 expects load_performance to be included1931 expects api_fuzzing to be included1932 validates TYPE_AND_FORMAT_PAIRS1933 expects archive to be included1934 expects metadata to be included1935 expects trace to be included1936 expects junit to be included1937 expects sast to be included1938 expects dependency_scanning to be included1939 expects container_scanning to be included1940 expects dast to be included1941 expects codequality to be included1942 expects license_management to be included1943 expects license_scanning to be included1944 expects performance to be included1945 expects metrics to be included1946 expects metrics_referee to be included1947 expects network_referee to be included1948 expects lsif to be included1949 expects dotenv to be included1950 expects cobertura to be included1951 expects terraform to be included1952 expects accessibility to be included1953 expects cluster_applications to be included1954 expects secret_detection to be included1955 expects requirements to be included1956 expects coverage_fuzzing to be included1957 expects browser_performance to be included1958 expects load_performance to be included1959 expects api_fuzzing to be included1960 #file1961 the uploader api1962 is expected to respond to #store_dir1963 is expected to respond to #cache_dir1964 is expected to respond to #work_dir1965 expired?1966 when expire_at is nil1967 returns false1968 when expire_at is in the past1969 returns true1970 when expire_at is in the future1971 returns false1972 #expiring?1973 when expire_at is nil1974 returns false1975 when expire_at is in the past1976 returns false1977 when expire_at is in the future1978 returns true1979 #expire_in1980 is expected to be nil1981 when expire_at is specified1982 is expected to be within 5 of 604799.9996618441983 #expire_in=1984 when assigning valid duration1985 when assigning invalid duration1986 when resetting value1987 when setting to 01988 file is being stored1989 when existing object has local store1990 behaves like mounted file in local store1991 is stored locally1992 when direct upload is enabled1993 when file is stored1994 behaves like mounted file in object store1995 is stored remotely1996 .file_types1997 all file types have corresponding limit1998 file_type: "archive"1999 is expected to include "ci_max_artifact_size_archive"2000 file_type: "metadata"2001 is expected to include "ci_max_artifact_size_metadata"2002 file_type: "trace"2003 is expected to include "ci_max_artifact_size_trace"2004 file_type: "junit"2005 is expected to include "ci_max_artifact_size_junit"2006 file_type: "sast"2007 is expected to include "ci_max_artifact_size_sast"2008 file_type: "dependency_scanning"2009 is expected to include "ci_max_artifact_size_dependency_scanning"2010 file_type: "container_scanning"2011 is expected to include "ci_max_artifact_size_container_scanning"2012 file_type: "dast"2013 is expected to include "ci_max_artifact_size_dast"2014 file_type: "codequality"2015 is expected to include "ci_max_artifact_size_codequality"2016 file_type: "license_management"2017 is expected to include "ci_max_artifact_size_license_management"2018 file_type: "license_scanning"2019 is expected to include "ci_max_artifact_size_license_scanning"2020 file_type: "performance"2021 is expected to include "ci_max_artifact_size_performance"2022 file_type: "metrics"2023 is expected to include "ci_max_artifact_size_metrics"2024 file_type: "metrics_referee"2025 is expected to include "ci_max_artifact_size_metrics_referee"2026 file_type: "network_referee"2027 is expected to include "ci_max_artifact_size_network_referee"2028 file_type: "lsif"2029 is expected to include "ci_max_artifact_size_lsif"2030 file_type: "dotenv"2031 is expected to include "ci_max_artifact_size_dotenv"2032 file_type: "cobertura"2033 is expected to include "ci_max_artifact_size_cobertura"2034 file_type: "terraform"2035 is expected to include "ci_max_artifact_size_terraform"2036 file_type: "accessibility"2037 is expected to include "ci_max_artifact_size_accessibility"2038 file_type: "cluster_applications"2039 is expected to include "ci_max_artifact_size_cluster_applications"2040 file_type: "secret_detection"2041 is expected to include "ci_max_artifact_size_secret_detection"2042 file_type: "requirements"2043 is expected to include "ci_max_artifact_size_requirements"2044 file_type: "coverage_fuzzing"2045 is expected to include "ci_max_artifact_size_coverage_fuzzing"2046 file_type: "browser_performance"2047 is expected to include "ci_max_artifact_size_browser_performance"2048 file_type: "load_performance"2049 is expected to include "ci_max_artifact_size_load_performance"2050 file_type: "api_fuzzing"2051 is expected to include "ci_max_artifact_size_api_fuzzing"2052 .max_artifact_size2053 when file type is supported2054 and plan limit is disabled for the given artifact type2055 behaves like basing off the project closest setting2056 is expected to eq 10737418242057 and project closest setting results to zero2058 is expected to eq 02059 and plan limit is enabled for the given artifact type2060 and plan limit is smaller than project setting2061 behaves like basing off the plan limit2062 is expected to eq 10726932482063 and plan limit is larger than project setting2064 behaves like basing off the project closest setting2065 is expected to eq 10737418242066Banzai::Filter::CommitRangeReferenceFilter2067 requires project context2068 ignores valid references contained inside 'pre' element2069 ignores valid references contained inside 'code' element2070 ignores valid references contained inside 'a' element2071 ignores valid references contained inside 'style' element2072 internal reference2073 links to a valid two-dot reference2074 links to a valid three-dot reference2075 links to a valid short ID2076 links with adjacent text2077 ignores invalid commit IDs2078 includes no title attribute2079 includes default classes2080 includes a data-project attribute2081 includes a data-commit-range attribute2082 supports an :only_path option2083 cross-project / cross-namespace complete reference2084 links to a valid reference2085 link has valid text2086 has valid text2087 ignores invalid commit IDs on the referenced project2088 cross-project / same-namespace complete reference2089 links to a valid reference2090 link has valid text2091 has valid text2092 ignores invalid commit IDs on the referenced project2093 cross-project shorthand reference2094 links to a valid reference2095 link has valid text2096 has valid text2097 ignores invalid commit IDs on the referenced project2098 cross-project URL reference2099 links to a valid reference2100 links with adjacent text2101 ignores invalid commit IDs on the referenced project2102 group context2103 ignores internal references2104 links to a full-path reference2105CounterAttribute2106 behaves like CounterAttribute2107 defines a Redis counter_key2108 defines a method to store counters2109 build_artifacts_size2110 #delayed_increment_counter2111 when attribute is a counter attribute2112 increment: 102113 increments the counter in Redis2114 does not increment the counter for the record2115 schedules a worker to flush counter increments asynchronously2116 increment: -32117 increments the counter in Redis2118 does not increment the counter for the record2119 schedules a worker to flush counter increments asynchronously2120 when increment is 02121 does nothing2122 when attribute is not a counter attribute2123 delegates to ActiveRecord update!2124 when feature flag is disabled2125 delegates to ActiveRecord update!2126 does not increment the counter in Redis2127 commit_count2128 #delayed_increment_counter2129 when attribute is a counter attribute2130 increment: 102131 increments the counter in Redis2132 does not increment the counter for the record2133 schedules a worker to flush counter increments asynchronously2134 increment: -32135 increments the counter in Redis2136 does not increment the counter for the record2137 schedules a worker to flush counter increments asynchronously2138 when increment is 02139 does nothing2140 when attribute is not a counter attribute2141 delegates to ActiveRecord update!2142 when feature flag is disabled2143 delegates to ActiveRecord update!2144 does not increment the counter in Redis2145 .flush_increments_to_database!2146 obtains an exclusive lease during processing2147 when there is a counter to flush2148 updates the record2149 removes the increment entry from Redis2150 when there are no counters to flush2151 when there are no counters in the relative :flushed key2152 does not change the record2153 when there are counters in the relative :flushed key2154 updates the record2155 deletes the relative :flushed key2156 when deleting :flushed key fails2157 does a rollback of the counter update2158 after_flush callbacks2159 has registered callbacks2160 when there are increments to flush2161 executes the callbacks2162 when there are no increments to flush2163 does not execute the callbacks2164 .steal_increments2165 increment: nil, flushed: nil, result: 0, flushed_key_present: false2166 is expected to eq 02167 drops the increment key and creates the flushed key if it does not exist2168 increment: nil, flushed: 0, result: 0, flushed_key_present: false2169 is expected to eq 02170 drops the increment key and creates the flushed key if it does not exist2171 increment: 0, flushed: 0, result: 0, flushed_key_present: false2172 is expected to eq 02173 drops the increment key and creates the flushed key if it does not exist2174 increment: 1, flushed: 0, result: 1, flushed_key_present: true2175 is expected to eq 12176 drops the increment key and creates the flushed key if it does not exist2177 increment: 1, flushed: nil, result: 1, flushed_key_present: true2178 is expected to eq 12179 drops the increment key and creates the flushed key if it does not exist2180 increment: 1, flushed: 1, result: 2, flushed_key_present: true2181 is expected to eq 22182 drops the increment key and creates the flushed key if it does not exist2183 increment: 1, flushed: -2, result: -1, flushed_key_present: true2184 is expected to eq -12185 drops the increment key and creates the flushed key if it does not exist2186 increment: -1, flushed: 1, result: 0, flushed_key_present: false2187 is expected to eq 02188 drops the increment key and creates the flushed key if it does not exist2189Gitlab::ReferenceExtractor2190 accesses valid user objects2191 ignores user mentions inside specific elements2192 does not include anchors from table of contents in issue references2193 accesses valid issue objects2194 accesses valid merge requests2195 accesses valid labels2196 accesses valid snippets2197 accesses valid commits2198 accesses valid commit ranges2199 directly addressed users2200 when a user is directly addressed2201 accesses the user object which is mentioned in the beginning of the line2202 doesn't access the user object if it's not mentioned in the beginning of the line2203 when multiple users are addressed2204 accesses the user objects which are mentioned in the beginning of the line2205 doesn't access the user objects if they are not mentioned in the beginning of the line2206 when multiple users are addressed in different paragraphs2207 accesses user objects which are mentioned in the beginning of each paragraph2208 with an external issue tracker2209 when GitLab issues are enabled2210 returns both Jira and internal issues2211 returns only Jira issues if the internal one does not exist2212 when GitLab issues are disabled2213 returns only Jira issues2214 with an inactive external issue tracker2215 when GitLab issues are enabled2216 returns only internal issue2217 does not return any issue if the internal one does not exist2218 with a project with an underscore2219 handles project issue references2220 #all2221 returns all referables2222 .references_pattern2223 is expected to be a kind of Regexp2224 referables prefixes2225 returns all supported prefixes2226 does not allow one prefix for multiple referables if not allowed specificly2227 #references2228 increases stateful_not_visible_counter2229 when references are visible2230 returns visible references of given type2231 does not increase stateful_not_visible_counter2232Gitlab::ImportExport::FastHashSerializer2233 saves the correct hash2234 has approvals_before_merge set2235 has milestones2236 has merge requests2237 has merge request's milestones2238 has merge request's source branch SHA2239 has merge request's target branch SHA2240 has events2241 has snippets2242 has snippet notes2243 has releases2244 has no author on releases2245 has the author ID on releases2246 has issues2247 has issue comments2248 has issue assignees2249 has author on issue comments2250 has project members2251 has merge requests diffs2252 has merge request diff files2253 has merge request diff commits2254 has merge requests comments2255 has author on merge requests comments2256 has pipeline stages2257 has pipeline statuses2258 has pipeline builds2259 has pipeline commits2260 has ci pipeline notes2261 has labels with no associations2262 has labels associated to records2263 has project and group labels2264 has priorities associated to labels2265 has issue resource label events2266 has merge request resource label events2267 has project feature2268 has custom attributes2269 has badges2270 does not complain about non UTF-8 characters in MR diff files2271 has a board and a list2272 project attributes2273 does not contain the runners token2274 relation ordering2275 orders exported pipelines by primary key2276gitlab:workhorse namespace rake task2277 install2278 clones the origin and creates a gitlab-workhorse binary2279 no dir given2280 aborts and display a help message2281 when an underlying Git command fails2282 aborts and display a help message2283MergeRequests::FfMergeService2284 #execute2285 valid params2286 does not create merge commit2287 keeps the merge request valid2288 updates the merge request to merged2289 sends email to user2 about merge of new merge_request2290 creates resource event about merge_request merge2291 does not update squash_commit_sha if it is not a squash2292 updates squash_commit_sha if it is a squash2293 error handling2294 logs and saves error if there is an exception2295 logs and saves error if there is an PreReceiveError exception2296 does not update squash_commit_sha if squash merge is not successful2297Banzai::ReferenceParser::BaseParser2298 .reference_type=2299 sets the reference type2300 #project_for_node2301 returns the Project for a node2302 #nodes_visible_to_user2303 when the link has a data-project attribute2304 includes the link if can_read_reference? returns true2305 excludes the link if can_read_reference? returns false2306 when the link does not have a data-project attribute2307 returns the nodes2308 #nodes_user_can_reference2309 returns the nodes2310 #referenced_by2311 when references_relation is implemented2312 returns a collection of objects2313 when references_relation is not implemented2314 raises NotImplementedError2315 #references_relation2316 raises NotImplementedError2317 #gather_attributes_per_project2318 returns a Hash containing attribute values per project2319 #grouped_objects_for_nodes2320 returns a Hash grouping objects per node2321 returns an empty Hash when entry does not exist in the database2322 #unique_attribute_values2323 returns an Array of unique values2324 #process2325 gathers the references for every node matching the reference type2326 #gather_references2327 returns referenceable and visible objects, alongside nodes that are referenceable but not visible2328 is always empty if the input is empty2329 #can?2330 delegates the permissions check to the Ability class2331 #find_projects_for_hash_keys2332 returns a list of Projects2333 #collection_objects_for_ids2334 with RequestStore disabled2335 queries the collection directly2336 with RequestStore enabled2337 queries the collection on the first call2338 does not query previously queried objects2339 casts String based IDs to Fixnums before querying objects2340 queries any additional objects after the first call2341 caches objects on a per collection class basis2342 will not overflow the stack2343 #collection_cache_key2344 returns the cache key for a Class2345 returns the cache key for an ActiveRecord::Relation2346Todos::Destroy::GroupPrivateService2347 #execute2348 when a group set to private2349 removes todos only for users who are not group users2350 with nested groups2351 removes todos only for users who are not group users2352 when group is not private2353 does not remove any todos2354Gitlab::ContributionsCalendar2355 #activity_dates2356 returns a hash of date => count2357 counts the diff notes on merge request2358 counts the discussions on merge requests and issues2359 when the user has opted-in for private contributions2360 shows private and public events to all users2361 when events fall under different dates depending on the time zone2362 renders correct event counts within the UTC timezone2363 renders correct event counts within the Sydney timezone2364 renders correct event counts within the US Central timezone2365 #events_by_date2366 returns all events for a given date2367 only shows private events to authorized users2368 when the user cannot read cross project2369 does not return any events2370 #starting_year2371 is the start of last year2372 #starting_month2373 is the start of this month2374EnvironmentNamesFinder2375 #execute2376 using a group2377 with a group developer2378 returns environment names for all projects2379 with a group reporter2380 returns environment names for all projects2381 with a public project reporter2382 returns environment names for all public projects2383 with a private project reporter2384 returns environment names for all public projects2385 with a group guest2386 returns environment names for all public projects2387 with a non-member2388 returns environment names for all public projects2389 without a user2390 returns environment names for all public projects2391 using a public project2392 with a project developer2393 returns all the unique environment names2394 with a project reporter2395 returns all the unique environment names2396 with a project guest2397 returns all the unique environment names2398 with a non-member2399 returns all the unique environment names2400 without a user2401 returns all the unique environment names2402 using a private project2403 with a project developer2404 returns all the unique environment names2405 with a project reporter2406 returns all the unique environment names2407 with a project guest2408 does not return any environment names2409 with a non-member2410 does not return any environment names2411 without a user2412 does not return any environment names2413Gitlab::Email::Message::RepositoryPush2414 new commits have been pushed to repository2415 #project2416 is expected to eq #<Project id:795 my_group/project907>>2417 is expected to be an instance of Project2418 #project_namespace2419 is expected to eq #<Group id:1621 @my_group>2420 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)2421 #project_name_with_namespace2422 is expected to eq "my_group / project911"2423 #author2424 is expected to eq #<User id:1475 @user1568>2425 is expected to be an instance of User2426 #author_name2427 is expected to eq "Author"2428 #commits2429 is expected to be a kind of Array2430 is expected to all be an instance of Commit2431 #diffs2432 is expected to all be an instance of Gitlab::Diff::File2433 #diffs_count2434 is expected to eq 92435 #compare2436 is expected to be an instance of Compare2437 #compare_timeout2438 is expected to eq false2439 #reverse_compare?2440 is expected to eq false2441 #disable_diffs?2442 is expected to eq false2443 #send_from_committer_email?2444 is expected to eq true2445 #action_name2446 is expected to eq "pushed to"2447 #ref_name2448 is expected to eq "master"2449 #ref_type2450 is expected to eq "branch"2451 #target_url2452 is expected to include "compare"2453 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"2454 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2455 #subject2456 is expected to include "[Git][my_group/project930]"2457 is expected to include "6 commits"2458 is expected to include "Ruby files modified"2459CommitStatusPresenter2460 inherits from Gitlab::View::Presenter::Delegated2461 covers all failure reasons2462 unknown_failure2463 is a valid status2464 script_failure2465 is a valid status2466 api_failure2467 is a valid status2468 stuck_or_timeout_failure2469 is a valid status2470 runner_system_failure2471 is a valid status2472 missing_dependency_failure2473 is a valid status2474 runner_unsupported2475 is a valid status2476 stale_schedule2477 is a valid status2478 job_execution_timeout2479 is a valid status2480 archived_failure2481 is a valid status2482 unmet_prerequisites2483 is a valid status2484 scheduler_failure2485 is a valid status2486 data_integrity_failure2487 is a valid status2488 forward_deployment_failure2489 is a valid status2490 insufficient_bridge_permissions2491 is a valid status2492 downstream_bridge_project_not_found2493 is a valid status2494 invalid_bridge_trigger2495 is a valid status2496 bridge_pipeline_is_child_pipeline2497 is a valid status2498 downstream_pipeline_creation_failed2499 is a valid status2500 secrets_provider_not_found2501 is a valid status2502 reached_max_descendant_pipelines_depth2503 is a valid status2504 protected_environment_failure2505 is a valid status2506 upstream_bridge_project_not_found2507 is a valid status2508 insufficient_upstream_permissions2509 is a valid status2510 invalid failure message2511 is an invalid status2512ProjectAPICompatibility2513 converts build_git_strategy=fetch to build_allow_git_fetch=true2514 converts build_git_strategy=clone to build_allow_git_fetch=false2515 #auto_devops_enabled2516 initial: :missing, final: nil2517 sets the correct value2518 initial: :missing, final: false2519 sets the correct value2520 initial: :missing, final: true2521 sets the correct value2522 initial: nil, final: nil2523 sets the correct value2524 initial: nil, final: false2525 sets the correct value2526 initial: nil, final: true2527 sets the correct value2528 initial: false, final: nil2529 sets the correct value2530 initial: false, final: false2531 sets the correct value2532 initial: false, final: true2533 sets the correct value2534 initial: true, final: nil2535 sets the correct value2536 initial: true, final: false2537 sets the correct value2538 initial: true, final: true2539 sets the correct value2540 #auto_devops_deploy_strategy2541 initial: :missing, final: "continuous"2542 sets the correct value2543 initial: :missing, final: "manual"2544 sets the correct value2545 initial: :missing, final: "timed_incremental"2546 sets the correct value2547 initial: "continuous", final: "continuous"2548 sets the correct value2549 initial: "continuous", final: "manual"2550 sets the correct value2551 initial: "continuous", final: "timed_incremental"2552 sets the correct value2553 initial: "manual", final: "continuous"2554 sets the correct value2555 initial: "manual", final: "manual"2556 sets the correct value2557 initial: "manual", final: "timed_incremental"2558 sets the correct value2559 initial: "timed_incremental", final: "continuous"2560 sets the correct value2561 initial: "timed_incremental", final: "manual"2562 sets the correct value2563 initial: "timed_incremental", final: "timed_incremental"2564 sets the correct value2565StarredProjectsFinder2566 #execute2567 user has a public profile2568 as same user2569 is expected to contain exactly #<Project id:872 namespace775/project984>>, #<Project id:873 namespace776/project985>>, and #<Project id:874 namespace777/project986>>2570 as other user2571 is expected to contain exactly #<Project id:875 namespace778/project987>> and #<Project id:876 namespace779/project988>>2572 as no user2573 is expected to contain exactly #<Project id:878 namespace781/project990>> and #<Project id:879 namespace782/project991>>2574 user has a private profile2575 as same user2576 is expected to contain exactly #<Project id:881 namespace784/project993>>, #<Project id:882 namespace785/project994>>, and #<Project id:883 namespace786/project995>>2577 as other user2578 user does not have access to view the private profile2579 is expected to be empty2580 user has access to view the private profile2581 is expected to contain exactly #<Project id:887 namespace790/project999>>, #<Project id:888 namespace791/project1000>>, and #<Project id:889 namespace792/project1001>>2582 as no user2583 is expected to be empty2584Projects::Settings::DeployKeysPresenter2585 inherits from Gitlab::View::Presenter::Simple2586 #enabled_keys2587 returns currently enabled keys2588 does not contain enabled_keys inside available_keys2589 returns the enabled_keys size2590 #available_keys/#available_project_keys2591 returns the current available_keys2592 returns the current available_project_keys2593 returns the available_project_keys size2594 prevent N + 1 queries2595 returns correct counts2596 does not increase the query count2597Gitlab::GithubImport::Importer::PullRequestImporter2598 #execute2599 imports the pull request2600 #create_merge_request2601 when the author could be found2602 imports the pull request with the pull request author as the merge request author2603 returns the created merge request2604 when the source and target branch are identical2605 uses a generated source branch name for the merge request2606 when the import fails due to a foreign key error2607 does not raise any errors2608 when the merge request already exists2609 returns the existing merge request2610 when the author could not be found2611 imports the pull request with the project creator as the merge request author2612 #set_merge_request_assignees2613 when pull request has an assignee2614 sets merge request assignees2615 when pull request does not have any assignees2616 does not set merge request assignees2617 #insert_git_data2618 does not create the source branch if merge request is merged2619 creates a merge request diff and sets it as the latest2620 creates the merge request diff commits2621 when merge request is open2622 creates the source branch2623 is able to retry on pre-receive errors2624 ignores Git command errors when creating a branch2625 when the merge request exists2626 creates the merge request diffs if they do not yet exist2627Ci::BuildRunnerSession2628 is expected to belong to build required:2629 is expected to validate that :build cannot be empty/falsy2630 is expected to validate that :url cannot be empty/falsy, producing a custom validation error on failure2631 nested attribute assignment2632 creates a new session2633 updates session with new attributes2634 #terminal_specification2635 returns terminal.gitlab.com protocol2636 returns a wss url2637 returns empty hash if no url2638 when url is present2639 returns ca_pem nil if empty certificate2640 adds Authorization header if authorization is present2641 #service_specification2642 returns service proxy url2643 returns default service proxy websocket subprotocol2644 returns empty hash if no url2645 when port is not present2646 uses the default port name2647 when the service is not present2648 uses the service name "build" as default2649 when url is present2650 returns ca_pem nil if empty certificate2651 adds Authorization header if authorization is present2652 when subprotocol is present2653 returns the new subprotocol2654JenkinsService2655 Associations2656 is expected to belong to project required:2657 is expected to have one service_hook2658 username validation2659 when the service is active2660 when password was not touched2661 is expected not to validate that :username cannot be empty/falsy2662 when password was touched2663 is expected to validate that :username cannot be empty/falsy2664 when password is blank2665 does not validate the username2666 when the service is inactive2667 is expected not to validate that :username cannot be empty/falsy2668 #hook_url2669 when the jenkins_url has no relative path2670 is expected to eq "http://jenkins.example.com/project/my_project"2671 when the jenkins_url has relative path2672 is expected to eq "http://organization.example.com/jenkins/project/my_project"2673 userinfo is missing and username and password are set2674 is expected to eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"2675 userinfo is provided and username and password are set2676 is expected to eq "http://username:password@organization.example.com/jenkins/project/my_project"2677 userinfo is provided username and password are not set2678 is expected to eq "http://u:p@organization.example.com/jenkins/project/my_project"2679 #test2680 returns the right status2681 #execute2682 invokes the Jenkins API2683 adds default web hook headers to the request2684 request url contains properly serialized username and password2685 Stored password invalidation2686 when a password was previously set2687 resets password if url changed2688 resets password if username is blank2689 does not reset password if username changed2690 does not reset password if new url is set together with password, even if it's the same password2691 resets password if url changed, even if setter called multiple times2692 when no password was previously set2693 saves password if new url is set together with password2694DiffViewer::Base2695 .can_render?2696 when the extension is supported2697 when the binaryness matches2698 returns true2699 when the binaryness does not match2700 returns false2701 when the extension and file type are not supported2702 returns false2703 when the file was renamed and only the old blob is supported2704 returns false2705 #collapsed?2706 when the combined blob size is larger than the collapse limit2707 returns true2708 when the combined blob size is smaller than the collapse limit2709 returns false2710 #too_large?2711 when the combined blob size is larger than the size limit2712 returns true2713 when the blob size is smaller than the size limit2714 returns false2715 #render_error2716 when the combined blob size is larger than the size limit2717 returns :too_large2718 when the combined blob size is smaller than the size limit2719 returns nil2720 #render_error_message2721 returns nothing when no render_error2722 when render_error error2723 returns an error message2724 includes a "view the blob" link2725Mutations::Issues::SetDueDate2726 is expected to require graphql authorizations :update_issue2727 #resolve2728 behaves like permission level for issue mutation is correctly verified2729 when the user is not a project member2730 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 is a project member2737 with guest role2738 behaves like when the user does not have access to the resource2739 raises an error2740 even if assigned to the issue2741 does not modify issue2742 even if author of the issue2743 raises an error2744 when the user can update the issue2745 returns the issue with updated due date2746 when passing incorrect due date value2747 does not update due date2748Gitlab::ImportExport::Project::ObjectBuilder2749 request store is not active2750 ignore cache initialize2751 request store is active2752 initialize cache in memory2753 cache object when first time find the object2754 read from cache when object has been cached2755 labels2756 finds the existing group label2757 finds the existing group label in root ancestor2758 creates a new label2759 milestones2760 finds the existing group milestone2761 finds the existing group milestone in root ancestor2762 creates a new milestone2763 merge_request2764 finds the existing merge_request2765 creates a new merge_request2766Packages::Conan::FileMetadatum2767 relationships2768 is expected to belong to package_file required:2769 validations2770 is expected to validate that :package_file cannot be empty/falsy2771 is expected to validate that :recipe_revision cannot be empty/falsy2772 #recipe_revision2773 is expected to allow :recipe_revision to be ‹"0"›2774 is expected not to allow :recipe_revision to be ‹nil›2775 #package_revision_for_package_file2776 recipe file2777 is valid with empty value2778 is invalid with value2779 package file2780 is valid with default value2781 is invalid with non-default value2782 #conan_package_reference_for_package_file2783 recipe file2784 is valid with empty value2785 is invalid with value2786 package file2787 is valid with acceptable value2788 is invalid with invalid value2789 is invalid when nil2790 #conan_package_type2791 validates package of type conan2792Operations::FeatureFlags::UserList2793 validations2794 is expected to validate that :project cannot be empty/falsy2795 is expected to validate that :name cannot be empty/falsy2796 is expected to validate that :name is case-sensitively unique within the scope of :project_id2797 is expected to validate that the length of :name is between 1 and 2552798 user_xids2799 valid_value: ""2800 is valid with a string of comma separated values2801 valid_value: "sam"2802 is valid with a string of comma separated values2803 valid_value: "1"2804 is valid with a string of comma separated values2805 valid_value: "a"2806 is valid with a string of comma separated values2807 valid_value: "uuid-of-some-kind"2808 is valid with a string of comma separated values2809 valid_value: "sam,fred,tom,jane,joe,mike"2810 is valid with a string of comma separated values2811 valid_value: "gitlab@example.com"2812 is valid with a string of comma separated values2813 valid_value: "123,4"2814 is valid with a string of comma separated values2815 valid_value: "UPPER,Case,charActeRS"2816 is valid with a string of comma separated values2817 valid_value: "0"2818 is valid with a string of comma separated values2819 valid_value: "$valid$email#2345\#$%..{}+=-)?\\/@example.com"2820 is valid with a string of comma separated values2821 valid_value: "spaces allowed"2822 is valid with a string of comma separated values2823 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"2824 is valid with a string of comma separated values2825 valid_value: "a,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccc"2826 is valid with a string of comma separated values2827 valid_value: "many spaces"2828 is valid with a string of comma separated values2829 typecast_value: 12830 automatically casts values of other types2831 typecast_value: 2.52832 automatically casts values of other types2833 typecast_value: {}2834 automatically casts values of other types2835 typecast_value: []2836 automatically casts values of other types2837 invalid_value: nil2838 is invalid2839 invalid_value: "123\n456"2840 is invalid2841 invalid_value: "1,2,3,12\t3"2842 is invalid2843 invalid_value: "\n"2844 is invalid2845 invalid_value: "\n\r"2846 is invalid2847 invalid_value: "joe\r,sam"2848 is invalid2849 invalid_value: "1,2,2"2850 is invalid2851 invalid_value: "1,,2"2852 is invalid2853 invalid_value: "1,2,,,,"2854 is invalid2855 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"2856 is invalid2857 invalid_value: "1, ,2"2858 is invalid2859 invalid_value: "tim, ,7"2860 is invalid2861 invalid_value: " "2862 is invalid2863 invalid_value: " "2864 is invalid2865 invalid_value: " ,1"2866 is invalid2867 invalid_value: "1, "2868 is invalid2869 invalid_value: " leading,1"2870 is invalid2871 invalid_value: "1,trailing "2872 is invalid2873 invalid_value: "1, both ,2"2874 is invalid2875 url_helpers2876 generates paths based on the internal id2877 #destroy2878 deletes the model if it is not associated with any feature flag strategies2879 does not delete the model if it is associated with a feature flag strategy2880 .for_name_like2881 returns a found name2882 returns an empty array when no lists match the query2883 behaves like AtomicInternalId2884 .has_internal_id2885 Module inclusion2886 is expected to includes the AtomicInternalId module2887 Validation2888 when presence validation is required2889 when creating an object2890 raises an error if the internal id is blank2891 when updating an object2892 raises an error if the internal id is blank2893 when presence validation is not required2894 when creating an object2895 does not raise an error if the internal id is blank (PENDING: No reason given)2896 when updating an object2897 does not raise an error if the internal id is blank (PENDING: No reason given)2898 Creating an instance2899 saves a new instance properly2900 internal id generation2901 calls InternalId.generate_next and sets internal id attribute2902 does not overwrite an existing internal id2903 when the instance has an internal ID set2904 calls InternalId.update_last_value and sets the `last_value` to that of the instance2905 unsetting the instance internal id on rollback2906 when the internal id has been changed2907 when the internal id is automatically set2908 clears it on the instance2909 when the internal id is manually set2910 does not clear it on the instance2911 when the internal id has not been changed2912 preserves the value on the instance2913 supply of internal ids2914 provides a persistent supply of IID values, sensitive to the current state2915 #reset_scope_internal_id_attribute2916 rewinds the allocated IID2917 allocates the same IID2918Security::LicenseComplianceJobsFinder2919 behaves like Security::JobsFinder2920 #new2921 does not get initialized for unsupported job types2922 #execute2923 when using legacy CI build metadata config storage2924 behaves like JobsFinder core functionality2925 when the pipeline has no jobs2926 is expected to be empty2927 when the pipeline has no Secure jobs2928 is expected to be empty2929 when the pipeline only has jobs without report artifacts2930 is expected to be empty2931 when the pipeline only has jobs with reports unrelated to Secure products2932 is expected to be empty2933 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports2934 is expected to be empty2935 when there is more than one pipeline2936 returns jobs associated with provided pipeline2937 when using the new CI build metadata config storage2938 behaves like JobsFinder core functionality2939 when the pipeline has no jobs2940 is expected to be empty2941 when the pipeline has no Secure jobs2942 is expected to be empty2943 when the pipeline only has jobs without report artifacts2944 is expected to be empty2945 when the pipeline only has jobs with reports unrelated to Secure products2946 is expected to be empty2947 when the pipeline only has jobs with reports with paths similar but not identical to Secure reports2948 is expected to be empty2949 when there is more than one pipeline2950 returns jobs associated with provided pipeline2951 #execute2952 returns only the license_scanning jobs2953PrometheusAdapter2954 #query2955 validate_query2956 with valid data2957 returns query data2958 environment2959 with valid data2960 returns reactive data2961 matched_metrics2962 with valid data2963 returns reactive data2964 deployment2965 with valid data2966 returns reactive data2967 additional_metrics2968 with valid data2969 returns reactive data2970 #calculate_reactive_cache2971 when service is inactive2972 is expected to be nil2973 when Prometheus responds with valid data2974 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:13:04.000Z\"}"2975 when Prometheus responds with 4042976 is expected to eq {:result=>"404 - \"QUERY FAILED!\"", :success=>false}2977 when Prometheus responds with 5002978 is expected to eq {:result=>"500 - \"QUERY FAILED!\"", :success=>false}2979 #build_query_args2980 when active record models are included2981 serializes by id2982 when args are safe for serialization2983 does nothing2984Groups::GroupLinks::CreateService#execute2985 adds group to another group2986 returns false if shared group is blank2987 user does not have access to group2988 returns error2989 user does not have admin access to shared group2990 returns error2991 project authorizations based on group hierarchies2992 project authorizations refresh2993 is executed only for the direct members of the group2994 project authorizations2995 group user2996 create proper authorizations2997 parent group user2998 create proper authorizations2999 child group user3000 create proper authorizations3001projects/deployments/_confirm_rollback_modal3002 when re-deploying last deployment3003 shows "re-deploy"3004 links to re-deploying the environment3005 when rolling back to previous deployment3006 shows "rollback"3007 links to re-deploying the environment3008PostReceiveService3009 when project is nil3010 does not return error3011 behaves like does not record an onboarding progress action3012 is expected not to receive new(*(any args)) 0 times3013 when repository is nil3014 does not return error3015 when both repository and project are nil3016 does not return error3017 with Project3018 returns link to create new merge request3019 returns the link to an existing merge request when it exists3020 does not invoke MergeRequests::PushOptionsHandlerService3021 behaves like post_receive_service actions3022 enqueues a PostReceive worker job3023 decreases the reference counter and returns the result3024 behaves like records an onboarding progress action3025 is expected to receive execute({:action=>:git_write}) 1 time3026 when printing_merge_request_link_enabled is false3027 returns no merge request messages3028 when there are merge_request push options3029 invokes MergeRequests::PushOptionsHandlerService3030 creates a new merge request3031 links to the newly created merge request3032 adds errors on the service instance to warnings3033 adds ActiveRecord errors on invalid MergeRequest records to warnings3034 with PersonalSnippet3035 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 with ProjectSnippet3043 does not return link to create new merge request3044 does not return the link to an existing merge request when it exists3045 behaves like post_receive_service actions3046 enqueues a PostReceive worker job3047 decreases the reference counter and returns the result3048 behaves like records an onboarding progress action3049 is expected to receive execute({:action=>:git_write}) 1 time3050 broadcast message banner exists3051 outputs a broadcast message3052 broadcast message notification exists3053 does not output a broadcast message3054 broadcast message does not exist3055 does not output a broadcast message3056 nil broadcast message3057 does not output a broadcast message3058 broadcast message has a target_path3059 no project path matches3060 does not output the scoped broadcast messages3061 does output another message that doesn't have a target_path3062 project path matches3063 does output the latest scoped broadcast message3064 does not output the older scoped broadcast message3065 does not output another message that doesn't have a target_path3066 with a redirected data3067 returns redirected message on the response3068 with new project data3069 returns new project message on the response3070 #process_mr_push_options3071 when repository belongs to a snippet3072 with PersonalSnippet3073 returns an error message3074 with ProjectSnippet3075 returns an error message3076 #merge_request_urls3077 when repository belongs to a snippet3078 with PersonalSnippet3079 returns an empty array3080 with ProjectSnippet3081 returns an empty array3082UploadService3083 File service3084 for valid gif file3085 is expected to have key :alt3086 is expected to have key :url3087 is expected to have value "banana_sample"3088 is expected to match "banana_sample.gif"3089 for valid png file3090 is expected to have key :alt3091 is expected to have key :url3092 is expected to have value "dk"3093 is expected to match "dk.png"3094 for valid jpg file3095 is expected to have key :alt3096 is expected to have key :url3097 is expected to have value "rails_sample"3098 is expected to match "rails_sample.jpg"3099 for txt file3100 is expected to have key :alt3101 is expected to have key :url3102 is expected to have value "doc_sample.txt"3103 is expected to match "doc_sample.txt"3104 for too large a file3105 is expected to eq {}3106Todos::Destroy::ConfidentialIssueService3107 #execute3108 when issue_id parameter is present3109 when provided issue is confidential3110 removes issue todos for users who can not access the confidential issue3111 when provided issue is not confidential3112 does not remove any todos3113 when project_id parameter is present3114 removes issues todos for users that cannot access confidential issues3115Files::UpdateService3116 #execute3117 when the file's last commit sha does not match the supplied last_commit_sha3118 returns a hash with the correct error message and a :error status3119 when the file's last commit sha does match the supplied last_commit_sha3120 returns a hash with the :success status3121 updates the file with the new contents3122 uses the commit email3123 when the last_commit_sha is not supplied3124 returns a hash with the :success status3125 updates the file with the new contents3126GpgKeys::CreateService3127 creates a gpg key3128 notification3129 sends a notification3130 when the public key contains subkeys3131 generates the gpg subkeys3132Projects::MoveProjectMembersService3133 #execute3134 moves the members from one project to another3135 does not move existent members to the current project3136 rollbacks changes if transaction fails3137 when remove_remaining_elements is false3138 does not remove remaining project members3139Ci::DestroyExpiredJobArtifactsService3140 .execute3141 when artifact is expired3142 with preloaded relationships3143 performs the smallest number of queries for job_artifacts3144 when artifact is not locked3145 deletes job artifact record3146 when the artifact does not a file attached to it3147 does not create deleted objects3148 when the artifact has a file attached to it3149 creates a deleted object3150 resets project statistics3151 does not remove the files3152 reports metrics for destroyed artifacts3153 when artifact is locked3154 does not destroy job artifact3155 when artifact is not expired3156 does not destroy expired job artifacts3157 when artifact is permanent3158 does not destroy expired job artifacts3159 when failed to destroy artifact3160 when the import fails3161 raises an exception and stop destroying3162 when the delete fails3163 raises an exception rolls back the insert3164 when exclusive lease has already been taken by the other instance3165 raises an error and does not start destroying3166 when timeout happens3167 destroys one artifact3168 reports the number of destroyed artifacts3169 when loop reached loop limit3170 destroys one artifact3171 reports the number of destroyed artifacts3172 when there are no artifacts3173 does not raise error3174 reports the number of destroyed artifacts3175 when there are artifacts more than batch sizes3176 destroys all expired artifacts3177 reports the number of destroyed artifacts3178 when some artifacts are locked3179 destroys only unlocked artifacts3180Gitlab::Chat::Responder::Slack3181 #send_response3182 sends a response back to Slack3183 #success3184 returns the output for a successful build3185 limits the output to a fixed size3186 does not send a response if the output is empty3187 #failure3188 returns the output for a failed build3189 #scheduled_output3190 returns the output for a scheduled build3191RemoveExpiredMembersWorker3192 #perform3193 project members3194 removes expired members3195 leaves members that expire in the future3196 leaves members that do not expire at all3197 project bots3198 expired project bot3199 removes expired project bot membership3200 deletes expired project bot3201 non-expired project bot3202 does not remove expired project bot that expires in the future3203 does not delete project bot expiring in the future3204 group members3205 removes expired members3206 leaves members that expire in the future3207 leaves members that do not expire at all3208 when the last group owner expires3209 does not delete the owner3210Gitlab::SlashCommands::IssueMove3211 #match3212 behaves like move command3213 can be parsed to extract the needed fields3214 behaves like move command3215 can be parsed to extract the needed fields3216 behaves like move command3217 can be parsed to extract the needed fields3218 behaves like move command3219 can be parsed to extract the needed fields3220 behaves like move command3221 can be parsed to extract the needed fields3222 behaves like move command3223 can be parsed to extract the needed fields3224 #execute3225 when the user can move the issue3226 when the move fails3227 returns the error message3228 when the move succeeds3229 moves the issue to the new destination3230 returns the new issue3231 mentions the old issue3232 when the issue does not exist3233 returns not found3234 when the target project does not exist3235 returns not found3236 when the user cannot see the target project3237 returns not found3238 when the user does not have the required permissions on the target project3239 returns the error message3240Atlassian::JiraConnect::Serializers::DeploymentEntity3241 when the deployment does not belong to any Jira issue3242 #issue_keys3243 is empty3244 #to_json3245 can encode the object3246 is invalid, since it has no issue keys3247 this is an external deployment3248 does not raise errors when serializing3249 returns an empty list of issue keys3250 environment type3251 env_name: "prod", env_type: "production"3252 has the correct environment type3253 env_name: "test", env_type: "testing"3254 has the correct environment type3255 env_name: "staging", env_type: "staging"3256 has the correct environment type3257 env_name: "dev", env_type: "development"3258 has the correct environment type3259 env_name: "review/app", env_type: "development"3260 has the correct environment type3261 env_name: "something-else", env_type: "unmapped"3262 has the correct environment type3263 when the deployment can be linked to a Jira issue3264 because it belongs to an MR with a jira_branch3265 #issue_keys3266 is not empty3267 #to_json3268 is valid according to the deployment info schema3269 because it belongs to an MR with a jira_title3270 #issue_keys3271 is not empty3272 #to_json3273 is valid according to the deployment info schema3274Ci::ExtractSectionsFromBuildTraceService#execute3275 when the build has no user3276 behaves like build trace has sections markers3277 saves the correct extracted sections3278 fails if trace_sections isn't empty3279 behaves like build trace has no sections markers3280 extracts no sections3281 when the build has a valid user3282 behaves like build trace has sections markers3283 saves the correct extracted sections3284 fails if trace_sections isn't empty3285 behaves like build trace has no sections markers3286 extracts no sections3287WebIdeTerminalEntity3288 is expected to have key :id3289 is expected to have key :status3290 is expected to have key :show_path3291 is expected to have key :cancel_path3292 is expected to have key :retry_path3293 is expected to have key :terminal_path3294 is expected to have key :services3295 is expected to have key :proxy_websocket_path3296 when feature flag build_service_proxy is disabled3297 is expected not to have key :proxy_websocket_path3298Issues::ReorderService3299 #execute3300 when ordering issues in a project3301 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 issues in a group3309 behaves like issues reorder service3310 when reordering issues3311 returns false with no params3312 returns false with both invalid params3313 sorts issues3314 sorts issues if only given one neighbour, on the left3315 sorts issues if only given one neighbour, on the right3316 when ordering in a group issue list3317 sends the board_group_id parameter3318 sorts issues3319Gitlab::ImportExport::LfsRestorer3320 #restore3321 when the archive contains lfs files3322 succeeds3323 does not create a new `LfsObject` records, as one already exists3324 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`3325 restores the correct `LfsObject` records3326 restores the correct `LfsObjectsProject` records for the project3327 assigns the file correctly3328 when there is not an existing `LfsObject`3329 creates a new lfs object3330 stores the upload3331 when there is no lfs-objects.json file3332 restores the correct `LfsObject` records3333 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`3334 without any LFS-objects3335 succeeds3336Clusters::Applications::DeactivateServiceWorker#perform3337 cluster exists3338 prometheus service3339 prometheus service exists3340 cluster type: group3341 ensures Prometheus service is deactivated3342 cluster type: project3343 ensures Prometheus service is deactivated3344 cluster type: instance3345 ensures Prometheus service is deactivated3346 prometheus service does not exist3347 cluster type: project3348 does not raise errors3349 cluster does not exist3350 raises Record Not Found error3351Gitlab::Auth::Saml::User3352 #save3353 account exists on server3354 and should bind with SAML3355DEPRECATION 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)3356 adds the SAML identity to the existing user3357 external groups3358 are defined3359DEPRECATION 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)3360 marks the user as external3361 are defined but the user does not belong there3362DEPRECATION 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 does not mark the user as external3364 user was external, now should not be3365DEPRECATION 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 makes user internal3367 no account exists on server3368 external groups3369 are defined3370DEPRECATION 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)3371 marks the user as external3372 are defined but the user does not belong there3373DEPRECATION 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)3374 does not mark the user as external3375 with auto_link_ldap_user disabled (default)3376 with allow_single_sign_on enabled3377DEPRECATION 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)3378 creates a user from SAML3379 with allow_single_sign_on default (["saml"])3380DEPRECATION 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 does not throw an error3382 with allow_single_sign_on disabled3383 throws an error3384 with auto_link_ldap_user enabled3385 and at least one LDAP provider is defined3386 and a corresponding LDAP person3387 and no account for the LDAP user3388DEPRECATION 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)3389 creates a user with dual LDAP and SAML identities3390 and LDAP user has an account already3391DEPRECATION 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)3392 adds the omniauth identity to the LDAP account3393DEPRECATION 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)3394DEPRECATION 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 saves successfully on subsequent tries, when both identities are present3396 when uid is an uid3397 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 when uid is a dn3401 behaves like find LDAP person3402DEPRECATION 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)3403 adds the omniauth identity to the LDAP account3404 when uid is an email3405 behaves like find LDAP person3406DEPRECATION 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)3407 adds the omniauth identity to the LDAP account3408 user has SAML user, and wants to add their LDAP identity3409DEPRECATION 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)3410 adds the LDAP identity to the existing SAML user3411 when signup is disabled3412DEPRECATION 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)3413 creates the user3414 when user confirmation email is enabled3415DEPRECATION 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 creates and confirms the user anyway3417 when the current minimum password length is different from the default minimum password length3418DEPRECATION 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 creates the user3420 blocking3421 signup with SAML only3422 dont block on create3423DEPRECATION 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)3424 does not block the user3425 block on create3426DEPRECATION 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)3427 blocks user3428 sign-in3429 dont block on create3430DEPRECATION 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)3431 is expected not to be blocked3432 block on create3433DEPRECATION 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 is expected not to be blocked3435 #find_user3436 raw info hash attributes empty3437DEPRECATION 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 does not mark user as external3439 #bypass_two_factor?3440 with authn_contexts_worth_two_factors configured3441DEPRECATION 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)3442 returns true when authn_context is worth two factors3443DEPRECATION 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)3444 returns false when authn_context is not worth two factors3445DEPRECATION 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)3446 returns false when authn_context is blank3447 without auth_contexts_worth_two_factors_configured3448DEPRECATION 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)3449 returns false when authn_context is present3450DEPRECATION 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)3451 returns false when authn_context is blank3452Banzai::ReferenceParser::MilestoneParser3453 #nodes_visible_to_user3454 when the link has a data-issue attribute3455 behaves like referenced feature visibility3456 when feature is disabled3457 does not create reference3458 when feature is enabled only for team members3459 does not create reference for non member3460 creates reference for member3461 when feature is enabled3462 creates reference3463 #referenced_by3464 when the link has a data-milestone attribute3465 using an existing milestone ID3466 returns an Array of milestones3467 using a non-existing milestone ID3468 returns an empty Array3469ImportExportUploader3470 local store3471 #move_to_store3472 returns true3473 object_store is REMOTE3474 behaves like builds correct paths3475 #store_dir3476 behaves like matches the method pattern3477 is expected to match /import_export_upload\/import_file\//3478 #cache_dir3479 behaves like matches the method pattern3480 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3481 #work_dir3482 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 #upload_path3485 behaves like matches the method pattern3486 is expected to match /import_export_upload\/import_file\//3487 #relative_path3488 is relative (PENDING: Path not set, skipping.)3489 .absolute_path3490 behaves like matches the method pattern3491 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3492 .base_dir3493 behaves like matches the method pattern3494 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3495 path traversal exploits3496 throws an exception3497 #move_to_store3498 returns false3499 with an export file directly uploaded3500 cleans up cached file3501 .workhorse_local_upload_path3502 returns path that includes uploads dir3503Gitlab::Ci::Pipeline::Chain::Build::Associations3504 when a bridge is passed in to the pipeline creation3505 links the pipeline to the upstream bridge job3506 never breaks the chain3507 when a bridge is not passed in to the pipeline creation3508 leaves the source pipeline empty3509 never breaks the chain3510Gitlab::Diff::DiffRefs3511 #==3512 when shas are missing3513 returns false3514 when shas are equal3515 returns true3516 when shas are unequal3517 returns false3518 when shas are truncated3519 when sha prefixes are too short3520 returns false3521 when sha prefixes are equal3522 returns true3523 when sha prefixes are unequal3524 returns false3525 #compare_in3526 with diff refs for the initial commit3527 returns an appropriate comparison3528 with diff refs for a commit3529 returns an appropriate comparison3530 with diff refs for a comparison through the base3531 returns an appropriate comparison3532 with diff refs for a straight comparison3533 returns an appropriate comparison3534Gitlab::Ci::Config::External::File::Project3535 #matching?3536 when a file and project is specified3537 returns true3538 with only file is specified3539 returns false3540 with only project is specified3541 returns false3542 with a missing local key3543 returns false3544 #valid?3545 when a valid path is used3546 returns true3547 when user does not have permission to access file3548 returns false3549 when a valid path with custom ref is used3550 returns true3551 when an empty file is used3552 returns false3553 when non-existing ref is used3554 returns false3555 when non-existing file is requested3556 returns false3557 when file is not a yaml file3558 returns false3559 #expand_context3560 inherits user, and target project and sha3561Gitlab::ImportExport::Project::ExportTask3562 when project is found3563/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 nil3564 performs project export successfully3565 behaves like rake task with disabled object_storage3566 disables direct & background upload only for service call3567 when project is not found3568 logs an error3569 returns false3570 when file path is invalid3571 logs an error3572 returns false3573 when after export strategy fails3574/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 nil3575 error is logged3576 when saving services fail3577 error is logged3578Jobs/Build.gitlab-ci.yml3579 the created pipeline3580 on master3581 creates the build job3582 on another branch3583 creates the build job3584 on tag3585 creates the build job3586 on merge request3587 has no jobs3588projects/merge_requests/_commits.html.haml3589 shows commits from source project3590 when there are hidden commits3591 shows notice about omitted commits3592gitlab:update_project_templates rake task3593 updates valid project templates3594WikiHelper3595 #wiki_page_title3596 sets the title for the show action3597 sets the title for a custom action3598 sets the title for an unsaved page3599 #breadcrumb3600 when the page is at the root level3601 returns the capitalized page name3602 when the page is inside a directory3603 returns the capitalized name of each directory and of the page itself3604 #wiki_attachment_upload_url3605 returns the upload endpoint for project wikis3606 raises an exception for unsupported wiki containers3607 #wiki_sort_controls3608 initial call3609 renders with default values3610 sort by title3611 renders a link with opposite direction3612 sort by created_at3613 renders a link with opposite direction3614 #wiki_sort_title3615 returns a title corresponding to a key3616 defaults to Title if a key is unknown3617 #wiki_page_tracking_context3618 returns the tracking context3619 returns a nest level of zero for toplevel files3620Banzai::ReferenceParser::ExternalIssueParser3621 #nodes_visible_to_user3622 when the link has a data-issue attribute3623 creates reference when the feature is 03624 creates reference when the feature is 103625 creates reference when the feature is 203626 #referenced_by3627 when the link has a data-project attribute3628 when the link has a data-external-issue attribute3629 returns an Array of ExternalIssue instances3630 when the link does not have a data-external-issue attribute3631 returns an empty Array3632 when the link does not have a data-project attribute3633 returns an empty Array3634 #issue_ids_per_project3635 returns a Hash containing range IDs per project3636 does not add a project when the data-external-issue attribute is empty3637Gitlab::Checks::SnippetCheck3638 #validate!3639 does not raise any error3640 trying to delete the branch3641 behaves like raises and logs error3642 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3643 trying to create the branch3644 behaves like raises and logs error3645 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3646 when branch is the same as the default branch3647 allows the operation3648 when snippet has an empty repo3649 allows the operation3650 when default_branch is nil3651 behaves like raises and logs error3652 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."3653Banzai::ReferenceParser::LabelParser3654 #nodes_visible_to_user3655 when the link has a data-issue attribute3656 behaves like referenced feature visibility3657 when feature is disabled3658 does not create reference3659 when feature is enabled only for team members3660 does not create reference for non member3661 creates reference for member3662 when feature is enabled3663 creates reference3664 #referenced_by3665 when the link has a data-label attribute3666 using an existing label ID3667 returns an Array of labels3668 using a non-existing label ID3669 returns an empty Array3670ApplicationHelper3671 current_controller?3672 returns true when controller matches argument3673 returns false when controller does not match argument3674 takes any number of arguments3675 when namespaced3676 returns true when controller matches argument3677 returns true when controller and namespace matches argument in path notation3678 returns false when namespace doesnt match3679 current_action?3680 returns true when action matches3681 returns false when action does not match3682 takes any number of arguments3683 #admin_section?3684 when controller is under the admin namespace3685 returns true3686 when controller is not under the admin namespace3687 returns true3688 simple_sanitize3689 allows the a tag3690 allows the span tag3691 disallows other tags3692 time_ago_with_tooltip3693 returns a time element3694 includes the date string3695 has a datetime attribute3696 has a formatted title attribute3697 includes a default js-timeago class3698 accepts a custom html_class3699 accepts a custom tooltip placement3700 converts to Time3701 add class for the short format3702 #active_when3703 is expected to eq "active"3704 is expected to eq nil3705 #promo_host3706 returns the url3707 #promo_url3708 returns the url3709 changes if promo_host changes3710 #contact_sales_url3711 returns the url3712 changes if promo_url changes3713 #support_url3714 when alternate support url is specified3715 returns the alternate support url3716 when alternate support url is not specified3717 builds the support url from the promo_url3718 #instance_review_permitted?3719 app_setting: true, is_admin: true3720 is expected to equal true3721 app_setting: true, is_admin: false3722 is expected to equal false3723 app_setting: true, is_admin: nil3724 is expected to equal nil3725 app_setting: false, is_admin: true3726 is expected to equal false3727 app_setting: false, is_admin: false3728 is expected to equal false3729 app_setting: false, is_admin: nil3730 is expected to equal false3731 #locale_path3732 returns the locale path with an `_`3733 #client_class_list3734 returns string containing CSS classes representing client browser and platform3735 #client_js_flags3736 returns map containing JS flags representing client browser and platform3737 #page_startup_api_calls3738 returns map containing JS Page Startup Calls3739 #autocomplete_data_sources3740 returns paths for autocomplete_sources_controller3741 #external_storage_url_or_path3742 when external storage is disabled3743 returns the passed path3744 when @snippet is set3745 returns the passed path3746 when external storage is enabled3747 returns the external storage URL prepended to the path3748 preserves the path query parameters3749 when project is public3750 returns does not append a token parameter3751 #body_data3752 when @project is not set3753 does not include project data in the body data elements3754 when @group is set3755 sets group in the body data elements3756 when @project is set3757 includes all possible body data elements and associates the project elements with project3758 when @project is owned by a group3759 includes all possible body data elements and associates the project elements with project3760 when controller is issues3761 when params[:id] is present and the issue exsits and action_name is show3762 sets all project and id elements correctly related to the issue3763 when current_user has download_code permission3764 returns find_file with the default branch3765Gitlab::Ci::Status::Stage::Common3766 does not have action3767 links to the pipeline details page3768 when user has permission to read pipeline3769 has details3770 when user does not have permission to read pipeline3771 does not have details3772DesignManagement::NewVersionWorker3773 #perform3774 the id is wrong or out-of-date3775 does not create system notes3776 does not invoke GenerateImageVersionsService3777 logs the reason for this failure3778 the version id is valid3779 creates a system note3780 does not create a system note if skip_system_notes is true3781 invokes GenerateImageVersionsService3782 does not log anything3783 the version includes multiple types of action3784 creates two system notes3785 calls design_version_added3786Gitlab::Consul::Internal3787 .api_url3788 returns correct value3789 when consul setting is not present in gitlab.yml3790 does not fail3791 .discover_service3792 behaves like returns nil given blank value of3793 is expected to be nil3794 is expected to be nil3795 behaves like returns nil given blank value of3796 is expected to be nil3797 is expected to be nil3798 one service discovered3799 returns the service address and port3800 multiple services discovered3801 uses the first service3802 behaves like handles failure response3803 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued3804 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued3805 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued3806 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued3807 raises Consul::Internal::UnexpectedResponseError when request returns 5003808 raises Consul::Internal::UnexpectedResponseError when request returns non json data3809 .discover_prometheus_server_address3810 returns the server address3811 behaves like returns nil given blank value of3812 is expected to be nil3813 is expected to be nil3814 behaves like handles failure response3815 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued3816 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued3817 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued3818 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued3819 raises Consul::Internal::UnexpectedResponseError when request returns 5003820 raises Consul::Internal::UnexpectedResponseError when request returns non json data3821Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules3822 #perform!3823 when pipeline has been skipped by workflow configuration3824 does not save the pipeline3825 breaks the chain3826 attaches an error to the pipeline3827 when pipeline has not been skipped by workflow configuration3828 continues the pipeline processing chain3829 does not skip the pipeline3830 attaches no errors3831API::Entities::MergeRequestApprovals3832 serializes an approved merge request3833 serializes a merge request that is not approved3834RemoveUnreferencedLfsObjectsWorker3835 #perform3836 removes unreferenced lfs objects3837 leaves referenced lfs objects3838 removes unreferenced lfs objects after project removal3839Gitlab::Ci::Status::Build::Common3840 #has_action?3841 is expected not to have action3842 #has_details?3843 when user has access to read build3844 is expected to have details3845 when user does not have access to read build3846 is expected not to have details3847 #details_path3848 links to the build details page3849 #illustration3850 provides a fallback empty state illustration3851ProtectedBranchesFinder3852 #execute3853 returns all protected branches of project by default3854 when search param is present3855 filters by search param3856 when there are more protected branches than the limit3857 returns limited protected branches of project3858Groups::GroupMembersHelper3859 .group_member_select_options3860 returns an options hash3861 #group_group_links_data_json3862 matches json schema3863 #members_data_json3864 for a group member3865 behaves like members.json3866 matches json schema3867 with user status set3868 behaves like members.json3869 matches json schema3870 for an invited group member3871 behaves like members.json3872 matches json schema3873 for an access request3874 behaves like members.json3875 matches json schema3876 #group_members_list_data_attributes3877 returns expected hash3878 #group_group_links_list_data_attributes3879 returns expected hash3880Clusters::Applications::ScheduleUpdateService3881 #execute3882 when application is able to be updated3883 when the application was recently scheduled3884 schedules worker with a backoff delay3885 when the application has not been recently updated3886 schedules worker3887Gitlab::Email::Smime::Signer3888 when using an intermediate CA3889 signs data appropriately with SMIME3890 when not using an intermediate CA3891 signs data appropriately with SMIME3892Projects::BatchOpenIssuesCountService3893 #refresh_cache3894 when cache is clean3895 refreshes cache keys correctly3896 when issues count is already cached3897 does update cache again3898Gitlab::Git::Patches::CommitPatches3899 #commit3900 applies the patches3901 updates the branch cache3902 when the repository does not exist3903 raises the correct error3904 when the patch does not apply3905 raises the correct error3906Packages::Conan::PackageFinder3907 #execute3908 packages that are not visible to user3909 is expected to eq [#<Packages::Package id: 20, project_id: 1315, created_at: "2021-03-03 12:15:28", updated_at: "2021-0..., name: "package-21", version: "1.0.0", package_type: "conan", creator_id: 2268, status: "default">]3910Gitlab::Cleanup::OrphanJobArtifactFilesBatch3911 no dry run3912 deletes only orphan job artifacts from disk3913 does not mix up job ID and artifact ID3914 with dry run3915 does not remove files3916Gitlab::ImportExport::SnippetsRepoSaver3917 bundle a project Git repo3918 creates the snippet bundles dir if not exists3919 when project does not have any snippet3920 does not perform any action3921 when project has snippets3922 calls the SnippetRepoSaver for each snippet3923 when one snippet cannot be saved3924 returns false and do not process other snippets3925Gitlab::X509::Signature3926 commit signature3927 verified signature3928 with trusted certificate store3929 behaves like a verified signature3930 returns a verified signature if email does match3931 returns an unverified signature if email does not match3932 returns an unverified signature if email does match and time is wrong3933 returns an unverified signature if certificate is revoked3934 with the certificate defined by OpenSSL::X509::DEFAULT_CERT_FILE3935 behaves like a verified signature3936 returns a verified signature if email does match3937 returns an unverified signature if email does not match3938 returns an unverified signature if email does match and time is wrong3939 returns an unverified signature if certificate is revoked3940 without trusted certificate within store3941 returns an unverified signature3942 invalid signature3943 returns nil3944 invalid commit message3945 returns nil3946 certificate_crl3947 valid crlDistributionPoints3948 creates an issuer3949 valid crlDistributionPoints providing multiple http URIs3950 extracts the first URI3951 email3952 subjectAltName with email, othername3953 extracts email3954 subjectAltName with othername, email3955 extracts email3956 #user3957 if email is not assigned to a user, return nil3958 if email is assigned to a user3959 returns user3960 tag signature3961 verified signature3962 with trusted certificate store3963 returns a verified signature if email does match3964 returns an unverified signature if email does not match3965 returns an unverified signature if email does match and time is wrong3966 returns an unverified signature if certificate is revoked3967 without trusted certificate within store3968 returns an unverified signature3969 invalid signature3970 returns nil3971 invalid message3972 returns nil3973Resolvers::SnippetsResolver3974 #resolve3975 calls SnippetsFinder3976 when using no filter3977 returns expected snippets3978 when using filters3979 returns the snippets by type3980 returns the snippets by visibility3981 returns snippets to explore3982 returns the snippets by single gid3983 returns the snippets by array of gid3984 returns an error if the id cannot be coerced3985 returns an error if both project and author are provided3986 by author id3987 returns the snippets3988 returns an error if the param id is invalid3989 by project id3990 returns the snippets3991 returns an error if the param id is invalid3992Users::UpdateService3993 #execute3994 updates time preferences3995 returns an error result when record cannot be updated3996 includes namespace error messages3997 updates the status if status params were given3998 does not delete the status if no status param was passed3999 includes status error messages4000 updates user detail with provided attributes4001 updating canonical email4002 if email was changed4003 calls canonicalize_email4004 if email was NOT changed4005 skips update canonicalize email service call4006 #execute!4007 updates the name4008 raises an error when record cannot be updated4009 fires system hooks when a new user is saved4010projects/commits/_commit.html.haml4011 with a signed commit4012 does not display a loading spinner for GPG status4013 with ci status4014 when pipelines are disabled4015 does not display a ci status icon4016 when pipelines are enabled4017 does display a ci status icon when pipelines are enabled4018Ci::PipelineArtifacts::CodeCoveragePresenter4019 #for_files4020 when code coverage has data4021 when filenames is empty4022 returns hash without coverage4023 when filenames do not match code coverage data4024 returns hash without coverage4025 when filenames matches code coverage data4026 when asking for one filename4027 returns coverage for the given filename4028 when asking for multiple filenames4029 returns coverage for a the given filenames4030Gitlab::SlashCommands::IssueSearch4031 #execute4032 when the user has no access4033 only returns the open issues4034 the user has access4035 returns all results4036 without hits on the query4037 returns an empty collection4038 self.match4039 matches the query4040MergeRequestCleanupRefsWorker4041 #perform4042 when merge request exists4043 is labeled as idempotent4044 performs multiple times sequentially without raising an exception4045 calls MergeRequests::CleanupRefsService#execute4046 when merge_request_refs_cleanup flag is disabled4047 does not clean up the merge request4048 when merge request does not exist4049 does not call MergeRequests::CleanupRefsService4050Gitlab::Usage::Metric4051 #definition4052 returns key_path metric definiton4053 #unflatten_default_path4054 key_path: "uuid", value: nil, expected_hash: {:uuid=>nil}4055 is expected to eq {:uuid=>nil}4056 key_path: "uuid", value: "1111", expected_hash: {:uuid=>"1111"}4057 is expected to eq {:uuid=>"1111"}4058 key_path: "counts.issues", value: nil, expected_hash: {:counts=>{:issues=>nil}}4059 is expected to eq {:counts=>{:issues=>nil}}4060 key_path: "counts.issues", value: 100, expected_hash: {:counts=>{:issues=>100}}4061 is expected to eq {:counts=>{:issues=>100}}4062 key_path: "usage_activity_by_stage.verify.ci_builds", value: 100, expected_hash: {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}4063 is expected to eq {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}4064TriggerVariableEntity4065 exposes the variable key4066 when user has access to the value4067 when user is maintainer4068 exposes the variable value4069 when user is owner4070 exposes the variable value4071 when user does not have access to the value4072 does not expose the variable value4073Gitlab::Database::Count::ExactCountStrategy4074 #count4075 counts all models4076 returns default value if count times out4077Ci::PipelineArtifacts::CodeQualityMrDiffPresenter4078 #for_files4079 when code quality has data4080 when filenames is empty4081 returns hash without quality4082 when filenames do not match code quality data4083 returns hash without quality4084 when filenames matches code quality data4085 when asking for one filename4086 returns quality for the given filename4087 when asking for multiple filenames4088 returns quality for the given filenames4089Gitlab::GitAccessProject4090 #check_namespace!4091 when namespace is nil4092 does not allow push and pull access4093 #check_project_accessibility!4094 when the project is nil4095 when user is allowed to create project in namespace4096 blocks pull access with "not found"4097 allows push access4098 when user is not allowed to create project in namespace4099 blocks push and pull with "not found"4100 #ensure_project_on_push!4101 when push4102 when project does not exist4103 when changes is _any4104 when authentication abilities include push code4105 when user can create project in namespace4106 creates a new project in the correct namespace4107 when namespace is blank4108 behaves like no project is created4109 does not create a new project4110 when namespace does not exist4111 behaves like no project is created4112 does not create a new project4113 when user cannot create project in namespace4114 behaves like no project is created4115 does not create a new project4116 when authentication abilities do not include push code4117 when user can create project in namespace4118 behaves like no project is created4119 does not create a new project4120 when check contains actual changes4121 behaves like no project is created4122 does not create a new project4123 when project exists4124 behaves like no project is created4125 does not create a new project4126 when deploy key is used4127 behaves like no project is created4128 does not create a new project4129 when pull4130 when project does not exist4131 behaves like no project is created4132 does not create a new project4133Gitlab::Import::MergeRequestCreator4134 #execute4135 merge request already exists4136 updates the data4137 new merge request4138 creates a new merge request4139clusters/clusters/gcp/_form4140 with all feature flags enabled4141 has a cloud run checkbox4142 with cloud run feature flag disabled4143 does not have a cloud run checkbox4144AwardEmojis::CollectUserEmojiService4145 #execute4146 returns an Array containing the awarded emoji names4147 returns an empty Array when no user is given4148Metrics::Dashboard::ClusterDashboardService4149 .valid_params?4150 is expected to be truthy4151 with matching dashboard_path4152 is expected to be truthy4153 missing cluster without dashboard_path4154 is expected to be falsey4155 #get_dashboard4156 behaves like valid dashboard service response4157 behaves like valid dashboard service response for schema4158 returns a json representation of the dashboard4159 behaves like caches the unprocessed dashboard for subsequent calls4160DEPRECATION 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 deprecated4161/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 here4162 (called from fetch at /builds/gitlab-org/gitlab/lib/gitlab/metrics/dashboard/cache.rb:15)4163 is expected to receive load_raw!(*(any args)) 1 time4164 behaves like refreshes cache when dashboard_version is changed4165 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/cluster_metrics.yml>) 2 times4166 behaves like dashboard_version contains SHA256 hash of dashboard file content4167 is expected to eq "e1a4f8cc2c044cf32273af2cd775eb484729baac0995db687d81d92686bf588e"4168 when called with a non-system dashboard4169 behaves like valid dashboard service response4170 behaves like valid dashboard service response for schema4171 returns a json representation of the dashboard4172Boards::CreateService4173 #execute4174 when board parent is a project4175 behaves like boards create service4176 when parent does not have a board4177 creates a new board4178 creates the default lists4179 when parent has a board4180 does not create a new board4181 when board parent is a group4182 behaves like boards create service4183 when parent does not have a board4184 creates a new board4185 creates the default lists4186 when parent has a board4187 does not create a new board4188Clusters::InstancePolicy4189 rules4190 when user4191 is expected to be disallowed :read_cluster4192 is expected to be disallowed :add_cluster4193 is expected to be disallowed :create_cluster4194 is expected to be disallowed :update_cluster4195 is expected to be disallowed :admin_cluster4196 when admin4197 when admin mode is enabled4198 is expected to be allowed :read_cluster4199 is expected to be allowed :add_cluster4200 is expected to be allowed :create_cluster4201 is expected to be allowed :update_cluster4202 is expected to be allowed :admin_cluster4203 when admin mode is disabled4204 is expected to be disallowed :read_cluster4205 is expected to be disallowed :add_cluster4206 is expected to be disallowed :create_cluster4207 is expected to be disallowed :update_cluster4208 is expected to be disallowed :admin_cluster4209Tooling::Danger::Helper4210 #gitlab_helper4211 when gitlab helper is not available4212 returns nil4213 when gitlab helper is available4214 returns the gitlab helper4215 when danger gitlab plugin is not available4216 returns nil4217 #release_automation?4218 when gitlab helper is not available4219 returns false4220 when gitlab helper is available4221 but the MR author isn't the RELEASE_TOOLS_BOT4222 returns false4223 and the MR author is the RELEASE_TOOLS_BOT4224 returns true4225 #all_changed_files4226 interprets a list of changes from the danger git plugin4227 #changed_lines4228 when file has diff4229 returns file changes4230 when file has no diff (renamed without changes)4231 returns a blank array4232 changed_files4233 returns list of changed files matching given regex4234 #all_ee_changes4235 returns all changed files starting with ee/4236 #ee?4237 returns true if CI_PROJECT_NAME if set to gitlab4238 delegates to CHANGELOG-EE.md existence if CI_PROJECT_NAME is set to something else4239 returns true if ee exists4240 returns false if ee doesn't exist4241 #project_name4242 returns gitlab if ee? returns true4243 returns gitlab-ce if ee? returns false4244 #markdown_list4245 creates a markdown list of items4246 wraps items in <details> when there are more than 10 items4247 #changes_by_category4248 categorizes changed files4249 Tooling::Danger::Helper::Changes4250 #has_category?4251 returns true when changes include given category, false otherwise4252 #by_category4253 returns an array of Change objects4254 returns an array of Change objects with the given category4255 #categories4256 returns an array of category symbols4257 #files4258 returns an array of files4259 #changes4260 returns an array of Change objects4261 groups changes by change type4262 #categories_for_file4263 path: "usage_data.rb", expected_categories: [:database, :backend]4264 is expected to eq [:database, :backend]4265 path: "doc/foo.md", expected_categories: [:docs]4266 is expected to eq [:docs]4267 path: "CONTRIBUTING.md", expected_categories: [:docs]4268 is expected to eq [:docs]4269 path: "LICENSE", expected_categories: [:docs]4270 is expected to eq [:docs]4271 path: "MAINTENANCE.md", expected_categories: [:docs]4272 is expected to eq [:docs]4273 path: "PHILOSOPHY.md", expected_categories: [:docs]4274 is expected to eq [:docs]4275 path: "PROCESS.md", expected_categories: [:docs]4276 is expected to eq [:docs]4277 path: "README.md", expected_categories: [:docs]4278 is expected to eq [:docs]4279 path: "ee/doc/foo", expected_categories: [:unknown]4280 is expected to eq [:unknown]4281 path: "ee/README", expected_categories: [:unknown]4282 is expected to eq [:unknown]4283 path: "app/assets/foo", expected_categories: [:frontend]4284 is expected to eq [:frontend]4285 path: "app/views/foo", expected_categories: [:frontend]4286 is expected to eq [:frontend]4287 path: "public/foo", expected_categories: [:frontend]4288 is expected to eq [:frontend]4289 path: "scripts/frontend/foo", expected_categories: [:frontend]4290 is expected to eq [:frontend]4291 path: "spec/javascripts/foo", expected_categories: [:frontend]4292 is expected to eq [:frontend]4293 path: "spec/frontend/bar", expected_categories: [:frontend]4294 is expected to eq [:frontend]4295 path: "vendor/assets/foo", expected_categories: [:frontend]4296 is expected to eq [:frontend]4297 path: "babel.config.js", expected_categories: [:frontend]4298 is expected to eq [:frontend]4299 path: "jest.config.js", expected_categories: [:frontend]4300 is expected to eq [:frontend]4301 path: "package.json", expected_categories: [:frontend]4302 is expected to eq [:frontend]4303 path: "yarn.lock", expected_categories: [:frontend]4304 is expected to eq [:frontend]4305 path: "config/foo.js", expected_categories: [:frontend]4306 is expected to eq [:frontend]4307 path: "config/deep/foo.js", expected_categories: [:frontend]4308 is expected to eq [:frontend]4309 path: "ee/app/assets/foo", expected_categories: [:frontend]4310 is expected to eq [:frontend]4311 path: "ee/app/views/foo", expected_categories: [:frontend]4312 is expected to eq [:frontend]4313 path: "ee/spec/javascripts/foo", expected_categories: [:frontend]4314 is expected to eq [:frontend]4315 path: "ee/spec/frontend/bar", expected_categories: [:frontend]4316 is expected to eq [:frontend]4317 path: ".gitlab/ci/frontend.gitlab-ci.yml", expected_categories: [:frontend, :engineering_productivity]4318 is expected to eq [:frontend, :engineering_productivity]4319 path: "app/models/foo", expected_categories: [:backend]4320 is expected to eq [:backend]4321 path: "bin/foo", expected_categories: [:backend]4322 is expected to eq [:backend]4323 path: "config/foo", expected_categories: [:backend]4324 is expected to eq [:backend]4325 path: "lib/foo", expected_categories: [:backend]4326 is expected to eq [:backend]4327 path: "rubocop/foo", expected_categories: [:backend]4328 is expected to eq [:backend]4329 path: ".rubocop.yml", expected_categories: [:backend]4330 is expected to eq [:backend]4331 path: ".rubocop_todo.yml", expected_categories: [:backend]4332 is expected to eq [:backend]4333 path: ".rubocop_manual_todo.yml", expected_categories: [:backend]4334 is expected to eq [:backend]4335 path: "spec/foo", expected_categories: [:backend]4336 is expected to eq [:backend]4337 path: "spec/foo/bar", expected_categories: [:backend]4338 is expected to eq [:backend]4339 path: "ee/app/foo", expected_categories: [:backend]4340 is expected to eq [:backend]4341 path: "ee/bin/foo", expected_categories: [:backend]4342 is expected to eq [:backend]4343 path: "ee/spec/foo", expected_categories: [:backend]4344 is expected to eq [:backend]4345 path: "ee/spec/foo/bar", expected_categories: [:backend]4346 is expected to eq [:backend]4347 path: "spec/features/foo", expected_categories: [:test]4348 is expected to eq [:test]4349 path: "ee/spec/features/foo", expected_categories: [:test]4350 is expected to eq [:test]4351 path: "spec/support/shared_examples/features/foo", expected_categories: [:test]4352 is expected to eq [:test]4353 path: "ee/spec/support/shared_examples/features/foo", expected_categories: [:test]4354 is expected to eq [:test]4355 path: "spec/support/shared_contexts/features/foo", expected_categories: [:test]4356 is expected to eq [:test]4357 path: "ee/spec/support/shared_contexts/features/foo", expected_categories: [:test]4358 is expected to eq [:test]4359 path: "spec/support/helpers/features/foo", expected_categories: [:test]4360 is expected to eq [:test]4361 path: "ee/spec/support/helpers/features/foo", expected_categories: [:test]4362 is expected to eq [:test]4363 path: "generator_templates/foo", expected_categories: [:backend]4364 is expected to eq [:backend]4365 path: "vendor/languages.yml", expected_categories: [:backend]4366 is expected to eq [:backend]4367 path: "file_hooks/examples/", expected_categories: [:backend]4368 is expected to eq [:backend]4369 path: "Gemfile", expected_categories: [:backend]4370 is expected to eq [:backend]4371 path: "Gemfile.lock", expected_categories: [:backend]4372 is expected to eq [:backend]4373 path: "Rakefile", expected_categories: [:backend]4374 is expected to eq [:backend]4375 path: "FOO_VERSION", expected_categories: [:backend]4376 is expected to eq [:backend]4377 path: "Dangerfile", expected_categories: [:engineering_productivity]4378 is expected to eq [:engineering_productivity]4379 path: "danger/commit_messages/Dangerfile", expected_categories: [:engineering_productivity]4380 is expected to eq [:engineering_productivity]4381 path: "ee/danger/commit_messages/Dangerfile", expected_categories: [:engineering_productivity]4382 is expected to eq [:engineering_productivity]4383 path: "danger/commit_messages/", expected_categories: [:engineering_productivity]4384 is expected to eq [:engineering_productivity]4385 path: "ee/danger/commit_messages/", expected_categories: [:engineering_productivity]4386 is expected to eq [:engineering_productivity]4387 path: ".gitlab-ci.yml", expected_categories: [:engineering_productivity]4388 is expected to eq [:engineering_productivity]4389 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_categories: [:engineering_productivity]4390 is expected to eq [:engineering_productivity]4391 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_categories: [:engineering_productivity]4392 is expected to eq [:engineering_productivity]4393 path: "scripts/foo", expected_categories: [:engineering_productivity]4394 is expected to eq [:engineering_productivity]4395 path: "tooling/danger/foo", expected_categories: [:engineering_productivity]4396 is expected to eq [:engineering_productivity]4397 path: "ee/tooling/danger/foo", expected_categories: [:engineering_productivity]4398 is expected to eq [:engineering_productivity]4399 path: "lefthook.yml", expected_categories: [:engineering_productivity]4400 is expected to eq [:engineering_productivity]4401 path: ".editorconfig", expected_categories: [:engineering_productivity]4402 is expected to eq [:engineering_productivity]4403 path: "tooling/bin/find_foss_tests", expected_categories: [:engineering_productivity]4404 is expected to eq [:engineering_productivity]4405 path: ".codeclimate.yml", expected_categories: [:engineering_productivity]4406 is expected to eq [:engineering_productivity]4407 path: ".gitlab/CODEOWNERS", expected_categories: [:engineering_productivity]4408 is expected to eq [:engineering_productivity]4409 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_categories: [:ci_template]4410 is expected to eq [:ci_template]4411 path: "lib/gitlab/ci/templates/dotNET-Core.yml", expected_categories: [:ci_template]4412 is expected to eq [:ci_template]4413 path: "ee/FOO_VERSION", expected_categories: [:unknown]4414 is expected to eq [:unknown]4415 path: "db/schema.rb", expected_categories: [:database]4416 is expected to eq [:database]4417 path: "db/structure.sql", expected_categories: [:database]4418 is expected to eq [:database]4419 path: "db/migrate/foo", expected_categories: [:database, :migration]4420 is expected to eq [:database, :migration]4421 path: "db/post_migrate/foo", expected_categories: [:database, :migration]4422 is expected to eq [:database, :migration]4423 path: "ee/db/geo/migrate/foo", expected_categories: [:database, :migration]4424 is expected to eq [:database, :migration]4425 path: "ee/db/geo/post_migrate/foo", expected_categories: [:database, :migration]4426 is expected to eq [:database, :migration]4427 path: "app/models/project_authorization.rb", expected_categories: [:database]4428 is expected to eq [:database]4429 path: "app/services/users/refresh_authorized_projects_service.rb", expected_categories: [:database]4430 is expected to eq [:database]4431 path: "lib/gitlab/background_migration.rb", expected_categories: [:database]4432 is expected to eq [:database]4433 path: "lib/gitlab/background_migration/foo", expected_categories: [:database]4434 is expected to eq [:database]4435 path: "ee/lib/gitlab/background_migration/foo", expected_categories: [:database]4436 is expected to eq [:database]4437 path: "lib/gitlab/database.rb", expected_categories: [:database]4438 is expected to eq [:database]4439 path: "lib/gitlab/database/foo", expected_categories: [:database]4440 is expected to eq [:database]4441 path: "ee/lib/gitlab/database/foo", expected_categories: [:database]4442 is expected to eq [:database]4443 path: "lib/gitlab/github_import.rb", expected_categories: [:database]4444 is expected to eq [:database]4445 path: "lib/gitlab/github_import/foo", expected_categories: [:database]4446 is expected to eq [:database]4447 path: "lib/gitlab/sql/foo", expected_categories: [:database]4448 is expected to eq [:database]4449 path: "rubocop/cop/migration/foo", expected_categories: [:database]4450 is expected to eq [:database]4451 path: "db/fixtures/foo.rb", expected_categories: [:backend]4452 is expected to eq [:backend]4453 path: "ee/db/fixtures/foo.rb", expected_categories: [:backend]4454 is expected to eq [:backend]4455 path: "qa/foo", expected_categories: [:qa]4456 is expected to eq [:qa]4457 path: "ee/qa/foo", expected_categories: [:qa]4458 is expected to eq [:qa]4459 path: "changelogs/foo", expected_categories: [:none]4460 is expected to eq [:none]4461 path: "ee/changelogs/foo", expected_categories: [:none]4462 is expected to eq [:none]4463 path: "locale/gitlab.pot", expected_categories: [:none]4464 is expected to eq [:none]4465 path: "FOO", expected_categories: [:unknown]4466 is expected to eq [:unknown]4467 path: "foo", expected_categories: [:unknown]4468 is expected to eq [:unknown]4469 path: "foo/bar.rb", expected_categories: [:backend]4470 is expected to eq [:backend]4471 path: "foo/bar.js", expected_categories: [:frontend]4472 is expected to eq [:frontend]4473 path: "foo/bar.txt", expected_categories: [:none]4474 is expected to eq [:none]4475 path: "foo/bar.md", expected_categories: [:none]4476 is expected to eq [:none]4477 having specific changes4478 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"]4479 has the correct categories4480 expected_categories: [:database, :backend], patch: "+ estimate_batch_distinct_count(User.active)", changed_files: ["usage_data.rb"]4481 has the correct categories4482 expected_categories: [:backend], patch: "+ alt_usage_data(User.active)", changed_files: ["usage_data.rb"]4483 has the correct categories4484 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["user.rb"]4485 has the correct categories4486 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["usage_data/topology.rb"]4487 has the correct categories4488 expected_categories: [:backend], patch: "+ foo_count(User.active)", changed_files: ["usage_data.rb"]4489 has the correct categories4490 #label_for_category4491 category: :backend, expected_label: "~backend"4492 is expected to eq "~backend"4493 category: :database, expected_label: "~database"4494 is expected to eq "~database"4495 category: :docs, expected_label: "~documentation"4496 is expected to eq "~documentation"4497 category: :foo, expected_label: "~foo"4498 is expected to eq "~foo"4499 category: :frontend, expected_label: "~frontend"4500 is expected to eq "~frontend"4501 category: :none, expected_label: ""4502 is expected to eq ""4503 category: :qa, expected_label: "~QA"4504 is expected to eq "~QA"4505 category: :engineering_productivity, expected_label: "~\"Engineering Productivity\" for CI, Danger"4506 is expected to eq "~\"Engineering Productivity\" for CI, Danger"4507 category: :ci_template, expected_label: "~\"ci::templates\""4508 is expected to eq "~\"ci::templates\""4509 #new_teammates4510 returns an array of Teammate4511 #mr_iid4512 returns "" when `gitlab_helper` is unavailable4513 returns the MR IID when `gitlab_helper` is available4514 #mr_title4515 returns "" when `gitlab_helper` is unavailable4516 returns the MR title when `gitlab_helper` is available4517 #mr_web_url4518 returns "" when `gitlab_helper` is unavailable4519 returns the MR web_url when `gitlab_helper` is available4520 #mr_labels4521 returns "" when `gitlab_helper` is unavailable4522 returns the MR labels when `gitlab_helper` is available4523 #mr_target_branch4524 returns "" when `gitlab_helper` is unavailable4525 returns the MR web_url when `gitlab_helper` is available4526 #security_mr?4527 returns false when on a normal merge request4528 returns true when on a security merge request4529 #draft_mr?4530 returns true for a draft MR4531 returns false for non draft MR4532 #cherry_pick_mr?4533 when MR title does not mention a cherry-pick4534 returns false4535 when MR title mentions a cherry-pick4536 returns true4537 returns true4538 returns true4539 #run_all_rspec_mr?4540 when MR title does not mention RUN ALL RSPEC4541 returns false4542 when MR title mentions RUN ALL RSPEC4543 returns true4544 #run_as_if_foss_mr?4545 when MR title does not mention RUN AS-IF-FOSS4546 returns false4547 when MR title mentions RUN AS-IF-FOSS4548 returns true4549 #stable_branch?4550 returns false when `gitlab_helper` is unavailable4551 when MR target branch is not a stable branch4552 returns false4553 when MR target branch is a stable branch4554 returns true4555 returns true4556 #mr_has_label?4557 returns false when `gitlab_helper` is unavailable4558 when mr has labels4559 returns true with a matched label4560 returns false with unmatched label4561 returns true with an array of labels4562 returns true with multi arguments with matched labels4563 returns false with multi arguments with unmatched labels4564 #labels_list4565 composes the labels string4566 returns empty string for empty array4567 when passing a separator4568 composes the labels string with the given separator4569 #prepare_labels_for_mr4570 composes the labels string4571 returns empty string for empty array4572 #has_ci_changes?4573 when .gitlab/ci is changed4574 returns true4575 when .gitlab-ci.yml is changed4576 returns true4577 when neither .gitlab/ci/ or .gitlab-ci.yml is changed4578 returns false4579 #group_label4580 returns nil when no group label is present4581 returns the group label when a group label is present4582ProjectMemberPresenter4583 #can_resend_invite?4584 when project_member is invited4585 and user can admin_project_member4586 is expected to eq true4587 and user cannot admin_project_member4588 is expected to eq false4589 when project_member is not invited4590 and user can admin_project_member4591 is expected to eq false4592 and user cannot admin_project_member4593 is expected to eq false4594 #can_update?4595 when user can update_project_member4596 is expected to eq true4597 when user cannot update_project_member4598 is expected to eq false4599 #can_remove?4600 when user can destroy_project_member4601 is expected to eq true4602 when user cannot destroy_project_member4603 is expected to eq false4604 #can_approve?4605 when project_member has request an invite4606 and user can update_project_member4607 is expected to eq true4608 and user cannot update_project_member4609 is expected to eq false4610 when project_member did not request an invite4611 and user can update_project_member4612 is expected to eq false4613 and user cannot update_project_member4614 is expected to eq false4615 behaves like #valid_level_roles4616 returns all roles when no parent member is present4617 returns higher roles when a parent member is present4618Gitlab::GithubImport::Importer::LabelLinksImporter4619 #execute4620 creates the label links4621 #create_labels4622 inserts the label links in bulk4623 does not insert label links for non-existing labels4624 #find_target_id4625 returns the ID of the issuable to create the label link for4626Gitlab::UsageDataCounters::HLLRedisCounter4627 .categories4628 gets all unique category names4629 known_events4630 .events_for_category4631 gets the event names for given category4632 .track_event4633 with feature flag set4634 tracks the event when feature enabled4635 does not track the event with feature flag disabled4636 with no feature flag set4637 tracks the event4638 when usage_ping is disabled4639 does not track the event4640 when usage_ping is enabled4641 tracks event when using symbol4642 tracks events with multiple values4643 raise error if metrics don't have same aggregation4644 raise error if metrics of unknown event4645 for weekly events4646 sets the keys in Redis to expire automatically after the given expiry time4647 sets the keys in Redis to expire automatically after 6 weeks by default4648 for daily events4649 sets the keys in Redis to expire after the given expiry time4650 sets the keys in Redis to expire after 29 days by default4651 .track_event_in_context4652 with valid contex4653 increments context event counter4654 tracks events with multiple values4655 with empty context4656 does not increment a counter4657 when sending invalid context4658 does not increment a counter4659 .unique_events4660 raise error if metrics are not in the same slot4661 raise error if metrics are not in the same category4662 raise error if metrics don't have same aggregation4663 when data for the last complete week4664 is expected to eq 14665 when data for the last 4 complete weeks4666 is expected to eq 24667 when data for the week 4 weeks ago4668 is expected to eq 14669 when using symbol as parameter4670 is expected to eq 14671 when using daily aggregation4672 is expected to eq 24673 is expected to eq 34674 is expected to eq 14675 when no slot is set4676 is expected to eq 14677 when data crosses into new year4678 does not raise error4679 .weekly_redis_keys4680 returns 1 key for last for week4681 returns 4 key for last for weeks4682 start_date: "2020-12-21", end_date: "2020-12-21", keys: []4683 returns the correct keys4684 start_date: "2020-12-21", end_date: "2020-12-20", keys: []4685 returns the correct keys4686 start_date: "2020-12-21", end_date: "2020-11-21", keys: []4687 returns the correct keys4688 start_date: "2021-01-01", end_date: "2020-12-28", keys: []4689 returns the correct keys4690 start_date: "2020-12-21", end_date: "2020-12-28", keys: ["g_{compliance}_dashboard-2020-52"]4691 returns the correct keys4692 start_date: "2020-12-21", end_date: "2021-01-01", keys: ["g_{compliance}_dashboard-2020-52"]4693 returns the correct keys4694 start_date: "2020-12-27", end_date: "2021-01-01", keys: ["g_{compliance}_dashboard-2020-52"]4695 returns the correct keys4696 start_date: "2020-12-26", end_date: "2021-01-04", keys: ["g_{compliance}_dashboard-2020-52", "g_{compliance}_dashboard-2020-53"]4697 returns the correct keys4698 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"]4699 returns the correct keys4700 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"]4701 returns the correct keys4702 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"]4703 returns the correct keys4704 context level tracking4705 with correct arguments4706 event_names: ["event_name_1"], context: "default", value: 24707 is expected to eq 24708 event_names: ["event_name_1"], context: "", value: 04709 is expected to eq 04710 event_names: ["event_name_2"], context: "", value: 04711 is expected to eq 04712 with invalid context4713 raise error4714 unique_events_data4715 returns the number of unique events for all known events4716 .calculate_events_union4717 calculates union of given events4718 validates and raise exception if events has mismatched slot or aggregation4719 .weekly_time_range4720 return hash with weekly time range boundaries4721 .monthly_time_range4722 return hash with monthly time range boundaries4723Ci::VariablesFinder4724 #initialize4725 without key filter4726 raises an error4727 #execute4728 with key filter4729 returns var14730 with key and environment_scope filter4731 returns var24732Gitlab::Kubernetes::Node4733 #all4734 when connection to the cluster is successful4735 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"}}]}4736 when an uncategorised error is raised4737 is expected to eq {:node_connection_error=>:unknown_error}4738 notifies Sentry4739ServicePolicy4740 when the integration is a prometheus_service4741 rules4742 is expected to be disallowed :admin_project4743 when maintainer4744 is expected to be allowed :admin_project4745Terraform::StatePolicy4746 rules4747 no access4748 is expected to be disallowed :read_terraform_state4749 is expected to be disallowed :admin_terraform_state4750 developer4751 is expected to be allowed :read_terraform_state4752 is expected to be disallowed :admin_terraform_state4753 maintainer4754 is expected to be allowed :read_terraform_state4755 is expected to be allowed :admin_terraform_state4756ProtectedBranches::UpdateService4757 #execute4758 updates a protected branch4759 without admin_project permissions4760 raises error4761 when a policy restricts rule creation4762 prevents creation of the protected branch rule4763Gitlab::BareRepositoryImport::Repository4764 legacy storage4765 stores the repo path4766 stores the group path4767 stores the project name4768 stores the wiki path4769 #processable?4770 returns false if it is a wiki4771 returns true if group path is missing4772 returns true when group path and project name are present4773 #project_full_path4774 returns the project full path with trailing slash in the root path4775 returns the project full path with no trailing slash in the root path4776 hashed storage4777 stores the repo path4778 stores the wiki path4779 reads the group path from .git/config4780 reads the project name from .git/config4781 #processable?4782 returns false if it is a wiki4783 returns false when group and project name are missing4784 returns true when group path and project name are present4785 #project_full_path4786 returns the project full path with trailing slash in the root path4787 returns the project full path with no trailing slash in the root path4788Mutations::Security::CiConfiguration::ConfigureSast4789 is expected to require graphql authorizations :push_code4790 #resolve4791 raises an error if the resource is not accessible to the user4792 when user does not have enough permissions4793 raises an error4794 when user is a maintainer of a different project4795 raises an error4796 when the user does not have permission to create a new branch4797 returns an array of errors4798 when the user can create a merge request4799 when service successfully generates a path to create a new merge request4800 returns a success path4801 when service can not generate any path to create a new merge request4802 returns an array of errors4803IssueEmailParticipant4804 Associations4805 is expected to belong to issue required:4806 Validations4807 is expected to validate that :issue cannot be empty/falsy4808 is expected to validate that :email is unique within the scope of :issue_id4809 is invalid if the email is nil4810 behaves like an object with RFC3696 compliant email-formatted attributes4811 specifically its :email attribute4812 with a value of 'info@example.com'4813 is valid4814 with a value of 'info+test@example.com'4815 is valid4816 with a value of 'o'reilly@example.com'4817 is valid4818 with a value of 'foobar'4819 is invalid4820 with a value of 'test@test@example.com'4821 is invalid4822 with a value of 'test.test.@example.com'4823 is invalid4824 with a value of '.test.test@example.com'4825 is invalid4826 with a value of 'mailto:test@example.com'4827 is invalid4828 with a value of 'lol!'+=?><#$%^&*()@gmail.com'4829 is invalid4830Ci::CreatePipelineService4831 .pre/.post stages4832 when pipeline contains a build except .pre/.post4833 creates a pipeline4834 when pipeline does not contain any other build except .pre/.post4835 does not create a pipeline4836Gitlab::Ci::Pipeline::Seed::Environment4837 #to_resource4838 when job has environment name attribute4839 behaves like returning a correct environment4840 returns a persisted environment object4841 when environment has already existed4842 returns the existing environment object4843 and job environment also has an auto_stop_in attribute4844 behaves like returning a correct environment4845 returns a persisted environment object4846 when environment has already existed4847 returns the existing environment object4848 when job starts a review app4849 behaves like returning a correct environment4850 returns a persisted environment object4851 when environment has already existed4852 returns the existing environment object4853 when job stops a review app4854 behaves like returning a correct environment4855 returns a persisted environment object4856 when environment has already existed4857 returns the existing environment object4858ProjectPagesMetadatum4859 .only_on_legacy_storage4860 returns only deployed records without deployment4861AlertManagement::HttpIntegrationPolicy4862 rules4863 is expected to be disallowed :admin_operations4864 when maintainer4865 is expected to be allowed :admin_operations4866Mutations::Terraform::State::Unlock4867 is expected to eq "TerraformStateUnlock"4868 is expected to require graphql authorizations :admin_terraform_state4869 #resolve4870 user does not have permission4871 raises an error4872 user has permission4873 unlocks the state4874 state is already unlocked4875 does not modify the state4876 with invalid params4877 raises an error4878WebIdeTerminalSerializer4879 represents WebIdeTerminalEntity entities4880 accepts WebIdeTerminal as a resource4881 when resource is a build4882 transforms it into a WebIdeTerminal resource4883IrkerService4884 Associations4885 is expected to belong to project required:4886 is expected to have one service_hook4887 Validations4888 when service is active4889 is expected to validate that :recipients cannot be empty/falsy4890 when service is inactive4891 is expected not to validate that :recipients cannot be empty/falsy4892 Execute4893 sends valid JSON messages to an Irker listener4894ApplicationSetting::TermPolicy4895 has the correct permissions4896 for anonymous users4897 has the correct permissions4898 when the terms are not current4899 has the correct permissions4900 when the user already accepted the terms4901 has the correct permissions4902Gitlab::Diff::LineMapper4903 #old_to_new4904 with a diff file4905 returns the new line number for the old line number4906 without a diff file4907 returns the same line number4908 #new_to_old4909 with a diff file4910 returns the old line number for the new line number4911 without a diff file4912 returns the same line number4913MergeRequestSidebarBasicEntity4914 #current_user4915 contains attributes related to the current user4916Clusters::Cleanup::ServiceAccountWorker4917 #perform4918 when cluster.cleanup_status is cleanup_removing_service_account4919 calls Clusters::Cleanup::ServiceAccountService4920 when cluster.cleanup_status is not cleanup_removing_service_account4921 does not call Clusters::Cleanup::ServiceAccountService4922notify/autodevops_disabled_email.text.erb4923 when the pipeline contains a failed job4924 renders the email correctly4925Gitlab::GitlabImport::ProjectCreator4926 creates project4927CacheableAttributes4928 .expire4929 wipes the cache4930 .current_without_cache4931 defaults to last4932 can be overridden4933 .cache_key4934 excludes cache attributes4935 .defaults4936 defaults to {}4937 with defaults defined4938 can be overridden4939 .build_from_defaults4940 without any attributes given4941 intializes a new object with the defaults4942 with attributes given4943 intializes a new object with the given attributes merged into the defaults4944 edge cases on concrete implementations4945 .build_from_defaults4946 without any attributes given4947 intializes all attributes even if they are nil4948 .current4949 uses RequestStore in addition to process memory cache4950 redis unavailable4951 in production environment4952 returns an uncached record and logs a warning4953 in other environments4954 returns an uncached record and logs a warning4955 when a record is not yet present4956 does not cache nil object4957 caches non-nil object4958 edge cases4959 caching behavior4960 retrieves upload fields properly4961 retrieves markdown fields properly4962 .cached4963 when cache is cold4964 returns nil4965 when cached is warm4966 retrieves the record from cache4967 #cache!4968 caches the attributes4969 edge cases4970 caches the attributes4971BlobViewer::Changelog4972 #render_error4973 when there are no tags4974 returns :no_tags4975 when there are tags4976 returns nil4977Namespace::TraversalHierarchy4978 .for_namespace4979 with root group4980 is expected to eq #<Group id:2696 @group215>4981 with child group4982 is expected to eq #<Group id:2696 @group215>4983 with group outside of hierarchy4984 is expected not to eq #<Group id:2696 @group215>4985 .new4986 with root group4987 is expected to eq #<Group id:2696 @group215>4988 with child group4989 is expected to raise StandardError with "Must specify a root node"4990 #incorrect_traversal_ids4991 is expected to contain exactly #<Group id:2696 @group215>, #<Group id:2697 @group215/group216>, #<Group id:2698 @group215/group216/group217>, #<Group id:2699 @group215/group216/group217/group218>, #<Group id:2700 @group215/group216/group217/group219>, #<Group id:2701 @group215/group216/group217/group220>, #<Group id:2702 @group215/group216/group217/group221>, #<Group id:2703 @group215/group216/group222>, #<Group id:2704 @group215/group216/group222/group223>, #<Group id:2705 @group215/group216/group222/group224>, #<Group id:2706 @group215/group216/group222/group225>, #<Group id:2707 @group215/group216/group222/group226>, #<Group id:2708 @group215/group216/group227>, #<Group id:2709 @group215/group216/group227/group228>, #<Group id:2710 @group215/group216/group227/group229>, #<Group id:2711 @group215/group216/group227/group230>, #<Group id:2712 @group215/group216/group227/group231>, #<Group id:2713 @group215/group216/group232>, #<Group id:2714 @group215/group216/group232/group233>, #<Group id:2715 @group215/group216/group232/group234>, #<Group id:2716 @group215/group216/group232/group235>, #<Group id:2717 @group215/group216/group232/group236>, #<Group id:2718 @group215/group237>, #<Group id:2719 @group215/group237/group238>, #<Group id:2720 @group215/group237/group238/group239>, #<Group id:2721 @group215/group237/group238/group240>, #<Group id:2722 @group215/group237/group238/group241>, #<Group id:2723 @group215/group237/group238/group242>, #<Group id:2724 @group215/group237/group243>, #<Group id:2725 @group215/group237/group243/group244>, #<Group id:2726 @group215/group237/group243/group245>, #<Group id:2727 @group215/group237/group243/group246>, #<Group id:2728 @group215/group237/group243/group247>, #<Group id:2729 @group215/group237/group248>, #<Group id:2730 @group215/group237/group248/group249>, #<Group id:2731 @group215/group237/group248/group250>, #<Group id:2732 @group215/group237/group248/group251>, #<Group id:2733 @group215/group237/group248/group252>, #<Group id:2734 @group215/group237/group253>, #<Group id:2735 @group215/group237/group253/group254>, #<Group id:2736 @group215/group237/group253/group255>, #<Group id:2737 @group215/group237/group253/group256>, #<Group id:2738 @group215/group237/group253/group257>, #<Group id:2739 @group215/group258>, #<Group id:2740 @group215/group258/group259>, #<Group id:2741 @group215/group258/group259/group260>, #<Group id:2742 @group215/group258/group259/group261>, #<Group id:2743 @group215/group258/group259/group262>, #<Group id:2744 @group215/group258/group259/group263>, #<Group id:2745 @group215/group258/group264>, #<Group id:2746 @group215/group258/group264/group265>, #<Group id:2747 @group215/group258/group264/group266>, #<Group id:2748 @group215/group258/group264/group267>, #<Group id:2749 @group215/group258/group264/group268>, #<Group id:2750 @group215/group258/group269>, #<Group id:2751 @group215/group258/group269/group270>, #<Group id:2752 @group215/group258/group269/group271>, #<Group id:2753 @group215/group258/group269/group272>, #<Group id:2754 @group215/group258/group269/group273>, #<Group id:2755 @group215/group258/group274>, #<Group id:2756 @group215/group258/group274/group275>, #<Group id:2757 @group215/group258/group274/group276>, #<Group id:2758 @group215/group258/group274/group277>, #<Group id:2759 @group215/group258/group274/group278>, #<Group id:2760 @group215/group279>, #<Group id:2761 @group215/group279/group280>, #<Group id:2762 @group215/group279/group280/group281>, #<Group id:2763 @group215/group279/group280/group282>, #<Group id:2764 @group215/group279/group280/group283>, #<Group id:2765 @group215/group279/group280/group284>, #<Group id:2766 @group215/group279/group285>, #<Group id:2767 @group215/group279/group285/group286>, #<Group id:2768 @group215/group279/group285/group287>, #<Group id:2769 @group215/group279/group285/group288>, #<Group id:2770 @group215/group279/group285/group289>, #<Group id:2771 @group215/group279/group290>, #<Group id:2772 @group215/group279/group290/group291>, #<Group id:2773 @group215/group279/group290/group292>, #<Group id:2774 @group215/group279/group290/group293>, #<Group id:2775 @group215/group279/group290/group294>, #<Group id:2776 @group215/group279/group295>, #<Group id:2777 @group215/group279/group295/group296>, #<Group id:2778 @group215/group279/group295/group297>, #<Group id:2779 @group215/group279/group295/group298>, and #<Group id:2780 @group215/group279/group295/group299>4992 #sync_traversal_ids!4993 is expected to be empty4994 behaves like hierarchy with traversal_ids4995 will be valid4996ImportExportUpload4997 import4998 behaves like stores the Import/Export file4999 stores the import file5000 export5001 behaves like stores the Import/Export file5002 stores the import file5003Gitlab::Import::SetAsyncJid5004 .set_jid5005 sets the JID in Redis5006 updates the import JID of the project5007rest-client dns rebinding protection5008 behaves like a request using Gitlab::UrlBlocker5009 when local requests are not allowed5010 allows an external request with http5011 allows an external request with https5012 raises error when it is a request that resolves to a local address5013 raises error when it is a request that resolves to a localhost address5014 raises error when it is a request to local address5015 raises error when it is a request to localhost address5016 when port different from URL scheme is used5017 allows the request5018 raises error when it is a request to local address5019 raises error when it is a request to localhost address5020 when DNS rebinding protection is disabled5021 allows the request5022 when http(s) proxy environment variable is set5023 allows the request5024 when local requests are allowed5025 allows an external request5026 allows an external request that resolves to a local address5027 allows an external request that resolves to a localhost address5028 allows a local address request5029 allows a localhost address request5030Uploads::Local5031 model with uploads5032 #keys5033 returns keys5034 #delete_keys5035 deletes multiple data5036Gitlab::HttpIO5037 #close5038 is expected to be nil5039 #binmode5040 is expected to be nil5041 #binmode?5042 is expected to be truthy5043 #path5044 is expected to be nil5045 #url5046 is expected to eq "http://object-storage/trace"5047 #seek5048 when moves pos to end of the file5049 is expected to eq 1924375050 when moves pos to middle of the file5051 is expected to eq 962185052 when moves pos around5053 matches the result5054 #eof?5055 when current pos is at end of the file5056 is expected to be truthy5057 when current pos is not at end of the file5058 is expected to be falsey5059 #each_line5060 yields lines5061 when buckets on GCS5062 when BUFFER_SIZE is larger than file size5063 calls get_chunk only once5064 #read5065 when there are no network issue5066 when read whole size5067 when BUFFER_SIZE is smaller than file size5068 reads a trace5069 when BUFFER_SIZE is larger than file size5070 reads a trace5071 when read only first 100 bytes5072 when BUFFER_SIZE is smaller than file size5073 reads a trace5074 when BUFFER_SIZE is larger than file size5075 reads a trace5076 when tries to read oversize5077 when BUFFER_SIZE is smaller than file size5078 reads a trace5079 when BUFFER_SIZE is larger than file size5080 reads a trace5081 when tries to read 0 bytes5082 when BUFFER_SIZE is smaller than file size5083 reads a trace5084 when BUFFER_SIZE is larger than file size5085 reads a trace5086 when there is anetwork issue5087 reads a trace5088 #readline5089 when there is anetwork issue5090 reads a trace5091 when BUFFER_SIZE is smaller than file size5092 behaves like all line matching5093 reads a line5094 when BUFFER_SIZE is larger than file size5095 behaves like all line matching5096 reads a line5097 when pos is at middle of the file5098 reads from pos5099 #write5100 is expected to raise NotImplementedError5101 #truncate5102 is expected to raise NotImplementedError5103 #flush5104 is expected to raise NotImplementedError5105 #present?5106 is expected to be truthy5107 #send5108 does not set the "accept-encoding" header5109IncidentManagement::CreateIncidentLabelService5110 behaves like incident management label service5111 execute5112 with predefined project label5113 behaves like existing label5114 returns the existing label5115 with predefined group label5116 behaves like existing label5117 returns the existing label5118 without label5119 when user has permissions to create labels5120 behaves like new label5121 creates a new label5122 when user has no permissions to create labels5123 behaves like new label5124 creates a new label5125Mutations::ReleaseAssetLinks::Create5126 #resolve5127 when the user has access and no validation errors occur5128 creates a new release asset link5129 when the user doesn't have access to the project5130 raises an error5131 when the project doesn't exist5132 raises an error5133 when a validation errors occur5134 when the release doesn't exist5135 behaves like returns errors-as-data5136 is expected to eq ["Release with tag \"nonexistent-tag\" was not found"]5137 when the URL is badly formatted5138 behaves like returns errors-as-data5139 is expected to eq ["Url is blocked: Only allowed schemes are http, https, ftp"]5140 when the name is not provided5141 behaves like returns errors-as-data5142 is expected to eq ["Name can't be blank"]5143 when the link already exists5144 behaves like returns errors-as-data5145 is expected to eq ["Url has already been taken", "Name has already been taken", "Filepath has already been taken"]5146Gitlab::HookData::IssueBuilder5147 #build5148 includes safe attribute5149 includes additional attrs5150 when the issue has an image in the description5151 sets the image to use an absolute URL5152Gitlab::PhabricatorImport::ImportTasksWorker5153 #perform5154 calls the correct importer5155Atlassian::Identity5156 associations5157 is expected to belong to user required:5158 validations5159 is expected to validate that :extern_uid cannot be empty/falsy5160 is expected to validate that :extern_uid is case-sensitively unique5161 is expected to validate that :user cannot be empty/falsy5162 is expected to validate that :user is case-sensitively unique5163 encrypted tokens5164 saves the encrypted token, refresh token and corresponding ivs5165Ci::BridgePolicy5166 #play_job5167 when user can update the downstream branch5168 allows5169 when user can not update the downstream branch5170 does not allow5171Snippets::RepositoryStorageMove5172 behaves like handles repository moves5173 associations5174 is expected to belong to container required:5175 validations5176 is expected to validate that :container cannot be empty/falsy5177 is expected to validate that :state cannot be empty/falsy5178 is expected to validate that :source_storage_name cannot be empty/falsy5179 is expected to validate that :destination_storage_name cannot be empty/falsy5180 source_storage_name inclusion5181 does not allow repository storages that don't match a label in the configuration5182 destination_storage_name inclusion5183 does not allow repository storages that don't match a label in the configuration5184 container repository read-only5185 does not allow the container to be read-only on create5186 defaults5187 destination_storage_name5188 can pick new storage5189 state transitions5190 when in the default state5191 and transits to scheduled5192 triggers the corresponding repository storage worker5193 when the transition fails5194 does not trigger the corresponding repository storage worker and adds an error5195 and transits to started5196 does not allow the transition5197 when started5198 and transits to replicated5199 marks the container as writable5200 updates the updated_at column of the container5201 and transits to failed5202 marks the container as writable5203BuildHooksWorker5204 #perform5205 when build exists5206 calls build hooks5207 when build does not exist5208 does not raise exception5209Identity5210 relations5211 is expected to belong to user required:5212 fields5213 is expected to respond to #provider5214 is expected to respond to #extern_uid5215 validations5216 with existing user and provider5217 returns false for a duplicate entry5218 returns true when a different provider is used5219 with newly-created user5220 successfully validates even with a nil user_id5221 #is_ldap?5222 returns true if it is a ldap identity5223 returns false if it is not a ldap identity5224 .with_extern_uid5225 LDAP identity5226 finds the identity when the DN is formatted differently5227 any other provider5228 the extern_uid lookup is case insensitive5229 .with_any_extern_uid5230 provider with extern uid5231 finds any extern uids associated with a provider5232 provider with nil extern uid5233 has no results when there are no extern uids5234 no provider5235 has no results when there is no associated provider5236 callbacks5237 before_save5238 normalizes extern uid5239 if extern_uid changes5240 if current_uid is nil5241 if extern_uid changed and not nil5242 after_destroy5243 if user synced attributes metadada provider5244 matches the identity provider5245 removes the user synced attributes5246 does not matche the identity provider5247 does not remove the user synced attributes5248Evidences::ReleaseEntity5249 exposes the expected fields5250 when the release has milestones5251 exposes these milestones5252 when the release has no milestone5253 exposes an empty array for milestones5254PublicUrlValidator5255 #validate5256 with no options5257 allows http,https schemes by default5258 checks that the url structure is valid5259 with schemes5260 allows urls with the defined schemes5261 add error if the url scheme does not match the selected ones5262 by default5263 blocks urls pointing to localhost5264 blocks urls pointing to the local network5265 when local requests are allowed5266 does not block urls pointing to localhost5267 does not block urls pointing to the local network5268Mutations::AlertManagement::HttpIntegration::ResetToken5269 is expected to require graphql authorizations :admin_operations5270 #resolve5271 user has sufficient access to project5272 when HttpIntegrations::UpdateService responds with success5273 returns the integration with no errors5274 when HttpIntegrations::UpdateService responds with an error5275 returns errors5276 when resource is not accessible to the user5277 raises an error if the resource is not accessible to the user5278Resolvers::UserNotesCountResolver5279 #resolve5280 is expected to have nullable GraphQL type Int5281 when counting notes from an issue5282 when counting notes from a public issue5283 returns the number of non-system notes for the issue5284 when a user has permission to view notes5285 returns the number of notes for the issue5286 when a user does not have permission to view notes5287 raises an error5288 when counting notes from a merge request5289 when counting notes from a public merge request5290 returns the number of non-system notes for the merge request5291 when a user has permission to view notes5292 returns the number of notes for the merge request5293 when a user does not have permission to view notes5294 raises an error5295Gitlab::Ci::Pipeline::Seed::Build::Cache5296 #build_attributes5297 with cache:key5298 is expected to include {:options => {:cache => {:key => "a-key", :paths => ["vendor/ruby"]}}}5299 with cache:key as a symbol5300 is expected to include {:options => {:cache => {:key => "a_key", :paths => ["vendor/ruby"]}}}5301 with cache:key:files5302 with existing files5303 behaves like version and gemfile files5304 builds a string key5305 with files starting with ./5306 behaves like version and gemfile files5307 builds a string key5308 with files ending with /5309 behaves like default key5310 uses default key5311 with new line in filenames5312 behaves like default key5313 uses default key5314 with missing files5315 behaves like default key5316 uses default key5317 with directories5318 with directory5319 behaves like foo/bar directory key5320 builds a string key5321 with directory ending in slash5322 behaves like foo/bar directory key5323 builds a string key5324 with directories ending in slash star5325 behaves like foo/bar directory key5326 builds a string key5327 with cache:key:prefix5328 without files5329 adds prefix to default key5330 with existing files5331 adds prefix key5332 with missing files5333 adds prefix to default key5334 with all cache option keys5335 is expected to include {:options => {:cache => {:key => "a-key", :paths => ["vendor/ruby"], :untracked => true, :policy => "push", :when => "on_success"}}}5336 with unknown cache option keys5337 is expected to raise ArgumentError with message matching /unknown_key/5338 with empty config5339 is expected to include {:options => {}}5340DiffViewerEntity5341 serializes diff file viewer5342Users::LastPushEventService5343 #cache_last_push_event5344 caches the event for the event's project and current user5345 caches the event for the origin project when pushing to a fork5346 #last_event_for_user5347 returns the last push event for the current user5348 returns nil when no push event could be found5349 #last_event_for_project5350 returns the last push event for the given project5351 returns nil when no push event could be found5352 #find_cached_event5353 with a non-existing cache key5354 returns nil5355 with an existing cache key5356 returns a PushEvent when no merge requests exist for the event5357 removes the cache key when no event could be found and returns nil5358FlushCounterIncrementsWorker5359 #perform5360 flushes increments to database5361 when model class does not exist5362 does nothing5363 when record does not exist5364 does nothing5365UserDetail5366 is expected to belong to user required:5367 validations5368 #job_title5369 is expected not to validate that :job_title cannot be empty/falsy5370 is expected to validate that the length of :job_title is at most 2005371 #bio5372 is expected to validate that the length of :bio is at most 2555373 #bio_html5374 falls back to #bio when the html representation is missing5375 stores rendered html5376 does not try to set the value when the column is not there5377WikiPages::EventCreateService5378 #execute5379 returns a successful response5380 creates a wiki page event5381 returns an event in the payload5382 records the slug for the page5383 the user is nil5384 raises an error on construction5385 the action is illegal5386 returns an error5387 does not create an event5388 does not create a metadata record5389 the action is a deletion5390 does not synchronize the wiki metadata timestamps with the git commit5391Projects::Prometheus::Alerts::UpdateService5392DEPRECATION 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 call5393/builds/gitlab-org/gitlab/app/models/concerns/has_environment_scope.rb:25: warning: The called method is defined here5394 (called from find_platform_kubernetes_with_cte at /builds/gitlab-org/gitlab/app/models/concerns/deployment_platform.rb:27)5395 #execute5396 with valid params5397 updates the alert5398 with invalid params5399 fails to update5400UpdateProjectStatisticsWorker5401 #perform5402 updates the project statistics5403Projects::IncidentsHelper5404 #incidents_data5405 returns frontend configuration5406shared/projects/_project.html.haml5407 renders creator avatar if project has a creator5408 renders a generic avatar if project does not have a creator5409Gitlab::Database::Reindexing::IndexSelection5410 orders by highest bloat first5411 with time frozen5412 does not return indexes with reindex action in the last 7 days5413Gitlab::Monitor::DemoProjects5414 #primary_keys5415 fetches primary_keys when on gitlab.com5416 fetches primary_keys when on staging5417 fetches all keys when in the dev or test env5418 falls back on empty array5419Gitlab::GithubImport::Stage::ImportPullRequestsWorker5420 #import5421 imports all the pull requests5422NullifyIfBlank5423 attribute exists5424 attribute is blank5425 is expected to be nil5426 attribute is nil5427 is expected to be nil5428 attribute is not blank5429 is expected to eq "name"5430 attribute does not exist5431 is expected to raise ActiveModel::UnknownAttributeError5432Gitlab::Middleware::ReadOnly5433 when database is read-only5434 behaves like write access for a read-only GitLab instance5435 normal requests to a read-only GitLab instance5436 expects PATCH requests to be disallowed5437 expects PUT requests to be disallowed5438 expects POST requests to be disallowed5439 expects a internal POST request to be allowed after a disallowed request5440 expects DELETE requests to be disallowed5441 expects POST of new file that looks like an LFS batch url to be disallowed5442 returns last_vistited_url for disallowed request5443 allowlisted requests5444 expects a POST internal request to be allowed5445 expects a graphql request to be allowed5446 relative URL is configured5447 expects a graphql request to be allowed5448 sidekiq admin requests5449 mounted_at: ""5450 allows requests5451 mounted_at: "/"5452 allows requests5453 mounted_at: "/gitlab"5454 allows requests5455 mounted_at: "/gitlab/"5456 allows requests5457 mounted_at: "/gitlab/gitlab"5458 allows requests5459 mounted_at: "/gitlab/gitlab/"5460 allows requests5461 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"5462 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed5463 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"5464 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed5465 description: "user sign out", path: "/users/sign_out"5466 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed5467 description: "admin session", path: "/admin/session"5468 expects a POST description: "admin session", path: "/admin/session" URL to be allowed5469 description: "admin session destroy", path: "/admin/session/destroy"5470 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed5471 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"5472 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed5473 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"5474 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed5475 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"5476 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed5477 json requests to a read-only GitLab instance5478 expects PATCH requests to be disallowed5479 expects PUT requests to be disallowed5480 expects POST requests to be disallowed5481 expects DELETE requests to be disallowed5482NamespaceSetting5483 Associations5484 is expected to belong to namespace required:5485 validations5486 #default_branch_name_content5487 when not set5488 behaves like doesn't return an error5489 doesn't return an error5490 when set5491 behaves like doesn't return an error5492 doesn't return an error5493 when an empty string5494 behaves like doesn't return an error5495 doesn't return an error5496 #allow_mfa_for_group5497 group is top-level group5498 is valid5499 group is a subgroup5500 is invalid5501IconsHelper5502 sprite_icon_path5503 returns relative path5504 only calls image_path once when called multiple times5505 when an asset_host is set in the config it will return an absolute local URL5506 returns an absolute URL on that asset host5507 sprite_icon5508 returns svg icon html with DEFAULT_ICON_SIZE5509 returns svg icon html without size class5510 returns svg icon html + size classes5511 returns svg icon html + size classes + additional class5512 non existing icon5513 raises in development mode5514 raises in test mode5515 does not raise in production mode5516 audit icon5517 returns right icon name for standard auth5518 returns right icon name for two-factor auth5519 returns right icon name for google_oauth2 auth5520 file_type_icon_class5521 returns folder-o class5522 returns share class5523 returns document class with .pdf5524 returns doc-image class with .jpg5525 returns doc-image class with .JPG5526 returns doc-image class with .png5527 returns doc-image class with .apng5528 returns doc-image class with .webp5529 returns doc-compressed class with .tar5530 returns doc-compressed class with .TAR5531 returns doc-compressed class with .tar.gz5532 returns volume-up class with .mp35533 returns volume-up class with .MP35534 returns volume-up class with .m4a5535 returns volume-up class with .wav5536 returns live-preview class with .avi5537 returns live-preview class with .AVI5538 returns live-preview class with .mp45539 returns doc-text class with .odt5540 returns doc-text class with .doc5541 returns doc-text class with .DOC5542 returns doc-text class with .docx5543 returns document class with .xls5544 returns document class with .XLS5545 returns document class with .xlsx5546 returns doc-chart class with .odp5547 returns doc-chart class with .ppt5548 returns doc-chart class with .PPT5549 returns doc-chart class with .pptx5550 returns doc-text class with .unknow5551 returns doc-text class with no extension5552 #external_snippet_icon5553 returns external snippet icon5554 loading_icon5555 returns span with gl-spinner class and default configuration5556 when css_class is provided5557 appends css_class to gl-spinner element5558 when container is true5559 creates a container that has the gl-spinner-container class selector5560GroupLink::GroupGroupLinkEntity5561 matches json schema5562 when current user has `:admin_group_member` permissions5563 exposes `can_update` and `can_remove` as `true`5564MergeRequests::ByApprovalsFinder5565 filter by no approvals5566 returns merge requests without approvals5567 filter by any approvals5568 returns merge requests approved by at least one user5569 filter by specific user approval5570 returns merge requests approved by specific user5571 filter by multiple user approval5572 returns merge requests approved by both users5573 limiting max conditional elements5574 returns merge requests approved by both users, considering limit of 2 being defined5575 with empty params5576 returns all merge requests5577Gitlab::View::Presenter::Base5578 .presenter?5579 returns true5580 .presents5581 exposes #subject with the given keyword5582 #can?5583 user is not allowed5584 returns false5585 user is allowed5586 returns true5587 subject is overridden5588 returns true5589 #present5590 returns self5591 #url_builder5592 returns the UrlBuilder instance5593 #web_url5594 delegates to the UrlBuilder5595 #web_path5596 delegates to the UrlBuilder5597Gitlab::Analytics::UniqueVisits5598 #track_visit5599 tracks the unique weekly visits for targets5600 sets the keys in Redis to expire automatically after 12 weeks5601 raises an error if an invalid target id is given5602LinkedProjectIssueEntity5603 issue_link_type5604 is expected to include {:link_type => "relates_to"}5605Gitlab::Graphql::Pagination::Connections5606 OffsetPaginatedRelation5607 maps to Gitlab::Graphql::Pagination::OffsetActiveRecordRelationConnection5608 ActiveRecord::Relation5609 maps to Gitlab::Graphql::Pagination::Keyset::Connection5610 ExternallyPaginatedArray5611 maps to Gitlab::Graphql::Pagination::ExternallyPaginatedArrayConnection5612 Array5613 maps to Gitlab::Graphql::Pagination::ArrayConnection5614Gitlab::Suggestions::SuggestionSet5615 #project5616 returns the project associated with the suggestions5617 #branch5618 returns the branch associated with the suggestions5619 #valid?5620 returns true if no errors are found5621 returns false if an error is found5622 #error_message5623 returns an error message if an error is found5624 returns nil if no errors are found5625 #actions5626 returns an array of hashes with proper key/value pairs5627 #file_paths5628 returns an array of unique file paths associated with the suggestions5629Gitlab::Metrics::Dashboard::Url5630 #metrics_regex5631 for /-/environments/:environment_id/metrics route5632 behaves like regex which matches url when expected5633 is expected to be a kind of Regexp5634 matches a metrics dashboard link with named params5635 does not match other gitlab urls that contain the term metrics5636 does not match other gitlab urls5637 does not match non-gitlab urls5638 for /-/metrics?environment=:environment_id route5639 behaves like regex which matches url when expected5640 is expected to be a kind of Regexp5641 matches a metrics dashboard link with named params5642 does not match other gitlab urls that contain the term metrics5643 does not match other gitlab urls5644 does not match non-gitlab urls5645 for metrics_dashboard route5646 behaves like regex which matches url when expected5647 is expected to be a kind of Regexp5648 matches a metrics dashboard link with named params5649 does not match other gitlab urls that contain the term metrics5650 does not match other gitlab urls5651 does not match non-gitlab urls5652 #clusters_regex5653 behaves like regex which matches url when expected5654 is expected to be a kind of Regexp5655 matches a metrics dashboard link with named params5656 does not match other gitlab urls that contain the term metrics5657 does not match other gitlab urls5658 does not match non-gitlab urls5659 for metrics_dashboard route5660 behaves like regex which matches url when expected5661 is expected to be a kind of Regexp5662 matches a metrics dashboard link with named params5663 does not match other gitlab urls that contain the term metrics5664 does not match other gitlab urls5665 does not match non-gitlab urls5666 #grafana_regex5667 behaves like regex which matches url when expected5668 is expected to be a kind of Regexp5669 matches a metrics dashboard link with named params5670 does not match other gitlab urls that contain the term metrics5671 does not match other gitlab urls5672 does not match non-gitlab urls5673 #alert_regex5674 behaves like regex which matches url when expected5675 is expected to be a kind of Regexp5676 matches a metrics dashboard link with named params5677 does not match other gitlab urls that contain the term metrics5678 does not match other gitlab urls5679 does not match non-gitlab urls5680 behaves like regex which matches url when expected5681 is expected to be a kind of Regexp5682 matches a metrics dashboard link with named params5683 does not match other gitlab urls that contain the term metrics5684 does not match other gitlab urls5685 does not match non-gitlab urls5686 #build_dashboard_url5687 builds the url for the dashboard endpoint5688Tooling::Danger::BaseLinter5689 #failed?5690 with no failures5691 is expected not to be failed5692 with failures5693 is expected to be failed5694 #add_problem5695 stores messages in #failures5696 #lint_subject5697 when subject valid5698 behaves like a valid commit5699 does not have any problem5700 when subject is too short5701 adds a problem5702 when subject is too long5703 adds a problem5704 when ignoring length issues for subject having not-ready wording5705 when used as prefix5706 prefix: "WIP: "5707 does not have any problems5708 prefix: "WIP:"5709 does not have any problems5710 prefix: "wIp:"5711 does not have any problems5712 prefix: "[WIP] "5713 does not have any problems5714 prefix: "[WIP]"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 prefix: "draft - "5725 does not have any problems5726 prefix: "draft: "5727 does not have any problems5728 prefix: "draft:"5729 does not have any problems5730 prefix: "DRAFT:"5731 does not have any problems5732 when used as suffix5733 suffix: "WIP"5734 does not have any problems5735 suffix: "draft"5736 does not have any problems5737 when subject does not have enough words and is too long5738 adds a problem5739 when subject starts with lowercase5740 adds a problem5741 when subject is '[ci skip] A commit message'5742 does not add a problem5743 when subject is '[Ci skip] 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 'api: A commit message'5748 does not add a problem5749 when subject is 'API: A commit message'5750 does not add a problem5751 when subject is 'API: a commit message'5752 does not add a problem5753 when subject is 'API: a commit message'5754 does not add a problem5755 when subject is '[ci skip]A commit message'5756 adds a problem5757 when subject is '[Ci skip] A commit message'5758 adds a problem5759 when subject is '[ci skip] a commit message'5760 adds a problem5761 when subject is 'api: a commit message'5762 adds a problem5763 when subject is '! A commit message'5764 adds a problem5765 when subject ends with a period5766 adds a problem5767API::Entities::PlanLimit5768 exposes correct attributes5769 does not expose id and plan_id5770API::Github::Entities5771 API::Github::Entities::User5772 aggregate_failure5773 with avatar5774 is expected to include "http://localhost/uploads/-/system/user/avatar/"5775Gitlab::UsageDataCounters::WikiPageCounter5776 behaves like a redis usage counter5777 .count(view)5778 increments the Wiki Page view counter by 15779 .read(view)5780 returns the total number of view events5781 behaves like a redis usage counter5782 .count(create)5783 increments the Wiki Page create counter by 15784 .read(create)5785 returns the total number of create events5786 behaves like a redis usage counter5787 .count(update)5788 increments the Wiki Page update counter by 15789 .read(update)5790 returns the total number of update events5791 behaves like a redis usage counter5792 .count(delete)5793 increments the Wiki Page delete counter by 15794 .read(delete)5795 returns the total number of delete events5796 behaves like a redis usage counter with totals5797 totals5798 can report all totals5799 unknown events5800 cannot increment5801 cannot read5802Banzai::Filter::BroadcastMessagePlaceholdersFilter5803 when current user is set5804 replaces placeholder in text5805 is expected to eq "Email: helloworld@example.com"5806 replaces placeholder when they are in a link5807 is expected to eq "<a href=\"http://example.com?email=helloworld%40example.com\">link</a>"5808 replaces placeholder when they are in an escaped link5809 is expected to eq "<a href=\"http://example.com?name=GitLab+Tanunki+%3A%29\">link</a>"5810 works with empty text5811 is expected to eq " "5812 replaces multiple placeholders in a given text5813 is expected to eq "helloworld@example.com GitLab Tanunki :)"5814 available placeholders5815 replaces the email of the user5816 is expected to eq "helloworld@example.com"5817 replaces the name of the user5818 is expected to eq "GitLab Tanunki :)"5819 replaces the ID of the user5820 is expected to eq "2512"5821 replaces the username of the user5822 is expected to eq "user2633"5823 replaces the instance_id5824 is expected to eq "123"5825 when there is no current user set5826 replaces placeholder with empty string5827 is expected to eq "Email: "5828Gitlab::SidekiqMiddleware::ClientMetrics5829 with worker attribution5830 when workers are not attributed5831 behaves like a metrics client middleware5832 with mocked prometheus5833 #call5834 yields block5835 increments enqueued jobs metric with correct labels when worker is a string of the class5836 increments enqueued jobs metric with correct labels5837 when a worker is wrapped into ActiveJob5838 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 when workers are attributed5845 high urgency5846 behaves like a metrics client middleware5847 with mocked prometheus5848 #call5849 yields block5850 increments enqueued jobs metric with correct labels when worker is a string of the class5851 increments enqueued jobs metric with correct labels5852 no urgency5853 behaves like a metrics client middleware5854 with mocked prometheus5855 #call5856 yields block5857 increments enqueued jobs metric with correct labels when worker is a string of the class5858 increments enqueued jobs metric with correct labels5859 external dependencies5860 behaves like a metrics client middleware5861 with mocked prometheus5862 #call5863 yields block5864 increments enqueued jobs metric with correct labels when worker is a string of the class5865 increments enqueued jobs metric with correct labels5866 cpu boundary5867 behaves like a metrics client middleware5868 with mocked prometheus5869 #call5870 yields block5871 increments enqueued jobs metric with correct labels when worker is a string of the class5872 increments enqueued jobs metric with correct labels5873 memory boundary5874 behaves like a metrics client middleware5875 with mocked prometheus5876 #call5877 yields block5878 increments enqueued jobs metric with correct labels when worker is a string of the class5879 increments enqueued jobs metric with correct labels5880 feature category5881 behaves like a metrics client middleware5882 with mocked prometheus5883 #call5884 yields block5885 increments enqueued jobs metric with correct labels when worker is a string of the class5886 increments enqueued jobs metric with correct labels5887 combined5888 behaves like a metrics client middleware5889 with mocked prometheus5890 #call5891 yields block5892 increments enqueued jobs metric with correct labels when worker is a string of the class5893 increments enqueued jobs metric with correct labels5894Gitlab::Octokit::Middleware5895 #call5896 when the URL is a public URL5897 behaves like Public URL5898 does not raise an error5899 when the URL is a localhost adresss5900 when localhost requests are not allowed5901 behaves like Local URL5902 raises an error5903 when localhost requests are allowed5904 behaves like Public URL5905 does not raise an error5906 when the URL is a local network address5907 when local network requests are not allowed5908 behaves like Local URL5909 raises an error5910 when local network requests are allowed5911 behaves like Public URL5912 does not raise an error5913Keys::DestroyService5914 destroys a key5915Gitlab::Metrics::Exporter::BaseExporter5916 when exporter is enabled5917 when exporter is stopped5918 #start5919 starts the exporter5920 with custom settings5921 starts server with port and address from settings5922 when thread is not alive5923 does close listeners5924 #stop5925 doesn't shutdown stopped server5926 when exporter is running5927 #start5928 doesn't start running server5929 #stop5930 shutdowns server5931 request handling5932 method_class: Net::HTTP::Get, path: "/metrics", http_status: 2005933 responds with proper http_status5934 method_class: Net::HTTP::Get, path: "/liveness", http_status: 2005935 responds with proper http_status5936 method_class: Net::HTTP::Get, path: "/readiness", http_status: 2005937 responds with proper http_status5938 method_class: Net::HTTP::Get, path: "/", http_status: 4045939 responds with proper http_status5940 when exporter is disabled5941 #start5942 doesn't start5943 #stop5944 doesn't shutdown5945Banzai::Renderer5946 #cache_collection_render5947 when an item has a rendered field5948 does not touch redis if the field is in the cache5949 #render_field5950 without cache5951 returns cacheless render field5952 with cache5953 with a stale cache5954 caches and returns the result5955 skips database caching on a GitLab read-only instance5956 with an up-to-date cache5957 uses the cache5958 #post_process5959 when xhtml5960 without :post_process_pipeline key5961 uses PostProcessPipeline5962 with :post_process_pipeline key5963 uses passed post process pipeline5964 when not xhtml5965 without :post_process_pipeline key5966 uses PostProcessPipeline5967 with :post_process_pipeline key5968 uses passed post process pipeline5969Projects::Prometheus::AlertsFinder5970 with params5971 #execute5972 with project5973 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 95, project_id: 1447, prometheus_metric_id: 4, runbook_url: nil>]5974 with matching metric5975 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]5976 with matching metric id5977 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]5978 with project non-specific metric5979 is expected to be empty5980 with environment5981 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 3, runbook_url: nil>]5982 with matching metric5983 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]5984 with environment non-specific metric5985 is expected to be empty5986 with matching project and environment5987 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 3, runbook_url: nil>]5988 with matching metric5989 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]5990 with environment non-specific metric5991 is expected to be empty5992 with matching id5993 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]5994 with a nil id5995 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 3, runbook_url: nil>]5996 with non-matching project-environment pair5997 is expected to be empty5998 with id5999 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 94, project_id: 1447, prometheus_metric_id: 2, runbook_url: nil>]6000 with multiple ids6001 is expected to eq [#<PrometheusAlert id: 2, created_at: "2021-03-03 12:17:39", updated_at: "2021-03-03 12:17:39", thres...0, operator: "gt", environment_id: 93, project_id: 1448, prometheus_metric_id: 5, runbook_url: nil>]6002 with non-matching id6003 is expected to be empty6004 without params6005 raises an error6006Gitlab::Metrics::Samplers::ActionCableSampler6007 behaves like metrics sampler6008 when sampling interval is passed explicitly6009 is expected to eq 426010 when sampling interval is passed through the environment6011 is expected to eq 426012 when no sampling interval is passed anywhere6013 uses the hardcoded default6014 #sample6015 for in-app mode6016 behaves like collects metrics6017 includes active connections6018 includes minimum worker pool size6019 includes maximum worker pool size6020 includes current worker pool size6021 includes largest worker pool size6022 includes worker pool completed task count6023 includes worker pool pending task count6024 for standalone mode6025 behaves like collects metrics6026 includes active connections6027 includes minimum worker pool size6028 includes maximum worker pool size6029 includes current worker pool size6030 includes largest worker pool size6031 includes worker pool completed task count6032 includes worker pool pending task count6033Gitlab::Ci::Status::Composite6034 #status6035 allow_failure: false6036 build_statuses: [:skipped], dag: false, result: "skipped", has_warnings: false6037 behaves like compares status and warnings6038 returns status and warnings?6039 build_statuses: [:skipped, :success], dag: false, result: "success", has_warnings: false6040 behaves like compares status and warnings6041 returns status and warnings?6042 build_statuses: [:skipped, :success], dag: true, result: "skipped", has_warnings: false6043 behaves like compares status and warnings6044 returns status and warnings?6045 build_statuses: [:created], dag: false, result: "created", has_warnings: false6046 behaves like compares status and warnings6047 returns status and warnings?6048 build_statuses: [:preparing], dag: false, result: "preparing", has_warnings: false6049 behaves like compares status and warnings6050 returns status and warnings?6051 build_statuses: [:canceled, :success, :skipped], dag: false, result: "canceled", has_warnings: false6052 behaves like compares status and warnings6053 returns status and warnings?6054 build_statuses: [:canceled, :success, :skipped], dag: true, result: "skipped", has_warnings: false6055 behaves like compares status and warnings6056 returns status and warnings?6057 build_statuses: [:pending, :created, :skipped], dag: false, result: "pending", has_warnings: false6058 behaves like compares status and warnings6059 returns status and warnings?6060 build_statuses: [:pending, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6061 behaves like compares status and warnings6062 returns status and warnings?6063 build_statuses: [:running, :created, :skipped, :success], dag: false, result: "running", has_warnings: false6064 behaves like compares status and warnings6065 returns status and warnings?6066 build_statuses: [:pending, :created, :skipped], dag: true, result: "skipped", has_warnings: false6067 behaves like compares status and warnings6068 returns status and warnings?6069 build_statuses: [:pending, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6070 behaves like compares status and warnings6071 returns status and warnings?6072 build_statuses: [:running, :created, :skipped, :success], dag: true, result: "skipped", has_warnings: false6073 behaves like compares status and warnings6074 returns status and warnings?6075 build_statuses: [:success, :waiting_for_resource], dag: false, result: "waiting_for_resource", has_warnings: false6076 behaves like compares status and warnings6077 returns status and warnings?6078 build_statuses: [:success, :manual], dag: false, result: "manual", has_warnings: false6079 behaves like compares status and warnings6080 returns status and warnings?6081 build_statuses: [:success, :scheduled], dag: false, result: "scheduled", has_warnings: false6082 behaves like compares status and warnings6083 returns status and warnings?6084 build_statuses: [:created, :preparing], dag: false, result: "preparing", has_warnings: false6085 behaves like compares status and warnings6086 returns status and warnings?6087 build_statuses: [:created, :success, :pending], dag: false, result: "running", has_warnings: false6088 behaves like compares status and warnings6089 returns status and warnings?6090 build_statuses: [:skipped, :success, :failed], dag: false, result: "failed", has_warnings: false6091 behaves like compares status and warnings6092 returns status and warnings?6093 build_statuses: [:skipped, :success, :failed], dag: true, result: "skipped", has_warnings: false6094 behaves like compares status and warnings6095 returns status and warnings?6096 build_statuses: [:success, :manual], dag: true, result: "pending", has_warnings: false6097 behaves like compares status and warnings6098 returns status and warnings?6099 build_statuses: [:success, :failed, :created], dag: true, result: "pending", has_warnings: false6100 behaves like compares status and warnings6101 returns status and warnings?6102 allow_failure: true6103 build_statuses: [:manual], dag: false, result: "skipped", has_warnings: false6104 behaves like compares status and warnings6105 returns status and warnings?6106 build_statuses: [:skipped, :failed], dag: false, result: "success", has_warnings: true6107 behaves like compares status and warnings6108 returns status and warnings?6109 build_statuses: [:skipped, :failed], dag: true, result: "skipped", has_warnings: true6110 behaves like compares status and warnings6111 returns status and warnings?6112 build_statuses: [:created, :failed], dag: false, result: "created", has_warnings: true6113 behaves like compares status and warnings6114 returns status and warnings?6115 build_statuses: [:preparing, :manual], dag: false, result: "preparing", has_warnings: false6116 behaves like compares status and warnings6117 returns status and warnings?6118Gitlab::Changelog::Parser6119 #root6120 parses an empty template6121 parses a variable with a single identifier step6122 parses a variable with a single integer step6123 parses a variable with multiple selector steps6124 parses a variable with an integer selector step6125 parses the special "it" variable6126 parses a text node6127 parses an if expression6128 parses an if-else expression6129 parses an each expression6130 parses an escaped newline6131 parses a regular newline6132 parses the default changelog template6133 raises an error when parsing an integer selector that is too large6134 #parse_and_transform6135 parses and transforms a template6136 raises parsing errors using a custom error class6137dashboard/projects/_blank_state_admin_welcome.html.haml6138 links to new group path6139Gitlab::Ci::Pipeline::Expression::Lexeme::And6140 .build6141 creates a new instance of the token6142 with non-evaluable operands6143 raises an operator error6144 .type6145 is an operator6146 .precedence6147 has a precedence6148 #evaluate6149 when left and right are truthy6150 left_value: true, right_value: 16151 is expected to be truthy6152 is expected to eq 16153 left_value: true, right_value: "a"6154 is expected to be truthy6155 is expected to eq "a"6156 left_value: 1, right_value: true6157 is expected to be truthy6158 is expected to eq true6159 left_value: 1, right_value: "a"6160 is expected to be truthy6161 is expected to eq "a"6162 left_value: "a", right_value: true6163 is expected to be truthy6164 is expected to eq true6165 left_value: "a", right_value: 16166 is expected to be truthy6167 is expected to eq 16168 when left or right is falsey6169 left_value: true, right_value: false6170 is expected to be falsey6171 left_value: true, right_value: nil6172 is expected to be falsey6173 left_value: false, right_value: true6174 is expected to be falsey6175 left_value: false, right_value: nil6176 is expected to be falsey6177 left_value: nil, right_value: true6178 is expected to be falsey6179 left_value: nil, right_value: false6180 is expected to be falsey6181 when left and right are falsey6182 left_value: false, right_value: nil6183 is expected to be falsey6184 is expected to eq false6185 left_value: nil, right_value: false6186 is expected to be falsey6187 is expected to eq nil6188EnvironmentHelper6189 #render_deployment_status6190 when using a manual deployment6191 renders a span tag6192 when using a deployment from a build6193 renders a link tag6194Gitlab::DependencyLinker::GemfileLinker6195 .support?6196 supports Gemfile6197 supports gems.rb6198 does not support other files6199 #link6200 links sources6201 links dependencies6202 links to external dependencies6203 links GitHub repos6204 links Git repos6205Gitlab::ExternalAuthorization6206 #access_allowed?6207 is always true when the feature is disabled6208 #rejection_reason6209 is always nil when the feature is disabled6210 #access_for_user_to_label6211 only loads the access once per request6212 logs the access request once per request6213Gitlab::Ci::Config::External::Context6214 attributes6215 with values6216 is expected to have attributes {:project => #<Double "Project">, :sha => "12345", :user => #<Double "User">}6217 is expected to eq #<Set: {}>6218 is expected to eq 06219 without values6220 is expected to have attributes {:project => nil, :sha => nil, :user => nil}6221 is expected to eq #<Set: {}>6222 is expected to eq 06223 #set_deadline6224 with a float value6225 updates execution_deadline6226 with nil as a value6227 updates execution_deadline6228 #check_execution_time!6229 when execution is expired6230 raises an error6231 when execution is not expired6232 does not raises any errors6233 without setting a deadline6234 does not raises any errors6235 #mutate6236 with attributes6237 behaves like a mutated context6238 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x0000560c38b28910 @project=#<Double "Project">, @sha="12345"...arent_pipeline=nil, @variables=[], @expandset=#<Set: {:a_file}>, @execution_deadline=5784.924365006>6239 is expected to be a kind of Gitlab::Ci::Config::External::Context6240 is expected to have attributes {:project => #<Double (anonymous)>, :sha => "56789", :user => #<Double (anonymous)>}6241 is expected to eq #<Set: {:a_file}>6242 is expected to eq 5784.9560708526243 without attributes6244 behaves like a mutated context6245 is expected not to eq #<Gitlab::Ci::Config::External::Context:0x0000560c37b22020 @project=#<Double "Project">, @sha="12345"...arent_pipeline=nil, @variables=[], @expandset=#<Set: {:a_file}>, @execution_deadline=5784.964215565>6246 is expected to be a kind of Gitlab::Ci::Config::External::Context6247 is expected to have attributes {}6248 is expected to eq #<Set: {:a_file}>6249 is expected to eq 5784.9944792366250 #sentry_payload6251 is expected to match (a hash including :project and :user)6252Snippets::ScheduleBulkRepositoryShardMovesService6253 behaves like moves repository shard in bulk6254 #execute6255 schedules container repository storage moves6256 read-only repository6257 does not get scheduled6258 .enqueue6259 defers to the worker6260WebHooks::DestroyService6261 with system hook6262 behaves like batched destroys6263 destroys all hooks in batches6264 returns an error if sync destroy fails6265 schedules an async delete6266 with project hook6267 behaves like batched destroys6268 destroys all hooks in batches6269 returns an error if sync destroy fails6270 schedules an async delete6271RuboCop::Cop::Migration::Datetime6272 when in migration6273 registers an offense when the ":datetime" data type is used on create_table6274 registers an offense when the ":timestamp" data type is used on create_table6275 does not register an offense when the ":datetime" data type is not used on create_table6276 does not register an offense when the ":datetime_with_timezone" data type is used on create_table6277 registers an offense when the ":datetime" data type is used on add_column6278 registers an offense when the ":timestamp" data type is used on add_column6279 does not register an offense when the ":datetime" data type is not used on add_column6280 does not register an offense when the ":datetime_with_timezone" data type is used on add_column6281 when outside of migration6282 registers no offense6283API::Entities::SSHKey6284 #as_json6285 includes basic fields6286Gitlab::Sourcegraph6287 .feature_conditional?6288 when feature is enabled globally6289 is expected to be falsey6290 when feature is enabled only to a resource6291 is expected to be truthy6292 .feature_available?6293 when feature is enabled globally6294 is expected to be truthy6295 when feature is enabled only to a resource6296 is expected to be truthy6297 .feature_enabled?6298 when feature is enabled globally6299 is expected to be truthy6300 when feature is enabled only to a resource6301 for the same resource6302 is expected to be truthy6303 for a different resource6304 is expected to be falsey6305Gitlab::DependencyLinker::CargoTomlLinker6306 .support?6307 supports Cargo.toml6308 does not support other files6309 #link6310/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/6311 links dependencies6312/builds/gitlab-org/gitlab/lib/gitlab/dependency_linker/cargo_toml_linker.rb:37: warning: regular expression has ']' without escape: /^\[dependencies\.(?<name>memchr)]/6313 does not contain metadata identified as package6314Prometheus::ProxyService6315 configuration6316 ReactiveCaching refresh is not needed6317 #initialize6318 initializes attributes6319 converts ActionController::Parameters into hash6320 with unknown params6321 filters unknown params6322 with series method6323 allows match, start and end parameters6324 #execute6325 when prometheus_adapter is nil6326 returns error6327 when prometheus_adapter cannot query6328 returns error6329 cannot proxy6330 returns error6331 with caching6332 when value present in cache6333 returns cached value6334 when value not present in cache6335 returns nil6336 call prometheus api6337 connection to prometheus server succeeds6338 returns the http status code and body from prometheus6339 connection to prometheus server fails6340 prometheus client raises Gitlab::PrometheusClient::Error6341 returns error6342 with series API6343 calls PrometheusClient with given parameters6344 .from_cache6345 initializes an instance of ProxyService class6346Gitlab::LanguageData6347 #extensions6348 loads the extensions once6349Gitlab::ImportExport::AttributesFinder6350 #find_root6351 generates hash from project tree config6352 individual scenarios6353 generates the correct hash for a single project relation6354 generates the correct hash for a single project feature relation6355 generates the correct hash for a multiple project relation6356 generates the correct hash for a single sub-relation6357 generates the correct hash for a multiple sub-relation6358 generates the correct hash for a sub-relation with another sub-relation6359 generates the correct hash for a relation with included attributes6360 generates the correct hash for a relation with excluded attributes6361 generates the correct hash for a relation with both excluded and included attributes6362 generates the correct hash for a relation with custom methods6363 #find_relations_tree6364 when initialized with config including tree6365 when relation is in top-level keys of the tree6366 is expected to eq {:issues=>{}}6367 when the relation is not in top-level keys6368 is expected to be nil6369 when tree is not present in config6370 is expected to be nil6371 #find_excluded_keys6372 when initialized with excluded_attributes6373 is expected to eq ["name", "path"]6374 when excluded_attributes are not present in config6375 is expected to eq []6376Gitlab::Kubernetes::Helm::V2::DeleteCommand6377 behaves like helm command generator6378 #generate_script6379 returns appropriate command6380 #pod_name6381 is expected to eq "uninstall-app-name"6382 behaves like helm command6383 HELM_VERSION6384 is expected to match /\d+\.\d+\.\d+/6385 #env6386 is expected to be a kind of Hash6387 #rbac?6388 rbac is enabled6389 is expected to be truthy6390 rbac is not enabled6391 is expected to be falsey6392 #pod_resource6393 rbac is enabled6394 is expected to be an instance of Kubeclient::Resource6395 generates a pod that uses the tiller serviceAccountName6396 rbac is not enabled6397 is expected to be an instance of Kubeclient::Resource6398 generates a pod that uses the default serviceAccountName6399 #config_map_resource6400 returns a KubeClient resource with config map content for the application6401 #service_account_resource6402 rbac is enabled6403 generates a Kubeclient resource for the tiller ServiceAccount6404 rbac is not enabled6405 generates nothing6406 #cluster_role_binding_resource6407 rbac is enabled6408 generates a Kubeclient resource for the ClusterRoleBinding for tiller6409 binds the account in #service_account_resource6410 rbac is not enabled6411 generates nothing6412 #delete_command6413 deletes the release6414Gitlab::Kubernetes::Helm::V2::InstallCommand6415 behaves like helm command generator6416 #generate_script6417 returns appropriate command6418 when rbac is true6419 behaves like helm command generator6420 #generate_script6421 returns appropriate command6422 when there is a pre-install script6423 behaves like helm command generator6424 #generate_script6425 returns appropriate command6426 when there is a post-install script6427 behaves like helm command generator6428 #generate_script6429 returns appropriate command6430 when there is no version6431 behaves like helm command generator6432 #generate_script6433 returns appropriate command6434 behaves like helm command6435 HELM_VERSION6436 is expected to match /\d+\.\d+\.\d+/6437 #env6438 is expected to be a kind of Hash6439 #rbac?6440 rbac is enabled6441 is expected to be truthy6442 rbac is not enabled6443 is expected to be falsey6444 #pod_resource6445 rbac is enabled6446 is expected to be an instance of Kubeclient::Resource6447 generates a pod that uses the tiller serviceAccountName6448 rbac is not enabled6449 is expected to be an instance of Kubeclient::Resource6450 generates a pod that uses the default serviceAccountName6451 #config_map_resource6452 returns a KubeClient resource with config map content for the application6453 #service_account_resource6454 rbac is enabled6455 generates a Kubeclient resource for the tiller ServiceAccount6456 rbac is not enabled6457 generates nothing6458 #cluster_role_binding_resource6459 rbac is enabled6460 generates a Kubeclient resource for the ClusterRoleBinding for tiller6461 binds the account in #service_account_resource6462 rbac is not enabled6463 generates nothing6464Banzai::Filter::SpacedLinkFilter6465 converts multiple URLs6466 ignores valid links contained inside 'a' element6467 ignores valid links contained inside 'code' element6468 ignores valid links contained inside 'kbd' element6469 ignores valid links contained inside 'pre' element6470 ignores valid links contained inside 'script' element6471 ignores valid links contained inside 'style' element6472 when a link is detected6473 converts slug with spaces to a link6474 converts slug with spaces and a title to a link6475 does nothing with empty text6476 does nothing with an empty slug6477 when an image is detected6478 converts slug with spaces to an iamge6479 converts slug with spaces and a title to an image6480Gitlab::Auth::Otp::Strategies::FortiAuthenticator6481 successful validation6482 returns success6483 unsuccessful validation6484 returns error6485 unexpected error6486 returns error6487Gitlab::Analytics::CycleAnalytics::Average6488 #seconds6489 when no results6490 is expected to eq nil6491 returns the average duration in seconds6492 is expected to be within 0.5 of 648000.06493 #days6494 when no results6495 is expected to eq nil6496 returns the average duration in days6497 is expected to be within 0.01 of 7.56498PagesDomainRemovalCronWorker6499 #perform6500 when there is domain which should be removed6501 removes domain6502 where there is a domain which scheduled for removal in the future6503 does not remove pages domain6504Gitlab::Ci::PipelineObjectHierarchy6505 #base_and_ancestors6506 includes the base and its ancestors6507 can find ancestors upto a certain level6508 hierarchy_order option6509 :asc6510 orders by child to ancestor6511 :desc6512 orders by ancestor to child6513 #base_and_descendants6514 includes the base and its descendants6515 when with_depth is true6516 includes depth in the results6517 #all_objects6518 includes its ancestors and descendants6519 returns all family tree6520Gitlab::UsageData::Topology6521 #topology_usage_data6522 can reach a ready Prometheus client6523 behaves like query topology data from Prometheus6524 tracking node metrics6525 contains node level metrics for each instance6526 and some node memory metrics are missing6527 removes the respective entries and includes the failures6528 and services run on the same node but report different instance values6529 normalizes equivalent instance values and maps them to the same node6530 and node metrics are missing but service metrics exist6531 still reports service metrics6532 and unknown services are encountered6533 filters out unknown service data and reports the unknown services as a failure6534 and an error is raised when querying Prometheus6535 without timeout failures6536 returns empty result and executes subsequent queries as usual6537 with timeout failures6538 exception: Errno::ETIMEDOUT6539 returns empty result and cancelled subsequent queries6540 exception: Net::OpenTimeout6541 returns empty result and cancelled subsequent queries6542 exception: Net::ReadTimeout6543 returns empty result and cancelled subsequent queries6544 can not reach a ready Prometheus client6545 behaves like returns empty result with no failures6546 is expected to eq {:duration_s=>0, :failures=>[]}6547 when top-level function raises error6548 returns empty result with generic failure6549VersionCheckHelper6550 #version_status_badge6551 returns nil if not dev environment and not enabled6552 when production and enabled6553 returns an image tag6554 has a js prefixed css class6555 has a VersionCheck url as the src6556Tooling::Danger::FeatureFlag6557 #feature_flag_files6558 retrieves added feature flag files6559 with added added feature flag files6560 returns an array of Found objects6561 without added added feature flag files6562 returns an array of Found objects6563 retrieves modified feature flag files6564 with modified modified feature flag files6565 returns an array of Found objects6566 without modified modified feature flag files6567 returns an array of Found objects6568 retrieves deleted feature flag files6569 with deleted deleted feature flag files6570 returns an array of Found objects6571 without deleted deleted feature flag files6572 returns an array of Found objects6573 Tooling::Danger::FeatureFlag::Found6574 #raw6575 returns the raw YAML6576 #group6577 returns the group found in the YAML6578 #group_match_mr_label?6579 when MR labels match FF group6580 is expected to eq true6581 when MR labels does not match FF group6582 is expected to eq false6583 when group is nil6584 and MR has no group label6585 is expected to eq true6586 and MR has a group label6587 is expected to eq false6588Gitlab::Elasticsearch::Logs::Lines6589 #pod_logs6590 returns the logs as an array6591 can further filter the logs by container name6592 can further filter the logs by search6593 can further filter the logs by start_time and end_time6594 can further filter the logs by only start_time6595 can further filter the logs by only end_time6596 can search after a cursor6597 can search on filebeat 66598Gitlab::Config::Entry::ComposableHash6599 when ComposableHash is instantiated6600 behaves like composes a hash6601 #valid?6602 is valid6603 is invalid6604 is expected not to be valid6605 #value6606 when config is a hash6607 returns key value6608 #compose!6609 composes child entry with configured value6610 composes child entries with configured values6611 #descendants6612 creates descendant nodes6613 when ComposableHash entry is configured in the parent class6614 creates entry with configuration from parent class6615 behaves like composes a hash6616 #valid?6617 is valid6618 is invalid6619 is expected not to be valid6620 #value6621 when config is a hash6622 returns key value6623 #compose!6624 composes child entry with configured value6625 composes child entries with configured values6626 #descendants6627 creates descendant nodes6628Gitlab::Metrics::Dashboard::Cache6629 .fetch6630 stores data correctly6631 .for6632 returns a new instance6633 #fetch6634 stores data correctly6635 #delete_all!6636 deletes keys of the given project6637 does not fail when nothing to delete6638 multiple fetches and deletes6639 aggregate_failures6640Gitlab::ImportExport::Error6641 .permission_error6642 when supplied a project6643 returns an error with the correct message6644 when supplied a group6645 returns an error with the correct message6646RuboCop::Cop::Migration::ScheduleAsync6647 outside of a migration6648 behaves like a disabled cop6649 does not register any offenses6650 in a migration6651 in an old migration6652 behaves like a disabled cop6653 does not register any offenses6654 that is recent6655 BackgroundMigrationWorker.perform_async6656 adds an offense when calling `BackgroundMigrationWorker.peform_async` and corrects6657 BackgroundMigrationWorker.perform_in6658 adds an offense and corrects6659 BackgroundMigrationWorker.bulk_perform_async6660 adds an offense and corrects6661 BackgroundMigrationWorker.bulk_perform_in6662 adds an offense and corrects6663Gitlab::JwtAuthenticatable6664 .secret6665 returns 32 bytes6666 accepts a trailing newline6667 raises an exception if the secret file cannot be read6668 raises an exception if the secret file contains the wrong number of bytes6669 .write_secret6670 uses mode 06006671 writes base64 data6672 .decode_jwt_for_issuer6673 accepts a correct header6674 raises an error when the JWT is not signed6675 raises an error when the header is signed with the wrong secret6676 raises an error when the issuer is incorrect6677Gitlab::DependencyLinker6678 .link6679 links using GemfileLinker6680 links using GemspecLinker6681 links using PackageJsonLinker6682 links using ComposerJsonLinker6683 links using PodfileLinker6684 links using PodspecLinker6685 links using PodspecJsonLinker6686 links using CartfileLinker6687 links using GodepsJsonLinker6688 links using RequirementsTxtLinker6689 links using CargoTomlLinker6690 links using GoModLinker6691 links using GoSumLinker6692RuboCop::Cop::CodeReuse::Serializer6693 flags the use of a Serializer in a Service class6694 flags the use of a Serializer in a Finder6695 flags the use of a Serializer in a Presenter6696 flags the use of a Serializer in a Serializer6697 flags the use of a Serializer in a model instance method6698 flags the use of a Serializer in a model class method6699 flags the use of a Serializer in a worker6700Gitlab::Ci::Config::Normalizer::NumberStrategy6701 .applies_to?6702 with numbers6703 is expected to be truthy6704 with hash that has :number key6705 is expected to be truthy6706 with a float number6707 is expected to be falsey6708 with hash that does not have :number key6709 is expected to be falsey6710 .build_from6711 with numbers6712 behaves like parallelized job6713 is expected to eq 36714 has attributes6715 has parallelized name6716 with hash that has :number key6717 behaves like parallelized job6718 is expected to eq 36719 has attributes6720 has parallelized name6721RspecFlaky::Listener6722 #initialize6723 when no report file exists6724 behaves like a valid Listener instance6725 returns a valid Listener instance6726 when SUITE_FLAKY_RSPEC_REPORT_PATH is set6727 and report file exists6728 delegates the load to RspecFlaky::Report6729 and report file does not exist6730 return an empty hash6731 #example_passed6732 when the RSpec example does not respond to attempts6733 behaves like a non-flaky example6734 does not change the flaky examples hash6735 when the RSpec example has 1 attempt6736 behaves like a non-flaky example6737 does not change the flaky examples hash6738 when the RSpec example has 2 attempts6739 behaves like a new flaky example6740 changes the all flaky examples hash6741 with an existing flaky example6742 behaves like an existing flaky example6743 changes the flaky examples hash6744 #dump_summary6745 when a report file path is set by FLAKY_RSPEC_REPORT_PATH6746 delegates the writes to RspecFlaky::Report6747Mattermost::Command6748 #create6749 for valid trigger word6750 returns a token6751 for error message6752 raises an error with message6753Gitlab::GitalyClient::Diff6754 is expected to respond to #from_path6755 is expected to respond to #to_path6756 is expected to respond to #old_mode6757 is expected to respond to #new_mode6758 is expected to respond to #from_id6759 is expected to respond to #to_id6760 is expected to respond to #patch6761 is expected to respond to #collapsed6762 is expected to respond to #too_large6763 #==6764 is expected to eq #<Gitlab::GitalyClient::Diff:0x0000560c4d9157f8 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>6765 is expected not to eq #<Gitlab::GitalyClient::Diff:0x0000560c445803d0 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>6766Gitlab::Ci::Config::EdgeStagesInjector6767 #call6768 without stages6769 is expected to match {:test=>{:script=>"test"}}6770 with values6771 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6772 with bad values6773 is expected to match {:stages=>"stage1", :test=>{:script=>"test"}}6774 with collision values6775 is expected to match {:stages=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6776 with types6777 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6778 with types6779 is expected to match {:types=>[".pre", "stage1", "stage2", ".post"], :test=>{:script=>"test"}}6780 .wrap_stages6781 with empty value6782 is expected to eq [".pre", ".post"]6783 with values6784 is expected to eq [".pre", "s1", ".post"]6785Packages::Nuget::ServiceIndexPresenter6786 #version6787 for a group6788 is expected to eq "3.0.0"6789 for a project6790 is expected to eq "3.0.0"6791 #resources6792 for a group6793 behaves like returning valid resources6794 has valid resources6795 does not return the publish resource6796 for a project6797 behaves like returning valid resources6798 has valid resources6799 does return the publish resource6800RuboCop::Cop::UsageData::LargeTable6801 when in usage_data files6802 with large tables6803 when calling Issue.count6804 registers an offense6805 when calling Issue.active.count6806 registers an offense6807 when calling count(Issue)6808 does not register an offense6809 when calling count(Ci::Build.active)6810 does not register an offense6811 when calling Ci::Build.active.count6812 registers an offense6813 when using allowed methods6814 does not register an offense6815 with non related class6816 does not register an offense6817Gitlab::HookData::GroupBuilder6818 #build6819 data6820 on create6821 is expected to eq "group_create"6822 behaves like includes the required attributes6823 includes the required attributes6824 behaves like does not include old path attributes6825 does not include old path attributes6826 on destroy6827 is expected to eq "group_destroy"6828 behaves like includes the required attributes6829 includes the required attributes6830 behaves like does not include old path attributes6831 does not include old path attributes6832 on rename6833 is expected to eq "group_rename"6834 includes old path details6835 behaves like includes the required attributes6836 includes the required attributes6837FromIntersect6838 behaves like from set operator6839 #from_intersect6840 selects from the results of the INTERSECT6841 supports the use of a custom alias for the sub query6842 supports keeping duplicate rows6843ChatMessage::NoteMessage6844 commit notes6845 without markdown6846 returns a message regarding notes on commits6847 with markdown6848 returns a message regarding notes on commits6849 merge request notes6850 without markdown6851 returns a message regarding notes on a merge request6852 with markdown6853 returns a message regarding notes on a merge request6854 issue notes6855 without markdown6856 returns a message regarding notes on an issue6857 with markdown6858 returns a message regarding notes on an issue6859 project snippet notes6860 without markdown6861 returns a message regarding notes on a project snippet6862 with markdown6863 returns a message regarding notes on a project snippet6864Gitlab::AvatarCache6865 #by_email6866 writes a new value into the cache6867 finds the cached value and doesn't execute the block6868 finds the cached value in the request store and doesn't execute the block6869 #delete_by_email6870 no emails, somehow6871 is expected to eq 06872 single email6873 removes the email6874 multiple emails6875 removes the emails it finds6876Gitlab::Email::Hook::DeliveryMetricsObserver6877 when email has been delivered6878 increments both email delivery metrics6879 when email has not been delivered due to an error6880 increments only delivery attempt metric6881PersonalAccessTokens::LastUsedService6882 #execute6883 when the personal access token has not been used recently6884 updates the last_used_at timestamp6885 does not run on read-only GitLab instances6886 when the personal access token has been used recently6887 does not update the last_used_at timestamp6888 when the last_used_at timestamp is nil6889 updates the last_used_at timestamp6890 when not a personal access token6891 does not execute6892IssueRebalancingWorker6893 #perform6894 runs an instance of IssueRebalancingService6895 anticipates the inability to find the issue6896 anticipates there being too many issues6897 takes no action if the value is nil6898API::Helpers::MergeRequestsHelpers6899 #handle_merge_request_errors!6900 when merge request is valid6901 returns nil6902 when merge request is invalid6903 responds to a project_access error with unprocessable_entity6904 responds to a branch_conflict error with unprocessable_entity6905 responds to a validate_fork error with unprocessable_entity6906 responds to a base error with unprocessable_entity6907 responds to a validate_branches error with conflict6908 responds with bad request6909Gitlab::GrapeLogging::Loggers::ExceptionLogger6910 .parameters6911 when no exception is available6912 returns an empty hash6913 with a response6914 with a String response6915 logs the response body6916 with an Array response6917 casts all elements to strings6918 with a Rack BodyProxy response6919 logs the response body6920 unauthorized error6921 does not log an api_error field6922 HTTP success6923 does not log an api_error field6924 when an exception is available6925 returns the correct fields6926 with backtrace6927 includes the backtrace6928JSONWebToken::RSAToken6929 token6930 for valid key to be validated6931 is expected not to raise Exception6932 is expected to include {"key" => "value"}6933 is expected to eq {"alg"=>"RS256", "kid"=>"OGXY:4TR7:FAVO:WEM2:XXEW:E4FP:TKL7:7ACK:TZAF:D54P:SUIA:P3B2", "typ"=>"JWT"}6934 for invalid key to raise an exception6935 is expected to raise JWT::DecodeError6936Gitlab::SidekiqMiddleware::MemoryKiller6937 when MAX_RSS is set to 06938 does nothing6939 when MAX_RSS is exceeded6940 sends the TSTP, TERM and KILL signals at expected times6941 sends TSTP and TERM to the pid, but KILL to the pgroup, when running as process leader6942 when MAX_RSS is not exceeded6943 does nothing6944Gitlab::CrossProjectAccess6945 #add_check6946 keeps track of the properties to check6947 builds the check correctly6948 merges the checks of a parent class into existing checks of a subclass6949 merges the existing checks of a superclass into the checks of a subclass6950 #find_check6951 returns a check when it was defined for a superclass6952 caches the result for a subclass6953 returns the checks for the closest class if there are more checks available6954TimeHelper6955 #time_interval_in_words6956 returns minutes and seconds6957 #duration_in_numbers6958 duration: 0, formatted_string: "00:00"6959 is expected to eq "00:00"6960 duration: 1 second, formatted_string: "00:01"6961 is expected to eq "00:01"6962 duration: 42 seconds, formatted_string: "00:42"6963 is expected to eq "00:42"6964 duration: 2 minutes and 1 second, formatted_string: "02:01"6965 is expected to eq "02:01"6966 duration: 3 hours, 2 minutes, and 1 second, formatted_string: "03:02:01"6967 is expected to eq "03:02:01"6968 duration: 30 hours, formatted_string: "30:00:00"6969 is expected to eq "30:00:00"6970 #time_in_milliseconds6971 returns the time in milliseconds6972BulkImports::Pipeline6973 pipeline attributes6974 getters6975 retrieves class attributes6976 when extractor and loader are defined within the pipeline6977 returns itself when retrieving extractor & loader6978 setters6979 sets class attributes6980 #instantiate6981 when options are present6982 instantiates new object with options6983 when options are missing6984 instantiates new object without options6985 #transformers6986 has instance transform method first to run6987Gitlab::Graphql::Pagination::Keyset::Conditions::NullCondition6988 #build6989 when ordering by a column attribute6990 when :after6991 behaves like :after condition6992 generates sql6993 when :before6994 generates :before sql6995 when :foo6996 behaves like :after condition6997 generates sql6998 when ordering by LOWER6999 when :after7000 generates sql7001 when :before7002 generates :before sql7003API::Entities::Projects::RepositoryStorageMove7004 #as_json7005 includes basic fields7006Gitlab::Graphql::Loaders::BatchLfsOidLoader7007 #find7008 batch-resolves LFS blob IDs7009Admin::PlansFinder7010 #execute7011 with no params7012 returns all plans7013 with missing name in params7014 returns all plans7015 with existing name in params7016 returns the plan7017 with non-existing name in params7018 returns nil7019Gitlab::Ci::Reports::CoverageReports7020 is expected to eq {}7021 #pick7022 returns only picked files while ignoring nonexistent ones7023 #add_file7024 when providing two individual files7025 initializes a new test suite and returns it7026 when providing the same files twice7027 with different line coverage7028 initializes a new test suite and returns it7029 with identical line coverage7030 initializes a new test suite and returns it7031Gitlab::Ci::Pipeline::Duration7032 test sample A7033 behaves like calculating duration7034 is expected to eq 47035 test sample B7036 behaves like calculating duration7037 is expected to eq 47038 test sample C7039 behaves like calculating duration7040 is expected to eq 87041 test sample D7042 behaves like calculating duration7043 is expected to eq 47044 test sample E7045 behaves like calculating duration7046 is expected to eq 77047 test sample F7048 behaves like calculating duration7049 is expected to eq 67050 test sample G7051 behaves like calculating duration7052 is expected to eq 47053Types::UserType7054 is expected to eq "User"7055 is expected to require graphql authorizations :read_user7056 has the expected fields7057 snippets field7058 returns snippets7059Gitlab::Utils::LogLimitedArray7060 .log_limited_array7061 when the argument is not an array7062 returns an empty array7063 when the argument is an array7064 when the array is under the limit7065 returns the array unchanged7066 when the array exceeds the limit7067 when no sentinel value is passed7068 replaces arguments after the limit with an ellipsis string7069 when a sentinel value is passed7070 replaces arguments after the limit with the sentinel7071 when the array contains arrays and hashes7072 calculates the size based on the JSON representation7073UserProjectAccessChangedService7074 #execute7075 schedules the user IDs7076 permits non-blocking operation7077 permits low-priority operation7078OptionallySearch7079 .search7080 raises NotImplementedError7081 .optionally_search7082 when a query is given7083 delegates to the search method7084 when an option is provided7085 delegates to the search method7086 when no query is given7087 returns the current relation7088 when an empty query is given7089 returns the current relation7090Gitlab::Graphql::GenericTracing7091 updates graphql histogram with expected labels7092 when labkit tracing is enabled7093 yields with labkit tracing7094 when labkit tracing is disabled7095 yields without measurement7096Types::TimeType7097 is expected to eq "Time"7098 coerces Time object into ISO 86017099 coerces an ISO-time into Time object7100 rejects invalid input7101 rejects nil7102Members::InviteEmailExperiment7103 #rollout_strategy7104 resolves to round_robin7105 #variants7106 has all the expected variants7107 exclusions7108 excludes when created by is nil7109 excludes when avatar_url is nil7110SystemNotes::BaseService7111 #noteable7112 is expected to eq #<Double (anonymous)>7113 returns nil if no arguments are given7114 #project7115 is expected to eq #<Double (anonymous)>7116 returns nil if no arguments are given7117 #author7118 is expected to eq #<Double (anonymous)>7119 returns nil if no arguments are given7120Uniquify7121 #string7122 returns the given string if it does not exist7123 returns the given string with a counter attached if the string exists7124 increments the counter for each candidate string that also exists7125 allows to pass an initial value for the counter7126 allows passing in a base function that defines the location of the counter7127Gitlab::Ci::Config::Entry::Files7128 validations7129 when entry config value is valid7130 #value7131 returns key value7132 #valid?7133 is valid7134 #errors7135 when entry value is not an array7136 saves errors7137 when entry value is not an array of strings7138 saves errors7139 when entry value contains more than two values7140 saves errors7141Types::AlertManagement::AlertType7142 is expected to eq "AlertManagementAlert"7143 is expected to require graphql authorizations :read_alert_management_alert7144 exposes the expected fields7145Gitlab::Config::Entry::Simplifiable7146 .strategy7147 defines entry strategies7148 setting strategy by a condition7149 when first strategy should be used7150 attemps to load a first strategy7151 when second strategy should be used7152 attemps to load a second strategy7153 when neither one is a valid strategy7154 instantiates an unknown strategy7155 when a unknown strategy class is not defined7156 raises an error when being initialized7157Gitlab::Metrics::Subscribers::ActionView7158 #render_template7159 tracks rendering of a template7160 observes view rendering time7161Bitbucket::Page7162 #items7163 returns collection of needed objects7164 #attrs7165 returns attributes7166 #next?7167 returns true7168 returns false7169 #next7170 returns next attribute7171ResourceEvents::SyntheticMilestoneNotesBuilderService7172 #execute7173 builds milestone notes for resource milestone events7174Namespaces::OnboardingPipelineCreatedWorker#perform7175 behaves like records an onboarding progress action7176 is expected to receive execute({:action=>:pipeline_created}) 1 time7177 behaves like does not record an onboarding progress action7178 is expected not to receive new(*(any args)) 0 times7179Gitlab::RateLimitHelpers7180 #archive_rate_limit_reached?7181 with a user7182 rate limits the user properly7183 with an anonymous user7184 rate limits with higher limits7185Gitlab::ImportExport::AttributeCleaner7186 removes unwanted attributes from the hash7187 removes attributes not present in relation_class7188 removes excluded keys from the hash7189 does not remove excluded key if not listed7190Gitlab::Config::Entry::Unspecified7191 #valid?7192 delegates method to entry7193 #errors7194 delegates method to entry7195 #value7196 delegates method to entry7197 #specified?7198 is always false7199RuboCop::Cop::RSpec::AnyInstanceOf7200 when calling allow_any_instance_of7201 registers an offense and corrects7202 when calling expect_any_instance_of7203 registers an offense and corrects7204Metrics::UsersStarredDashboards::DeleteService7205 #execute7206 without dashboard_path7207 does not scope user starred dashboards by dashboard path7208 with dashboard_path7209 does scope user starred dashboards by dashboard path7210Gitlab::GithubImport::Representation::PullRequestReview7211 .from_api_response7212 does not set the user if the response did not include a user7213 behaves like a PullRequest review7214 returns an instance of PullRequest7215 .from_json_hash7216 does not set the user if the response did not include a user7217 behaves like a PullRequest review7218 returns an instance of PullRequest7219Import::FogbugzProviderRepoEntity7220 behaves like exposes required fields for import entity7221 exposes required fields7222 correctly exposes id7223 correctly exposes full name7224 correctly exposes sanitized name7225 correctly exposes provider link7226CrudPolicyHelpers7227 .create_read_update_admin_destroy7228 returns an array of the appropriate abilites given a feature name7229 .create_update_admin_destroy7230 returns an array of the appropriate abilites given a feature name7231 .create_update_admin7232 returns an array of the appropriate abilites given a feature name7233ProductAnalytics::BuildGraphService7234 returns a valid graph hash7235Gitlab::Middleware::HandleIpSpoofAttackError7236 passes through the response from a valid upstream7237 translates an ActionDispatch::IpSpoofAttackError to a 400 response7238 passes through the exception raised by an invalid upstream7239Types::GrafanaIntegrationType7240 is expected to eq "GrafanaIntegration"7241 is expected to require graphql authorizations :admin_operations7242 is expected to have graphql fields :id, :grafana_url, :enabled, :created_at, and :updated_at7243Gitlab::PhabricatorImport::Conduit::User7244 #users7245 calls the api with the correct params7246 returns an array of parsed responses7247 performs multiple requests if more phids than the maximum page size are passed7248Types::ReleaseAssetsInputType7249 is expected to eq "ReleaseAssetsInput"7250 has the correct arguments7251 sets the type of links argument to ReleaseAssetLinkInputType7252Gitlab::Config::Entry::Boolean7253 validations7254 when entry config value is valid7255 #value7256 returns key value7257 #valid?7258 is valid7259 when entry value is not valid7260 #errors7261 saves errors7262Types::AlertManagement::DomainFilterEnum7263 is expected to eq "AlertManagementDomainFilter"7264 exposes all the severity values7265Gitlab::Checks::TimedLogger7266 #log_timed7267 logs message7268 when time limit was reached7269 cancels action7270 cancels action with time elapsed if work was performed7271Types::ReleaseLinksType7272 is expected to require graphql authorizations :download_code7273 has the expected fields7274Graphql::FieldSelection7275 can report on the paths that are selected7276 can serialize a field selection nicely7277Types::Projects::Services::JiraServiceType7278 is expected to eq "JiraService"7279 has basic expected fields7280 is expected to require graphql authorizations :admin_project7281Gitlab::Graphql::QueryAnalyzers::LoggerAnalyzer7282 #initial_value7283 filters out sensitive variables7284 #final_value7285 returns a duration in seconds7286Ci::CodequalityMrDiffEntity7287 #as_json7288 when quality report has degradations7289 contains correct codequality mr diff report7290Types::Projects::ServiceTypeEnum7291 is expected to eq "ServiceType"7292 exposes all the existing project services7293ProjectSerializer7294 when serializer option is :import7295 represents with ProjectImportEntity7296 when serializer option is omitted7297 represents with ProjectEntity7298Types::UserStatusType7299 is expected to eq "UserStatus"7300 exposes the expected fields7301Types::Tree::BlobType7302 is expected to eq "Blob"7303 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, :web_path, :lfs_oid, and :mode7304Projects::Prometheus::Alerts::DestroyService7305 #execute7306 deletes the alert7307Types::DesignManagement::DesignVersionEventEnum7308 is expected to eq "DesignVersionEvent"7309 exposes the correct event states7310Types::AlertManagement::SeverityEnum7311 is expected to eq "AlertManagementSeverity"7312 exposes all the severity values7313Types::ContainerExpirationPolicyCadenceEnum7314 behaves like exposing container expiration policy option7315 exposes all options7316 uses all possible options from model7317Gitlab::PhabricatorImport::Representation::User7318 #phabricator_id7319 returns the phabricator id7320 #username7321 returns the username7322InstanceMetadata7323 has the correct properties7324Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata7325 #call7326 merges Application#logging_extras in to job7327 does not raise when the worker does not respond to #done_log_extra_metadata7328Banzai::Filter::OutputSafety7329 when given HTML is safe7330 returns safe HTML7331 when given HTML is not safe7332 returns escaped HTML7333SubscribableBannerHelper7334 #display_subscription_banner!7335 is over-written in EE7336API::Entities::Nuget::PackageMetadataCatalogEntry7337 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"}7338TodosDestroyer::ProjectPrivateWorker7339 calls the Todos::Destroy::ProjectPrivateService with the params it was given7340Types::DesignManagementType7341 is expected to have graphql fields :version and :design_at_version7342Types::EventableType7343 exposes events field7344Resolvers::MetadataResolver7345 #resolve7346 returns version and revision7347Gitlab::Git::GitmodulesParser7348 parses a .gitmodules file correctly7349Gitlab::NoCacheHeaders7350 #no_cache_headers7351 raises a RuntimeError7352Knapsack report was generated. Preview:7353{7354 "spec/services/git/branch_push_service_spec.rb": 89.40506768226624,7355 "spec/models/concerns/milestoneish_spec.rb": 56.974549770355225,7356 "spec/services/projects/overwrite_project_service_spec.rb": 44.575778007507324,7357 "spec/lib/gitlab/gpg/commit_spec.rb": 22.353690147399902,7358 "spec/models/project_services/jira_service_spec.rb": 24.7011981010437,7359 "spec/lib/gitlab/ci/status/build/factory_spec.rb": 19.22601008415222,7360 "spec/policies/project_statistics_policy_spec.rb": 24.160878896713257,7361 "spec/finders/todos_finder_spec.rb": 13.859644889831543,7362 "spec/models/project_services/slack_service_spec.rb": 16.654213428497314,7363 "spec/models/ci/job_artifact_spec.rb": 16.159965991973877,7364 "spec/lib/banzai/filter/commit_range_reference_filter_spec.rb": 10.706186294555664,7365 "spec/models/concerns/counter_attribute_spec.rb": 10.42219853401184,7366 "spec/lib/gitlab/reference_extractor_spec.rb": 9.389030456542969,7367 "spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb": 10.976476669311523,7368 "spec/tasks/gitlab/workhorse_rake_spec.rb": 9.856143236160278,7369 "spec/services/merge_requests/ff_merge_service_spec.rb": 10.114514112472534,7370 "spec/lib/banzai/reference_parser/base_parser_spec.rb": 8.168743133544922,7371 "spec/services/todos/destroy/group_private_service_spec.rb": 9.816616535186768,7372 "spec/lib/gitlab/contributions_calendar_spec.rb": 8.048135757446289,7373 "spec/finders/environment_names_finder_spec.rb": 8.180251598358154,7374 "spec/lib/gitlab/email/message/repository_push_spec.rb": 6.785613536834717,7375 "spec/presenters/commit_status_presenter_spec.rb": 6.294322729110718,7376 "spec/models/concerns/project_api_compatibility_spec.rb": 6.100003480911255,7377 "spec/finders/starred_projects_finder_spec.rb": 5.458871126174927,7378 "spec/presenters/projects/settings/deploy_keys_presenter_spec.rb": 5.646830081939697,7379 "spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb": 5.63559103012085,7380 "spec/models/ci/build_runner_session_spec.rb": 5.0890233516693115,7381 "spec/models/project_services/jenkins_service_spec.rb": 4.6216957569122314,7382 "spec/models/diff_viewer/base_spec.rb": 3.1685309410095215,7383 "spec/graphql/mutations/issues/set_due_date_spec.rb": 3.4267938137054443,7384 "spec/lib/gitlab/import_export/project/object_builder_spec.rb": 3.7795329093933105,7385 "spec/models/packages/conan/file_metadatum_spec.rb": 3.9311752319335938,7386 "spec/models/operations/feature_flags/user_list_spec.rb": 3.9853129386901855,7387 "spec/finders/security/license_compliance_jobs_finder_spec.rb": 4.134897708892822,7388 "spec/models/concerns/prometheus_adapter_spec.rb": 3.760387897491455,7389 "spec/services/groups/group_links/create_service_spec.rb": 3.7439279556274414,7390 "spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb": 1.8007440567016602,7391 "spec/services/post_receive_service_spec.rb": 3.765471935272217,7392 "spec/services/upload_service_spec.rb": 3.4039623737335205,7393 "spec/services/todos/destroy/confidential_issue_service_spec.rb": 3.211107015609741,7394 "spec/services/files/update_service_spec.rb": 2.665163040161133,7395 "spec/services/gpg_keys/create_service_spec.rb": 2.356783151626587,7396 "spec/services/projects/move_project_members_service_spec.rb": 3.3195226192474365,7397 "spec/services/ci/destroy_expired_job_artifacts_service_spec.rb": 2.5886471271514893,7398 "spec/lib/gitlab/chat/responder/slack_spec.rb": 3.0898590087890625,7399 "spec/workers/remove_expired_members_worker_spec.rb": 2.6882994174957275,7400 "spec/lib/gitlab/slash_commands/issue_move_spec.rb": 3.1982648372650146,7401 "spec/lib/atlassian/jira_connect/serializers/deployment_entity_spec.rb": 2.788402557373047,7402 "spec/services/ci/extract_sections_from_build_trace_service_spec.rb": 3.183494806289673,7403 "spec/serializers/web_ide_terminal_entity_spec.rb": 2.2240264415740967,7404 "spec/services/issues/reorder_service_spec.rb": 2.649610757827759,7405 "spec/lib/gitlab/import_export/lfs_restorer_spec.rb": 2.5645439624786377,7406 "spec/workers/clusters/applications/deactivate_service_worker_spec.rb": 2.3113129138946533,7407 "spec/lib/gitlab/auth/saml/user_spec.rb": 2.4132869243621826,7408 "spec/lib/banzai/reference_parser/milestone_parser_spec.rb": 1.6968464851379395,7409 "spec/uploaders/import_export_uploader_spec.rb": 2.2462594509124756,7410 "spec/lib/gitlab/ci/pipeline/chain/build/associations_spec.rb": 1.793778419494629,7411 "spec/lib/gitlab/diff/diff_refs_spec.rb": 2.2129132747650146,7412 "spec/lib/gitlab/ci/config/external/file/project_spec.rb": 1.7324793338775635,7413 "spec/lib/gitlab/import_export/project/export_task_spec.rb": 1.6196954250335693,7414 "spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb": 1.5893404483795166,7415 "spec/views/projects/merge_requests/_commits.html.haml_spec.rb": 1.8070931434631348,7416 "spec/tasks/gitlab/update_templates_rake_spec.rb": 1.8603379726409912,7417 "spec/helpers/wiki_helper_spec.rb": 5.860940933227539,7418 "spec/lib/banzai/reference_parser/external_issue_parser_spec.rb": 1.8418078422546387,7419 "spec/lib/gitlab/checks/snippet_check_spec.rb": 1.9276206493377686,7420 "spec/lib/banzai/reference_parser/label_parser_spec.rb": 1.7320494651794434,7421 "spec/helpers/application_helper_spec.rb": 1.7326209545135498,7422 "spec/lib/gitlab/ci/status/stage/common_spec.rb": 1.0873746871948242,7423 "spec/workers/design_management/new_version_worker_spec.rb": 1.3145980834960938,7424 "spec/lib/gitlab/consul/internal_spec.rb": 0.37083911895751953,7425 "spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb": 1.3960773944854736,7426 "spec/lib/api/entities/merge_request_approvals_spec.rb": 1.075798749923706,7427 "spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb": 1.3353235721588135,7428 "spec/lib/gitlab/ci/status/build/common_spec.rb": 1.7083957195281982,7429 "spec/finders/protected_branches_finder_spec.rb": 1.265212059020996,7430 "spec/helpers/groups/group_members_helper_spec.rb": 1.4341819286346436,7431 "spec/services/clusters/applications/schedule_update_service_spec.rb": 1.1219391822814941,7432 "spec/lib/gitlab/email/smime/signer_spec.rb": 1.695634126663208,7433 "spec/services/projects/batch_open_issues_count_service_spec.rb": 1.1132185459136963,7434 "spec/lib/gitlab/git/patches/commit_patches_spec.rb": 1.1388442516326904,7435 "spec/finders/packages/conan/package_finder_spec.rb": 1.0534939765930176,7436 "spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb": 1.3788552284240723,7437 "spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb": 0.9947216510772705,7438 "spec/lib/gitlab/x509/signature_spec.rb": 1.2057836055755615,7439 "spec/graphql/resolvers/snippets_resolver_spec.rb": 1.2569005489349365,7440 "spec/services/users/update_service_spec.rb": 0.9862449169158936,7441 "spec/views/projects/commits/_commit.html.haml_spec.rb": 1.1369049549102783,7442 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 0.9920980930328369,7443 "spec/lib/gitlab/slash_commands/issue_search_spec.rb": 1.127089500427246,7444 "spec/workers/merge_request_cleanup_refs_worker_spec.rb": 1.0038063526153564,7445 "spec/lib/gitlab/usage/metric_spec.rb": 0.5508036613464355,7446 "spec/serializers/trigger_variable_entity_spec.rb": 1.0685060024261475,7447 "spec/lib/gitlab/database/count/exact_count_strategy_spec.rb": 1.1540265083312988,7448 "spec/presenters/ci/pipeline_artifacts/code_quality_mr_diff_presenter_spec.rb": 0.9434370994567871,7449 "spec/lib/gitlab/git_access_project_spec.rb": 1.0412583351135254,7450 "spec/lib/gitlab/import/merge_request_creator_spec.rb": 0.9394843578338623,7451 "spec/views/projects/clusters/clusters/gcp/_form.html.haml_spec.rb": 1.190617561340332,7452 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 0.9534578323364258,7453 "spec/services/metrics/dashboard/cluster_dashboard_service_spec.rb": 0.6692523956298828,7454 "spec/services/boards/create_service_spec.rb": 0.885197639465332,7455 "spec/policies/clusters/instance_policy_spec.rb": 0.7890834808349609,7456 "spec/tooling/danger/helper_spec.rb": 0.7554559707641602,7457 "spec/presenters/project_member_presenter_spec.rb": 0.8593547344207764,7458 "spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb": 0.8158199787139893,7459 "spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb": 0.7531888484954834,7460 "spec/finders/ci/variables_finder_spec.rb": 0.716970682144165,7461 "spec/lib/gitlab/kubernetes/node_spec.rb": 0.6796391010284424,7462 "spec/policies/service_policy_spec.rb": 0.5363991260528564,7463 "spec/policies/terraform/state_policy_spec.rb": 0.6210362911224365,7464 "spec/services/protected_branches/update_service_spec.rb": 0.7044620513916016,7465 "spec/lib/gitlab/bare_repository_import/repository_spec.rb": 0.43315839767456055,7466 "spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 0.6079888343811035,7467 "spec/models/issue_email_participant_spec.rb": 0.5278992652893066,7468 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 0.6412863731384277,7469 "spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb": 0.5958271026611328,7470 "spec/models/project_pages_metadatum_spec.rb": 0.5756411552429199,7471 "spec/policies/alert_management/http_integration_policy_spec.rb": 0.5842795372009277,7472 "spec/graphql/mutations/terraform/state/unlock_spec.rb": 0.46225619316101074,7473 "spec/serializers/web_ide_terminal_serializer_spec.rb": 0.5144960880279541,7474 "spec/models/project_services/irker_service_spec.rb": 0.47483277320861816,7475 "spec/policies/application_setting/term_policy_spec.rb": 0.5663571357727051,7476 "spec/lib/gitlab/diff/line_mapper_spec.rb": 0.4819488525390625,7477 "spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 0.6528584957122803,7478 "spec/workers/clusters/cleanup/service_account_worker_spec.rb": 0.4073014259338379,7479 "spec/views/notify/autodevops_disabled_email.text.erb_spec.rb": 0.4967834949493408,7480 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 0.45474934577941895,7481 "spec/models/concerns/cacheable_attributes_spec.rb": 0.41509008407592773,7482 "spec/models/blob_viewer/changelog_spec.rb": 0.4311227798461914,7483 "spec/models/namespace/traversal_hierarchy_spec.rb": 0.5025339126586914,7484 "spec/models/import_export_upload_spec.rb": 0.4554784297943115,7485 "spec/lib/gitlab/import/set_async_jid_spec.rb": 0.4206852912902832,7486 "spec/initializers/rest-client-hostname_override_spec.rb": 0.38114428520202637,7487 "spec/models/uploads/local_spec.rb": 0.45285916328430176,7488 "spec/lib/gitlab/http_io_spec.rb": 0.39940667152404785,7489 "spec/services/incident_management/create_incident_label_service_spec.rb": 0.3419361114501953,7490 "spec/graphql/mutations/release_asset_links/create_spec.rb": 0.31359148025512695,7491 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 0.2923412322998047,7492 "spec/workers/gitlab/phabricator_import/import_tasks_worker_spec.rb": 0.31420040130615234,7493 "spec/models/atlassian/identity_spec.rb": 0.35932397842407227,7494 "spec/policies/ci/bridge_policy_spec.rb": 0.24028706550598145,7495 "spec/models/snippets/repository_storage_move_spec.rb": 0.33085012435913086,7496 "spec/workers/build_hooks_worker_spec.rb": 0.30799245834350586,7497 "spec/models/identity_spec.rb": 0.31846070289611816,7498 "spec/serializers/evidences/release_entity_spec.rb": 0.2927887439727783,7499 "spec/validators/public_url_validator_spec.rb": 0.2594282627105713,7500 "spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb": 0.2264549732208252,7501 "spec/graphql/resolvers/user_notes_count_resolver_spec.rb": 0.32943105697631836,7502 "spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb": 0.2599303722381592,7503 "spec/serializers/diff_viewer_entity_spec.rb": 0.2616310119628906,7504 "spec/services/users/last_push_event_service_spec.rb": 0.2377915382385254,7505 "spec/workers/flush_counter_increments_worker_spec.rb": 0.24142217636108398,7506 "spec/models/user_detail_spec.rb": 0.21836042404174805,7507 "spec/services/wiki_pages/event_create_service_spec.rb": 0.28597140312194824,7508 "spec/services/projects/prometheus/alerts/update_service_spec.rb": 0.25409650802612305,7509 "spec/workers/update_project_statistics_worker_spec.rb": 0.258908748626709,7510 "spec/helpers/projects/incidents_helper_spec.rb": 0.2196657657623291,7511 "spec/views/shared/projects/_project.html.haml_spec.rb": 0.20261764526367188,7512 "spec/lib/gitlab/database/reindexing/index_selection_spec.rb": 0.19923996925354004,7513 "spec/lib/gitlab/monitor/demo_projects_spec.rb": 0.3346409797668457,7514 "spec/workers/gitlab/github_import/stage/import_pull_requests_worker_spec.rb": 0.23758578300476074,7515 "spec/models/concerns/nullify_if_blank_spec.rb": 0.17096686363220215,7516 "spec/lib/gitlab/middleware/read_only_spec.rb": 0.3128068447113037,7517 "spec/models/namespace_setting_spec.rb": 0.1416761875152588,7518 "spec/helpers/icons_helper_spec.rb": 0.18314504623413086,7519 "spec/serializers/group_link/group_group_link_entity_spec.rb": 0.17520451545715332,7520 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 0.1304030418395996,7521 "spec/lib/gitlab/view/presenter/base_spec.rb": 0.1647319793701172,7522 "spec/lib/gitlab/analytics/unique_visits_spec.rb": 0.2588331699371338,7523 "spec/serializers/linked_project_issue_entity_spec.rb": 0.1246957778930664,7524 "spec/lib/gitlab/graphql/pagination/connections_spec.rb": 0.12616539001464844,7525 "spec/lib/gitlab/suggestions/suggestion_set_spec.rb": 0.140061616897583,7526 "spec/lib/gitlab/metrics/dashboard/url_spec.rb": 0.14698243141174316,7527 "spec/tooling/danger/base_linter_spec.rb": 0.14247369766235352,7528 "spec/lib/api/entities/plan_limit_spec.rb": 0.02358102798461914,7529 "spec/lib/api/github/entities_spec.rb": 0.1256406307220459,7530 "spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb": 0.13202714920043945,7531 "spec/lib/banzai/filter/broadcast_message_placeholders_filter_spec.rb": 0.11422204971313477,7532 "spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb": 0.10611248016357422,7533 "spec/lib/gitlab/octokit/middleware_spec.rb": 0.12977361679077148,7534 "spec/services/keys/destroy_service_spec.rb": 0.1064918041229248,7535 "spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb": 0.10498809814453125,7536 "spec/lib/banzai/renderer_spec.rb": 0.14979100227355957,7537 "spec/finders/projects/prometheus/alerts_finder_spec.rb": 0.09533548355102539,7538 "spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb": 0.11679291725158691,7539 "spec/lib/gitlab/ci/status/composite_spec.rb": 0.08943915367126465,7540 "spec/lib/gitlab/changelog/parser_spec.rb": 0.10478782653808594,7541 "spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb": 0.09529495239257812,7542 "spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb": 0.10448622703552246,7543 "spec/helpers/environment_helper_spec.rb": 0.07453012466430664,7544 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 0.13210248947143555,7545 "spec/lib/gitlab/external_authorization_spec.rb": 0.09913754463195801,7546 "spec/lib/gitlab/ci/config/external/context_spec.rb": 0.08448648452758789,7547 "spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb": 0.17576932907104492,7548 "spec/services/web_hooks/destroy_service_spec.rb": 0.06554388999938965,7549 "spec/rubocop/cop/migration/datetime_spec.rb": 0.1550741195678711,7550 "spec/lib/api/entities/ssh_key_spec.rb": 0.08662056922912598,7551 "spec/lib/gitlab/sourcegraph_spec.rb": 0.07826566696166992,7552 "spec/lib/gitlab/dependency_linker/cargo_toml_linker_spec.rb": 0.08491778373718262,7553 "spec/services/prometheus/proxy_service_spec.rb": 0.0579071044921875,7554 "spec/lib/gitlab/language_data_spec.rb": 0.07155680656433105,7555 "spec/lib/gitlab/import_export/attributes_finder_spec.rb": 0.06943774223327637,7556 "spec/lib/gitlab/kubernetes/helm/v2/delete_command_spec.rb": 0.06060338020324707,7557 "spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb": 0.06912779808044434,7558 "spec/lib/banzai/filter/spaced_link_filter_spec.rb": 0.06243300437927246,7559 "spec/lib/gitlab/auth/otp/strategies/forti_authenticator_spec.rb": 0.05914473533630371,7560 "spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb": 0.06266212463378906,7561 "spec/workers/pages_domain_removal_cron_worker_spec.rb": 0.06321096420288086,7562 "spec/lib/gitlab/ci/pipeline_object_hierarchy_spec.rb": 0.0653829574584961,7563 "spec/lib/gitlab/usage_data/topology_spec.rb": 0.07406973838806152,7564 "spec/helpers/version_check_helper_spec.rb": 0.061370134353637695,7565 "spec/tooling/danger/feature_flag_spec.rb": 0.04355192184448242,7566 "spec/lib/gitlab/elasticsearch/logs/lines_spec.rb": 0.045076608657836914,7567 "spec/lib/gitlab/config/entry/composable_hash_spec.rb": 0.06013083457946777,7568 "spec/lib/gitlab/metrics/dashboard/cache_spec.rb": 0.05440068244934082,7569 "spec/lib/gitlab/import_export/error_spec.rb": 0.04613327980041504,7570 "spec/rubocop/cop/migration/schedule_async_spec.rb": 0.05028510093688965,7571 "spec/lib/gitlab/jwt_authenticatable_spec.rb": 0.04416346549987793,7572 "spec/lib/gitlab/dependency_linker_spec.rb": 0.044059038162231445,7573 "spec/rubocop/cop/code_reuse/serializer_spec.rb": 0.04347658157348633,7574 "spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb": 0.039493560791015625,7575 "spec/tooling/rspec_flaky/listener_spec.rb": 0.0584261417388916,7576 "spec/lib/mattermost/command_spec.rb": 0.043766021728515625,7577 "spec/lib/gitlab/gitaly_client/diff_spec.rb": 0.039695024490356445,7578 "spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb": 0.028670549392700195,7579 "spec/presenters/packages/nuget/service_index_presenter_spec.rb": 0.03782510757446289,7580 "spec/rubocop/cop/usage_data/large_table_spec.rb": 0.04324007034301758,7581 "spec/lib/gitlab/hook_data/group_builder_spec.rb": 0.03471827507019043,7582 "spec/models/concerns/from_intersect_spec.rb": 0.026723623275756836,7583 "spec/models/project_services/chat_message/note_message_spec.rb": 0.03131294250488281,7584 "spec/lib/gitlab/avatar_cache_spec.rb": 0.03907370567321777,7585 "spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb": 0.03598427772521973,7586 "spec/services/personal_access_tokens/last_used_service_spec.rb": 0.028722763061523438,7587 "spec/workers/issue_rebalancing_worker_spec.rb": 0.02628183364868164,7588 "spec/lib/api/helpers/merge_requests_helpers_spec.rb": 0.04032325744628906,7589 "spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb": 0.033127784729003906,7590 "spec/lib/json_web_token/rsa_token_spec.rb": 0.03822612762451172,7591 "spec/lib/gitlab/sidekiq_middleware/memory_killer_spec.rb": 0.02829265594482422,7592 "spec/lib/gitlab/cross_project_access_spec.rb": 0.03012561798095703,7593 "spec/helpers/time_helper_spec.rb": 0.03071451187133789,7594 "spec/lib/bulk_imports/pipeline_spec.rb": 0.026871204376220703,7595 "spec/lib/gitlab/graphql/pagination/keyset/conditions/null_condition_spec.rb": 0.020371437072753906,7596 "spec/lib/api/entities/projects/repository_storage_move_spec.rb": 0.0504145622253418,7597 "spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb": 0.026370763778686523,7598 "spec/finders/admin/plans_finder_spec.rb": 0.021564483642578125,7599 "spec/lib/gitlab/ci/reports/coverage_reports_spec.rb": 0.019885778427124023,7600 "spec/lib/gitlab/ci/pipeline/duration_spec.rb": 0.027622699737548828,7601 "spec/graphql/types/user_type_spec.rb": 0.01925826072692871,7602 "spec/lib/gitlab/utils/log_limited_array_spec.rb": 0.020102739334106445,7603 "spec/services/user_project_access_changed_service_spec.rb": 0.02531909942626953,7604 "spec/models/concerns/optionally_search_spec.rb": 0.02439141273498535,7605 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.02982926368713379,7606 "spec/graphql/types/time_type_spec.rb": 0.01866006851196289,7607 "spec/experiments/members/invite_email_experiment_spec.rb": 0.02027750015258789,7608 "spec/services/system_notes/base_service_spec.rb": 0.022057533264160156,7609 "spec/models/concerns/uniquify_spec.rb": 0.018999576568603516,7610 "spec/lib/gitlab/ci/config/entry/files_spec.rb": 0.029157400131225586,7611 "spec/graphql/types/alert_management/alert_type_spec.rb": 0.013872623443603516,7612 "spec/lib/gitlab/config/entry/simplifiable_spec.rb": 0.02060675621032715,7613 "spec/lib/gitlab/metrics/subscribers/action_view_spec.rb": 0.011801958084106445,7614 "spec/lib/bitbucket/page_spec.rb": 0.017393827438354492,7615 "spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb": 0.02128005027770996,7616 "spec/workers/namespaces/onboarding_pipeline_created_worker_spec.rb": 0.01661229133605957,7617 "spec/lib/gitlab/rate_limit_helpers_spec.rb": 0.019275903701782227,7618 "spec/lib/gitlab/import_export/attribute_cleaner_spec.rb": 0.02031254768371582,7619 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 0.016268491744995117,7620 "spec/rubocop/cop/rspec/any_instance_of_spec.rb": 0.019841432571411133,7621 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 0.013610601425170898,7622 "spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb": 0.01724720001220703,7623 "spec/serializers/import/fogbugz_provider_repo_entity_spec.rb": 0.016378164291381836,7624 "spec/policies/concerns/crud_policy_helpers_spec.rb": 0.011947393417358398,7625 "spec/services/product_analytics/build_graph_service_spec.rb": 0.013218402862548828,7626 "spec/lib/gitlab/middleware/handle_ip_spoof_attack_error_spec.rb": 0.013199329376220703,7627 "spec/graphql/types/grafana_integration_type_spec.rb": 0.012759923934936523,7628 "spec/lib/gitlab/phabricator_import/conduit/user_spec.rb": 0.01540517807006836,7629 "spec/graphql/types/release_assets_input_type_spec.rb": 0.013400554656982422,7630 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.01548147201538086,7631 "spec/graphql/types/alert_management/domain_filter_enum_spec.rb": 0.009336233139038086,7632 "spec/lib/gitlab/checks/timed_logger_spec.rb": 0.01346445083618164,7633 "spec/graphql/types/release_links_type_spec.rb": 0.009450912475585938,7634 "spec/support_specs/graphql/field_selection_spec.rb": 0.008572101593017578,7635 "spec/graphql/types/projects/jira_service_type_spec.rb": 0.01556539535522461,7636 "spec/lib/gitlab/graphql/query_analyzers/logger_analyzer_spec.rb": 0.011846542358398438,7637 "spec/serializers/ci/codequality_mr_diff_entity_spec.rb": 0.0135040283203125,7638 "spec/graphql/types/projects/services_enum_spec.rb": 0.009606361389160156,7639 "spec/serializers/project_serializer_spec.rb": 0.008682489395141602,7640 "spec/graphql/types/user_status_type_spec.rb": 0.006874799728393555,7641 "spec/graphql/types/tree/blob_type_spec.rb": 0.009434700012207031,7642 "spec/services/projects/prometheus/alerts/destroy_service_spec.rb": 0.007267951965332031,7643 "spec/graphql/types/design_management/design_version_event_enum_spec.rb": 0.007741689682006836,7644 "spec/graphql/types/alert_management/severity_enum_spec.rb": 0.006898164749145508,7645 "spec/graphql/types/container_expiration_policy_cadence_enum_spec.rb": 0.007799863815307617,7646 "spec/lib/gitlab/phabricator_import/representation/user_spec.rb": 0.007452726364135742,7647 "spec/models/instance_metadata_spec.rb": 0.005377054214477539,7648 "spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb": 0.007947683334350586,7649 "spec/lib/banzai/filter/output_safety_spec.rb": 0.0070323944091796875,7650 "spec/helpers/subscribable_banner_helper_spec.rb": 0.004723072052001953,7651 "spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb": 0.004523754119873047,7652 "spec/workers/todos_destroyer/project_private_worker_spec.rb": 0.0047037601470947266,7653 "spec/graphql/types/design_management_type_spec.rb": 0.0047872066497802734,7654 "spec/graphql/types/eventable_type_spec.rb": 0.004800319671630859,7655 "spec/graphql/resolvers/metadata_resolver_spec.rb": 0.006657123565673828,7656 "spec/lib/gitlab/git/gitmodules_parser_spec.rb": 0.005071878433227539,7657 "spec/lib/gitlab/no_cache_headers_spec.rb": 0.0047101974487304697658}7659Knapsack global time execution for tests: 10m 49s7660Pending: (Failures listed here are expected and do not affect your suite's status)7661 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 blank7662 # No reason given7663 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497664 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 blank7665 # No reason given7666 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577667 3) ImportExportUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7668 # No pattern provided, skipping.7669 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87670 4) ImportExportUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7671 # No pattern provided, skipping.7672 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87673 5) ImportExportUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative7674 # Path not set, skipping.7675 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407676 6) ImportExportUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7677 # No pattern provided, skipping.7678 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87679 7) ImportExportUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7680 # No pattern provided, skipping.7681 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87682Finished in 15 minutes 56 seconds (files took 53.66 seconds to load)76833347 examples, 0 failures, 7 pending7684Wed 03 Mar 2021 12:19:11 PM UTC7686Not uploading cache rails-v4-3 due to policy7688Uploading artifacts...7689coverage/: found 5 matching files and directories 7690WARNING: crystalball/: no matching files 7691deprecations/: found 17 matching files and directories 7692knapsack/: found 3 matching files and directories 7693rspec_flaky/: found 4 matching files and directories 7694rspec_profiling/: found 1 matching files and directories 7695WARNING: tmp/capybara/: no matching files 7696tmp/memory_test/: found 2 matching files and directories 7697tmp/feature_flags/: found 150 matching files and directories 7698log/*.log: found 19 matching files and directories 7699Uploading artifacts as "archive" to coordinator... ok id=1069711857 responseStatus=201 Created token=qAK8-yAd7700Uploading artifacts...7701junit_rspec.xml: found 1 matching files and directories 7702Uploading artifacts as "junit" to coordinator... ok id=1069711857 responseStatus=201 Created token=qAK8-yAd7704Job succeeded