rspec unit pg9-as-if-foss 16/20
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 12.8.0 (1b659122)2 on docker-auto-scale-com d5ae8d25 3 Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-9.6-graphicsmagick-1.3.34 ...
00:07
4Starting service postgres:9.6.17 ...5Pulling docker image postgres:9.6.17 ...6Using docker image sha256:16f0ba6ed8573409271c409348548ecbefb874f39717d70ea34f3d888631dbb8 for postgres:9.6.17 ...7Starting service redis:alpine ...8Pulling docker image redis:alpine ...9Using docker image sha256:b68707e68547e636f2544e9283f02beed46d536f644573c8b35c368f9abbe078 for redis:alpine ...10Waiting for services to be up and running...11Authenticating with credentials from job payload (GitLab Registry)12Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-9.6-graphicsmagick-1.3.34 ...13Using docker image sha256:0f9ca78298a31444537de457edb9067ada5eff69e276ed8949386f35b3760183 for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-9.6-graphicsmagick-1.3.34 ... 14 Running on runner-d5ae8d25-project-278964-concurrent-0 via runner-d5ae8d25-gsrm-1583375531-8bafe932...
00:02
16Downloading archived master...17Connecting to storage.googleapis.com (172.217.203.128:443)18gitlab.tar.gz 8% |** | 70.8M 0:00:10 ETA19gitlab.tar.gz 52% |**************** | 446M 0:00:01 ETA20gitlab.tar.gz 91% |***************************** | 776M 0:00:00 ETA21gitlab.tar.gz 100% |********************************| 845M 0:00:00 ETA22Extracting tarball into /builds/gitlab-org/gitlab...23Fetching changes with git depth set to 20...24Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/25Created fresh repository.27 * [new ref] refs/pipelines/123433062 -> refs/pipelines/12343306228 * [new branch] master -> origin/master29Checking out 2e08c928 as master...30Skipping Git submodules setup32Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/debian-stretch-ruby-2.6.5-pg9.6-node-12.x-3 33Successfully extracted cache35Downloading artifacts from coordinator... ok id=460116508 responseStatus=200 OK token=tfNsxF4W36Downloading artifacts for retrieve-tests-metadata (460116515)...37Downloading artifacts from coordinator... ok id=460116515 responseStatus=200 OK token=wqtvmKyQ38Downloading artifacts for setup-test-env (460116509)...39Downloading artifacts from coordinator... ok id=460116509 responseStatus=200 OK token=sAvRzHNN40WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 42$ date43Thu Mar 5 04:26:08 UTC 202044$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb45$ export GOPATH=$CI_PROJECT_DIR/.go46$ mkdir -p $GOPATH47$ source scripts/utils.sh48$ source scripts/prepare_build.sh49Bundler version 1.17.250Warning: 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`.51The Gemfile's dependencies are satisfied52Successfully installed knapsack-1.18.0531 gem installed54CREATE ROLE55GRANT56Dropped database 'gitlabhq_test'57Created database 'gitlabhq_test'58$ date59Thu Mar 5 04:26:45 UTC 202060$ source scripts/rspec_helpers.sh61$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"62KNAPSACK_TEST_FILE_PATTERN: spec/{bin,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}{,/**/}*_spec.rb63Checking gitaly-ruby Gemfile...64Checking gitaly-ruby bundle...65Warning: 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`.66The Gemfile's dependencies are satisfied67Trying to connect to gitaly: ....... OK68Report specs:69spec/finders/merge_requests_finder_spec.rb70spec/models/concerns/milestoneish_spec.rb71spec/services/issuable/bulk_update_service_spec.rb72spec/helpers/projects_helper_spec.rb73spec/models/clusters/applications/prometheus_spec.rb74spec/models/clusters/applications/runner_spec.rb75spec/services/notes/update_service_spec.rb76spec/services/groups/transfer_service_spec.rb77spec/finders/notes_finder_spec.rb78spec/serializers/deployment_entity_spec.rb79spec/models/project_wiki_spec.rb80spec/lib/gitlab/bare_repository_import/importer_spec.rb81spec/models/project_services/bamboo_service_spec.rb82spec/models/project_services/hipchat_service_spec.rb83spec/lib/gitlab/lets_encrypt/client_spec.rb84spec/services/event_create_service_spec.rb85spec/models/merge_request_diff_file_spec.rb86spec/serializers/merge_request_poll_cached_widget_entity_spec.rb87spec/lib/banzai/filter/user_reference_filter_spec.rb88spec/views/projects/merge_requests/creations/_new_submit.html.haml_spec.rb89spec/models/ci/legacy_stage_spec.rb90spec/models/concerns/subscribable_spec.rb91spec/services/test_hooks/project_service_spec.rb92spec/lib/gitlab/background_migration/fix_cross_project_label_links_spec.rb93spec/lib/gitlab/project_template_spec.rb94spec/finders/pending_todos_finder_spec.rb95spec/lib/banzai/reference_parser/user_parser_spec.rb96spec/models/ci/group_spec.rb97spec/lib/gitlab/cluster/mixins/puma_cluster_spec.rb98spec/services/issuable/common_system_notes_service_spec.rb99spec/services/clusters/applications/install_service_spec.rb100spec/models/discussion_spec.rb101spec/models/commit_collection_spec.rb102spec/models/award_emoji_spec.rb103spec/services/merge_requests/post_merge_service_spec.rb104spec/models/user_interacted_project_spec.rb105spec/services/git/base_hooks_service_spec.rb106spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb107spec/workers/stuck_merge_jobs_worker_spec.rb108spec/lib/gitlab/kubernetes/helm/certificate_spec.rb109spec/lib/container_registry/path_spec.rb110spec/presenters/project_clusterable_presenter_spec.rb111spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb112spec/services/issues/referenced_merge_requests_service_spec.rb113spec/graphql/features/authorization_spec.rb114spec/workers/expire_build_instance_artifacts_worker_spec.rb115spec/services/ci/create_job_artifacts_service_spec.rb116spec/lib/gitlab/template/issue_template_spec.rb117spec/lib/gitlab/ci/status/build/common_spec.rb118spec/services/members/create_service_spec.rb119spec/lib/gitlab/git/cross_repo_comparer_spec.rb120spec/models/x509_commit_signature_spec.rb121spec/lib/gitlab/application_rate_limiter_spec.rb122spec/models/cycle_analytics/project_level_spec.rb123spec/lib/gitlab/lfs_token_spec.rb124spec/views/projects/deployments/_confirm_rollback_modal_spec.html_spec.rb125spec/lib/banzai/reference_parser/external_issue_parser_spec.rb126spec/lib/gitlab/ci/build/step_spec.rb127spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb128spec/services/wiki_pages/create_service_spec.rb129spec/lib/gitlab/checks/lfs_check_spec.rb130spec/services/search/group_service_spec.rb131spec/models/prometheus_alert_spec.rb132spec/views/projects/pipelines/_stage.html.haml_spec.rb133spec/services/labels/update_service_spec.rb134spec/lib/gitlab/data_builder/deployment_spec.rb135spec/lib/gitlab/checks/project_moved_spec.rb136spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb137spec/lib/gitlab/background_migration/migrate_build_stage_spec.rb138spec/routing/uploads_routing_spec.rb139spec/validators/addressable_url_validator_spec.rb140spec/services/projects/batch_open_issues_count_service_spec.rb141spec/lib/gitlab/visibility_level_checker_spec.rb142spec/views/projects/commits/_commit.html.haml_spec.rb143spec/presenters/web_hook_log_presenter_spec.rb144spec/finders/users_with_pending_todos_finder_spec.rb145spec/workers/cluster_configure_istio_worker_spec.rb146spec/workers/migrate_external_diffs_worker_spec.rb147spec/lib/gitlab/background_migration/digest_column_spec.rb148spec/lib/gitlab/current_settings_spec.rb149spec/services/clusters/create_service_spec.rb150spec/helpers/environment_helper_spec.rb151spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb152spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb153spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb154spec/services/tags/destroy_service_spec.rb155spec/lib/gitlab/ci/build/policy/changes_spec.rb156spec/helpers/storage_helper_spec.rb157spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb158spec/services/clusters/aws/provision_service_spec.rb159spec/serializers/evidences/release_entity_spec.rb160spec/services/milestones/create_service_spec.rb161spec/lib/gitlab/ci/status/build/created_spec.rb162spec/lib/gitlab/utils/override_spec.rb163spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb164spec/lib/gitlab/git/diff_spec.rb165spec/policies/clusters/instance_policy_spec.rb166spec/workers/update_project_statistics_worker_spec.rb167spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb168spec/services/users/signup_service_spec.rb169spec/views/projects/services/edit.html.haml_spec.rb170spec/models/wiki_directory_spec.rb171spec/services/branches/diverging_commit_counts_service_spec.rb172spec/lib/gitlab/github_import/parallel_importer_spec.rb173spec/workers/stage_update_worker_spec.rb174spec/lib/gitlab/octokit/middleware_spec.rb175spec/lib/constraints/group_url_constrainer_spec.rb176spec/services/emails/destroy_service_spec.rb177spec/lib/gitlab/ci/config/external/mapper_spec.rb178spec/graphql/types/snippet_type_spec.rb179spec/services/users/respond_to_terms_service_spec.rb180spec/views/shared/_label_row.html.haml_spec.rb181spec/routing/admin_routing_spec.rb182spec/services/keys/last_used_service_spec.rb183spec/graphql/resolvers/error_tracking/sentry_detailed_error_resolver_spec.rb184spec/serializers/merge_request_user_entity_spec.rb185spec/lib/gitlab/metrics/methods_spec.rb186spec/lib/gitlab/ci/pipeline/preloader_spec.rb187spec/lib/gitlab/encoding_helper_spec.rb188spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb189spec/workers/gitlab/github_import/stage/import_notes_worker_spec.rb190spec/lib/gitlab/ci/config/entry/key_spec.rb191spec/lib/gitlab/prometheus/queries/knative_invocation_query_spec.rb192spec/lib/banzai/filter/syntax_highlight_filter_spec.rb193spec/lib/gitlab/git_ref_validator_spec.rb194spec/lib/peek/views/detailed_view_spec.rb195spec/lib/gitlab/email/reply_parser_spec.rb196spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb197spec/lib/gitlab/github_import/client_spec.rb198spec/lib/gitlab/quick_actions/extractor_spec.rb199spec/helpers/environments_helper_spec.rb200spec/lib/banzai/filter/asset_proxy_filter_spec.rb201spec/views/import/gitlab_projects/new.html.haml_spec.rb202spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb203spec/lib/gitlab/redis/shared_state_spec.rb204spec/helpers/tracking_helper_spec.rb205spec/lib/gitlab/ci/config/extendable/entry_spec.rb206spec/lib/bitbucket_server/client_spec.rb207spec/lib/gitlab/usage_data_counters/web_ide_counter_spec.rb208spec/lib/gitlab/popen/runner_spec.rb209spec/lib/gitlab/sanitizers/svg_spec.rb210spec/lib/microsoft_teams/notifier_spec.rb211spec/lib/gitlab/graphql/generic_tracing_spec.rb212spec/lib/banzai/filter/inline_diff_filter_spec.rb213spec/lib/banzai/filter/math_filter_spec.rb214spec/workers/run_pipeline_schedule_worker_spec.rb215spec/lib/gitlab/git/conflict/parser_spec.rb216spec/lib/gitlab/sidekiq_versioning/manager_spec.rb217spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb218spec/lib/gitlab/database/rename_reserved_paths_migration/v1_spec.rb219spec/lib/gitlab/untrusted_regexp_spec.rb220spec/lib/gitlab/graphql/connections/keyset/query_builder_spec.rb221spec/graphql/resolvers/merge_requests_resolver_spec.rb222spec/rubocop/cop/code_reuse/worker_spec.rb223spec/lib/gitlab/template/finders/global_template_finder_spec.rb224spec/lib/gitlab/tracking/incident_management_spec.rb225spec/rubocop/cop/migration/add_timestamps_spec.rb226spec/lib/gitlab/gitaly_client/diff_spec.rb227spec/lib/mattermost/client_spec.rb228spec/views/dashboard/projects/_nav.html.haml_spec.rb229spec/config/application_spec.rb230spec/rubocop/cop/destroy_all_spec.rb231spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb232spec/services/metrics/sample_metrics_service_spec.rb233spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb234spec/lib/gitlab/git/changes_spec.rb235spec/lib/gitlab/metrics/exporter/sidekiq_exporter_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:10:in `block in <top (required)>')236Run options:237 include {:focus=>true}238 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}239All examples were filtered out; ignoring {:focus=>true}240==> Setting up Gitaly...241 Gitaly set up in 0.052455578 seconds...242MergeRequestsFinder243 multiple projects with merge requests244 #execute245 filters by scope246 filters by project_id247 filters by nonexistent author ID and MR term using CTE for search248 filters by projects249 filters by commit sha250 filters by non_archived251 filters by iid252 filters by source branch253 filters by target branch254 filters by source project id255 filters by state256 filtering by group257 includes all merge requests when user has access excluding merge requests from projects the user does not have access to258 filters by group including subgroups259 filters by group projects including subgroups260 WIP state261 filters by wip262 filters by not wip263 returns all items if no valid wip param exists264 adds wip to scalar params265 filter by deployment266 returns the relevant merge requests267 when a deployment does not contain any merge requests268 returns an empty result269 assignee filtering270 behaves like assignee ID filter271 returns issuables assigned to that user272 behaves like assignee username filter273 returns issuables assigned to those users274 behaves like no assignee filter275 returns issuables not assigned to any assignee276 returns issuables not assigned to any assignee277 behaves like any assignee filter279 returns issuables assigned to any assignee280 returns issuables assigned to any assignee281 filtering by group milestone282 returns merge requests assigned to that group milestone283 filtering by created_at/updated_at284 filters by created_after285 filters by created_before286 filters by created_after and created_before287 filters by updated_after288 filters by updated_before289 filters by updated_after and updated_before290 #row_count291 returns the number of rows for the default state292 returns the number of rows for a given state293 external authorization294 behaves like a finder with external authorization service295 finds the subject296 with an external authorization service297 does not include the subject when no project was given298 includes the subject when a project id was given299 when projects require different access levels for merge requests300 with admin user301 returns all merge requests302 when project restricts merge requests303 returns nothing to to non members304 with external user305 returns only public merge requests306 with authenticated user307 returns public and internal merge requests308 being added to the private project309 as a guest310 does not return merge requests from the private project311 as a developer312 returns merge requests from the private project313 being added to the public project with private repo access314 as a guest315 returns merge requests from the project316 as a reporter317 returns merge requests from the project318 being added to the internal project with private repo access319 as a guest320 returns merge requests from the project321 as a reporter322 returns merge requests from the project323Milestone Milestoneish324 #sorted_issues325 sorts issues by label priority326 attributes visibility327 #issue_participants_visible_by_user328 visibility: :public, user_role: nil, result: [:member]329 returns the proper participants330 visibility: :public, user_role: :non_member, result: [:member]331 returns the proper participants332 visibility: :public, user_role: :guest, result: [:member]333 returns the proper participants334 visibility: :public, user_role: :member, result: [:member, :assignee]335 returns the proper participants336 visibility: :internal, user_role: nil, result: []337 returns the proper participants338 visibility: :internal, user_role: :non_member, result: [:member]339 returns the proper participants340 visibility: :internal, user_role: :guest, result: [:member]341 returns the proper participants342 visibility: :internal, user_role: :member, result: [:member, :assignee]343 returns the proper participants344 visibility: :private, user_role: nil, result: []345 returns the proper participants346 visibility: :private, user_role: :non_member, result: []347 returns the proper participants348 visibility: :private, user_role: :guest, result: [:member]349 returns the proper participants350 visibility: :private, user_role: :member, result: [:member, :assignee]351 returns the proper participants352 #issue_labels_visible_by_user353 visibility: :public, user_role: nil, result: [:label1]354 returns the proper participants355 visibility: :public, user_role: :non_member, result: [:label1]356 returns the proper participants357 visibility: :public, user_role: :guest, result: [:label1]358 returns the proper participants359 visibility: :public, user_role: :member, result: [:label1, :label2]360 returns the proper participants361 visibility: :internal, user_role: nil, result: []362 returns the proper participants363 visibility: :internal, user_role: :non_member, result: [:label1]364 returns the proper participants365 visibility: :internal, user_role: :guest, result: [:label1]366 returns the proper participants367 visibility: :internal, user_role: :member, result: [:label1, :label2]368 returns the proper participants369 visibility: :private, user_role: nil, result: []370 returns the proper participants371 visibility: :private, user_role: :non_member, result: []372 returns the proper participants373 visibility: :private, user_role: :guest, result: [:label1]374 returns the proper participants375 visibility: :private, user_role: :member, result: [:label1, :label2]376 returns the proper participants377 #sorted_merge_requests378 sorts merge requests by label priority379 #merge_requests_visible_to_user380 when project is private381 does not return any merge request for a non member382 returns milestone merge requests for a member383 when project is public384 when merge requests are available to anyone385 returns milestone merge requests for a non member386 when merge requests are available to project members387 does not return any merge request for a non member388 returns milestone merge requests for a member389 when milestone is at parent level group390 does not return any merge request for a non member391 returns milestone merge requests for a member392 #complete?393 returns false when has items opened394 returns true when all items are closed395 #percent_complete396 division by zero397 is expected to eq 0398 #count_issues_by_state399 #total_issues_count400 counts all issues including confidential401 #opened_issues_count402 counts all open issues including confidential403 #closed_issues_count404 counts all closed issues including confidential405 when cached_milestone_issue_counters are disabled406 does not count confidential issues for non project members407 does not count confidential issues for project members with guest role408 counts confidential issues for author409 counts confidential issues for assignee410 counts confidential issues for project members411 counts confidential issues for admin412 #remaining_days413 shows 0 if no due date414 shows 0 if expired415 shows correct remaining days416 #elapsed_days417 shows 0 if no start_date set418 shows 0 if start_date is a future419 shows correct amount of days420 #total_issue_time_spent421 calculates total issue time spent422 #human_total_issue_time_spent423 returns nil if no time has been spent424Issuable::BulkUpdateService425 with issuables at a project level426 close issues427 succeeds and returns the correct number of issues updated428 closes all the issues passed429 reopen issues430 succeeds and returns the correct number of issues updated431 reopens all the issues passed432 updating merge request assignee433 when the new assignee ID is a valid user434 succeeds435 updates the assignee to the user ID passed436 when the new assignee ID is 0437 unassigns the issues438 when the new assignee ID is not present439 does not unassign440 updating issue assignee441 when the new assignee ID is a valid user442 succeeds443 updates the assignee to the user ID passed444 when the new assignee ID is 0445 unassigns the issues446 when the new assignee ID is not present447 does not unassign448 updating milestones449 behaves like updates milestones450 succeeds451 updates the issuables milestone452 updating labels453 behaves like updating labels454 when label_ids are passed455 updates the labels of all issues passed to the labels passed456 does not update issues not passed in457 when those label IDs are empty458 updates the issues passed to have no labels459 when add_label_ids are passed460 adds those label IDs to all issues passed461 does not update issues not passed in462 when remove_label_ids are passed463 removes those label IDs from all issues passed464 does not update issues not passed in465 when add_label_ids and remove_label_ids are passed466 adds the label IDs to all issues passed467 removes the label IDs from all issues passed468 does not update issues not passed in469 when add_label_ids and label_ids are passed470 adds the label IDs to all issues passed471 ignores the label IDs parameter472 does not update issues not passed in473 when remove_label_ids and label_ids are passed474 removes the label IDs from all issues passed475 ignores the label IDs parameter476 does not update issues not passed in477 when add_label_ids, remove_label_ids, and label_ids are passed478 adds the label IDs to all issues passed479 removes the label IDs from all issues passed480 ignores the label IDs parameter481 does not update issues not passed in482 subscribe to issues483 subscribes the given user484 unsubscribe from issues485 unsubscribes the given user486 updating issues from external project487 updates only issues that belong to the parent project488 with issuables at a group level489 updating milestones490 when issues491 behaves like updates milestones492 succeeds493 updates the issuables milestone494 when merge requests495 behaves like updates milestones496 succeeds497 updates the issuables milestone498 updating labels499 behaves like updating labels500 when label_ids are passed501 updates the labels of all issues passed to the labels passed502 does not update issues not passed in503 when those label IDs are empty504 updates the issues passed to have no labels505 when add_label_ids are passed506 adds those label IDs to all issues passed507 does not update issues not passed in508 when remove_label_ids are passed509 removes those label IDs from all issues passed510 does not update issues not passed in511 when add_label_ids and remove_label_ids are passed512 adds the label IDs to all issues passed513 removes the label IDs from all issues passed514 does not update issues not passed in515 when add_label_ids and label_ids are passed516 adds the label IDs to all issues passed517 ignores the label IDs parameter518 does not update issues not passed in519 when remove_label_ids and label_ids are passed520 removes the label IDs from all issues passed521 ignores the label IDs parameter522 does not update issues not passed in523 when add_label_ids, remove_label_ids, and label_ids are passed524 adds the label IDs to all issues passed525 removes the label IDs from all issues passed526 ignores the label IDs parameter527 does not update issues not passed in528 with issues from external group529 updates issues that belong to the parent group or descendants530ProjectsHelper531 #project_incident_management_setting532 when incident_management_setting exists533 return project_incident_management_setting534 when incident_management_setting does not exist535 builds incident_management_setting536 #error_tracking_setting_project_json537 error tracking setting does not exist538 returns nil539 error tracking setting exists540 api_url present541 returns error tracking json542 api_url not present543 returns nil544 #project_status_css_class545 returns appropriate class546 can_change_visibility_level?547 returns false if there are no appropriate permissions548 returns true if there are permissions and it is not fork549 allows visibility level to be changed if the project is forked550 forks551 returns false if there are permissions and origin project is PRIVATE552 returns true if there are permissions and origin project is INTERNAL553 #can_disable_emails?554 returns true for the project owner555 returns false for anyone else556 returns false if group emails disabled557 readme_cache_key558 returns a valid cach key559 returns a valid cache key if HEAD does not exist560 #project_list_cache_key561 includes the route562 includes the project563 includes the last activity date564 includes the controller name565 includes the controller action566 includes the application settings567 includes a version568 includes whether or not the user can read cross project569 includes the pipeline status when there is a status570 includes the user locale571 includes the user max member access572 #load_pipeline_status573 loads the pipeline status in batch574 #show_no_ssh_key_message?575 user has no keys576 returns true577 user has an ssh key578 returns false579 #show_no_password_message?580 user has password set581 returns false582 user has hidden the message583 returns false584 user requires a password for Git585 returns true586 user requires a personal access token for Git587 returns true588 #link_to_set_password589 password authentication is enabled for Git590 returns link to set a password591 password authentication is disabled for Git592 returns link to create a personal access token593 #link_to_project594 returns an HTML link to the project595 #link_to_member_avatar596 returns image tag for member avatar597 returns image tag with avatar class598 #link_to_member599 using the default options600 returns an HTML link to the user601 HTML escapes the name of the user602 default_clone_protocol603 when user is not logged in and gitlab protocol is HTTP604 returns HTTP605 when user is not logged in and gitlab protocol is HTTPS606 returns HTTPS607 #last_push_event608 returns recent push on the current project609 when there is no current_user610 returns nil611 #get_project_nav_tabs612 when builds feature is enabled613 does include pipelines tab614 when builds feature is disabled615 when user has access to builds616 does include pipelines tab617 when user does not have access to builds618 does not include pipelines tab619 when project has external wiki620 includes external wiki tab621 when project does not have external wiki622 does not include external wiki tab623 #show_projects624 returns true when there are projects625 returns true when there are no projects but a name is given626 returns true when there are no projects but personal is present627 returns false when there are no projects and there is no name628 #push_to_create_project_command629 returns the command to push to create project over HTTP630 returns the command to push to create project over SSH631 #any_projects?632 returns true when projects will be returned633 returns false when no projects will be returned634 returns true when using a non-empty Array635 returns false when using an empty Array636 only executes a single query when a LIMIT is applied637 #git_user_name638 parses quotes in name639 #git_user_email640 not logged-in641 returns your@email.com642 user logged in643 user has no configured commit email644 returns the primary email645 user has a configured commit email646 returns the commit email647 show_xcode_link648 when the repository is xcode compatible649 returns false if the visitor is not using macos650 returns true if the visitor is using macos651 when the repository is not xcode compatible652 returns false if the visitor is not using macos653 returns false if the visitor is using macos654 link_to_bfg655 generates a hardcoded link to the BFG Repo-Cleaner656 #explore_projects_tab?657 returns true when on the "All" tab under "Explore projects"658 returns true when on the "Trending" tab under "Explore projects"659 returns true when on the "Starred" tab under "Explore projects"660 returns false when on the "Your projects" tab661 #show_merge_request_count662 when the feature flag is enabled663 returns true if compact mode is disabled664 returns false if compact mode is enabled665 when the feature flag is disabled666 always returns false667 disabled flag668 returns false if disabled flag is true669 returns true if disabled flag is false670 #show_issue_count?671 when the feature flag is enabled672 returns true if compact mode is disabled673 returns false if compact mode is enabled674 when the feature flag is disabled675 always returns false676 disabled flag677 returns false if disabled flag is true678 returns true if disabled flag is false679 #show_auto_devops_implicitly_enabled_banner?680 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false681 is expected to eq false682 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false683 is expected to eq false684 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false685 is expected to eq false686 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false687 is expected to eq false688 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false689 is expected to eq false690 global_setting: true, project_setting: nil, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false691 is expected to eq false692 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false693 is expected to eq false694 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false695 is expected to eq false696 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false697 is expected to eq false698 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false699 is expected to eq false700 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: true701 is expected to eq true702 global_setting: true, project_setting: nil, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: true703 is expected to eq true704 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false705 is expected to eq false706 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false707 is expected to eq false708 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false709 is expected to eq false710 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false711 is expected to eq false712 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false713 is expected to eq false714 global_setting: true, project_setting: true, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false715 is expected to eq false716 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false717 is expected to eq false718 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false719 is expected to eq false720 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false721 is expected to eq false722 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false723 is expected to eq false724 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false725 is expected to eq false726 global_setting: true, project_setting: true, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false727 is expected to eq false728 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :developer, result: false729 is expected to eq false730 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :maintainer, result: false731 is expected to eq false732 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: true, user_access: :owner, result: false733 is expected to eq false734 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :developer, result: false735 is expected to eq false736 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :maintainer, result: false737 is expected to eq false738 global_setting: true, project_setting: false, builds_visibility: :disabled, gitlab_ci_yml: false, user_access: :owner, result: false739 is expected to eq false740 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :developer, result: false741 is expected to eq false742 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :maintainer, result: false743 is expected to eq false744 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: true, user_access: :owner, result: false745 is expected to eq false746 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :developer, result: false747 is expected to eq false748 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :maintainer, result: false749 is expected to eq false750 global_setting: true, project_setting: false, builds_visibility: :enabled, gitlab_ci_yml: false, user_access: :owner, result: false751 is expected to eq false752 #can_import_members?753 returns false if user cannot admin_project_member754 returns true if user can admin_project_member755 #metrics_external_dashboard_url756 metrics_setting exists757 returns external_dashboard_url758 metrics_setting does not exist759 returns nil760 #grafana_integration_url761 is expected to eq nil762 grafana integration exists763 is expected to eq "https://grafana.example.com"764 #grafana_integration_token765 is expected to eq nil766 grafana integration exists767 is expected to eq "************************************************"768 #grafana_integration_enabled?769 is expected to eq nil770 grafana integration exists771 is expected to eq true772 #project_license_name(project)773 gitaly is working appropriately774 returns the license name775 gitaly is unreachable776 Gitlab::Git::CommandError777 behaves like returns nil and tracks exception778 is expected to be nil779 tracks the exception780 GRPC::Unavailable781 behaves like returns nil and tracks exception782 is expected to be nil783 tracks the exception784 GRPC::DeadlineExceeded785 behaves like returns nil and tracks exception786 is expected to be nil787 tracks the exception788Clusters::Applications::Prometheus789 is expected to belong to cluster required:790 is expected to validate that :cluster cannot be empty/falsy791 #can_uninstall?792 calls allowed_to_uninstall?793 #name794 is .application_name795 is recorded in Clusters::Cluster::APPLICATIONS796 .association_name797 is expected to eq :application_prometheus798 #status_states799 returns a hash of state values800 returns an integer for installed state value801 .available802 is expected to contain exactly #<Clusters::Applications::Prometheus id: 1, cluster_id: 12, status: 3, version: "9.5.2", status_reaso...t_update_started_at: nil, encrypted_alert_manager_token: nil, encrypted_alert_manager_token_iv: nil> and #<Clusters::Applications::Prometheus id: 2, cluster_id: 18, status: 5, version: "9.5.2", status_reaso...t_update_started_at: nil, encrypted_alert_manager_token: nil, encrypted_alert_manager_token_iv: nil>803 status state machine804 #make_installing805 is installing806 #make_installed807 is installed808 sets the correct version of the application809 managed_apps_local_tiller feature flag disabled810 updates helm version811 managed_apps_local_tiller feature flag enabled812 does not update the helm version813 the cluster has no helm installed814 runs without errors815 application is updating816 is updated817 updates the version of the application818 managed_apps_local_tiller feature flag disabled819 updates helm version820 managed_apps_local_tiller feature flag enabled821 does not update the helm version822 the cluster has no helm installed823 runs without errors824 #make_errored825 is errored826 application is updating827 is update_errored828 application is uninstalling829 is uninstall_errored830 #make_scheduled831 is scheduled832 when installed833 is scheduled834 when was errored835 clears #status_reason836 when was updated_errored837 clears #status_reason838 when was uninstall_errored839 clears #status_reason840 #make_uninstalling841 is uninstalling842 #available?843 trait: :not_installable, available: false844 is expected not to be available845 trait: :installable, available: false846 is expected not to be available847 trait: :scheduled, available: false848 is expected not to be available849 trait: :installing, available: false850 is expected not to be available851 trait: :installed, available: true852 is expected to be available853 trait: :updating, available: false854 is expected not to be available855 trait: :updated, available: true856 is expected to be available857 trait: :errored, available: false858 is expected not to be available859 trait: :update_errored, available: false860 is expected not to be available861 trait: :uninstalling, available: false862 is expected not to be available863 trait: :uninstall_errored, available: false864 is expected not to be available865 trait: :timed_out, available: false866 is expected not to be available867 update_available?868 version is not the same as VERSION869 is expected to be truthy870 version is the same as VERSION871 is expected to be falsey872 #uninstall_command873 is expected to be an instance of Gitlab::Kubernetes::Helm::DeleteCommand874 has files875 is rbac876 on a non rbac enabled cluster877 is expected not to be rbac878 #files879 managed_apps_local_tiller feature flag is disabled880 includes cert files when there is a ca_cert entry881 when the helm application does not have a ca_cert882 does not include cert files when there is no ca_cert entry883 managed_apps_local_tiller feature flag is enabled884 does not include cert files885 when cluster does not have helm installed886 does not include cert files887 #status888 local tiller feature flag is disabled889 sets a default status890 local tiller feature flag is enabled891 sets a default status892 when application helm is scheduled893 defaults to :not_installable894 when application helm is installed895 sets a default status896 after_destroy897 cluster type is project898 deactivates prometheus_service after destroy899 transition to installed900 schedules post installation job901 #can_uninstall?902 is expected to be truthy903 #prometheus_client904 cluster is nil905 returns nil906 cluster doesn't have kubeclient907 returns nil908 cluster has kubeclient909 creates proxy prometheus_client910 copies proxy_url, options and headers from kube client to prometheus_client911 when cluster is not reachable912 behaves like exception caught for prometheus client913 returns nil914 when there is a socket error while contacting cluster915 behaves like exception caught for prometheus client916 returns nil917 behaves like exception caught for prometheus client918 returns nil919 when the network is unreachable920 behaves like exception caught for prometheus client921 returns nil922 #install_command923 is expected to be an instance of Gitlab::Kubernetes::Helm::InstallCommand924 is initialized with 3 arguments925 does not install knative metrics926 on a non rbac enabled cluster927 is expected not to be rbac928 application failed to install previously929 is initialized with the locked version930 with knative installed931 installs knative metrics932 #uninstall_command933 is expected to be an instance of Gitlab::Kubernetes::Helm::DeleteCommand934 has the application name935 has files936 is rbac937 #predelete938 deletes knative metrics939 on a non rbac enabled cluster940 is expected not to be rbac941 #patch_command942 is expected to be an instance of Gitlab::Kubernetes::Helm::PatchCommand943 is initialized with 3 arguments944 #update_in_progress?945 when app is updating946 returns true947 #update_errored?948 when app errored949 returns true950 #files951 includes prometheus valid values952 #files_with_replaced_values953 does not modify #files954 returns values.yaml with replaced values955 uses values from #files, except for values.yaml956 #configured?957 when a kubenetes client is present958 is expected to be truthy959 when it is not availalble960 is expected to be falsey961 when the kubernetes URL is blocked962 is expected to be falsey963 when a kubenetes client is not present964 is expected to be falsy965Clusters::Applications::Runner966 is expected to belong to cluster required:967 is expected to validate that :cluster cannot be empty/falsy968 is expected to belong to runner required:969 #can_uninstall?970 calls allowed_to_uninstall?971 #name972 is .application_name973 is recorded in Clusters::Cluster::APPLICATIONS974 .association_name975 is expected to eq :application_runner976 #status_states977 returns a hash of state values978 returns an integer for installed state value979 .available980 is expected to contain exactly #<Clusters::Applications::Runner id: 1, cluster_id: 450, runner_id: 1, status: 3, created_at: "2020-0...:32:25", updated_at: "2020-03-05 04:32:25", version: "0.14.0", status_reason: nil, privileged: true> and #<Clusters::Applications::Runner id: 2, cluster_id: 456, runner_id: 2, status: 5, created_at: "2020-0...:32:25", updated_at: "2020-03-05 04:32:25", version: "0.14.0", status_reason: nil, privileged: true>981 status state machine982 #make_installing983 is installing984 #make_installed985 is installed986 sets the correct version of the application987 managed_apps_local_tiller feature flag disabled988 updates helm version989 managed_apps_local_tiller feature flag enabled990 does not update the helm version991 the cluster has no helm installed992 runs without errors993 application is updating994 is updated995 updates the version of the application996 managed_apps_local_tiller feature flag disabled997 updates helm version998 managed_apps_local_tiller feature flag enabled999 does not update the helm version1000 the cluster has no helm installed1001 runs without errors1002 #make_errored1003 is errored1004 application is updating1005 is update_errored1006 application is uninstalling1007 is uninstall_errored1008 #make_scheduled1009 is scheduled1010 when installed1011 is scheduled1012 when was errored1013 clears #status_reason1014 when was updated_errored1015 clears #status_reason1016 when was uninstall_errored1017 clears #status_reason1018 #make_uninstalling1019 is uninstalling1020 #available?1021 trait: :not_installable, available: false1022 is expected not to be available1023 trait: :installable, available: false1024 is expected not to be available1025 trait: :scheduled, available: false1026 is expected not to be available1027 trait: :installing, available: false1028 is expected not to be available1029 trait: :installed, available: true1030 is expected to be available1031 trait: :updating, available: false1032 is expected not to be available1033 trait: :updated, available: true1034 is expected to be available1035 trait: :errored, available: false1036 is expected not to be available1037 trait: :update_errored, available: false1038 is expected not to be available1039 trait: :uninstalling, available: false1040 is expected not to be available1041 trait: :uninstall_errored, available: false1042 is expected not to be available1043 trait: :timed_out, available: false1044 is expected not to be available1045 update_available?1046 version is not the same as VERSION1047 is expected to be truthy1048 version is the same as VERSION1049 is expected to be falsey1050 #uninstall_command1051 is expected to be an instance of Gitlab::Kubernetes::Helm::DeleteCommand1052 has files1053 is rbac1054 on a non rbac enabled cluster1055 is expected not to be rbac1056 #files1057 managed_apps_local_tiller feature flag is disabled1058 includes cert files when there is a ca_cert entry1059 when the helm application does not have a ca_cert1060 does not include cert files when there is no ca_cert entry1061 managed_apps_local_tiller feature flag is enabled1062 does not include cert files1063 when cluster does not have helm installed1064 does not include cert files1065 #status1066 local tiller feature flag is disabled1067 sets a default status1068 local tiller feature flag is enabled1069 sets a default status1070 when application helm is scheduled1071 defaults to :not_installable1072 when application helm is installed1073 sets a default status1074 #can_uninstall?1075 is expected to be truthy1076 #install_command1077 is expected to be an instance of Gitlab::Kubernetes::Helm::InstallCommand1078 is initialized with 4 arguments1079 on a non rbac enabled cluster1080 is expected not to be rbac1081 application failed to install previously1082 is initialized with the locked version1083 #files1084 includes runner valid values1085 without a runner1086 project cluster1087 creates a runner1088 uses the new runner token1089 creates a project runner1090 group cluster1091 creates a runner1092 uses the new runner token1093 creates a group runner1094 instance cluster1095 creates a runner1096 uses the new runner token1097 creates an instance runner1098 with duplicated values on vendor/runner/values.yaml1099 overwrites values.yaml1100 #prepare_uninstall1101 pauses associated runner1102 #make_uninstalling!1103 calls prepare_uninstall1104 #post_uninstall1105 destroys its runner1106Notes::UpdateService1107 #execute1108 does not update the note when params is blank1109 suggestions1110 refreshes note suggestions1111 todos1112 when note includes a user mention1113 when the note does not change mentions1114 behaves like does not update todos1115 keep todos1116 does not create any new todos1117 when the note changes to include one more user mention1118 behaves like creates one todo1119 marks todos as done1120 creates only 1 new todo1121 when the note changes to include a group mentions1122 behaves like creates one todo1123 marks todos as done1124 creates only 1 new todo1125 when note includes a group mention1126 when the group is public1127 when the note does not change mentions1128 behaves like does not update todos1129 keep todos1130 does not create any new todos1131 when the note changes mentions1132 behaves like creates one todo1133 marks todos as done1134 creates only 1 new todo1135 when the group is private1136 when the note does not change mentions1137 behaves like does not update todos1138 keep todos1139 does not create any new todos1140 when the note changes mentions1141 behaves like creates one todo1142 marks todos as done1143 creates only 1 new todo1144Groups::TransferService1145 #execute1146 when transforming a group into a root group1147 behaves like ensuring allowed transfer for a group1148 when there's an exception on GitLab shell directories1149 returns false1150 adds an error on group1151 when the group is already a root group1152 adds an error on group1153 when the user does not have the right policies1154 returns false1155 adds an error on group1156 when there is a group with the same path1157 returns false1158 adds an error on group1159 when the group is a subgroup and the transfer is valid1160 updates group attributes1161 updates group children path1162 updates group projects path1163 when transferring a subgroup into another group1164 behaves like ensuring allowed transfer for a group1165 when there's an exception on GitLab shell directories1166 returns false1167 adds an error on group1168 when the new parent group is the same as the previous parent group1169 returns false1170 adds an error on group1171 when the user does not have the right policies1172 returns false1173 adds an error on group1174 when the parent has a group with the same path1175 returns false1176 adds an error on group1177 when the parent group has a project with the same path1178 returns false1179 adds an error on group1180 when the group is allowed to be transferred1181 updates visibility for the group based on the parent group1182 updates parent group to the new parent1183 returns the group as children of the new parent1184 creates a redirect for the group1185 when the group has a lower visibility than the parent group1186 does not update the visibility for the group1187 when the group has a higher visibility than the parent group1188 updates visibility level based on the parent group1189 when transferring a group with group descendants1190 updates subgroups path1191 creates redirects for the subgroups1192 when the new parent has a higher visibility than the children1193 does not update the children visibility1194 when the new parent has a lower visibility than the children1195 updates children visibility to match the new parent1196 when transferring a group with project descendants1197 updates projects path1198 creates permanent redirects for the projects1199 when the new parent has a higher visibility than the projects1200 does not update projects visibility1201 when the new parent has a lower visibility than the projects1202 updates projects visibility to match the new parent1203 when transferring a group with subgroups & projects descendants1204 updates subgroups path1205 updates projects path1206 creates redirect for the subgroups and projects1207 when transferring a group with nested groups and projects1208 updates subgroups path1209 updates projects path1210 creates redirect for the subgroups and projects1211 when updating the group goes wrong1212 restores group and projects visibility1213 when transferring a subgroup into root group1214 ensures there is still an owner for the transferred group1215 when group has explicit owner1216 does not add additional owner1217 when a project has container images1218 within group1219 does not transfer1220 within subgroup1221 does not transfer1222NotesFinder1223 #execute1224 finds notes on merge requests1225 finds notes on snippets1226 excludes notes on commits the author can't download1227 succeeds when no notes found1228 when notes filter is present1229 returns only user notes when using only_comments filter1230 returns only system notes when using only_activity filters1231 gets all notes1232 on restricted projects1233 publicly excludes notes on merge requests1234 publicly excludes notes on issues1235 publicly excludes notes on snippets1236 for target type1237 finds only notes for the selected type1238 for target1239 finds all notes1240 finds notes on merge requests1241 finds notes on snippets1242 finds notes on personal snippets1243 raises an exception for an invalid target_type1244 filters out old notes1245 confidential issue notes1246 returns notes if user can see the issue1247 raises an error if user can not see the issue1248 raises an error for project members with guest role1249 for explicit target1250 returns the expected notes1251 returns the expected notes when last_fetched_at is given1252 fails when nil is provided1253 .search1254 returns notes with matching content1255 returns notes with matching content regardless of the casing1256 returns commit notes user can access1257 confidential issues1258 returns notes with matching content if user can see the issue1259 does not return notes with matching content if user can not see the issue1260 does not return notes with matching content for project members with guest role1261 does not return notes with matching content for unauthenticated users1262 inlines SQL filters on subqueries for performance1263 project_id check1264 search filter1265 #target1266 for a issue target1267 returns the issue1268 for a merge request target1269 returns the merge_request1270 for a snippet target1271 returns the snippet1272 for a commit target1273 returns the commit1274 target_iid1275 finds issues by iid1276 finds merge requests by iid1277 returns nil if both target_id and target_iid are not given1278 prioritizes target_id over target_iid1279DeploymentEntity1280 exposes internal deployment id1281 exposes nested information about branch1282 exposes creation date1283 exposes deployed_at1284 when deployable is nil1285 does not expose deployable entry1286 when the pipeline has another manual action1287 returns another manual action1288 when user is a reporter1289 returns another manual action1290 when deployment details serialization was disabled1291 does not serialize manual actions details1292 scheduled_actions1293 when the same pipeline has a scheduled action1294 returns other scheduled actions1295 when the same pipeline does not have a scheduled action1296 does not return other actions1297 when deployment details serialization was disabled1298 does not serialize scheduled actions details1299 playable_build1300 when the deployment has a playable deployable1301 when this build is ready to be played1302 exposes only the play_path1303 when this build has failed1304 exposes the play_path and the retry_path1305 when the deployment does not have a playable deployable1306 is not exposed1307 when deployment details serialization was disabled1308 does not serialize deployment details1309 only exposes deployable name and path1310ProjectWiki1311 is expected to delegate #repository_storage to the #project object1312 is expected to delegate #hashed_storage? to the #project object1313 #full_path1314 returns the project path with namespace with the .wiki extension1315 returns the same value as #full_path1316 #web_url1317 returns the full web URL to the wiki1318 #url_to_repo1319 returns the correct ssh url to the repo1320 #ssh_url_to_repo1321 equals #url_to_repo1322 #http_url_to_repo1323 when a custom HTTP clone URL root is not set1324 returns the full http url to the repo1325 when a custom HTTP clone URL root is set1326 returns the full http url to the repo, with the root replaced with the custom one1327 #wiki_base_path1328 returns the wiki base path1329 #wiki1330 contains a Gitlab::Git::Wiki instance1331 creates a new wiki repo if one does not yet exist1332 creates a new wiki repo with a default commit message1333 raises CouldNotCreateWikiError if it can't create the wiki repository1334 #empty?1335 when the wiki repository is empty1336 #empty?1337 is expected to be truthy1338 when the wiki has pages1339 #empty?1340 is expected to be falsey1341 only instantiates a Wiki page once1342 #list_pages1343 returns an array of WikiPage instances1344 does not load WikiPage content by default1345 returns all pages by default1346 with limit option1347 returns limited set of pages1348 with sorting options1349 returns pages sorted by title by default1350 returns pages sorted by created_at1351 with load_content option1352 loads WikiPage content1353 #find_page1354 returns the latest version of the page if it exists1355 returns nil if the page does not exist1356 can find a page by slug1357 returns a WikiPage instance1358 pages with multibyte-character title1359 can find a page by slug1360 pages with invalidly-encoded content1361 can find the page1362 #find_sidebar1363 finds the page defined as _sidebar1364 #find_file1365 returns the latest version of the file if it exists1366 returns nil if the page does not exist1367 returns a Gitlab::Git::WikiFile instance1368 returns the whole file1369 #create_page1370 creates a new wiki page1371 returns false when a duplicate page exists1372 stores an error message when a duplicate page exists1373 sets the correct commit message1374 sets the correct commit email1375 updates project activity1376 #update_page1377 updates the content of the page1378 sets the correct commit message1379 sets the correct commit email1380 updates project activity1381 #delete_page1382 deletes the page1383 sets the correct commit email1384 updates project activity1385 #create_repo!1386 creates a repository1387 #ensure_repository1388 creates the repository if it not exist1389 does not create the repository if it exists1390 #hook_attrs1391 returns a hash with values1392Gitlab::BareRepositoryImport::Importer1393 with subgroups1394 behaves like importing a repository1395 .execute1396 creates a project for a repository in storage1397 skips wiki repos1398 without admin users1399 raises an error1400 #create_project_if_needed1401 starts an import for a project that did not exist1402 skips importing when the project already exists1403 creates a project with the correct path in the database1404 does not schedule an import1405 creates the Git repo on disk1406 hashed storage enabled1407 creates a project with the correct path in the database1408 without subgroups1409 behaves like importing a repository1410 .execute1411 creates a project for a repository in storage1412 skips wiki repos1413 without admin users1414 raises an error1415 #create_project_if_needed1416 starts an import for a project that did not exist1417 skips importing when the project already exists1418 creates a project with the correct path in the database1419 does not schedule an import1420 creates the Git repo on disk1421 hashed storage enabled1422 creates a project with the correct path in the database1423 without groups1424 starts an import for a project that did not exist1425 creates a project with the correct path in the database1426 creates the Git repo in disk1427 with a repository already on disk1428 moves an existing project to the correct path1429 with Wiki1430 creates the Wiki git repo in disk1431 behaves like importing a repository1432 .execute1433 creates a project for a repository in storage1434 skips wiki repos1435 without admin users1436 raises an error1437 #create_project_if_needed1438 starts an import for a project that did not exist1439 skips importing when the project already exists1440 creates a project with the correct path in the database1441 does not schedule an import1442 creates the Git repo on disk1443 hashed storage enabled1444 creates a project with the correct path in the database1445BambooService1446 Associations1447 is expected to belong to project required:1448 is expected to have one service_hook1449 Validations1450 when service is active1451 is expected to validate that :build_key cannot be empty/falsy1452 is expected to validate that :bamboo_url cannot be empty/falsy1453 behaves like issue tracker service URL attribute1454 is expected to allow :bamboo_url to be ‹"https://example.com"›1455 is expected not to allow :bamboo_url to be ‹"example.com"›1456 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›1457 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›1458 #username1459 does not validate the presence of username if password is nil1460 validates the presence of username if password is present1461 #password1462 does not validate the presence of password if username is nil1463 validates the presence of password if username is present1464 when service is inactive1465 is expected not to validate that :build_key cannot be empty/falsy1466 is expected not to validate that :bamboo_url cannot be empty/falsy1467 is expected not to validate that :username cannot be empty/falsy1468 is expected not to validate that :password cannot be empty/falsy1469 Callbacks1470 before_update :reset_password1471 saves password if new url is set together with password when no password was previously set1472 when a password was previously set1473 resets password if url changed1474 does not reset password if username changed1475 does not reset password if new url is set together with password, even if it's the same password1476 #execute1477 runs update and build action1478 #build_page1479 returns the contents of the reactive cache1480 #commit_status1481 returns the contents of the reactive cache1482 #calculate_reactive_cache1483 when Bamboo API returns single result1484 behaves like reactive cache calculation1485 #build_page1486 returns a specific URL when status is 5001487 returns a specific URL when response has no results1488 returns a build URL when bamboo_url has no trailing slash1489 bamboo_url has trailing slash1490 returns a build URL1491 #commit_status1492 sets commit status to :error when status is 5001493 sets commit status to "pending" when status is 4041494 sets commit status to "pending" when response has no results1495 sets commit status to "success" when build state contains Success1496 sets commit status to "failed" when build state contains Failed1497 sets commit status to "pending" when build state contains Pending1498 sets commit status to :error when build state is unknown1499 when Bamboo API returns an array of results and we only consider the last one1500 behaves like reactive cache calculation1501 #build_page1502 returns a specific URL when status is 5001503 returns a specific URL when response has no results1504 returns a build URL when bamboo_url has no trailing slash1505 bamboo_url has trailing slash1506 returns a build URL1507 #commit_status1508 sets commit status to :error when status is 5001509 sets commit status to "pending" when status is 4041510 sets commit status to "pending" when response has no results1511 sets commit status to "success" when build state contains Success1512 sets commit status to "failed" when build state contains Failed1513 sets commit status to "pending" when build state contains Pending1514 sets commit status to :error when build state is unknown1515HipchatService1516 Associations1517 is expected to belong to project required:1518 is expected to have one service_hook1519 Validations1520 when service is active1521 is expected to validate that :token cannot be empty/falsy1522 when service is inactive1523 is expected not to validate that :token cannot be empty/falsy1524 Execute1525 tests and return errors1526 uses v1 if version is provided1527 uses v2 as the version when nothing is provided1528 push events1529 calls Hipchat API for push events1530 creates a push message1531 tag_push events1532 calls Hipchat API for tag push events1533 creates a tag push message1534 issue events1535 calls Hipchat API for issue events1536 creates an issue message1537 merge request events1538 calls Hipchat API for merge requests events1539 creates a merge request message1540 Note events1541 when commit comment event triggered1542 calls Hipchat API for commit comment events1543 when merge request comment event triggered1544 calls Hipchat API for merge request comment events1545 when issue comment event triggered1546 calls Hipchat API for issue comment events1547 with confidential issue1548 calls Hipchat API with issue comment1549 when snippet comment event triggered1550 calls Hipchat API for snippet comment events1551 pipeline events1552 for failed1553 calls Hipchat API1554 creates a build message1555 for succeeded1556 calls Hipchat API1557 notifies only broken1558 #message_options1559 is set to the defaults1560 sets notify to true1561 sets the color1562 with a successful build1563 uses the green color1564 with a failed build1565 uses the red color1566 with UrlBlocker1567 #execute1568 raises UrlBlocker for localhost1569Gitlab::LetsEncrypt::Client1570 #new_order1571 ensures account registration1572 generates and stores private key and initialize acme client with it1573 returns order1574 when private key is saved in settings1575 uses current value of private key1576 when acme integration is disabled1577 raises error1578 #load_order1579 ensures account registration1580 generates and stores private key and initialize acme client with it1581 loads order1582 when private key is saved in settings1583 uses current value of private key1584 when acme integration is disabled1585 raises error1586 #load_challenge1587 ensures account registration1588 generates and stores private key and initialize acme client with it1589 loads challenge1590 when private key is saved in settings1591 uses current value of private key1592 when acme integration is disabled1593 raises error1594 #terms_of_service_url1595 returns valid url1596EventCreateService1597 Issues1598 #open_issue1599 is expected to be truthy1600 creates new event1601 #close_issue1602 is expected to be truthy1603 creates new event1604 #reopen_issue1605 is expected to be truthy1606 creates new event1607 Merge Requests1608 #open_mr1609 is expected to be truthy1610 creates new event1611 #close_mr1612 is expected to be truthy1613 creates new event1614 #merge_mr1615 is expected to be truthy1616 creates new event1617 #reopen_mr1618 is expected to be truthy1619 creates new event1620 Milestone1621 #open_milestone1622 is expected to be truthy1623 creates new event1624 #close_mr1625 is expected to be truthy1626 creates new event1627 #destroy_mr1628 is expected to be truthy1629 creates new event1630 #push1631 behaves like service for creating a push event1632 creates a new event1633 creates the push event payload1634 updates user last activity1635 caches the last push event for the user1636 does not create any event data when an error is raised1637 #bulk_push1638 behaves like service for creating a push event1639 creates a new event1640 creates the push event payload1641 updates user last activity1642 caches the last push event for the user1643 does not create any event data when an error is raised1644 Project1645 #join_project1646 is expected to be truthy1647 is expected to change `Event.count` from 0 to 11648 #expired_leave_project1649 is expected to be truthy1650 is expected to change `Event.count` from 0 to 11651MergeRequestDiffFile1652 behaves like a BulkInsertSafe model1653 when calling class methods directly1654 raises an error when method is not bulk-insert safe1655 does not raise an error when method is bulk-insert safe1656 does not raise an error when the call is triggered by belongs_to1657 .bulk_insert!1658 when all items are valid1659 inserts them all1660 returns true1661 when some items are invalid1662 does not insert any of them and raises an error1663 inserts them anyway when bypassing validations1664 #diff1665 when diff is not stored1666 when the diff is marked as binary1667 unpacks from base 641668 when the diff is not marked as binary1669 returns the raw diff1670 when diff is stored in DB1671 returns UTF-8 string1672 when diff is stored in external storage1673 returns UTF-8 string1674 #utf8_diff1675 does not raise error when the diff is binary1676MergeRequestPollCachedWidgetEntity1677 has the latest sha of the target branch1678 diverged_commits_count1679 when MR open and its diverging1680 returns diverged commits count1681 when MR is not open1682 returns 01683 when MR is not diverging1684 returns 01685 diff_head_sha1686 when diff head commit is empty1687 returns nil1688 when diff head commit present1689 returns diff head commit short id1690 metrics1691 when metrics record exists with merged data1692 matches merge request metrics schema1693 returns values from metrics record1694 when metrics record exists with closed data1695 matches merge request metrics schema1696 returns values from metrics record1697 when metrics does not exists1698 when events exists1699 matches merge request metrics schema1700 returns values from events record1701 when events does not exists1702 matches merge request metrics schema1703 commits_without_merge_commits1704 does not include merge commits1705 auto merge1706 when auto merge is enabled1707 returns auto merge related information1708 when auto merge is not enabled1709 returns auto merge related information1710 attributes for squash commit message1711 when merge request is mergeable1712 has default_squash_commit_message and commits_without_merge_commits1713 when merge request is not mergeable1714 does not have default_squash_commit_message and commits_without_merge_commits1715Banzai::Filter::UserReferenceFilter1716 requires project context1717 ignores invalid users1718 ignores references with text before the @ sign1719 ignores valid references contained inside 'pre' element1720 ignores valid references contained inside 'code' element1721 ignores valid references contained inside 'a' element1722 ignores valid references contained inside 'style' element1723 links with adjacent text1724 includes default classes1725 behaves like user reference or project reference1726 supports an :only_path context1727 mentioning a resource1728 links to a resource1729 links to a resource with a period1730 links to a resource with an underscore1731 links to a resource with different case-sensitivity1732 behaves like a reference containing an element node1733 does not escape inner html1734 behaves like it contains a data- attribute1735 includes a data- attribute1736 referencing a resource in a link href1737 links to the resource1738 links with adjacent text1739 behaves like it contains a data- attribute1740 includes a data- attribute1741 mentioning @all1742 supports a special @all mention1743 includes a data-author attribute when there is an author1744 does not include a data-author attribute when there is no author1745 ignores reference to all when the user is not a project member1746 behaves like a reference containing an element node1747 does not escape inner html1748 mentioning a group1749 links to the Group1750 includes a data-group attribute1751 behaves like a reference containing an element node1752 does not escape inner html1753 mentioning a nested group1754 links to the nested group1755 has the full group name as a title1756 behaves like a reference containing an element node1757 does not escape inner html1758 when a project is not specified1759 does not link a User1760 when skip_project_check set to true1761 links to a User1762 does not link users using @all reference1763 in group context1764 supports a special @all mention1765 supports mentioning a single user1766 supports mentioning a group1767 #namespaces1768 returns a Hash containing all Namespaces1769 #usernames1770 returns the usernames mentioned in a document1771projects/merge_requests/creations/_new_submit.html.haml1772 when there are pipelines for merge request but no pipeline for last commit1773 shows <<Pipelines>> tab and hides <<Builds>> tab1774 when there are hidden commits1775 shows notice about omitted commits1776Ci::LegacyStage1777 #expectations1778 is expected to includes the StaticModel module1779 is expected to respond to #pipeline1780 is expected to respond to #name1781 is expected to delegate #project to the #pipeline object1782 #statuses1783 returns only matching statuses1784 #groups1785 returns an array of three groups1786 returns groups with correctly ordered statuses1787 returns groups with correct names1788 when a name is nil on legacy pipelines1789 returns an array of three groups1790 #statuses_count1791 counts statuses only from current stage1792 #builds1793 returns only builds1794 #status1795 if status is already defined1796 returns defined status1797 if status has to be calculated1798 returns status of a build1799 and builds are retried1800 returns status of latest build1801 #detailed_status1802 when build is created1803 returns detailed status for created stage1804 when build is pending1805 returns detailed status for pending stage1806 when build is running1807 returns detailed status for running stage1808 when build is successful1809 returns detailed status for successful stage1810 when build is failed1811 returns detailed status for failed stage1812 when build is canceled1813 returns detailed status for canceled stage1814 when build is skipped1815 returns detailed status for skipped stage1816 #success?1817 when stage is successful1818 is successful1819 when stage is not successful1820 is not successful1821 #has_warnings?1822 when stage has warnings1823 when using memoized warnings flag1824 when there are warnings1825 returns true using memoized value1826 when there are no warnings1827 returns false using memoized value1828 when calculating warnings from statuses1829 has warnings calculated from statuses1830 when stage does not have warnings1831 does not have warnings calculated from statuses1832 behaves like manual playable stage1833 #manual_playable?1834 when is manual1835 is expected to be truthy1836 when is scheduled1837 is expected to be truthy1838 when is skipped1839 is expected to be truthy1840Subscribable Subscribable1841 #subscribed?1842 without user1843 returns false1844 without project1845 returns false when no subscription exists1846 returns true when a subcription exists and subscribed is true1847 returns false when a subcription exists and subscribed is false1848 with project1849 returns false when no subscription exists1850 returns true when a subcription exists and subscribed is true1851 returns false when a subcription exists and subscribed is false1852 #subscribers1853 returns [] when no subcribers exists1854 returns the subscribed users1855 #toggle_subscription1856 without project1857 toggles the current subscription state for the given user1858 with project1859 toggles the current subscription state for the given user1860 #subscribe1861 without project1862 subscribes the given user1863 with project1864 subscribes the given user1865 #unsubscribe1866 without project1867 unsubscribes the given current user1868 with project1869 unsubscribes the given current user1870 #set_subscription1871 without project1872 behaves like setting subscriptions1873 when desired_state is set to true1874 when a user is subscribed to the resource1875 keeps the user subscribed1876 when a user is not subscribed to the resource1877 subscribes the user to the resource1878 when desired_state is set to false1879 when a user is subscribed to the resource1880 unsubscribes the user from the resource1881 when a user is not subscribed to the resource1882 keeps the user unsubscribed1883 with project1884 behaves like setting subscriptions1885 when desired_state is set to true1886 when a user is subscribed to the resource1887 keeps the user subscribed1888 when a user is not subscribed to the resource1889 subscribes the user to the resource1890 when desired_state is set to false1891 when a user is subscribed to the resource1892 unsubscribes the user from the resource1893 when a user is not subscribed to the resource1894 keeps the user unsubscribed1895TestHooks::ProjectService1896 #execute1897 allows to set a custom project1898 hook with not implemented test1899 returns error message1900 push_events1901 returns error message if not enough data1902 executes hook1903 tag_push_events1904 returns error message if not enough data1905 executes hook1906 note_events1907 returns error message if not enough data1908 executes hook1909 issues_events1910 returns error message if not enough data1911 executes hook1912 confidential_issues_events1913 returns error message if not enough data1914 executes hook1915 merge_requests_events1916 returns error message if not enough data1917 executes hook1918 job_events1919 returns error message if not enough data1920 executes hook1921 pipeline_events1922 returns error message if not enough data1923 executes hook1924 wiki_page_events1925 returns error message if wiki disabled1926 returns error message if not enough data1927 executes hook1928Gitlab::ProjectTemplate1929 .all1930 returns a all templates1931 #project_path1932 is expected to eq "some/project/path"1933 #uri_encoded_project_path1934 is expected to eq "some%2Fproject%2Fpath"1935 .find1936 when there is a match1937 is expected to be a kind of Gitlab::ProjectTemplate1938 when there is no match1939 is expected to equal nil1940 .archive_directory1941 is expected to be a kind of Pathname1942 instance methods1943 is expected to respond to [:logo, :file, :archive_path]1944 validate all templates1945 rails has a valid archive1946 spring has a valid archive1947 express has a valid archive1948 iosswift has a valid archive1949 dotnetcore has a valid archive1950 android has a valid archive1951 gomicro has a valid archive1952 gatsby has a valid archive1953 hugo has a valid archive1954 jekyll has a valid archive1955 plainhtml has a valid archive1956 gitbook has a valid archive1957 hexo has a valid archive1958 nfhugo has a valid archive1959 nfjekyll has a valid archive1960 nfplainhtml has a valid archive1961 nfgitbook has a valid archive1962 nfhexo has a valid archive1963 salesforcedx has a valid archive1964 serverless_framework has a valid archive1965 with valid parameters1966 can be imported1967 with valid parameters1968 can be imported1969 with valid parameters1970 can be imported1971 with valid parameters1972 can be imported1973 with valid parameters1974 can be imported1975 with valid parameters1976 can be imported1977 with valid parameters1978 can be imported1979 with valid parameters1980 can be imported1981 with valid parameters1982 can be imported1983 with valid parameters1984 can be imported1985 with valid parameters1986 can be imported1987 with valid parameters1988 can be imported1989 with valid parameters1990 can be imported1991 with valid parameters1992 can be imported1993 with valid parameters1994 can be imported1995 with valid parameters1996 can be imported1997 with valid parameters1998 can be imported1999 with valid parameters2000 can be imported2001 with valid parameters2002 can be imported2003 with valid parameters2004 can be imported2005PendingTodosFinder2006 #execute2007 returns only pending todos2008 supports retrieving of todos for a specific project2009 supports retrieving of todos for a specific todo target2010 supports retrieving of todos for a specific target type2011 supports retrieving of todos for a specific commit ID2012Banzai::ReferenceParser::UserParser2013 #referenced_by2014 when the link has a data-group attribute2015 using an existing group ID2016 returns an empty Array when the group has no users2017 when group has members2018 returns the users of the group2019 returns an empty Array when the group has mentions disabled2020 using a non-existing group ID2021 returns an empty Array2022 when the link has a data-user attribute2023 returns an Array of users2024 when RequestStore is active2025 does not return users from the first call in the second2026 when the link has a data-project attribute2027 using an existing project ID2028 returns the members of a project2029 using a non-existing project ID2030 returns an empty Array2031 #nodes_visible_to_user2032 when the link has a data-group attribute2033 using an existing group ID2034 returns the nodes if the user can read the group2035 returns an empty Array if the user can not read the group2036 when the link does not have a data-group attribute2037 with a data-project attribute2038 returns the nodes if the attribute value equals the current project ID2039 returns the nodes if the user can read the project2040 returns an empty Array if the user can not read the project2041 without a data-project attribute2042 returns the nodes2043 #nodes_user_can_reference2044 when the link has a data-author attribute2045 returns the nodes when the user is a member of the project2046 returns an empty Array when the project could not be found2047 returns an empty Array when the user could not be found2048 returns an empty Array when the user is not a team member2049 returns the nodes if the project attribute value equals the current project ID2050 when the link does not have a data-author attribute2051 returns the nodes2052Ci::Group2053 is expected to includes the StaticModel module2054 is expected to respond to #stage2055 is expected to respond to #name2056 is expected to respond to #jobs2057 is expected to respond to #status2058 #size2059 returns the number of statuses in the group2060 #status2061 when ci_composite_status is enabled2062 returns a failed status2063 when ci_composite_status is disabled2064 returns a failed status2065 #detailed_status2066 when there is only one item in the group2067 calls the status from the object itself2068 when there are more than one commit status in the group2069 fabricates a new detailed status object2070 .fabricate2071 returns an array of three groups2072 returns groups with correctly ordered statuses2073 returns groups with correct names2074 when a name is nil on legacy pipelines2075 returns an array of three groups2076Gitlab::Cluster::Mixins::PumaCluster2077 when running Puma in Cluster-mode2078 signal: :USR1, exitstatus: 140, termsig: nil2079 properly handles process lifecycle2080 signal: :USR2, exitstatus: 140, termsig: nil2081 properly handles process lifecycle2082 signal: :INT, exitstatus: 140, termsig: nil2083 properly handles process lifecycle2084 signal: :HUP, exitstatus: 140, termsig: nil2085 properly handles process lifecycle2086 signal: :TERM, exitstatus: nil, termsig: 152087 properly handles process lifecycle2088Issuable::CommonSystemNotesService2089 on issuable update2090 behaves like system note creation2091 creates 1 system note with the correct content2092 behaves like system note creation2093 creates 1 system note with the correct content2094 behaves like system note creation2095 creates 1 system note with the correct content2096 behaves like system note creation2097 creates 1 system note with the correct content2098 when new label is added2099 creates a resource label event2100 when new milestone is assigned2101 behaves like system note creation2102 creates 1 system note with the correct content2103 with merge requests WIP note2104 adding WIP note2105 behaves like system note creation2106 creates 1 system note with the correct content2107 and changing title2108 behaves like WIP notes creation2109 creates WIP toggle and title change notes2110 removing WIP note2111 behaves like system note creation2112 creates 1 system note with the correct content2113 and changing title2114 behaves like WIP notes creation2115 creates WIP toggle and title change notes2116 on issuable create2117 does not create system note for title and description2118 creates a resource label event for labels added2119 creates a system note for due_date set2120 when milestone change event tracking is disabled2121 creates a system note for milestone set2122 does not create a milestone change event2123 when milestone change event tracking is enabled2124 does not create a system note for milestone set2125 creates a milestone change event2126Clusters::Applications::InstallService2127 #execute2128 when there are no errors2129 make the application installing2130 schedule async installation status check2131 when k8s cluster communication fails2132 logs into kubernetes.log and Sentry2133 make the application errored2134 a non kubernetes error happens2135 logs into kubernetes.log and Sentry2136 make the application errored2137Discussion2138 .lazy_find2139 batches requests2140 .build2141 returns a discussion of the right type2142 .build_collection2143 returns an array of discussions of the right type2144 authorization2145 delegates to the first note2146CommitCollection2147 #each2148 yields every commit2149 .committers2150 returns a relation of users when users are found2151 returns empty array when committers cannot be found2152 excludes authors of merge commits2153 #without_merge_commits2154 returns all commits except merge commits2155 #with_latest_pipeline2156 sets the latest pipeline for every commit so no additional queries are necessary2157 enrichment methods2158 #unenriched2159 returns all commits that are not backed by gitaly data2160 #fully_enriched?2161 returns true when all commits are backed by gitaly data2162 returns false when any commits are not backed by gitaly data2163 returns true when the collection is empty2164 #enrich!2165 replaces commits in the collection with those backed by gitaly data2166 maintains the original order of the commits2167 fetches data if there are unenriched commits2168 does not fetch data if all commits are enriched2169 returns the original commit if the commit could not be lazy loaded2170 #respond_to_missing?2171 returns true when the underlying Array responds to the message2172 returns false when the underlying Array does not respond to the message2173 #method_missing2174 delegates undefined methods to the underlying Array2175AwardEmoji2176 Associations2177 is expected to belong to awardable required:2178 is expected to belong to user required:2179 modules2180 is expected to includes the Participable module2181 validations2182 is expected to validate that :awardable cannot be empty/falsy2183 is expected to validate that :user cannot be empty/falsy2184 is expected to validate that :name cannot be empty/falsy2185 scoped uniqueness validation2186 rejects duplicate award emoji2187 allows duplicate award emoji for ghost users2188 scopes2189 .upvotes2190 is expected to contain exactly #<AwardEmoji id: 3, name: "thumbsup", user_id: 2541, awardable_id: 714, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2191 .downvotes2192 is expected to contain exactly #<AwardEmoji id: 4, name: "thumbsdown", user_id: 2543, awardable_id: 715, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2193 .named2194 is expected to contain exactly #<AwardEmoji id: 3, name: "thumbsup", user_id: 2541, awardable_id: 714, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2195 is expected to contain exactly #<AwardEmoji id: 3, name: "thumbsup", user_id: 2541, awardable_id: 714, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11"> and #<AwardEmoji id: 4, name: "thumbsdown", user_id: 2543, awardable_id: 715, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2196 .awarded_by2197 is expected to contain exactly #<AwardEmoji id: 3, name: "thumbsup", user_id: 2541, awardable_id: 714, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2198 is expected to contain exactly #<AwardEmoji id: 3, name: "thumbsup", user_id: 2541, awardable_id: 714, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11"> and #<AwardEmoji id: 4, name: "thumbsdown", user_id: 2543, awardable_id: 715, awardable_type: "Issue", created_at: "2020-03-05 04:38:11", updated_at: "2020-03-05 04:38:11">2199 expiring ETag cache2200 on a note2201 calls expire_etag_cache on the note when saved2202 calls expire_etag_cache on the note when destroyed2203 on another awardable2204 does not call expire_etag_cache on the issue when saved2205 does not call expire_etag_cache on the issue when destroyed2206 .award_counts_for_user2207 returns the awarded emoji in descending order2208 limits the returned number of rows2209MergeRequests::PostMergeService2210 #execute2211 refreshes the number of open merge requests for a valid MR2212 updates metrics2213 deletes non-latest diffs2214 marks MR as merged regardless of errors when closing issues2215 clean up environments for the merge request2216 behaves like cache counters invalidator2217 invalidates counter cache for assignees2218UserInteractedProject2219 is expected to validate that :project_id cannot be empty/falsy2220 is expected to validate that :user_id cannot be empty/falsy2221 .track2222 sets project accordingly2223 sets user accordingly2224 only creates a record once per user/project2225 for all actions (event types)2226 creates a record2227 for all actions (event types)2228 creates a record2229 for all actions (event types)2230 creates a record2231 for all actions (event types)2232 creates a record2233 for all actions (event types)2234 creates a record2235 for all actions (event types)2236 creates a record2237 for all actions (event types)2238 creates a record2239 for all actions (event types)2240 creates a record2241 for all actions (event types)2242 creates a record2243 for all actions (event types)2244 creates a record2245 for all actions (event types)2246 creates a record2247 with an event without a project2248 ignores the event2249 .available?2250 checks schema version and properly caches positive result2251Git::BaseHooksService2252 push event2253 creates push event2254 create_push_event is set to false2255 does not create push event2256 project hooks and services2257 hooks2258 active hooks2259 executes the hooks2260 inactive hooks2261 does not execute the hooks2262 services2263 active services2264 executes the services2265 inactive services2266 does not execute the services2267 execute_project_hooks param set to false2268 does not execute hooks and services2269 Generating CI variables from push options2270 with empty push options2271 behaves like creates pipeline with params and expected variables2272 calls the create pipeline service2273 with push options not specifying variables2274 behaves like creates pipeline with params and expected variables2275 calls the create pipeline service2276 with push options specifying variables2277 behaves like creates pipeline with params and expected variables2278 calls the create pipeline service2279 with push options not specifying variables in correct format2280 behaves like creates pipeline with params and expected variables2281 calls the create pipeline service2282Gitlab::Prometheus::Queries::AdditionalMetricsEnvironmentQuery2283 queries using specific time2284 metrics query context2285 project has Kubernetes service2286 when user configured kubernetes from CI/CD > Clusters2287 query context contains kube_namespace2288 behaves like query context containing environment slug and filter2289 contains ci_environment_slug2290 contains environment filter2291 project without Kubernetes service2292 query context contains empty kube_namespace2293 behaves like query context containing environment slug and filter2294 contains ci_environment_slug2295 contains environment filter2296 with one group where two metrics is found2297 some queries return results2298 return group data only for queries with results2299 with two groups with one metric each2300 both queries return results2301 return group data both queries2302 one query returns result2303 return group data only for query with results2304 when start and end time parameters are provided2305 as unix timestamps2306 queries using the provided times2307 as Date/Time objects2308 queries using the provided times converted to unix2309StuckMergeJobsWorker2310 perform2311 merge job identified as completed2312 updates merge request to merged when locked but has merge_commit_sha2313 updates merge request to opened when locked but has not been merged2314 logs updated stuck merge job ids2315 merge job not identified as completed2316 does not change merge request state when job is not completed yet2317Gitlab::Kubernetes::Helm::Certificate2318 .generate_root2319 generates a root CA that expires a long way in the future2320 #issue2321 generates a cert that expires soon2322 passing in INFINITE_EXPIRY2323 generates a cert that expires a long way in the future2324ContainerRegistry::Path2325 #components2326 splits components by a forward slash2327 #nodes2328 when repository path is valid2329 return all project path like node in reverse order2330 when repository path is invalid2331 rasises en error2332 #to_s2333 when path does not have uppercase characters2334 return a string with a repository path2335 when path has uppercase characters2336 return a string with a repository path2337 #valid?2338 when path has less than two components2339 is expected not to be valid2340 when path has more than allowed number of components2341 is expected not to be valid2342 when path has invalid characters2343 is expected not to be valid2344 when path has two or more components2345 is expected to be valid2346 when path is related to multi-level image2347 is expected to be valid2348 when path contains uppercase letters2349 is expected to be valid2350 when path contains double underscore2351 is expected to be valid2352 when path contains invalid separator with dot2353 is expected not to be valid2354 when path contains invalid separator with underscore2355 is expected not to be valid2356 #has_repository?2357 when project exists2358 when path already has matching repository2359 is expected to have repository2360 is expected to have project2361 when path does not have matching repository2362 is expected not to have repository2363 is expected to have project2364 when project does not exist2365 is expected not to have repository2366 is expected not to have project2367 #repository_project2368 when project for given path exists2369 returns a correct project2370 when project for given path does not exist2371 returns nil2372 when matching multi-level path2373 when using the zero-level path2374 supports zero-level path2375 when using first-level path2376 supports first-level path2377 when using second-level path2378 supports second-level path2379 when using too deep nesting in the path2380 does not support three-levels of nesting2381 #repository_name2382 when project does not exist2383 returns nil2384 when project exists2385 when project path equal repository path2386 returns an empty string2387 when repository path has one additional level2388 returns a correct repository name2389 when repository path has two additional levels2390 returns a correct repository name2391 #project_path2392 when project does not exist2393 returns nil2394 when project with uppercase characters in path exists2395 returns downcased project path2396ProjectClusterablePresenter2397 #can_create_cluster?2398 when user can create2399 is expected to be truthy2400 when user cannot create2401 is expected to be falsey2402 #index_path2403 is expected to eq "/namespace853/project958/-/clusters"2404 #new_path2405 is expected to eq "/namespace854/project959/-/clusters/new"2406 #authorize_aws_role_path2407 is expected to eq "/namespace855/project960/-/clusters/authorize_aws_role"2408 #create_user_clusters_path2409 is expected to eq "/namespace856/project961/-/clusters/create_user"2410 #create_gcp_clusters_path2411 is expected to eq "/namespace857/project962/-/clusters/create_gcp"2412 #cluster_status_cluster_path2413 is expected to eq "/namespace858/project963/-/clusters/849/cluster_status"2414 #install_applications_cluster_path2415 is expected to eq "/namespace859/project964/-/clusters/852/applications/helm"2416 #update_applications_cluster_path2417 is expected to eq "/namespace860/project965/-/clusters/855/applications/helm"2418 #clear_cluster_cache_path2419 is expected to eq "/namespace861/project966/-/clusters/858/clear_cache"2420 #cluster_path2421 is expected to eq "/namespace862/project967/-/clusters/861"2422Gitlab::Ci::Pipeline::Chain::Seed2423 #perform!2424 allocates next IID2425 sets the seeds in the command object2426 when no ref policy is specified2427 correctly fabricates a stage seeds object2428 when refs policy is specified2429 returns stage seeds only assigned to master2430 when source policy is specified2431 returns stage seeds only assigned to schedules2432 when kubernetes policy is specified2433 when kubernetes is active2434 when user configured kubernetes from CI/CD > Clusters2435 returns seeds for kubernetes dependent job2436 when kubernetes is not active2437 does not return seeds for kubernetes dependent job2438 when variables policy is specified2439 returns stage seeds only when variables expression is truthy2440Issues::ReferencedMergeRequestsService2441 #execute2442 returns a list of sorted merge requests2443 performance2444 does not run extra queries when extra namespaces are included2445 preloads the head pipeline for each merge request, and its routes2446 only loads issue notes once2447 #referenced_merge_requests2448 returns the referenced merge requests2449 excludes cross project references if the user cannot read cross project2450 performance2451 does not run a query for each note author2452 #closed_by_merge_requests2453 returns the open merge requests that close this issue2454 returns an empty array when the current issue is closed already2455 performance2456 does not run a query for each note author2457Gitlab::Graphql::Authorization2458 Field authorizations2459 with a single permission2460 returns the protected field when user has permission2461 returns nil when user is not authorized2462 with a collection of permissions2463 returns the protected field when user has all permissions2464 returns nil when user only has one of the permissions2465 returns nil when user only has none of the permissions2466 Field authorizations when field is a built in type2467 with a single permission2468 returns the protected field when user has permission2469 returns nil when user is not authorized2470 with a collection of permissions2471 returns the protected field when user has all permissions2472 returns nil when user only has one of the permissions2473 returns nil when user only has none of the permissions2474 Type authorizations2475 with a single permission2476 returns the protected field when user has permission2477 returns nil when user is not authorized2478 with a collection of permissions2479 returns the protected field when user has all permissions2480 returns nil when user only has one of the permissions2481 returns nil when user only has none of the permissions2482 type and field authorizations together2483 returns the protected field when user has all permissions2484 returns nil when user only has one of the permissions2485 returns nil when user only has none of the permissions2486 type authorizations when applied to a relay connection2487 returns only the elements visible to the user2488 returns nil when user is not authorized2489 limiting connections with multiple objects2490 only checks permissions for the first object2491 type authorizations when applied to a basic connection2492 returns the protected field when user has permission2493 returns nil when user is not authorized2494 Authorizations on active record relations2495 renders the issues the user has access to2496 does not check access on fields that will not be rendered2497ExpireBuildInstanceArtifactsWorker2498 #perform2499 with expired artifacts2500 when associated project is valid2501 does expire2502 does remove files2503 does remove the job artifact record2504 with not yet expired artifacts2505 does not expire2506 does not remove files2507 does not remove the job artifact record2508 without expire date2509 does not expire2510 does not remove files2511 does not remove the job artifact record2512 for expired artifacts2513 is still expired2514Ci::CreateJobArtifactsService2515 #execute2516 when artifacts file is uploaded2517 saves artifact for the given type2518 when metadata file is also uploaded2519 saves metadata artifact2520 sets expiration date according to application settings2521 when expire_in params is set2522 sets expiration date according to the parameter2523 when artifacts file already exists2524 when sha256 of uploading artifact is the same of the existing one2525 ignores the changes2526 when sha256 of uploading artifact is different than the existing one2527 returns error status2528 behaves like rescues object storage error2529 handles Errno::EIO2530 behaves like rescues object storage error2531 handles Google::Apis::ServerError2532 behaves like rescues object storage error2533 handles Signet::RemoteServerError2534Gitlab::Template::IssueTemplate2535 .all2536 strips the md suffix2537 combines the globals and rest2538 .find2539 returns nil if the file does not exist2540 returns the issue object of a valid file2541 .by_category2542 return array of templates2543 when repo is bare or empty2544 returns empty array2545 #content2546 loads the full file2547 raises error when file is not found2548 when repo is empty2549 raises file not found2550Gitlab::Ci::Status::Build::Common2551 #has_action?2552 is expected not to have action2553 #has_details?2554 when user has access to read build2555 is expected to have details2556 when user does not have access to read build2557 is expected not to have details2558 #details_path2559 links to the build details page2560 #illustration2561 provides a fallback empty state illustration2562Members::CreateService2563 adds user to members2564 adds no user to members2565 limits the number of users to 1002566 does not add an invalid member2567 does not add a member with an existing invite2568Gitlab::Git::CrossRepoComparer2569 #compare2570 within a single repository2571 a non-straight comparison2572 compares without fetching from another repo2573 a straight comparison2574 compares without fetching from another repo2575 across two repositories2576 target ref exists in source repo2577 compares without fetching from another repo2578 target ref does not exist in source repo2579 compares in the source repo by fetching from the target to a temporary ref2580 source ref does not exist in source repo2581 returns an empty comparison2582 target ref does not exist in target repo2583 returns nil2584X509CommitSignature2585 behaves like having unique enum values2586 has unique values in "verification_status"2587 validation2588 is expected to validate that :commit_sha cannot be empty/falsy2589 is expected to validate that :project_id cannot be empty/falsy2590 is expected to validate that :x509_certificate_id cannot be empty/falsy2591 associations2592 is expected to belong to project required: true2593 is expected to belong to x509_certificate required: true2594 .safe_create!2595 finds a signature by commit sha if it existed2596 creates a new signature if it was not found2597 assigns the correct attributes when creating2598Gitlab::ApplicationRateLimiter2599 when the key is an array of only ActiveRecord models2600 behaves like action rate limiter2601 increases the throttle count and sets the expiration time2602 returns true if the key is throttled2603 when throttling is disabled2604 returns false and does not set expiration time2605 when they key a combination of ActiveRecord models and strings2606 behaves like action rate limiter2607 increases the throttle count and sets the expiration time2608 returns true if the key is throttled2609 when throttling is disabled2610 returns false and does not set expiration time2611 #log_request2612 without a current user2613 logs information to auth.log2614 with a current_user2615 logs information to auth.log2616CycleAnalytics::ProjectLevel2617 #all_medians_by_stage2618 returns every median for each stage for a specific project2619Gitlab::LfsToken2620 #token2621 when the actor is a user2622 returns the correct username2623 returns the correct token type2624 behaves like a valid LFS token2625 returns a computed token2626 when the actor is a key2627 returns the correct username2628 returns the correct token type2629 behaves like a valid LFS token2630 returns a computed token2631 when the actor is a deploy key2632 returns the correct username2633 returns the correct token type2634 behaves like a valid LFS token2635 returns a computed token2636 when the actor is invalid2637 raises an exception2638 #token_valid?2639 where the token is invalid2640 because it's junk2641 returns false2642 because it's been fiddled with2643 returns false2644 because it was generated with a different secret2645 returns false2646 because it's expired2647 returns false2648 where the token is valid2649 returns true2650 when the actor is a regular user2651 when the user is blocked2652 returns false2653 when the user password is expired2654 returns false2655 when the actor is an ldap user2656 when the user is blocked2657 returns false2658 when the user password is expired2659 returns true2660 #deploy_key_pushable?2661 when actor is not a DeployKey2662 returns false2663 when actor is a DeployKey2664 but the DeployKey cannot push to the project2665 returns false2666 and the DeployKey can push to the project2667 returns true2668 #type2669 when actor is not a User2670 returns false2671 when actor is a User2672 returns false2673 #authentication_payload2674 returns a Hash designed for gitlab-shell2675projects/deployments/_confirm_rollback_modal2676 when re-deploying last deployment2677 shows "re-deploy"2678 links to re-deploying the environment2679 when rolling back to previous deployment2680 shows "rollback"2681 links to re-deploying the environment2682Banzai::ReferenceParser::ExternalIssueParser2683 #nodes_visible_to_user2684 when the link has a data-issue attribute2685 creates reference when the feature is 02686 creates reference when the feature is 102687 creates reference when the feature is 202688 #referenced_by2689 when the link has a data-project attribute2690 when the link has a data-external-issue attribute2691 returns an Array of ExternalIssue instances2692 when the link does not have a data-external-issue attribute2693 returns an empty Array2694 when the link does not have a data-project attribute2695 returns an empty Array2696 #issue_ids_per_project2697 returns a Hash containing range IDs per project2698 does not add a project when the data-external-issue attribute is empty2699Gitlab::Ci::Build::Step2700 #from_commands2701 when script option is specified2702 behaves like has correct script2703 fabricates an object2704 when before and script option is specified2705 behaves like has correct script2706 fabricates an object2707 when timeout option is specified in seconds2708 has job level timeout2709 behaves like has correct script2710 fabricates an object2711 #from_after_script2712 when after_script is empty2713 doesn not fabricate an object2714 when after_script is not empty2715 fabricates an object2716Projects::LfsPointers::LfsDownloadLinkListService2717 #execute2718 retrieves each download link of every non existent lfs object2719 credentials2720 when the download link and the lfs_endpoint have the same host2721 when lfs_endpoint has credentials2722 adds credentials to the download_link2723 when lfs_endpoint does not have any credentials2724 does not add any credentials2725 when the download link and the lfs_endpoint have different hosts2726 downloads without any credentials2727 #get_download_links2728 raise error if request fails2729 behaves like JSON parse errors2730 raises error2731 behaves like JSON parse errors2732 raises error2733 behaves like JSON parse errors2734 raises error2735 #parse_response_links2736 does not add oid entry if href not found2737WikiPages::CreateService2738 #execute2739 creates wiki page with valid attributes2740 executes webhooks2741 counts wiki page creation2742 when the options are bad2743 does not count a creation event2744 reports the error2745Gitlab::Checks::LfsCheck2746 #validate!2747 with LFS not enabled2748 skips integrity check2749 with LFS enabled2750 fails if any LFS blobs are missing2751 succeeds if LFS objects have already been uploaded2752 with lfs_check feature disabled2753 skips integrity check2754 deletion2755 skips integrity check2756Search::GroupService2757 basic search2758 finding projects by name2759 in parent group2760 is expected to contain exactly #<Project id:1219 group352/group351/inner_project_name_1>>, #<Project id:1220 group352/group351/inner_project_name_2>>, and #<Project id:1221 group352/outer_project_name>>2761 in subgroup2762 is expected to contain exactly #<Project id:1225 group354/group353/inner_project_name_1>> and #<Project id:1226 group354/group353/inner_project_name_2>>2763PrometheusAlert2764 .distinct_projects2765 returns a count of all distinct projects which have an alert2766 operators2767 contains the correct equality operator2768 associations2769 is expected to belong to project required:2770 is expected to belong to environment required:2771 project validations2772 is expected to validate that :environment cannot be empty/falsy2773 is expected to validate that :project cannot be empty/falsy2774 is expected to validate that :prometheus_metric cannot be empty/falsy2775 when environment and metric belongs same project2776 is expected to be valid2777 when environment belongs to different project2778 is expected not to be valid2779 when metric belongs to different project2780 is expected not to be valid2781 when metric is common2782 is expected to be valid2783 #full_query2784 returns the concatenated query2785 #to_param2786 returns the params of the prometheus alert2787projects/pipelines/_stage2788 when there are only latest builds present2789 shows the builds in the stage2790 when build belongs to different stage2791 does not render build2792 when there are retried builds present2793 shows only latest builds2794 when there are multiple builds2795 shows them in order2796Labels::UpdateService2797 #execute2798 with color in hex-code2799 updates the label2800 with color in allowed name2801 updates the label2802 with color in up-case allowed name2803 updates the label2804 with color surrounded by spaces2805 updates the label2806 with unknown color2807 doesn't update the label2808 with no color2809 doesn't update the label2810Gitlab::DataBuilder::Deployment2811 .build2812 returns the object kind for a deployment2813 returns data for the given build2814 does not include the deployable URL when there is no deployable2815Gitlab::Checks::ProjectMoved2816 .fetch_message2817 with a redirect message queue2818 returns the redirect message2819 deletes the redirect message from redis2820 with no redirect message queue2821 returns nil2822 #add_message2823 queues a redirect message2824 handles anonymous clones2825 #message2826 returns a redirect message2827Gitlab::GitalyClient::ConflictsService2828 #list_conflict_files2829 sends an RPC request2830 #resolve_conflicts2831 sends an RPC request2832 raises a relevant exception if resolution_error is present2833 with branches with UTF-8 characters2834 handles commit messages with UTF-8 characters2835Uploads routing2836 allows creating uploads for personal snippets2837 allows creating uploads for users2838 does not allow creating uploads for other models2839 legacy paths2840 redirects project uploads to canonical path under project namespace2841AddressableUrlValidator2842 #validate2843 with no options2844 allows http,https schemes by default2845 checks that the url structure is valid2846 with schemes2847 allows urls with the defined schemes2848 add error if the url scheme does not match the selected ones2849 validations2850 returns error when url is nil2851 returns error when url is empty2852 does not allow urls with CR or LF characters2853 provides all arguments to UrlBlock validate2854 by default2855 does not block urls pointing to localhost2856 does not block urls pointing to the local network2857 does block nil urls2858 does block blank urls2859 strips urls2860 allows urls that cannot be resolved2861 when message is set2862 does block nil url with provided error message2863 when blocked_message is set2864 blocks url with provided error message2865 when allow_nil is set to true2866 does not block nil urls2867 when allow_blank is set to true2868 does not block blank urls2869 when allow_localhost is set to false2870 blocks urls pointing to localhost2871 when allow_setting_local_requests is set to true2872 does not block urls pointing to localhost2873 when allow_local_network is set to false2874 blocks urls pointing to the local network2875 when allow_setting_local_requests is set to true2876 does not block urls pointing to local network2877 when ports is2878 empty2879 does not block any port2880 set2881 blocks urls with a different port2882 when enforce_user is2883 true2884 checks user format2885 false (default)2886 does not check user format2887 when ascii_only is2888 true2889 prevents unicode characters2890 false (default)2891 does not prevent unicode characters2892 when enforce_sanitization is2893 true2894 prevents unsafe urls2895 prevents unsafe internal urls2896 allows safe urls2897 false2898 allows unsafe urls2899 when dns_rebind_protection is2900 true2901 raises error2902 false2903 allows urls that cannot be resolved2904Projects::BatchOpenIssuesCountService2905 #refresh_cache2906 when cache is clean2907 refreshes cache keys correctly2908 when issues count is already cached2909 does update cache again2910Gitlab::VisibilityLevelChecker2911 #level_restricted?2912 when visibility level is allowed2913 returns false with nil for visibility level2914 when visibility level is restricted2915 returns true and visibility name2916 overridden visibility2917 when restricted2918 returns true and visibility name2919 when misspelled2920 returns false with nil for visibility level2921 when import_data is missing2922 returns false with nil for visibility level2923projects/commits/_commit.html.haml2924 with a signed commit2925 does not display a loading spinner for GPG status2926 with ci status2927 when pipelines are disabled2928 does not display a ci status icon2929 when pipelines are enabled2930 does display a ci status icon when pipelines are enabled2931WebHookLogPresenter2932 #details_path2933 project hook2934 is expected to eq "/namespace1038/project1140/hooks/22/hook_logs/1"2935 service hook2936 is expected to eq "/namespace1039/project1141/-/services/drone_ci/hook_logs/2"2937 #retry_path2938 project hook2939 is expected to eq "/namespace1040/project1142/hooks/25/hook_logs/3/retry"2940 service hook2941 is expected to eq "/namespace1041/project1143/-/services/drone_ci/hook_logs/4/retry"2942UsersWithPendingTodosFinder2943 #execute2944 returns the users for all pending todos of a target2945ClusterConfigureIstioWorker2946 #perform2947 when provider type is gcp2948 behaves like configure istio service2949 configures istio2950 when provider type is aws2951 behaves like configure istio service2952 configures istio2953 when provider type is user2954 behaves like configure istio service2955 configures istio2956 when cluster does not exist2957 does not provision a cluster2958MigrateExternalDiffsWorker2959 #perform2960 migrates the listed diff2961 does nothing if the diff is missing2962Gitlab::CurrentSettings2963 .expire_current_application_settings2964 expires the cache2965 #current_application_settings2966 allows keys to be called directly2967 when ENV["IN_MEMORY_APPLICATION_SETTINGS"] is true2968 returns an in-memory ApplicationSetting object2969 with DB unavailable2970 and settings in cache2971 fetches the settings from cache without issuing any query2972 and no settings in cache2973 returns a FakeApplicationSettings object2974 does not issue any query2975 with DB available2976 and settings in cache2977 fetches the settings from cache2978 and no settings in cache2979 creates default ApplicationSettings if none are present2980 with RequestStore enabled2981 fetches the settings from DB only once2982 with pending migrations2983 in a Rake task2984 returns a FakeApplicationSettings object2985 behaves like a non-persisted ApplicationSetting object2986 uses the default value from ApplicationSetting.defaults2987 uses the default value from custom ApplicationSetting accessors2988 responds to predicate methods2989 when a new column is used before being migrated2990 uses the default value if present2991 with no ApplicationSetting DB record2992 behaves like a non-persisted ApplicationSetting object2993 uses the default value from ApplicationSetting.defaults2994 uses the default value from custom ApplicationSetting accessors2995 responds to predicate methods2996 with an existing ApplicationSetting DB record2997 uses the value from the DB attribute if present and not overridden by an accessor2998 behaves like a non-persisted ApplicationSetting object2999 uses the default value from ApplicationSetting.defaults3000 uses the default value from custom ApplicationSetting accessors3001 responds to predicate methods3002 when ApplicationSettings.current is present3003 returns the existing application settings3004 when the application_settings table does not exist3005 returns a FakeApplicationSettings object3006Clusters::CreateService3007 when provider is gcp3008 when project has no clusters3009 when correct params3010 creates a cluster object and performs a worker3011 when invalid params3012 returns an error3013 when project has a cluster3014 does not create a cluster3015EnvironmentHelper3016 #render_deployment_status3017 when using a manual deployment3018 renders a span tag3019 when using a deployment from a build3020 renders a link tag3021Gitlab::GithubImport::RefreshImportJidWorker3022 .perform_in_the_future3023 schedules a job in the future3024 #perform3025 when the project does not exist3026 does nothing3027 when the job is running3028 refreshes the import JID and reschedules itself3029 when the job is no longer running3030 returns3031 #find_import_state3032 returns a ProjectImportState3033 returns nil for a import state for which the import process failed3034 returns nil for a non-existing find_import_state3035Gitlab::Ci::Pipeline::Chain::Populate3036 when pipeline doesn not have seeds block3037 does not persist the pipeline3038 does not break the chain3039 populates pipeline with stages3040 correctly assigns user3041 has pipeline iid3042 when pipeline is empty3043 breaks the chain3044 appends an error about missing stages3045 wastes pipeline iid3046 pipeline protect3047 when ref is protected3048 does not protect the pipeline3049 when ref is not protected3050 does not protect the pipeline3051 when pipeline has validation errors3052 breaks the chain3053 appends validation error3054 wastes pipeline iid3055 when there is a seed blocks present3056 when seeds block builds some resources3057 populates pipeline with resources described in the seeds block3058 has pipeline iid3059 when seeds block tries to persist some resources3060 wastes pipeline iid3061 when pipeline gets persisted during the process3062 raises error3063 when variables policy is specified3064 when using only/except build policies3065 behaves like a correct pipeline3066 populates pipeline according to used policies3067 when variables expression is specified3068 when pipeline iid is the subject3069 behaves like a correct pipeline3070 populates pipeline according to used policies3071Gitlab::SlashCommands::Presenters::IssueClose3072 is expected to be a kind of Hash3073 shows the issue3074 confidential issue3075 shows an ephemeral response3076Tags::DestroyService3077 #execute3078 removes the tag3079 when there is an associated release on the tag3080 destroys the release3081Gitlab::Ci::Build::Policy::Changes3082 #satisfied_by?3083 paths matching3084 is satisfied by matching literal path3085 is satisfied by matching simple pattern3086 is satisfied by matching recusive pattern3087 is satisfied by matching a pattern with a dot3088 is satisfied by matching a pattern with a glob3089 is not satisfied when pattern does not match path3090 is not satisfied when pattern does not match3091 is not satified when pattern with glob does not match3092 when modified paths can not be evaluated3093 is always satisfied3094 gitaly integration3095 is satisfied by changes introduced by a push3096 is not satisfied by changes that are not in the push3097 when branch is created3098 when source is merge request3099 is satified by changes in the merge request3100 is not satified by changes not in the merge request3101 when source is push3102 is always satified3103StorageHelper3104 #storage_counter3105 formats bytes to one decimal place3106 does not add decimals for sizes < 1 MB3107 does not add decimals for zeroes3108 uses commas as thousands separator3109 #storage_counters_details3110 works on ProjectStatistics3111 works on Namespace.with_statistics3112Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs3113 #perform!3114 removes unwanted jobs for chat pipelines3115 does not remove any jobs for non chat-pipelines3116Clusters::Aws::ProvisionService3117 #execute3118 updates the provider status to :creating and configures the provider with credentials3119 creates a CloudFormation stack3120 schedules a worker to monitor creation status3121 error handling3122 invalid state transition3123 sets the status to :errored with an appropriate error message3124 AWS role is not configured3125 sets the status to :errored with an appropriate error message3126 AWS credentials are not configured3127 sets the status to :errored with an appropriate error message3128 Authentication failure3129 sets the status to :errored with an appropriate error message3130 CloudFormation failure3131 sets the status to :errored with an appropriate error message3132Evidences::ReleaseEntity3133 exposes the expected fields3134 when the release has milestones3135 exposes these milestones3136 when the release has no milestone3137 exposes an empty array for milestones3138Milestones::CreateService3139 #execute3140 valid params3141 is expected to be valid3142 is expected to eq "v2.1.9"3143Gitlab::Ci::Status::Build::Created3144 #illustration3145 is expected to include :image, :size, :title, and :content3146 .matches?3147 when build is created3148 is a correct match3149 when build is not created3150 does not match3151Gitlab::Utils::Override3152 #override3153 when instance is klass.new(0)3154 when STATIC_VERIFICATION is set3155 when subject is a class3156 behaves like checking as intended3157 checks ok for overriding method3158 checks ok for overriding method using negative arity3159 raises NotImplementedError when it is not overriding anything3160 raises NotImplementedError when overriding a method with different arity3161 when subject is a module, and class is prepending it3162 behaves like checking as intended3163 checks ok for overriding method3164 checks ok for overriding method using negative arity3165 raises NotImplementedError when it is not overriding anything3166 raises NotImplementedError when overriding a method with different arity3167 when subject is a module, and class is including it3168 behaves like checking as intended, nothing was overridden3169 raises NotImplementedError because it is not overriding it3170 raises NotImplementedError when it is not overriding anything3171 when STATIC_VERIFICATION is not set3172 when subject is a class3173 behaves like nothing happened3174 does not complain when it is overriding something3175 does not complain when it is not overriding anything3176 when subject is a module, and class is prepending it3177 behaves like nothing happened3178 does not complain when it is overriding something3179 does not complain when it is not overriding anything3180 when subject is a module, and class is including it3181 does not complain when it is overriding something3182 does not complain when it is not overriding anything3183 when instance is klass3184 when STATIC_VERIFICATION is set3185 when subject is a module, and class is prepending it3186 behaves like checking as intended3187 checks ok for overriding method3188 checks ok for overriding method using negative arity3189 raises NotImplementedError when it is not overriding anything3190 raises NotImplementedError when overriding a method with different arity3191 when subject is a module, and class is extending it3192 behaves like checking as intended, nothing was overridden3193 raises NotImplementedError because it is not overriding it3194 raises NotImplementedError when it is not overriding anything3195projects/generic_commit_statuses/_generic_commit_status.html.haml3196 won't include a column with a link to its pipeline by default3197 can include a column with a link to its pipeline3198Gitlab::Git::Diff3199 .new3200 using a Hash3201 with a small diff3202 initializes the diff3203 does not prune the diff3204 using a diff that is too large3205 prunes the diff3206 using a GitalyClient::Diff3207 with a small diff3208 initializes the diff3209 does not prune the diff3210 using a diff that is too large3211 prunes the diff3212 using a collapsable diff that is too large3213 prunes the diff as a large diff instead of as a collapsed diff3214 when the patch passed is not UTF-8-encoded3215 encodes diff patch to UTF-83216 straight diffs3217 has the correct size3218 diff3219 is an instance of Diff3220 has the correct new_path3221 has the correct diff3222 .between3223 is expected to be a kind of Gitlab::Git::DiffCollection3224 #size3225 is expected to eq 13226 diff3227 is expected to be a kind of Gitlab::Git::Diff3228 #new_path3229 is expected to eq "files/ruby/feature.rb"3230 #diff3231 is expected to include "+class Feature"3232 .filter_diff_options3233 without default options3234 filters invalid options3235 with default options3236 filters invalid options3237 merges with default options3238 overrides default options3239 #json_safe_diff3240 fake binary message when it detects binary3241 leave non-binary diffs as-is3242 #submodule?3243 is expected to eq false3244 is expected to eq true3245 #line_count3246 returns the correct number of lines3247 #too_large?3248 returns true for a diff that is too large3249 returns false for a diff that is small enough3250 returns true for a diff that was explicitly marked as being too large3251 #collapsed?3252 returns false by default even on quite big diff3253 returns false by default for a diff that is small enough3254 returns true for a diff that was explicitly marked as being collapsed3255 #collapsed?3256 returns true for a diff that is quite large3257 returns false for a diff that is small enough3258 #collapse!3259 prunes the diff3260Clusters::InstancePolicy3261 rules3262 when user3263 is expected to be disallowed :read_cluster3264 is expected to be disallowed :add_cluster3265 is expected to be disallowed :create_cluster3266 is expected to be disallowed :update_cluster3267 is expected to be disallowed :admin_cluster3268 when admin3269 is expected to be allowed :read_cluster3270 is expected to be allowed :add_cluster3271 is expected to be allowed :create_cluster3272 is expected to be allowed :update_cluster3273 is expected to be allowed :admin_cluster3274UpdateProjectStatisticsWorker3275 #perform3276 updates the project statistics3277Gitlab::Prometheus::Queries::DeploymentQuery3278 sends appropriate queries to prometheus3279Users::SignupService3280 #execute3281 when updating name3282 updates the name attribute3283 returns an error result when name is missing3284 when updating role3285 updates the role attribute3286 returns an error result when role is missing3287 when updating setup_for_company3288 updates the setup_for_company attribute3289 returns an error result when setup_for_company is missing3290projects/services/edit3291 is expected not to text "Recent Deliveries"3292 service using WebHooks3293 is expected to text "Recent Deliveries"3294WikiDirectory3295 validations3296 is expected to validate that :slug cannot be empty/falsy3297 #initialize3298 when there are pages3299 sets the slug attribute3300 sets the pages attribute3301 when there are no pages3302 sets the slug attribute3303 sets the pages attribute to an empty array3304 #to_partial_path3305 returns the relative path to the partial to be used3306Branches::DivergingCommitCountsService3307 #call3308 returns the commit counts behind and ahead of default branch3309 calls diverging_commit_count without max count3310Gitlab::GithubImport::ParallelImporter3311 .async?3312 returns true3313 #execute3314 schedules the importing of the repository3315 sets the JID in Redis3316StageUpdateWorker3317 #perform3318 when stage exists3319 updates stage status3320 when stage does not exist3321 does not raise exception3322Gitlab::Octokit::Middleware3323 #call3324 when the URL is a public URL3325 behaves like Public URL3326 does not raise an error3327 when the URL is a localhost adresss3328 when localhost requests are not allowed3329 behaves like Local URL3330 raises an error3331 when localhost requests are allowed3332 behaves like Public URL3333 does not raise an error3334 when the URL is a local network address3335 when local network requests are not allowed3336 behaves like Local URL3337 raises an error3338 when local network requests are allowed3339 behaves like Public URL3340 does not raise an error3341Constraints::GroupUrlConstrainer3342 #matches?3343 valid request3344 is expected to be truthy3345 valid request for nested group3346 is expected to be truthy3347 valid request for nested group with reserved top level name3348 is expected to be truthy3349 invalid request3350 is expected to be falsey3351 when the request matches a redirect route3352 for a root group3353 and is a GET request3354 is expected to be truthy3355 and is NOT a GET request3356 is expected to be falsey3357 for a nested group3358 is expected to be truthy3359Emails::DestroyService3360 #execute3361 removes an email3362Gitlab::Ci::Config::External::Mapper3363 #process3364 when single 'include' keyword is defined3365 when the string is a local file3366 returns File instances3367 when the key is a local file hash3368 returns File instances3369 when the string is a remote file3370 returns File instances3371 when the key is a remote file hash3372 returns File instances3373 when the key is a template file hash3374 returns File instances3375 when the key is a hash of file and remote3376 returns ambigious specification error3377 when 'include' is defined as an array3378 returns Files instances3379 when 'include' is defined as an array of hashes3380 returns Files instances3381 when it has ambigious match3382 returns ambigious specification error3383 when 'include' is not defined3384 returns an empty array3385 when duplicate 'include' is defined3386 raises an exception3387 when too many 'includes' are defined3388 raises an exception3389Snippet3390 has the correct fields3391 authorizations3392 is expected to require graphql authorizations :read_snippet3393 #blob3394 when snippet has repository3395 returns blob from the repository3396 when snippet does not have a repository3397 returns SnippetBlob type3398Users::RespondToTermsService3399 #execute3400 creates a new agreement if it did not exist3401 updates an agreement if it existed3402 adds the accepted terms to the user3403 removes accepted terms when declining3404shared/_label_row.html.haml3405 for a project label3406 has a non-linked label title3407 has Issues link for project label3408 has Merge request link for project label3409 for a group label3410 has a non-linked label title3411 has Issues link for group label3412 has Merge request link for group label3413Admin::UsersController routing3414 to #block3415 to #unblock3416 to #index3417 to #show3418 to #create3419 to #new3420 to #edit3421 to #show3422 to #update3423 to #destroy3424Admin::ProjectsController routing3425 to #index3426 to #show3427Admin::HooksController routing3428 to #test3429 to #index3430 to #create3431 to #edit3432 to #update3433 to #destroy3434Admin::HookLogsController routing3435 to #retry3436 to #show3437Admin::LogsController routing3438 to #show3439Admin::BackgroundJobsController routing3440 to #show3441Admin::DashboardController routing3442 to #index3443Admin::HealthCheckController routing3444 to #show3445Admin::GroupsController routing3446 to #index3447 to #show3448 to #edit3449Admin::SessionsController routing3450 to #new3451 to #create3452 to #destroy3453Keys::LastUsedService3454 #execute3455 updates the key when it has not been used recently3456 does not update the key when it has been used recently3457 does not update the updated_at field3458 #update?3459 returns true when no last used timestamp is present3460 returns true when the key needs to be updated3461 returns false when a lease has already been obtained3462 returns false when the key does not yet need to be updated3463Resolvers::ErrorTracking::SentryDetailedErrorResolver3464 #resolve3465 fetches the data via the sentry API3466 resolves to nil if no match3467 error matched3468 resolves to a detailed error3469 assigns the gitlab project3470MergeRequestUserEntity3471 as json3472 exposes needed attributes3473Gitlab::Metrics::Methods3474 #define_counter3475 metrics access method not defined3476 defines metrics accessing method3477 metrics access method defined3478 raises error when trying to redefine method3479 metric is not cached3480 calls fetch_metric3481 metric is cached3482 returns cached metric3483 #fetch_counter3484 when counter is not cached3485 initializes counter metric3486 when counter is cached3487 uses class metric cache3488 when metric is reloaded3489 initializes counter metric3490 when metric is configured with feature3491 when feature is enabled3492 initializes counter metric3493 when feature is disabled3494 returns NullMetric3495 #define_gauge3496 metrics access method not defined3497 defines metrics accessing method3498 metrics access method defined3499 raises error when trying to redefine method3500 metric is not cached3501 calls fetch_metric3502 metric is cached3503 returns cached metric3504 #fetch_gauge3505 when gauge is not cached3506 initializes counter metric3507 when gauge is cached3508 uses class metric cache3509 when metric is reloaded3510 initializes gauge metric3511 when metric is configured with feature3512 when feature is enabled3513 initializes gauge metric3514 when feature is disabled3515 returns NullMetric3516 #define_histogram3517 metrics access method not defined3518 defines metrics accessing method3519 metrics access method defined3520 raises error when trying to redefine method3521 metric is not cached3522 calls fetch_metric3523 metric is cached3524 returns cached metric3525 #fetch_histogram3526 when histogram is not cached3527 initializes counter metric3528 when histogram is cached3529 uses class metric cache3530 when metric is reloaded3531 initializes histogram metric3532 when metric is configured with feature3533 when feature is enabled3534 initializes histogram metric3535 when feature is disabled3536 returns NullMetric3537Gitlab::Ci::Pipeline::Preloader3538 .preload!3539 preloads commit authors and number of warnings3540 returns original collection3541 when preloading multiple commits3542 preloads all commits once3543Gitlab::EncodingHelper3544 #encode!3545 nil3546 empty string3547 invalid utf-8 encoded string3548 frozen non-ascii string3549 leaves ascii only string as is3550 leaves valid utf8 string as is3551 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.3552 string with detected encoding that is not supported in Ruby3553 leaves binary string as is3554 with corrupted diff3555 does not corrupt data but remove invalid characters3556 #encode_utf83557 nil3558 empty string3559 invalid utf-8 encoded string3560 encodes valid utf8 encoded string to utf83561 encodes valid ASCII-8BIT encoded string to utf83562 encodes valid ISO-8859-1 encoded string to utf83563 Equifax branch name3564 returns empty string on conversion errors3565 with strings that can be forcefully encoded into utf83566 doesn't use CharlockHolmes if the encoding can be forced into utf_83567 #clean3568 leaves ascii only string as is3569 leaves valid utf8 string as is3570 removes invalid bytes from ASCII-8bit encoded multibyte string.3571 handles UTF-16BE encoded strings3572 encode_binary3573 encodes nil to ""3574 encodes "" to ""3575 encodes " " to " "3576 encodes "a1" to "a1"3577 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"3578 #binary_io3579 does not mutate the original string encoding3580 returns a copy of the IO with the correct encoding3581RuboCop::Cop::RSpec::HaveGitlabHttpStatus3582 offenses and autocorrections3583 bad: "have_http_status(:ok)", good: "have_gitlab_http_status(:ok)"3584 registers an offense3585 does not register an offense3586 autocorrects3587 does not autocorrect3588 bad: "have_http_status(204)", good: "have_gitlab_http_status(:no_content)"3589 registers an offense3590 does not register an offense3591 autocorrects3592 does not autocorrect3593 bad: "have_gitlab_http_status(201)", good: "have_gitlab_http_status(:created)"3594 registers an offense3595 does not register an offense3596 autocorrects3597 does not autocorrect3598 bad: "have_http_status(var)", good: "have_gitlab_http_status(var)"3599 registers an offense3600 does not register an offense3601 autocorrects3602 does not autocorrect3603 bad: "have_http_status(:success)", good: "have_gitlab_http_status(:success)"3604 registers an offense3605 does not register an offense3606 autocorrects3607 does not autocorrect3608 bad: "have_http_status(:invalid)", good: "have_gitlab_http_status(:invalid)"3609 registers an offense3610 does not register an offense3611 autocorrects3612 does not autocorrect3613 partially autocorrects invalid numeric status3614 bad: "have_http_status(-1)", good: "have_gitlab_http_status(-1)"3615 registers an offense3616 registers an offense3617 autocorrects3618 does not autocorrect3619 ignore3620 code: "have_http_status"3621 does not register an offense3622 does not autocorrect3623 code: "have_http_status { }"3624 does not register an offense3625 does not autocorrect3626 code: "have_http_status(200, arg)"3627 does not register an offense3628 does not autocorrect3629 code: "have_gitlab_http_status"3630 does not register an offense3631 does not autocorrect3632 code: "have_gitlab_http_status { }"3633 does not register an offense3634 does not autocorrect3635 code: "have_gitlab_http_status(200, arg)"3636 does not register an offense3637 does not autocorrect3638Gitlab::GithubImport::Stage::ImportNotesWorker3639 #import3640 imports all the notes3641Gitlab::Ci::Config::Entry::Key3642 validations3643 behaves like key entry validations3644 when entry value contains slash3645 behaves like key with slash3646 is invalid3647 reports errors with config value3648 when entry value contains URI encoded slash (%2F)3649 behaves like key with slash3650 is invalid3651 reports errors with config value3652 when entry value is a dot3653 behaves like key with only dots3654 is invalid3655 reports errors with config value3656 when entry value is two dots3657 behaves like key with only dots3658 is invalid3659 reports errors with config value3660 when entry value is a URI encoded dot (%2E)3661 behaves like key with only dots3662 is invalid3663 reports errors with config value3664 when entry value is two URI encoded dots (%2E)3665 behaves like key with only dots3666 is invalid3667 reports errors with config value3668 when entry value is one dot and one URI encoded dot3669 behaves like key with only dots3670 is invalid3671 reports errors with config value3672 when key is a string3673 #value3674 returns key value3675 #valid?3676 is valid3677 when entry config value is correct3678 when key is a hash3679 #value3680 returns key value3681 #valid?3682 is valid3683 when key is a symbol3684 #value3685 returns key value3686 #valid?3687 is valid3688 when entry value is not correct3689 #errors3690 saves errors3691 .default3692 returns default key3693Gitlab::Prometheus::Queries::KnativeInvocationQuery3694 verify queries3695 has the query, but no data3696Banzai::Filter::SyntaxHighlightFilter3697 when no language is specified3698 highlights as plaintext3699 escapes HTML tags3700 when a valid language is specified3701 highlights as that language3702 escapes HTML tags3703 when an invalid language is specified3704 highlights as plaintext3705 escapes HTML tags3706 languages that should be passed through3707 when math is specified3708 highlights as plaintext but with the correct language attribute and class3709 escapes HTML tags3710 when math has extra params3711 includes data-lang-params tag with extra information3712 escapes HTML tags3713 escapes HTML tags3714 escapes HTML tags3715 when mermaid is specified3716 highlights as plaintext but with the correct language attribute and class3717 escapes HTML tags3718 when mermaid has extra params3719 includes data-lang-params tag with extra information3720 escapes HTML tags3721 escapes HTML tags3722 escapes HTML tags3723 when plantuml is specified3724 highlights as plaintext but with the correct language attribute and class3725 escapes HTML tags3726 when plantuml has extra params3727 includes data-lang-params tag with extra information3728 escapes HTML tags3729 escapes HTML tags3730 escapes HTML tags3731 when suggestion is specified3732 highlights as plaintext but with the correct language attribute and class3733 escapes HTML tags3734 when suggestion has extra params3735 includes data-lang-params tag with extra information3736 escapes HTML tags3737 escapes HTML tags3738 escapes HTML tags3739 when multiple param delimiters are used3740 delimits on the first appearance3741 when Rouge lexing fails3742 highlights as plaintext3743 escapes HTML tags3744 when Rouge lexing fails after a retry3745 does not add highlighting classes3746 escapes HTML tags3747Gitlab::GitRefValidator3748 .validate3749 is expected to equal true3750 is expected to equal true3751 is expected to equal true3752 is expected to equal true3753 is expected to equal true3754 is expected to equal true3755 is expected to equal false3756 is expected to equal false3757 is expected to equal false3758 is expected to equal false3759 is expected to equal false3760 is expected to equal false3761 is expected to equal false3762 is expected to equal false3763 is expected to equal false3764 is expected to equal false3765 is expected to equal false3766 is expected to equal false3767 is expected to equal false3768 is expected to equal false3769 is expected to equal false3770 is expected to equal false3771 is expected to equal false3772 is expected to equal false3773 is expected to equal false3774 is expected to equal false3775 is expected to equal false3776 is expected to equal false3777 is expected to equal false3778 .validate_merge_request_branch3779 is expected to equal true3780 is expected to equal true3781 is expected to equal true3782 is expected to equal true3783 is expected to equal true3784 is expected to equal true3785 is expected to equal true3786 is expected to equal false3787 is expected to equal false3788 is expected to equal false3789 is expected to equal false3790 is expected to equal false3791 is expected to equal false3792 is expected to equal false3793 is expected to equal false3794 is expected to equal false3795 is expected to equal false3796 is expected to equal false3797 is expected to equal false3798 is expected to equal true3799 is expected to equal false3800 is expected to equal false3801 is expected to equal false3802 is expected to equal false3803 is expected to equal false3804 is expected to equal false3805 is expected to equal false3806 is expected to equal false3807 is expected to equal false3808Peek::Views::DetailedView3809 when a class defines thresholds3810 when the results exceed the calls threshold3811 adds a warning to the results key3812 when the results exceed the duration threshold3813 adds a warning to the results key3814 when a single call exceeds the duration threshold3815 adds a warning to that call detail entry3816 when a view does not define thresholds3817 does not add warnings to the top level3818 does not add warnings to call details entries3819Gitlab::Email::ReplyParser3820 #execute3821 returns an empty string if the message is blank3822 returns an empty string if the message is not an email3823 returns an empty string if there is no reply content3824 properly renders plaintext-only email3825 supports a Dutch reply3826 removes an 'on date wrote' quoting line3827 handles multiple paragraphs3828 handles multiple paragraphs when parsing html3829 handles newlines3830 handles inline reply3831 properly renders email reply from gmail web client3832 properly renders email reply from iOS default mail client3833 properly renders email reply from Android 5 gmail client3834 properly renders email reply from Windows 8.1 Metro default mail client3835 properly renders email reply from MS Outlook client3836 properly renders html-only email from MS Outlook3837 does not wrap links with no href in unnecessary brackets3838 does not trim reply if trim_reply option is false3839Gitlab::SidekiqDaemon::Monitor3840 #within_job3841 tracks thread3842 when job is canceled38432020-03-05T04:42:10.514Z 98 TID-gsh06qj2m WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"b1df0424ed93bf0b32fa5123fa59b385", :canceled=>true}3844 does not execute a block38452020-03-05T04:42:10.616Z 98 TID-gsh06qj2m WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"run", :queue=>"queue", :jid=>"e83a57ba144b2143c217a3a69ec16549", :canceled=>true}3846 raises exception3847 #run_thread when notification channel not enabled3848 return directly3849 #run_thread when notification channel enabled3850 when structured logging is used3851 logs start message3852 logs stop message3853 logs StandardError message3854 logs and raises Exception message3855 when StandardError is raised3856 does retry connection3857 when message is published3858 and message is valid3859 processes cancel3860 and message is not valid json3861 skips processing3862 #stop3863#<Thread:0x0000562a092fede0@/builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:42 run> terminated with exception (report_on_exception is true):3864/builds/gitlab-org/gitlab/lib/gitlab/sidekiq_daemon/monitor.rb:31:in `thread_name': Interrupt (Interrupt)3865 from /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:43:in `block (2 levels) in start'3866 does stop the thread3867 #process_job_cancel3868 when jid is missing3869 does not run thread3870 when jid is provided3871 when jid is not found3872 does not log cancellation message3873 when jid is found3874#<Thread:0x0000562a093f56e0@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):3875/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)3876 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'3877 does log cancellation message38782020-03-05T04:42:11.903Z 98 TID-gsh55nf7e WARN: {:class=>"Gitlab::SidekiqDaemon::Monitor", :action=>"cancel", :message=>"Canceling thread with CancelledError", :jid=>"my-jid", :thread_id=>47369272235800}3879#<Thread:0x0000562a094a2e30@/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220 run> terminated with exception (report_on_exception is true):3880/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)3881 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:220:in `block (6 levels) in <top (required)>'3882 does cancel the thread3883 .cancel_job3884 sets a redis key3885 notifies all workers3886 #notification_channel_enabled?3887 return nil when SIDEKIQ_MONITOR_WORKER is not set3888 return nil when SIDEKIQ_MONITOR_WORKER set to 03889 return 1 when SIDEKIQ_MONITOR_WORKER set to 13890Gitlab::GithubImport::Client3891 #parallel?3892 returns true when the client is running in parallel mode3893 returns false when the client is running in sequential mode3894 #user3895 returns the details for the given username3896 #repository3897 returns the details of a repository3898 #labels3899 returns the labels3900 #milestones3901 returns the milestones3902 #releases3903 returns the releases3904 #each_page3905 without a block3906 returns an Enumerator3907 the returned Enumerator returns Page objects3908 with a block3909 yields every retrieved page to the supplied block3910 starts at the given page3911 #with_rate_limit3912 yields the supplied block when enough requests remain3913 waits before yielding if not enough requests remain3914 waits and retries the operation if all requests were consumed in the supplied block3915 increments the request count counter3916 ignores rate limiting when disabled3917 #requests_remaining?3918 returns true if enough requests remain3919 returns false if not enough requests remain3920 #raise_or_wait_for_rate_limit3921 raises RateLimitError when running in parallel mode3922 sleeps when running in sequential mode3923 increments the rate limit counter3924 #remaining_requests3925 returns the number of remaining requests3926 #rate_limit_resets_in3927 returns the number of seconds after which the rate limit is reset3928 #api_endpoint3929 without a custom endpoint configured in Omniauth3930 returns the default API endpoint3931 with a custom endpoint configured in Omniauth3932 returns the custom endpoint3933 #custom_api_endpoint3934 without a custom endpoint3935 returns nil3936 with a custom endpoint3937 returns the API endpoint3938 #default_api_endpoint3939 returns the default API endpoint3940 #verify_ssl3941 without a custom configuration3942 returns true3943 with a custom configuration3944 returns the configured value3945 #github_omniauth_provider3946 without a configured provider3947 returns an empty Hash3948 with a configured provider3949 returns the provider details as a Hash3950 #rate_limiting_enabled?3951 returns true when using GitHub.com3952 returns false for GitHub enterprise installations3953Gitlab::QuickActions::Extractor3954 #extract_commands3955 extracts command with multiple arguments and various prefixes3956 extracts command case insensitive3957 does not extract noop commands3958 extracts and performs substitution commands3959 extracts and performs substitution commands3960 extracts and performs multiple substitution commands3961 does not extract substitution command in inline code3962 extracts and performs substitution commands case insensitive3963 extracts and performs substitution commands with comments3964 extracts multiple commands3965 does not alter original content if no command is found3966 does not extract commands inside a blockcode3967 does not extract commands inside a blockquote3968 does not extract commands inside a HTML tag3969 limits to passed commands when they are passed3970 command with no argument3971 at the start of content3972 behaves like command with no argument3973 extracts command3974 in the middle of content3975 behaves like command with no argument3976 extracts command3977 in the middle of a line3978 does not extract command3979 at the end of content3980 behaves like command with no argument3981 extracts command3982 command with a single argument3983 at the start of content3984 allows slash in command arguments3985 behaves like command with a single argument3986 extracts command3987 in the middle of content3988 behaves like command with a single argument3989 extracts command3990 in the middle of a line3991 does not extract command3992 at the end of content3993 behaves like command with a single argument3994 extracts command3995 when argument is not separated with a space3996 does not extract command3997 command with multiple arguments3998 at the start of content3999 behaves like command with multiple arguments4000 extracts command4001 in the middle of content4002 behaves like command with multiple arguments4003 extracts command4004 in the middle of a line4005 does not extract command4006 at the end of content4007 behaves like command with multiple arguments4008 extracts command4009 when argument is not separated with a space4010 does not extract command4011 #redact_commands4012 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"4013 encloses quick actions with code span markdown4014 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"4015 encloses quick actions with code span markdown4016 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"4017 encloses quick actions with code span markdown4018 text: "/reopen\nworld", expected: "`/reopen`\nworld"4019 encloses quick actions with code span markdown4020 text: "hello\n/open", expected: "hello\n`/open`"4021 encloses quick actions with code span markdown4022EnvironmentsHelper4023 #metrics_data4024 returns data4025 with metrics_setting4026 adds external_dashboard_url4027Banzai::Filter::AssetProxyFilter4028 does not replace if disabled4029 during initialization4030 #initialize_settings4031 when whitelist is empty4032 defaults to the install domain4033 when properly configured4034 replaces img src4035 skips internal images4036 skip relative urls4037 skips single domain4038 skips single domain and ignores url in query string4039 skips wildcarded domain4040import/gitlab_projects/new.html.haml4041 when the user has no other namespaces4042 adds a namespace_id hidden field tag with the namespace id as value4043 when the user can select other namespaces4044 shows a namespace_id select4045Gitlab::Ci::Pipeline::Expression::Lexeme::And4046 .build4047 creates a new instance of the token4048 with non-evaluable operands4049 raises an operator error4050 .type4051 is an operator4052 .precedence4053 has a precedence4054 #evaluate4055 when left and right are truthy4056 left_value: true, right_value: 14057 is expected to be truthy4058 is expected to eq 14059 left_value: true, right_value: "a"4060 is expected to be truthy4061 is expected to eq "a"4062 left_value: 1, right_value: true4063 is expected to be truthy4064 is expected to eq true4065 left_value: 1, right_value: "a"4066 is expected to be truthy4067 is expected to eq "a"4068 left_value: "a", right_value: true4069 is expected to be truthy4070 is expected to eq true4071 left_value: "a", right_value: 14072 is expected to be truthy4073 is expected to eq 14074 when left or right is falsey4075 left_value: true, right_value: false4076 is expected to be falsey4077 left_value: true, right_value: nil4078 is expected to be falsey4079 left_value: false, right_value: true4080 is expected to be falsey4081 left_value: false, right_value: nil4082 is expected to be falsey4083 left_value: nil, right_value: true4084 is expected to be falsey4085 left_value: nil, right_value: false4086 is expected to be falsey4087 when left and right are falsey4088 left_value: false, right_value: nil4089 is expected to be falsey4090 is expected to eq false4091 left_value: nil, right_value: false4092 is expected to be falsey4093 is expected to eq nil4094Gitlab::Redis::SharedState4095 .params4096 withstands mutation4097 when url contains unix socket reference4098 with old format4099 returns path key instead4100 with new format4101 returns path key instead4102 when url is host based4103 with old format4104 returns hash with host, port, db, and password4105 with new format4106 returns hash with host, port, db, and password4107 .url4108 withstands mutation4109 when yml file with env variable4110 reads redis url from env variable4111 ._raw_config4112 is frozen4113 returns false when the file does not exist4114 returns false when the filename can't be determined4115 .with4116 when running on single-threaded runtime4117 instantiates a connection pool with size 54118 when running on multi-threaded runtime4119 instantiates a connection pool with a size based on the concurrency of the worker4120 #sentinels4121 when sentinels are defined4122 returns an array of hashes with host and port keys4123 when sentinels are not defined4124 returns nil4125 #sentinels?4126 when sentinels are defined4127 returns true4128 when sentinels are not defined4129 returns false4130 #raw_config_hash4131 returns default redis url when no config file is present4132 returns old-style single url config in a hash4133 #fetch_config4134 returns false when no config file is present4135 returns false when config file is present but has invalid YAML4136TrackingHelper4137 #tracking_attrs4138 snowplow_enabled: true, environment: "production", result: :with_data4139 returns a hash4140 snowplow_enabled: false, environment: "production", result: :no_data4141 returns a hash4142 snowplow_enabled: true, environment: "development", result: :no_data4143 returns a hash4144 snowplow_enabled: false, environment: "development", result: :no_data4145 returns a hash4146 snowplow_enabled: true, environment: "test", result: :no_data4147 returns a hash4148 snowplow_enabled: false, environment: "test", result: :no_data4149 returns a hash4150Gitlab::Ci::Config::Extendable::Entry4151 .new4152 when entry key is not included in the context hash4153 raises error4154 #value4155 reads a hash value from the context4156 #extensible?4157 when entry has inheritance defined4158 is extensible4159 when entry does not have inheritance specified4160 is not extensible4161 when entry value is not a hash4162 is not extensible4163 #extends_keys4164 when entry is extensible4165 returns symbolized extends key value4166 when entry is not extensible4167 returns nil4168 #ancestors4169 returns ancestors keys4170 #base_hashes!4171 when base hash is not extensible4172 returns unchanged base hashes4173 when base hash is extensible too4174 extends the base hashes first4175 mutates original context4176 #extend!4177 when extending a non-hash value4178 raises an error4179 when extending unknown key4180 raises an error4181 when extending a hash correctly4182 returns extended part of the hash4183 mutates original context4184 when extending multiple hashes correctly4185 returns extended part of the hash4186 mutates original context4187 when hash is not extensible4188 returns original key value4189 does not mutate orignal context4190 when circular depenency gets detected4191 raises an error4192 when nesting level is too deep4193 raises an error4194BitbucketServer::Client4195 #pull_requests4196 requests a collection4197 #activities4198 requests a collection4199 #repo4200 requests a specific repository4201 #repos4202 requests a collection4203 requests a collection with an offset and limit4204 when filter param is passed4205 requests a collection with filter applied4206 #create_branch4207 requests Bitbucket to create a branch4208 #delete_branch4209 requests Bitbucket to create a branch4210Gitlab::UsageDataCounters::WebIdeCounter4211 commits counter4212 behaves like counter examples4213 increments counter and return the total count4214 merge requests counter4215 behaves like counter examples4216 increments counter and return the total count4217 views counter4218 behaves like counter examples4219 increments counter and return the total count4220 previews counter4221 when web ide clientside preview is enabled4222 behaves like counter examples4223 increments counter and return the total count4224 when web ide clientside preview is not enabled4225 does not increment the counter4226 .totals4227 can report all totals4228Gitlab::Popen::Runner4229 #run4230 runs the command and returns the result4231 #all_success_and_clean?4232 returns true when exit status is 0 and stderr is empty4233 returns false when exit status is not 04234 returns false when exit stderr has something4235 #all_success?4236 returns true when exit status is 04237 returns false when exit status is not 04238 returns true4239 #all_stderr_empty?4240 returns true when stderr is empty4241 returns true when exit status is not 04242 returns false when exit stderr has something4243 #failed_results4244 returns [] when everything is passed4245 returns the result when exit status is not 04246 returns [] when exit stderr has something4247 #warned_results4248 returns [] when everything is passed4249 returns [] when exit status is not 04250 returns the result when exit stderr has something4251Gitlab::Sanitizers::SVG4252 .clean4253 delegates sanitization to scrubber4254 returns sanitized data4255 scrubber4256 #scrub4257 removes an invalid element4258 removes an invalid attribute4259 accepts valid element4260 accepts valid namespaced attributes4261 #attribute_name_with_namespace4262 returns name with prefix when attribute is namespaced4263 #unsafe_href?4264 returns true if href attribute is an external url4265 returns false if href atttribute is an internal reference4266 #data_attribute?4267 returns true if is a valid data attribute4268 returns false if attribute is namespaced4269 returns false if not a data attribute4270MicrosoftTeams::Notifier4271 #ping4272 expects to receive successful answer4273 #body4274 returns Markdown-based body when HTML was passed4275 fails when empty Hash was passed4276Gitlab::Graphql::GenericTracing4277 updates graphql histogram with expected labels4278 when labkit tracing is enabled4279 yields with labkit tracing4280 when labkit tracing is disabled4281 yields without measurement4282Banzai::Filter::InlineDiffFilter4283 adds inline diff span tags for deletions when using square brackets4284 adds inline diff span tags for deletions when using curley braces4285 does not add inline diff span tags when a closing tag is not provided4286 adds inline span tags for additions when using square brackets4287 adds inline span tags for additions when using curley braces4288 does not add inline diff span tags when a closing addition tag is not provided4289 does not add inline diff span tags when the tags do not match4290 prevents user-land html being injected4291 preserves content inside pre tags4292 preserves content inside code tags4293 preserves content inside tt tags4294Banzai::Filter::MathFilter4295 leaves regular inline code unchanged4296 removes surrounding dollar signs and adds class code, math and js-render-math4297 only removes surrounding dollar signs4298 only removes surrounding single dollar sign4299 adds data-math-style inline attribute to inline math4300 adds class code and math to inline math4301 adds js-render-math class to inline math4302 ignores cases with missing dolar sign at the end4303 ignores cases with missing dolar sign at the beginning4304 ignores dollar signs if it is not adjacent4305 ignores dollar signs if they are inside another element4306 adds data-math-style display attribute to display math4307 adds js-render-math class to display math4308 ignores code blocks that are not math4309 requires the pre to contain both code and math4310 dollar signs around to display math4311RunPipelineScheduleWorker4312 #perform4313 when a project not found4314 does not call the Service4315 when a user not found4316 does not call the Service4317 when everything is ok4318 calls the Service4319 when database statement timeout happens4320 increments Prometheus counter4321 logging a pipeline error4322Gitlab::Git::Conflict::Parser4323 .parse4324 when the file has valid conflicts4325 sets our lines as new lines4326 sets their lines as old lines4327 sets non-conflicted lines as both4328 sets consecutive line numbers for line_obj_index, line_old, and line_new4329 when the file contents include conflict delimiters4330 raises MissingEndDelimiter when there is no end delimiter at the end4331 when there is a non-start delimiter first4332 raises UnexpectedDelimiter when there is a middle delimiter first4333 raises UnexpectedDelimiter when there is an end delimiter first4334 does not raise when there is an end delimiter for a different path first4335 when a start delimiter is followed by a non-middle delimiter4336 raises UnexpectedDelimiter when it is followed by an end delimiter4337 raises UnexpectedDelimiter when it is followed by another start delimiter4338 does not raise when it is followed by a start delimiter for a different path4339 when a middle delimiter is followed by a non-end delimiter4340 raises UnexpectedDelimiter when it is followed by another middle delimiter4341 raises UnexpectedDelimiter when it is followed by a start delimiter4342 does not raise when it is followed by a start delimiter for another path4343 other file types4344 raises UnmergeableFile when lines is blank, indicating a binary file4345 raises UnmergeableFile when the file is over 200 KB4346 when the file contains UTF-8 characters4347 does not raise4348Gitlab::SidekiqVersioning::Manager4349 #initialize43502020-03-05T04:42:45.250Z 98 TID-gsh06qj2m INFO: Listening on queues ["cronjob", "cronjob:admin_email", "cronjob:ci_archive_traces_cron", "cronjob:container_expiration_policy", "cronjob:environments_auto_stop_cron", "cronjob:expire_build_artifacts", "cronjob:gitlab_usage_ping", "cronjob:import_export_project_cleanup", "cronjob:issue_due_scheduler", "cronjob:namespaces_prune_aggregation_schedules", "cronjob:pages_domain_removal_cron", "cronjob:pages_domain_ssl_renewal_cron", "cronjob:pages_domain_verification_cron", "cronjob:personal_access_tokens_expiring", "cronjob:pipeline_schedule", "cronjob:prune_old_events", "cronjob:prune_web_hook_logs", "cronjob:remove_expired_group_links", "cronjob:remove_expired_members", "cronjob:remove_unreferenced_lfs_objects", "cronjob:repository_archive_cache", "cronjob:repository_check_dispatch", "cronjob:requests_profiles", "cronjob:schedule_migrate_external_diffs", "cronjob:stuck_ci_jobs", "cronjob:stuck_import_jobs", "cronjob:stuck_merge_jobs", "cronjob:trending_projects", "post_receive", "repository_fork", "unknown"]4351 listens on all expanded queues4352Gitlab::Ci::Pipeline::Expression::Lexeme::Matches4353 .build4354 with non-evaluable operands4355 creates a new instance of the token4356 with evaluable operands4357 creates a new instance of the token4358 .type4359 is an operator4360 .precedence4361 has a precedence4362 #evaluate4363 when left and right do not match4364 is expected to eq false4365 when left and right match4366 is expected to eq true4367 when left is nil4368 is expected to eq false4369 when right is nil4370 is expected to eq false4371 when left and right are nil4372 is expected to eq false4373 when left is an empty string4374 is expected to eq false4375 when left and right are empty strings4376 is expected to eq true4377 when left is a multiline string and matches right4378 is expected to eq true4379 when left is a multiline string and does not match right4380 is expected to eq false4381 when a matching pattern uses regex flags4382 is expected to eq true4383 when a non-matching pattern uses regex flags4384 is expected to eq false4385Gitlab::Database::RenameReservedPathsMigration::V14386 #rename_child_paths4387 behaves like renames child namespaces4388 renames namespaces4389 #rename_wildcard_paths4390 renames projects4391 behaves like renames child namespaces4392 renames namespaces4393 #rename_root_paths4394 renames namespaces4395 #revert_renames4396 renames namespaces4397 renames projects4398Gitlab::UntrustedRegexp4399 #initialize4400 invalid regexp4401 is expected to raise RegexpError4402 #replace_all4403 replaces all instances of the match in a string4404 #replace4405 replaces the first instance of the match in a string4406 #===4407 returns true for a match4408 returns false for no match4409 can handle regular expressions in multiline mode4410 #match?4411 malicious regexp4412 takes under a second4413 matching regexp4414 returns an array of nil matches4415 non-matching regexp4416 returns an array of nil matches4417 #scan4418 malicious regexp4419 takes under a second4420 empty regexp4421 returns an array of nil matches4422 empty capture group regexp4423 returns an array of nil matches in an array4424 no capture group4425 returns the whole match4426 one capture group4427 returns the captured part4428 two capture groups4429 returns the captured parts4430Gitlab::Graphql::Connections::Keyset::QueryBuilder4431 when number of ordering fields is 04432 raises an error4433 #conditions4434 when only a single ordering4435 when the value is nil4436 raises an error4437 when value is not nil4438 when :after4439 generates the correct condition4440 when :before4441 generates the correct condition4442 when two orderings4443 when no values are nil4444 when :after4445 generates the correct condition4446 when :before4447 generates the correct condition4448 when first value is nil4449 when :after4450 generates the correct condition4451 when :before4452 generates the correct condition4453 when sorting using LOWER4454 when no values are nil4455 when :after4456 generates the correct condition4457 when :before4458 generates the correct condition4459Resolvers::MergeRequestsResolver4460 #resolve4461 batch-resolves by target project full path and individual IID4462 batch-resolves by target project full path and IIDS4463 can batch-resolve merge requests from different projects4464 resolves an unknown iid to be empty4465 resolves empty iids to be empty4466RuboCop::Cop::CodeReuse::Worker4467 flags the use of a worker in a controller4468 flags the use of a worker in an API4469 flags the use of a worker in a Finder4470 flags the use of a worker in a Presenter4471 flags the use of a worker in a Serializer4472 flags the use of a worker in a model class method4473Gitlab::Template::Finders::GlobalTemplateFinder4474 .find4475 with a non-prefixed General template4476 finds the template with no prefix4477 does not find a prefixed template4478 does not permit path traversal requests4479 while listed as an exclusion4480 does not find the template without a prefix4481 does not find the template with a prefix4482 finds another prefixed template with the same name4483 with a prefixed template4484 finds the template with a prefix4485 does not find the template without a prefix (PENDING: Temporarily skipped with xit)4486 does not permit path traversal requests4487 while listed as an exclusion4488 does not find the template with a prefix4489 does not find the template without a prefix (PENDING: Temporarily skipped with xit)4490 finds another non-prefixed template with the same name4491Gitlab::Tracking::IncidentManagement4492 .track_from_params4493 known params4494 param create_issue4495 behaves like a tracked event4496 creates the tracking event with the correct details4497 param issue_template_key4498 behaves like a tracked event4499 creates the tracking event with the correct details4500 param send_email4501 behaves like a tracked event4502 creates the tracking event with the correct details4503 different input values4504 behaves like the correct prefixed event name4505 matches4506 behaves like the correct prefixed event name4507 matches4508 behaves like the correct prefixed event name4509 matches4510 behaves like the correct prefixed event name4511 matches4512 behaves like the correct prefixed event name4513 matches4514 param with label4515 behaves like a tracked event4516 creates the tracking event with the correct details4517 param without label4518 behaves like a tracked event4519 creates the tracking event with the correct details4520 unknown params4521 does not create the tracking event4522RuboCop::Cop::Migration::AddTimestamps4523 in migration4524 registers an offense when the "add_timestamps" method is used4525 does not register an offense when the "add_timestamps" method is not used4526 does not register an offense when the "add_timestamps_with_timezone" method is used4527 outside of migration4528 registers no offense4529Gitlab::GitalyClient::Diff4530 is expected to respond to #from_path4531 is expected to respond to #to_path4532 is expected to respond to #old_mode4533 is expected to respond to #new_mode4534 is expected to respond to #from_id4535 is expected to respond to #to_id4536 is expected to respond to #patch4537 is expected to respond to #collapsed4538 is expected to respond to #too_large4539 #==4540 is expected to eq #<Gitlab::GitalyClient::Diff:0x0000562a0b0dd7f8 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>4541 is expected not to eq #<Gitlab::GitalyClient::Diff:0x0000562a0b0fd4b8 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>4542Mattermost::Client4543 JSON parse error4544 yields an error on malformed JSON4545/builds/gitlab-org/gitlab/spec/lib/mattermost/client_spec.rb:12: warning: redefining constant Struct::Request4546 shows a client error if the request was unsuccessful4547dashboard/projects/_nav.html.haml4548 highlights All tab by default4549 highlights Personal tab personal param is present4550Gitlab::Application4551 when parameters are logged4552 rails does not leak confidential parameters4553 input_url: "/", output_query: {}4554 is expected to eq {}4555 input_url: "/?safe=1", output_query: {"safe"=>"1"}4556 is expected to eq {"safe"=>"1"}4557 input_url: "/?private_token=secret", output_query: {"private_token"=>"[FILTERED]"}4558 is expected to eq {"private_token"=>"[FILTERED]"}4559 input_url: "/?mixed=1&private_token=secret", output_query: {"mixed"=>"1", "private_token"=>"[FILTERED]"}4560 is expected to eq {"mixed"=>"1", "private_token"=>"[FILTERED]"}4561 input_url: "/?note=secret¬eable=1&prefix_note=2", output_query: {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}4562 is expected to eq {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}4563 input_url: "/?note[note]=secret&target_type=1", output_query: {"note"=>"[FILTERED]", "target_type"=>"1"}4564 is expected to eq {"note"=>"[FILTERED]", "target_type"=>"1"}4565 input_url: "/?safe[note]=secret&target_type=1", output_query: {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}4566 is expected to eq {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}4567RuboCop::Cop::DestroyAll4568 flags the use of destroy_all with a send receiver4569 flags the use of destroy_all with a constant receiver4570 flags the use of destroy_all when passing arguments4571 flags the use of destroy_all with a local variable receiver4572 does not flag the use of delete_all4573Gitlab::SidekiqMiddleware::WorkerContext::Client4574 #call4575 applies a context for jobs scheduled in batch4576Metrics::SampleMetricsService4577 query4578 when the file is not found4579 is expected to be nil4580 when the file is found4581 loads data from the sample file correctly4582 when the identifier is for a path outside of sample_metrics4583 is expected to be nil4584Gitlab::SidekiqMiddleware::Monitor4585 #call4586 calls Gitlab::SidekiqDaemon::Monitor4587 passthroughs the return value4588 when cancel happens4589 skips the job4590 puts job in DeadSet4591Gitlab::Git::Changes4592 #includes_branches?4593 has changes for branches4594 is expected to be truthy4595 has no changes for branches4596 is expected to be falsey4597 #includes_tags?4598 has changes for tags4599 is expected to be truthy4600 has no changes for tags4601 is expected to be falsey4602 #add_branch_change4603 adds the branch change to the collection4604 does not add the change as a tag change4605 #add_tag_change4606 adds the tag change to the collection4607 does not add the change as a branch change4608Gitlab::Metrics::Exporter::SidekiqExporter4609 with valid config4610 does start thread4611 when port is already taken4612 does print error message46132020-03-05T04:43:06.514Z 98 TID-gsh06qj2m ERROR: {:class=>"Gitlab::Metrics::Exporter::SidekiqExporter", :message=>"Cannot start sidekiq_exporter", :exception=>"Address already in use - bind(2) for 127.0.0.1:9992"}4614 does not start thread4615SmimeSignatureSettings4616 .parse4617 sets correct default values to disabled4618 when providing custom values4619 sets correct default values to disabled4620 enables smime with default key and cert4621 enables smime with custom key and cert4622Gitlab::SlashCommands::Presenters::Run4623 #present4624 when no builds are present4625 returns an error4626 when a responder could be found4627 returns the output for a scheduled pipeline4628 when a responder could not be found4629 returns an error4630 #unsupported_chat_service4631 returns an ephemeral response4632 #failed_to_schedule4633 returns an ephemeral response4634Gitlab::Ci::Pipeline::Expression::Token4635 #value4636 returns raw token value4637 #lexeme4638 returns raw token lexeme4639 #build4640 delegates to lexeme after adding a value4641 allows passing only required arguments4642 #type4643 delegates type query to the lexeme4644 #to_lexeme4645 returns raw lexeme syntax component name4646RspecFlaky::FlakyExamplesCollection4647 #initialize4648 accepts no argument4649 accepts a hash4650 does not accept anything else4651 #to_h4652 calls #to_h on the values4653 #-4654 returns only examples that are not present in the given collection4655 fails if the given collection does not respond to `#key?`4656RuboCop::Cop::PutGroupRoutesUnderScope4657 registers an offense when route is outside scope4658 does not register an offense when resource inside the scope4659 does not register an offense when resource is deep inside the scope4660Gitlab::AssetProxy4661 when asset proxy is disabled4662 returns the original URL4663 when asset proxy is enabled4664 returns a proxied URL4665 returns original URL for invalid domains4666 whitelisted domain4667 returns original URL for single domain whitelist4668 returns original URL for wildcard subdomain whitelist4669RequestAwareEntity4670 includes URL helpers4671 includes method for checking abilities4672 fetches request from options4673Gitlab::Middleware::RequestContext4674 #call4675 setting the client ip4676 with X-Forwarded-For headers4677 returns the load balancer IP4678 request4679 is expected to eq "192.168.1.11"4680 before RequestContext middleware run4681 is expected to be nil4682 setting the thread cpu time4683 sets the `start_thread_cpu_time`4684 setting the request start time4685 sets the `request_start_time`4686Gitlab::Config::Entry::Attributable4687 when config is a hash4688 returns the value of config4689 returns no method error for unknown attributes4690 when config is not a hash4691 returns nil4692 when method is already defined in a superclass4693 raises an error4694Bitbucket::Page4695 #items4696 returns collection of needed objects4697 #attrs4698 returns attributes4699 #next?4700 returns true4701 returns false4702 #next4703 returns next attribute4704IssueSort4705 is expected to eq "IssueSort"4706 exposes all the existing issue sort values4707 behaves like common sort values4708 exposes all the existing common sort values4709Releases::Source4710 .all4711 returns all formats of sources4712 #url4713 returns zip archived source url4714 when ref is directory structure4715 converts slash to dash4716API::API4717 .prefix4718 has a prefix defined4719 .version4720 uses most recent version of the API4721 .versions4722 returns all available versions4723Gitlab::Git::Util4724 #count_lines4725 counts 0 lines in ""4726 counts 1 lines in "foo"4727 counts 1 lines in "foo\n"4728 counts 2 lines in "foo\n\n"4729Prometheus::CleanupMultiprocDirService4730 .call4731 when `multiprocess_files_dir` is defined4732 removes old metrics4733 when `multiprocess_files_dir` is not defined4734 does not remove any files4735Banzai::Filter::AsciiDocPostProcessingFilter4736 adds class for elements with data-math-style4737 keeps content when no data-math-style found4738RuboCop::Cop::SidekiqOptionsQueue4739 registers an offense when `sidekiq_options` is used with the `queue` option4740 does not register an offense when `sidekiq_options` is used with another option4741TodosDestroyer::ConfidentialIssueWorker4742 calls the Todos::Destroy::ConfidentialIssueService with issue_id parameter4743 calls the Todos::Destroy::ConfidentialIssueService with project_id parameter4744Gitlab::SidekiqMiddleware::DuplicateJobs::Client4745 #call4746 adds a correct duplicate tag to the jobs4747Types::Tree::BlobType4748 is expected to eq "Blob"4749 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :lfs_oid4750Gitlab::Patch::DrawRoute4751 evaluates CE only route4752SystemHookPushWorker4753 #perform4754 executes SystemHooksService with expected values4755Forever4756 .date4757 returns Postgresql future date4758Types::PermissionTypes::Snippet4759 returns the snippets permissions4760Resolvers::MetadataResolver4761 #resolve4762 returns version and revision4763./config/initializers/google_api_client.rb4764 is needed4765Bitbucket::Representation::User4766 #username4767 returns correct value4768Pending: (Failures listed here are expected and do not affect your suite's status)4769 1) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template does not find the template without a prefix4770 # Temporarily skipped with xit4771 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:714772 2) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template while listed as an exclusion does not find the template without a prefix4773 # Temporarily skipped with xit4774 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:884775Finished in 15 minutes 55 seconds (files took 38.36 seconds to load)47762444 examples, 0 failures, 2 pending4777Thu Mar 5 04:43:31 UTC 20204780coverage/: found 5 matching files 4781knapsack/: found 6 matching files 4782rspec_flaky/: found 2 matching files 4783rspec_profiling/: found 2 matching files 4784WARNING: tmp/capybara/: no matching files 4785tmp/memory_test/: found 2 matching files 4786junit_rspec.xml: found 1 matching files 4787Uploading artifacts to coordinator... ok id=460116764 responseStatus=201 Created token=qxtQMKF34788Uploading artifacts...4789junit_rspec.xml: found 1 matching files 4790Uploading artifacts to coordinator... ok id=460116764 responseStatus=201 Created token=qxtQMKF34791Job succeeded