rspec unit pg11 10/20
Passed Started
by
@ayufan
Kamil Trzciński
1Running with gitlab-runner 13.3.0 (86ad88ea)2 on prm-com-gitlab-org bd0915564Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...5Starting service postgres:11.6 ...6Pulling docker image postgres:11.6 ...7Using docker image sha256:2c963c0eb8c6efa49bb8352ea446f248d208d674cfc34fc9ea275b5f99f8dedd for postgres:11.6 ...8Starting service redis:4.0-alpine ...9Pulling docker image redis:4.0-alpine ...10Using docker image sha256:e3dd0e49bca555d559ca2e97f06a1efa108ebd230fddcb17606723994f18ae3b for redis:4.0-alpine ...11Waiting for services to be up and running...12Authenticating with credentials from job payload (GitLab Registry)13Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...14Using docker image sha256:cd688957c9207f55272d81be6d4908692d78233833e3f09a9c0899b2f24eb3ff for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...16Running on runner-bd091556-project-278964-concurrent-0 via runner-bd091556-prm-1598347738-01c7800e...18$ eval "$CI_PRE_CLONE_SCRIPT"19Downloading archived master...20Connecting to storage.googleapis.com (172.217.203.128:443)21saving to '/tmp/gitlab.tar.gz'22gitlab.tar.gz 7% |** | 72.8M 0:00:12 ETA23gitlab.tar.gz 42% |************* | 425M 0:00:02 ETA24gitlab.tar.gz 75% |************************ | 755M 0:00:00 ETA25gitlab.tar.gz 100% |********************************| 1004M 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/30Created fresh repository.31Checking out dbc1a472 as master...32Skipping Git submodules setup34Checking cache for rails-v2-3...35cache.zip is up to date 36Successfully extracted cache38Downloading artifacts for compile-test-assets (702959600)...39Downloading artifacts from coordinator... ok id=702959600 responseStatus=200 OK token=efr6uzds40Downloading artifacts for retrieve-tests-metadata (702959602)...41Downloading artifacts from coordinator... ok id=702959602 responseStatus=200 OK token=VgekGNeS42Downloading artifacts for setup-test-env (702959601)...43Downloading artifacts from coordinator... ok id=702959601 responseStatus=200 OK token=Fwwkf6XV44WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 46$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb47$ export GOPATH=$CI_PROJECT_DIR/.go48$ mkdir -p $GOPATH49$ source scripts/utils.sh50$ source scripts/prepare_build.sh51Bundler version 1.17.252$ bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet53==> 'bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 2 seconds.54$ bundle check55Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.56The Gemfile's dependencies are satisfied57==> 'bundle check' succeeded in 0 seconds.58$ bundle pristine pg59Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.60Installing pg 1.2.2 with native extensions61==> 'bundle pristine pg' succeeded in 10 seconds.62$ gem install knapsack --no-document63Successfully installed knapsack-1.18.0641 gem installed65==> 'gem install knapsack --no-document' succeeded in 1 seconds.66$ setup_db_user_only67CREATE ROLE68GRANT69==> 'setup_db_user_only' succeeded in 0 seconds.70$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee71Dropped database 'gitlabhq_test'72Created database 'gitlabhq_test'73Dropped database 'gitlabhq_geo_test'74Created database 'gitlabhq_geo_test'75==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 28 seconds.76$ run_timed_command "scripts/gitaly-test-build"77$ scripts/gitaly-test-build78Settings are listed in order of priority. The top value will be used.79retry80Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 381path82Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"83jobs84Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 485app_config86Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"87gemfile88Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"89flags90Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --quiet --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"91silence_root_warning92Set via BUNDLE_SILENCE_ROOT_WARNING: true93go install -ldflags '-X gitlab.com/gitlab-org/gitaly/internal/version.version=13.3.0-rc5 -X gitlab.com/gitlab-org/gitaly/internal/version.buildtime=20200825.153136' -tags "tracer_static,tracer_static_jaeger,continuous_profiler_stackdriver" gitlab.com/gitlab-org/gitaly/cmd/praefect gitlab.com/gitlab-org/gitaly/cmd/gitaly-hooks gitlab.com/gitlab-org/gitaly/cmd/gitaly-blackbox gitlab.com/gitlab-org/gitaly/cmd/gitaly gitlab.com/gitlab-org/gitaly/cmd/gitaly-debug gitlab.com/gitlab-org/gitaly/cmd/gitaly-ssh gitlab.com/gitlab-org/gitaly/cmd/gitaly-wrapper94install /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/praefect /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-hooks /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-blackbox /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-debug /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-ssh /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-wrapper /builds/gitlab-org/gitlab/tmp/tests/gitaly95Checking gitaly-ruby Gemfile...96Checking gitaly-ruby bundle...97Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.98The Gemfile's dependencies are satisfied99Trying to connect to gitaly: ........ OK100Trying to connect to praefect: ...... OK101==> 'scripts/gitaly-test-build' succeeded in 44 seconds.102$ run_timed_command "scripts/gitaly-test-spawn"103$ scripts/gitaly-test-spawn104Checking gitaly-ruby Gemfile...105Checking gitaly-ruby bundle...106Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.107The Gemfile's dependencies are satisfied108Trying to connect to gitaly: ........ OK109Trying to connect to praefect: ....... OK110==> 'scripts/gitaly-test-spawn' succeeded in 1 seconds.111$ source scripts/rspec_helpers.sh112$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"113KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,support_specs,tasks,uploaders,validators,views,workers,elastic_integration,tooling}{,/**/}*_spec.rb114Report specs:115spec/services/merge_requests/create_from_issue_service_spec.rb116spec/models/cycle_analytics/production_spec.rb117spec/services/projects/unlink_fork_service_spec.rb118spec/uploaders/design_management/design_v432x230_uploader_spec.rb119spec/helpers/projects_helper_spec.rb120spec/lib/gitlab/middleware/go_spec.rb121spec/models/project_services/jira_service_spec.rb122spec/presenters/merge_request_presenter_spec.rb123spec/models/member_spec.rb124spec/lib/gitlab/email/handler/create_note_handler_spec.rb125spec/models/diff_note_spec.rb126spec/models/snippet_spec.rb127spec/lib/gitlab/asciidoc_spec.rb128spec/presenters/clusters/cluster_presenter_spec.rb129spec/lib/gitlab/tree_summary_spec.rb130spec/routing/project_routing_spec.rb131spec/models/commit_status_spec.rb132spec/models/label_link_spec.rb133spec/serializers/diffs_entity_spec.rb134spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb135spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb136spec/serializers/pipeline_details_entity_spec.rb137spec/models/commit_range_spec.rb138spec/models/ci/pipeline_artifact_spec.rb139spec/serializers/issue_entity_spec.rb140spec/services/issues/import_csv_service_spec.rb141spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb142spec/models/timelog_spec.rb143spec/models/design_management/version_spec.rb144spec/services/deployments/older_deployments_drop_service_spec.rb145spec/services/design_management/save_designs_service_spec.rb146spec/finders/metrics/dashboards/annotations_finder_spec.rb147spec/services/merge_requests/approval_service_spec.rb148spec/graphql/mutations/merge_requests/set_assignees_spec.rb149spec/lib/gitlab/verify/job_artifacts_spec.rb150spec/serializers/test_suite_entity_spec.rb151spec/helpers/todos_helper_spec.rb152spec/services/files/update_service_spec.rb153spec/serializers/diff_file_base_entity_spec.rb154spec/services/projects/container_repository/delete_tags_service_spec.rb155spec/services/packages/nuget/metadata_extraction_service_spec.rb156spec/models/concerns/prometheus_adapter_spec.rb157spec/lib/gitlab/kubernetes/helm/init_command_spec.rb158spec/services/issue_links/destroy_service_spec.rb159spec/services/boards/list_service_spec.rb160spec/services/alert_management/alerts/update_service_spec.rb161spec/serializers/test_report_summary_entity_spec.rb162spec/serializers/discussion_diff_file_entity_spec.rb163spec/lib/gitlab/ci/status/build/retryable_spec.rb164spec/services/metrics/dashboard/annotations/delete_service_spec.rb165spec/policies/project_member_policy_spec.rb166spec/services/resource_access_tokens/create_service_spec.rb167spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb168spec/lib/gitlab/ci/config/external/processor_spec.rb169spec/services/projects/hashed_storage/rollback_service_spec.rb170spec/lib/gitlab/object_hierarchy_spec.rb171spec/models/terraform/state_spec.rb172spec/models/ssh_host_key_spec.rb173spec/lib/gitlab/conflict/file_collection_spec.rb174spec/services/ci/daily_build_group_report_result_service_spec.rb175spec/services/test_hooks/system_service_spec.rb176spec/lib/gitlab/slash_commands/run_spec.rb177spec/services/ci/archive_trace_service_spec.rb178spec/views/shared/notes/_form.html.haml_spec.rb179spec/services/projects/move_notification_settings_service_spec.rb180spec/lib/gitlab/gitlab_import/project_creator_spec.rb181spec/models/project_services/issue_tracker_service_spec.rb182spec/models/legacy_diff_discussion_spec.rb183spec/lib/sentry/client/issue_spec.rb184spec/views/projects/buttons/_dropdown.html.haml_spec.rb185spec/lib/gitlab/background_migration/copy_merge_request_target_project_to_merge_request_metrics_spec.rb186spec/views/search/_results.html.haml_spec.rb187spec/lib/gitlab/ci/cron_parser_spec.rb188spec/graphql/mutations/issues/set_confidential_spec.rb189spec/finders/protected_branches_finder_spec.rb190spec/config/mail_room_spec.rb191spec/services/projects/hashed_storage/base_attachment_service_spec.rb192spec/models/project_services/chat_message/deployment_message_spec.rb193spec/policies/design_management/design_policy_spec.rb194spec/services/notes/resolve_service_spec.rb195spec/services/groups/auto_devops_service_spec.rb196spec/models/concerns/access_requestable_spec.rb197spec/finders/boards/visits_finder_spec.rb198spec/policies/ci/pipeline_schedule_policy_spec.rb199spec/rack_servers/unicorn_spec.rb200spec/models/project_services/campfire_service_spec.rb201spec/models/project_authorization_spec.rb202spec/models/alert_management/alert_assignee_spec.rb203spec/serializers/evidences/milestone_entity_spec.rb204spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb205spec/lib/gitlab/ci/status/build/canceled_spec.rb206spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb207spec/lib/system_check/orphans/repository_check_spec.rb208spec/lib/grafana/client_spec.rb209spec/services/ci/build_report_result_service_spec.rb210spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb211spec/services/groups/group_links/update_service_spec.rb212spec/services/projects/move_users_star_projects_service_spec.rb213spec/workers/project_destroy_worker_spec.rb214spec/presenters/projects/prometheus/alert_presenter_spec.rb215spec/finders/projects/export_job_finder_spec.rb216spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb217spec/lib/gitlab/background_migration/cleanup_concurrent_schema_change_spec.rb218spec/lib/gitlab/import_export/import_export_spec.rb219spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb220spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb221spec/lib/banzai/filter/commit_trailers_filter_spec.rb222spec/serializers/merge_request_user_entity_spec.rb223spec/lib/gitlab/utils/override_spec.rb224spec/services/events/render_service_spec.rb225spec/models/approval_spec.rb226spec/lib/gitlab/serializer/pagination_spec.rb227spec/services/branches/diverging_commit_counts_service_spec.rb228spec/graphql/resolvers/alert_management/alert_resolver_spec.rb229spec/services/users/update_highest_member_role_service_spec.rb230spec/workers/object_pool/destroy_worker_spec.rb231spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb232spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb233spec/views/projects/blob/_viewer.html.haml_spec.rb234spec/models/import_export_upload_spec.rb235spec/models/packages/maven/metadatum_spec.rb236spec/lib/gitlab/middleware/multipart_spec.rb237spec/workers/clusters/applications/wait_for_uninstall_app_worker_spec.rb238spec/models/concerns/editable_spec.rb239spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb240spec/rubocop/cop/scalability/idempotent_worker_spec.rb241spec/lib/gitlab/git/repository_cleaner_spec.rb242spec/helpers/analytics/unique_visits_helper_spec.rb243spec/services/users/update_canonical_email_service_spec.rb244spec/services/projects/forks_count_service_spec.rb245spec/views/search/show.html.haml_spec.rb246spec/models/project_services/flowdock_service_spec.rb247spec/services/system_notes/alert_management_service_spec.rb248spec/models/concerns/from_union_spec.rb249spec/uploaders/gitlab_uploader_spec.rb250spec/serializers/analytics_issue_serializer_spec.rb251spec/lib/gitlab/instrumentation_helper_spec.rb252spec/workers/update_project_statistics_worker_spec.rb253spec/lib/banzai/commit_renderer_spec.rb254spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb255spec/lib/gitlab/verify/lfs_objects_spec.rb256spec/helpers/clusters_helper_spec.rb257spec/services/emails/create_service_spec.rb258spec/views/shared/projects/_project.html.haml_spec.rb259spec/workers/ci/pipelines/create_artifact_worker_spec.rb260spec/services/notification_recipients/builder/default_spec.rb261spec/lib/gitlab/database/background_migration_job_spec.rb262spec/serializers/issue_serializer_spec.rb263spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb264spec/serializers/import/manifest_provider_repo_entity_spec.rb265spec/models/packages/go/module_version_spec.rb266spec/lib/gitlab/utils/sanitize_node_link_spec.rb267spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb268spec/graphql/resolvers/commit_pipelines_resolver_spec.rb269spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb270spec/lib/gitlab/snippet_search_results_spec.rb271spec/lib/gitlab/danger/emoji_checker_spec.rb272spec/initializers/mail_encoding_patch_spec.rb273spec/lib/gitlab/etag_caching/middleware_spec.rb274spec/lib/gitlab/sidekiq_cluster_spec.rb275spec/lib/gitlab/badge/pipeline/template_spec.rbRSpec's reporter has already been initialized with #<IO:<STDERR>> as the deprecation stream, so your change to `deprecation_stream` will be ignored. You should configure it earlier for it to take effect, or use the `--deprecation-out` CLI option. (Called from /builds/gitlab-org/gitlab/spec/support/rspec.rb:12:in `block in <top (required)>')276Knapsack report generator started!277Run options:278 include {:focus=>true}279 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}280All examples were filtered out; ignoring {:focus=>true}281==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...282 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.060316376 seconds...283MergeRequests::CreateFromIssueService284 #execute285 no target_project_id specified286 inherits labels287 inherits milestones288 sets the merge request title to: "Draft: Resolves "$issue-title"289 behaves like a service that creates a merge request from an issue290 returns an error when user can not create merge request on target project291 returns an error with invalid issue iid292 creates a branch based on issue title293 creates a branch using passed name294 creates the new_merge_request system note295 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created296 creates a merge request297 sets the merge request author to current user298 sets the merge request source branch to the new issue branch299 sets the merge request source branch to the passed branch name300 sets the merge request target branch to the project default branch301 executes quick actions if the build service sets them in the description302 when ref branch is set303 sets the merge request source branch to the new issue branch304 sets the merge request target branch to the ref branch305 when the ref is a tag306 sets the merge request source branch to the new issue branch307 creates a merge request308 sets the merge request target branch to the project default branch309 when ref branch does not exist310 creates a merge request311 sets the merge request target branch to the project default branch312 target_project_id is specified313 target project is not a fork of the project314 returns an error about not finding the project315 does not create merge request316 target project is a fork of project project317 sets the merge request title to: "Draft: $issue-branch-name318 behaves like a service that creates a merge request from an issue319 returns an error when user can not create merge request on target project320 returns an error with invalid issue iid321 creates a branch based on issue title322 creates a branch using passed name323 creates the new_merge_request system note324 creates the new_issue_branch system note when the branch could be created but the merge_request cannot be created325 creates a merge request326 sets the merge request author to current user327 sets the merge request source branch to the new issue branch328 sets the merge request source branch to the passed branch name329 sets the merge request target branch to the project default branch330 executes quick actions if the build service sets them in the description331 when ref branch is set332 sets the merge request source branch to the new issue branch333 sets the merge request target branch to the ref branch334 when the ref is a tag335 sets the merge request source branch to the new issue branch336 creates a merge request337 sets the merge request target branch to the project default branch338 when ref branch does not exist339 creates a merge request340 sets the merge request target branch to the project default branch341CycleAnalytics#production342 start condition: issue is created343 end condition: merge request that closes issue is deployed to production344 finds the median of available durations between the two conditions345 when the data belongs to another project346 returns nil347 when the end condition happens before the start condition348 returns nil349 start condition NOT PRESENT: issue is created350 end condition: merge request that closes issue is deployed to production351 returns nil352 start condition: issue is created353 end condition NOT PRESENT: merge request that closes issue is deployed to production354 returns nil355 start condition: issue is created356 end condition: production deploy happens after merge request is merged (along with other changes)357 finds the median of available durations between the two conditions358 when the data belongs to another project359 returns nil360 when the end condition happens before the start condition361 returns nil362 start condition NOT PRESENT: issue is created363 end condition: production deploy happens after merge request is merged (along with other changes)364 returns nil365 start condition: issue is created366 end condition NOT PRESENT: production deploy happens after merge request is merged (along with other changes)367 returns nil368 start condition: issue is created369 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)370 finds the median of available durations between the two conditions371 when the data belongs to another project372 returns nil373 when the end condition happens before the start condition374 returns nil375 start condition NOT PRESENT: issue is created376 end condition: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)377 returns nil378 start condition: issue is created379 end condition NOT PRESENT: merge request that closes issue is deployed to production and production deploy happens after merge request is merged (along with other changes)380 returns nil381 when none of the start / end conditions are matched382 returns nil383 when a regular merge request (that doesn't close the issue) is merged and deployed384 returns nil385 when the deployment happens to a non-production environment386 returns nil387Projects::UnlinkForkService388 removes the link to the fork network389 refreshes the forks count cache of the source project390 with opened merge request on the source project391 close all pending merge requests392 does not close merge requests for the project being unlinked393 when the source has LFS objects394 links the fork to the lfs object before unlinking395 does not fail if the lfs objects were already linked396 when the original project was deleted397 does not fail when the original project is deleted398 when given project is a source of forks399 removes its link to the fork network and updates direct network members400 refreshes the forks count cache of the given project401 with opened merge requests from fork back to root project402 closes all pending merge requests403 does not close merge requests that do not come from the project being unlinked404 when given project is a fork of an unlinked parent405 saves lfs objects to the root project406 and is node with a parent407 refreshes the forks count cache of the parent and the given project408 removes its link to the fork network and updates direct network members409 with opened merge requests from and to given project410 close all pending merge requests411 does not close merge requests which do not come from the project being unlinked412 when given project is not part of a fork network413 does not raise errors414DesignManagement::DesignV432x230Uploader415 resizes images416 behaves like builds correct paths417 #store_dir418 behaves like matches the method pattern419 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//420 #cache_dir421 behaves like matches the method pattern422 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)423 #work_dir424 behaves like matches the method pattern425 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)426 #upload_path427 behaves like matches the method pattern428 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//429 #relative_path430 is relative (PENDING: Path not set, skipping.)431 .absolute_path432 behaves like matches the method pattern433 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//434 .base_dir435 behaves like matches the method pattern436 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)437 object_store is REMOTE438 behaves like builds correct paths439 #store_dir440 behaves like matches the method pattern441 is expected to match /design_management\/action\/image_v432x230\//442 #cache_dir443 behaves like matches the method pattern444 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)445 #work_dir446 behaves like matches the method pattern447 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)448 #upload_path449 behaves like matches the method pattern450 is expected to match /design_management\/action\/image_v432x230\//451 #relative_path452 is relative (PENDING: Path not set, skipping.)453 .absolute_path454 behaves like matches the method pattern455 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)456 .base_dir457 behaves like matches the method pattern458 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)459 #migrate!460 behaves like migrates461 returns corresponding file type462 does nothing when migrating to the current store463 migrate to the specified store464 removes the original file after the migration465 can access to the original file during migration466 when migrate! is not occupied by another process467 executes migrate!468 executes use_file469 when migrate! is occupied by another process470 does not execute migrate!471 does not execute use_file472 migration is unsuccessful473 when the store is not supported474 does not update the object_store475 does not delete the original file476 upon a fog failure477 does not update the object_store478 does not delete the original file479 upon a database failure480 does not update the object_store481 does not delete the original file482 behaves like migrates483 returns corresponding file type484 does nothing when migrating to the current store485 migrate to the specified store486 removes the original file after the migration487 can access to the original file during migration488 when migrate! is not occupied by another process489 executes migrate!490 executes use_file491 when migrate! is occupied by another process492 does not execute migrate!493 does not execute use_file494 migration is unsuccessful495 when the store is not supported496 does not update the object_store497 does not delete the original file498 upon a fog failure499 does not update the object_store500 does not delete the original file501 upon a database failure502 does not update the object_store503 does not delete the original file504 accept whitelist file content type505 mime_type: "image/png"506 behaves like accepted carrierwave upload507 will accept upload508 will cache uploaded file509 mime_type: "image/jpeg"510 behaves like accepted carrierwave upload511 will accept upload512 will cache uploaded file513 mime_type: "image/bmp"514 behaves like accepted carrierwave upload515 will accept upload516 will cache uploaded file517 mime_type: "image/gif"518 behaves like accepted carrierwave upload519 will accept upload520 will cache uploaded file521 upload non-whitelisted file content type522 behaves like denied carrierwave upload523 will deny upload524 upload misnamed non-whitelisted file content type525 behaves like denied carrierwave upload526 will deny upload527ProjectsHelper528 #project_incident_management_setting529 when incident_management_setting exists530 return project_incident_management_setting531 when incident_management_setting does not exist532 builds incident_management_setting533 #error_tracking_setting_project_json534 error tracking setting does not exist535 returns nil536 error tracking setting exists537 api_url present538 returns error tracking json539 api_url not present540 returns nil541 #project_status_css_class542 returns appropriate class543 can_change_visibility_level?544 returns false if there are no appropriate permissions545 returns true if there are permissions and it is not fork546 allows visibility level to be changed if the project is forked547 forks548 returns false if there are permissions and origin project is PRIVATE549 returns true if there are permissions and origin project is INTERNAL550 #can_disable_emails?551 returns true for the project owner552 returns false for anyone else553 returns false if group emails disabled554 readme_cache_key555 returns a valid cach key556 returns a valid cache key if HEAD does not exist557 #project_list_cache_key558 includes the route559 includes the project560 includes the last activity date561 includes the controller name562 includes the controller action563 includes the application settings564 includes a version565 includes whether or not the user can read cross project566 includes the pipeline status when there is a status567 includes the user locale568 includes the user max member access569 #load_pipeline_status570 loads the pipeline status in batch571 #show_no_ssh_key_message?572 user has no keys573 returns true574 user has an ssh key575 returns false576 #show_no_password_message?577 user has password set578 returns false579 user has hidden the message580 returns false581 user requires a password for Git582 returns true583 user requires a personal access token for Git584 returns true585 #link_to_set_password586 password authentication is enabled for Git587 returns link to set a password588 password authentication is disabled for Git589 returns link to create a personal access token590 #link_to_project591 returns an HTML link to the project592 #link_to_member_avatar593 returns image tag for member avatar594 returns image tag with avatar class595 #link_to_member596 using the default options597 returns an HTML link to the user598 HTML escapes the name of the user599 default_clone_protocol600 when user is not logged in and gitlab protocol is HTTP601 returns HTTP602 when user is not logged in and gitlab protocol is HTTPS603 returns HTTPS604 #last_push_event605 returns recent push on the current project606 when there is no current_user607 returns nil608 #get_project_nav_tabs609 when builds feature is enabled610 does include pipelines tab611 when builds feature is disabled612 when user has access to builds613 does include pipelines tab614 when user does not have access to builds615 does not include pipelines tab616 when project has external wiki617 includes external wiki tab618 when project does not have external wiki619 does not include external wiki tab620 when project has confluence enabled621 is expected to include :confluence622 is expected not to include :wiki623 when project does not have confluence enabled624 is expected not to include :confluence625 is expected to include :wiki626 #can_view_operations_tab?627 includes operations tab628 includes operations tab629 includes operations tab630 #show_projects631 returns true when there are projects632 returns true when there are no projects but a name is given633 returns true when there are no projects but personal is present634 returns false when there are no projects and there is no name635 #push_to_create_project_command636 returns the command to push to create project over HTTP637 returns the command to push to create project over SSH638 #any_projects?639 returns true when projects will be returned640 returns false when no projects will be returned641 returns true when using a non-empty Array642 returns false when using an empty Array643 only executes a single query when a LIMIT is applied644 #git_user_name645 parses quotes in name646 #git_user_email647 not logged-in648 returns your@email.com649 user logged in650 user has no configured commit email651 returns the primary email652 user has a configured commit email653 returns the commit email654 show_xcode_link655 when the repository is xcode compatible656 returns false if the visitor is not using macos657 returns true if the visitor is using macos658 when the repository is not xcode compatible659 returns false if the visitor is not using macos660 returns false if the visitor is using macos661 link_to_filter_repo662 generates a hardcoded link to git filter-repo663 #explore_projects_tab?664 returns true when on the "All" tab under "Explore projects"665 returns true when on the "Trending" tab under "Explore projects"666 returns true when on the "Starred" tab under "Explore projects"667 returns false when on the "Your projects" tab668 #show_merge_request_count669 enabled flag670 returns true if compact mode is disabled671 returns false if compact mode is enabled672 disabled flag673 returns false if disabled flag is true674 returns true if disabled flag is false675 #show_issue_count?676 enabled flag677 returns true if compact mode is disabled678 returns false if compact mode is enabled679 disabled flag680 returns false if disabled flag is true681 returns true if disabled flag is false682 #show_auto_devops_implicitly_enabled_banner?683 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false684 is expected to eq false685 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false686 is expected to eq false687 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false688 is expected to eq false689 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false690 is expected to eq false691 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false692 is expected to eq false693 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false694 is expected to eq false695 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false696 is expected to eq false697 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false698 is expected to eq false699 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false700 is expected to eq false701 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false702 is expected to eq false703 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: true704 is expected to eq true705 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: true706 is expected to eq true707 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false708 is expected to eq false709 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false710 is expected to eq false711 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false712 is expected to eq false713 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false714 is expected to eq false715 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false716 is expected to eq false717 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false718 is expected to eq false719 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false720 is expected to eq false721 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false722 is expected to eq false723 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false724 is expected to eq false725 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false726 is expected to eq false727 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false728 is expected to eq false729 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false730 is expected to eq false731 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false732 is expected to eq false733 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false734 is expected to eq false735 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false736 is expected to eq false737 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false738 is expected to eq false739 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false740 is expected to eq false741 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false742 is expected to eq false743 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false744 is expected to eq false745 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false746 is expected to eq false747 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false748 is expected to eq false749 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false750 is expected to eq false751 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false752 is expected to eq false753 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false754 is expected to eq false755 #can_import_members?756 returns false if user cannot admin_project_member757 returns true if user can admin_project_member758 #metrics_external_dashboard_url759 metrics_setting exists760 returns external_dashboard_url761 metrics_setting does not exist762 returns nil763 #grafana_integration_url764 is expected to eq nil765 grafana integration exists766 is expected to eq "https://grafana.example.com"767 #grafana_integration_token768 is expected to eq nil769 grafana integration exists770 is expected to eq "************************************************"771 #grafana_integration_enabled?772 is expected to eq nil773 grafana integration exists774 is expected to eq true775 #project_license_name(project)776 gitaly is working appropriately777 returns the license name778 memoizes the value779 gitaly is unreachable780 Gitlab::Git::CommandError781 behaves like returns nil and tracks exception782 is expected to be nil783 tracks the exception784 memoizes the nil value785 GRPC::Unavailable786 behaves like returns nil and tracks exception787 is expected to be nil788 tracks the exception789 memoizes the nil value790 GRPC::DeadlineExceeded791 behaves like returns nil and tracks exception792 is expected to be nil793 tracks the exception794 memoizes the nil value795Gitlab::Middleware::Go796 #call797 when go-get=0798 skips go-import generation799 when go-get=1800 with SSH disabled801 with simple 2-segment project path802 with subpackages803 returns the full project path804 without subpackages805 returns the full project path806 with a nested project path807 with subpackages808 behaves like a nested project809 when the project is public810 returns the full project path811 when the project is private812 when not authenticated813 behaves like unauthorized814 returns the 2-segment group path815 when authenticated816 using basic auth817 using a personal access token818 with api scope819 behaves like authenticated820 with access to the project821 returns the full project path822 with an empty ssh_user823 returns the full project path824 without access to the project825 behaves like unauthorized826 returns the 2-segment group path827 with user is blocked828 behaves like unauthorized829 returns the 2-segment group path830 with read_user scope831 behaves like unauthorized832 returns the 2-segment group path833 with a subpackage that is not a valid project path834 behaves like a nested project835 when the project is public836 returns the full project path837 when the project is private838 when not authenticated839 behaves like unauthorized840 returns the 2-segment group path841 when authenticated842 using basic auth843 using a personal access token844 with api scope845 behaves like authenticated846 with access to the project847 returns the full project path848 with an empty ssh_user849 returns the full project path850 without access to the project851 behaves like unauthorized852 returns the 2-segment group path853 with user is blocked854 behaves like unauthorized855 returns the 2-segment group path856 with read_user scope857 behaves like unauthorized858 returns the 2-segment group path859 without subpackages860 behaves like a nested project861 when the project is public862 returns the full project path863 when the project is private864 when not authenticated865 behaves like unauthorized866 returns the 2-segment group path867 when authenticated868 using basic auth869 using a personal access token870 with api scope871 behaves like authenticated872 with access to the project873 returns the full project path874 with an empty ssh_user875 returns the full project path876 without access to the project877 behaves like unauthorized878 returns the 2-segment group path879 with user is blocked880 behaves like unauthorized881 returns the 2-segment group path882 with read_user scope883 behaves like unauthorized884 returns the 2-segment group path885 with a bogus path886 skips go-import generation887 with a public project without a repository888 returns 404889 with a non-standard head890 returns the full project path891 with HTTP disabled892 with simple 2-segment project path893 with subpackages894 returns the full project path895 without subpackages896 returns the full project path897 with a nested project path898 with subpackages899 behaves like a nested project900 when the project is public901 returns the full project path902 when the project is private903 when not authenticated904 behaves like unauthorized905 returns the 2-segment group path906 when authenticated907 using basic auth908 using a personal access token909 with api scope910 behaves like authenticated911 with access to the project912 returns the full project path913 with an empty ssh_user914 returns the full project path915 without access to the project916 behaves like unauthorized917 returns the 2-segment group path918 with user is blocked919 behaves like unauthorized920 returns the 2-segment group path921 with read_user scope922 behaves like unauthorized923 returns the 2-segment group path924 with a subpackage that is not a valid project path925 behaves like a nested project926 when the project is public927 returns the full project path928 when the project is private929 when not authenticated930 behaves like unauthorized931 returns the 2-segment group path932 when authenticated933 using basic auth934 using a personal access token935 with api scope936 behaves like authenticated937 with access to the project938 returns the full project path939 with an empty ssh_user940 returns the full project path941 without access to the project942 behaves like unauthorized943 returns the 2-segment group path944 with user is blocked945 behaves like unauthorized946 returns the 2-segment group path947 with read_user scope948 behaves like unauthorized949 returns the 2-segment group path950 without subpackages951 behaves like a nested project952 when the project is public953 returns the full project path954 when the project is private955 when not authenticated956 behaves like unauthorized957 returns the 2-segment group path958 when authenticated959 using basic auth960 using a personal access token961 with api scope962 behaves like authenticated963 with access to the project964 returns the full project path965 with an empty ssh_user966 returns the full project path967 without access to the project968 behaves like unauthorized969 returns the 2-segment group path970 with user is blocked971 behaves like unauthorized972 returns the 2-segment group path973 with read_user scope974 behaves like unauthorized975 returns the 2-segment group path976 with a bogus path977 skips go-import generation978 with a public project without a repository979 returns 404980 with a non-standard head981 returns the full project path982 with nothing disabled983 with simple 2-segment project path984 with subpackages985 returns the full project path986 without subpackages987 returns the full project path988 with a nested project path989 with subpackages990 behaves like a nested project991 when the project is public992 returns the full project path993 when the project is private994 when not authenticated995 behaves like unauthorized996 returns the 2-segment group path997 when authenticated998 using basic auth999 using a personal access token1000 with api scope1001 behaves like authenticated1002 with access to the project1003 returns the full project path1004 with an empty ssh_user1005 returns the full project path1006 without access to the project1007 behaves like unauthorized1008 returns the 2-segment group path1009 with user is blocked1010 behaves like unauthorized1011 returns the 2-segment group path1012 with read_user scope1013 behaves like unauthorized1014 returns the 2-segment group path1015 with a subpackage that is not a valid project path1016 behaves like a nested project1017 when the project is public1018 returns the full project path1019 when the project is private1020 when not authenticated1021 behaves like unauthorized1022 returns the 2-segment group path1023 when authenticated1024 using basic auth1025 using a personal access token1026 with api scope1027 behaves like authenticated1028 with access to the project1029 returns the full project path1030 with an empty ssh_user1031 returns the full project path1032 without access to the project1033 behaves like unauthorized1034 returns the 2-segment group path1035 with user is blocked1036 behaves like unauthorized1037 returns the 2-segment group path1038 with read_user scope1039 behaves like unauthorized1040 returns the 2-segment group path1041 without subpackages1042 behaves like a nested project1043 when the project is public1044 returns the full project path1045 when the project is private1046 when not authenticated1047 behaves like unauthorized1048 returns the 2-segment group path1049 when authenticated1050 using basic auth1051 using a personal access token1052 with api scope1053 behaves like authenticated1054 with access to the project1055 returns the full project path1056 with an empty ssh_user1057 returns the full project path1058 without access to the project1059 behaves like unauthorized1060 returns the 2-segment group path1061 with user is blocked1062 behaves like unauthorized1063 returns the 2-segment group path1064 with read_user scope1065 behaves like unauthorized1066 returns the 2-segment group path1067 with a bogus path1068 skips go-import generation1069 with a public project without a repository1070 returns 4041071 with a non-standard head1072 returns the full project path1073 with nothing disabled (blank string)1074 with simple 2-segment project path1075 with subpackages1076 returns the full project path1077 without subpackages1078 returns the full project path1079 with a nested project path1080 with subpackages1081 behaves like a nested project1082 when the project is public1083 returns the full project path1084 when the project is private1085 when not authenticated1086 behaves like unauthorized1087 returns the 2-segment group path1088 when authenticated1089 using basic auth1090 using a personal access token1091 with api scope1092 behaves like authenticated1093 with access to the project1094 returns the full project path1095 with an empty ssh_user1096 returns the full project path1097 without access to the project1098 behaves like unauthorized1099 returns the 2-segment group path1100 with user is blocked1101 behaves like unauthorized1102 returns the 2-segment group path1103 with read_user scope1104 behaves like unauthorized1105 returns the 2-segment group path1106 with a subpackage that is not a valid project path1107 behaves like a nested project1108 when the project is public1109 returns the full project path1110 when the project is private1111 when not authenticated1112 behaves like unauthorized1113 returns the 2-segment group path1114 when authenticated1115 using basic auth1116 using a personal access token1117 with api scope1118 behaves like authenticated1119 with access to the project1120 returns the full project path1121 with an empty ssh_user1122 returns the full project path1123 without access to the project1124 behaves like unauthorized1125 returns the 2-segment group path1126 with user is blocked1127 behaves like unauthorized1128 returns the 2-segment group path1129 with read_user scope1130 behaves like unauthorized1131 returns the 2-segment group path1132 without subpackages1133 behaves like a nested project1134 when the project is public1135 returns the full project path1136 when the project is private1137 when not authenticated1138 behaves like unauthorized1139 returns the 2-segment group path1140 when authenticated1141 using basic auth1142 using a personal access token1143 with api scope1144 behaves like authenticated1145 with access to the project1146 returns the full project path1147 with an empty ssh_user1148 returns the full project path1149 without access to the project1150 behaves like unauthorized1151 returns the 2-segment group path1152 with user is blocked1153 behaves like unauthorized1154 returns the 2-segment group path1155 with read_user scope1156 behaves like unauthorized1157 returns the 2-segment group path1158 with a bogus path1159 skips go-import generation1160 with a public project without a repository1161 returns 4041162 with a non-standard head1163 returns the full project path1164JiraService1165 #options1166 sets the URL properly1167 leaves out trailing slashes in context1168 provides additional cookies to allow basic auth with oracle webgate1169 username with trailing whitespaces1170 leaves out trailing whitespaces in username1171 using api URL1172 leaves out trailing slashes in context1173 Associations1174 is expected to belong to project required:1175 is expected to have one service_hook1176 .reference_pattern1177 key: "#123", result: ""1178 is expected to eq ""1179 key: "1#23#12", result: ""1180 is expected to eq ""1181 key: "JIRA-1234A", result: "JIRA-1234"1182 is expected to eq "JIRA-1234"1183 key: "JIRA-1234-some_tag", result: "JIRA-1234"1184 is expected to eq "JIRA-1234"1185 key: "JIRA-1234_some_tag", result: "JIRA-1234"1186 is expected to eq "JIRA-1234"1187 key: "EXT_EXT-1234", result: "EXT_EXT-1234"1188 is expected to eq "EXT_EXT-1234"1189 key: "EXT3_EXT-1234", result: "EXT3_EXT-1234"1190 is expected to eq "EXT3_EXT-1234"1191 key: "3EXT_EXT-1234", result: ""1192 is expected to eq ""1193 #create1194 does not store data into properties1195 stores data in data_fields correcty1196 overriding properties1197 when data are stored in properties1198 behaves like handles jira fields1199 reading data1200 reads data correctly1201 #update1202 basic update1203 leaves properties field emtpy1204 stores updated data in jira_tracker_data table1205 stored password invalidation1206 when a password was previously set1207 when only web url present1208 resets password if url changed1209 does not reset password if url "changed" to the same url as before1210 resets password if url not changed but api url added1211 does not reset password if new url is set together with password, even if it's the same password1212 resets password if url changed, even if setter called multiple times1213 does not reset password if username changed1214 does not reset password if password changed1215 does not reset password if the password is touched and same as before1216 when both web and api url present1217 resets password if api url changed1218 does not reset password if url changed1219 resets password if api url set to empty1220 when no password was previously set1221 saves password if new url is set together with password1222 when data are stored in separated fields1223 behaves like handles jira fields1224 reading data1225 reads data correctly1226 #update1227 basic update1228 leaves properties field emtpy1229 stores updated data in jira_tracker_data table1230 stored password invalidation1231 when a password was previously set1232 when only web url present1233 resets password if url changed1234 does not reset password if url "changed" to the same url as before1235 resets password if url not changed but api url added1236 does not reset password if new url is set together with password, even if it's the same password1237 resets password if url changed, even if setter called multiple times1238 does not reset password if username changed1239 does not reset password if password changed1240 does not reset password if the password is touched and same as before1241 when both web and api url present1242 resets password if api url changed1243 does not reset password if url changed1244 resets password if api url set to empty1245 when no password was previously set1246 saves password if new url is set together with password1247 when data are stored in both properties and separated fields1248 behaves like handles jira fields1249 reading data1250 reads data correctly1251 #update1252 basic update1253 leaves properties field emtpy1254 stores updated data in jira_tracker_data table1255 stored password invalidation1256 when a password was previously set1257 when only web url present1258 resets password if url changed1259 does not reset password if url "changed" to the same url as before1260 resets password if url not changed but api url added1261 does not reset password if new url is set together with password, even if it's the same password1262 resets password if url changed, even if setter called multiple times1263 does not reset password if username changed1264 does not reset password if password changed1265 does not reset password if the password is touched and same as before1266 when both web and api url present1267 resets password if api url changed1268 does not reset password if url changed1269 resets password if api url set to empty1270 when no password was previously set1271 saves password if new url is set together with password1272 #close_issue1273 when resource is a merge request1274 behaves like close_issue1275 calls Jira API1276 does not fail if remote_link.all on issue returns nil1277 creates Remote Link reference in Jira for comment1278 does not send comment or remote links to issues already closed1279 does not send comment or remote links to issues with unknown resolution1280 references the GitLab commit1281 references the GitLab commit1282 logs exception when transition id is not valid1283 calls the api with jira_issue_transition_id1284 when "comment_on_event_enabled" is set to false1285 creates Remote Link reference but does not create comment1286 when Remote Link already exists1287 does not create comment1288 when have multiple transition ids1289 calls the api with transition ids separated by comma1290 calls the api with transition ids separated by semicolon1291 when resource is a commit1292 behaves like close_issue1293 calls Jira API1294 does not fail if remote_link.all on issue returns nil1295 creates Remote Link reference in Jira for comment1296 does not send comment or remote links to issues already closed1297 does not send comment or remote links to issues with unknown resolution1298 references the GitLab commit1299 references the GitLab commit1300 logs exception when transition id is not valid1301 calls the api with jira_issue_transition_id1302 when "comment_on_event_enabled" is set to false1303 creates Remote Link reference but does not create comment1304 when Remote Link already exists1305 does not create comment1306 when have multiple transition ids1307 calls the api with transition ids separated by comma1308 calls the api with transition ids separated by semicolon1309 #create_cross_reference_note1310 when resource is a commit1311 when disabled1312 is expected to eq "Events for commits are disabled."1313 when enabled1314 behaves like creates a comment on Jira1315 creates a comment on Jira1316 when resource is a merge request1317 when disabled1318 is expected to eq "Events for merge requests are disabled."1319 when enabled1320 behaves like creates a comment on Jira1321 creates a comment on Jira1322 #test1323 when the test succeeds1324 gets Jira project with URL when API URL not set1325 gets Jira project with API URL if set1326 when the test fails1327 returns result with the error1328 project and issue urls1329 removes trailing slashes from url1330 when gitlab.yml was initialized1331 is prepopulated with the settings1332 favicon urls1333 includes the standard favicon1334 includes returns the custom favicon1335 generating external URLs1336 #issues_url1337 handles trailing slashes1338 #new_issue_url1339 handles trailing slashes1340MergeRequestPresenter1341 #ci_status1342 when no head pipeline1343 return status using CiService1344 when head pipeline present1345 success with warnings1346 returns "success-with-warnings"1347 pipeline HAS status AND its not success with warnings1348 returns pipeline status1349 pipeline has NO status AND its not success with warnings1350 returns "preparing"1351 #conflict_resolution_path1352 when MR cannot be resolved in UI1353 does not return conflict resolution path1354 when conflicts cannot be resolved by user1355 does not return conflict resolution path1356 when able to access conflict resolution UI1357 does return conflict resolution path1358 issues links1359 #closing_issues_links1360 presents closing issues links1361 does not present related issues links1362 appends status when closing issue is already closed1363 #mentioned_issues_links1364 presents related issues links1365 does not present closing issues links1366 appends status when mentioned issue is already closed1367 #assign_to_closing_issues_link1368 single closing issue1369 returns correct link with correct text1370 multiple closing issues1371 returns correct link with correct text1372 no closing issue1373 returns correct link with correct text1374 #cancel_auto_merge_path1375 when can cancel mwps1376 returns path1377 when cannot cancel mwps1378 returns nil1379 #merge_path1380 when can be merged by user1381 returns path1382 when cannot be merged by user1383 returns nil1384 #create_issue_to_resolve_discussions_path1385 when can create issue and issues enabled1386 returns path1387 when cannot create issue1388 returns nil1389 when issues disabled1390 returns nil1391 #remove_wip_path1392 when merge request enabled and has permission1393 has remove_wip_path1394 when has no permission1395 returns nil1396 #target_branch_commits_path1397 when target branch exists1398 returns path1399 when target branch does not exist1400 returns nil1401 #source_branch_commits_path1402 when source branch exists1403 returns path1404 when source branch does not exist1405 returns nil1406 #target_branch_tree_path1407 when target branch exists1408 returns path1409 when target branch does not exist1410 returns nil1411 #source_branch_path1412 when source branch exists1413 returns path1414 when source branch does not exist1415 returns nil1416 #target_branch_path1417 when target branch exists1418 returns path1419 when target branch does not exist1420 returns nil1421 #source_branch_link1422 when source branch exists1423 returns link1424 when source branch does not exist1425 returns text1426 #target_branch_link1427 when target branch exists1428 returns link1429 when target branch does not exist1430 returns text1431 #source_branch_with_namespace_link1432 returns link1433 escapes html, when source_branch does not exist1434 #rebase_path1435 when can rebase1436 returns path1437 when cannot rebase1438 when rebase in progress1439 returns nil1440 when user cannot merge1441 returns nil1442 should not be rebased1443 returns nil1444 #can_push_to_source_branch1445 when source branch exists AND user can push to source branch1446 returns true1447 when source branch does not exists1448 returns false1449 when user cannot push to source branch1450 returns false1451 #api_approvals_path1452 is expected to eq "/api/v4/projects/602/merge_requests/1/approvals"1453 #api_approve_path1454 is expected to eq "/api/v4/projects/603/merge_requests/1/approve"1455 #api_unapprove_path1456 is expected to eq "/api/v4/projects/604/merge_requests/1/unapprove"1457Member1458 Associations1459 is expected to belong to user required:1460 Validation1461 is expected to validate that :user cannot be empty/falsy1462 is expected to validate that :source cannot be empty/falsy1463 is expected to validate that :access_level is either ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›1464 behaves like an object with email-formated attributes1465 specifically its :invite_email attribute1466 with a value of 'info@example.com'1467 is valid1468 with a value of 'info+test@example.com'1469 is valid1470 with a value of 'o'reilly@example.com'1471 is valid1472 with a value of 'mailto:test@example.com'1473 is valid1474 with a value of 'lol!'+=?><#$%^&*()@gmail.com'1475 is valid1476 with a value of 'foobar'1477 is invalid1478 with a value of 'test@test@example.com'1479 is invalid1480 when an invite email is provided1481 doesn't require a user1482 requires a valid invite email1483 requires a unique invite email scoped to this source1484 when an invite email is not provided1485 requires a user1486 is valid otherwise1487 when a child member inherits its access level1488 requires a higher level1489 is valid with an equal level1490 is valid with a higher level1491 project bots1492 not a member of any group or project1493 is valid1494 already member of a project1495 is not valid1496 Scopes & finders1497 .access_for_user_ids1498 returns the right access levels1499 .invite1500 is expected not to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1501 is expected to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1502 is expected not to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1503 is expected not to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1504 is expected not to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1505 .non_invite1506 is expected to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1507 is expected not to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1508 is expected to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1509 is expected to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1510 is expected to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1511 .request1512 is expected not to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1513 is expected not to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1514 is expected not to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1515 is expected to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1516 is expected not to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1517 .non_request1518 is expected to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1519 is expected to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1520 is expected to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1521 is expected not to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1522 is expected to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1523 .search_invite_email1524 returns only members the matching e-mail1525 .developers1526 is expected not to include #<GroupMember id: 704, access_level: 50, source_id: 994, source_type: "Namespace", user_id: 758, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1527 is expected not to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1528 is expected to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1529 is expected to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1530 is expected not to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1531 is expected to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1532 is expected not to include nil1533 is expected not to include #<ProjectMember id: 706, access_level: 30, source_id: 621, source_type: "Project", user_id: 760, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1534 .owners_and_maintainers1535 is expected to include #<GroupMember id: 704, access_level: 50, source_id: 994, source_type: "Namespace", user_id: 758, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1536 is expected to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1537 is expected not to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1538 is expected not to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1539 is expected not to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1540 is expected not to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1541 is expected not to include nil1542 .has_access1543 is expected to include #<GroupMember id: 704, access_level: 50, source_id: 994, source_type: "Namespace", user_id: 758, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1544 is expected to include #<ProjectMember id: 705, access_level: 40, source_id: 621, source_type: "Project", user_id: 759, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1545 is expected to include #<ProjectMember id: 707, access_level: 30, source_id: 621, source_type: "Project", user_id: 761, noti...ILTERED], invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1546 is expected to include #<ProjectMember id: 708, access_level: 30, source_id: 621, source_type: "Project", user_id: 763, noti...ccepted_at: "2020-08-25 15:43:22", requested_at: nil, expires_at: nil, ldap: false, override: false>1547 is expected not to include #<ProjectMember id: 709, access_level: 30, source_id: 621, source_type: "Project", user_id: 764, noti...ccepted_at: nil, requested_at: "2020-08-25 15:43:22", expires_at: nil, ldap: false, override: false>1548 is expected to include #<ProjectMember id: 710, access_level: 30, source_id: 621, source_type: "Project", user_id: 765, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1549 is expected not to include nil1550 is expected not to include #<ProjectMember id: 706, access_level: 30, source_id: 621, source_type: "Project", user_id: 760, noti...ken: nil, invite_accepted_at: nil, requested_at: nil, expires_at: nil, ldap: false, override: false>1551 Delegate methods1552 is expected to respond to #user_name1553 is expected to respond to #user_email1554 .add_user1555 when source is a project1556 returns a <Source>Member object1557 sets members.expires_at to the given expires_at1558 accepts the :guest symbol as access level1559 accepts the 10 integer as access level1560 accepts the :reporter symbol as access level1561 accepts the 20 integer as access level1562 accepts the :developer symbol as access level1563 accepts the 30 integer as access level1564 accepts the :maintainer symbol as access level1565 accepts the 40 integer as access level1566 when admin mode is enabled1567 sets members.created_by to the given admin current_user1568 when admin mode is disabled1569 rejects setting members.created_by to the given admin current_user (PENDING: Temporarily skipped with xit)1570 with no current_user1571 when called with a known user id1572 adds the user as a member1573 when called with an unknown user id1574 adds the user as a member1575 when called with a user object1576 adds the user as a member1577 when called with a requester user object1578 adds the requester as a member1579 when called with a known user email1580 adds the user as a member1581 when called with an unknown user email1582 creates an invited member1583 when called with an unknown user email starting with a number1584 creates an invited member1585 when current_user can update member1586 creates the member1587 when called with a requester user object1588 adds the requester as a member1589 when current_user cannot update member1590 does not create the member1591 when called with a requester user object1592 does not destroy the requester1593 when member already exists1594 with no current_user1595 updates the member1596 when current_user can update member1597 updates the member1598 when current_user cannot update member1599 does not update the member1600 when source is a group1601 returns a <Source>Member object1602 sets members.expires_at to the given expires_at1603 accepts the :guest symbol as access level1604 accepts the 10 integer as access level1605 accepts the :reporter symbol as access level1606 accepts the 20 integer as access level1607 accepts the :developer symbol as access level1608 accepts the 30 integer as access level1609 accepts the :maintainer symbol as access level1610 accepts the 40 integer as access level1611 when admin mode is enabled1612 sets members.created_by to the given admin current_user1613 when admin mode is disabled1614 rejects setting members.created_by to the given admin current_user (PENDING: Temporarily skipped with xit)1615 with no current_user1616 when called with a known user id1617 adds the user as a member1618 when called with an unknown user id1619 adds the user as a member1620 when called with a user object1621 adds the user as a member1622 when called with a requester user object1623 adds the requester as a member1624 when called with a known user email1625 adds the user as a member1626 when called with an unknown user email1627 creates an invited member1628 when called with an unknown user email starting with a number1629 creates an invited member1630 when current_user can update member1631 creates the member1632 when called with a requester user object1633 adds the requester as a member1634 when current_user cannot update member1635 does not create the member1636 when called with a requester user object1637 does not destroy the requester1638 when member already exists1639 with no current_user1640 updates the member1641 when current_user can update member1642 updates the member1643 when current_user cannot update member1644 does not update the member1645 .add_users1646 when source is a project1647 returns a <Source>Member objects1648 returns an empty array1649 supports differents formats1650 when source is a group1651 returns a <Source>Member objects1652 returns an empty array1653 supports differents formats1654 #accept_request1655 is expected to be truthy1656 clears requested_at1657 calls #after_accept_request1658 #invite?1659 is expected to be invite1660 #request?1661 is expected to be request1662 #pending?1663 is expected to be invite1664 is expected to be pending1665 #accept_invite!1666 resets the invite token1667 sets the invite accepted timestamp1668 sets the user1669 calls #after_accept_invite1670 refreshes user's authorized projects1671 #decline_invite!1672 destroys the member1673 calls #after_decline_invite1674 #generate_invite_token1675 sets the invite token1676 destroying a record1677 refreshes user's authorized projects1678 when after_commit :update_highest_role1679 member_type: :project_member, source_type: :project1680 create member1681 when lease is obtained1682 takes the lease but does not release it1683 schedules a job in the future1684 when lease cannot be obtained1685 only schedules one job1686 when member exists1687 update member1688 when access level was changed1689 when lease is obtained1690 takes the lease but does not release it1691 schedules a job in the future1692 when lease cannot be obtained1693 only schedules one job1694 when access level was not changed1695 does not obtain an exclusive lease1696 destroy member1697 when lease is obtained1698 takes the lease but does not release it1699 schedules a job in the future1700 when lease cannot be obtained1701 only schedules one job1702 member_type: :group_member, source_type: :group1703 create member1704 when lease is obtained1705 takes the lease but does not release it1706 schedules a job in the future1707 when lease cannot be obtained1708 only schedules one job1709 when member exists1710 update member1711 when access level was changed1712 when lease is obtained1713 takes the lease but does not release it1714 schedules a job in the future1715 when lease cannot be obtained1716 only schedules one job1717 when access level was not changed1718 does not obtain an exclusive lease1719 destroy member1720 when lease is obtained1721 takes the lease but does not release it1722 schedules a job in the future1723 when lease cannot be obtained1724 only schedules one job1725Gitlab::Email::Handler::CreateNoteHandler1726 behaves like reply_processing_shared_examples1727 when the user could not be found1728 raises a UserNotFoundError1729 when the user is not authorized to the project1730 raises a ProjectNotFound1731 when the recipient address doesn't include a mail key1732 raises a UnknownIncomingEmail1733 when no sent notification for the mail key could be found1734 raises a SentNotificationNotFoundError1735 when the noteable could not be found1736 raises a NoteableNotFoundError1737 when the note could not be saved1738 raises an InvalidNoteError1739 because the note was update commands only1740 and current user cannot update noteable1741 raises a CommandsOnlyNoteError1742 and current user can update noteable enabled1743 does not raise an error1744 and current user can update noteable disabled1745 does not raise an error1746 when the note contains quick actions1747 and current user cannot update the noteable1748 only executes the commands that the user can perform1749 and current user can update noteable1750 posts a note and updates the noteable1751 when the reply is blank1752 raises an EmptyEmailError1753 when discussion is locked1754 behaves like checks permissions on noteable1755 when user has access1756 creates a comment1757 when user does not have access1758 raises UserNotAuthorizedError1759 when issue is confidential1760 behaves like checks permissions on noteable1761 when user has access1762 creates a comment1763 when user does not have access1764 raises UserNotAuthorizedError1765 when everything is fine1766 adds all attachments1767 behaves like a reply to existing comment1768 creates a comment1769 when sub-addressing is not supported1770 mail key is in the References header1771 behaves like an email that contains a mail key1772 fetches the mail key from the References header and creates a comment1773 mail key is in the References header with a comma1774 behaves like an email that contains a mail key1775 fetches the mail key from the References header and creates a comment1776 when note is not a discussion1777 behaves like a reply to existing comment1778 creates a comment1779 when the service desk1780 is enabled1781 when issues are enabled for everyone1782 creates a comment1783 when quick actions are present1784 encloses quick actions with code span markdown1785 when issues are protected members only1786 creates a comment1787 when issues are disabled1788 does not create a comment1789 is disabled1790 does not create a comment1791DiffNote1792 validations1793 behaves like a valid diff positionable note1794 for commit1795 position diff refs matches commit diff refs1796 is valid1797 position diff refs does not match commit diff refs1798 is invalid1799 commit does not exist1800 is invalid1801 original_position=1802 doesn't accept non-hash JSON passed as a string1803 does accept a position hash as a string1804 doesn't accept an array1805 does accept a hash1806 position=1807 doesn't accept non-hash JSON passed as a string1808 does accept a position hash as a string1809 doesn't accept an array1810 does accept a hash1811 change_position=1812 doesn't accept non-hash JSON passed as a string1813 does accept a position hash as a string1814 doesn't accept an array1815 does accept a hash1816 #position=1817 when provided a string1818 sets the position1819 when provided a hash1820 sets the position1821 when provided a position object1822 sets the position1823 #original_position=1824 when provided a string1825 sets the original position1826 when provided a hash1827 sets the original position1828 when provided a position object1829 sets the original position1830 #create_diff_file callback1831 merge request1832 does not create diff note file if it is a reply1833 when diffs are already created1834 when diff_file is found in persisted diffs1835 when importing1836 when diff_line is found in persisted diff_file1837 creates a diff note file1838 when diff_line is not found in persisted diff_file1839 behaves like a valid diff note with after commit callback1840 when diff file is fetched from repository1841 when diff_line is not found1842 raises an error1843 when diff_line is found1844 fallback to fetch file from repository1845 creates a diff note file1846 when diff file is not found in repository1847 raises an error1848 when not importing1849 when diff_line is not found1850 raises an error1851 when diff_line is found1852 creates a diff note file1853 when diff file is not found in persisted diffs1854 behaves like a valid diff note with after commit callback1855 when diff file is fetched from repository1856 when diff_line is not found1857 raises an error1858 when diff_line is found1859 fallback to fetch file from repository1860 creates a diff note file1861 when diff file is not found in repository1862 raises an error1863 when diffs are not already created1864 behaves like a valid diff note with after commit callback1865 when diff file is fetched from repository1866 when diff_line is not found1867 raises an error1868 when diff_line is found1869 fallback to fetch file from repository1870 creates a diff note file1871 when diff file is not found in repository1872 raises an error1873 commit1874 creates a diff note file1875 does not create diff note file if it is a reply1876 #diff_file1877 when note_diff_file association exists1878 returns persisted diff file data1879 when the discussion was created in the diff1880 when file_identifier_hash is disabled1881 returns correct diff file1882 when file_identifier_hash is enabled1883 returns correct diff file1884 when discussion is outdated or not created in the diff1885 returns the correct diff file1886 note diff file creation enqueuing1887 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion1888 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion1889 when noteable is a Design1890 does not return a diff file1891 #latest_diff_file1892 when noteable is a Design1893 does not return a diff file1894 #diff_line1895 returns the correct diff line1896 #line_code1897 returns the correct line code1898 #active?1899 when noteable is a commit1900 returns true1901 when noteable is a merge request1902 when the merge request's diff refs match that of the diff note1903 returns true1904 when the merge request's diff refs don't match that of the diff note1905 returns false1906 creation1907 updating of position1908 when noteable is a commit1909 doesn't update the position1910 when noteable is a merge request1911 when the note is active1912 doesn't update the position1913 when the note is outdated1914 updates the position1915 #discussion_id1916 when it is newly created1917 has a discussion id1918 when it didn't store a discussion id before1919 has a discussion id1920 #created_at_diff?1921 when noteable is a commit1922 returns true1923 when noteable is a merge request1924 when the diff refs match the original one of the diff note1925 returns true1926 when the diff refs don't match the original one of the diff note1927 returns false1928 #supports_suggestion?1929 when noteable does not exist1930 returns false1931 when noteable does not support suggestions1932 returns false1933 when line is not suggestible1934 returns false1935 #banzai_render_context1936 includes expected context1937 image diff notes1938 returns true for on_image?1939 validations1940 is expected not to validate that :line_code cannot be empty/falsy1941 does not validate diff line1942 does not update the position1943Snippet1944 modules1945 is expected to includes the Gitlab::VisibilityLevel module1946 is expected to includes the Participable module1947 is expected to includes the Referable module1948 is expected to includes the Sortable module1949 is expected to includes the Awardable module1950 associations1951 is expected to belong to author class_name => User required:1952 is expected to belong to project required:1953 is expected to have many notes dependent => destroy1954 is expected to have many award_emoji dependent => destroy1955 is expected to have many user_mentions class_name => SnippetUserMention1956 is expected to have one snippet_repository1957 is expected to have one statistics class_name => SnippetStatistics dependent => destroy1958 validation1959 is expected to validate that :author cannot be empty/falsy1960 is expected to validate that :title cannot be empty/falsy1961 is expected to validate that the length of :title is at most 2551962 is expected to validate that the length of :file_name is at most 2551963 is expected to validate that :content cannot be empty/falsy1964 is expected to validate that :visibility_level is either ‹0›, ‹10›, or ‹20›1965 is expected to validate that the length of :content is at most 1, producing a custom validation error on failure1966 content validations1967 with existing snippets1968 does not raise a validation error if the content is not changed1969 raises and error if the content is changed and the size is bigger than limit1970 with new snippets1971 is valid when content is smaller than the limit1972 raises error when content is bigger than setting limit1973 callbacks1974 creates snippet statistics when the snippet is created1975 #to_reference1976 when snippet belongs to a project1977 returns a String reference to the object1978 supports a cross-project reference1979 when snippet does not belong to a project1980 returns a String reference to the object1981 still returns shortest reference when project arg present1982 #file_name1983 file_name is nil1984 returns an empty string1985 file_name is not nil1986 returns the file_name1987 #content_html_invalidated?1988 invalidates the HTML cache of content when the filename changes1989 .search1990 returns snippets with a matching title1991 returns snippets with a partially matching title1992 returns snippets with a matching title regardless of the casing1993 returns snippets with a matching file name1994 returns snippets with a partially matching file name1995 returns snippets with a matching file name regardless of the casing1996 returns snippets with a matching description1997 when default snippet visibility set to internal1998 attribute_name: :visibility, value: "private"1999 sets the visibility level2000 attribute_name: :visibility_level, value: 02001 sets the visibility level2002 attribute_name: "visibility", value: "private"2003 sets the visibility level2004 attribute_name: "visibility_level", value: 02005 sets the visibility level2006 .with_optional_visibility2007 when a visibility level is provided2008 returns snippets with the given visibility2009 when a visibility level is not provided2010 returns all snippets2011 .only_personal_snippets2012 returns snippets not associated with any projects2013 .only_include_projects_visible_to2014 when a user is provided2015 returns snippets visible to the user2016 when a user is not provided2017 returns snippets visible to anonymous users2018 only_include_projects_with_snippets_enabled2019 includes snippets for projects with snippets enabled2020 when the include_private option is enabled2021 includes snippets for projects with snippets set to private2022 when the include_private option is not enabled2023 does not include snippets for projects that have snippets set to private2024 .only_include_authorized_projects2025 only includes snippets for projects the user is authorized to see2026 .for_project_with_user2027 when a user is provided2028 returns an empty collection if the user can not view the snippets2029 returns the snippets if the user is a member of the project2030 returns public snippets for a public project the user is not a member of2031 when a user is not provided2032 returns an empty collection for a private project2033 returns public snippets for a public project2034 .visible_to_or_authored_by2035 returns snippets visible to the user2036 #participants2037 includes the snippet author2038 includes the note authors2039 #check_for_spam2040 when public and spammable attributes changed2041 returns true2042 when private2043 returns false2044 returns true when switching to public2045 when spammable attributes have not changed2046 returns false2047 #blob2048 returns a blob representing the snippet data2049 #blobs2050 returns a blob representing the snippet data2051 when repository does not exist2052 returns empty array2053 when repository exists2054 returns array of blobs2055 #to_json2056 excludes secret_token from generated json2057 does not override existing exclude option value2058 #storage2059 stores snippet in @snippets dir2060 #track_snippet_repository2061 when a snippet repository entry does not exist2062 creates a new entry2063 tracks the snippet storage location2064 when a tracking entry exists2065 does not create a new entry in the database2066 updates the snippet storage location2067 #create_repository2068 creates the repository2069 tracks snippet repository2070 sets same shard in snippet repository as in the repository storage2071 when repository exists2072 does not try to create repository2073 when snippet_repository exists2074 does not create a new snippet repository2075 when snippet_repository does not exist2076 creates a snippet_repository2077 #repository_storage2078 returns repository storage from ApplicationSetting2079 when snippet_project is already created2080 returns repository_storage from snippet_project2081 #repository_size_checker2082 sets up size checker2083 #can_cache_field?2084 field: :title, file_name: nil, result: true2085 is expected to eq true2086 field: :title, file_name: "foo.bar", result: true2087 is expected to eq true2088 field: :description, file_name: nil, result: true2089 is expected to eq true2090 field: :description, file_name: "foo.bar", result: true2091 is expected to eq true2092 field: :content, file_name: nil, result: false2093 is expected to eq false2094 field: :content, file_name: "bar.foo", result: false2095 is expected to eq false2096 field: :content, file_name: "markdown.md", result: true2097 is expected to eq true2098 #url_to_repo2099 with personal snippet2100 is expected to eq "git@localhost:snippets/71.git"2101 with project snippet2102 is expected to eq "git@localhost:namespace593/project682/snippets/72.git"2103 .max_file_limit2104 returns 102105 when feature flag :snippet_multiple_files is disabled2106 returns 12107 #list_files2108 when snippet has a repository2109 lists files from the repository with the ref2110 when snippet does not have a repository2111 returns an empty array2112Gitlab::Asciidoc2113 without project2114 converts the input using Asciidoctor and default options2115 with asciidoc_opts2116 merges the options with default ones2117 with requested path2118 ignores {docname} when not available2119 sets {docname} for root2120 sets {docname} for just a filename2121 sets {docname} for a directory2122 sets {docname} for a complete path2123 XSS2124 does not convert dangerous link with extra attribute into HTML2125 does not convert dangerous link with unsafe scheme into HTML2126 does not convert dangerous image with onerror into HTML2127asciidoctor: WARNING: <stdin>: line 1: unterminated listing block2128 does not convert dangerous fenced code with inline script into HTML2129 images2130 does lazy load and link image2131 does not automatically link image if link is explicitly defined2132 with admonition2133 preserves classes2134 with passthrough2135 removes non heading ids2136 removes non footnote def ids2137 removes non footnote ref ids2138 with footnotes2139 preserves ids and links2140 with section anchors2141 preserves ids and links2142 with checklist2143 preserves classes2144 with marks2145 preserves classes2146 with fenced block2147 highlights syntax2148 with listing block2149 highlights syntax2150 with stem block2151 does not apply syntax highlighting2152 external links2153 adds the `rel` attribute to the link2154 LaTex code2155 adds class js-render-math to the output2156 outfilesuffix2157 defaults to adoc2158 with mermaid diagrams2159 adds class js-render-mermaid to the output2160 applies subs in diagram block2161 with project2162 include directive2163 cyclic imports2164 completes successfully2165 with path to non-existing file2166 renders Unresolved directive placeholder2167 with path to a binary file2168 does not read the blob2169 renders Unresolved directive placeholder2170 with path to file in external storage2171 does not read the blob2172 renders Unresolved directive placeholder2173 with path to a textual file2174 when requested path is a file in the repo2175 the file is specified by absolute path2176 includes content of the file2177 the file is specified by relative path2178 includes content of the file2179 the file is specified by relative path with leading ./2180 includes content of the file2181 the file is specified by relative path to a file up one directory2182 includes content of the file2183 the file is specified by relative path for a file up multiple directories2184 includes content of the file2185 without a commit (only ref)2186 the file is specified by absolute path2187 includes content of the file2188 the file is specified by relative path2189 includes content of the file2190 the file is specified by relative path with leading ./2191 includes content of the file2192 the file is specified by relative path to a file up one directory2193 includes content of the file2194 the file is specified by relative path for a file up multiple directories2195 includes content of the file2196 when requested path is a directory in the repo2197 the file is specified by absolute path2198 includes content of the file2199 the file is specified by relative path2200 includes content of the file2201 the file is specified by relative path with leading ./2202 includes content of the file2203 the file is specified by relative path to a file up one directory2204 includes content of the file2205 the file is specified by relative path for a file up multiple directories2206 includes content of the file2207 without a commit (only ref)2208 the file is specified by absolute path2209 includes content of the file2210 the file is specified by relative path2211 includes content of the file2212 the file is specified by relative path with leading ./2213 includes content of the file2214 the file is specified by relative path to a file up one directory2215 includes content of the file2216 the file is specified by relative path for a file up multiple directories2217 includes content of the file2218 when repository is passed into the context2219 when the file exists2220 is expected to include "<p>Content from wiki</p>"2221 when the file does not exist2222 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"2223 recursive includes with relative paths2224 includes content of the included files recursively2225Clusters::ClusterPresenter2226 inherits from Gitlab::View::Presenter::Delegated2227 #initialize2228 takes a cluster and optional params2229 exposes cluster2230 forwards missing methods to cluster2231 #item_link2232 for a group cluster2233 for a project clusterable2234 returns the group name and the link for cluster2235 is html safe2236 ancestor clusters2237 top level group cluster2238 returns full group names and link for cluster2239 is html safe2240 first level group cluster2241 returns full group names and link for cluster2242 is html safe2243 second level group cluster2244 returns clipped group names and link for cluster2245 is html safe2246 for the group clusterable for the cluster2247 returns link for cluster2248 is html safe2249 ancestor clusters2250 top level group cluster2251 returns full group names and link for cluster2252 is html safe2253 first level group cluster2254 returns full group names and link for cluster2255 is html safe2256 second level group cluster2257 returns clipped group names and link for cluster2258 is html safe2259 for a project cluster2260 for the project clusterable2261 returns link for cluster2262 #provider_label2263 AWS provider2264 is expected to eq "Elastic Kubernetes Service"2265 GCP provider2266 is expected to eq "Google Kubernetes Engine"2267 #provider_management_url2268 AWS provider2269 is expected to include "us-east-1"2270 is expected to include "test-cluster"2271 GCP provider2272 is expected to include "us-central1-a"2273 is expected to include "test-cluster"2274 #cluster_type_description2275 project_type cluster2276 is expected to eq "Project cluster"2277 group_type cluster2278 is expected to eq "Group cluster"2279 instance_type cluster2280 is expected to eq "Instance cluster"2281 #show_path2282 project_type cluster2283 is expected to eq "/namespace636/project725/-/clusters/44"2284 group_type cluster2285 is expected to eq "/groups/group253/-/clusters/47"2286 instance_type cluster2287 is expected to eq "/admin/clusters/50"2288 #read_only_kubernetes_platform_fields?2289 with a user-provided cluster2290 is expected to be falsy2291 with a GCP-provided cluster2292 is expected to be truthy2293 #health_data2294 with project cluster2295 behaves like cluster health data2296 is expected to include {:"clusters-path" => "/namespace637/project726/-/clusters", :"dashboard-endpoint" => "/namespace637/project726/-/clusters/53/metrics_dashboard", :"documentation-path" => "/help/user/project/clusters/index#monitoring-your-kubernetes-cluster-ultimate", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}2297 with group cluster2298 behaves like cluster health data2299 is expected to include {:"clusters-path" => "/groups/group254/-/clusters", :"dashboard-endpoint" => "/groups/group254/-/clusters/56/metrics_dashboard", :"documentation-path" => "/help/user/project/clusters/index#monitoring-your-kubernetes-cluster-ultimate", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}2300 #gitlab_managed_apps_logs_path2301 user can read logs2302 returns path to logs2303 cluster has elastic stack application installed2304 returns path to logs2305 group cluster2306 user can read logs2307 there are projects within group2308 returns path to logs2309 there are no projects within group2310 returns nil2311 instance cluster2312 user can read logs2313 returns path to logs2314 user can NOT read logs2315 returns nil2316Gitlab::TreeSummary2317 #initialize2318 defaults offset to 02319 defaults limit to 252320 #summarize2321 returns an array of entries, and an array of commits2322 #summarize (entries)2323 summarizes the entries within the window2324 references the commit and commit path in entries2325 in a good subdirectory2326 summarizes the entries in the subdirectory2327 in a subdirectory with a pathspec character2328 summarizes the entries in the subdirectory2329 in a non-existent subdirectory2330 is expected to be empty2331 custom offset and limit2332 returns entries from the offset2333 #summarize (commits)2334 returns an Array of ::Commit objects2335 deduplicates commits when multiple entries reference the same commit2336 in a subdirectory2337 returns commits for entries in the subdirectory2338 in a subdirectory with non-ASCII filenames2339 returns commits for entries in the subdirectory2340 rendering commits2341 does not perform N + 1 request2342 #more?2343 num_entries: 0, offset: 0, limit: 0, expected_result: false2344 is expected to eq false2345 num_entries: 0, offset: 0, limit: 1, expected_result: false2346 is expected to eq false2347 num_entries: 1, offset: 0, limit: 0, expected_result: true2348 is expected to eq true2349 num_entries: 1, offset: 0, limit: 1, expected_result: false2350 is expected to eq false2351 num_entries: 1, offset: 1, limit: 0, expected_result: false2352 is expected to eq false2353 num_entries: 1, offset: 1, limit: 1, expected_result: false2354 is expected to eq false2355 num_entries: 2, offset: 0, limit: 0, expected_result: true2356 is expected to eq true2357 num_entries: 2, offset: 0, limit: 1, expected_result: true2358 is expected to eq true2359 num_entries: 2, offset: 0, limit: 2, expected_result: false2360 is expected to eq false2361 num_entries: 2, offset: 0, limit: 3, expected_result: false2362 is expected to eq false2363 num_entries: 2, offset: 1, limit: 0, expected_result: true2364 is expected to eq true2365 num_entries: 2, offset: 1, limit: 1, expected_result: false2366 is expected to eq false2367 num_entries: 2, offset: 2, limit: 0, expected_result: false2368 is expected to eq false2369 num_entries: 2, offset: 2, limit: 1, expected_result: false2370 is expected to eq false2371 #next_offset2372 num_entries: 0, offset: 0, limit: 0, expected_result: 02373 is expected to eq 02374 num_entries: 0, offset: 0, limit: 1, expected_result: 12375 is expected to eq 12376 num_entries: 0, offset: 1, limit: 0, expected_result: 12377 is expected to eq 12378 num_entries: 0, offset: 1, limit: 1, expected_result: 12379 is expected to eq 12380 num_entries: 1, offset: 0, limit: 0, expected_result: 02381 is expected to eq 02382 num_entries: 1, offset: 0, limit: 1, expected_result: 12383 is expected to eq 12384 num_entries: 1, offset: 1, limit: 0, expected_result: 12385 is expected to eq 12386 num_entries: 1, offset: 1, limit: 1, expected_result: 22387 is expected to eq 22388project routing2389 ProjectsController routing2390 to #index2391 to #create2392 to #new2393 to #edit2394 to #update2395 to #destroy2396 to #preview_markdown2397 to #resolve2398 to #show2399 regular name2400 is expected to route {:get=>"/gitlab/gitlabhq"} to {:namespace_id=>"gitlab", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}2401 name with dot2402 is expected to route {:get=>"/gitlab/gitlabhq.keys"} to {:namespace_id=>"gitlab", :id=>"gitlabhq.keys", :controller=>"projects", :action=>"show"}2403 with nested group2404 is expected to route {:get=>"/gitlab/subgroup/gitlabhq"} to {:namespace_id=>"gitlab/subgroup", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}2405 Projects::AutocompleteSourcesController routing2406 to #members2407 to #issues2408 to #merge_requests2409 to #labels2410 to #milestones2411 to #commands2412 to #snippets2413 Projects::WikisController routing2414 behaves like wiki routing2415 redirects the base path to the home page2416 behaves like resource routing2417 routes resource actions2418 behaves like redirecting a legacy project path2419 redirects /gitlab/gitlabhq/wikis to /gitlab/gitlabhq/-/wikis2420 behaves like redirecting a legacy project path2421 redirects /gitlab/gitlabhq/wikis/home/edit to /gitlab/gitlabhq/-/wikis/home/edit2422 Projects::RepositoriesController routing2423 to #archive format:zip2424 to #archive format:tar.bz22425 to #archive with "/" in route2426 to #archive_alternative2427 to #archive_deprecated2428 to #archive_deprecated format:zip2429 to #archive_deprecated format:tar.bz22430 to #archive_deprecated with "/" in route2431 Projects::BranchesController routing2432 to #branches2433 Projects::TagsController routing2434 to #tags2435 behaves like redirecting a legacy project path2436 redirects /gitlab/gitlabhq/tags to /gitlab/gitlabhq/-/tags2437 Projects::DeployKeysController routing2438 behaves like resource routing2439 routes resource actions2440 Projects::ProtectedBranchesController routing2441 behaves like resource routing2442 routes resource actions2443 Projects::RefsController routing2444 to #switch2445 to #logs_tree2446 Projects::MergeRequestsController routing2447 to #commits2448 to #pipelines2449 to #merge2450 to #show2451 to #show from scoped route2452 behaves like resource routing2453 routes resource actions2454 behaves like redirecting a legacy project path2455 redirects /gitlab/gitlabhq/merge_requests to /gitlab/gitlabhq/-/merge_requests2456 behaves like redirecting a legacy project path2457 redirects /gitlab/gitlabhq/merge_requests/1/diffs to /gitlab/gitlabhq/-/merge_requests/1/diffs2458 Projects::MergeRequests::CreationsController routing2459 to #new2460 to #create2461 to #branch_from2462 to #branch_to2463 to #pipelines2464 to #diffs2465 behaves like redirecting a legacy project path2466 redirects /gitlab/gitlabhq/merge_requests/new to /gitlab/gitlabhq/-/merge_requests/new2467 Projects::MergeRequests::DiffsController routing2468 to #show2469 Projects::MergeRequests::ConflictsController routing2470 to #show2471 SnippetsController routing2472 to #raw2473 to #index2474 to #create2475 to #new2476 to #edit2477 to #show2478 to #update2479 to #destroy2480 to #show from unscope routing2481 Projects::HooksController routing2482 to #test2483 behaves like resource routing2484 routes resource actions2485 Projects::HookLogsController routing2486 to #retry2487 to #show2488 Projects::CommitController routing2489 to #show2490 to #show unscoped routing2491 Projects::CommitsController routing2492 to #show2493 to #show unscoped routing2494 behaves like resource routing2495 routes resource actions2496 Projects::ProjectMembersController routing2497 behaves like resource routing2498 routes resource actions2499 Projects::MilestonesController routing2500 to #promote2501 behaves like resource routing2502 routes resource actions2503 Projects::LabelsController routing2504 to #index2505 Projects::IssuesController routing2506 to #bulk_update2507 behaves like resource routing2508 routes resource actions2509 behaves like redirecting a legacy project path2510 redirects /gitlab/gitlabhq/issues to /gitlab/gitlabhq/-/issues2511 behaves like redirecting a legacy project path2512 redirects /gitlab/gitlabhq/issues/1/edit to /gitlab/gitlabhq/-/issues/1/edit2513 Projects::NotesController routing2514 to #index2515 behaves like resource routing2516 routes resource actions2517 Projects::BlameController routing2518 to #show2519 Projects::BlobController routing2520 to #show2521 to #show from unscoped routing2522 Projects::TreeController routing2523 to #show2524 to #show from unscoped routing2525 Projects::FindFileController routing2526 to #show2527 to #list2528 Projects::BlobController routing2529 to #edit2530 to #preview2531 Projects::RawController routing2532 to #show2533 to #show from unscoped routing2534 Projects::CompareController routing2535 to #index2536 to #compare2537 to #show2538 Projects::NetworkController routing2539 to #show2540 Projects::GraphsController routing2541 to #show2542 Projects::ForksController routing2543 to #new2544 to #create2545 Projects::AvatarsController routing2546 to #destroy2547 Projects::PagesDomainsController routing2548 to #destroy with a valid domain name2549 to #show with a valid domain2550 behaves like resource routing2551 routes resource actions2552 Projects::Registry::TagsController routing2553 #destroy2554 correctly routes to a destroy action2555 takes registry tag name constrains into account2556 Projects::Settings::OperationsController routing2557 to #reset_alerting_token2558 Projects::Settings::RepositoryController routing2559 to #show2560 to repository#create_deploy_token2561 Projects::TemplatesController routing2562 #show2563 routes when :template_type is `merge_request`2564 routes when :template_type is `issue`2565 routes to application#route_not_found when :template_type is unknown2566 Projects::DeployTokensController routing2567 routes to deploy_tokens#revoke2568 Projects::UsagePingController routing2569 routes to usage_ping#web_ide_clientside_preview2570 routes to usage_ping#web_ide_pipelines_count2571 Projects::StaticSiteEditorController routing2572 routes to static_site_editor#show2573 Projects::EnvironmentsController routing2574 legacy routing2575 behaves like redirecting a legacy project path2576 redirects /gitlab/gitlabhq/environments to /gitlab/gitlabhq/-/environments2577 Projects::ClustersController routing2578 legacy routing2579 behaves like redirecting a legacy project path2580 redirects /gitlab/gitlabhq/clusters to /gitlab/gitlabhq/-/clusters2581 Projects::ErrorTrackingController routing2582 legacy routing2583 behaves like redirecting a legacy project path2584 redirects /gitlab/gitlabhq/error_tracking to /gitlab/gitlabhq/-/error_tracking2585 Projects::Serverless routing2586 legacy routing2587 behaves like redirecting a legacy project path2588 redirects /gitlab/gitlabhq/serverless to /gitlab/gitlabhq/-/serverless2589 Projects::DesignManagement::Designs::RawImagesController routing2590 to #show2591 Projects::DesignManagement::Designs::ResizedImageController routing2592 to #show2593 Projects::Snippets::BlobsController routing2594 to #raw2595 Projects::MetricsDashboardController routing2596 routes to #show with no dashboard_path and no page2597 routes to #show with only dashboard_path2598 routes to #show with only page2599 routes to #show with dashboard_path and page2600 routes to 404 with invalid page2601 routes to 404 with invalid dashboard_path2602 routes to 404 with invalid dashboard_path and valid page2603 routes to 404 with valid dashboard_path and invalid page2604CommitStatus2605 is expected to belong to pipeline required:2606 is expected to belong to user required:2607 is expected to belong to project required:2608 is expected to belong to auto_canceled_by required:2609 is expected to validate that :name cannot be empty/falsy2610 is expected to validate that :status is either ‹"pending"›, ‹"running"›, ‹"failed"›, ‹"success"›, or ‹"canceled"›2611 is expected to delegate #sha to the #pipeline object2612 is expected to delegate #short_sha to the #pipeline object2613 is expected to respond to #success?2614 is expected to respond to #failed?2615 is expected to respond to #running?2616 is expected to respond to #pending?2617 behaves like having unique enum values2618 has unique values in "scheduling_type"2619 has unique values in "failure_reason"2620 #author2621 is expected to eq #<User id: @>2622 status state machine2623 invalidates the cache after a transition2624 transitioning to running2625 records the started at time2626 #processed2627 processed state is always persisted2628 status is latest2629 is expected to be falsey2630 status is retried2631 is expected to be truthy2632 #started?2633 without started_at2634 is expected to be falsey2635 if commit status is running2636 is expected to be truthy2637 if commit status is success2638 is expected to be truthy2639 if commit status is failed2640 is expected to be truthy2641 if commit status is pending2642 is expected to be falsey2643 if commit status is canceled2644 is expected to be falsey2645 #active?2646 if commit_status.status is pending2647 is expected to be truthy2648 if commit_status.status is running2649 is expected to be truthy2650 if commit_status.status is success2651 is expected to be falsey2652 if commit_status.status is failed2653 is expected to be falsey2654 if commit_status.status is canceled2655 is expected to be falsey2656 #complete?2657 if commit_status.status is success2658 is expected to be truthy2659 if commit_status.status is failed2660 is expected to be truthy2661 if commit_status.status is canceled2662 is expected to be truthy2663 if commit_status.status is pending2664 is expected to be falsey2665 if commit_status.status is running2666 is expected to be falsey2667 #cancel2668 when status is scheduled2669 updates the status2670 #auto_canceled?2671 when it is canceled2672 when there is auto_canceled_by2673 is auto canceled2674 when there is no auto_canceled_by2675 is not auto canceled2676 #duration2677 is expected to eq 120.02678 if the building process has not started yet2679 is expected to be nil2680 if the building process has started2681 is expected to be a kind of Float2682 is expected to be > 0.02683 .latest2684 returns unique statuses2685 .retried2686 returns unique statuses2687 .running_or_pending2688 returns statuses that are running or pending2689 .after_stage2690 returns statuses from second and third stage2691 .exclude_ignored2692 returns statuses without what we want to ignore2693 .failed_but_allowed2694 returns statuses without what we want to ignore2695 .for_ref2696 returns statuses with the specified ref2697 .by_name2698 returns statuses with the specified name2699 .for_project_paths2700 with a single path2701 returns statuses for other_project2702 with array of paths2703 returns statuses for project2704 .status2705 when there are multiple statuses present2706 returns a correct compound status2707 when there are only allowed to fail commit statuses present2708 returns status that indicates success2709 when using a scope to select latest statuses2710 returns status according to the scope2711 .match_id_and_lock_version2712 returns statuses that match the given id and lock versions2713 #before_sha2714 when no before_sha is set for pipeline2715 returns blank sha2716 for before_sha set for pipeline2717 returns the set value2718 #commit2719 returns commit pipeline has been created for2720 #group_name2721 'rspec:windows' puts in 'rspec:windows'2722 'rspec:windows 0' puts in 'rspec:windows 0'2723 'rspec:windows 0 test' puts in 'rspec:windows 0 test'2724 'rspec:windows 0 1' puts in 'rspec:windows'2725 'rspec:windows 0 1 name' puts in 'rspec:windows name'2726 'rspec:windows 0/1' puts in 'rspec:windows'2727 'rspec:windows 0/1 name' puts in 'rspec:windows name'2728 'rspec:windows 0:1' puts in 'rspec:windows'2729 'rspec:windows 0:1 name' puts in 'rspec:windows name'2730 'rspec:windows 10000 20000' puts in 'rspec:windows'2731 'rspec:windows 0 : / 1' puts in 'rspec:windows'2732 'rspec:windows 0 : / 1 name' puts in 'rspec:windows name'2733 '0 1 name ruby' puts in 'name ruby'2734 '0 :/ 1 name ruby' puts in 'name ruby'2735 #detailed_status2736 returns a detailed status2737 #sortable_name2738 'karma' sorts as '["karma"]'2739 'karma 0 20' sorts as '["karma ", 0, " ", 20]'2740 'karma 10 20' sorts as '["karma ", 10, " ", 20]'2741 'karma 50:100' sorts as '["karma ", 50, ":", 100]'2742 'karma 1.10' sorts as '["karma ", 1, ".", 10]'2743 'karma 1.5.1' sorts as '["karma ", 1, ".", 5, ".", 1]'2744 'karma 1 a' sorts as '["karma ", 1, " a"]'2745 #locking_enabled?2746 when changing status2747 lock2748 raise exception when trying to update2749 when changing description2750 do not lock2751 save correctly2752 set failure_reason when drop2753 when failure_reason is nil2754 is expected to be unknown failure2755 when failure_reason is script_failure2756 is expected to be script failure2757 when failure_reason is unmet_prerequisites2758 is expected to be unmet prerequisites2759 ensure stage assignment2760 when commit status has a stage_id assigned2761 does not create a new stage2762 when commit status does not have a stage_id assigned2763 creates a new stage2764 when commit status does not have stage but it exists2765 uses existing stage2766 when commit status is being imported2767 does not create a new stage2768 #all_met_to_become_pending?2769 is expected to eq true2770 when build requires a resource2771 is expected to eq false2772 when build has a prerequisite2773 is expected to eq false2774 #enqueue2775 when initial state is :created2776 behaves like commit status enqueued2777 sets queued_at value when enqueued2778 when initial state is :skipped2779 behaves like commit status enqueued2780 sets queued_at value when enqueued2781 when initial state is :manual2782 behaves like commit status enqueued2783 sets queued_at value when enqueued2784 when initial state is :scheduled2785 behaves like commit status enqueued2786 sets queued_at value when enqueued2787 #present2788 is expected to be a kind of CommitStatusPresenter2789 #recoverable?2790 when commit status is failed2791 failure_reason: :script_failure, recoverable: false2792 when failure reason is script_failure2793 is expected to eq false2794 failure_reason: :missing_dependency_failure, recoverable: false2795 when failure reason is missing_dependency_failure2796 is expected to eq false2797 failure_reason: :archived_failure, recoverable: false2798 when failure reason is archived_failure2799 is expected to eq false2800 failure_reason: :scheduler_failure, recoverable: false2801 when failure reason is scheduler_failure2802 is expected to eq false2803 failure_reason: :data_integrity_failure, recoverable: false2804 when failure reason is data_integrity_failure2805 is expected to eq false2806 failure_reason: :unknown_failure, recoverable: true2807 when failure reason is unknown_failure2808 is expected to eq true2809 failure_reason: :api_failure, recoverable: true2810 when failure reason is api_failure2811 is expected to eq true2812 failure_reason: :stuck_or_timeout_failure, recoverable: true2813 when failure reason is stuck_or_timeout_failure2814 is expected to eq true2815 failure_reason: :runner_system_failure, recoverable: true2816 when failure reason is runner_system_failure2817 is expected to eq true2818 when commit status is not failed2819 is expected to eq false2820LabelLink2821 is expected to be valid2822 is expected to belong to label required:2823 is expected to belong to target required:2824 behaves like a BulkInsertSafe model2825 when calling class methods directly2826 raises an error when method is not bulk-insert safe2827 does not raise an error when method is bulk-insert safe2828 does not raise an error when the call is triggered by belongs_to2829 .bulk_insert!2830 when all items are valid2831 inserts them all2832 returns an empty array2833 when some items are invalid2834 does not insert any of them and raises an error2835 inserts them anyway when bypassing validations2836DiffsEntity2837 as json2838 contains needed attributes2839 when a commit_id is passed2840 when the passed commit is not the first or last in the group2841 includes commit references for previous and next2842 when the passed commit is the first in the group2843 includes commit references for nil and previous commit2844 when the passed commit is the last in the group2845 includes commit references for the next and nil2846 when code_navigation feature flag is disabled2847 does not include code navigation properties2848Gitlab::ImportExport::AfterExportStrategies::WebUploadStrategy2849 validations2850 only POST and PUT method allowed2851 onyl allow urls as upload urls2852 #execute2853 removes the exported project file after the upload2854 when upload fails2855 stores the export error2856AutoMerge::MergeWhenPipelineSucceedsService2857 #available_for?2858 is expected to be truthy2859 memoizes the result2860 when the head pipeline succeeded2861 is expected to be falsy2862 when the user does not have permission to merge2863 is expected to be falsy2864 #execute2865 first time enabling2866 sets the params, merge_user, and flag2867 creates a system note2868 without feature enabled2869 does not send notification2870 already approved2871 updates the merge params2872 #process2873 when triggered by pipeline with valid ref and sha2874 merges all merge requests with merge when the pipeline succeeds enabled2875 when triggered by an old pipeline2876 does not merge request2877 when triggered by pipeline from a different branch2878 does not merge request2879 when pipeline is merge request pipeline2880 merges the associated merge request2881 #cancel2882 resets all the pipeline succeeds params2883 Posts a system note2884 #abort2885 posts a system note2886 pipeline integration2887 when there are multiple stages in the pipeline2888 doesn't merge if any of stages failed2889 merges when all stages succeeded2890PipelineDetailsEntity2891 inherrits from PipelineEntity2892 #as_json2893 when pipeline is empty2894 contains details2895 contains flags2896 when pipeline is retryable2897 user has ability to retry pipeline2898 retryable flag is true2899 user does not have ability to retry pipeline2900 retryable flag is false2901 when pipeline is cancelable2902 user has ability to cancel pipeline2903 cancelable flag is true2904 user does not have ability to cancel pipeline2905 cancelable flag is false2906 when pipeline has commit statuses2907 contains stages2908 when pipeline has YAML errors2909 contains information about error2910 contains flag that indicates there are errors2911 when pipeline does not have YAML errors2912 does not contain field that normally holds an error2913 contains flag that indicates there are no errors2914 when pipeline is triggered by other pipeline2915 contains an information about depedent pipeline2916 when pipeline triggered other pipeline2917 contains an information about dependent pipeline2918CommitRange2919 raises ArgumentError when given an invalid range string2920 modules2921 is expected to includes the Referable module2922 #initialize2923 does not modify strings in-place2924 #to_s2925 is correct for three-dot syntax2926 is correct for two-dot syntax2927 #to_reference2928 returns a String reference to the object2929 returns a String reference to the object2930 supports a cross-project reference2931 #reference_link_text2932 returns a String reference to the object2933 returns a String reference to the object2934 supports a cross-project reference2935 #to_param2936 includes the correct keys2937 includes the correct values for a three-dot range2938 includes the correct values for a two-dot range2939 #exclude_start?2940 is false for three-dot ranges2941 is true for two-dot ranges2942 #valid_commits?2943 with a valid repo2944 is false when `sha_from` is invalid2945 is false when `sha_to` is invalid2946 is true when both `sha_from` and `sha_to` are valid2947 without a valid repo2948 returns false2949Ci::PipelineArtifact2950 associations2951 is expected to belong to pipeline required:2952 is expected to belong to project required:2953 behaves like having unique enum values2954 has unique values in "file_format"2955 has unique values in "file_type"2956 behaves like UpdateProjectStatistics2957 is expected to be a new record2958 when creating2959 updates the project statistics2960 schedules a namespace statistics worker2961 when updating2962 updates project statistics2963 schedules a namespace statistics worker2964 avoids N + 1 queries2965 when destroying2966 updates the project statistics2967 schedules a namespace statistics worker2968 when it is destroyed from the project level2969 does not update the project statistics2970 does not schedule a namespace statistics worker2971 validations2972 is expected to validate that :pipeline cannot be empty/falsy2973 is expected to validate that :project cannot be empty/falsy2974 is expected to validate that :file_type cannot be empty/falsy2975 is expected to validate that :file_format cannot be empty/falsy2976 is expected to validate that :size cannot be empty/falsy2977 is expected to validate that :file cannot be empty/falsy2978 when attributes are valid2979 returns no errors2980 when file_store is invalid2981 returns errors2982 when size is over 10 megabytes2983 returns errors2984 file is being stored2985 when existing object has local store2986 behaves like mounted file in local store2987 is stored locally2988 when direct upload is enabled2989 when file is stored2990 behaves like mounted file in object store2991 is stored remotely2992 when file contains multi-byte characters2993 sets the size in bytesize2994 .has_code_coverage?2995 when pipeline artifact has a code coverage2996 returns true2997 when pipeline artifact does not have a code coverage2998 returns false2999 .find_with_code_coverage3000 when pipeline artifact has a coverage report3001 returns a pipeline artifact with a code coverage3002 when pipeline artifact does not have a coverage report3003 returns nil3004IssueEntity3005 has Issuable attributes3006 has time estimation attributes3007 when issue got moved3008 when user cannot read target project3009 does not return moved_to_id3010 when user can read target project3011 returns moved moved_to_id3012 when issue got duplicated3013 when user cannot read new issue3014 does not return duplicated_to_id3015 when user can read target project3016 returns duplicated duplicated_to_id3017 when issuable in active or archived project3018 when project is active3019 returns archived false3020 returns nil for archived project doc3021 when project is archived3022 returns archived true3023 returns archived project doc3024Issues::ImportCsvService3025 #execute3026 invalid file3027 returns invalid file error3028 with a file generated by Gitlab CSV export3029 imports the CSV without errors3030 correctly sets the issue attributes3031 comma delimited file3032 imports CSV without errors3033 correctly sets the issue attributes3034 tab delimited file with error row3035 imports CSV with some error rows3036 correctly sets the issue attributes3037 semicolon delimited file with CRLF3038 imports CSV with a blank row3039 correctly sets the issue attributes3040Gitlab::Diff::PositionTracer::ImageStrategy3041 #trace3042 diff scenarios3043 when the file was created in the old diff3044 when the file is unchanged between the old and the new diff3045 returns the new position3046 when the file was updated between the old and the new diff3047 returns the position of the change3048 when the file was renamed in between the old and the new diff3049 returns the position of the change3050 when the file was removed in between the old and the new diff3051 returns the position of the change3052 when the file is unchanged in the new diff3053 returns the position of the change3054 when the file was changed in the old diff3055 when the file is unchanged in between the old and the new diff3056 returns the new position3057 when the file was updated in between the old and the new diff3058 returns the position of the change3059 when the file was renamed in between the old and the new diff3060 returns the position of the change3061 when the file was removed in between the old and the new diff3062 returns the position of the change3063 when the file is unchanged in the new diff3064 returns the position of the change3065 symlink scenarios3066 from symlink to image3067 when the old position is on the new image file3068 when the image file's content was unchanged between the old and the new diff3069 returns the new position3070 when the image file's content was changed between the old and the new diff3071 returns the position of the change3072 when the image file was removed between the old and the new diff3073 returns the position of the change3074 from image to symlink3075 when the old position is on the added image file3076 when the image file gets changed to a symlink between the old and the new diff3077 returns the position of the change3078Timelog3079 is expected to belong to issue required:3080 is expected to belong to merge_request required:3081 is expected to be valid3082 is expected to validate that :time_spent cannot be empty/falsy3083 is expected to validate that :user cannot be empty/falsy3084 Issuable validation3085 is invalid if issue_id and merge_request_id are missing3086 is invalid if issue_id and merge_request_id are set3087 is valid if only issue_id is set3088 is valid if only merge_request_id is set3089 scopes3090 for_issues_in_group3091 return timelogs created for group issues3092 between_times3093 returns collection of timelogs within given times3094DesignManagement::Version3095 relations3096 is expected to have many actions3097 is expected to have many designs through actions3098 constrains the designs relation correctly3099 allows adding multiple versions to a single design3100 validations3101 is expected to be valid3102 is expected to validate that :author cannot be empty/falsy3103 is expected to validate that :sha cannot be empty/falsy3104 is expected to validate that :designs cannot be empty/falsy3105 is expected to validate that :issue_id cannot be empty/falsy3106 is expected to validate that :sha is case-insensitively unique within the scope of :issue_id3107 scopes3108 .for_designs3109 only returns versions related to the specified designs3110 .earlier_or_equal_to3111 only returns versions created earlier or later than the given version3112 can be passed either a DesignManagement::Version or an ID3113 .by_sha3114 can find versions by sha3115 .create_for_designs3116 does not leave invalid versions around if creation fails3117 does not leave orphaned design-versions around if creation fails3118 creates a version and links it to multiple designs3119 creates designs if they are new to git3120 correctly associates the version with the issue3121 correctly associates the version with the author3122 modifies designs if git updated them3123 deletes designs when the git action was delete3124 re-creates designs if they are deleted3125 changes the version of the designs3126 the error raised when there are no actions3127 raises CouldNotCreateVersion3128 has an appropriate cause3129 provides extra data sentry can consume3130 the error raised when the designs come from different issues3131 raises CouldNotCreateVersion3132 has an appropriate cause3133 provides extra data sentry can consume3134 #designs_by_event3135 there is a single design3136 behaves like a_correctly_categorised_design3137 returns a hash with a single key and the single design in that bucket3138 behaves like a_correctly_categorised_design3139 returns a hash with a single key and the single design in that bucket3140 behaves like a_correctly_categorised_design3141 returns a hash with a single key and the single design in that bucket3142 there are a bunch of different designs in a variety of states3143 puts them in the right buckets3144 does not suffer from N+1 queries3145 #author3146 returns the author3147 returns nil if author_id is nil and version is not persisted3148 retrieves author from the Commit if author_id is nil and version has been persisted3149 #diff_refs3150 there is a commit in the repo by the SHA3151 is expected to have attributes {:diff_refs => #<Gitlab::Diff::DiffRefs:0x0000557acf97a118 @base_sha="6f6d7e7ed97bb5f0054f2b1df789b39ca...a="6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9", @head_sha="570e7b2abdd848b95f2f578043fc23bd6f6fd24d">}3152 memoizes calls to #diff_refs3153 there is no commit in the repo by the SHA3154 is expected to have attributes {:diff_refs => (be nil)}3155 #reset3156 removes memoized values3157Deployments::OlderDeploymentsDropService3158 #execute3159 when deployment is nil3160 behaves like it does not drop any build3161 is expected to not change `Ci::Build::ActiveRecord_Relation#count`3162 when a deployment is passed in3163 and there is no active deployment for the related environment3164 behaves like it does not drop any build3165 is expected to not change `Ci::Build::ActiveRecord_Relation#count`3166 and there are active deployment for the related environment3167 and there is no older deployment than "deployment"3168 behaves like it does not drop any build3169 is expected to not change `Ci::Build::ActiveRecord_Relation#count`3170 and there is an older deployment than "deployment"3171 drops that older deployment3172 when older deployable is a manual job3173 does not drop any builds nor track the exception3174 when deployable.drop raises RuntimeError3175 does not drop an older deployment and tracks the exception3176 when ActiveRecord::StaleObjectError is raised3177 resets the object via Gitlab::OptimisticLocking3178 and there is no deployable for that older deployment3179 behaves like it does not drop any build3180 is expected to not change `Ci::Build::ActiveRecord_Relation#count`3181DesignManagement::SaveDesignsService3182 #execute3183 when the feature is not available3184 does not create an event in the activity stream3185 behaves like a service error3186 returns an error3187 when the feature is available3188 creates a commit, an event in the activity stream and updates the creation count3189 can run the same command in parallel3190 repository existence3191 is ensured when the service runs3192 the response3193 includes designs with the expected properties3194 saving the file to LFS3195 saves the design to LFS and saves the repository_type of the LfsObjectsProject as design3196 when a design is being updated3197 creates a new version for the existing design and updates the file3198 records the correct events3199 when uploading a new design3200 does not link the new version to the existing design3201 when a design has not changed since its previous version3202 does not create a new version, and returns the design in `skipped_designs`3203 when doing a mixture of updates and creations3204 has the correct side-effects3205 when uploading multiple files3206 returns information about both designs in the response3207 has the correct side-effects3208 when uploading too many files3209 returns the correct error3210 when the user is not allowed to upload designs3211 behaves like a service error3212 returns an error3213 failure modes3214 when creating the commit fails3215 behaves like an execution error3216 returns an error3217 when creating the versions fails3218 behaves like a service error3219 returns an error3220 when a design already existed in the repo but we didn't know about it in the database3221 creates the design and a new version for it3222 scalability3223 runs the same queries for all requests, regardless of number of files (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/213169)3224Metrics::Dashboards::AnnotationsFinder3225 #execute3226 there are no annotations records3227 returns empty array3228 with annotation records3229 loads annotations3230 when the from filter is present3231 loads only younger annotations3232 when the to filter is present3233 loads only older annotations3234 when from and to filters are present3235 and to is bigger than from3236 loads only annotations assigned to this interval3237 and from is bigger than to3238 ignores to parameter and returns annotations starting at from filter3239 when from or to filters are empty strings3240 ignores this parameters3241 dashboard environment is missing3242 returns empty relation3243MergeRequests::ApprovalService3244 #execute3245 with invalid approval3246 does not create an approval note3247 does not mark pending todos as done3248 with valid approval3249 creates an approval note and marks pending todos as done3250 creates approve MR event3251 with remaining approvals3252 fires an approval webhook3253 user cannot update the merge request3254 does not update approvals3255Mutations::MergeRequests::SetAssignees3256 behaves like an assignable resource3257 #resolve3258 raises an error if the resource is not accessible to the user3259 when the user can update the resource3260 replaces the assignee3261 returns errors when resource could not be updated3262 when passing an empty assignee list3263 removes all assignees3264 when passing "append" as true3265 is a NO-OP in FOSS3266 when passing "remove" as true3267 removes named assignee3268 does not remove unnamed assignee3269Gitlab::Verify::JobArtifacts3270 behaves like Gitlab::Verify::BatchVerifier subclass3271 batching3272 iterates through objects in batches3273 allows the starting ID to be specified3274 allows the finishing ID to be specified3275 #run_batches3276 passes artifacts with the correct file3277 fails artifacts with a missing file3278 fails artifacts with a mismatched checksum3279 with remote files3280 passes artifacts in object storage that exist3281 fails artifacts in object storage that do not exist3282TestSuiteEntity3283 when details option is not present3284 does not expose suite error and test cases3285 when details option is present3286 contains the suite name3287 contains the total time3288 contains the counts3289 contains the test cases3290 contains an empty error message3291 with a suite error3292 contains the suite name3293 contains the total time3294 returns all the counts as 03295 returns no test cases3296 returns a suite error3297TodosHelper3298 #todos_count_format3299 shows fuzzy count for 100 or more items3300 shows exact count for 99 or fewer items3301 #todo_projects_options3302 returns users authorised projects in json format3303 #todo_target_link3304 when given a design3305 produces a good link3306 #todo_target_title3307 when the target does not exist3308 returns an empty string3309 when given a design todo3310 returns an empty string3311 when given a non-design todo3312 returns the title3313 #todo_target_path3314 when given a design3315 responds with an appropriate path3316 when given an alert3317 responds with an appropriate path3318 #todo_target_type_name3319 when given a design todo3320 responds with an appropriate target type name3321 when given an alert todo3322 responds with an appropriate target type name3323 #todo_types_options3324 includes a match for a design todo3325 #todo_target_state_pill3326 merge request todo3327 behaves like no state pill3328 is expected to eq nil3329 merged MR3330 behaves like a rendered state pill3331 returns expected html3332 issue todo3333 behaves like no state pill3334 is expected to eq nil3335 closed issue3336 behaves like a rendered state pill3337 returns expected html3338 alert todo3339 behaves like no state pill3340 is expected to eq nil3341 resolved alert3342 behaves like a rendered state pill3343 returns expected html3344 #todo_author_display?3345 action: 3, result: false3346 is expected to eq false3347 action: 6, result: false3348 is expected to eq false3349 action: 1, result: true3350 is expected to eq true3351Files::UpdateService3352 #execute3353 when the file's last commit sha does not match the supplied last_commit_sha3354 returns a hash with the correct error message and a :error status3355 when the file's last commit sha does match the supplied last_commit_sha3356 returns a hash with the :success status3357 updates the file with the new contents3358 uses the commit email3359 when the last_commit_sha is not supplied3360 returns a hash with the :success status3361 updates the file with the new contents3362DiffFileBaseEntity3363 diff for a changed submodule3364 is expected to eq "https://github.com/randx/six/tree/409f37c4f05865e4fb208c771485f211a22c4c2d"3365 contains raw sizes for the blob3366 is expected to eq 1323367 edit_path3368 open3369 behaves like a diff file edit path to the source branch3370 is expected to eq "/namespace993/project1085/-/edit/feature/files/ruby/feature.rb?from_merge_request_iid=1"3371 removed source branch3372 is expected to eq nil3373 closed3374 behaves like a diff file edit path to the source branch3375 is expected to eq "/namespace995/project1087/-/edit/feature/files/ruby/feature.rb?from_merge_request_iid=1"3376 removed source branch3377 is expected to eq nil3378 merged3379 is expected to eq "/namespace997/project1089/-/edit/feature/with%20space/README.md"3380Projects::ContainerRepository::DeleteTagsService3381 #execute3382 without permissions3383 is expected to include {:status => :error}3384 with permissions3385 when the registry supports fast delete3386 and the feature is enabled3387 behaves like calling the correct delete tags service3388 is expected to include {:status => :success}3389 behaves like logging a success response3390 logs an info message3391 with an error service response3392 is expected to include {:status => :error}3393 behaves like logging an error response3394 logs an error message3395 behaves like handling invalid params3396 with invalid params3397 when no params are specified3398 is expected to include {:status => :error}3399 with empty tags3400 is expected to include {:status => :error}3401 with the real service3402 is expected to include {:status => :success}3403 behaves like logging a success response3404 logs an info message3405 and the feature is disabled3406 behaves like calling the correct delete tags service3407 is expected to include {:status => :success}3408 behaves like logging a success response3409 logs an info message3410 with an error service response3411 is expected to include {:status => :error}3412 behaves like logging an error response3413 logs an error message3414 behaves like handling invalid params3415 with invalid params3416 when no params are specified3417 is expected to include {:status => :error}3418 with empty tags3419 is expected to include {:status => :error}3420 with the real service3421 is expected to include {:status => :success}3422 behaves like logging a success response3423 logs an info message3424 when the registry does not support fast delete3425 behaves like calling the correct delete tags service3426 is expected to include {:status => :success}3427 behaves like logging a success response3428 logs an info message3429 with an error service response3430 is expected to include {:status => :error}3431 behaves like logging an error response3432 logs an error message3433 behaves like handling invalid params3434 with invalid params3435 when no params are specified3436 is expected to include {:status => :error}3437 with empty tags3438 is expected to include {:status => :error}3439Packages::Nuget::MetadataExtractionService3440 #execute3441 with valid package file id3442 is expected to eq {:package_dependencies=>[{:name=>"Newtonsoft.Json", :target_framework=>".NETCoreApp3.0", :version=>"1...12.0.3"}], :package_name=>"DummyProject.DummyPackage", :package_tags=>[], :package_version=>"1.0.0"}3443 with nuspec file3444 with dependencies3445 is expected to have key :package_dependencies3446 extracts dependencies3447 with a nuspec file with metadata3448 is expected to eq ["bar", "foo", "tag1", "tag2", "tag3", "tag4", "tag5", "test"]3449 with a nuspec file with metadata3450 is expected to eq "https://opensource.org/licenses/MIT"3451 is expected to eq "https://gitlab.com/gitlab-org/gitlab"3452 is expected to eq "https://opensource.org/files/osi_keyhole_300X300_90ppi_0.png"3453 with invalid package file id3454 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"3455 linked to a non nuget package3456 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"3457 with a 0 byte package file id3458 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "invalid package file"3459 without the nuspec file3460 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "nuspec file not found"3461 with a too big nuspec file3462 is expected to raise Packages::Nuget::MetadataExtractionService::ExtractionError with "nuspec file too big"3463PrometheusAdapter3464 #query3465 validate_query3466 with valid data3467 returns query data3468 environment3469 with valid data3470 returns reactive data3471 matched_metrics3472 with valid data3473 returns reactive data3474 deployment3475 with valid data3476 returns reactive data3477 additional_metrics3478 with valid data3479 returns reactive data3480 #calculate_reactive_cache3481 when service is inactive3482 is expected to be nil3483 when Prometheus responds with valid data3484 is expected to eq "{\"success\":true,\"data\":{\"memory_values\":[{\"metric\":{},\"values\":[[1488758662.506,\"0.000029...lue\":[1488772511.004,\"0.000041021495238095323\"]}]},\"last_update\":\"2020-08-25T15:50:13.100Z\"}"3485 when Prometheus responds with 4043486 is expected to eq {:result=>"404 - \"QUERY FAILED!\"", :success=>false}3487 when Prometheus responds with 5003488 is expected to eq {:result=>"500 - \"QUERY FAILED!\"", :success=>false}3489 #build_query_args3490 when active record models are included3491 serializes by id3492 when args are safe for serialization3493 does nothing3494Gitlab::Kubernetes::Helm::InitCommand3495 behaves like helm command generator3496 #generate_script3497 returns appropriate command3498 on a rbac-enabled cluster3499 behaves like helm command generator3500 #generate_script3501 returns appropriate command3502 behaves like helm command3503 #rbac?3504 rbac is enabled3505 is expected to be truthy3506 rbac is not enabled3507 is expected to be falsey3508 #pod_resource3509 rbac is enabled3510 is expected to be an instance of Kubeclient::Resource3511 generates a pod that uses the tiller serviceAccountName3512 rbac is not enabled3513 is expected to be an instance of Kubeclient::Resource3514 generates a pod that uses the default serviceAccountName3515 #config_map_resource3516 returns a KubeClient resource with config map content for the application3517 #service_account_resource3518 rbac is enabled3519 generates a Kubeclient resource for the tiller ServiceAccount3520 rbac is not enabled3521 generates nothing3522 #cluster_role_binding_resource3523 rbac is enabled3524 generates a Kubeclient resource for the ClusterRoleBinding for tiller3525 binds the account in #service_account_resource3526 rbac is not enabled3527 generates nothing3528IssueLinks::DestroyService3529 #execute3530 when successfully removes an issue link3531 removes related issue3532 creates notes3533 returns success message3534 when failing to remove an issue link3535 does not remove relation3536 does not create notes3537 returns error message3538Boards::ListService3539 #execute3540 when board parent is a project3541 behaves like boards list service3542 returns parent boards3543 when parent does not have a board3544 creates a new parent board3545 delegates the parent board creation to Boards::CreateService3546 when create_default_board is false3547 does not create a new parent board3548 when parent has a board3549 does not create a new board3550 behaves like multiple boards list service3551 #execute3552 returns all issue boards3553 returns boards ordered by name3554 when wanting a specific board3555 returns board specified by id3556 raises exception when board is not found3557 when board parent is a group3558 behaves like boards list service3559 returns parent boards3560 when parent does not have a board3561 creates a new parent board3562 delegates the parent board creation to Boards::CreateService3563 when create_default_board is false3564 does not create a new parent board3565 when parent has a board3566 does not create a new board3567AlertManagement::Alerts::UpdateService3568 #execute3569 when the current_user is nil3570 behaves like error response3571 has an informative message3572 behaves like does not add a todo3573 is expected not to change `Todo.count`3574 behaves like does not add a system note3575 is expected not to change `Note.count`3576 when current_user does not have permission to update alerts3577 behaves like error response3578 has an informative message3579 behaves like does not add a todo3580 is expected not to change `Todo.count`3581 behaves like does not add a system note3582 is expected not to change `Note.count`3583 when no parameters are included3584 behaves like error response3585 has an informative message3586 behaves like does not add a todo3587 is expected not to change `Todo.count`3588 behaves like does not add a system note3589 is expected not to change `Note.count`3590 when an error occurs during update3591 behaves like error response3592 has an informative message3593 behaves like does not add a todo3594 is expected not to change `Todo.count`3595 behaves like does not add a system note3596 is expected not to change `Note.count`3597 when a model attribute is included without assignees3598 behaves like title update3599 updates the attribute3600 behaves like does not add a todo3601 is expected not to change `Todo.count`3602 behaves like does not add a system note3603 is expected not to change `Note.count`3604 when alert is resolved and another existing open alert3605 behaves like title update3606 updates the attribute3607 behaves like does not add a todo3608 is expected not to change `Todo.count`3609 behaves like does not add a system note3610 is expected not to change `Note.count`3611 when assignees are included3612 when the assignee is the current user3613 behaves like successful assignment3614 is expected to be success3615 behaves like adds a system note3616 is expected to change `alert.reload.notes.count` by 13617 behaves like adds a todo3618 is expected to eq #<User id:1707 @user1711>3619 when the assignee has read permissions3620 behaves like successful assignment3621 is expected to be success3622 behaves like adds a system note3623 is expected to change `alert.reload.notes.count` by 13624 behaves like adds a todo3625 is expected to eq #<User id:1707 @user1711>3626 when the assignee does not have read permissions3627 behaves like error response3628 has an informative message3629 behaves like does not add a todo3630 is expected not to change `Todo.count`3631 behaves like does not add a system note3632 is expected not to change `Note.count`3633 when user is already assigned3634 behaves like does not add a system note3635 is expected not to change `Note.count`3636 behaves like does not add a todo3637 is expected not to change `Todo.count`3638 with multiple users included3639 behaves like successful assignment3640 is expected to be success3641 behaves like adds a system note3642 is expected to change `alert.reload.notes.count` by 13643 behaves like adds a todo3644 is expected to eq #<User id:1707 @user1711>3645 when a status is included3646 successfully changes the status3647 behaves like adds a system note3648 is expected to change `alert.reload.notes.count` by 13649 with unknown status3650 behaves like error response3651 has an informative message3652 behaves like does not add a todo3653 is expected not to change `Todo.count`3654 behaves like does not add a system note3655 is expected not to change `Note.count`3656 with resolving status3657 changes the status3658 resolves the current user's related todos3659 with an opening status and existing open alert3660 has an informative message3661 behaves like does not add a todo3662 is expected not to change `Todo.count`3663 behaves like does not add a system note3664 is expected not to change `Note.count`3665 fingerprints are blank3666 successfully changes the status3667 behaves like adds a system note3668 is expected to change `alert.reload.notes.count` by 13669 two existing closed alerts3670 successfully changes the status3671 behaves like adds a system note3672 is expected to change `alert.reload.notes.count` by 13673TestReportSummaryEntity3674 #as_json3675 contains the total3676 when summary has test suites3677 contains the test suites3678 contains build_ids3679DiscussionDiffFileEntity3680 when there is no merge request3681 behaves like diff file discussion entity3682 behaves like diff file base entity3683 exposes essential attributes3684 when diff file does not have a blob and content sha3685 exposes some attributes as nil3686 when there is a merge request3687 exposes additional attributes3688 exposes no diff lines3689 behaves like diff file discussion entity3690 behaves like diff file base entity3691 exposes essential attributes3692 when diff file does not have a blob and content sha3693 exposes some attributes as nil3694Gitlab::Ci::Status::Build::Retryable3695 #text3696 does not override status text3697 #icon3698 does not override status icon3699 #label3700 does not override status label3701 #group3702 does not override status group3703 #status_tooltip3704 does not override status status_tooltip3705 #badge_tooltip3706 does return status3707 action details3708 #has_action?3709 when user is allowed to update build3710 is expected to have action3711 when user is not allowed to update build3712 is expected not to have action3713 #action_path3714 is expected to include "237/retry"3715 #action_icon3716 is expected to eq "retry"3717 #action_title3718 is expected to eq "Retry"3719 #action_button_title3720 is expected to eq "Retry this job"3721 .matches?3722 when build is retryable3723 is a correct match3724 when build is not retryable3725 does not match3726Metrics::Dashboard::Annotations::DeleteService3727 .execute3728 with specific environment3729 with anonymous user3730 behaves like prevented annotation deletion3731 returns error response3732 does not change db state3733 with maintainer user3734 behaves like executed annotation deletion3735 returns success response3736 annotation failed to delete3737 returns error response3738 with specific cluster3739 with anonymous user3740 behaves like prevented annotation deletion3741 returns error response3742 does not change db state3743 with maintainer user3744 behaves like executed annotation deletion3745 returns success response3746 with owner user3747 behaves like executed annotation deletion3748 returns success response3749ProjectMemberPolicy3750 with regular member3751 is expected to be allowed :update_project_member3752 is expected to be allowed :destroy_project_member3753 is expected not to be allowed :destroy_project_bot_member3754 with a bot member3755 is expected to be allowed :destroy_project_bot_member3756 is expected not to be allowed :update_project_member3757 is expected not to be allowed :destroy_project_member3758ResourceAccessTokens::CreateService3759 #execute3760 when resource is a project3761 behaves like fails when user does not have the permission to create a Resource Bot3762 returns error3763 behaves like fails when flag is disabled3764 returns nil3765 behaves like fails on gitlab.com3766 returns nil3767 user with valid permission3768 behaves like allows creation of bot with valid params3769 is expected to change `User.count` by 13770 creates resource bot user3771 adds the bot user as a maintainer in the resource3772 email confirmation status3773 when created by an admin3774 behaves like creates a user that has their email confirmed3775 creates a user that has their email confirmed3776 when created by a non-admin3777 behaves like creates a user that has their email confirmed3778 creates a user that has their email confirmed3779 bot name3780 when no value is passed3781 uses default value3782 when user provides value3783 overrides the default value3784 personal access token3785 is expected to change `PersonalAccessToken.count` by 13786 when user does not provide scope3787 has default scopes3788 when user provides scope explicitly3789 overrides the default value3790 expires_at3791 when no value is passed3792 uses default value3793 when user provides value3794 overrides the default value3795 when invalid scope is passed3796 returns error3797 when access provisioning fails3798 returns error3799Gitlab::GitalyClient::ConflictsService3800 #list_conflict_files3801 sends an RPC request3802 #resolve_conflicts3803 sends an RPC request3804 raises a relevant exception if resolution_error is present3805 with branches with UTF-8 characters3806 handles commit messages with UTF-8 characters3807Gitlab::Ci::Config::External::Processor3808 #perform3809 when no external files defined3810 returns the same values3811 when an invalid local file is defined3812 raises an error3813 when an invalid remote file is defined3814 raises an error3815 with a valid remote external file is defined3816 appends the file to the values3817 removes the 'include' keyword3818 with a valid local external file is defined3819 appends the file to the values3820 removes the 'include' keyword3821 with multiple external files are defined3822 appends the files to the values3823 removes the 'include' keyword3824 when external files are defined but not valid3825 raises an error3826 when both external files and values defined the same key3827 takes precedence3828 when a nested includes are defined3829 when project is public3830 properly expands all includes3831 when user is reporter of another project3832 properly expands all includes3833 when user is not allowed3834 raises an error3835 when too many includes is included3836 raises an error3837 when config includes an external configuration file via SSL web request3838 with an acceptable certificate3839 is expected to include {:image => "ruby:2.6"}3840 with a self-signed certificate3841 returns a reportable configuration error3842Projects::HashedStorage::RollbackService3843 #execute3844 attachments rollback3845 delegates rollback to Projects::HashedStorage::RollbackAttachmentsService3846 does not delegate rollback if repository is in legacy storage already3847 rollbacks to legacy storage3848 repository rollback3849 delegates rollback to RollbackRepositoryService3850 does not delegate rollback if repository is in legacy storage already3851 rollbacks to legacy storage3852Gitlab::ObjectHierarchy3853 #base_and_ancestors3854 includes the base rows3855 includes all of the ancestors3856 can find ancestors upto a certain level3857 uses ancestors_base #initialize argument3858 does not allow the use of #update_all3859 hierarchy_order option3860 :asc3861 orders by child to parent3862 :desc3863 orders by parent to child3864 #base_and_descendants3865 includes the base rows3866 includes all the descendants3867 uses descendants_base #initialize argument3868 does not allow the use of #update_all3869 when with_depth is true3870 includes depth in the results3871 #descendants3872 includes only the descendants3873 #max_descendants_depth3874 when base relation is empty3875 is expected to be nil3876 when base has no children3877 is expected to eq 13878 when base has grandchildren3879 is expected to eq 33880 #ancestors3881 includes only the ancestors3882 can find ancestors upto a certain level3883 #all_objects3884 includes the base rows3885 includes the ancestors3886 includes the descendants3887 uses ancestors_base #initialize argument for ancestors3888 uses descendants_base #initialize argument for descendants3889 does not allow the use of #update_all3890Terraform::State3891 is expected to belong to project required:3892 is expected to belong to locked_by_user class_name => User required:3893 is expected to validate that :project_id cannot be empty/falsy3894 #file3895 when a file exists3896 does not use the default file3897 when no file exists3898 creates a default file3899 #file_store3900 when a value is set3901 returns the value3902 #update_file_store3903 when file is stored in object storage3904 behaves like mounted file in object store3905 is stored remotely3906 when file is stored locally3907 behaves like mounted file in local store3908 is stored locally3909SshHostKey3910 .primary_key3911 returns a symbol3912 .find_by3913 accepts a string key3914 accepts a symbol key3915 #fingerprints3916 returns an array of indexed fingerprints when the cache is filled3917 returns an empty array when the cache is empty3918 #fingerprints3919 returns an array of indexed fingerprints when the cache is filled3920 returns an empty array when the cache is empty3921 #host_keys_changed?3922 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", result: true3923 (normal)3924 is expected to eq true3925 (reversed)3926 is expected to eq true3927 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "foo\n", result: true3928 (normal)3929 is expected to eq true3930 (reversed)3931 is expected to eq true3932 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "", result: true3933 (normal)3934 is expected to eq true3935 (reversed)3936 is expected to eq true3937 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: nil, result: true3938 (normal)3939 is expected to eq true3940 (reversed)3941 is expected to eq true3942 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false3943 (normal)3944 is expected to eq false3945 (reversed)3946 is expected to eq false3947 known_hosts_a: "@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nexample.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false3948 (normal)3949 is expected to eq false3950 (reversed)3951 is expected to eq false3952 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", known_hosts_b: "foo\n", result: true3953 (normal)3954 is expected to eq true3955 (reversed)3956 is expected to eq true3957 known_hosts_a: "", known_hosts_b: "", result: false3958 (normal)3959 is expected to eq false3960 (reversed)3961 is expected to eq false3962 known_hosts_a: nil, known_hosts_b: nil, result: false3963 (normal)3964 is expected to eq false3965 (reversed)3966 is expected to eq false3967 known_hosts_a: "", known_hosts_b: nil, result: false3968 (normal)3969 is expected to eq false3970 (reversed)3971 is expected to eq false3972 #calculate_reactive_cache3973 writes the hostname to STDIN3974 successful key scan3975 stores the cleaned known_hosts data3976 failed key scan (exit code 1)3977 returns a generic error3978 failed key scan (exit code 0)3979 returns a generic error3980Gitlab::Conflict::FileCollection3981 #files3982 returns an array of Conflict::Files3983 #cache3984 specifies a custom namespace with the merge request commit ids3985 #can_be_resolved_in_ui?3986 returns true if conflicts for this collection can be resolved in the UI3987 returns false if conflicts for this collection can't be resolved in the UI3988 caches the result3989 #default_commit_message3990 matches the format of the git CLI commit message3991Ci::DailyBuildGroupReportResultService#execute3992 creates daily code coverage record for each job in the pipeline that has coverage value3993 when there are multiple builds with the same group name that report coverage3994 creates daily code coverage record with the average as the value3995 when there is an existing daily code coverage for the matching date, project, ref_path, and group name3996 updates the existing record's coverage value and last_pipeline_id3997 when the ID of the pipeline is older than the last_pipeline_id3998 updates the existing daily code coverage records3999 when pipeline has no builds with coverage4000 does nothing4001TestHooks::SystemService4002 #execute4003 hook with not implemented test4004 returns error message4005 push_events4006 executes hook4007 tag_push_events4008 executes hook4009 repository_update_events4010 executes hook4011 merge_requests_events4012 returns error message if the user does not have any repository with a merge request4013 executes hook4014Gitlab::SlashCommands::Run4015 .available?4016 returns true when builds are enabled for the project4017 returns false when builds are disabled for the project4018 returns false when chatops is not available4019 .allowed?4020 returns true when the user can create a pipeline4021 returns false when the user can not create a pipeline4022 #execute4023 when a pipeline could not be scheduled4024 returns an error4025 when a pipeline could be created but the chat service was not supported4026 returns an error4027 using a valid pipeline4028 schedules the pipeline4029Ci::ArchiveTraceService#execute4030 when job is finished4031 creates an archived trace4032 when trace is already archived4033 ignores an exception4034 does not create an archived trace4035 when job does not have trace4036 leaves a warning message in sidekiq log4037 when job failed to archive trace but did not raise an exception4038 leaves a warning message in sidekiq log4039 when job is running4040 increments Prometheus counter, sends crash report to Sentry and ignore an error for continuing to archive4041shared/notes/_form4042 with a note on issue4043 says that markdown and quick actions are supported4044 with a note on merge_request4045 says that markdown and quick actions are supported4046 with a note on commit4047 says that markdown and quick actions are supported4048Projects::MoveNotificationSettingsService4049 #execute4050 does not move existent notification settings in the current project4051 with notification settings4052 moves the user's notification settings from one project to another4053 rollbacks changes if transaction fails4054 when remove_remaining_elements is false4055 does not remove remaining notification settings4056Gitlab::GitlabImport::ProjectCreator4057 creates project4058IssueTrackerService4059 Validations4060 only one issue tracker per project4061 when service is changed manually by user4062 executes the validation4063 when service is changed internally4064 does not execute the validation4065LegacyDiffDiscussion4066 #reply_attributes4067 includes line_code4068 #merge_request_version_params4069 when the discussion is active4070 returns an empty hash, which will end up showing the latest version4071 when the discussion is outdated4072 returns nil4073Sentry::Client::Issue4074 #list_issues4075 behaves like calls sentry api4076 calls sentry api4077 behaves like issues have correct return type4078 returns objects of type Gitlab::ErrorTracking::Error4079 behaves like issues have correct length4080 is expected to eq 34081 when response has a pagination info4082 parses the pagination4083 error object created from sentry response4084 error_object: :id, sentry_response: :id4085 is expected to eq "11"4086 error_object: :first_seen, sentry_response: :firstSeen4087 is expected to eq "2018-12-17T12:00:14Z"4088 error_object: :last_seen, sentry_response: :lastSeen4089 is expected to eq "2018-12-31T12:00:11Z"4090 error_object: :title, sentry_response: :title4091 is expected to eq "gaierror: [Errno -2] Name or service not known"4092 error_object: :type, sentry_response: :type4093 is expected to eq "error"4094 error_object: :user_count, sentry_response: :userCount4095 is expected to eq 04096 error_object: :count, sentry_response: :count4097 is expected to eq "21"4098 error_object: :message, sentry_response: [:metadata, :value]4099 is expected to eq "[Errno -2] Name or service not known"4100 error_object: :culprit, sentry_response: :culprit4101 is expected to eq "sentry.tasks.reports.deliver_organization_user_report"4102 error_object: :short_id, sentry_response: :shortId4103 is expected to eq "INTERNAL-4"4104 error_object: :status, sentry_response: :status4105 is expected to eq "unresolved"4106 error_object: :frequency, sentry_response: [:stats, "24h"]4107 is expected to eq [[1546437600, 0]]4108 error_object: :project_id, sentry_response: [:project, :id]4109 is expected to eq "1"4110 error_object: :project_name, sentry_response: [:project, :name]4111 is expected to eq "Internal"4112 error_object: :project_slug, sentry_response: [:project, :slug]4113 is expected to eq "internal"4114 behaves like has correct external_url4115 external_url4116 is constructed correctly4117 redirects4118 behaves like no Sentry redirects4119 does not follow redirects4120 requests with sort parameter in sentry api4121 calls the sentry api with sort params4122 with invalid sort params4123 throws an error4124 Older sentry versions where keys are not present4125 behaves like calls sentry api4126 calls sentry api4127 behaves like issues have correct return type4128 returns objects of type Gitlab::ErrorTracking::Error4129 behaves like issues have correct length4130 is expected to eq 14131 behaves like has correct external_url4132 external_url4133 is constructed correctly4134 essential keys missing in API response4135 raises exception4136 sentry api response too large4137 raises exception4138 behaves like maps Sentry exceptions4139 HTTParty::Error4140 is expected to raise Sentry::Client::Error with "Error when connecting to Sentry"4141 Net::OpenTimeout4142 is expected to raise Sentry::Client::Error with "Connection to Sentry timed out"4143 SocketError4144 is expected to raise Sentry::Client::Error with "Received SocketError when trying to connect to Sentry"4145 OpenSSL::SSL::SSLError4146 is expected to raise Sentry::Client::Error with "Sentry returned invalid SSL data"4147 Errno::ECONNREFUSED4148 is expected to raise Sentry::Client::Error with "Connection refused"4149 StandardError4150 is expected to raise Sentry::Client::Error with "Sentry request failed due to StandardError"4151 when search term is present4152 behaves like calls sentry api4153 calls sentry api4154 behaves like issues have correct return type4155 returns objects of type Gitlab::ErrorTracking::Error4156 behaves like issues have correct length4157 is expected to eq 34158 when cursor is present4159 behaves like calls sentry api4160 calls sentry api4161 behaves like issues have correct return type4162 returns objects of type Gitlab::ErrorTracking::Error4163 behaves like issues have correct length4164 is expected to eq 34165 #issue_details4166 error object created from sentry response4167 has a correct external URL4168 issue has a correct external base url4169 has a correct GitLab issue url4170 has the correct tags4171 error_object: :id, sentry_response: :id4172 is expected to eq "11"4173 error_object: :first_seen, sentry_response: :firstSeen4174 is expected to eq "2018-11-06T21:19:55Z"4175 error_object: :last_seen, sentry_response: :lastSeen4176 is expected to eq "2018-11-06T21:19:55Z"4177 error_object: :title, sentry_response: :title4178 is expected to eq "This is an example Python exception"4179 error_object: :type, sentry_response: :type4180 is expected to eq "default"4181 error_object: :user_count, sentry_response: :userCount4182 is expected to eq 04183 error_object: :count, sentry_response: :count4184 is expected to eq "1"4185 error_object: :message, sentry_response: [:metadata, :value]4186 is expected to eq nil4187 error_object: :culprit, sentry_response: :culprit4188 is expected to eq "raven.scripts.runner in main"4189 error_object: :short_id, sentry_response: :shortId4190 is expected to eq "PUMP-STATION-1"4191 error_object: :status, sentry_response: :status4192 is expected to eq "unresolved"4193 error_object: :frequency, sentry_response: [:stats, "24h"]4194 is expected to eq [[1541451600.0, 557], [1541455200.0, 473], [1541458800.0, 914], [1541462400.0, 991], [1541466000.0, 9...1523600.0, 111], [1541527200.0, 926], [1541530800.0, 772], [1541534400.0, 400], [1541538000.0, 943]]4195 error_object: :project_id, sentry_response: [:project, :id]4196 is expected to eq "2"4197 error_object: :project_name, sentry_response: [:project, :name]4198 is expected to eq "Pump Station"4199 error_object: :project_slug, sentry_response: [:project, :slug]4200 is expected to eq "pump-station"4201 error_object: :first_release_last_commit, sentry_response: [:firstRelease, :lastCommit]4202 is expected to eq nil4203 error_object: :last_release_last_commit, sentry_response: [:lastRelease, :lastCommit]4204 is expected to eq {}4205 error_object: :first_release_short_version, sentry_response: [:firstRelease, :shortVersion]4206 is expected to eq "1764232"4207 error_object: :last_release_short_version, sentry_response: [:lastRelease, :shortVersion]4208 is expected to eq "27de6b42eb4"4209 error_object: :first_release_version, sentry_response: [:firstRelease, :version]4210 is expected to eq "17642328ead24b51867165985996d04b29310337"4211 error_object: :last_release_version, sentry_response: [:lastRelease, :version]4212 is expected to eq "17642328ead24b51867165985996d04b29321448"4213 when issue annotations exist4214 has a correct GitLab issue url4215 when no GitLab issue is linked4216 does not find a GitLab issue4217 #update_issue4218 returns a truthy result4219 behaves like calls sentry api4220 calls sentry api4221 error encountered4222 raises the error4223projects/buttons/_dropdown4224 user with all abilities4225 empty repository4226 has a link to create a new file4227 does not have a link to create a new branch4228 does not have a link to create a new tag4229search/_results4230 displays the page size4231 when search results do not have a count4232 does not display the page size4233Gitlab::Ci::CronParser4234 #next_time_from4235 behaves like when cron and cron_timezone are valid4236 when specific time4237 returns exact time4238 behaves like returns time in the future4239 is expected to be > 2020-08-25 15:52:20 +00004240 when specific day of week4241 returns exact day of week4242 behaves like returns time in the future4243 is expected to be > 2020-08-25 15:52:20 +00004244 when slash used4245 returns specific time4246 behaves like returns time in the future4247 is expected to be > 2020-08-25 15:52:21 +00004248 when range used4249 returns specific time4250 behaves like returns time in the future4251 is expected to be > 2020-08-25 15:52:21 +00004252 when cron_timezone is TZInfo format4253 when cron_timezone is US/Pacific4254 behaves like returns time in the future4255 is expected to be > 2020-08-25 15:52:21 +00004256 when PST (Pacific Standard Time)4257 converts time in server time zone4258 when PDT (Pacific Daylight Time)4259 converts time in server time zone4260 when cron_timezone is ActiveSupport::TimeZone format4261 when cron_timezone is Berlin4262 behaves like returns time in the future4263 is expected to be > 2020-08-25 15:52:21 +00004264 when CET (Central European Time)4265 converts time in server time zone4266 when CEST (Central European Summer Time)4267 converts time in server time zone4268 behaves like when cron_timezone is Eastern Time (US & Canada)4269 behaves like returns time in the future4270 is expected to be > 2020-08-25 15:52:22 +00004271 when EST (Eastern Standard Time)4272 converts time in server time zone4273 when EDT (Eastern Daylight Time)4274 converts time in server time zone4275 when time crosses a Daylight Savings boundary4276 generates day without TZInfo::AmbiguousTime error4277 behaves like when cron and cron_timezone are invalid4278 is expected to be nil4279 behaves like when cron syntax is quoted4280 is expected to be nil4281 behaves like when cron syntax is rufus-scheduler syntax4282 is expected to be nil4283 behaves like when cron is scheduled to a non existent day4284 is expected to be nil4285 #previous_time_from4286 behaves like when cron and cron_timezone are valid4287 when specific time4288 returns exact time4289 behaves like returns time in the past4290 is expected to be < 2020-08-25 15:52:24 +00004291 when specific day of week4292 returns exact day of week4293 behaves like returns time in the past4294 is expected to be < 2020-08-25 15:52:24 +00004295 when slash used4296 returns specific time4297 behaves like returns time in the past4298 is expected to be < 2020-08-25 15:52:24 +00004299 when range used4300 returns specific time4301 behaves like returns time in the past4302 is expected to be < 2020-08-25 15:52:25 +00004303 when cron_timezone is TZInfo format4304 when cron_timezone is US/Pacific4305 behaves like returns time in the past4306 is expected to be < 2020-08-25 15:52:25 +00004307 when PST (Pacific Standard Time)4308 converts time in server time zone4309 when PDT (Pacific Daylight Time)4310 converts time in server time zone4311 when cron_timezone is ActiveSupport::TimeZone format4312 when cron_timezone is Berlin4313 behaves like returns time in the past4314 is expected to be < 2020-08-25 15:52:25 +00004315 when CET (Central European Time)4316 converts time in server time zone4317 when CEST (Central European Summer Time)4318 converts time in server time zone4319 behaves like when cron_timezone is Eastern Time (US & Canada)4320 behaves like returns time in the past4321 is expected to be < 2020-08-25 15:52:26 +00004322 when EST (Eastern Standard Time)4323 converts time in server time zone4324 when EDT (Eastern Daylight Time)4325 converts time in server time zone4326 when time crosses a Daylight Savings boundary4327 generates day without TZInfo::AmbiguousTime error4328 behaves like when cron and cron_timezone are invalid4329 is expected to be nil4330 behaves like when cron syntax is quoted4331 is expected to be nil4332 behaves like when cron syntax is rufus-scheduler syntax4333 is expected to be nil4334 behaves like when cron is scheduled to a non existent day4335 is expected to be nil4336 #cron_valid?4337 when cron is valid4338 is expected to eq true4339 when cron is invalid4340 is expected to eq false4341 when cron syntax is quoted4342 is expected to eq false4343 #cron_timezone_valid?4344 when cron is valid4345 is expected to eq true4346 when cron is invalid4347 is expected to eq false4348 when cron_timezone is ActiveSupport::TimeZone format4349 is expected to eq true4350Mutations::Issues::SetConfidential4351 is expected to require graphql authorizations :update_issue4352 #resolve4353 raises an error if the resource is not accessible to the user4354 when the user can update the issue4355 returns the issue as confidential4356 when passing confidential as false4357 updates the issue confidentiality to false4358ProtectedBranchesFinder4359 #execute4360 returns all protected branches of project by default4361 when search param is present4362 filters by search param4363 when there are more protected branches than the limit4364 returns limited protected branches of project4365mail_room.yml4366 when incoming email is disabled4367 contains no configuration4368 when both incoming email and service desk email are enabled4369 contains the intended configuration4370Projects::HashedStorage::BaseAttachmentService4371 #old_disk_path4372 is expected to respond to #old_disk_path4373 #new_disk_path4374 is expected to respond to #new_disk_path4375 #skipped?4376 is expected to respond to #skipped?4377 #target_path_discardable?4378 returns false4379 #discard_path!4380 renames target path adding a timestamp at the end4381 #move_folder!4382 when old_path is not a directory4383 adds information to the logger and returns true4384ChatMessage::DeploymentMessage4385 #pretext4386 returns a message with the data returned by the deployment data builder4387 returns a message for a successful deployment4388 returns a message for a failed deployment4389 returns a message for a canceled deployment4390 returns a message for a deployment to another environment4391 returns a message for a deployment with any other status4392 #attachments4393 returns attachments with the data returned by the deployment data builder4394 returns attachments for a failed deployment4395 returns attachments for a canceled deployment4396 uses a neutral color for a deployment with any other status4397DesignManagement::DesignPolicy4398 when DesignManagement is not enabled4399 behaves like design abilities not available4400 for owners4401 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4402 for admins4403 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4404 for maintainers4405 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4406 for developers4407 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4408 for reporters4409 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4410 for guests4411 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4412 for anonymous users4413 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4414 when the feature is available4415 behaves like design abilities available for members4416 for owners4417 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4418 for admins4419 when admin mode enabled4420 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4421 when admin mode disabled4422 is expected to be allowed :read_design4423 is expected to be disallowed :create_design, :destroy_design, and :move_design4424 for maintainers4425 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4426 for developers4427 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4428 for reporters4429 is expected to be allowed :read_design4430 is expected to be disallowed :create_design, :destroy_design, and :move_design4431 when reorder_designs is not enabled4432 is expected to be allowed :create_design and :destroy_design4433 is expected to be disallowed :move_design4434 for guests in private projects4435 is expected to be allowed :read_design4436 is expected to be disallowed :create_design, :destroy_design, and :move_design4437 for anonymous users in public projects4438 is expected to be allowed :read_design4439 is expected to be disallowed :create_design, :destroy_design, and :move_design4440 when the issue is confidential4441 behaves like design abilities available for members4442 for owners4443 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4444 for admins4445 when admin mode enabled4446 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4447 when admin mode disabled4448 is expected to be allowed :read_design4449 is expected to be disallowed :create_design, :destroy_design, and :move_design4450 for maintainers4451 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4452 for developers4453 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design4454 for reporters4455 is expected to be allowed :read_design4456 is expected to be disallowed :create_design, :destroy_design, and :move_design4457 for guests4458 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4459 for anonymous users4460 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design4461 when the issue is locked4462 behaves like read-only design abilities4463 is expected to be allowed :read_design4464 is expected to be disallowed :create_design and :destroy_design4465 when the issue has moved4466 behaves like read-only design abilities4467 is expected to be allowed :read_design4468 is expected to be disallowed :create_design and :destroy_design4469 when the project is archived4470 behaves like read-only design abilities4471 is expected to be allowed :read_design4472 is expected to be disallowed :create_design and :destroy_design4473Notes::ResolveService4474 #execute4475 resolves the note4476 sends notifications if all discussions are resolved4477Groups::AutoDevopsService#execute4478 when user does not have enough privileges4479 raises exception4480 when user has enough privileges4481 updates group auto devops enabled accordingly4482 when group has projects4483 reflects changes on projects4484 when group has subgroups4485 reflects changes on subgroups4486 when subgroups have projects4487 reflects changes on projects4488AccessRequestable4489 Group4490 #request_access4491 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...e_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean)4492 is expected to eq #<User id:1972 @user1964>4493 #access_requested?4494 is expected to be truthy4495 Project4496 #request_access4497 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...e_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean)4498 #access_requested?4499 is expected to be truthy4500Boards::VisitsFinder4501 #latest4502 when a project board4503 returns nil when there is no user4504 queries for most recent visit4505 queries for last N visits4506 when a group board4507 returns nil when there is no user4508 queries for most recent visit4509 queries for last N visits4510Ci::PipelineSchedulePolicy4511 rules4512 rules for protected ref4513 when no one can push or merge to the branch4514 does not include ability to play pipeline schedule4515 when developers can push to the branch4516 includes ability to update pipeline4517 when no one can create the tag4518 does not include ability to play pipeline schedule4519 when no one can create the tag but it is not a tag4520 includes ability to play pipeline schedule4521 rules for owner of schedule4522 includes abilities to do all operations on pipeline schedule4523 rules for a maintainer4524 includes abilities to do all operations on pipeline schedule4525 rules for non-owner of schedule4526 includes abilities to take ownership4527Unicorn4528I, [2020-08-25T15:53:01.490Z #20042] INFO -- : Refreshing Gem list4529I, [2020-08-25T15:53:01.495Z #20042] INFO -- : listening on addr=/builds/gitlab-org/gitlab/tmp/tests/unicorn.socket fd=74530I, [2020-08-25T15:53:01.496Z #20042] INFO -- : master process ready4531I, [2020-08-25T15:53:01.497Z #20043] INFO -- : worker=0 ready4532I, [2020-08-25T15:53:01.843Z #20042] INFO -- : reaped #<Process::Status: pid 20043 exit 0> worker=04533I, [2020-08-25T15:53:01.845Z #20044] INFO -- : worker=0 ready4534 has a worker that self-terminates on signal SIGQUIT4535I, [2020-08-25T15:53:03.237Z #20042] INFO -- : reaped #<Process::Status: pid 20044 exit 0> worker=04536I, [2020-08-25T15:53:03.239Z #20048] INFO -- : worker=0 ready4537 has a worker that self-terminates on signal SIGTERM4538E, [2020-08-25T15:53:03.385Z #20042] ERROR -- : reaped #<Process::Status: pid 20048 SIGKILL (signal 9)> worker=04539I, [2020-08-25T15:53:03.388Z #20052] INFO -- : worker=0 ready4540 has a worker that self-terminates on signal SIGKILL4541CampfireService4542 Associations4543I, [2020-08-25T15:53:03.934Z #20042] INFO -- : reaped #<Process::Status: pid 20052 exit 0> worker=04544I, [2020-08-25T15:53:03.934Z #20042] INFO -- : master complete4545 is expected to belong to project required:4546 is expected to have one service_hook4547 Validations4548 when service is active4549 is expected to validate that :token cannot be empty/falsy4550 when service is inactive4551 is expected not to validate that :token cannot be empty/falsy4552 #execute4553 calls Campfire API to get a list of rooms and speak in a room4554 calls Campfire API to get a list of rooms but shouldn't speak in a room4555ProjectAuthorization4556 .insert_authorizations4557 inserts the authorizations4558 inserts rows in batches4559AlertManagement::AlertAssignee4560 associations4561 is expected to belong to alert required:4562 is expected to belong to assignee required:4563 validations4564 is expected to validate that :alert cannot be empty/falsy4565 is expected to validate that :assignee cannot be empty/falsy4566 is expected to validate that :assignee is case-sensitively unique within the scope of :alert_id4567Evidences::MilestoneEntity4568 exposes the expected fields4569 when there are issues linked to this milestone4570 exposes these issues4571 when the release has no milestone4572 exposes an empty array for milestones4573Gitlab::DatabaseImporters::CommonMetrics::Importer4574 does import common_metrics.yml4575 has the same amount of groups4576 has the same amount of panels4577 has the same amount of metrics4578 does not have duplicate IDs4579 imports all IDs4580 does import common_metrics.yml4581 when executed from outside of the Rails.root4582 does import properly all fields4583 if ID is missing4584 raises exception4585 for existing common metric with different ID4586 behaves like stores metric4587 with all data4588 and existing metric is not changed4589 when metric with ID exists4590 behaves like stores metric4591 with all data4592 and existing metric is changed4593Gitlab::Ci::Status::Build::Canceled4594 #illustration4595 is expected to include :image, :size, and :title4596 .matches?4597 when build is canceled4598 is a correct match4599 when build is not canceled4600 does not match4601Banzai::ReferenceParser::MentionedGroupParser4602 #gather_references4603 when the link has a data-group attribute4604 using an existing group ID where user does not have access4605 returns empty array4606 using an existing group ID4607 returns groups4608 using a non-existing group ID4609 returns an empty Array4610SystemCheck::Orphans::RepositoryCheck4611 #multi_check4612 all orphans4613 prints list of all orphaned namespaces except @hashed4614 few orphans with existing namespace4615 prints list of orphaned namespaces4616 few orphans with existing namespace and parents with same name as orphans4617 prints list of orphaned namespaces ignoring parents with same namespace as orphans4618 no orphans4619 prints an empty list ignoring @hashed4620Grafana::Client4621 #get_dashboard4622 behaves like calls grafana api4623 calls grafana api4624 behaves like no redirects4625 does not follow redirects4626 behaves like handles exceptions4627 HTTParty::Error4628 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4629 Net::OpenTimeout4630 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4631 SocketError4632 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4633 OpenSSL::SSL::SSLError4634 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4635 Errno::ECONNREFUSED4636 is expected to raise Grafana::Client::Error with "Connection refused"4637 StandardError4638 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4639 #get_datasource4640 behaves like calls grafana api4641 calls grafana api4642 behaves like no redirects4643 does not follow redirects4644 behaves like handles exceptions4645 HTTParty::Error4646 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4647 Net::OpenTimeout4648 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4649 SocketError4650 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4651 OpenSSL::SSL::SSLError4652 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4653 Errno::ECONNREFUSED4654 is expected to raise Grafana::Client::Error with "Connection refused"4655 StandardError4656 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4657 #proxy_datasource4658 behaves like calls grafana api4659 calls grafana api4660 behaves like no redirects4661 does not follow redirects4662 behaves like handles exceptions4663 HTTParty::Error4664 is expected to raise Grafana::Client::Error with "Error when connecting to Grafana"4665 Net::OpenTimeout4666 is expected to raise Grafana::Client::Error with "Connection to Grafana timed out"4667 SocketError4668 is expected to raise Grafana::Client::Error with "Received SocketError when trying to connect to Grafana"4669 OpenSSL::SSL::SSLError4670 is expected to raise Grafana::Client::Error with "Grafana returned invalid SSL data"4671 Errno::ECONNREFUSED4672 is expected to raise Grafana::Client::Error with "Connection refused"4673 StandardError4674 is expected to raise Grafana::Client::Error with "Grafana request failed due to StandardError"4675Ci::BuildReportResultService4676 #execute4677 when build is finished4678 creates a build report result entry4679 when data has already been persisted4680 raises an error and do not persist the same data twice4681 when build is running and test report does not exist4682 does not persist data4683Ci::CreatePipelineService4684 .pre/.post stages4685 when pipeline contains a build except .pre/.post4686 creates a pipeline4687 when pipeline does not contain any other build except .pre/.post4688 does not create a pipeline4689Groups::GroupLinks::UpdateService#execute4690 updates existing link4691 updates project permissions4692 executes UserProjectAccessChangedService4693 with only param not requiring authorization refresh4694 does not execute UserProjectAccessChangedService4695Projects::MoveUsersStarProjectsService4696 #execute4697 moves the user's stars from one project to another4698 rollbacks changes if transaction fails4699ProjectDestroyWorker4700 #perform4701 deletes the project4702 does not raise error when project could not be found4703 does not raise error when user could not be found4704Projects::Prometheus::AlertPresenter4705 #project_full_path4706 is expected to eq "namespace1246/project1355"4707 #start_time4708 with valid utc datetime4709 is expected to eq "31 October 2020, 2:02PM (UTC)"4710 with admin time zone not UTC4711 is expected to eq "31 October 2020, 2:02PM (UTC)"4712 with invalid datetime4713 is expected to be nil4714 #issue_summary_markdown4715 without default payload4716 is expected to eq "#### Summary\n\n**Start time:** 25 August 2020, 3:53PM (UTC)\n"4717 with annotations4718 is expected to eq "#### Summary\n\n**Start time:** 25 August 2020, 3:53PM (UTC)\n\n#### Alert Details\n\n**foo:** value1 \n**bar:** value2"4719 with full query4720 is expected to eq "#### Summary\n\n**Start time:** 25 August 2020, 3:53PM (UTC) \n**full_query:** `query`\n"4721 with the Generic Alert parameters4722 is expected to eq "#### Summary\n\n**Start time:** 25 August 2020, 3:53PM (UTC) \n**Service:** service_name \n**Monit...:3000 http://localhost:3001\n\n#### Alert Details\n\n**description:** The Generic Alert Description"4723 when hosts is a string4724 is expected to eq "#### Summary\n\n**Start time:** 25 August 2020, 3:53PM (UTC) \n**Hosts:** http://localhost:3000\n"4725 with embedded metrics4726 for gitlab-managed prometheus alerts4727 behaves like markdown with metrics embed4728 without a starting time available4729 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...hboard?embedded=true&end=2018-03-12T09%3A36%3A00Z&environment_id=54&start=2018-03-12T08%3A36%3A00Z)"4730 with a starting time available4731 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...hboard?embedded=true&end=2018-03-12T09%3A36%3A00Z&environment_id=54&start=2018-03-12T08%3A36%3A00Z)"4732 for alerts from a self-managed prometheus4733 behaves like markdown with metrics embed4734 without a starting time available4735 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...%22%7D%5D%7D%5D%7D%5D%7D&embedded=true&end=2018-03-12T09%3A36%3A00Z&start=2018-03-12T08%3A36%3A00Z)"4736 with a starting time available4737 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...%22%7D%5D%7D%5D%7D%5D%7D&embedded=true&end=2018-03-12T09%3A36%3A00Z&start=2018-03-12T08%3A36%3A00Z)"4738 without y_label4739 behaves like markdown with metrics embed4740 without a starting time available4741 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...%22%7D%5D%7D%5D%7D%5D%7D&embedded=true&end=2018-03-12T09%3A36%3A00Z&start=2018-03-12T08%3A36%3A00Z)"4742 with a starting time available4743 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n...%22%7D%5D%7D%5D%7D%5D%7D&embedded=true&end=2018-03-12T09%3A36%3A00Z&start=2018-03-12T08%3A36%3A00Z)"4744 when not enough information is present for an embed4745 without title4746 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n"4747 without environment4748 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC) \n**full_query:** `avg(metric) > 1.0`\n"4749 without full_query4750 is expected to eq "#### Summary\n\n**Start time:** 12 March 2018, 9:06AM (UTC)\n"4751 #show_performance_dashboard_link?4752 is expected to be falsey4753 with gitlab alert4754 is expected to eq true4755 #show_incident_issues_link?4756 is expected to be falsey4757 create issue setting enabled4758 is expected to eq true4759 #details_url4760 is expected to eq nil4761 alert management alert present4762 is expected to eq "http://localhost/namespace1246/project1355/-/alert_management/1/details"4763 with gitlab alert4764 #full_title4765 is expected to eq "environment43: title > 1.0 for 5 minutes"4766 #metric_query4767 is expected to eq "avg(metric) > 1.0"4768 #environment_name4769 is expected to eq "environment45"4770 #performance_dashboard_link4771 is expected to eq "http://localhost/namespace1246/project1355/-/environments/60/metrics"4772 #incident_issues_link4773 is expected to eq "http://localhost/namespace1246/project1355/-/issues?label_name=incident"4774 without gitlab alert4775 #full_title4776 with title4777 is expected to eq "some title"4778 without title4779 is expected to eq ""4780 #metric_query4781 is expected to be nil4782 #environment_name4783 is expected to be nil4784 #performance_dashboard_link4785 is expected to eq "http://localhost/namespace1246/project1355/-/environments/metrics"4786 #metrics_dashboard_url4787 for a non-prometheus alert4788 is expected to be nil4789 for a self-managed prometheus alert4790 is expected to eq "http://localhost/namespace1246/project1355/-/environments/62/metrics_dashboard?embed_json=%7B%22pane...0%22%7D%5D%7D%5D%7D%5D%7D&embedded=true&end=2018-03-12T09%3A36%3A00Z&start=2018-03-12T08%3A36%3A00Z"4791 for a gitlab-managed prometheus alert4792 is expected to eq "http://localhost/namespace1246/project1355/prometheus/alerts/146/metrics_dashboard?embedded=true&end=2018-03-12T09%3A36%3A00Z&environment_id=63&start=2018-03-12T08%3A36%3A00Z"4793Projects::ExportJobFinder4794 #execute4795 when queried for a project4796 scopes to the project4797 when queried by job id4798 filters records4799 when queried by status4800 filters records4801 when queried by invalid status4802 raises exception4803Gitlab::LegacyGithubImport::ReleaseFormatter4804 #attributes4805 returns formatted attributes4806 with a nil published_at date4807 inserts a timestamp for released_at4808 #valid4809 when release is not a draft4810 returns true4811 when release is draft4812 returns false4813Gitlab::ImportExport4814 export filename4815 contains the project path4816 contains the namespace path4817 does not go over a certain length4818 #snippet_repo_bundle_filename_for4819 generates the snippet bundle name4820Gitlab::Graphql::Loaders::BatchModelLoader4821 #find4822 finds a model by id4823 only queries once per model4824Gitlab::Git::AttributesAtRefParser4825 loads .gitattributes blob4826 handles missing blobs4827 #attributes4828 returns the attributes as a Hash4829Banzai::Filter::CommitTrailersFilter4830 detects4831 trailers in the form of *-by and replace users with links4832 trailers prefixed with whitespaces4833 GitLab users via a secondary email4834 multiple trailers in the same message4835 non GitLab users4836 when Gravatar is disabled4837 behaves like mailto links4838 replaces them with mailto links4839 when Gravatar is enabled4840 behaves like mailto links4841 replaces them with mailto links4842 special names4843 name: "John S. Doe"4844 is expected to match "qui\\-by:\\ John\\ S\\.\\ Doe\\ <gaston_trantow@schowalter\\.ca>"4845 name: "L33t H@x0r"4846 is expected to match "sint\\-by:\\ L33t\\ H@x0r\\ <waylon_hartmann@boganspencer\\.biz>"4847 ignores4848 commit messages without trailers4849 trailers that are inline the commit message body4850 structure4851 preserves the commit trailer structure4852 preserves the original name used in the commit message4853 preserves the original email used in the commit message4854 only replaces trailer lines not the full commit message4855 with Gitlab-hosted avatars in commit trailers4856 returns a full path for avatar urls4857MergeRequestUserEntity4858 as json4859 exposes needed attributes4860Gitlab::Utils::Override4861 #override4862 when instance is klass.new(0)4863 when STATIC_VERIFICATION is set4864 when subject is a class4865 behaves like checking as intended4866 checks ok for overriding method4867 checks ok for overriding method using negative arity4868 raises NotImplementedError when it is not overriding anything4869 raises NotImplementedError when overriding a method with different arity4870 when subject is a module, and class is prepending it4871 behaves like checking as intended4872 checks ok for overriding method4873 checks ok for overriding method using negative arity4874 raises NotImplementedError when it is not overriding anything4875 raises NotImplementedError when overriding a method with different arity4876 when subject is a module, and class is including it4877 behaves like checking as intended, nothing was overridden4878 raises NotImplementedError because it is not overriding it4879 raises NotImplementedError when it is not overriding anything4880 when STATIC_VERIFICATION is not set4881 when subject is a class4882 behaves like nothing happened4883 does not complain when it is overriding something4884 does not complain when it is not overriding anything4885 when subject is a module, and class is prepending it4886 behaves like nothing happened4887 does not complain when it is overriding something4888 does not complain when it is not overriding anything4889 when subject is a module, and class is including it4890 does not complain when it is overriding something4891 does not complain when it is not overriding anything4892 when instance is klass4893 when STATIC_VERIFICATION is set4894 when subject is a module, and class is prepending it4895 behaves like checking as intended4896 checks ok for overriding method4897 checks ok for overriding method using negative arity4898 raises NotImplementedError when it is not overriding anything4899 raises NotImplementedError when overriding a method with different arity4900 when subject is a module, and class is extending it4901 behaves like checking as intended, nothing was overridden4902 raises NotImplementedError because it is not overriding it4903 raises NotImplementedError when it is not overriding anything4904Events::RenderService4905 #execute4906 when the request format is atom4907 renders the note inside events4908 when the request format is not atom4909 renders the note inside events4910Approval4911 presence validation4912 is expected to validate that :merge_request_id cannot be empty/falsy4913 is expected to validate that :user_id cannot be empty/falsy4914 uniqueness validation4915 is expected to validate that :user_id is case-sensitively unique within the scope of :merge_request_id4916Gitlab::Serializer::Pagination4917 #paginate4918 when a multiple resources are present in relation4919 correctly paginates the resource4920 appends relevant headers4921 when an invalid resource is about to be paginated4922 raises error4923Branches::DivergingCommitCountsService4924 #call4925 returns the commit counts behind and ahead of default branch4926 calls diverging_commit_count without max count4927Resolvers::AlertManagement::AlertResolver4928 user does not have permission4929 is expected to eq #<ActiveRecord::Relation []>4930 user has permission4931 is expected to contain exactly #<AlertManagement::Alert id: 19, created_at: "2020-08-25 15:54:02", updated_at: "2020-08-25 15:54:02"...e: nil, monitoring_tool: nil, hosts: [], payload: {}, prometheus_alert_id: nil, environment_id: nil> and #<AlertManagement::Alert id: 20, created_at: "2020-08-25 15:54:02", updated_at: "2020-08-25 15:54:02"...e: nil, monitoring_tool: nil, hosts: [], payload: {}, prometheus_alert_id: nil, environment_id: nil>4932 finding by iid4933 is expected to contain exactly #<AlertManagement::Alert id: 19, created_at: "2020-08-25 15:54:02", updated_at: "2020-08-25 15:54:02"...e: nil, monitoring_tool: nil, hosts: [], payload: {}, prometheus_alert_id: nil, environment_id: nil>4934 finding by status4935 is expected to contain exactly #<AlertManagement::Alert id: 20, created_at: "2020-08-25 15:54:02", updated_at: "2020-08-25 15:54:02"...e: nil, monitoring_tool: nil, hosts: [], payload: {}, prometheus_alert_id: nil, environment_id: nil>4936 sorting4937 when sorting by events count4938 sorts alerts ascending4939 sorts alerts descending4940Users::UpdateHighestMemberRoleService4941 #execute4942 when user_highest_role already exists4943 when the current highest access level equals the already stored highest access level4944 does not update the highest access level4945 when the current highest access level does not equal the already stored highest access level4946 updates the highest access level4947 when user_highest_role does not exist4948 creates an user_highest_role object to store the highest access level4949ObjectPool::DestroyWorker4950 #perform4951 when no pool is in the database4952 doesn't raise an error4953 when a pool is present4954 requests Gitaly to remove the object pool4955 destroys the pool4956Gitlab::GithubImport::Stage::FinishImportWorker4957 #perform4958 marks the import as finished4959 #report_import_time4960 reports the total import time4961Gitlab::DependencyLinker::GemspecLinker4962 .support?4963 supports *.gemspec4964 does not support other files4965 #link4966 does not link the gem name4967 links the license4968 links the homepage4969 links dependencies4970projects/blob/_viewer.html.haml4971 when the viewer is loaded asynchronously4972 when there is no render error4973 adds a URL to the blob viewer element4974 renders the loading indicator4975 when there is a render error4976 renders the error4977 when the viewer is loaded synchronously4978 when there is no render error4979 prepares the viewer4980 renders the viewer4981 when there is a render error4982 renders the error4983ImportExportUpload4984 import4985 behaves like stores the Import/Export file4986 stores the import file4987 export4988 behaves like stores the Import/Export file4989 stores the import file4990Packages::Maven::Metadatum4991 relationships4992 is expected to belong to package required:4993 validations4994 is expected to validate that :package cannot be empty/falsy4995 #app_name4996 is expected to allow :app_name to be ‹"my-app"›4997 is expected not to allow :app_name to be ‹"my/app"›4998 is expected not to allow :app_name to be ‹"my(app)"›4999 #app_group5000 is expected to allow :app_group to be ‹"my.domain.com"›5001 is expected not to allow :app_group to be ‹"my/domain/com"›5002 is expected not to allow :app_group to be ‹"my(domain)"›5003 #path5004 is expected to allow :path to be ‹"my/domain/com/my-app"›5005 is expected to allow :path to be ‹"my/domain/com/my-app/1.0-SNAPSHOT"›5006 is expected not to allow :path to be ‹"my(domain)com.my-app"›5007 #maven_package_type5008 will not allow a package with a different package_type5009Gitlab::Middleware::Multipart5010 rejects headers signed with the wrong secret5011 rejects headers signed with the wrong issuer5012 allows files in uploads/tmp directory5013 allows files in the job artifact upload path5014 allows files in the lfs upload path5015 allows symlinks for uploads dir5016 with invalid rewritten field5017 rejects invalid rewritten field name [file]5018 rejects invalid rewritten field name ;file5019 rejects invalid rewritten field name file]5020 rejects invalid rewritten field name ;file]5021 rejects invalid rewritten field name file]]5022 rejects invalid rewritten field name file;;5023 with remote file5024 behaves like multipart upload files5025 opens top-level files5026 opens files one level deep5027 opens files two levels deep5028 with remote file and a file path set5029 behaves like multipart upload files5030 opens top-level files5031 opens files one level deep5032 opens files two levels deep5033 with local file5034 behaves like multipart upload files5035 opens top-level files5036 opens files one level deep5037 opens files two levels deep5038 with remote CI artifact upload5039 behaves like handling CI artifact upload5040 uploads both file and metadata5041 with local CI artifact upload5042 behaves like handling CI artifact upload5043 uploads both file and metadata5044 #call5045 with packages storage5046 object_storage_enabled: false, direct_upload_enabled: true, example_name: "adding package storage to multipart allowed paths"5047 behaves like adding package storage to multipart allowed paths5048 behaves like allowing the multipart upload5049 allows files to be uploaded5050 object_storage_enabled: false, direct_upload_enabled: false, example_name: "adding package storage to multipart allowed paths"5051 behaves like adding package storage to multipart allowed paths5052 behaves like allowing the multipart upload5053 allows files to be uploaded5054 object_storage_enabled: true, direct_upload_enabled: true, example_name: "not adding package storage to multipart allowed paths"5055 behaves like not adding package storage to multipart allowed paths5056 behaves like not allowing the multipart upload when package upload path is used5057 does not allow files to be uploaded5058 object_storage_enabled: true, direct_upload_enabled: false, example_name: "adding package storage to multipart allowed paths"5059 behaves like adding package storage to multipart allowed paths5060 behaves like allowing the multipart upload5061 allows files to be uploaded5062Clusters::Applications::WaitForUninstallAppWorker#perform5063 app exists5064 calls the check service5065 app does not exist5066 does not call the check service5067Editable5068 #edited?5069 is expected to eq false5070 is expected to eq true5071Resolvers::ErrorTracking::SentryDetailedErrorResolver5072 #resolve5073 fetches the data via the sentry API5074 error matched5075 resolves to a detailed error5076 assigns the gitlab project5077 if id does not match issue5078 behaves like it resolves to nil5079 resolves to nil5080 blank id5081 behaves like it resolves to nil5082 resolves to nil5083RuboCop::Cop::Scalability::IdempotentWorker5084 adds an offense when not defining idempotent method5085 adds an offense when not defining idempotent method5086Gitlab::Git::RepositoryCleaner5087 #apply_bfg_object_map_stream (from StringIO)5088 removes internal references5089 #apply_bfg_object_map_stream (from Gitlab::HttpIO)5090 removes internal references5091Analytics::UniqueVisitsHelper5092 #track_visit5093 does not track visits if feature flag disabled5094 does not track visits if usage ping is disabled5095 does not track visit if user is not logged in5096 tracks visit if user is logged in5097 tracks visit if user is not logged in, but has the cookie already5098Users::UpdateCanonicalEmailService5099 #initialize5100 unsuccessful5101 raises an error if there is no user5102 raises an error if the object is not a User5103 when a user is provided5104 does not error5105 #canonicalize_email5106 when the email domain is included5107 strips out any . or anything after + in the agent for included domains5108 raw_email: "user@includeddomain.com", expected_result: "user@includeddomain.com"5109 is expected to eq "user@includeddomain.com"5110 raw_email: "u.s.e.r@includeddomain.com", expected_result: "user@includeddomain.com"5111 is expected to eq "user@includeddomain.com"5112 raw_email: "user+123@includeddomain.com", expected_result: "user@includeddomain.com"5113 is expected to eq "user@includeddomain.com"5114 raw_email: "us.er+123@includeddomain.com", expected_result: "user@includeddomain.com"5115 is expected to eq "user@includeddomain.com"5116 when the user has an existing canonical email5117 updates the user canonical email record5118 when the email domain is not included5119 returns nil5120 destroys any existing UserCanonicalEmail record5121 when the user email is not processable5122 is expected to be nil5123 preserves any existing record5124 is expected to be nil5125 preserves any existing record5126Projects::ForksCountService5127 behaves like a counter caching service5128 #count5129 caches the count5130 #refresh_cache5131 refreshes the cache5132 #delete_cache5133 removes the cache5134 #uncached_count5135 does not cache the count5136 #count5137 returns the number of forks5138search/show5139 when the search page is opened5140 displays the title5141 does not render partials5142 when search term is supplied5143 renders partials5144 unfurling support5145 renders meta tags for a group5146 renders meta tags for both group and project5147FlowdockService5148 Associations5149 is expected to belong to project required:5150 is expected to have one service_hook5151 Validations5152 when service is active5153 is expected to validate that :token cannot be empty/falsy5154 when service is inactive5155 is expected not to validate that :token cannot be empty/falsy5156 Execute5157 calls FlowDock API5158SystemNotes::AlertManagementService5159 #change_alert_status5160 has the appropriate message5161 behaves like a system note5162 has the correct attributes5163 #new_alert_issue5164 has the appropriate message5165 behaves like a system note5166 has the correct attributes5167 #closed_alert_issue5168 has the appropriate message5169 behaves like a system note5170 has the correct attributes5171FromUnion5172 .from_union5173 selects from the results of the UNION5174 supports the use of a custom alias for the sub query5175 supports keeping duplicate rows5176GitlabUploader5177 #file_storage?5178 when file storage is used5179 is expected to be file storage5180 when is remote storage5181 is expected not to be file storage5182 #file_cache_storage?5183 when file storage is used5184 is expected to be file cache storage5185 when is remote storage5186 is expected not to be file cache storage5187 #move_to_cache5188 is true5189 #move_to_store5190 is true5191 #cache!5192 moves the file from the working directory to the cache directory5193 #replace_file_without_saving!5194 allows file to be replaced without triggering any callbacks5195 #open5196 when trace is stored in File storage5197 when file exists5198 returns io stream5199 when passing block it yields5200 when file does not exist5201 returns nil5202 when passing block it does not yield5203 when trace is stored in Object storage5204 when file exists5205 returns http io stream5206 when passing block it yields5207 when file does not exist5208 returns nil5209 when passing block it does not yield5210AnalyticsIssueSerializer5211 when there is a single object provided5212 contains important elements of the issue5213Gitlab::InstrumentationHelper5214 .keys5215 returns all available payload keys5216 .add_instrumentation_data5217 adds nothing5218 when Gitaly calls are made5219 adds Gitaly data and omits Redis data5220 when Redis calls are made5221 adds Redis data and omits Gitaly data5222 .queue_duration_for_job5223 enqueued_at: "2019-06-01T00:00:00.000+0000", created_at: nil, time_now: "2019-06-01T02:00:00.000+0000", expected_duration: 7200.05224 returns the correct duration5225 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: nil, time_now: "2019-06-01T02:00:00.001+0000", expected_duration: 0.0015226 returns the correct duration5227 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: "2019-05-01T02:00:00.000+0000", time_now: "2019-06-01T02:00:01.000+0000", expected_duration: 15228 returns the correct duration5229 enqueued_at: nil, created_at: "2019-06-01T02:00:00.000+0000", time_now: "2019-06-01T02:00:00.001+0000", expected_duration: 0.0015230 returns the correct duration5231 enqueued_at: nil, created_at: nil, time_now: "2019-06-01T02:00:00.001+0000", expected_duration: nil5232 returns the correct duration5233 enqueued_at: "2019-06-01T02:00:00.000+0200", created_at: nil, time_now: "2019-06-01T02:00:00.000-0200", expected_duration: 14400.05234 returns the correct duration5235 enqueued_at: 1571825569.998168, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: 26.0018325236 returns the correct duration5237 enqueued_at: 1571825569, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: 275238 returns the correct duration5239 enqueued_at: "invalid_date", created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5240 returns the correct duration5241 enqueued_at: "", created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5242 returns the correct duration5243 enqueued_at: 0, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5244 returns the correct duration5245 enqueued_at: -1, created_at: nil, time_now: "2019-10-23T12:13:16.000+0200", expected_duration: nil5246 returns the correct duration5247 enqueued_at: "2019-06-01T02:00:00.000+0000", created_at: nil, time_now: "2019-06-01T00:00:00.000+0000", expected_duration: 05248 returns the correct duration5249 enqueued_at: 2019-10-25 10:27:13 +0000, created_at: nil, time_now: "2019-10-25T12:29:16.000+0200", expected_duration: 1235250 returns the correct duration5251UpdateProjectStatisticsWorker5252 #perform5253 updates the project statistics5254Banzai::CommitRenderer5255 .render5256 renders a commit description and title5257Clusters::Kubernetes::FetchKubernetesTokenService5258 #execute5259 when params correct5260 when the secret exists5261 is expected to eq "xxx.token.xxx"5262 when there is a 500 error5263 is expected to raise Kubeclient::HttpError5264 when the secret does not exist on the first try5265 retries and finds the token5266 when the secret permanently does not exist5267 is expected to be nil5268 when the secret is missing a token on the first try5269 retries and finds the token5270 when the secret is permanently missing a token5271 is expected to be nil5272Gitlab::Verify::LfsObjects5273 behaves like Gitlab::Verify::BatchVerifier subclass5274 batching5275 iterates through objects in batches5276 allows the starting ID to be specified5277 allows the finishing ID to be specified5278 #run_batches5279 passes LFS objects with the correct file5280 fails LFS objects with a missing file5281 fails LFS objects with a mismatched oid5282 with remote files5283 passes LFS objects in object storage that exist5284 fails LFS objects in object storage that do not exist5285ClustersHelper5286 #has_rbac_enabled?5287 when kubernetes platform has been created5288 returns kubernetes platform value5289 when kubernetes platform has not been created yet5290 delegates to cluster provider5291 when ABAC cluster is created5292 delegates to cluster provider5293 #create_new_cluster_label5294 GCP provider5295 is expected to eq "Create new cluster on GKE"5296 AWS provider5297 is expected to eq "Create new cluster on EKS"5298 other provider5299 is expected to eq "Create new cluster"5300 no provider5301 is expected to eq "Create new cluster"5302 #js_clusters_list_data5303 displays endpoint path5304 generates svg image data5305 displays and ancestor_help_path5306 #provider_icon5307 will return GCP logo with gcp argument5308 will return AWS logo with aws argument5309 will return default logo with unknown provider5310 will return default logo when provider is empty5311 #cluster_type_label5312 project cluster5313 is expected to eq "Project cluster"5314 group cluster5315 is expected to eq "Group cluster"5316 instance cluster5317 is expected to eq "Instance cluster"5318 other values5319 Diplays generic cluster and reports error5320Emails::CreateService5321 #execute5322 creates an email with valid attributes5323 creates an email with additional attributes5324 has the right user association5325shared/projects/_project.html.haml5326 renders creator avatar if project has a creator5327 renders a generic avatar if project does not have a creator5328Ci::Pipelines::CreateArtifactWorker5329 #perform5330 when pipeline exists5331 calls pipeline report result service5332 when pipeline does not exist5333 does not call pipeline create artifact service5334NotificationRecipients::Builder::Default5335 #build!5336 participants and project watchers5337 adds all participants and watchers5338 subscribers5339 adds all subscribers5340Gitlab::Database::BackgroundMigrationJob5341 behaves like having unique enum values5342 has unique values in "status"5343 .for_migration_execution5344 returns jobs matching class_name and arguments5345 normalizes class names by removing leading ::5346 .for_partitioning_migration5347 returns jobs matching class_name and the table_name job argument5348 normalizes class names by removing leading ::5349 .mark_all_as_succeeded5350 marks all matching jobs as succeeded5351 normalizes class_names by removing leading ::5352 when previous matching jobs have already succeeded5353 does not update non-pending jobs5354 #class_name=5355 when the class_name is given without the leading ::5356 sets the class_name to the given value5357 when the class_name is given with the leading ::5358 removes the leading :: when setting the class_name5359 when the value is nil5360 sets the class_name to nil5361 when the values is blank5362 sets the class_name to the given value5363IssueSerializer5364 non-sidebar issue serialization5365 matches issue json schema5366 sidebar issue serialization5367 matches issue_sidebar json schema5368 sidebar extras issue serialization5369 matches issue_sidebar_extras json schema5370 board issue serialization5371 matches board issue json schema5372Gitlab::WikiPages::FrontMatterParser5373 #parse5374 there is front matter5375 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}5376 there is no content5377 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}5378 there is no front_matter5379 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}5380 is expected to have attributes {:reason => :no_match}5381 the feature flag is disabled5382 is expected to have attributes {:content => "---\na: 1\nb: 2\nc:\n - foo\n - bar\ndate: I am safe. Not actually a date\n---\nThis is the content\n", :front_matter => (be empty)}5383 the feature flag is enabled for the gated object5384 is expected to have attributes {:content => "This is the content\n", :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]}), :reason => (be nil)}5385 the end divider is ...5386 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}5387 the front-matter is not a mapping5388 is expected to have attributes {:reason => :not_mapping}5389 there is nothing in the front-matter block5390 is expected to have attributes {:reason => :not_mapping}5391 there is a string in the YAML block5392 is expected to have attributes {:reason => :not_mapping}5393 there is dangerous YAML in the block5394 is expected to have attributes {:error => (be present), :reason => :parse_error}5395 there is acceptably long YAML in the front-matter block5396 is expected to have attributes {:front_matter => (include {:title => (be present)})}5397 there is suspiciously long YAML in the front-matter block5398 is expected to have attributes {:reason => :too_long}5399 TOML front matter5400 is expected to have attributes {:reason => :not_yaml}5401 TOML style fences, advertised as YAML5402 is expected to have attributes {:front_matter => (include {:title => "My title"})}5403 YAML, advertised as something else5404 is expected to have attributes {:reason => :not_yaml}5405 there is text content in the YAML block, in comments5406 is expected to have attributes {:front_matter => (include {:foo => 1})}5407 there is text content in the YAML block5408 is expected to have attributes {:reason => :not_mapping}5409Import::ManifestProviderRepoEntity5410 behaves like exposes required fields for import entity5411 exposes required fields5412 correctly exposes id5413 correctly exposes full name5414 correctly exposes sanitized name5415 correctly exposes provider link5416Packages::Go::ModuleVersion5417 #name5418 with ref and name specified5419 returns that name5420 with ref specified and name unspecified5421 returns the name of the ref5422 with ref and name unspecified5423 returns nil5424 #gomod5425 with go.mod missing5426 returns nil5427 with go.mod present5428 returns the contents of go.mod5429 #files5430 with a root module5431 with an empty module path5432 behaves like #files5433 returns all the files5434 with a root module and a submodule5435 with an empty module path5436 behaves like #files5437 returns files excluding the submodule5438 with the submodule's path5439 behaves like #files5440 returns the submodule's files5441 #archive5442 with a root module5443 with an empty module path5444 behaves like #archive5445 returns an archive of all the files5446 with a root module and a submodule5447 with an empty module path5448 behaves like #archive5449 returns an archive of files excluding the submodule5450 with the submodule's path5451 behaves like #archive5452 returns an archive of the submodule's files5453Gitlab::Utils::SanitizeNodeLink5454 with the scheme: javascript:5455 #remove_unsafe_links5456 <a> tags5457 removes the unsafe link5458 <img> tags5459 removes the unsafe link5460 <video> tags5461 removes the unsafe link5462 <audio> tags5463 removes the unsafe link5464 #safe_protocol?5465 returns false5466 with the scheme: JaVaScRiPt:5467 #remove_unsafe_links5468 <a> tags5469 removes the unsafe link5470 <img> tags5471 removes the unsafe link5472 <video> tags5473 removes the unsafe link5474 <audio> tags5475 removes the unsafe link5476 #safe_protocol?5477 returns false5478 with the scheme: javascript:5479 #remove_unsafe_links5480 <a> tags5481 removes the unsafe link5482 <img> tags5483 removes the unsafe link5484 <video> tags5485 removes the unsafe link5486 <audio> tags5487 removes the unsafe link5488 #safe_protocol?5489 returns false5490 with the scheme: javascript :5491 #remove_unsafe_links5492 <a> tags5493 removes the unsafe link5494 <img> tags5495 removes the unsafe link5496 <video> tags5497 removes the unsafe link5498 <audio> tags5499 removes the unsafe link5500 #safe_protocol?5501 returns false5502 with the scheme: javascript:5503 #remove_unsafe_links5504 <a> tags5505 removes the unsafe link5506 <img> tags5507 removes the unsafe link5508 <video> tags5509 removes the unsafe link5510 <audio> tags5511 removes the unsafe link5512 #safe_protocol?5513 returns false5514 with the scheme: javascript :5515 #remove_unsafe_links5516 <a> tags5517 removes the unsafe link5518 <img> tags5519 removes the unsafe link5520 <video> tags5521 removes the unsafe link5522 <audio> tags5523 removes the unsafe link5524 #safe_protocol?5525 returns false5526 with the scheme: :javascript:5527 #remove_unsafe_links5528 <a> tags5529 removes the unsafe link5530 <img> tags5531 removes the unsafe link5532 <video> tags5533 removes the unsafe link5534 <audio> tags5535 removes the unsafe link5536 #safe_protocol?5537 returns false5538 with the scheme: javascript:5539 #remove_unsafe_links5540 <a> tags5541 removes the unsafe link5542 <img> tags5543 removes the unsafe link5544 <video> tags5545 removes the unsafe link5546 <audio> tags5547 removes the unsafe link5548 #safe_protocol?5549 returns false5550 with the scheme: javascript:5551 #remove_unsafe_links5552 <a> tags5553 removes the unsafe link5554 <img> tags5555 removes the unsafe link5556 <video> tags5557 removes the unsafe link5558 <audio> tags5559 removes the unsafe link5560 #safe_protocol?5561 returns false5562 with the scheme:  javascript:5563 #remove_unsafe_links5564 <a> tags5565 removes the unsafe link5566 <img> tags5567 removes the unsafe link5568 <video> tags5569 removes the unsafe link5570 <audio> tags5571 removes the unsafe link5572 #safe_protocol?5573 returns false5574Gitlab::DependencyLinker::ComposerJsonLinker5575 .support?5576 supports composer.json5577 does not support other files5578 #link5579 does not link the module name5580 links the homepage5581 links the repository URL5582 links the license5583 links dependencies5584 does not link core dependencies5585Resolvers::CommitPipelinesResolver5586 resolves pipelines for commit and ref5587Gitlab::SidekiqMiddleware::AdminMode::Client5588 yields block5589 user is a regular user5590 no admin mode field in payload5591 user is an administrator5592 admin mode disabled5593 no admin mode field in payload5594 admin mode enabled5595 when sidekiq required context not set5596 no admin mode field in payload5597 when user stored in current request5598 has admin mode field in payload5599 when bypassing session5600 has admin mode field in payload5601 admin mode feature disabled5602 yields block5603 no admin mode field in payload5604Gitlab::SnippetSearchResults5605 #snippet_titles_count5606 returns the amount of matched snippet titles5607 #formatted_count5608 returns the expected formatted count5609 #objects5610 uses page and per_page to paginate results5611Gitlab::Danger::EmojiChecker5612 #includes_text_emoji?5613 text: "Hello World!", includes_emoji: false5614 is true when text includes a text emoji5615 text: ":+1:", includes_emoji: true5616 is true when text includes a text emoji5617 text: "Hello World! :+1:", includes_emoji: true5618 is true when text includes a text emoji5619 #includes_unicode_emoji?5620 text: "Hello World!", includes_emoji: false5621 is true when text includes a text emoji5622 text: "🚀", includes_emoji: true5623 is true when text includes a text emoji5624 text: "Hello World! 🚀", includes_emoji: true5625 is true when text includes a text emoji5626Mail quoted-printable transfer encoding patch and Unicode characters5627 with a text email5628 with a body that encodes to exactly 74 characters (final newline)5629 behaves like email encoding5630 enclosing in a new object does not change the encoded original5631 with a body that encodes to exactly 74 characters (no final newline)5632 behaves like email encoding5633 enclosing in a new object does not change the encoded original5634 with a body that encodes to exactly 75 characters5635 behaves like email encoding5636 enclosing in a new object does not change the encoded original5637 with an html email5638 with a body that encodes to exactly 74 characters (final newline)5639 behaves like email encoding5640 enclosing in a new object does not change the encoded original5641 with a body that encodes to exactly 74 characters (no final newline)5642 behaves like email encoding5643 enclosing in a new object does not change the encoded original5644 with a body that encodes to exactly 75 characters5645 behaves like email encoding5646 enclosing in a new object does not change the encoded original5647 a multipart email5648 behaves like email encoding5649 enclosing in a new object does not change the encoded original5650 with non UTF-8 charset5651 can be decoded back5652 behaves like email encoding5653 enclosing in a new object does not change the encoded original5654 with binary content5655 can be encoded with 'base64' content-transfer-encoding5656 binary contents are not modified5657 behaves like email encoding5658 enclosing in a new object does not change the encoded original5659 encoding fails with 'quoted-printable' content-transfer-encoding5660 content cannot be decoded back5661Gitlab::EtagCaching::Middleware5662 when ETag caching is not enabled for current route5663 does not add ETag header5664 passes status code from app5665 when there is no ETag in store for given resource5666 generates ETag5667 when If-None-Match header was specified5668 tracks "etag_caching_key_not_found" event5669 when there is ETag in store for given resource5670 returns this value as header5671 when If-None-Match header matches ETag in store5672 does not call app5673 returns status code 3045674 returns empty body5675 tracks "etag_caching_cache_hit" event5676 behaves like sends a process_action.action_controller notification5677 sends the expected payload5678 log subscriber processes action5679 when polling is disabled5680 returns status code 4295681 behaves like sends a process_action.action_controller notification5682 sends the expected payload5683 log subscriber processes action5684 when If-None-Match header does not match ETag in store5685 calls app5686 tracks "etag_caching_resource_changed" event5687 when If-None-Match header is not specified5688 tracks "etag_caching_header_missing" event5689 when GitLab instance is using a relative URL5690 uses full path as cache key5691Gitlab::SidekiqCluster5692 .trap_signals5693 traps the given signals5694 .trap_terminate5695 traps the termination signals5696 .trap_forward5697 traps the signals to forward5698 .signal5699 sends a signal to the given process5700 returns false when the process does not exist5701 .signal_processes5702 sends a signal to every given process5703 .start5704 starts Sidekiq with the given queues, environment and options5705 starts Sidekiq with the given queues and sensible default options5706 .start_sidekiq5707 starts a Sidekiq process5708 handles duplicate queue names5709 runs the sidekiq process in a new process group5710 .concurrency5711 queue_count: 2, min: 0, max: 0, expected: 35712 is expected to eq 35713 queue_count: 2, min: 0, max: 9, expected: 35714 is expected to eq 35715 queue_count: 2, min: 1, max: 4, expected: 35716 is expected to eq 35717 queue_count: 2, min: 4, max: 5, expected: 45718 is expected to eq 45719 queue_count: 5, min: 2, max: 3, expected: 35720 is expected to eq 35721 queue_count: 2, min: 1, max: 1, expected: 15722 is expected to eq 15723 queue_count: 0, min: 3, max: 3, expected: 35724 is expected to eq 35725 queue_count: 1, min: 4, max: 3, expected: 35726 is expected to eq 35727 .wait_async5728 waits for a process in a separate thread5729 .all_alive?5730 returns true if all processes are alive5731 returns false when a thread was not alive5732 .any_alive?5733 returns true if at least one process is alive5734 returns false when all threads are dead5735 .write_pid5736 writes the PID of the current process to the given file5737Gitlab::Badge::Pipeline::Template5738 #key_text5739 says pipeline by default5740 when custom key_text is defined5741 returns custom value5742 when its size is larger than the max allowed value5743 returns default value5744 #value_text5745 is status value5746 #key_width5747 is fixed by default5748 when custom key_width is defined5749 returns custom value5750 when it is larger than the max allowed value5751 returns default value5752 widths and text anchors5753 has fixed width and text anchors5754 #key_color5755 is always the same5756 #value_color5757 when status is success5758 has expected color5759 when status is failed5760 has expected color5761 when status is running5762 has expected color5763 when status is preparing5764 has expected color5765 when status is unknown5766 has expected color5767 when status does not match any known statuses5768 has expected color5769RuboCop::Cop::CodeReuse::ActiveRecord5770 flags the use of "where" without any arguments5771 flags the use of "where" with arguments5772 does not flag the use of "group" without any arguments5773 flags the use of "group" with arguments5774 does not flag the use of ActiveRecord models in a model5775 does not flag the use of ActiveRecord models in a spec5776 does not flag the use of ActiveRecord models in a background migration5777 does not flag the use of ActiveRecord models in lib/gitlab/database5778 autocorrects offenses in instance methods by whitelisting them5779 autocorrects offenses in class methods by whitelisting them5780 autocorrects offenses in blocks by whitelisting them5781Gitlab::BatchPopQueueing5782 #initialize5783 namespace: "feature", queue_id: "1", expect_error: false, error_type: nil5784 is expected not to raise Exception5785 namespace: :feature, queue_id: "1", expect_error: false, error_type: nil5786 is expected not to raise Exception5787 namespace: nil, queue_id: "1", expect_error: true, error_type: NoMethodError5788 is expected to raise NoMethodError5789 namespace: "feature", queue_id: nil, expect_error: true, error_type: NoMethodError5790 is expected to raise NoMethodError5791 namespace: "", queue_id: "1", expect_error: true, error_type: ArgumentError5792 is expected to raise ArgumentError5793 namespace: "feature", queue_id: "", expect_error: true, error_type: ArgumentError5794 is expected to raise ArgumentError5795 namespace: "feature", queue_id: 1, expect_error: true, error_type: NoMethodError5796 is expected to raise NoMethodError5797 #safe_execute5798 enqueues new items always5799 yields the new items with exclusive lease5800 returns the result and no items in the queue5801 when new items are enqueued during the process5802 returns the result with newly added items5803 when interger items are enqueued5804 yields as String values5805 when the queue key does not exist in Redis5806 yields empty array5807 when the other process has already been working on the queue5808 does not yield the block5809 returns the result5810 when a duplicate item is enqueued5811 returns the poped items to the queue and raise an error5812 when there are two queues5813 enqueues items to each queue5814Packages::Nuget::PackageFinder5815 #execute!5816 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5817 with lower case package name5818 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5819 with unknown package name5820 is expected to be empty5821 with valid version5822 is expected to contain exactly #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5823 with unknown version5824 is expected to be empty5825 with limit hit5826 is expected to contain exactly #<Packages::Package id: 17, project_id: 1431, created_at: "2020-08-25 15:55:46", updated_at: "2020-08-25 15:55:46", name: "NugetPackage12", version: "1.0.15", package_type: "nuget"> and #<Packages::Package id: 18, project_id: 1431, created_at: "2020-08-25 15:55:46", updated_at: "2020-08-25 15:55:46", name: "NugetPackage12", version: "1.0.16", package_type: "nuget">5827 with downcase package name5828 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5829 with prefix wildcard5830 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5831 with suffix wildcard5832 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5833 with surrounding wildcards5834 is expected to contain exactly #<Packages::Package id: 13, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "1.0.12", package_type: "nuget"> and #<Packages::Package id: 14, project_id: 1431, created_at: "2020-08-25 15:55:45", updated_at: "2020-08-25 15:55:45", name: "NugetPackage12", version: "2.0.0", package_type: "nuget">5835Ci::Sources::Pipeline5836 is expected to belong to project required:5837 is expected to belong to pipeline required:5838 is expected to belong to source_project required:5839 is expected to belong to source_job required:5840 is expected to belong to source_bridge required:5841 is expected to belong to source_pipeline required:5842 is expected to validate that :project cannot be empty/falsy5843 is expected to validate that :pipeline cannot be empty/falsy5844 is expected to validate that :source_project cannot be empty/falsy5845 is expected to validate that :source_job cannot be empty/falsy5846 is expected to validate that :source_pipeline cannot be empty/falsy5847DesignManagement::Action5848 relations5849 is expected to belong to design required:5850 is expected to belong to version required:5851 scopes5852 .most_recent5853 finds the correct version for each design5854 .up_to_version5855 the version is nil5856 returns all design_versions5857 when given a Version instance5858 the version is the most current5859 is expected to have attributes {:size => 6}5860 the version is the oldest5861 is expected to have attributes {:size => 2}5862 the version is the middle one5863 is expected to have attributes {:size => 4}5864 when given a commit SHA5865 the version is the most current5866 is expected to have attributes {:size => 6}5867 the version is the oldest5868 is expected to have attributes {:size => 2}5869 the version is the middle one5870 is expected to have attributes {:size => 4}5871 when given a String that is not a commit SHA5872 is expected to raise ArgumentError5873SourcegraphHelper5874 #sourcegraph_url_message5875 with .com sourcegraph url5876 is expected to have text "Uses Sourcegraph.com"5877 is expected to have visible link "Sourcegraph.com" with href "http://sourcegraph.example.com"5878 with custom sourcegraph url5879 is expected to have text "Uses a custom Sourcegraph instance"5880 is expected to have visible link "Sourcegraph instance" with href "http://sourcegraph.example.com"5881 with unsafe url5882 is expected to have visible link "Sourcegraph instance" with href "\\\" onload=\\\"alert(1);\\\""5883 #sourcegraph_experimental_message5884 when not limited by feature or public only5885 is expected to eq "This feature is experimental."5886 when limited by feature5887 is expected to eq "This feature is experimental and currently limited to certain projects."5888 when limited by public only5889 is expected to eq "This feature is experimental and limited to public projects."5890Banzai::Filter::TableOfContentsFilter5891 does nothing when :no_header_anchors is truthy5892 does nothing with empty headers5893 processes h1 elements5894 processes h2 elements5895 processes h3 elements5896 processes h4 elements5897 processes h5 elements5898 processes h6 elements5899 anchor tag5900 has an `anchor` class5901 has a namespaced id5902 links to the non-namespaced id5903 generated IDs5904 translates spaces to dashes5905 squeezes multiple spaces and dashes5906 removes punctuation5907 removes any leading or trailing spaces5908 appends a unique number to duplicates5909 prepends a prefix to digits-only ids5910 supports Unicode5911 result5912 is contained within a `ul` element5913 contains an `li` element for each header5914 table of contents nesting5915 keeps list levels regarding header levels5916 header text contains escaped content5917 outputs escaped content5918Gitlab::SidekiqDaemon::Monitor5919 #within_job5920 tracks thread5921 when job is canceled5922 does not execute a block5923 raises exception5924 #run_thread when notification channel not enabled5925 return directly5926 #run_thread when notification channel enabled5927 when structured logging is used5928 logs start message5929 logs stop message5930 logs StandardError message5931 logs and raises Exception message5932 when StandardError is raised5933 does retry connection5934 when message is published5935 and message is valid5936 processes cancel5937 and message is not valid json5938 skips processing5939 #stop5940#<Thread:0x0000557ae956bf30@/builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:42 run> terminated with exception (report_on_exception is true):5941/builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:31:in `thread_name': Interrupt (Interrupt)5942 from /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:43:in `block (2 levels) in start'5943 does stop the thread5944 #process_job_cancel5945 when jid is missing5946 does not run thread5947 when jid is provided5948 when jid is not found5949 does not log cancellation message5950 when jid is found5951#<Thread:0x0000557ae91c0c78@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):5952/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)5953 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'5954 does log cancellation message5955#<Thread:0x0000557ae9b88828@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):5956/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)5957 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'5958 does cancel the thread5959 .cancel_job5960 sets a redis key5961 notifies all workers5962 #notification_channel_enabled?5963 return nil when SIDEKIQ_MONITOR_WORKER is not set5964 return nil when SIDEKIQ_MONITOR_WORKER set to 05965 return 1 when SIDEKIQ_MONITOR_WORKER set to 15966Gitlab::Email::Hook::DisableEmailInterceptor5967 does not send emails5968Gitlab::RepositoryHashCache5969 #cache_key5970 includes the namespace5971 with a given namespace5972 includes the full namespace5973 #delete5974 key exists5975 is expected to eq 15976 deletes the given key from the cache5977 key doesn't exist5978 is expected to eq 05979 multiple keys5980 deletes multiple keys5981 returns deleted key count5982 #key?5983 key exists5984 is expected to equal true5985 key doesn't exist5986 is expected to equal false5987 #read_members5988 all data is cached5989 is expected to eq {"missing"=>"false", "test"=>"value"}5990 partial data is cached5991 is expected to eq {"missing"=>nil, "test"=>"value"}5992 no data is cached5993 is expected to eq {"missing"=>nil, "test"=>nil}5994 empty keys are passed for some reason5995 raises an error5996 #write5997 is expected to equal true5998 actually writes stuff to Redis5999 #fetch_and_add_missing6000 records metrics6001 fully cached6002 returns a hash6003 doesn't write to the cache6004 partially cached6005 returns a hash6006 writes to the cache6007 uncached6008 returns a hash6009 writes to the cache6010Autocomplete::ActsAsTaggableOn::TagsFinder6011 #execute6012 with empty params6013 returns all tags6014 filter by search6015 with an empty search term6016 returns all tags6017 with a search containing 2 characters6018 returns the tag that strictly matches the search term6019 with a search containing 3 characters6020 returns the tag that partially matches the search term6021 limit6022 limits the result set by the limit constant6023RuboCop::Cop::AvoidReturnFromBlocks6024 flags violation for return inside a block6025 doesn't call add_offense twice for nested blocks6026 flags violation for return inside included > def > block6027 doesn't flag violation for return inside a lambda6028 doesn't flag violation for return used inside a method definition6029 doesn't flag violation for next inside a block6030 doesn't flag violation for break inside a block6031 doesn't check when block is empty6032 behaves like examples with whitelisted method6033 doesn't flag violation for return inside each6034 behaves like examples with whitelisted method6035 doesn't flag violation for return inside each_filename6036 behaves like examples with whitelisted method6037 doesn't flag violation for return inside times6038 behaves like examples with whitelisted method6039 doesn't flag violation for return inside loop6040 behaves like examples with def methods6041 doesn't flag violation for return inside define_method6042 behaves like examples with def methods6043 doesn't flag violation for return inside lambda6044ConfigLint6045 errors out if any bash scripts have errors6046 passes if all scripts are fine6047config_lint rake task6048 runs lint on shell scripts6049Gitlab::GlRepository::Identifier6050 project repository6051 https://gitlab.com/gitlab-org/gitlab/-/issues/219192 (PENDING: No reason given)6052 behaves like parsing gl_repository identifier6053 returns correct information6054 behaves like parsing gl_repository identifier6055 returns correct information6056 wiki6057 behaves like parsing gl_repository identifier6058 returns correct information6059 behaves like parsing gl_repository identifier6060 returns correct information6061 snippet6062 when PersonalSnippet6063 behaves like parsing gl_repository identifier6064 returns correct information6065 when ProjectSnippet6066 behaves like parsing gl_repository identifier6067 returns correct information6068 design6069 behaves like parsing gl_repository identifier6070 returns correct information6071 when the format is incorrect6072 raises InvalidIdentifier on project-1-project (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/219192)6073 identifier: "wiki-noid"6074 raises InvalidIdentifier6075 identifier: "foo-2"6076 raises InvalidIdentifier6077 identifier: "project-0"6078 raises InvalidIdentifier6079 identifier: "2-project"6080 raises InvalidIdentifier6081 identifier: "snippet-2-wiki"6082 raises InvalidIdentifier6083 identifier: "project-wibble-wiki"6084 raises InvalidIdentifier6085 identifier: "wiki-1-project"6086 raises InvalidIdentifier6087 identifier: "snippet"6088 raises InvalidIdentifier6089 identifier: "project-1-wiki-bar"6090 raises InvalidIdentifier6091Gitlab::Metrics::Subscribers::RailsCache6092 #cache_read6093 increments the cache_read duration6094 with a transaction6095 with hit event6096 when super operation is fetch6097 does not increment cache read miss total6098 with miss event6099 increments the cache_read_miss total6100 when super operation is fetch6101 does not increment cache read miss total6102 #cache_write6103 observes write duration6104 #cache_delete6105 observes delete duration6106 #cache_exist?6107 observes the exists duration6108 #cache_fetch_hit6109 without a transaction6110 returns6111 with a transaction6112 increments the cache_read_hit count6113 #cache_generate6114 without a transaction6115 returns6116 with a transaction6117 increments the cache_fetch_miss count and cache_read_miss total6118 #observe6119 without a transaction6120 returns6121 with a transaction6122 observes cache metric6123 increments the operations total6124Git::WikiPushService::Change6125 #page6126 the page does not exist6127 the operation is added6128 is expected to have attributes {:page => (be nil)}6129 the operation is deleted6130 is expected to have attributes {:page => (be nil)}6131 the operation is renamed6132 is expected to have attributes {:page => (be nil)}6133 the operation is modified6134 is expected to have attributes {:page => (be nil)}6135 the page can be found6136 is expected to have attributes {:page => #<Double "WikiPage">}6137 is expected to have attributes {:page => #<Double "WikiPage">}6138 is expected to have attributes {:page => #<Double "WikiPage">}6139 the page has been deleted6140 is expected to have attributes {:page => #<Double "WikiPage">}6141 #last_known_slug6142 the page has been created6143 is expected to have attributes {:last_known_slug => "Page_10"}6144 the operation is renamed6145 is expected to have attributes {:last_known_slug => "Page_12"}6146 the operation is modified6147 is expected to have attributes {:last_known_slug => "Page_13"}6148 the operation is deleted6149 is expected to have attributes {:last_known_slug => "Page_14"}6150 #event_action6151 the page is deleted6152 is expected to have attributes {:event_action => :destroyed}6153 the page is added6154 is expected to have attributes {:event_action => :created}6155 the page is renamed6156 is expected to have attributes {:event_action => :updated}6157 the page is modified6158 is expected to have attributes {:event_action => :updated}6159Gitlab::Ci::Config::Entry::Port6160 when configuration is a string6161 #valid?6162 is valid6163 #value6164 returns valid hash6165 #number6166 returns port number6167 #protocol6168 is nil6169 #name6170 is nil6171 when configuration is a hash6172 with the complete hash6173 #valid?6174 is valid6175 #value6176 returns valid hash6177 #number6178 returns port number6179 #protocol6180 returns port protocol6181 #name6182 returns port name6183 with only the port number6184 #valid?6185 is valid6186 #value6187 returns valid hash6188 #number6189 returns port number6190 #protocol6191 is nil6192 #name6193 is nil6194 without the number6195 #valid?6196 is not valid6197 when configuration is invalid6198 #valid?6199 is valid6200 when protocol6201 is http6202 #valid?6203 is valid6204 is https6205 #valid?6206 is valid6207 is neither http nor https6208 #valid?6209 is invalid6210Gitlab::Git::Blame6211 blaming a file6212 each count6213 is expected to be a String with encoding UTF-86214 ISO-8859 encoding6215 converts to UTF-86216 unknown encoding6217 converts to UTF-86218MoveToProjectSerializer6219 #represent6220 includes the name and name with namespace6221Gitlab::Metrics::Dashboard::Cache6222 .fetch6223 stores data correctly6224 .for6225 returns a new instance6226 #fetch6227 stores data correctly6228 #delete_all!6229 deletes keys of the given project6230 does not fail when nothing to delete6231 multiple fetches and deletes6232 aggregate_failures6233Gitlab::GithubImport::ParallelScheduling6234 #parallel?6235 returns true when running in parallel mode6236 returns false when running in sequential mode6237 #execute6238 imports data in parallel when running in parallel mode6239 imports data in parallel when running in sequential mode6240 expires the cache used for tracking already imported objects6241 #sequential_import6242 imports data in sequence6243 #parallel_import6244 imports data in parallel6245 #each_object_to_import6246 yields every object to import6247 resumes from the last page6248 does not yield any objects if the page number was not set6249 does not yield the object if it was already imported6250 #already_imported?6251 returns false when an object has not yet been imported6252 returns true when an object has already been imported6253 #mark_as_imported6254 marks an object as already imported6255ContainerRegistry::Event6256 #supported?6257 action: "delete", supported: true6258 is expected to eq true6259 action: "push", supported: true6260 is expected to eq true6261 action: "mount", supported: false6262 is expected to eq false6263 action: "pull", supported: false6264 is expected to eq false6265 #handle!6266 is expected to eq nil6267 #track!6268 with a respository target6269 repository_path: "group/test/container", action: "push", tracking_action: "push_repository"6270 creates a tracking event6271 repository_path: "group/test/container", action: "delete", tracking_action: "delete_repository"6272 creates a tracking event6273 repository_path: "foo/bar", action: "push", tracking_action: "create_repository"6274 creates a tracking event6275 repository_path: "foo/bar", action: "delete", tracking_action: "delete_repository"6276 creates a tracking event6277 with a tag target6278 repository_path: "group/test/container", action: "push", tracking_action: "push_tag"6279 creates a tracking event6280 repository_path: "group/test/container", action: "delete", tracking_action: "delete_tag"6281 creates a tracking event6282 repository_path: "foo/bar", action: "push", tracking_action: "push_tag"6283 creates a tracking event6284 repository_path: "foo/bar", action: "delete", tracking_action: "delete_tag"6285 creates a tracking event6286Banzai::Filter::MathFilter6287 leaves regular inline code unchanged6288 removes surrounding dollar signs and adds class code, math and js-render-math6289 only removes surrounding dollar signs6290 only removes surrounding single dollar sign6291 adds data-math-style inline attribute to inline math6292 adds class code and math to inline math6293 adds js-render-math class to inline math6294 ignores cases with missing dolar sign at the end6295 ignores cases with missing dolar sign at the beginning6296 ignores dollar signs if it is not adjacent6297 ignores dollar signs if they are inside another element6298 adds data-math-style display attribute to display math6299 adds js-render-math class to display math6300 ignores code blocks that are not math6301 requires the pre to contain both code and math6302 dollar signs around to display math6303Packages::Nuget::CreatePackageService6304 #execute6305 creates the package6306 can create two packages in a row6307Gitlab::Ci::Reports::AccessibilityReports6308 #scans_count6309 when data has errors6310 returns the scans_count6311 when data has no errors6312 returns the scans_count6313 when data has no url6314 returns the scans_count6315 #passes_count6316 when data has errors6317 returns the passes_count6318 when data has no errors6319 returns the passes_count6320 when data has no url6321 returns the scans_count6322 #errors_count6323 when data has errors6324 returns the errors_count6325 when data has no errors6326 returns the errors_count6327 when data has no url6328 returns the errors_count6329 #add_url6330 when data has errors6331 adds urls and data to accessibility report6332 when data does not have errors6333 adds data to accessibility report6334 when url does not exist6335 sets error_message and decreases total6336 #set_error_message6337 when error is nil6338 returns the error6339 sets the error6340 when a error has already been set6341 overwrites the existing message6342 #all_errors6343 when data has errors6344 returns all errors6345 when data has no errors6346 returns an empty array6347 when accessibility report has no data6348 returns an empty array6349RuboCop::Cop::Scalability::FileUploads6350 with required params6351 detects File in types array6352 detects File as type argument6353 with optional params6354 detects File in types array6355 detects File as type argument6356User6357 types consistency checks6358 scopes & predicates6359 .humans6360 includes humans only6361 .bots6362 includes all bots6363 .bots_without_project_bot6364 includes all bots except project_bot6365 .non_internal6366 includes all non_internal users6367 .without_ghosts6368 includes everyone except ghosts6369 .without_project_bot6370 includes everyone except project_bot6371 #bot?6372 is true for all bot user types and false for others6373 #human?6374 is true for humans only6375 #internal?6376 is true for all internal user types and false for others6377Bitbucket::Representation::Issue6378 #iid6379 is expected to eq 16380 #kind6381 is expected to eq "bug"6382 #milestone6383 is expected to eq "1.0"6384 is expected to be nil6385 #author6386 is expected to eq "Ben"6387 is expected to be nil6388 #description6389 is expected to eq "Text"6390 is expected to be nil6391 #state6392 is expected to eq "closed"6393 is expected to eq "closed"6394 is expected to eq "closed"6395 is expected to eq "closed"6396 is expected to eq "closed"6397 is expected to eq "opened"6398 #title6399 is expected to eq "Issue"6400 #created_at6401 is expected to eq Tue, 25 Aug 20206402 #updated_at6403 is expected to eq Tue, 25 Aug 20206404Gitlab::Metrics::Dashboard::Stages::TrackPanelType6405 #transform!6406 creates tracking event6407Ci::CreateCrossProjectPipelineWorker6408 #perform6409 when bridge exists6410 calls cross project pipeline creation service6411 when bridge does not exist6412 does nothing6413Gitlab::OmniauthInitializer6414 #execute6415 configures providers from array6416 allows "args" array for app_id and app_secret6417 passes app_id and app_secret as additional arguments6418 passes "args" hash as symbolized hash argument6419 normalizes a String strategy_class6420 allows a class to be specified in strategy_class6421 throws an error for an invalid strategy_class6422 configures fail_with_empty_uid for shibboleth6423 configures remote_sign_out_handler proc for authentiq6424 configures on_single_sign_out proc for cas36425 configures defaults for google_oauth26426 converts client_auth_method to a Symbol for openid_connect6427 converts client_auth_method to a Symbol for strategy_class OpenIDConnect6428Gitlab::BatchWorkerContext6429 #arguments6430 returns all the expected arguments in arrays6431 #context_for6432 returns the correct application context for the arguments6433Gitlab::Emoji6434 .emojis6435 returns emojis6436 .emojis_by_moji6437 return emojis by moji6438 .emojis_unicodes6439 returns emoji unicodes6440 .emojis_names6441 returns emoji names6442 .emojis_aliases6443 returns emoji aliases6444 .emoji_filename6445 returns emoji filename6446 .emoji_unicode_filename6447 returns emoji unicode filename6448 .emoji_unicode_version6449 returns emoji unicode version by name6450 .normalize_emoji_name6451 returns same name if not found in aliases6452 returns name if name found in aliases6453 .emoji_image_tag6454 returns emoji image tag6455 .emoji_exists?6456 returns true if the name exists6457 returns false if the name does not exist6458 .gl_emoji_tag6459 returns gl emoji tag if emoji is found6460 returns nil if emoji name is not found6461UpdateExternalPullRequestsWorker6462 #perform6463 when ref is a branch6464 runs CreatePipelineService for each pull request matching the source branch and repository6465 when ref is not a branch6466 does nothing6467AlertManagement::AlertUserMention6468 associations6469 is expected to belong to alert_management_alert required:6470 is expected to belong to note required:6471 behaves like has user mentions6472 #has_mentions?6473 when no mentions6474 returns false6475 when mentioned_users_ids not null6476 returns true6477 when mentioned projects6478 returns true6479 when mentioned groups6480 returns true6481Gitlab::Database::RenameReservedPathsMigration::V16482 #rename_child_paths6483 behaves like renames child namespaces6484 renames namespaces6485 #rename_wildcard_paths6486 renames projects6487 behaves like renames child namespaces6488 renames namespaces6489 #rename_root_paths6490 renames namespaces6491 #revert_renames6492 renames namespaces6493 renames projects6494RuboCop::Cop::Migration::AddReference6495 outside of a migration6496 does not register any offenses6497 in a migration6498 when the table existed before6499 registers an offense when using add_reference6500 registers an offense when using add_reference with index enabled6501 registers an offense if only a different table was created6502 when creating the table at the same time6503 registers an offense when using add_reference without index6504 registers an offense when using add_reference index disabled6505 does not register an offense when using add_reference with index enabled6506 does not register an offense when the index is unique6507Gitlab::UsageDataCounters::SourceCodeCounter6508 behaves like a redis usage counter6509 .count(pushes)6510 increments the Source Code pushes counter by 16511 .read(pushes)6512 returns the total number of pushes events6513 behaves like a redis usage counter with totals6514 totals6515 can report all totals6516 unknown events6517 cannot increment6518 cannot read6519API::Helpers::PackagesHelpers6520 authorize_packages_access!6521 authorizes packages access6522 authorize_read_package!6523 calls authorize!6524 authorize_create_package!6525 calls authorize!6526 authorize_destroy_package!6527 calls authorize!6528 require_packages_enabled!6529 with packages enabled6530 doesn't call not_found!6531 with package disabled6532 calls not_found!6533 #authorize_workhorse!6534 authorizes workhorse6535 without length6536 authorizes workhorse6537 #authorize_upload!6538 authorizes the upload6539RuboCop::Cop::Scalability::CronWorkerContext6540 adds an offense when including CronjobQueue6541 does not add offenses for other workers6542 does not add an offense when the class defines a context6543 does not add an offense when the worker calls `with_context`6544 does not add an offense when the worker calls `bulk_perform_async_with_contexts`6545 does not add an offense when the worker calls `bulk_perform_in_with_contexts`6546BitbucketServer::Representation::Repo6547 #project_key6548 is expected to eq "TEST"6549 #project_name6550 is expected to eq "test"6551 #slug6552 is expected to eq "rouge"6553 #browse_url6554 is expected to eq "http://localhost:7990/projects/TEST/repos/rouge/browse"6555 #clone_url6556 is expected to eq "http://root@localhost:7990/scm/test/rouge.git"6557 #description6558 is expected to eq "Test"6559 #full_name6560 is expected to eq "test/rouge"6561Gitlab::Ci::Config::Entry::Kubernetes6562 attributes6563 is expected to respond to #namespace6564 is expected to respond to #has_namespace?6565 validations6566 config6567 is a hash containing known keys6568 is expected to be valid6569 is a hash containing an unknown key6570 is expected not to be valid6571 is a string6572 is expected not to be valid6573 namespace6574 is a string6575 is expected to be valid6576 is a hash6577 is expected not to be valid6578 is not present6579 is expected not to be valid6580Gitlab::LanguageDetection6581 #languages6582 returns the language names6583 #insertions6584 only includes new languages6585 #updates6586 updates the share of languages6587 does not include languages to be removed6588 when silent writes occur6589 doesn't include them in the result6590 #deletions6591 lists undetected languages6592RuboCop::Cop::ActiveRecordAssociationReload6593 when using ActiveRecord::Base6594 registers an offense on reload usage6595 does not register an offense on reset usage6596 when using ActiveRecord::Relation6597 registers an offense on reload usage6598 does not register an offense on reset usage6599 when using on self6600 registers an offense on reload usage6601 does not register an offense on reset usage6602Gitlab::InternalPostReceive::Response6603 #add_merge_request_urls6604 when there are urls_data6605 adds a message for each merge request URL6606 #add_merge_request_url6607 when :new_merge_request is false6608 adds a basic message to view the existing merge request6609 when :new_merge_request is true6610 adds a basic message to create a new merge request6611 #add_basic_message6612 when text is present6613 adds a basic message6614 when text is blank6615 does not add a message6616 #add_alert_message6617 when text is present6618 adds a alert message6619 when text is blank6620 does not add a message6621 #reference_counter_decreased6622 initially6623 reference_counter_decreased is set to false6624 #reference_counter_decreased=6625 when the argument is truthy6626 reference_counter_decreased is truthy6627 when the argument is falsey6628 reference_counter_decreased is falsey6629Gitlab::Sherlock::Middleware6630 #call6631 when instrumentation is enabled6632 instruments a request6633 when instrumentation is disabled6634 doesn't instrument a request6635 #call_with_instrumentation6636 instruments a request6637 #instrument?6638 returns false for a text/css request6639 returns false for a request to a Sherlock route6640 returns true for a request that should be instrumented6641 #transaction_from_env6642 returns a Transaction6643ApplicationsFinder6644 #execute6645 returns an array of applications6646 returns the application by id6647ProtectedTag6648 Associations6649 is expected to belong to project required:6650 Validation6651 is expected to validate that :project cannot be empty/falsy6652 is expected to validate that :name cannot be empty/falsy6653RuboCop::Cop::CodeReuse::Worker6654 flags the use of a worker in a controller6655 flags the use of a worker in an API6656 flags the use of a worker in a Finder6657 flags the use of a worker in a Presenter6658 flags the use of a worker in a Serializer6659 flags the use of a worker in a model class method6660Gitlab::QuickActions::SubstitutionDefinition6661 #perform_substitution!6662 returns nil if content is nil6663 when content contains command name6664 performs the substitution by default6665 when content contains command name in word6666 does not perform the substitution6667 #match6668 checks the content for the command6669 returns the match data6670 is nil if content does not have the command6671 is nil if content contains the command as prefix6672Gitlab::Ci::Config::Entry::Release::Assets6673 validation6674 when entry config value is correct6675 #value6676 returns assets configuration6677 #valid?6678 is valid6679 when entry value is not correct6680 #errors6681 when value of assets is invalid6682 reports error6683 when value of assets:links is empty6684 reports error6685 when there is an unknown key present6686 reports error6687Gitlab::DiscussionsDiff::HighlightCache6688 #write_multiple6689 sets multiple keys serializing content as JSON6690 #read_multiple6691 reads multiple keys and serializes content into Gitlab::Diff::Line objects6692 returns nil when cached key is not found6693 returns lines which rich_text are HTML-safe6694 #clear_multiple6695 removes all named keys6696 only removed named keys6697API::Validations::Validators::FilePath6698 when allowlist is not set6699 behaves like file validation6700 valid file path6701 does not raise a validation error6702 invalid file path6703 raise a validation error6704 behaves like file validation6705 valid file path6706 does not raise a validation error6707 invalid file path6708 raise a validation error6709 when allowlist is set6710 when file path is included in the allowlist6711 does not raise a validation error6712 when file path is not included in the allowlist6713 raises a validation error6714RuboCop::Cop::AvoidKeywordArgumentsInSidekiqWorkers6715 flags violation for keyword arguments usage in perform method signature6716 flags violation for optional keyword arguments usage in perform method signature6717 does not flag a violation for standard optional arguments usage in perform method signature6718 does not flag a violation for keyword arguments usage in non-perform method signatures6719 does not flag a violation for optional keyword arguments usage in non-perform method signatures6720Gitlab::SidekiqMiddleware::Monitor6721 #call6722 calls Gitlab::SidekiqDaemon::Monitor6723 passthroughs the return value6724 when cancel happens6725 skips the job6726 puts job in DeadSet6727Alerting::ProjectAlertingSetting6728 Associations6729 is expected to belong to project required:6730 #token6731 when set6732 reads the token6733 when not set6734 generates a token before validation6735Gitlab::SidekiqSignals6736 .install6737 not a process group leader6738 does nothing6739 as a process group leader6740 installs its own signal handlers for TERM and INT only6741 installs a forwarding signal handler for INT6742 raises if sidekiq no longer traps SIGINT6743 installs a forwarding signal handler for TERM6744 raises if sidekiq no longer traps SIGTERM6745RuboCop::Cop::CodeReuse::Finder6746 flags the use of a Finder inside another Finder6747 flags the use of a Finder inside a model class method6748 does not flag the use of a Finder in a non Finder file6749 does not flag the use of a Finder in a regular class method6750Gitlab::ZoomLinkExtractor6751 #links6752 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6753 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]6754 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]6755 is expected to eq ["https://zoom.us/j/1123433"]6756 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]6757 is expected to eq ["https://zoom.us/my/1123433"]6758 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]6759 is expected to eq ["https://gitlab.zoom.us/s/1123433"]6760 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]6761 is expected to eq ["https://gitlab.zoom.us/j/1123433"]6762 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]6763 is expected to eq ["https://gitlab.zoom.us/my/1123433"]6764 #match?6765 is true when a zoom link found6766 is false when no zoom link found6767Resolvers::GroupResolver6768 #resolve6769 batch-resolves groups by full path6770 resolves an unknown full_path to nil6771SnippetUserMention6772 associations6773 is expected to belong to snippet required:6774 is expected to belong to note required:6775 behaves like has user mentions6776 #has_mentions?6777 when no mentions6778 returns false6779 when mentioned_users_ids not null6780 returns true6781 when mentioned projects6782 returns true6783 when mentioned groups6784 returns true6785Types::QueryType6786 is called Query6787 has the expected fields6788 namespace field6789 finds namespaces by full path6790 project field6791 finds projects by full path6792 metadata field6793 returns metadata6794 issue field6795 returns issue6796JiraImport::ServerUsersMapperService6797 #execute6798 behaves like mapping jira users6799 jira_users is nil6800 returns an empty array6801 when jira_users is present6802 returns users mapped to Gitlab6803RuboCop::Cop::Migration::RemoveColumn6804 in a regular migration6805 registers an offense when remove_column is used in the change method6806 registers an offense when remove_column is used in the up method6807 registers no offense when remove_column is used in the down method6808 in a post-deployment migration6809 registers no offense6810 outside of a migration6811 registers no offense6812Gitlab::Lazy6813 when not calling any methods6814 does not call the supplied block6815 when calling a method on the object6816 lazy loads the value returned by the block6817 #respond_to?6818 returns true for a method defined on the wrapped object6819 returns false for a method not defined on the wrapped object6820Bitbucket::Connection6821 #get6822 calls OAuth2::AccessToken::get6823 #expired?6824 calls connection.expired?6825 #refresh!6826 calls connection.refresh!6827Gitlab::PhabricatorImport::WorkerState6828 #add_job6829 increments the counter for jobs6830 #remove_job6831 decrements the counter for jobs6832 #running_count6833 reads the value6834 returns 0 when nothing was set6835Gitlab::Config::Entry::Unspecified6836 #valid?6837 delegates method to entry6838 #errors6839 delegates method to entry6840 #value6841 delegates method to entry6842 #specified?6843 is always false6844DiffLineEntity6845 exposes correct attributes6846 #rich_text6847 when rich_line is present6848 behaves like escapes html tags6849 is expected to be html safe6850 when rich_line is not present6851 behaves like escapes html tags6852 is expected to be html safe6853Banzai::FilterArray6854 #insert_after6855 inserts an element after a provided element6856 inserts an element at the end when the provided element does not exist6857 #insert_before6858 inserts an element before a provided element6859 inserts an element at the beginning when the provided element does not exist6860Gitlab::Git::DiffStatsCollection6861 #find_by_path6862 returns stats by path when found6863 returns nil when stats is not found by path6864 #paths6865 returns only modified paths6866 #real_size6867 returns the number of modified files6868 returns capped number when it is bigger than max_files6869Gitlab::LetsEncrypt::Challenge6870 #status6871 delegates to Acme::Client::Resources::Challenge6872 #token6873 delegates to Acme::Client::Resources::Challenge6874 #file_content6875 delegates to Acme::Client::Resources::Challenge6876 #request_validation6877 delegates to Acme::Client::Resources::Challenge6878 #error6879 delegates to Acme::Client::Resources::Challenge6880SafeUrl6881 #safe_url6882 is expected to eq "http://example.com"6883 when URL contains credentials6884 is expected to eq "http://*****:*****@example.com"6885 when username is whitelisted6886 does expect the whitelisted username not to be masked6887 when URL is empty6888 is expected to be nil6889 when URI raises an error6890 is expected to be nil6891ProductAnalytics::BuildGraphService6892 returns a valid graph hash6893BitbucketServer::Collection6894 #current_page6895 returns 16896 #prev_page6897 returns nil6898 #next_page6899 returns 26900Metrics::UsersStarredDashboards::DeleteService6901 #execute6902 without dashboard_path6903 does not scope user starred dashboards by dashboard path6904 with dashboard_path6905 does scope user starred dashboards by dashboard path6906Gitlab::NamespacedSessionStore6907 current session6908 stores data under the specified key6909 retrieves data from the given key6910 passed in session6911 retrieves data from the given key6912Types::AlertManagement::StatusEnum6913 is expected to eq "AlertManagementStatus"6914 statuses6915 status_name: "TRIGGERED", status_value: 06916 exposes a status with the correct value6917 status_name: "ACKNOWLEDGED", status_value: 16918 exposes a status with the correct value6919 status_name: "RESOLVED", status_value: 26920 exposes a status with the correct value6921 status_name: "IGNORED", status_value: 36922 exposes a status with the correct value6923RuboCop::Cop::GroupPublicOrVisibleToUser6924 flags the use of Group.public_or_visible_to_user with a constant receiver6925 does not flat the use of public_or_visible_to_user with a constant that is not Group6926 does not flag the use of Group.public_or_visible_to_user with a send receiver6927Gitlab::Utils::SafeInlineHash6928 .merge_keys!6929 when hash is too big6930 raises an exception6931 when hash has an acceptaable size6932 returns a result of InlineHash6933Gitlab::LegacyGithubImport::IssuableFormatter6934 #project_association6935 is expected to raise NotImplementedError6936 #number6937 is expected to eq 426938 #find_condition6939 is expected to eq {:iid=>42}6940RuboCop::Cop::RSpec::ModifySidekiqMiddleware6941 registers an offence6942 can autocorrect the source6943Types::ErrorTracking::SentryDetailedErrorType6944 is expected to eq "SentryDetailedError"6945 is expected to require graphql authorizations :read_sentry_issue6946 exposes the expected fields6947Gitlab::SidekiqMiddleware::DuplicateJobs::Server6948 #call6949 removes the stored job from redis6950RuboCop::Cop::SidekiqOptionsQueue6951 registers an offense when `sidekiq_options` is used with the `queue` option6952 does not register an offense when `sidekiq_options` is used with another option6953Gitlab::Graphql::CallsGitaly::Instrumentation6954 #calls_gitaly_check6955 if there are no Gitaly calls6956 does not raise an error if calls_gitaly is false6957 if there is at least 1 Gitaly call6958 raises an error if calls_gitaly: is false or not defined6959Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata6960 #call6961 merges Application#logging_extras in to job6962 does not raise when the worker does not respond to #done_log_extra_metadata6963Gitlab::Audit::UnauthenticatedAuthor6964 #initialize6965 sets correct attributes6966 sets default name when it is not provided6967Gitlab::DependencyLinker::BaseLinker6968 #link6969 only converts valid links6970Resolvers::PackagesResolver6971 #resolve6972 is expected to contain exactly #<Packages::Package id: 22, project_id: 1449, created_at: "2020-08-25 15:57:55", updated_at: "2020-08-25 15:57:55", name: "my/company/app/my-app", version: "1.1-SNAPSHOT", package_type: "maven">6973Types::IssueStatusCountsType6974 is expected to eq "IssueStatusCountsType"6975 exposes the expected fields6976Types::ErrorTracking::SentryErrorStackTraceEntryType6977 is expected to eq "SentryErrorStackTraceEntry"6978 exposes the expected fields6979Types::Tree::BlobType6980 is expected to eq "Blob"6981 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, :web_path, :lfs_oid, and :mode6982Types::AlertManagement::AlertStatusCountsType6983 is expected to eq "AlertManagementAlertStatusCountsType"6984 exposes the expected fields6985Types::DesignManagement::DesignVersionEventEnum6986 is expected to eq "DesignVersionEvent"6987 exposes the correct event states6988RuboCop::Cop::Gitlab::Json6989 when JSON is called6990 behaves like registering call offense6991 registers an offense when the class calls JSON6992API::Entities::Nuget::PackageMetadataCatalogEntry6993 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"}6994Ci::ChangeVariablesService6995 #execute6996 delegates to ActiveRecord update6997Gitlab::GitalyClient::Util6998 .repository6999 creates a Gitaly::Repository with the given data7000Types::PermissionTypes::Snippet7001 returns the snippets permissions7002Gitlab::Kubernetes::ClusterRoleBinding7003 #generate7004 builds a Kubeclient Resource7005Types::PermissionTypes::User7006 returns user permissions7007Types::Notes::DiffPositionType7008 exposes the expected fields7009Types::ResolvableInterface7010 exposes the expected fields7011Knapsack report was generated. Preview:7012{7013 "spec/services/merge_requests/create_from_issue_service_spec.rb": 194.74088311195374,7014 "spec/models/cycle_analytics/production_spec.rb": 69.62492346763611,7015 "spec/services/projects/unlink_fork_service_spec.rb": 63.69156098365784,7016 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 44.49348521232605,7017 "spec/helpers/projects_helper_spec.rb": 44.86666560173035,7018 "spec/lib/gitlab/middleware/go_spec.rb": 42.01318097114563,7019 "spec/models/project_services/jira_service_spec.rb": 27.621708869934082,7020 "spec/presenters/merge_request_presenter_spec.rb": 24.1900577545166,7021 "spec/models/member_spec.rb": 22.856523036956787,7022 "spec/lib/gitlab/email/handler/create_note_handler_spec.rb": 20.8833646774292,7023 "spec/models/diff_note_spec.rb": 16.08129644393921,7024 "spec/models/snippet_spec.rb": 12.590471744537354,7025 "spec/lib/gitlab/asciidoc_spec.rb": 15.853312253952026,7026 "spec/presenters/clusters/cluster_presenter_spec.rb": 15.407466411590576,7027 "spec/lib/gitlab/tree_summary_spec.rb": 12.900180101394653,7028 "spec/routing/project_routing_spec.rb": 4.603760480880737,7029 "spec/models/commit_status_spec.rb": 8.987762928009033,7030 "spec/models/label_link_spec.rb": 8.992497205734253,7031 "spec/serializers/diffs_entity_spec.rb": 7.693145751953125,7032 "spec/lib/gitlab/import_export/after_export_strategies/web_upload_strategy_spec.rb": 6.814733982086182,7033 "spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb": 6.42233943939209,7034 "spec/serializers/pipeline_details_entity_spec.rb": 7.246230363845825,7035 "spec/models/commit_range_spec.rb": 5.159945011138916,7036 "spec/models/ci/pipeline_artifact_spec.rb": 4.808742523193359,7037 "spec/serializers/issue_entity_spec.rb": 6.066218852996826,7038 "spec/services/issues/import_csv_service_spec.rb": 6.506295680999756,7039 "spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb": 6.492922306060791,7040 "spec/models/timelog_spec.rb": 4.928750276565552,7041 "spec/models/design_management/version_spec.rb": 5.756314754486084,7042 "spec/services/deployments/older_deployments_drop_service_spec.rb": 3.555418014526367,7043 "spec/services/design_management/save_designs_service_spec.rb": 4.443170070648193,7044 "spec/finders/metrics/dashboards/annotations_finder_spec.rb": 5.46536660194397,7045 "spec/services/merge_requests/approval_service_spec.rb": 3.712254285812378,7046 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 4.528301954269409,7047 "spec/lib/gitlab/verify/job_artifacts_spec.rb": 3.9337990283966064,7048 "spec/serializers/test_suite_entity_spec.rb": 3.836047887802124,7049 "spec/helpers/todos_helper_spec.rb": 2.3610618114471436,7050 "spec/services/files/update_service_spec.rb": 2.8540446758270264,7051 "spec/serializers/diff_file_base_entity_spec.rb": 3.2274138927459717,7052 "spec/services/projects/container_repository/delete_tags_service_spec.rb": 2.589632272720337,7053 "spec/services/packages/nuget/metadata_extraction_service_spec.rb": 2.4433932304382324,7054 "spec/models/concerns/prometheus_adapter_spec.rb": 3.6484034061431885,7055 "spec/lib/gitlab/kubernetes/helm/init_command_spec.rb": 2.854600667953491,7056 "spec/services/issue_links/destroy_service_spec.rb": 3.7073628902435303,7057 "spec/services/boards/list_service_spec.rb": 3.033121109008789,7058 "spec/services/alert_management/alerts/update_service_spec.rb": 3.13755202293396,7059 "spec/serializers/test_report_summary_entity_spec.rb": 2.3812482357025146,7060 "spec/serializers/discussion_diff_file_entity_spec.rb": 2.500270128250122,7061 "spec/lib/gitlab/ci/status/build/retryable_spec.rb": 2.812711238861084,7062 "spec/services/metrics/dashboard/annotations/delete_service_spec.rb": 2.810333251953125,7063 "spec/policies/project_member_policy_spec.rb": 2.581662178039551,7064 "spec/services/resource_access_tokens/create_service_spec.rb": 2.3816285133361816,7065 "spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb": 1.5650634765625,7066 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 1.8701083660125732,7067 "spec/services/projects/hashed_storage/rollback_service_spec.rb": 1.626732587814331,7068 "spec/lib/gitlab/object_hierarchy_spec.rb": 2.6655938625335693,7069 "spec/models/terraform/state_spec.rb": 1.8562922477722168,7070 "spec/models/ssh_host_key_spec.rb": 2.254183769226074,7071 "spec/lib/gitlab/conflict/file_collection_spec.rb": 2.6513829231262207,7072 "spec/services/ci/daily_build_group_report_result_service_spec.rb": 2.0735232830047607,7073 "spec/services/test_hooks/system_service_spec.rb": 2.2828028202056885,7074 "spec/lib/gitlab/slash_commands/run_spec.rb": 1.812626838684082,7075 "spec/services/ci/archive_trace_service_spec.rb": 1.9765565395355225,7076 "spec/views/shared/notes/_form.html.haml_spec.rb": 1.391667127609253,7077 "spec/services/projects/move_notification_settings_service_spec.rb": 1.776170015335083,7078 "spec/lib/gitlab/gitlab_import/project_creator_spec.rb": 1.7803292274475098,7079 "spec/models/project_services/issue_tracker_service_spec.rb": 1.0211865901947021,7080 "spec/models/legacy_diff_discussion_spec.rb": 1.3188199996948242,7081 "spec/lib/sentry/client/issue_spec.rb": 1.7993760108947754,7082 "spec/views/projects/buttons/_dropdown.html.haml_spec.rb": 1.3943593502044678,7083 "spec/views/search/_results.html.haml_spec.rb": 1.5142602920532227,7084 "spec/lib/gitlab/ci/cron_parser_spec.rb": 1.5725936889648438,7085 "spec/graphql/mutations/issues/set_confidential_spec.rb": 1.5742619037628174,7086 "spec/finders/protected_branches_finder_spec.rb": 1.2805237770080566,7087 "spec/config/mail_room_spec.rb": 1.552032709121704,7088 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 1.186783790588379,7089 "spec/models/project_services/chat_message/deployment_message_spec.rb": 1.0576910972595215,7090 "spec/policies/design_management/design_policy_spec.rb": 0.855811595916748,7091 "spec/services/notes/resolve_service_spec.rb": 1.152397871017456,7092 "spec/services/groups/auto_devops_service_spec.rb": 0.9590816497802734,7093 "spec/models/concerns/access_requestable_spec.rb": 1.1188170909881592,7094 "spec/finders/boards/visits_finder_spec.rb": 1.4773988723754883,7095 "spec/policies/ci/pipeline_schedule_policy_spec.rb": 1.0890583992004395,7096 "spec/rack_servers/unicorn_spec.rb": 1.2956430912017822,7097 "spec/models/project_services/campfire_service_spec.rb": 0.7677621841430664,7098 "spec/models/project_authorization_spec.rb": 0.6998369693756104,7099 "spec/models/alert_management/alert_assignee_spec.rb": 0.7910985946655273,7100 "spec/serializers/evidences/milestone_entity_spec.rb": 1.2098259925842285,7101 "spec/lib/gitlab/database_importers/common_metrics/importer_spec.rb": 1.0131573677062988,7102 "spec/lib/gitlab/ci/status/build/canceled_spec.rb": 0.6394178867340088,7103 "spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb": 0.8910691738128662,7104 "spec/lib/system_check/orphans/repository_check_spec.rb": 0.3866269588470459,7105 "spec/lib/grafana/client_spec.rb": 0.548983097076416,7106 "spec/services/ci/build_report_result_service_spec.rb": 0.8704671859741211,7107 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 0.5375545024871826,7108 "spec/services/groups/group_links/update_service_spec.rb": 1.0256683826446533,7109 "spec/services/projects/move_users_star_projects_service_spec.rb": 1.0017750263214111,7110 "spec/workers/project_destroy_worker_spec.rb": 0.6891179084777832,7111 "spec/presenters/projects/prometheus/alert_presenter_spec.rb": 0.6761016845703125,7112 "spec/finders/projects/export_job_finder_spec.rb": 1.1390187740325928,7113 "spec/lib/gitlab/legacy_github_import/release_formatter_spec.rb": 0.8838977813720703,7114 "spec/lib/gitlab/import_export/import_export_spec.rb": 0.682222843170166,7115 "spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb": 0.665233850479126,7116 "spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb": 0.6378333568572998,7117 "spec/lib/banzai/filter/commit_trailers_filter_spec.rb": 1.0802009105682373,7118 "spec/serializers/merge_request_user_entity_spec.rb": 0.3187985420227051,7119 "spec/lib/gitlab/utils/override_spec.rb": 0.5353753566741943,7120 "spec/services/events/render_service_spec.rb": 0.5681331157684326,7121 "spec/models/approval_spec.rb": 0.48169994354248047,7122 "spec/lib/gitlab/serializer/pagination_spec.rb": 0.6299686431884766,7123 "spec/services/branches/diverging_commit_counts_service_spec.rb": 0.5030579566955566,7124 "spec/graphql/resolvers/alert_management/alert_resolver_spec.rb": 0.4751091003417969,7125 "spec/services/users/update_highest_member_role_service_spec.rb": 0.5084154605865479,7126 "spec/workers/object_pool/destroy_worker_spec.rb": 0.5438389778137207,7127 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 0.37483739852905273,7128 "spec/lib/gitlab/dependency_linker/gemspec_linker_spec.rb": 0.08195042610168457,7129 "spec/views/projects/blob/_viewer.html.haml_spec.rb": 0.475452184677124,7130 "spec/models/import_export_upload_spec.rb": 0.43652939796447754,7131 "spec/models/packages/maven/metadatum_spec.rb": 0.557225227355957,7132 "spec/lib/gitlab/middleware/multipart_spec.rb": 0.16205453872680664,7133 "spec/workers/clusters/applications/wait_for_uninstall_app_worker_spec.rb": 0.5270664691925049,7134 "spec/models/concerns/editable_spec.rb": 0.6002287864685059,7135 "spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb": 0.5315427780151367,7136 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.0655827522277832,7137 "spec/lib/gitlab/git/repository_cleaner_spec.rb": 0.6402816772460938,7138 "spec/helpers/analytics/unique_visits_helper_spec.rb": 0.39485597610473633,7139 "spec/services/users/update_canonical_email_service_spec.rb": 0.4070169925689697,7140 "spec/services/projects/forks_count_service_spec.rb": 0.3253440856933594,7141 "spec/views/search/show.html.haml_spec.rb": 0.5674951076507568,7142 "spec/models/project_services/flowdock_service_spec.rb": 0.41988444328308105,7143 "spec/services/system_notes/alert_management_service_spec.rb": 0.36032676696777344,7144 "spec/models/concerns/from_union_spec.rb": 0.3487677574157715,7145 "spec/uploaders/gitlab_uploader_spec.rb": 0.06465482711791992,7146 "spec/serializers/analytics_issue_serializer_spec.rb": 0.24459505081176758,7147 "spec/lib/gitlab/instrumentation_helper_spec.rb": 0.2601969242095947,7148 "spec/workers/update_project_statistics_worker_spec.rb": 0.22777915000915527,7149 "spec/lib/banzai/commit_renderer_spec.rb": 0.30930471420288086,7150 "spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb": 0.2839536666870117,7151 "spec/lib/gitlab/verify/lfs_objects_spec.rb": 0.25591325759887695,7152 "spec/helpers/clusters_helper_spec.rb": 0.1560652256011963,7153 "spec/services/emails/create_service_spec.rb": 0.25991344451904297,7154 "spec/views/shared/projects/_project.html.haml_spec.rb": 0.17955470085144043,7155 "spec/workers/ci/pipelines/create_artifact_worker_spec.rb": 0.28496313095092773,7156 "spec/services/notification_recipients/builder/default_spec.rb": 0.26838183403015137,7157 "spec/lib/gitlab/database/background_migration_job_spec.rb": 0.23193597793579102,7158 "spec/serializers/issue_serializer_spec.rb": 0.19520044326782227,7159 "spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb": 0.14920783042907715,7160 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.2048964500427246,7161 "spec/models/packages/go/module_version_spec.rb": 0.4264695644378662,7162 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 0.22877049446105957,7163 "spec/lib/gitlab/dependency_linker/composer_json_linker_spec.rb": 0.1651453971862793,7164 "spec/graphql/resolvers/commit_pipelines_resolver_spec.rb": 0.16199326515197754,7165 "spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb": 0.2568473815917969,7166 "spec/lib/gitlab/snippet_search_results_spec.rb": 0.14803385734558105,7167 "spec/lib/gitlab/danger/emoji_checker_spec.rb": 0.09889364242553711,7168 "spec/initializers/mail_encoding_patch_spec.rb": 0.1067514419555664,7169 "spec/lib/gitlab/etag_caching/middleware_spec.rb": 0.13002681732177734,7170 "spec/lib/gitlab/sidekiq_cluster_spec.rb": 0.12197399139404297,7171 "spec/lib/gitlab/badge/pipeline/template_spec.rb": 0.05112123489379883,7172 "spec/rubocop/cop/code_reuse/active_record_spec.rb": 0.04956245422363281,7173 "spec/lib/gitlab/batch_pop_queueing_spec.rb": 0.1208808422088623,7174 "spec/finders/packages/nuget/package_finder_spec.rb": 0.0894918441772461,7175 "spec/models/ci/sources/pipeline_spec.rb": 0.0958261489868164,7176 "spec/models/design_management/action_spec.rb": 0.06279373168945312,7177 "spec/helpers/sourcegraph_helper_spec.rb": 0.4326016902923584,7178 "spec/lib/banzai/filter/table_of_contents_filter_spec.rb": 0.1219491958618164,7179 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 0.09278154373168945,7180 "spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb": 0.0941920280456543,7181 "spec/lib/gitlab/repository_hash_cache_spec.rb": 0.09191012382507324,7182 "spec/finders/autocomplete/acts_as_taggable_on/tags_finder_spec.rb": 0.08526492118835449,7183 "spec/rubocop/cop/avoid_return_from_blocks_spec.rb": 0.08115530014038086,7184 "spec/tasks/config_lint_spec.rb": 0.07509374618530273,7185 "spec/lib/gitlab/gl_repository/identifier_spec.rb": 0.18421149253845215,7186 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.11828446388244629,7187 "spec/services/git/wiki_push_service/change_spec.rb": 0.10833406448364258,7188 "spec/lib/gitlab/ci/config/entry/port_spec.rb": 0.15912604331970215,7189 "spec/lib/gitlab/git/blame_spec.rb": 0.07177853584289551,7190 "spec/serializers/move_to_project_serializer_spec.rb": 0.08461284637451172,7191 "spec/lib/gitlab/metrics/dashboard/cache_spec.rb": 0.07551884651184082,7192 "spec/lib/gitlab/github_import/parallel_scheduling_spec.rb": 0.11678600311279297,7193 "spec/models/container_registry/event_spec.rb": 0.07062411308288574,7194 "spec/lib/banzai/filter/math_filter_spec.rb": 0.08503508567810059,7195 "spec/services/packages/nuget/create_package_service_spec.rb": 0.048047780990600586,7196 "spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb": 0.059383392333984375,7197 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.024846315383911133,7198 "spec/models/concerns/has_user_type_spec.rb": 0.06758809089660645,7199 "spec/lib/bitbucket/representation/issue_spec.rb": 0.053125619888305664,7200 "spec/lib/gitlab/metrics/dashboard/stages/track_panel_type_spec.rb": 0.04325246810913086,7201 "spec/workers/ci/create_cross_project_pipeline_worker_spec.rb": 0.03877758979797363,7202 "spec/lib/gitlab/omniauth_initializer_spec.rb": 0.33533596992492676,7203 "spec/lib/gitlab/batch_worker_context_spec.rb": 0.0456385612487793,7204 "spec/lib/gitlab/emoji_spec.rb": 0.06165194511413574,7205 "spec/workers/update_external_pull_requests_worker_spec.rb": 0.05776858329772949,7206 "spec/models/alert_management/alert_user_mention_spec.rb": 0.024305105209350586,7207 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1_spec.rb": 0.04803943634033203,7208 "spec/rubocop/cop/migration/add_reference_spec.rb": 0.046363115310668945,7209 "spec/lib/gitlab/usage_data_counters/source_code_counter_spec.rb": 0.040332794189453125,7210 "spec/lib/api/helpers/packages_helpers_spec.rb": 0.03640031814575195,7211 "spec/rubocop/cop/scalability/cron_worker_context_spec.rb": 0.030866622924804688,7212 "spec/lib/bitbucket_server/representation/repo_spec.rb": 0.023349761962890625,7213 "spec/lib/gitlab/ci/config/entry/kubernetes_spec.rb": 0.06499600410461426,7214 "spec/lib/gitlab/language_detection_spec.rb": 0.039193153381347656,7215 "spec/rubocop/cop/active_record_association_reload_spec.rb": 0.030160903930664062,7216 "spec/lib/gitlab/internal_post_receive/response_spec.rb": 0.03418231010437012,7217 "spec/lib/gitlab/sherlock/middleware_spec.rb": 0.027120113372802734,7218 "spec/finders/applications_finder_spec.rb": 0.05265235900878906,7219 "spec/models/protected_tag_spec.rb": 0.02538585662841797,7220 "spec/rubocop/cop/code_reuse/worker_spec.rb": 0.03184771537780762,7221 "spec/lib/gitlab/quick_actions/substitution_definition_spec.rb": 0.021846532821655273,7222 "spec/lib/gitlab/ci/config/entry/release/assets_spec.rb": 0.023206233978271484,7223 "spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb": 0.028592824935913086,7224 "spec/lib/api/validations/validators/file_path_spec.rb": 0.021210193634033203,7225 "spec/rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers_spec.rb": 0.019241809844970703,7226 "spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb": 0.01842975616455078,7227 "spec/models/alerting/project_alerting_setting_spec.rb": 0.024555683135986328,7228 "spec/lib/gitlab/sidekiq_signals_spec.rb": 0.0203704833984375,7229 "spec/rubocop/cop/code_reuse/finder_spec.rb": 0.02024674415588379,7230 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 0.023942232131958008,7231 "spec/graphql/resolvers/group_resolver_spec.rb": 0.017087459564208984,7232 "spec/models/user_mentions/snippet_user_mention_spec.rb": 0.021770954132080078,7233 "spec/graphql/types/query_type_spec.rb": 0.01701831817626953,7234 "spec/services/jira_import/server_users_mapper_service_spec.rb": 0.005776166915893555,7235 "spec/rubocop/cop/migration/remove_column_spec.rb": 0.021498918533325195,7236 "spec/lib/gitlab/lazy_spec.rb": 0.011605978012084961,7237 "spec/lib/bitbucket/connection_spec.rb": 0.012579202651977539,7238 "spec/lib/gitlab/phabricator_import/worker_state_spec.rb": 0.01653122901916504,7239 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 0.011442899703979492,7240 "spec/serializers/diff_line_entity_spec.rb": 0.009286642074584961,7241 "spec/lib/banzai/filter_array_spec.rb": 0.011725425720214844,7242 "spec/lib/gitlab/git/diff_stats_collection_spec.rb": 0.015639781951904297,7243 "spec/lib/gitlab/lets_encrypt/challenge_spec.rb": 0.018342018127441406,7244 "spec/models/concerns/safe_url_spec.rb": 0.015142202377319336,7245 "spec/services/product_analytics/build_graph_service_spec.rb": 0.012791633605957031,7246 "spec/lib/bitbucket_server/collection_spec.rb": 0.013628482818603516,7247 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 0.017146587371826172,7248 "spec/lib/gitlab/namespaced_session_store_spec.rb": 0.010226011276245117,7249 "spec/graphql/types/alert_management/status_enum_spec.rb": 0.014421939849853516,7250 "spec/rubocop/cop/group_public_or_visible_to_user_spec.rb": 0.01363372802734375,7251 "spec/lib/gitlab/utils/safe_inline_hash_spec.rb": 0.015347480773925781,7252 "spec/lib/gitlab/legacy_github_import/issuable_formatter_spec.rb": 0.01365208625793457,7253 "spec/rubocop/cop/rspec/modify_sidekiq_middleware_spec.rb": 0.010892629623413086,7254 "spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb": 0.012209892272949219,7255 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/server_spec.rb": 0.008736133575439453,7256 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.009252309799194336,7257 "spec/lib/gitlab/graphql/calls_gitaly/instrumentation_spec.rb": 0.008590936660766602,7258 "spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb": 0.006815433502197266,7259 "spec/lib/gitlab/audit/unauthenticated_author_spec.rb": 0.006569862365722656,7260 "spec/lib/gitlab/dependency_linker/base_linker_spec.rb": 0.007117033004760742,7261 "spec/graphql/resolvers/packages_resolver_spec.rb": 0.007248878479003906,7262 "spec/graphql/types/issue_status_count_type_spec.rb": 0.005979776382446289,7263 "spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb": 0.0057866573333740234,7264 "spec/graphql/types/tree/blob_type_spec.rb": 0.006218671798706055,7265 "spec/graphql/types/alert_management/alert_status_count_type_spec.rb": 0.005783557891845703,7266 "spec/graphql/types/design_management/design_version_event_enum_spec.rb": 0.00547027587890625,7267 "spec/rubocop/cop/gitlab/json_spec.rb": 0.004861354827880859,7268 "spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb": 0.003864288330078125,7269 "spec/services/ci/change_variables_service_spec.rb": 0.0034608840942382812,7270 "spec/lib/gitlab/gitaly_client/util_spec.rb": 0.004213094711303711,7271 "spec/graphql/types/permission_types/snippet_spec.rb": 0.003340005874633789,7272 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.0030553340911865234,7273 "spec/graphql/types/permission_types/user_spec.rb": 0.00295257568359375,7274 "spec/graphql/types/notes/diff_position_type_spec.rb": 0.0030794143676757812,7275 "spec/graphql/types/resolvable_interface_spec.rb": 0.0031216144561767587276}7277Knapsack global time execution for tests: 14m 42s7278Pending: (Failures listed here are expected and do not affect your suite's status)7279 1) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 7280 # No pattern provided, skipping.7281 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87282 2) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 7283 # No pattern provided, skipping.7284 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87285 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative7286 # Path not set, skipping.7287 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:397288 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7289 # No pattern provided, skipping.7290 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87291 5) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7292 # No pattern provided, skipping.7293 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87294 6) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7295 # No pattern provided, skipping.7296 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87297 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative7298 # Path not set, skipping.7299 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:397300 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7301 # No pattern provided, skipping.7302 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87303 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7304 # No pattern provided, skipping.7305 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87306 10) Member.add_user when source is a project when admin mode is disabled rejects setting members.created_by to the given admin current_user7307 # Temporarily skipped with xit7308 # ./spec/models/member_spec.rb:2787309 11) Member.add_user when source is a group when admin mode is disabled rejects setting members.created_by to the given admin current_user7310 # Temporarily skipped with xit7311 # ./spec/models/member_spec.rb:2787312 12) DesignManagement::SaveDesignsService#execute when the feature is available scalability runs the same queries for all requests, regardless of number of files7314 # ./spec/services/design_management/save_designs_service_spec.rb:3277315 13) Gitlab::GlRepository::Identifier project repository https://gitlab.com/gitlab-org/gitlab/-/issues/2191927316 # No reason given7317 Failure/Error:7318 it_behaves_like 'parsing gl_repository identifier' do7319 let(:record_id) { project.id }7320 let(:identifier) { "project-#{record_id}-code" }7321 let(:expected_container) { project }7322 let(:expected_type) { Gitlab::GlRepository::PROJECT }7323 end7324 `it_behaves_like` is not available from within an example (e.g. an `it` block) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). It is only available on an example group (e.g. a `describe` or `context` block).7325 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:746:in `method_missing'7326 # ./vendor/ruby/2.6.0/gems/grape-path-helpers-1.3.0/lib/grape-path-helpers/named_route_matcher.rb:7:in `method_missing'7327 # ./spec/lib/gitlab/gl_repository/identifier_spec.rb:19:in `block (3 levels) in <top (required)>'7328 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `instance_exec'7329 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `block in run'7330 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'7331 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'7332 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `block in run'7333 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:612:in `block in run_around_example_hooks_for'7334 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7335 # ./vendor/ruby/2.6.0/gems/rspec-rails-4.0.0/lib/rspec/rails/adapters.rb:75:in `block (2 levels) in <module:MinitestLifecycleAdapter>'7336 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7337 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7338 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7339 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7340 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7341 # ./spec/spec_helper.rb:316:in `block (3 levels) in <top (required)>'7342 # ./vendor/ruby/2.6.0/gems/sidekiq-5.2.9/lib/sidekiq/testing.rb:55:in `server_middleware'7343 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'7344 # ./spec/spec_helper.rb:307:in `block (2 levels) in <top (required)>'7345 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7346 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7347 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7348 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7349 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7350 # ./spec/spec_helper.rb:303:in `block (3 levels) in <top (required)>'7351 # ./vendor/ruby/2.6.0/gems/gitlab-labkit-0.12.1/lib/labkit/context.rb:32:in `with_context'7352 # ./spec/spec_helper.rb:303:in `block (2 levels) in <top (required)>'7353 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7354 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7355 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7356 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7357 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7358 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'7359 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'7360 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'7361 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'7362 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:37:in `block (2 levels) in setup'7363 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7364 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7365 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7366 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7367 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7368 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:615:in `run_around_example_hooks_for'7369 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `run'7370 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `with_around_example_hooks'7371 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'7372 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in `run'7373 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in `block in run_examples'7374 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `map'7375 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `run_examples'7376 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in `run'7377 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'7378 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'7379 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'7380 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'7381 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `map'7382 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'7383 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'7384 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in `block in run_specs'7385 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in `report'7386 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in `run_specs'7387 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in `run'7388 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in `run'7389 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in `invoke'7390 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/exe/rspec:4:in `<top (required)>'7391 # ./vendor/ruby/2.6.0/bin/rspec:23:in `load'7392 # ./vendor/ruby/2.6.0/bin/rspec:23:in `<top (required)>'7393 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'7394 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'7395 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'7396 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'7397 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'7398 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'7399 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'7400 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'7401 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'7402 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'7403 # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'7404 # /usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'7405 # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'7406 # /usr/local/bin/bundle:23:in `load'7407 # /usr/local/bin/bundle:23:in `<main>'7408 14) Gitlab::GlRepository::Identifier when the format is incorrect raises InvalidIdentifier on project-1-project7410 Failure/Error: expect { described_class.parse('project-1-project') }.to raise_error(described_class::InvalidIdentifier)7411 expected Gitlab::GlRepository::Identifier::InvalidIdentifier but nothing was raised7412 # ./vendor/ruby/2.6.0/gems/rspec-support-3.9.2/lib/rspec/support.rb:97:in `block in <module:Support>'7413 # ./vendor/ruby/2.6.0/gems/rspec-support-3.9.2/lib/rspec/support.rb:106:in `notify_failure'7414 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/fail_with.rb:35:in `fail_with'7415 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/handler.rb:40:in `handle_failure'7416 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/handler.rb:50:in `block in handle_matcher'7417 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'7418 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'7419 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/expectation_target.rb:65:in `to'7420 # ./vendor/ruby/2.6.0/gems/rspec-expectations-3.9.1/lib/rspec/expectations/expectation_target.rb:101:in `to'7421 # ./spec/lib/gitlab/gl_repository/identifier_spec.rb:102:in `block (3 levels) in <top (required)>'7422 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `instance_exec'7423 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:257:in `block in run'7424 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `block in with_around_and_singleton_context_hooks'7425 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `block in with_around_example_hooks'7426 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `block in run'7427 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:612:in `block in run_around_example_hooks_for'7428 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7429 # ./vendor/ruby/2.6.0/gems/rspec-rails-4.0.0/lib/rspec/rails/adapters.rb:75:in `block (2 levels) in <module:MinitestLifecycleAdapter>'7430 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7431 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7432 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7433 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7434 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7435 # ./spec/spec_helper.rb:316:in `block (3 levels) in <top (required)>'7436 # ./vendor/ruby/2.6.0/gems/sidekiq-5.2.9/lib/sidekiq/testing.rb:55:in `server_middleware'7437 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'7438 # ./spec/spec_helper.rb:307:in `block (2 levels) in <top (required)>'7439 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7440 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7441 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7442 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7443 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7444 # ./spec/spec_helper.rb:303:in `block (3 levels) in <top (required)>'7445 # ./vendor/ruby/2.6.0/gems/gitlab-labkit-0.12.1/lib/labkit/context.rb:32:in `with_context'7446 # ./spec/spec_helper.rb:303:in `block (2 levels) in <top (required)>'7447 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7448 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7449 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7450 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7451 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7452 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:123:in `block in run'7453 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `loop'7454 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:110:in `run'7455 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'7456 # ./vendor/ruby/2.6.0/gems/rspec-retry-0.6.1/lib/rspec/retry.rb:37:in `block (2 levels) in setup'7457 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7458 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:450:in `instance_exec'7459 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:381:in `execute_with'7460 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:614:in `block (2 levels) in run_around_example_hooks_for'7461 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:345:in `call'7462 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:615:in `run_around_example_hooks_for'7463 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/hooks.rb:472:in `run'7464 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:460:in `with_around_example_hooks'7465 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:503:in `with_around_and_singleton_context_hooks'7466 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example.rb:254:in `run'7467 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:633:in `block in run_examples'7468 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `map'7469 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:629:in `run_examples'7470 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:595:in `run'7471 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `block in run'7472 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `map'7473 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/example_group.rb:596:in `run'7474 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'7475 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `map'7476 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'7477 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'7478 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:116:in `block in run_specs'7479 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/reporter.rb:74:in `report'7480 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:115:in `run_specs'7481 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:89:in `run'7482 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:71:in `run'7483 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/lib/rspec/core/runner.rb:45:in `invoke'7484 # ./vendor/ruby/2.6.0/gems/rspec-core-3.9.1/exe/rspec:4:in `<top (required)>'7485 # ./vendor/ruby/2.6.0/bin/rspec:23:in `load'7486 # ./vendor/ruby/2.6.0/bin/rspec:23:in `<top (required)>'7487 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'7488 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'7489 # /usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'7490 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'7491 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'7492 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'7493 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'7494 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'7495 # /usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'7496 # /usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'7497 # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'7498 # /usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'7499 # /usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'7500 # /usr/local/bin/bundle:23:in `load'7501 # /usr/local/bin/bundle:23:in `<main>'7502Finished in 24 minutes 39 seconds (files took 59.64 seconds to load)75033286 examples, 0 failures, 14 pending7504Tue Aug 25 15:58:15 UTC 20207506Not uploading cache rails-v2-3 due to policy7508Uploading artifacts...7509coverage/: found 5 matching files and directories 7510knapsack/: found 3 matching files and directories 7511rspec_flaky/: found 4 matching files and directories 7512rspec_profiling/: found 2 matching files and directories 7513WARNING: tmp/capybara/: no matching files 7514tmp/memory_test/: found 2 matching files and directories 7515log/*.log: found 14 matching files and directories 7516Uploading artifacts as "archive" to coordinator... ok id=702959662 responseStatus=201 Created token=vPMZye6s7517Uploading artifacts...7518junit_rspec.xml: found 1 matching files and directories 7519Uploading artifacts as "junit" to coordinator... ok id=702959662 responseStatus=201 Created token=vPMZye6s7520Job succeeded