rspec-ee unit pg11 10/10
Passed Started
by
@lulalala

Mark Chao
1Running with gitlab-runner 13.3.1 (738bbe5a)2 on prm-com-gitlab-org ae3bfce24Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...5Starting service postgres:11.6 ...6Pulling docker image postgres:11.6 ...7Using docker image sha256:2c963c0eb8c6efa49bb8352ea446f248d208d674cfc34fc9ea275b5f99f8dedd for postgres:11.6 ...8Starting service redis:4.0-alpine ...9Pulling docker image redis:4.0-alpine ...10Using docker image sha256:e3dd0e49bca555d559ca2e97f06a1efa108ebd230fddcb17606723994f18ae3b for redis:4.0-alpine ...11Starting service elasticsearch:6.4.2 ...12Pulling docker image elasticsearch:6.4.2 ...13Using docker image sha256:e47ebd7ec3eef5e48746af2ae376f180bbfbd23c7514b5b18a116f8349eb4c34 for elasticsearch:6.4.2 ...14Waiting for services to be up and running...15Authenticating with credentials from job payload (GitLab Registry)16Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...17Using docker image sha256:cd688957c9207f55272d81be6d4908692d78233833e3f09a9c0899b2f24eb3ff for registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.6-golang-1.14-git-2.28-lfs-2.9-chrome-84-node-12.x-yarn-1.21-postgresql-11-graphicsmagick-1.3.34 ...19Running on runner-ae3bfce2-project-278964-concurrent-0 via runner-ae3bfce2-prm-1598833503-41b21561...21$ eval "$CI_PRE_CLONE_SCRIPT"22Downloading archived master...23Connecting to storage.googleapis.com (172.217.193.128:443)24saving to '/tmp/gitlab.tar.gz'25gitlab.tar.gz 12% |**** | 126M 0:00:06 ETA26gitlab.tar.gz 31% |********** | 318M 0:00:04 ETA27gitlab.tar.gz 49% |*************** | 497M 0:00:03 ETA28gitlab.tar.gz 71% |********************** | 717M 0:00:01 ETA29gitlab.tar.gz 100% |********************************| 1007M 0:00:00 ETA30'/tmp/gitlab.tar.gz' saved31Extracting tarball into /builds/gitlab-org/gitlab...32Fetching changes with git depth set to 20...33Reinitialized existing Git repository in /builds/gitlab-org/gitlab/.git/34Created fresh repository.35Checking out 7a9c83cd as master...36Skipping Git submodules setup38Checking cache for rails-v2-3...39Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/rails-v2-3 40Successfully extracted cache42Downloading artifacts for compile-test-assets (710807149)...43Downloading artifacts from coordinator... ok id=710807149 responseStatus=200 OK token=cMhXVmpy44Downloading artifacts for retrieve-tests-metadata (710807151)...45Downloading artifacts from coordinator... ok id=710807151 responseStatus=200 OK token=ySCBbL7Z46Downloading artifacts for setup-test-env (710807150)...47Downloading artifacts from coordinator... ok id=710807150 responseStatus=200 OK token=UGYkxRJB48WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats) 50$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb51$ export GOPATH=$CI_PROJECT_DIR/.go52$ mkdir -p $GOPATH53$ source scripts/utils.sh54$ source scripts/prepare_build.sh55Bundler version 1.17.256$ bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet57==> 'bundle install --clean --without=production --without=development --jobs=2 --path=vendor --retry=3 --quiet' succeeded in 1 seconds.58$ bundle check59Warning: 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`.60The Gemfile's dependencies are satisfied61==> 'bundle check' succeeded in 0 seconds.62$ bundle pristine pg63Warning: 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`.64Installing pg 1.2.2 with native extensions65==> 'bundle pristine pg' succeeded in 10 seconds.66$ gem install knapsack --no-document67Successfully installed knapsack-1.18.0681 gem installed69==> 'gem install knapsack --no-document' succeeded in 1 seconds.70$ setup_db_user_only71CREATE ROLE72GRANT73==> 'setup_db_user_only' succeeded in 0 seconds.74$ bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee75Dropped database 'gitlabhq_test'76Created database 'gitlabhq_test'77Dropped database 'gitlabhq_geo_test'78Created database 'gitlabhq_geo_test'79==> 'bundle exec rake db:drop db:create db:structure:load db:migrate gitlab:db:setup_ee' succeeded in 29 seconds.80$ run_timed_command "scripts/gitaly-test-build"81$ scripts/gitaly-test-build82Settings are listed in order of priority. The top value will be used.83retry84Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 385path86Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): "/builds/gitlab-org/gitlab/vendor/gitaly-ruby"87jobs88Set for your local app (/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config/config): 489app_config90Set via BUNDLE_APP_CONFIG: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/.bundle/config"91gemfile92Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab/tmp/tests/gitaly/ruby/Gemfile"93flags94Set via BUNDLE_FLAGS: "--jobs=4 --retry=3 --quiet --path=/builds/gitlab-org/gitlab/vendor/gitaly-ruby"95silence_root_warning96Set via BUNDLE_SILENCE_ROOT_WARNING: true97go install -ldflags '-X gitlab.com/gitlab-org/gitaly/internal/version.version=13.3.0-rc5 -X gitlab.com/gitlab-org/gitaly/internal/version.buildtime=20200831.023614' -tags "tracer_static,tracer_static_jaeger,continuous_profiler_stackdriver" gitlab.com/gitlab-org/gitaly/cmd/praefect gitlab.com/gitlab-org/gitaly/cmd/gitaly-hooks gitlab.com/gitlab-org/gitaly/cmd/gitaly-blackbox gitlab.com/gitlab-org/gitaly/cmd/gitaly gitlab.com/gitlab-org/gitaly/cmd/gitaly-debug gitlab.com/gitlab-org/gitaly/cmd/gitaly-ssh gitlab.com/gitlab-org/gitaly/cmd/gitaly-wrapper98install /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/praefect /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-hooks /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-blackbox /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-debug /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-ssh /builds/gitlab-org/gitlab/tmp/tests/gitaly/_build/bin/gitaly-wrapper /builds/gitlab-org/gitlab/tmp/tests/gitaly99Checking gitaly-ruby Gemfile...100Checking gitaly-ruby bundle...101Warning: 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`.102The Gemfile's dependencies are satisfied103Trying to connect to gitaly: ....... OK104Trying to connect to praefect: ...... OK105==> 'scripts/gitaly-test-build' succeeded in 43 seconds.106$ run_timed_command "scripts/gitaly-test-spawn"107$ scripts/gitaly-test-spawn108Checking gitaly-ruby Gemfile...109Checking gitaly-ruby bundle...110Warning: 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`.111The Gemfile's dependencies are satisfied112Trying to connect to gitaly: ........ OK113Trying to connect to praefect: ........ OK114==> 'scripts/gitaly-test-spawn' succeeded in 2 seconds.115$ source scripts/rspec_helpers.sh116$ rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"117KNAPSACK_TEST_FILE_PATTERN: ee/spec/{bin,channels,config,db,dependencies,factories,finders,frontend,graphql,haml_lint,helpers,initializers,javascripts,lib,models,policies,presenters,rack_servers,replicators,routing,rubocop,serializers,services,sidekiq,support_specs,tasks,uploaders,validators,views,workers,elastic_integration,tooling}{,/**/}*_spec.rb118Report specs:119ee/spec/lib/ee/gitlab/import_export/after_export_strategies/custom_template_export_import_strategy_spec.rb120ee/spec/tasks/gitlab/seed/group_seed_rake_spec.rb121ee/spec/models/merge_request_spec.rb122ee/spec/services/projects/create_service_spec.rb123ee/spec/models/merge_train_spec.rb124ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb125ee/spec/views/admin/application_settings/_elasticsearch_form.html.haml_spec.rb126ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb127ee/spec/models/group_wiki_spec.rb128ee/spec/services/projects/gitlab_projects_import_service_spec.rb129ee/spec/services/epics/issue_promote_service_spec.rb130ee/spec/models/group_spec.rb131ee/spec/services/ci/minutes/batch_reset_service_spec.rb132ee/spec/policies/ci/build_policy_spec.rb133ee/spec/workers/geo/registry_sync_worker_spec.rb134ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb135ee/spec/services/search_service_spec.rb136ee/spec/services/ci/register_job_service_spec.rb137ee/spec/models/analytics/cycle_analytics/group_stage_spec.rb138ee/spec/models/vulnerabilities/feedback_spec.rb139ee/spec/models/approval_wrapped_rule_spec.rb140ee/spec/services/merge_requests/merge_to_ref_service_spec.rb141ee/spec/replicators/geo/terraform_state_replicator_spec.rb142ee/spec/models/gitlab_subscription_spec.rb143ee/spec/services/approval_rules/finalize_service_spec.rb144ee/spec/lib/gitlab/ci/parsers/security/dast_spec.rb145ee/spec/models/concerns/elastic/milestone_spec.rb146ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb147ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb148ee/spec/workers/geo/prune_event_log_worker_spec.rb149ee/spec/finders/groups_with_templates_finder_spec.rb150ee/spec/helpers/ee/environments_helper_spec.rb151ee/spec/services/ci/subscribe_bridge_service_spec.rb152ee/spec/models/concerns/ee/issuable_spec.rb153ee/spec/services/status_page/trigger_publish_service_spec.rb154ee/spec/lib/gitlab/auth/ldap/access_spec.rb155ee/spec/services/ee/system_notes/epics_service_spec.rb156ee/spec/services/epics/close_service_spec.rb157ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb158ee/spec/finders/productivity_analytics_finder_spec.rb159ee/spec/models/ee/clusters/platforms/kubernetes_spec.rb160ee/spec/services/merge_requests/remove_approval_service_spec.rb161ee/spec/services/ci/create_pipeline_service_spec.rb162ee/spec/models/board_spec.rb163ee/spec/models/geo/terraform_state_registry_spec.rb164ee/spec/lib/gitlab/git_access_wiki_spec.rb165ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb166ee/spec/models/approval_wrapped_any_approver_rule_spec.rb167ee/spec/workers/geo/project_sync_worker_spec.rb168ee/spec/serializers/vulnerabilities/feedback_entity_spec.rb169ee/spec/serializers/blocking_merge_request_entity_spec.rb170ee/spec/lib/gitlab/ci/parsers/security/common_spec.rb171ee/spec/helpers/ee/user_callouts_helper_spec.rb172ee/spec/graphql/mutations/issues/set_assignees_spec.rb173ee/spec/lib/gitlab/database/load_balancing/host_spec.rb174ee/spec/services/boards/list_service_spec.rb175ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_in_batch_spec.rb176ee/spec/policies/dast_site_profile_policy_spec.rb177ee/spec/serializers/vulnerability_note_entity_spec.rb178ee/spec/services/vulnerability_feedback/destroy_service_spec.rb179ee/spec/services/ee/releases/create_evidence_service_spec.rb180ee/spec/helpers/search_helper_spec.rb181ee/spec/services/ee/merge_request_metrics_service_spec.rb182ee/spec/models/vulnerabilities/identifier_spec.rb183ee/spec/lib/banzai/reference_parser/epic_parser_spec.rb184ee/spec/workers/elastic_delete_project_worker_spec.rb185ee/spec/lib/gitlab/ci/parsers/security/sast_spec.rb186ee/spec/lib/gitlab/ci/parsers/security/container_scanning_spec.rb187ee/spec/helpers/ee/namespace_storage_limit_alert_helper_spec.rb188ee/spec/finders/notes_finder_spec.rb189ee/spec/services/geo/job_artifact_deleted_event_store_spec.rb190ee/spec/services/clusters/agents/create_service_spec.rb191ee/spec/lib/gitlab/insights/reducers/count_per_label_reducer_spec.rb192ee/spec/helpers/users_helper_spec.rb193ee/spec/serializers/merge_request_sidebar_basic_entity_spec.rb194ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb195ee/spec/lib/gitlab/insights/reducers/label_count_per_period_reducer_spec.rb196ee/spec/services/elastic/metrics_update_service_spec.rb197ee/spec/models/commit_spec.rb198ee/spec/models/approver_group_spec.rb199ee/spec/views/admin/dashboard/index.html.haml_spec.rb200ee/spec/services/epic_issues/update_service_spec.rb201ee/spec/lib/banzai/filter/label_reference_filter_spec.rb202ee/spec/lib/gitlab/geo/oauth/logout_token_spec.rb203ee/spec/serializers/dependency_entity_spec.rb204ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb205ee/spec/services/geo/upload_deleted_event_store_spec.rb206ee/spec/lib/gitlab/geo/replication/file_downloader_spec.rb207ee/spec/lib/ee/gitlab/checks/push_rules/file_size_check_spec.rb208ee/spec/serializers/vulnerabilities/response_entity_spec.rb209ee/spec/graphql/mutations/issues/set_weight_spec.rb210ee/spec/services/geo/container_repository_updated_event_store_spec.rb211ee/spec/services/lfs/unlock_file_service_spec.rb212ee/spec/lib/gitlab/geo/replication/blob_retriever_spec.rb213ee/spec/views/clusters/clusters/show.html.haml_spec.rb214ee/spec/serializers/clusters/deployment_entity_spec.rb215ee/spec/services/ee/ci/change_variables_service_spec.rb216ee/spec/models/elasticsearch_indexed_namespace_spec.rb217ee/spec/services/projects/restore_service_spec.rb218ee/spec/finders/ee/autocomplete/users_finder_spec.rb219ee/spec/lib/ee/gitlab/search_results_spec.rb220ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb221ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb222ee/spec/graphql/types/issue_type_spec.rb223ee/spec/views/registrations/welcome.html.haml_spec.rb224ee/spec/lib/ee/api/helpers/issues_helpers_spec.rb225ee/spec/lib/ee/api/helpers_spec.rb226ee/spec/policies/identity_provider_policy_spec.rb227ee/spec/lib/ee/gitlab/background_migration/populate_any_approval_rule_for_merge_requests_spec.rb228ee/spec/views/projects/dast_site_profiles/new.html.haml_spec.rb229ee/spec/services/ee/resource_events/merge_into_notes_service_spec.rb230ee/spec/services/milestones/burnup_chart_service_spec.rb231ee/spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb232ee/spec/views/projects/dast_profiles/index.html.haml_spec.rb233ee/spec/presenters/label_presenter_spec.rb234ee/spec/models/weight_note_spec.rb235ee/spec/services/branches/delete_service_spec.rb236ee/spec/workers/repository_import_worker_spec.rb237ee/spec/policies/namespace_policy_spec.rb238ee/spec/lib/ee/audit/project_feature_changes_auditor_spec.rb239ee/spec/policies/approval_project_rule_policy_spec.rb240ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb241ee/spec/models/concerns/elastic/projects_search_spec.rb242ee/spec/services/ee/users/block_service_spec.rb243ee/spec/services/ci_cd/github_setup_service_spec.rb244ee/spec/services/personal_access_tokens/revoke_invalid_tokens_spec.rb245ee/spec/services/security/ci_configuration/sast_parser_service_spec.rb246ee/spec/models/allowed_email_domain_spec.rb247ee/spec/models/ee/project_wiki_spec.rb248ee/spec/workers/vulnerabilities/statistics/schedule_worker_spec.rb249ee/spec/lib/gitlab/instrumentation_helper_spec.rb250ee/spec/helpers/epics_helper_spec.rb251ee/spec/models/broadcast_message_spec.rb252ee/spec/finders/audit_log_finder_spec.rb253ee/spec/lib/gitlab/group_plans_preloader_spec.rb254ee/spec/workers/sync_seat_link_worker_spec.rb255ee/spec/serializers/feature_flag_summary_entity_spec.rb256ee/spec/models/project_services/gitlab_slack_application_service_spec.rb257ee/spec/lib/gitlab/auth/group_saml/group_lookup_spec.rb258ee/spec/serializers/audit_event_entity_spec.rb259ee/spec/services/burnup_chart_service_spec.rb260ee/spec/services/ci/external_pull_requests/process_github_event_service_spec.rb261ee/spec/services/geo/event_service_spec.rb262ee/spec/services/ee/audit_events/custom_audit_event_service_spec.rb263ee/spec/services/dependency_proxy/pull_manifest_service_spec.rb264ee/spec/workers/import_software_licenses_worker_spec.rb265ee/spec/views/admin/licenses/show.html.haml_spec.rb266ee/spec/views/admin/groups/_form.html.haml_spec.rb267ee/spec/services/ee/notes/destroy_service_spec.rb268ee/spec/services/keys/create_service_spec.rbKnapsack report generator started!269RSpec's reporter has already been initialized with #<IO:<STDERR>> as the deprecation stream, so your change to `deprecation_stream` will be ignored. You should configure it earlier for it to take effect, or use the `--deprecation-out` CLI option. (Called from /builds/gitlab-org/gitlab/spec/support/rspec.rb:12:in `block in <top (required)>')270Run options:271 include {:focus=>true}272 exclude {:quarantine=>true, :geo=>true, :level=>"migration"}273All examples were filtered out; ignoring {:focus=>true}274==> Setting up gitlab-test bare repository in /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare...275 /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.044074711 seconds...276EE::Gitlab::ImportExport::AfterExportStrategies::CustomTemplateExportImportStrategy277 validations278 export_into_project_id must be present279 #execute280 updates the project import_source with the path to import281 imports repository282 removes the exported project file after the import283 export_file284 returns the path from object storage285gitlab:seed:group_seed rake task286 performs group seed successfully287MergeRequest288 associations289 is expected to have many approvals dependent => delete_all290 is expected to have many approvers dependent => delete_all291 is expected to have many approver_users through approvers292 is expected to have many approver_groups dependent => delete_all293 is expected to have many approved_by_users294 is expected to have one merge_train295 behaves like an editable mentionable with EE-specific mentions296 creates new cross-reference notes when the mentionable text is edited297 behaves like a mentionable with EE-specific mentions298 extracts references from its reference property299 creates cross-reference notes300 #allows_multiple_assignees?301 does not allow multiple assignees without license302 allows multiple assignees when licensed303 #participants304 with approval rule305 returns only the author as a participant306 #has_denied_policies?307 without existing pipeline308 is expected to be falsey309 with existing pipeline310 without license_scanning report311 is expected to be falsey312 with license_scanning report313 without denied policy314 is expected to be falsey315 with allowed policy316 is expected to be falsey317 with denied policy318 is expected to be truthy319 with disabled licensed feature320 is expected to be falsey321 with License-Check enabled322 when rule is not approved323 is expected to be truthy324 when rule is approved325 is expected to be falsey326 #enabled_reports327 report_type: :sast, with_reports: :with_sast_reports, feature: :sast328 when head pipeline has reports329 is expected to be truthy330 when head pipeline does not have reports331 is expected to be falsy332 report_type: :container_scanning, with_reports: :with_container_scanning_reports, feature: :container_scanning333 when head pipeline has reports334 is expected to be truthy335 when head pipeline does not have reports336 is expected to be falsy337 report_type: :dast, with_reports: :with_dast_reports, feature: :dast338 when head pipeline has reports339 is expected to be truthy340 when head pipeline does not have reports341 is expected to be falsy342 report_type: :dependency_scanning, with_reports: :with_dependency_scanning_reports, feature: :dependency_scanning343 when head pipeline has reports344 is expected to be truthy345 when head pipeline does not have reports346 is expected to be falsy347 report_type: :license_scanning, with_reports: :with_license_management_reports, feature: :license_scanning348 when head pipeline has reports349 is expected to be truthy350 when head pipeline does not have reports351 is expected to be falsy352 report_type: :license_scanning, with_reports: :with_license_scanning_reports, feature: :license_scanning353 when head pipeline has reports354 is expected to be truthy355 when head pipeline does not have reports356 is expected to be falsy357 #approvals_before_merge358 license_value: true, db_value: 5, expected: 5359 is expected to eq 5360 license_value: true, db_value: nil, expected: nil361 is expected to eq nil362 license_value: false, db_value: 5, expected: nil363 is expected to eq nil364 license_value: false, db_value: nil, expected: nil365 is expected to eq nil366 #has_license_scanning_reports?367 when head pipeline has license scanning reports368 is expected to be truthy369 when head pipeline does not have license scanning reports370 is expected to be falsey371 #has_dependency_scanning_reports?372 when head pipeline has dependency scannning reports373 is expected to be truthy374 when head pipeline does not have dependency scanning reports375 is expected to be falsey376 #has_container_scanning_reports?377 when head pipeline has container scanning reports378 is expected to be truthy379 when head pipeline does not have container scanning reports380 is expected to be falsey381 #has_sast_reports?382 when head pipeline has sast reports383 is expected to be truthy384 when head pipeline does not have sast reports385 is expected to be falsey386 #has_secret_detection_reports?387 when head pipeline has secret detection reports388 is expected to be truthy389 when head pipeline does not have secrets detection reports390 is expected to be falsey391 #has_dast_reports?392 when head pipeline has dast reports393 is expected to be truthy394 when pipeline ran for an older commit than the branch head395 is expected to be falsey396 when head pipeline does not have dast reports397 is expected to be falsey398 #has_metrics_reports?399 when head pipeline has metrics reports400 is expected to be truthy401 when head pipeline does not have license scanning reports402 is expected to be falsey403 #calculate_reactive_cache with current_user404 when given a known service class name405 does not raises a NameError exception406 #compare_container_scanning_reports407 when head pipeline has container scanning reports408 when reactive cache worker is parsing asynchronously409 returns status410 when reactive cache worker is inline411 returns status and data412 when cached results is not latest413 raises and InvalidateReactiveCache error414 #compare_secret_detection_reports415 when head pipeline has secret detection reports416 when reactive cache worker is parsing asynchronously417 returns status418 when reactive cache worker is inline419 returns status and data420 when cached results is not latest421 raises and InvalidateReactiveCache error422 #compare_sast_reports423 when head pipeline has sast reports424 when reactive cache worker is parsing asynchronously425 returns status426 when reactive cache worker is inline427 returns status and data428 when cached results is not latest429 raises and InvalidateReactiveCache error430 #compare_license_scanning_reports431 when head pipeline has license scanning reports432 when reactive cache worker is parsing asynchronously433 returns status434 when reactive cache worker is inline435 returns status and data436 cache key includes sofware license policies437 returns key with license information438 when cached results is not latest439 raises and InvalidateReactiveCache error440 when head pipeline does not have license scanning reports441 returns status and error message442 #compare_metrics_reports443 when head pipeline has metrics reports444 when reactive cache worker is parsing asynchronously445 returns status446 when reactive cache worker is inline447 returns status and data448 when cached results is not latest449 raises and InvalidateReactiveCache error450 when head pipeline does not have metrics reports451 returns status and error message452 #mergeable_with_quick_action?453 when autocomplete_precheck is set to false454 with approvals455 is not mergeable when not approved456 is mergeable when approved457 #approver_group_ids=458 create approver_groups459 #mergeable?460 when using approvals461 return false if not approved462 return true if approved463 when running license_scanning ci job464 when merge request has denied policies465 when approval is required and granted466 is not mergeable467 when is not approved468 is not mergeable469 when merge request has no denied policies470 is mergeable471 #on_train?472 when the merge request is on a merge train473 is expected to be truthy474 when the merge request was on a merge train475 is expected to be falsy476 when the merge request is not on a merge train477 is expected to be falsy478 review time sorting479 orders by first_comment_at or first_approved_at whatever is earlier480Projects::CreateService#execute481 with a template project ID482 creates a project using the template service483 with a CI/CD only project484 when CI/CD projects feature is available485 calls the service to set up CI/CD on the project486 when CI/CD projects feature is not available487 doesn't call the service to set up CI/CD on the project488 repository_size_limit assignment as Bytes489 when param present490 assign repository_size_limit as Bytes491 when param not present492 assign nil value493 without repository mirror494 sets the mirror to false495 with repository mirror496 when licensed497 sets the correct attributes498 with mirror trigger builds499 sets the mirror trigger builds500 with checks on the namespace501 when not licensed on a namespace502 does not allow enabeling mirrors503 when licensed on a namespace504 allows enabling mirrors505 when unlicensed506 does not set mirror attributes507 with mirror trigger builds508 sets the mirror trigger builds509 push rules510 with sample511 creates push rule from sample512 creates association between project settings and push rule513 push rules unlicensed514 ignores the push rule sample515 when there are no push rules516 does not create push rule517 group push rules518 project created within a group519 when group has push rule defined520 creates push rule from group push rule521 when feature flag is switched off522 creates push rule from sample523 when group does not have push rule defined524 creates push rule from sample525 when running on a primary node526 logs an event to the Geo event log527 does not log event to the Geo log if project creation fails528 when importing Project by repo URL529 and check namespace plan is enabled530 creates the project531 audit events532 when licensed533 does not log audit event if operation fails534 when operation succeeds535 logs an audit event536 logs the audit event info537 when not licensed538 does not log audit event539MergeTrain540 is expected to belong to merge_request required:541 is expected to belong to user required:542 is expected to belong to pipeline required:543 .active544 returns only active merge trains545 .complete546 returns only merged merge trains547 .for_target548 when target merge train 1's project549 returns merge train 1 only550 when target merge train 2's project551 returns merge train 2 only552 .by_id553 returns merge trains by id ASC554 .all_active_mrs_in_train555 returns the merge request556 when the other merge request is on the merge train557 returns the merge requests558 when the merge request has already been merged559 is expected to be empty560 when the merge request is not on merge train561 returns empty array562 .first_in_train563 returns the merge request564 when the other merge request is on the merge train565 returns the merge request566 when the merge request has already been merged567 is expected to be nil568 when the merge request is not on merge train569 returns empty array570 .first_in_trains571 returns only first merge requests per merge train572 when first_on_master has already been merged573 returns second on master as active MR574 .first_in_train_from575 when arguments is null576 raises an error577 when there are two merge requests on the same merge train578 returns the first merge request on the merge train from the given ids579 when the first merge request has already been merged580 returns the first active merge request on the merge train from the given ids581 when specifies merge request 2's id only582 returns the first merge request on the merge train from the given ids583 .last_complete_mr_in_train584 when there is a merge request on train585 when the merge request has already been merged586 returns the merge request587 when there is another merge request on train and it has been merged588 returns the last merge request589 when the merge request has not been merged yet590 returns nothing591 when there are no merge requests on train592 returns nothing593 .sha_exists_in_history?594 when there is a merge request on train595 when the merge request has already been merging596 is expected to eq true597 when the merge request has already been merged598 is expected to eq true599 when there is another merge request on train and it has been merged600 is expected to eq true601 when limit is 1602 is expected to eq false603 when the merge request has not been merged yet604 is expected to eq false605 when there are no merge requests on train606 is expected to eq false607 .total_count_in_train608 returns the merge request609 when the other merge request is on the merge train610 returns the merge request611 when the merge request has already been merged612 returns zero613 when the merge request is not on merge train614 returns empty array615 #all_next616 returns nil617 when the other merge request is on the merge train618 returns the next merge requests619 #all_prev620 when the merge request is at first on the train621 returns nil622 when the merge request is at last on the train623 returns the previous merge requests624 when the previous merge request has already been merged625 returns empty array626 #next627 when the merge request is at last on the train628 returns nil629 when the other merge request is on the merge train630 returns the next merge request631 #prev632 when the merge request is at first on the train633 returns nil634 when the merge request is at last on the train635 returns the next merge request636 #first_in_train?637 is expected to be truthy638 when the other merge request is on the merge train639 is expected to be falsy640 #follower_in_train?641 is expected to be falsy642 when the other merge request is on the merge train643 is expected to be truthy644 #index645 is expected to eq 0646 when the merge train is at the second queue647 is expected to eq 1648 status transition649 when status is idle650 and transits to fresh651 refreshes the state and set a pipeline652 and transits to merged653 does not allow the transition654 and transits to stale655 does not allow the transition656 when status is fresh657 and transits to merged658 does not allow the transition659 and transits to stale660 refreshes asynchronously661 when status is merging662 and transits to merged663 persists duration and merged_at664 cleans up train ref665 when status is merged666 and transits to merged667 does not allow the transition668 #destroy669 when merge train has a pipeline670 cancels the jobs in the pipeline671 #cleanup_ref672 executes cleanup_refs for merge request673 #active?674 when status is idle675 is expected to eq true676 when status is merged677 is expected to eq false678SAST.gitlab-ci.yml679 the created pipeline680 when project has no license681 when SAST_DISABLED=1682 includes no jobs683 by default684 language detection685 Apex686 creates a pipeline with the expected jobs687 C688 creates a pipeline with the expected jobs689 C++690 creates a pipeline with the expected jobs691 C#692 creates a pipeline with the expected jobs693 Elixir694 creates a pipeline with the expected jobs695 Golang696 creates a pipeline with the expected jobs697 Groovy698 creates a pipeline with the expected jobs699 Java700 creates a pipeline with the expected jobs701 Javascript702 creates a pipeline with the expected jobs703 JSX704 creates a pipeline with the expected jobs705 Javascript Node706 creates a pipeline with the expected jobs707 HTML708 creates a pipeline with the expected jobs709 Kubernetes Manifests710 creates a pipeline with the expected jobs711 Multiple languages712 creates a pipeline with the expected jobs713 PHP714 creates a pipeline with the expected jobs715 Python716 creates a pipeline with the expected jobs717 Ruby718 creates a pipeline with the expected jobs719 Scala720 creates a pipeline with the expected jobs721 Typescript722 creates a pipeline with the expected jobs723 Typescript JSX724 creates a pipeline with the expected jobs725 Visual Basic726 creates a pipeline with the expected jobs727 when project has Ultimate license728 when SAST_DISABLE_DIND=false729 includes orchestrator job730admin/application_settings/_elasticsearch_form731 es indexing732 indexing is enabled733 hides index button when indexing is disabled734 renders an enabled pause checkbox735 indexing is disabled736 shows index button when indexing is enabled737 renders a disabled pause checkbox738 when elasticsearch_aws_secret_access_key is not set739 has field with "AWS Secret Access Key" label and no value740 when elasticsearch_aws_secret_access_key is set741 has field with "Enter new AWS Secret Access Key" label and no value742 zero-downtime elasticsearch reindexing743 without extended details744 renders the task745 with extended details746 renders the task747 with extended details, but without documents_count_target748 renders the task749 when there are elasticsearch indexed namespaces750 shows the input751 when there are too many elasticsearch indexed namespaces752 hides the input753 when there are elasticsearch indexed projects754 shows the input755 when there are too many elasticsearch indexed projects756 hides the input757Gitlab::Analytics::CycleAnalytics::Summary::Group::StageSummary758 #new_issues759 with from date760 finds the number of issues created after it761 returns the localized title762 with subgroups763 finds issues from them764 with projects specified in options765 finds issues from those projects766 with `assignee_username` filter767 finds issues from those projects768 with `author_username` filter769 finds issues from those projects770 with `label_name` filter771 finds issue with two labels772 when `from` and `to` parameters are provided773 finds issues from 5 days ago774 with other projects775 doesn't find issues from them776 #deploys777 with from date778 finds the number of deploys made created after it779 returns the localized title780 with subgroups781 finds deploys from them782 with projects specified in options783 shows deploys from those projects784 when `from` and `to` parameters are provided785 finds deployments from 5 days ago786 with other projects787 doesn't find deploys from them788 #deployment_frequency789 includes the unit: `per day`790 when `to` is nil791 includes range until now792 when `to` is given793 returns deployment frequency within `from` and `to` range794GroupWiki795 behaves like wiki model796 behaves like model with repository797 #commits_by798 retrieves several commits from the repository by oid799 #web_url800 when given the only_path option801 when only_path is false802 returns the full web URL for this repo803 when only_path is true804 returns the relative web URL for this repo805 when only_path is nil806 returns the full web URL for this repo807 when not given the only_path option808 returns the full web URL for this repo809 #url_to_repo810 returns the SSH URL to the repository811 #ssh_url_to_repo812 returns the SSH URL to the repository813 #http_url_to_repo814 returns the HTTP URL to the repository815 #repository816 returns valid repo817 #storage818 returns valid storage819 #full_path820 returns valid full_path821 #empty_repo?822 when the repo does not exist823 returns true824 when the repo exists825 returns the empty state of the repository826 #valid_repo?827 is expected to equal false828 is expected to equal true829 #repository_exists?830 is expected to equal false831 is expected to equal true832 #repo_exists?833 is expected to equal false834 is expected to equal true835 #root_ref836 is expected to equal true837 is expected to equal false838 is expected to equal false839 Respond to840 is expected to respond to #base_dir841 is expected to respond to #disk_path842 is expected to respond to #gitlab_shell843 .pick_repository_storage844 picks storage from ApplicationSetting845 picks from the available storages based on weight846 #repository847 returns a wiki repository848 #full_path849 returns the container path with the .wiki extension850 #wiki_base_path851 returns the wiki base path852 includes the relative URL root853 #wiki854 contains a Gitlab::Git::Wiki instance855 creates a new wiki repo if one does not yet exist856 creates a new wiki repo with a default commit message857 when the repository cannot be created858 raises CouldNotCreateWikiError859 #empty?860 when the wiki repository is empty861 returns true862 when the wiki has pages863 #empty?864 returns false865 only instantiates a Wiki page once866 #list_pages867 returns an array of WikiPage instances868 does not load WikiPage content by default869 returns all pages by default870 with limit option871 returns limited set of pages872 with sorting options873 returns pages sorted by title by default874 returns pages sorted by created_at875 with load_content option876 loads WikiPage content877 #sidebar_entries878 when the number of pages does not exceed the limit879 returns all pages grouped by directory and limited is false880 when the number of pages exceeds the limit881 returns 15 pages grouped by directory and limited is true882 #find_page883 returns the latest version of the page if it exists884 returns nil if the page does not exist885 can find a page by slug886 returns a WikiPage instance887 pages with multibyte-character title888 can find a page by slug889 pages with invalidly-encoded content890 can find the page891 #find_sidebar892 finds the page defined as _sidebar893 #find_file894 returns the latest version of the file if it exists895 returns nil if the page does not exist896 returns a Gitlab::Git::WikiFile instance897 returns the whole file898 #create_page899 creates a new wiki page900 returns false when a duplicate page exists901 stores an error message when a duplicate page exists902 sets the correct commit message903 sets the correct commit email904 updates container activity905 #update_page906 updates the content of the page907 sets the correct commit message908 sets the correct commit email909 updates container activity910 #delete_page911 deletes the page912 sets the correct commit email913 updates container activity914 #ensure_repository915 if the repository exists916 does not create the repository917 if the repository does not exist918 creates the repository919 #hook_attrs920 returns a hash with values921 #create_wiki_repository922 when a tracking entry does not exist923 creates a new entry924 tracks the storage location925 when a tracking entry exists926 does not create a new entry in the database927 updates the storage location928 #storage929 uses the group repository prefix930 #repository_storage931 when a tracking entry does not exist932 returns the default shard933 when a tracking entry exists934 returns the persisted shard if the repository is tracked935 #hashed_storage?936 returns true937 #disk_path938 returns the repository storage path939 behaves like EE wiki model940 does not use Elasticsearch941 #kerberos_url_to_repo942 returns valid kerberos url for this repo943Projects::GitlabProjectsImportService944 #execute945 creates export job946 if project saved and custom template exists947 sets custom template import strategy after export948 does not create export job949 if project not saved950 behaves like gitlab projects import validations951 with an invalid path952 returns an invalid project953 with a valid path954 creates a project955 override params956 stores them as import data when passed957 when there is a project with the same path958 does not create the project959 when overwrite param is set960 creates a project in a temporary full_path961Epics::IssuePromoteService962 #execute963 when epics are not enabled964 raises a permission error965 when epics are enabled966 when a user can not promote the issue967 raises a permission error968 when a user can promote the issue969 when an issue does not belong to a group970 raises an error971 when promoting issue972 creates a new epic with correct attributes973 copies group labels assigned to the issue974 creates a system note on the issue975 creates a system note on the epic976 closes the original issue977 marks the old issue as promoted978 when issue description has mentions and has notes with mentions979 only saves user mentions with actual mentions980 when issue description has an attachment981 copies the description, rewriting the attachment982 when an issue belongs to an epic983 creates a new epic with correct attributes984 when issue was already promoted985 raises error986 when issue has notes987 copies all notes988 copies note attachments989Group990 is expected to includes the EE::Group module991 associations992 is expected to have many audit_events dependent => false993 is expected to belong to file_template_project class_name => Project994 is expected to have many dependency_proxy_blobs995 is expected to have many cycle_analytics_stages996 is expected to have many value_streams997 is expected to have many ip_restrictions998 is expected to have many allowed_email_domains999 is expected to have one dependency_proxy_setting1000 is expected to have one deletion_schedule1001 is expected to have one group_wiki_repository1002 is expected to belong to push_rule required:1003 behaves like model with wiki1004 #create_wiki1005 returns true if the wiki repository already exists1006 returns true if the wiki repository was created1007 when the repository cannot be created1008 returns false and adds a validation error1009 #wiki_repository_exists?1010 returns true when the wiki repository exists1011 returns false when the wiki repository does not exist1012 wiki path conflict1013 when the new path has been used by the wiki of other Project1014 has an error on the name attribute1015 when the new wiki path has been used by the path of other Project1016 has an error on the name attribute1017 when the new path has been used by the wiki of other Group1018 has an error on the name attribute1019 when the new wiki path has been used by the path of other Group1020 has an error on the name attribute1021 scopes1022 .with_custom_file_templates1023 is expected to contain exactly #<Group id:740 @group156>1024 preloads everything needed to show a valid checked_file_template_project1025 .aimed_for_deletion1026 only includes groups that are marked for deletion on or before the specified date1027 .for_epics1028 returns groups only for selected epics1029 .with_managed_accounts_enabled1030 includes the groups that has managed accounts enabled1031 .with_no_pat_expiry_policy1032 includes the groups that has no PAT expiry policy set1033 validations1034 max_personal_access_token_lifetime1035 is expected to allow :max_personal_access_token_lifetime to be ‹1›1036 is expected to allow :max_personal_access_token_lifetime to be ‹nil›1037 is expected to allow :max_personal_access_token_lifetime to be ‹10›1038 is expected to allow :max_personal_access_token_lifetime to be ‹365›1039 is expected not to allow :max_personal_access_token_lifetime to be ‹"value"›1040 is expected not to allow :max_personal_access_token_lifetime to be ‹2.5›1041 is expected not to allow :max_personal_access_token_lifetime to be ‹-5›1042 is expected not to allow :max_personal_access_token_lifetime to be ‹366›1043 validates if custom_project_templates_group_id is allowed1044 rejects change if the assigned group is not a subgroup1045 allows value if the assigned value is from a subgroup1046 rejects change if the assigned value is from a subgroup's descendant group1047 allows value when it is blank1048 states1049 is expected to be ldap sync ready1050 after the start transition1051 sets the last sync timestamp1052 after the finish transition1053 sets the state to started1054 sets last update and last successful update to the same timestamp1055 clears previous error message on success1056 after the fail transition1057 sets the state to failed1058 sets last update timestamp but not last successful update timestamp1059 .groups_user_can_read_epics1060 does not return inaccessible groups1061 with authorized user1062 with epics enabled1063 returns epic groups user can access1064 with epics disabled1065 returns an empty list1066 getting group root ancestor1067 when same_root is false1068 behaves like group root ancestor1069 does not exceed SQL queries count1070 when same_root is true1071 behaves like group root ancestor1072 does not exceed SQL queries count1073 #vulnerabilities1074 returns vulnerabilities for all non-archived, non-deleted projects in the group and its subgroups1075 #vulnerability_scanners1076 returns vulnerability scanners for all non-archived, non-deleted projects in the group and its subgroups1077 #vulnerability_historical_statistics1078 returns vulnerability scanners for all non-archived, non-deleted projects in the group and its subgroups1079 #mark_ldap_sync_as_failed1080 sets the state to failed1081 sets the error message1082 is graceful when current state is not valid for the fail transition1083 #actual_size_limit1084 returns the value set globally1085 returns the value set locally1086 #repository_size_limit column1087 support values up to 8 exabytes1088 #file_template_project1089 is expected to include :file_template_project1090 validation1091 is cleared if invalid1092 is permitted if valid1093 #ip_restriction_ranges1094 group with no associated ip_restriction records1095 returns nil1096 group with associated ip_restriction records1097 returns a comma separated string of ranges of its ip_restriction records1098 #root_ancestor_ip_restrictions1099 returns the ip restrictions configured for the root group1100 #allowed_email_domains_list1101 group with no associated allowed_email_domains records1102 returns nil1103 group with associated allowed_email_domains records1104 returns a comma separated string of domains of its allowed_email_domains records1105 #root_ancestor_allowed_email_domains1106 returns the email domain restrictions configured for the root group1107 #predefined_push_rule1108 group with no associated push_rules record1109 returns instance push rule1110 group with associated push_rules record1111 with its own push rule1112 returns its own push rule1113 with push rule from ancestor1114 returns push rule from closest ancestor1115 there are no push rules1116 returns nil1117 #checked_file_template_project1118 licensed1119 returns nil for an invalid project1120 returns a valid project1121 unlicensed1122 returns nil for a valid project1123 #checked_file_template_project_id1124 licensed1125 returns nil for an invalid project1126 returns the ID for a valid project1127 unlicensed1128 returns nil for a valid project1129 #group_project_template_available?1130 licensed1131 returns true for licensed instance1132 when in need of checking plan1133 returns true for groups in proper plan1134 returns false for groups with group template already set but not in proper plan1135 unlicensed1136 returns false unlicensed instance1137 #saml_discovery_token1138 returns existing tokens1139 when missing on read1140 generates a token1141 saves the generated token1142 in read only mode1143 doesn't raise an error as that could expose group existance1144 returns a random value to prevent access1145 #alpha/beta_feature_available?1146 behaves like an entity with alpha/beta feature support1147 level: "alpha"1148 when license does not allow it1149 when the feature flag is enabled globally1150 is expected to be falsy1151 when the feature flag is disabled globally1152 is expected to be falsy1153 and enabled for the entity1154 is expected to be truthy1155 when license allows it1156 when the feature flag is enabled globally1157 is expected to be truthy1158 when the feature flag is disabled globally1159 is expected to be falsy1160 and enabled for the entity1161 is expected to be truthy1162 level: "beta"1163 when license does not allow it1164 when the feature flag is enabled globally1165 is expected to be falsy1166 when the feature flag is disabled globally1167 is expected to be falsy1168 and enabled for the entity1169 is expected to be truthy1170 when license allows it1171 when the feature flag is enabled globally1172 is expected to be truthy1173 when the feature flag is disabled globally1174 is expected to be falsy1175 and enabled for the entity1176 is expected to be truthy1177 #insights_config1178 when group has no Insights project configured1179 returns the default config1180 when group has an Insights project configured without a config file1181 returns the default config1182 when group has an Insights project configured1183 with a valid config file1184 returns the insights config data1185 with an invalid config file1186 returns nil1187 when group has an Insights project configured which is in a nested group1188 returns the insights config data1189 #self_or_ancestor_marked_for_deletion1190 delayed deletion feature is not available1191 returns nil1192 delayed deletion feature is available1193 the group has been marked for deletion1194 returns the group1195 the parent group has been marked for deletion1196 returns the parent group1197 no group has been marked for deletion1198 returns nil1199 ordering1200 returns the first group that is marked for deletion, up its ancestry chain1201 #marked_for_deletion?1202 delayed deletion feature is available1203 when the group is marked for delayed deletion1204 is expected to be truthy1205 when the group is not marked for delayed deletion1206 is expected to be falsey1207 delayed deletion feature is not available1208 when the group is marked for delayed deletion1209 is expected to be falsey1210 when the group is not marked for delayed deletion1211 is expected to be falsey1212 #adjourned_deletion?1213 delayed deletion feature is available1214 when delayed deletion period is set to more than 01215 behaves like returns true1216 is expected to be truthy1217 when delayed deletion period is set to 01218 behaves like returns false1219 is expected to be falsey1220 delayed deletion feature is not available1221 when delayed deletion period is set to more than 01222 behaves like returns false1223 is expected to be falsey1224 when delayed deletion period is set to 01225 behaves like returns false1226 is expected to be falsey1227 #personal_access_token_expiration_policy_available?1228 when the group does not enforce managed accounts1229 is expected to be falsey1230 when the group enforces managed accounts1231 with `personal_access_token_expiration_policy` licensed1232 is expected to be truthy1233 with `personal_access_token_expiration_policy` not licensed1234 is expected to be falsey1235 #update_personal_access_tokens_lifetime1236 when the group does not enforce managed accounts1237 behaves like it does not call the update lifetime service1238 doesn not call the update lifetime service1239 when the group enforces managed accounts1240 with `personal_access_token_expiration_policy` not licensed1241 behaves like it does not call the update lifetime service1242 doesn not call the update lifetime service1243 with `personal_access_token_expiration_policy` licensed1244 when the group does not enforce a PAT expiry policy1245 behaves like it does not call the update lifetime service1246 doesn not call the update lifetime service1247 when the group enforces a PAT expiry policy1248 executes the update lifetime service1249 #max_personal_access_token_lifetime_from_now1250 when max_personal_access_token_lifetime is defined1251 is a date time1252 is in the future1253 is in days_from_now1254 when max_personal_access_token_lifetime is nil1255 is nil1256 #owners_emails1257 is expected to match ["bob@example.com"]1258Ci::Minutes::BatchResetService1259 #execute!1260 when global shared_runners_minutes is enabled1261 when ID range is provided1262 resets minutes in batches for the given range1263 resets CI minutes and recalculates purchased minutes for the namespace exceeding the monthly minutes1264 resets CI minutes but does not recalculate purchased minutes for the namespace not exceeding the monthly minutes1265 touches the shared_runners_seconds_last_reset for all namespaces1266 when ID range is not provided1267 resets minutes in batches for all namespaces1268 resets CI minutes and does not recalculate purchased minutes for the namespace having unlimited monthly minutes1269 touches the shared_runners_seconds_last_reset for all namespaces1270 when an ActiveRecordError is raised1271 continues its progress1272 raises exception with namespace details1273 when global shared_runners_minutes setting is nil and namespaces have no limits1274 global_limit: nil, namespace_limit: 01275 does not recalculate purchased minutes for any namespaces1276 global_limit: nil, namespace_limit: nil1277 does not recalculate purchased minutes for any namespaces1278 global_limit: 0, namespace_limit: 01279 does not recalculate purchased minutes for any namespaces1280 global_limit: 0, namespace_limit: nil1281 does not recalculate purchased minutes for any namespaces1282Ci::BuildPolicy1283 #update_build?1284 behaves like protected environments access1285 when Protected Environments feature is not available in the project1286 access_level: :guest, admin_mode: nil, result: false1287 is expected to eq false1288 access_level: :reporter, admin_mode: nil, result: false1289 is expected to eq false1290 access_level: :developer, admin_mode: nil, result: true1291 is expected to eq true1292 access_level: :maintainer, admin_mode: nil, result: true1293 is expected to eq true1294 access_level: :admin, admin_mode: false, result: false1295 is expected to eq false1296 access_level: :admin, admin_mode: true, result: true1297 is expected to eq true1298 when Protected Environments feature is available in the project1299 when environment is protected1300 when user does not have access to the environment1301 access_level: :guest, admin_mode: nil, result: false1302 is expected to eq false1303 access_level: :reporter, admin_mode: nil, result: false1304 is expected to eq false1305 access_level: :developer, admin_mode: nil, result: false1306 is expected to eq false1307 access_level: :maintainer, admin_mode: nil, result: false1308 is expected to eq false1309 access_level: :admin, admin_mode: false, result: false1310 is expected to eq false1311 access_level: :admin, admin_mode: true, result: true1312 is expected to eq true1313 when user has access to the environment1314 access_level: :guest, admin_mode: nil, result: false1315 is expected to eq false1316 access_level: :reporter, admin_mode: nil, result: false1317 is expected to eq false1318 access_level: :developer, admin_mode: nil, result: true1319 is expected to eq true1320 access_level: :maintainer, admin_mode: nil, result: true1321 is expected to eq true1322 access_level: :admin, admin_mode: false, result: false1323 is expected to eq false1324 access_level: :admin, admin_mode: true, result: true1325 is expected to eq true1326 when environment is not protected1327 access_level: :guest, admin_mode: nil, result: false1328 is expected to eq false1329 access_level: :reporter, admin_mode: nil, result: false1330 is expected to eq false1331 access_level: :developer, admin_mode: nil, result: true1332 is expected to eq true1333 access_level: :maintainer, admin_mode: nil, result: true1334 is expected to eq true1335 access_level: :admin, admin_mode: false, result: false1336 is expected to eq false1337 access_level: :admin, admin_mode: true, result: true1338 is expected to eq true1339Security::PipelineVulnerabilitiesFinder1340 #execute1341 findings1342 assigns commit sha to findings1343 by order1344 orders by severity and confidence1345 by report type1346 when sast1347 includes only sast1348 when dependency_scanning1349 includes only dependency_scanning1350 when dast1351 includes only dast1352 when container_scanning1353 includes only container_scanning1354 by scope1355 when unscoped1356 returns non-dismissed vulnerabilities1357 when `dismissed`1358 returns non-dismissed vulnerabilities1359 when `all`1360 returns all vulnerabilities1361 by severity1362 when unscoped1363 returns all vulnerability severity levels1364 when `low`1365 returns only low-severity vulnerabilities1366 by confidence1367 when unscoped1368 returns all vulnerability confidence levels1369 when `medium`1370 returns only medium-confidence vulnerabilities1371 by scanner1372 when unscoped1373 returns all vulnerabilities with all scanners available1374 when `zaproxy`1375 returns only vulnerabilities with selected scanner external id1376 by all filters1377 with found entity1378 filters by all params1379 without found entity1380 did not find anything1381 without params1382 returns all report_types1383 when matching vulnerability records exist1384 assigns vulnerability records to findings providing them with computed state1385 when being tested for sort stability1386 maintains the order of the findings having the same severity and confidence1387 when scanner is not provided in the report findings1388 sets empty scanner1389SearchService1390 #search_objects1391 redacting search results (repository)1392 commits1393 behaves like it redacts incorrect results1394 when allowed1395 does nothing1396 when disallowed1397 redacts results1398 blobs1399 behaves like it redacts incorrect results1400 when allowed1401 does nothing1402 when disallowed1403 redacts results1404 wiki blobs1405 behaves like it redacts incorrect results1406 when allowed1407 does nothing1408 when disallowed1409 redacts results1410 redacting search results1411 redacts projects the user does not have access to1412 redacts issues the user does not have access to1413 redacts merge requests the user does not have access to1414 redacts milestones the user does not have access to1415 redacts notes the user does not have access to1416Ci::RegisterJobService1417 #execute1418 checks database loadbalancing stickiness1419 result is valid if replica did caught-up1420 result is invalid if replica did not caught-up1421 shared runners minutes limit1422 when limit set at global level1423 and usage is below the limit1424 behaves like returns a build1425 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1426 and usage is above the limit1427 behaves like does not return a build1428 is expected to be nil1429 and project is public1430 and public projects cost factor is 0 (default)1431 behaves like returns a build1432 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1433 and public projects cost factor is > 01434 behaves like does not return a build1435 is expected to be nil1436 and extra shared runners minutes purchased1437 and usage is below the combined limit1438 behaves like returns a build1439 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1440 and usage is above the combined limit1441 behaves like does not return a build1442 is expected to be nil1443 when limit set at namespace level1444 and limit set to unlimited1445 behaves like returns a build1446 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1447 and usage is below the limit1448 behaves like returns a build1449 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1450 and usage is above the limit1451 behaves like does not return a build1452 is expected to be nil1453 and extra shared runners minutes purchased1454 and usage is below the combined limit1455 behaves like returns a build1456 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1457 and usage is above the combined limit1458 behaves like does not return a build1459 is expected to be nil1460 when limit set at global and namespace level1461 and namespace limit lower than global limit1462 behaves like does not return a build1463 is expected to be nil1464 and namespace limit higher than global limit1465 behaves like returns a build1466 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1467 when group is subgroup1468 and usage below the limit on root namespace1469 behaves like returns a build1470 is expected to be a kind of Ci::Build(id: integer, status: string, finished_at: datetime, trace: text, created_at: datetime, upda...g_for_resource_at: datetime_with_timezone, processed: boolean, scheduling_type: integer, tag_list: )1471 and usage above the limit on root namespace1472 behaves like does not return a build1473 is expected to be nil1474 secrets1475 when build has secrets defined1476 when there is no Vault server provided1477 does not pick the build and drops the build1478 when there is Vault server provided1479 picks the build1480 when build has no secrets defined1481 picks the build1482Analytics::CycleAnalytics::GroupStage1483 uniqueness validation on name1484 is expected to validate that :name is case-sensitively unique within the scope of :group_id and :group_value_stream_id1485 associations1486 is expected to belong to group required:1487 is expected to belong to value_stream required:1488 behaves like cycle analytics stage1489 associations1490 is expected to belong to end_event_label required:1491 is expected to belong to start_event_label required:1492 validation1493 is valid1494 validates presence of parent1495 validates presence of start_event_identifier1496 validates presence of end_event_identifier1497 is invalid when end_event is not allowed for the given start_event1498 disallows default stage names when creating custom stage1499 is expected not to be valid1500 #subject_class1501 infers the model from the start event1502 #start_event1503 builds start_event object based on start_event_identifier1504 #end_event1505 builds end_event object based on end_event_identifier1506 #matches_with_stage_params?1507 matches with default stage params1508 mismatches when the stage is custom1509 #parent_id1510 delegates to 'parent_name'_id attribute1511 when creating label based event1512 when the label id is not passed1513 returns validation error when `start_event_label_id` is missing1514 returns validation error when `end_event_label_id` is missing1515 when group label is defined on the root group1516 succeeds1517 when subgroup is given1518 succeeds1519 when label is defined for a different group1520 returns validation for `start_event_label_id`1521 returns validation for `end_event_label_id`1522 when `ProjectLabel is given1523 raises error when `ProjectLabel` is given for `start_event_label`1524 raises error when `ProjectLabel` is given for `end_event_label`1525 relative positioning1526 behaves like a class that supports relative positioning1527 .move_nulls_to_end1528 moves items with null relative_position to the end1529 preserves relative position1530 moves the item near the start position when there are no existing positions1531 does not perform any moves if all items have their relative_position set1532 manages to move nulls to the end even if there is a sequence at the end1533 manages to move nulls to the end even if there is not enough space1534 manages to move nulls to the end, stacking if we cannot create enough space1535 does not have an N+1 issue1536 .move_nulls_to_start1537 moves items with null relative_position to the start1538 moves the item near the start position when there are no existing positions1539 preserves relative position1540 does not perform any moves if all items have their relative_position set1541 manages to move nulls to the start even if there is not enough space1542 manages to move nulls to the end, stacking if we cannot create enough space1543 #max_relative_position1544 returns maximum position1545 #prev_relative_position1546 returns previous position if there is an item above1547 returns nil if there is no item above1548 #next_relative_position1549 returns next position if there is an item below1550 returns nil if there is no item below1551 #find_next_gap_before1552 is expected to be between -2147483648 and 2147483647 (inclusive)1553 deals with there not being any items to the left1554 finds the next gap to the left, skipping adjacent values1555 finds the next gap to the left1556 there is no gap1557 returns nil1558 there is a sequence ending at MAX_POSITION1559 can find the gap at the start for any item in the sequence1560 respects lower bounds1561 #find_next_gap_after1562 is expected to be between -2147483648 and 2147483647 (inclusive)1563 deals with there not being any items to the right1564 finds the next gap to the right, skipping adjacent values1565 finds the next gap to the right1566 there is no gap1567 returns nil1568 there is a sequence starting at MIN_POSITION1569 can find the gap at the end for any item in the sequence1570 respects upper bounds1571 #move_before1572 moves item before1573 can move the item before an item at the start1574 can move the item before an item at MIN_POSITION1575 can move the item before an item bunched up at MIN_POSITION1576 when there is no space1577 moves items correctly1578 leap-frogging to the left1579 can leap-frog STEPS - 1 times before needing to rebalance1580 rebalances after leap-frogging STEPS times1581 #move_after1582 moves item after1583 can move the item after an item bunched up at MAX_POSITION1584 when there is no space1585 can move the item after an item at MAX_POSITION1586 moves items correctly1587 leap-frogging1588 can leap-frog STEPS times before needing to rebalance1589 rebalances after leap-frogging STEPS+1 times1590 #move_to_start1591 moves item to the end1592 positions the item at MIN_POSITION when there is only one space left1593 rebalances when there is already an item at the MIN_POSITION1594 deals with a run of elements at the start1595 #move_to_end1596 moves item to the end1597 positions the item at MAX_POSITION when there is only one space left1598 rebalances when there is already an item at the MAX_POSITION1599 deals with a run of elements at the end1600 #move_between1601 positions item between two other1602 positions item between on top1603 positions item between to end1604 positions items even when after and before positions are the same1605 positions item in the middle of other two if distance is big enough1606 positions item closer to the middle if we are at the very top1607 positions item closer to the middle if we are at the very bottom1608 positions item in the middle of other two1609 positions item right if we pass non-sequential parameters1610 avoids N+1 queries when rebalancing other items1611 the two items are next to each other1612 behaves like moves item between1613 moves the middle item to between left and right1614 there is no space1615 behaves like moves item between1616 moves the middle item to between left and right1617 there is a bunch of items1618 handles bunches correctly1619 behaves like moves item between1620 moves the middle item to between left and right1621 #move_sequence_before1622 moves the whole sequence of items to the middle of the nearest gap1623 raises an error if there is no space1624 finds a gap if there are unused positions1625 #move_sequence_after1626 moves the whole sequence of items to the middle of the nearest gap1627 finds a gap if there are unused positions1628 raises an error if there is no space1629Vulnerabilities::Feedback1630 is expected to define :feedback_type as an enum, backed by an integer, using a prefix of :for, with possible values ‹{dismissal: 0, issue: 1, merge_request: 2}›1631 is expected to define :category as an enum, backed by an integer1632 associations1633 is expected to belong to project required:1634 is expected to belong to author class_name => User required:1635 is expected to belong to comment_author class_name => User required:1636 is expected to belong to issue required:1637 is expected to belong to merge_request required:1638 is expected to belong to pipeline class_name => Ci::Pipeline required:1639 validations1640 is expected to validate that :project cannot be empty/falsy1641 is expected to validate that :author cannot be empty/falsy1642 is expected to validate that :feedback_type cannot be empty/falsy1643 is expected to validate that :category cannot be empty/falsy1644 is expected to validate that :project_fingerprint cannot be empty/falsy1645 pipeline is nil1646 is valid1647 pipeline has the same project_id1648 is valid1649 pipeline_id does not exist1650 is invalid1651 pipeline has a different project_id1652 is invalid1653 comment is set1654 validates presence of comment_timestamp1655 validates presence of comment_author1656 .with_category1657 filters by category1658 .with_feedback_type1659 filters by feedback_type1660 ::only_valid_feedback1661 filters out invalid feedback1662 #has_comment?1663 comment and comment_author are set1664 is expected to be truthy1665 comment is set and comment_author is not1666 is expected to be falsy1667 comment and comment_author are not set1668 is expected to be falsy1669 #find_or_init_for1670 when params are valid1671 inits the feedback1672 finds the existing feedback1673 when attempting to save duplicate1674 raises ActiveRecord::RecordInvalid1675 when params are invalid1676 raises ArgumentError when given a bad feedback_type value1677 raises ArgumentError when given a bad category value1678 #occurrence_key1679 is expected to eq {:category=>"sast", :project_fingerprint=>"0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33", :project_id=>1}1680ApprovalWrappedRule1681 #project1682 returns merge request project1683 #approvals_left1684 when approvals_required is greater than approved approver count1685 returns approvals still needed1686 when approvals_required is less than approved approver count1687 returns zero1688 #approved?1689 when approvals left is zero1690 returns true1691 when approvals left is not zero, but there is still unactioned approvers1692 returns false1693 when approvals left is not zero, but there is no unactioned approvers1694 returns true1695 #approved_approvers1696 when some approvers has made the approvals1697 returns approved approvers1698 when merged1699 returns approved approvers from database1700 when merged but without materialized approved_approvers1701 returns computed approved approvers1702 when project rule1703 returns computed approved approvers1704 #commented_approvers1705 returns an array1706 returns an array of approvers who have commented1707 #unactioned_approvers1708 when some approvers has not approved yet1709 returns unactioned approvers1710 when merged1711 returns approved approvers from database1712 #approvals_required1713 returns the attribute saved on the model1714MergeRequests::MergeToRefService1715 #execute1716 does not check the repository size limit1717 when no commit message is explicitly given and push rule is set1718 uses the default commit message1719 behaves like merge validation hooks1720 returns true when valid1721 commit message validation for required characters1722 returns false and matches validation error1723 behaves like hook validations are skipped when push rules unlicensed1724 is expected to be truthy1725 commit message validation for forbidden characters1726 returns false and saves error when invalid1727 behaves like hook validations are skipped when push rules unlicensed1728 is expected to be truthy1729 authors email validation1730 returns false and saves error when invalid1731 validates against the commit email1732 behaves like hook validations are skipped when push rules unlicensed1733 is expected to be truthy1734 fast forward merge request1735 returns true when fast forward is enabled1736GitlabSubscription1737 default values1738 is expected to eq Wed, 30 Sep 20201739 validations1740 is expected to validate that :seats cannot be empty/falsy1741 is expected to validate that :start_date cannot be empty/falsy1742 is expected to validate that :namespace_id is case-sensitively unique1743 associations1744 is expected to belong to namespace required:1745 is expected to belong to hosted_plan required:1746 scopes1747 .with_hosted_plan1748 scopes to the plan1749 #calculate_seats_in_use1750 returns count of members1751 also counts users from subgroups1752 does not count duplicated members1753 does not count blocked members1754 with guest members1755 with a gold plan1756 excludes these members1757 with other plans1758 excludes these members1759 excludes these members1760 when subscription is for a User1761 always returns 1 seat1762 #calculate_seats_owed1763 with a free plan1764 does not update max_seats_used1765 with a trial plan1766 does not update max_seats_used1767 with an early adopter plan1768 does not update max_seats_used1769 with a paid plan1770 calculates the number of owed seats1771 #expired?1772 when end_date is expired1773 is expected to equal true1774 when end_date is not expired1775 is expected to equal false1776 when end_date is nil1777 is expected to equal false1778 #has_a_paid_hosted_plan?1779 plan_name: "bronze", seats: 0, hosted: true, result: false1780 returns true if subscription has a paid hosted plan1781 plan_name: "bronze", seats: 1, hosted: true, result: true1782 returns true if subscription has a paid hosted plan1783 plan_name: "bronze", seats: 1, hosted: false, result: false1784 returns true if subscription has a paid hosted plan1785 plan_name: "silver", seats: 1, hosted: true, result: true1786 returns true if subscription has a paid hosted plan1787 plan_name: "early_adopter", seats: 1, hosted: true, result: false1788 returns true if subscription has a paid hosted plan1789 #upgradable?1790 plan_name: "bronze", paid_hosted_plan: true, expired: false, result: true1791 returns true if subscription is upgradable1792 plan_name: "bronze", paid_hosted_plan: true, expired: true, result: false1793 returns true if subscription is upgradable1794 plan_name: "silver", paid_hosted_plan: true, expired: false, result: true1795 returns true if subscription is upgradable1796 plan_name: "gold", paid_hosted_plan: true, expired: false, result: false1797 returns true if subscription is upgradable1798 callbacks1799 gitlab_subscription columns are contained in gitlab_subscription_history columns1800 gitlab_subscription_history columns have some extra columns over gitlab_subscription1801 after_commit :index_namespace1802 indexes the namespace1803 when it is a trial1804 indexes the namespace1805 when not ::Gitlab.dev_env_or_com?1806 does not index the namespace1807 when the plan has expired1808 does not index the namespace1809 when it is not a hosted plan1810 does not index anything1811 when it is a free plan1812 does not index the namespace1813 before_update1814 logs previous state to gitlab subscription history1815 after_destroy_commit1816 logs previous state to gitlab subscription history1817 .yield_long_expired_indexed_namespaces1818 yields ElasticsearchIndexedNamespace that belong to subscriptions that expired over a week ago1819ApprovalRules::FinalizeService1820 #execute1821 when there is no merge request rules1822 behaves like skipping when unmerged1823 does nothing if unmerged1824 when merged1825 copies project rules to MR, keep snapshot of group member by including it as part of users association1826 behaves like idempotent approval tests1827 does not create a new rule if one exists1828 behaves like idempotent approval tests1829 does not create a new rule if one exists1830 when there is a regular merge request rule1831 behaves like skipping when unmerged1832 does nothing if unmerged1833 when merged1834 does not copy project rules, and updates approval mapping with MR rules1835 gracefully merges duplicate users1836Gitlab::Ci::Parsers::Security::Dast1837 #parse!1838 report_format: :dast, occurrence_count: 24, identifier_count: 15, scanner_count: 1, scanned_resources_count: 6, last_occurrence_hostname: "http://goat:8080", last_occurrence_method_name: "GET", last_occurrence_path: "/WebGoat/plugins/bootstrap/css/bootstrap.min.css", last_occurrence_severity: "info", last_occurrence_confidence: "low"1839 parses all identifiers, findings and scanned resources1840 generates expected location1841 occurrence properties1842 attribute: :report_type, value: "dast"1843 saves properly occurrence1844 attribute: :severity, value: "info"1845 saves properly occurrence1846 attribute: :confidence, value: "low"1847 saves properly occurrence1848 report_format: :dast_multiple_sites, occurrence_count: 25, identifier_count: 15, scanner_count: 1, scanned_resources_count: 0, last_occurrence_hostname: "http://goat:8080", last_occurrence_method_name: "GET", last_occurrence_path: "/WebGoat/plugins/bootstrap/css/bootstrap.min.css", last_occurrence_severity: "info", last_occurrence_confidence: "low"1849 parses all identifiers, findings and scanned resources1850 generates expected location1851 occurrence properties1852 attribute: :report_type, value: "dast"1853 saves properly occurrence1854 attribute: :severity, value: "info"1855 saves properly occurrence1856 attribute: :confidence, value: "low"1857 saves properly occurrence1858 report_format: :dast_deprecated_no_spider, occurrence_count: 2, identifier_count: 3, scanner_count: 1, scanned_resources_count: 0, last_occurrence_hostname: "http://bikebilly-spring-auto-devops-review-feature-br-3y2gpb.35.192.176.43.xip.io", last_occurrence_method_name: "GET", last_occurrence_path: "/", last_occurrence_severity: "low", last_occurrence_confidence: "medium"1859 parses all identifiers, findings and scanned resources1860 generates expected location1861 occurrence properties1862 attribute: :report_type, value: "dast"1863 saves properly occurrence1864 attribute: :severity, value: "low"1865 saves properly occurrence1866 attribute: :confidence, value: "medium"1867 saves properly occurrence1868 report_format: :dast_deprecated_no_common_fields, occurrence_count: 24, identifier_count: 15, scanner_count: 1, scanned_resources_count: 0, last_occurrence_hostname: "http://goat:8080", last_occurrence_method_name: "GET", last_occurrence_path: "/WebGoat/plugins/bootstrap/css/bootstrap.min.css", last_occurrence_severity: "info", last_occurrence_confidence: "low"1869 parses all identifiers, findings and scanned resources1870 generates expected location1871 occurrence properties1872 attribute: :report_type, value: "dast"1873 saves properly occurrence1874 attribute: :severity, value: "info"1875 saves properly occurrence1876 attribute: :confidence, value: "low"1877 saves properly occurrence1878Milestone1879 searches milestones1880 returns json with all needed elements1881 behaves like limited indexing is enabled1882 when the project is not enabled specifically1883 #searchable?1884 returns false1885 when a project is enabled specifically1886 #searchable?1887 returns true1888 when a group is enabled1889 #searchable?1890 returns true1891 behaves like no results when the user cannot read cross project1892 returns the record if a single project was passed1893 does not return anything when trying to search cross project1894Gitlab::LegacyGithubImport::ProjectCreator1895 #execute1896 creating a CI/CD only project1897 creates a project1898 calls the service to set up the project1899 creating a regular project1900 creates a project1901 doesn't apply any special setup1902GroupsWithTemplatesFinder1903 without group id1904 returns all groups1905 when namespace checked1906 returns groups on gold/silver plan1907 with subgroup with template1908 returns groups on gold/silver plan1909 with group id1910 returns given group with it descendants1911 with subgroup with template1912 returns only chosen group1913 when namespace checked1914 does not return the group1915 with subgroup with template1916 returns only chosen group1917 returns only chosen subgroup1918EnvironmentsHelper1919 #metrics_data1920 user has all accesses1921 returns additional configuration1922 user does not have access to pod logs1923 returns additional configuration1924 #environment_logs_data1925 returns environment parameters data1926 returns parameters for forming the pod logs API URL1927Ci::SubscribeBridgeService1928 #execute1929 when the upstream project exists1930 when the upstream project has a pipeline1931 when the user has permissions1932 populates the pipeline project source1933 persists the bridge1934 when the pipeline already finished1935 mirrors the pipeline status to the bridge job instantly1936 when the user does not have permissions1937 drops the bridge1938 when the upstream project does not have a pipeline1939 skips the bridge1940 when the upstream project does not exist1941 drops the bridge1942EE::Issuable1943 Validation1944 general validations1945 is expected to validate that :iid cannot be empty/falsy1946 is expected to validate that :author cannot be empty/falsy1947 is expected to validate that :title cannot be empty/falsy1948 is expected to validate that the length of :title is at most 2551949 is expected to validate that the length of :description is at most 10485761950 behaves like validates description length with custom validation1951 when Issuable is a new record1952 validates the maximum description length1953 on create1954 does not validate the maximum description length1955 when Issuable is an existing record1956 does not validate the maximum description length1957 behaves like truncates the description to its allowed maximum length on import1958 truncates the description to its allowed maximum length1959 #matches_cross_reference_regex?1960 epic description with long path string1961 behaves like matches_cross_reference_regex? fails fast1962 fails fast for long strings1963 #supports_epic?1964 issuable_type: :issue, project: :project_with_group, supports_epic: true1965 is expected to eq true1966 issuable_type: :issue, project: :project_without_group, supports_epic: false1967 is expected to eq false1968 issuable_type: :incident, project: :project_with_group, supports_epic: false1969 is expected to eq false1970 issuable_type: :incident, project: :project_without_group, supports_epic: false1971 is expected to eq false1972 issuable_type: :merge_request, project: :project_with_group, supports_epic: false1973 is expected to eq false1974 issuable_type: :merge_request, project: :project_without_group, supports_epic: false1975 is expected to eq false1976StatusPage::TriggerPublishService1977 #execute1978 invalid action1979 raises an argument error and does not process1980 triggered by issue1981 changes: {:weight=>23}, shared_example_name: "no trigger status page publish"1982 does not trigger status page publish service1983 changes: {:title=>"changed"}, shared_example_name: "trigger status page publish"1984 triggers status page publish1985 changes: {:description=>"changed"}, shared_example_name: "trigger status page publish"1986 triggers status page publish1987 changes: {:confidential=>true}, shared_example_name: "trigger status page publish"1988 triggers status page publish1989 without changes1990 does not trigger status page publish service1991 with init action1992 triggers status page publish1993 when a confidential issue changes1994 does not trigger status page publish service1995 when a non-published issue changes1996 does not trigger status page publish service1997 when closing an issue1998 triggers status page publish1999 when reopening an issue2000 triggers status page publish2001 triggered by note2002 for issues2003 without changes2004 does not trigger status page publish service2005 when changed2006 triggers status page publish2007 when destroyed2008 triggers status page publish2009 as system note2010 does not trigger status page publish service2011 without recognized emoji2012 when changed2013 does not trigger status page publish service2014 when destroyed2015 triggers status page publish2016 for merge requests2017 when changed2018 does not trigger status page publish service2019 triggered by award emoji2020 for notes on issues2021 triggers status page publish2022 without recognized emoji2023 does not trigger status page publish service2024 for issues2025 does not trigger status page publish service2026 for notes on merge requests2027 does not trigger status page publish service2028 triggered by unsupported type2029 for some abitary type2030 raises ArgumentError2031 with eligable triggered_by2032 when eligable2033 triggers status page publish2034 when status page is missing2035 does not trigger status page publish service2036 when status page is not enabled2037 does not trigger status page publish service2038 when license is not available2039 does not trigger status page publish service2040 when user cannot publish status page2041 does not trigger status page publish service2042Gitlab::Auth::Ldap::Access2043 #allowed?2044 LDAP user2045Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.2046Deprecation warning: Net::LDAP::ConnectionRefused will be deprecated. Use Errno::ECONNREFUSED instead.2047 finds a user by dn first2048 finds a user by email if not found by dn2049 returns false if user cannot be found2050 when exists in LDAP/AD2051 user blocked in LDAP/AD2052 blocks user in GitLab2053 on a read-only instance2054 does not block user in GitLab2055 user unblocked in LDAP/AD2056 unblocks user in GitLab2057 on a read-only instance2058 does not unblock user in GitLab2059 when no longer exist in LDAP/AD2060 blocks user in GitLab2061 on a read-only instance2062 does not block user in GitLab2063 #update_user2064 email address2065 does not update email if email attribute is not set2066 does not update the email if the user has the same email in GitLab and in LDAP2067 does not update the email if the user has the same email GitLab and in LDAP, but with upper case in LDAP2068 when mail is different2069 does not update the email when in a read-only GitLab instance2070 updates the email if the user email is different2071 does not update the name if the user email is different2072 name2073 does not update name if name attribute is not set2074 does not update the name if the user has the same name in GitLab and in LDAP2075 when cn is different2076 does not update the name when in a read-only GitLab instance2077 updates the name if the user name is different2078 does not update the email if the user name is different2079 when first and last name attributes passed2080 does not update the name when in a read-only GitLab instance2081 updates the name if the user name is different2082 does not update the email if the user name is different2083 group memberships2084 doesn't continue when there is no `memberOf` param2085 when there is `memberof` param2086 triggers a sync for all groups found in `memberof` for new users2087 doesn't trigger a sync when in a read-only GitLab instance2088 doesn't trigger a sync when there are no links for the provider2089 does not performs the membership update for existing users2090 SSH keys2091 adds a SSH key if it is in LDAP but not in gitlab2092 adds a SSH key and give it a proper name2093 does not add a SSH key if it is invalid2094 does not add a SSH key when in a read-only GitLab instance2095 user has at least one LDAPKey2096 removes a SSH key if it is no longer in LDAP2097 removes a SSH key if the ldap attribute was removed2098 kerberos identity2099 adds a Kerberos identity if it is in Active Directory but not in GitLab2100 updates existing Kerberos identity in GitLab if Active Directory has a different one2101 does not remove Kerberos identities from GitLab if they are none in the LDAP provider2102 does not modify identities in GitLab if they are no kerberos principal in the LDAP provider2103 does not add a Kerberos identity when in a read-only GitLab instance2104 LDAP entity2105 whent external UID changed in the entry2106 updates the external UID2107 does not update the external UID when in a read-only GitLab instance2108EE::SystemNotes::EpicsService2109 #epic_issue2110 issue added to an epic2111 creates the note text correctly2112 behaves like a system note2113 has the correct attributes2114 issue removed from an epic2115 creates the note text correctly2116 behaves like a system note2117 has the correct attributes2118 #issue_on_epic2119 issue added to an epic2120 creates the note text correctly2121 behaves like a system note2122 has the correct attributes2123 issue removed from an epic2124 creates the note text correctly2125 behaves like a system note2126 has the correct attributes2127 invalid type2128 raises an error2129 #change_epic_date_note2130 when start date was changed2131 sets the note text2132 behaves like a system note2133 has the correct attributes2134 when start date was removed2135 sets the note text2136 behaves like a system note2137 has the correct attributes2138 #issue_promoted2139 note on the epic2140 sets the note text2141 behaves like a system note2142 has the correct attributes2143 note on the issue2144 sets the note text2145 behaves like a system note2146 has the correct attributes2147 #change_epics_relation2148 relate epic2149 behaves like a system note2150 has the correct attributes2151 when epic is added as child to a parent epic2152 sets the note text2153 when added epic is from a subgroup2154 sets the note text2155 unrelate epic2156 behaves like a system note2157 has the correct attributes2158 when child epic is removed from a parent epic2159 sets the note text2160 when removed epic is from a subgroup2161 sets the note text2162Epics::CloseService2163 #execute2164 when epics are disabled2165 does not close the epic2166 when epics are enabled2167 when a user has permissions to update the epic2168 when closing an opened epic2169 closes the epic2170 changes closed_by2171 changes closed_at2172 creates a system note about epic close2173 notifies the subscribers2174 creates new event2175 when trying to close a closed epic2176 does not change the epic state2177 does not change closed_at2178 does not change closed_by2179 does not create a system note2180 does not send any emails2181 does not create an event2182 when a user does not have permissions to update epic2183 does not close the epic2184shared/issuable/_approvals.html.haml2185 has no approvers2186 can override approvers2187 shows suggested approvers2188 can not override approvers2189 hides suggested approvers2190 hides select approvers field2191 hides select approver groups field2192 has approvers2193Checking for expected text of nil is confusing and/or pointless since it will always match. Please specify a string or regexp instead.2194Checking for expected text of nil is confusing and/or pointless since it will always match. Please specify a string or regexp instead.2195 shows approver in table2196 can not override approvers2197 hides remove button2198ProductivityAnalyticsFinder2199 .array_params2200 is expected to include :days_to_merge2201 .scalar_params2202 is expected to include :merged_before and :merged_after2203 #execute2204 allows to filter by days_to_merge2205 returns all MRs with merged_at - created_at IN specified values2206 allows to filter by merged_at2207 with merged_after specified as timestamp2208 returns all MRs with merged date later than specified timestamp2209 with merged_after and merged_before specified2210 returns all MRs with merged date later than specified timestamp2211 with merged_after earlier than PA start date2212 uses start_date as filter value2213Clusters::Platforms::Kubernetes2214 #rollout_status2215 legacy deployments based on app label2216 only legacy deployments2217 contains nothing2218 has the has_legacy_app_label flag2219 deployment with no pods2220 returns a valid status with matching deployments2221 new deployment based on annotations2222 contains only matching deployments2223 does have the has_legacy_app_label flag2224 deployment with app label not matching the environment2225 does not have the has_legacy_app_label flag2226 with valid deployments2227 creates a matching RolloutStatus2228 with empty list of deployments2229 creates a matching RolloutStatus2230 #calculate_reactive_cache_for2231 when kubernetes responds with valid deployments2232 on a project level cluster2233 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}]}2234 on a group level cluster2235 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}]}2236 on an instance level cluster2237 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}]}2238 when kubernetes responds with 500s2239 is expected to raise Kubeclient::HttpError2240 when kubernetes responds with 404s2241 is expected to include {:deployments => []}2242MergeRequests::RemoveApprovalService2243 #execute2244 with a user who has approved2245 removes the approval2246 creates an unapproval note2247 fires an unapproval webhook2248 does not send a notification2249 resets the cache for approvals2250 with an approved merge request2251 fires an unapproved webhook and sends a notification2252Ci::CreatePipelineService#execute2253 CI/CD Quotas / Limits2254 when there are not limits enabled2255 enqueues a new pipeline2256 when pipeline activity limit is exceeded2257 drops the pipeline and does not process jobs2258 when pipeline size limit is exceeded2259 drops pipeline without creating jobs2260 cross-project pipeline triggers2261 creates bridge jobs correctly2262 when configured with rules2263 that include the bridge job2264 persists the bridge job2265 that exclude the bridge job2266 does not include the bridge job2267 job with secrets2268 persists secrets as job metadata2269Board2270 is expected to includes the EE::Board module2271 relationships2272 is expected to belong to milestone required:2273 is expected to have one board_assignee2274 is expected to have one assignee through board_assignee2275 is expected to have many board_labels2276 is expected to have many labels through board_labels2277 is expected to have many user_preferences2278 validations2279 is expected to validate that :name cannot be empty/falsy2280 validations2281 when group is present2282 is expected not to validate that :project cannot be empty/falsy2283 is expected to validate that :group cannot be empty/falsy2284 when project is present2285 is expected to validate that :project cannot be empty/falsy2286 is expected not to validate that :group cannot be empty/falsy2287 milestone2288 returns nil when the feature is not available2289 when the feature is available2290 returns Milestone::Upcoming for upcoming milestone id2291 returns Milestone::Started for started milestone id2292 returns milestone for valid milestone id2293 returns nil for invalid milestone id2294 #scoped?2295 returns true when milestone is not nil AND is not "Any milestone"2296 returns true when weight is not nil AND is not "Any weight"2297 returns true when any label exists2298 returns true when assignee is present2299 returns false when feature is not available2300 returns false when board is not scoped2301Gitlab::GitAccessWiki2302 group wiki access2303 #push_access_check2304 when user can :create_wiki2305 is expected not to raise Exception2306 when in a read-only GitLab instance2307 does not give access to upload wiki code2308 when user cannot :create_wiki2309 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to write to this group's wiki."2310 #check_download_access!2311 the user has at least reporter access2312 when wiki feature is enabled2313 gives access to download wiki code2314 when the wiki repository does not exist2315 behaves like not-found git access2316 prevents access2317 when wiki feature is disabled2318 behaves like forbidden git access2319 prevents access2320 the user does not have access2321 behaves like not-found git access2322 prevents access2323 the group is public2324 gives access to download wiki code2325 when wiki feature is disabled2326 behaves like forbidden git access2327 prevents access2328 when in a read-only GitLab instance2329 behaves like a read-only GitLab instance2330 denies push access2331 for a Geo setup2332 that is incorrectly set up2333 denies push access with primary present2334 that is correctly set up2335 for a git clone/pull2336 attempts to proxy to the primary2337 for a git push2338 attempts to proxy to the primary2339 when wiki is disabled2340 allows code download for geo2341GroupSaml::GroupManagedAccounts::TransferMembershipService2342 removes the current password2343 returns true2344 does not reduce the amount of memberships2345 removes previous known identities of the account2346 when remove_non_gma_memberships flag is enable2347 reduces the amount of memberships2348 when at least one non-owner member was not removed2349 returns a falsy value2350 when the user changes are not saved2351 doesn't remove account's members2352 when the user is owner of a group2353 does not reduce the amount of memberships2354 when the user changes are not saved2355 doesn't remove account's identities2356 when the email doesn't match2357 returns a falsy value2358 convert_user_to_group_managed_accounts flag is disable2359 returns a falsy value2360 doesn't remove non-owner members without dedicated accounts from the group2361 transferred account2362 doesn't allow blank passwords2363ApprovalWrappedAnyApproverRule2364 #approved?2365 #approvals_approvers2366 contains every approved user2367 when an author and a committer approved2368 does not contain an author2369 #commented_approvers2370 returns an array2371 returns an array of approvers who have commented2372Vulnerabilities::FeedbackEntity2373 #as_json2374 is expected to include :created_at, :project_id, :author, :category, and :feedback_type2375 feedback type is issue2376 when issue is present2377 exposes the issue iid2378 when user can view issues2379 exposes issue url2380 when user cannot view issues2381 does not expose issue url2382 when there is no current user2383 does not include fields related to current user2384 when issue is not present2385 does not expose issue information2386 when allowed to destroy vulnerability feedback2387 does not contain destroy vulnerability feedback dismissal path2388 feedback type is merge_request2389 when merge request is present2390 exposes the merge request iid2391 when user can view merge requests2392 exposes merge request url2393 when user cannot view merge requests2394 does not expose merge request url2395 when merge request is not present2396 does not expose merge request information2397 when allowed to destroy vulnerability feedback2398 does not contain destroy vulnerability feedback dismissal path2399 feedback type is dismissal2400 when not allowed to destroy vulnerability feedback2401 does not contain destroy vulnerability feedback dismissal path2402 when allowed to destroy vulnerability feedback2403 contains destroy vulnerability feedback dismissal path2404 when comment is not present2405 is expected not to include :comment_details2406 when comment is present2407 exposes comment information2408BlockingMergeRequestEntity2409 exposes simple attributes2410 #head_pipeline2411 visible pipeline2412 is expected to include {:id => 261}2413 hidden pipeline2414 is expected to be nil2415 #reference2416 is expected to eq "!1"2417 from another project2418 includes the fully-qualified reference when needed2419Gitlab::Ci::Parsers::Security::Common2420 #parse!2421 converts undefined severity and confidence2422 parsing scanned resources2423 when the URL is invalid2424 skips invalid URLs2425 when the URLs are valid2426 creates a scanned resource for each URL2427 converts the JSON to Scanned Resource objects2428 parsing remediations2429 finds remediation with same cve2430 finds remediation with same id2431 finds cve and id2432 does not find remediation with different id2433 parsing scanners2434 when vendor is missing in scanner2435 returns scanner with empty vendor field2436 when vendor is not missing in scanner2437 returns scanner with parsed vendor value2438EE::UserCalloutsHelper2439 .render_enable_hashed_storage_warning2440 when we should show the enable warning2441 renders the enable warning2442 when we should not show the enable warning2443 does not render the enable warning2444 .render_migrate_hashed_storage_warning2445 when we should show the migrate warning2446 renders the migrate warning2447 when we should not show the migrate warning2448 does not render the migrate warning2449 .show_enable_hashed_storage_warning?2450 when hashed storage is disabled2451 when the enable warning has not been dismissed2452 is expected to be truthy2453 when the enable warning was dismissed2454 is expected to be falsy2455 when hashed storage is enabled2456 is expected to be falsy2457 .show_migrate_hashed_storage_warning?2458 when hashed storage is disabled2459 is expected to be falsy2460 when hashed storage is enabled2461 when the enable warning has not been dismissed2462 when there is a project in non-hashed-storage2463 is expected to be truthy2464 when there are NO projects in non-hashed-storage2465 is expected to be falsy2466 when the enable warning was dismissed2467 is expected to be falsy2468 .show_canary_deployment_callout?2469 when user needs to upgrade to canary deployments2470 when user has dismissed2471 is expected to be falsey2472 when user has not dismissed2473 is expected to be truthy2474 when user already has access to canary deployments2475 is expected to be falsey2476 #render_dashboard_gold_trial2477 any_namespace_without_trial?: true, show_gold_trial?: true, user_default_dashboard?: true, has_no_trial_or_paid_plan?: true, should_render?: true2478 is expected to receive render("shared/gold_trial_callout_content") 1 time2479 any_namespace_without_trial?: true, show_gold_trial?: true, user_default_dashboard?: true, has_no_trial_or_paid_plan?: false, should_render?: false2480 is expected not to receive render(*(any args)) 0 times2481 any_namespace_without_trial?: true, show_gold_trial?: true, user_default_dashboard?: false, has_no_trial_or_paid_plan?: true, should_render?: false2482 is expected not to receive render(*(any args)) 0 times2483 any_namespace_without_trial?: true, show_gold_trial?: false, user_default_dashboard?: true, has_no_trial_or_paid_plan?: true, should_render?: false2484 is expected not to receive render(*(any args)) 0 times2485 any_namespace_without_trial?: true, show_gold_trial?: true, user_default_dashboard?: false, has_no_trial_or_paid_plan?: false, should_render?: false2486 is expected not to receive render(*(any args)) 0 times2487 any_namespace_without_trial?: true, show_gold_trial?: false, user_default_dashboard?: false, has_no_trial_or_paid_plan?: true, should_render?: false2488 is expected not to receive render(*(any args)) 0 times2489 any_namespace_without_trial?: true, show_gold_trial?: false, user_default_dashboard?: true, has_no_trial_or_paid_plan?: false, should_render?: false2490 is expected not to receive render(*(any args)) 0 times2491 any_namespace_without_trial?: true, show_gold_trial?: false, user_default_dashboard?: false, has_no_trial_or_paid_plan?: false, should_render?: false2492 is expected not to receive render(*(any args)) 0 times2493 any_namespace_without_trial?: false, show_gold_trial?: true, user_default_dashboard?: true, has_no_trial_or_paid_plan?: true, should_render?: false2494 is expected not to receive render(*(any args)) 0 times2495 any_namespace_without_trial?: false, show_gold_trial?: true, user_default_dashboard?: true, has_no_trial_or_paid_plan?: false, should_render?: false2496 is expected not to receive render(*(any args)) 0 times2497 any_namespace_without_trial?: false, show_gold_trial?: true, user_default_dashboard?: false, has_no_trial_or_paid_plan?: true, should_render?: false2498 is expected not to receive render(*(any args)) 0 times2499 any_namespace_without_trial?: false, show_gold_trial?: false, user_default_dashboard?: true, has_no_trial_or_paid_plan?: true, should_render?: false2500 is expected not to receive render(*(any args)) 0 times2501 any_namespace_without_trial?: false, show_gold_trial?: true, user_default_dashboard?: false, has_no_trial_or_paid_plan?: false, should_render?: false2502 is expected not to receive render(*(any args)) 0 times2503 any_namespace_without_trial?: false, show_gold_trial?: false, user_default_dashboard?: false, has_no_trial_or_paid_plan?: true, should_render?: false2504 is expected not to receive render(*(any args)) 0 times2505 any_namespace_without_trial?: false, show_gold_trial?: false, user_default_dashboard?: true, has_no_trial_or_paid_plan?: false, should_render?: false2506 is expected not to receive render(*(any args)) 0 times2507 any_namespace_without_trial?: false, show_gold_trial?: false, user_default_dashboard?: false, has_no_trial_or_paid_plan?: false, should_render?: false2508 is expected not to receive render(*(any args)) 0 times2509 when render_dashboard_gold_trial feature is disabled2510 does not render2511 #render_billings_gold_trial2512 never_had_trial?: true, show_gold_trial?: true, gold_plan?: false, free_plan?: false, should_render?: true2513 is expected to receive render("shared/gold_trial_callout_content", {:callout=>"gold_trial_billings", :is_dismissable=>true}) 1 time2514 never_had_trial?: true, show_gold_trial?: true, gold_plan?: false, free_plan?: true, should_render?: true2515 is expected to receive render("shared/gold_trial_callout_content", {:callout=>"gold_trial_billings", :is_dismissable=>false}) 1 time2516 never_had_trial?: true, show_gold_trial?: true, gold_plan?: true, free_plan?: true, should_render?: false2517 is expected not to receive render(*(any args)) 0 times2518 never_had_trial?: true, show_gold_trial?: true, gold_plan?: true, free_plan?: false, should_render?: false2519 is expected not to receive render(*(any args)) 0 times2520 never_had_trial?: true, show_gold_trial?: false, gold_plan?: true, free_plan?: true, should_render?: false2521 is expected not to receive render(*(any args)) 0 times2522 never_had_trial?: true, show_gold_trial?: false, gold_plan?: false, free_plan?: true, should_render?: false2523 is expected not to receive render(*(any args)) 0 times2524 never_had_trial?: true, show_gold_trial?: false, gold_plan?: true, free_plan?: false, should_render?: false2525 is expected not to receive render(*(any args)) 0 times2526 never_had_trial?: true, show_gold_trial?: false, gold_plan?: false, free_plan?: false, should_render?: false2527 is expected not to receive render(*(any args)) 0 times2528 never_had_trial?: false, show_gold_trial?: true, gold_plan?: false, free_plan?: false, should_render?: false2529 is expected not to receive render(*(any args)) 0 times2530 never_had_trial?: false, show_gold_trial?: true, gold_plan?: false, free_plan?: true, should_render?: false2531 is expected not to receive render(*(any args)) 0 times2532 never_had_trial?: false, show_gold_trial?: true, gold_plan?: true, free_plan?: true, should_render?: false2533 is expected not to receive render(*(any args)) 0 times2534 never_had_trial?: false, show_gold_trial?: true, gold_plan?: true, free_plan?: false, should_render?: false2535 is expected not to receive render(*(any args)) 0 times2536 never_had_trial?: false, show_gold_trial?: false, gold_plan?: true, free_plan?: true, should_render?: false2537 is expected not to receive render(*(any args)) 0 times2538 never_had_trial?: false, show_gold_trial?: false, gold_plan?: false, free_plan?: true, should_render?: false2539 is expected not to receive render(*(any args)) 0 times2540 never_had_trial?: false, show_gold_trial?: false, gold_plan?: true, free_plan?: false, should_render?: false2541 is expected not to receive render(*(any args)) 0 times2542 never_had_trial?: false, show_gold_trial?: false, gold_plan?: false, free_plan?: false, should_render?: false2543 is expected not to receive render(*(any args)) 0 times2544 #render_account_recovery_regular_check2545 kind_of_user: :anonymous, is_gitlab_com?: false, dismissed_callout?: false, should_render?: false2546 is expected not to receive render(*(any args)) 0 times2547 kind_of_user: :anonymous, is_gitlab_com?: true, dismissed_callout?: false, should_render?: false2548 is expected not to receive render(*(any args)) 0 times2549 kind_of_user: :new_user, is_gitlab_com?: false, dismissed_callout?: false, should_render?: false2550 is expected not to receive render(*(any args)) 0 times2551 kind_of_user: :new_user, is_gitlab_com?: true, dismissed_callout?: false, should_render?: false2552 is expected not to receive render(*(any args)) 0 times2553 kind_of_user: :old_user, is_gitlab_com?: false, dismissed_callout?: false, should_render?: false2554 is expected not to receive render(*(any args)) 0 times2555 kind_of_user: :old_user, is_gitlab_com?: true, dismissed_callout?: false, should_render?: true2556 is expected to receive render("shared/check_recovery_settings") 1 time2557 kind_of_user: :old_user, is_gitlab_com?: false, dismissed_callout?: true, should_render?: false2558 is expected not to receive render(*(any args)) 0 times2559 kind_of_user: :old_user, is_gitlab_com?: true, dismissed_callout?: true, should_render?: false2560 is expected not to receive render(*(any args)) 0 times2561 .show_threat_monitoring_info?2562 when the threat monitoring info has not been dismissed2563 is expected to be truthy2564 when the threat monitoring info was dismissed2565 is expected to be falsy2566 .show_feature_flags_new_version?2567 when the feature flags new version info has not been dismissed2568 is expected to be truthy2569 when the feature flags new version has been dismissed2570 is expected to be falsy2571 .show_token_expiry_notification?2572 expiration_enforced?: true, dismissed_callout?: true, active?: true, result: false2573 is expected to equal false2574 when user is nil2575 is expected to equal false2576 expiration_enforced?: true, dismissed_callout?: true, active?: false, result: false2577 is expected to equal false2578 when user is nil2579 is expected to equal false2580 expiration_enforced?: true, dismissed_callout?: false, active?: true, result: false2581 is expected to equal false2582 when user is nil2583 is expected to equal false2584 expiration_enforced?: false, dismissed_callout?: true, active?: true, result: false2585 is expected to equal false2586 when user is nil2587 is expected to equal false2588 expiration_enforced?: true, dismissed_callout?: false, active?: false, result: false2589 is expected to equal false2590 when user is nil2591 is expected to equal false2592 expiration_enforced?: false, dismissed_callout?: false, active?: true, result: true2593 is expected to equal true2594 when user is nil2595 is expected to equal false2596 expiration_enforced?: false, dismissed_callout?: true, active?: false, result: false2597 is expected to equal false2598 when user is nil2599 is expected to equal false2600 expiration_enforced?: false, dismissed_callout?: false, active?: false, result: false2601 is expected to equal false2602 when user is nil2603 is expected to equal false2604Mutations::Issues::SetAssignees2605 behaves like a multi-assignable resource2606 #resolve2607 when the user can update the resource2608 sets the assignees2609 removes assignees not in the list2610 when passing "append" as true2611 does not remove assignees not in the list2612Gitlab::Database::LoadBalancing::Host2613 #connection2614 returns a connection from the pool2615 #disconnect!2616 disconnects the pool2617 disconnects the pool when waiting for connections takes too long2618 #release_connection2619 releases the current connection from the pool2620 #offline!2621 marks the host as offline2622 #online?2623 when the replica status is recent enough2624 returns the latest status2625 returns an offline status2626 when the replica status is outdated2627 refreshes the status2628 and replica is not up to date2629 marks the host offline2630 when the replica is not online2631 returns false when ActionView::Template::Error is raised2632 returns false when ActiveRecord::StatementInvalid is raised2633 returns false when PG::Error is raised2634 #refresh_status2635 refreshes the status2636 #check_replica_status?2637 returns true when we need to check the replica status2638 returns false when we do not need to check the replica status2639 #replica_is_up_to_date?2640 when the lag time is below the threshold2641 returns true2642 when the lag time exceeds the threshold2643 returns true if the data is recent enough2644 returns false when the data is not recent enough2645 #replication_lag_below_threshold2646 returns true when the lag time is below the threshold2647 returns false when the lag time exceeds the threshold2648 returns false when no lag time could be calculated2649 #data_is_recent_enough?2650 returns true when the data is recent enough2651 returns false when the data is not recent enough2652 returns false when no lag size could be calculated2653 #replication_lag_time2654 returns the lag time as a Float2655 returns nil when the database query returned no rows2656 #replication_lag_size2657 returns the lag size as an Integer2658 returns nil when the database query returned no rows2659 returns nil when the database connection fails2660 #primary_write_location2661 returns the write location of the primary2662 #caught_up?2663 returns true when a host has caught up2664 returns true when a host has caught up2665 returns false when a host has not caught up2666 returns false when a host has not caught up2667 returns false when the connection fails2668 #query_and_release2669 executes a SQL query2670 releases the connection after running the query2671 returns an empty Hash in the event of an error2672 #host2673 returns the hostname2674Boards::ListService2675 behaves like multiple boards list service2676 #execute2677 returns all issue boards2678 returns boards ordered by name2679 when wanting a specific board2680 returns board specified by id2681 raises exception when board is not found2682 behaves like multiple boards list service2683 returns the first issue board when multiple issue boards is disabled2684 #execute2685 returns all issue boards2686 returns boards ordered by name2687 when wanting a specific board2688 returns board specified by id2689 raises exception when board is not found2690DastSiteProfilePolicy2691 create_on_demand_dast_scan2692 when a user does not have access to the project2693 is expected to be disallowed :create_on_demand_dast_scan2694 when a user does not have access to dast_site_profiles2695 is expected to be disallowed :create_on_demand_dast_scan2696 when a user has access dast_site_profiles2697 is expected to be allowed :create_on_demand_dast_scan2698 when on demand scan feature flag is disabled2699 is expected to be disallowed :create_on_demand_dast_scan2700 when on demand scan licensed feature is not available2701 is expected to be disallowed :create_on_demand_dast_scan2702VulnerabilityNoteEntity2703 exposes vulnerability-specific elements2704 behaves like note entity2705 basic note2706 exposes correct elements2707 does not expose elements for specific notes cases2708 exposes author correctly2709 does not expose web_url for author2710 when note was edited2711 exposes last_edited_at and last_edited_by elements2712 when note is a system note2713 exposes system_note_icon_name element2714VulnerabilityFeedback::DestroyService#execute2715 when feedback_type is dismissal2716 destroys the feedback2717 when user is not authorized2718 raise error if permission is denied2719 when feedback_type is issue2720 raise error as this type of feedback can not be destroyed2721 when feedback_type is merge_request2722 raise error as this type of feedback can not be destroyed2723Releases::CreateEvidenceService2724 when pipeline with artifacts is passed2725 includes test reports in evidence if feature is licenced2726 includes test reports in evidence if feature is unlincenced2727 keeps build report artifacts if feature is licenced2728 does not keep artifacts if feature is unlicenced2729SearchHelper2730 #search_filter_input_options2731 with multiple issue assignees feature2732 allows multiple assignees in project context2733 allows multiple assignees in group context2734 allows multiple assignees in dashboard context2735 without multiple issue assignees feature2736 does not allow multiple assignees in project context2737 does not allow multiple assignees in group context2738 allows multiple assignees in dashboard context2739 #project_autocomplete2740 with a licensed user2741 does not include feature flags2742 with a licensed user2743 does include feature flags2744 #search_entries_info_template2745 when all requirements are met2746 returns a custom message2747 when not in Gitlab.com2748 behaves like returns old message2749 is expected to eq "Showing %{count} %{scope} for%{term_element}"2750 when flag restricted_snippet_scope_search is not enabled2751 behaves like returns old message2752 is expected to eq "Showing %{count} %{scope} for%{term_element}"2753 when elastic search is not enabled2754 behaves like returns old message2755 is expected to eq "Showing %{count} %{scope} for%{term_element}"2756 when no user is present2757 behaves like returns old message2758 is expected to eq "Showing %{count} %{scope} for%{term_element}"2759 when not searching for snippets2760 behaves like returns old message2761 is expected to eq "Showing %{count} %{scope} for%{term_element}"2762 #show_switch_to_basic_search?2763 when :switch_to_basic_search feature is disabled2764 is expected to eq false2765 when not currently using elasticsearch2766 is expected to eq false2767 when project scope2768 is expected to eq true2769 when commits tab2770 is expected to eq false2771 when issues tab2772 is expected to eq true2773EE::MergeRequestMetricsService2774 #merge2775 saves metrics with productivity_data2776 storing line counts2777 updates `added_lines`2778 updates `removed_lines`2779 when `store_merge_request_line_metrics` feature flag is disabled2780 does not update line counts2781Vulnerabilities::Identifier2782 associations2783 is expected to have many finding_identifiers class_name => Vulnerabilities::FindingIdentifier2784 is expected to have many findings class_name => Vulnerabilities::Finding2785 is expected to have many primary_findings class_name => Vulnerabilities::Finding2786 is expected to belong to project required:2787 validations2788 is expected to validate that :name cannot be empty/falsy2789 is expected to validate that :project cannot be empty/falsy2790 is expected to validate that :external_type cannot be empty/falsy2791 is expected to validate that :external_id cannot be empty/falsy2792 is expected to validate that :fingerprint cannot be empty/falsy2793 .with_fingerprint2794 when identifier has the corresponding fingerprint2795 selects the identifier2796 when identifier does not have the corresponding fingerprint2797 does not select the identifier2798Banzai::ReferenceParser::EpicParser2799 #nodes_visible_to_user2800 when the epics feature is enabled2801 returns the nodes the user can read for valid epic nodes2802 returns an empty array for nodes without required data-attributes2803 when the epics feature is disabled2804 returns an empty array2805 #referenced_by2806 when using an existing epics IDs2807 returns an Array of epics2808 returns an empty Array for empty list of nodes2809 when epic with given ID does not exist2810 returns an empty Array2811 #records_for_nodes2812 returns a Hash containing the epics for a list of nodes2813ElasticDeleteProjectWorker2814 deletes a project with all nested objects2815Gitlab::Ci::Parsers::Security::Sast2816 #parse!2817 when parsing valid reports2818 report_format: :sast2819 parses all identifiers and findings2820 generates expected location2821 generates expected metadata_version2822 report_format: :sast_deprecated2823 parses all identifiers and findings2824 generates expected location2825 generates expected metadata_version2826 when parsing an empty report2827 is expected to be empty2828Gitlab::Ci::Parsers::Security::ContainerScanning2829 #parse!2830 parses all identifiers and findings for unapproved vulnerabilities2831 generates expected location2832 generates expected metadata_version2833 adds report image's name to raw_metadata2834EE::NamespaceStorageLimitAlertHelper2835 #display_namespace_storage_limit_alert!2836 sets @display_namespace_storage_limit_alert to true2837 #namespace_storage_usage_link2838 when namespace is a group2839 is expected to eq "/groups/group507/-/usage_quotas#storage-quota-tab"2840 when namespace is a user2841 is expected to eq "/profile/usage_quotas#storage-quota-tab"2842 #purchase_storage_url2843 is_dot_com: false, enforcement_setting_enabled: false, feature_enabled: false, result: nil2844 is expected to eq nil2845 is_dot_com: false, enforcement_setting_enabled: false, feature_enabled: true, result: nil2846 is expected to eq nil2847 is_dot_com: false, enforcement_setting_enabled: true, feature_enabled: false, result: nil2848 is expected to eq nil2849 is_dot_com: true, enforcement_setting_enabled: false, feature_enabled: false, result: nil2850 is expected to eq nil2851 is_dot_com: false, enforcement_setting_enabled: true, feature_enabled: true, result: nil2852 is expected to eq nil2853 is_dot_com: true, enforcement_setting_enabled: true, feature_enabled: false, result: nil2854 is expected to eq nil2855 is_dot_com: true, enforcement_setting_enabled: false, feature_enabled: true, result: nil2856 is expected to eq nil2857 is_dot_com: true, enforcement_setting_enabled: true, feature_enabled: true, result: "https://customers.gitlab.com/buy_storage"2858 is expected to eq "https://customers.gitlab.com/buy_storage"2859 #namespace_storage_alert2860 when payload is not empty and no cookie is set2861 is expected to eq {:alert_level=>:info, :explanation_message=>"Explanation", :root_namespace=>#<Namespace id: nil, name..._shared_runners: false, traversal_ids: [], delayed_project_removal: false>, :usage_message=>"Usage"}2862 when there is no current_user2863 is expected to eq {}2864 when payload is empty2865 is expected to eq {}2866 when cookie is set2867 is expected to eq {}2868 when payload is empty and cookie is set2869 is expected to eq {}2870 #namespace_storage_alert_style2871 alert_level: :info, result: "info"2872 is expected to eq "info"2873 alert_level: :warning, result: "warning"2874 is expected to eq "warning"2875 alert_level: :error, result: "danger"2876 is expected to eq "danger"2877 alert_level: :alert, result: "danger"2878 is expected to eq "danger"2879 #namespace_storage_alert_icon2880 alert_level: :info, result: "information-o"2881 is expected to eq "information-o"2882 alert_level: :warning, result: "warning"2883 is expected to eq "warning"2884 alert_level: :error, result: "error"2885 is expected to eq "error"2886 alert_level: :alert, result: "error"2887 is expected to eq "error"2888NotesFinder2889 #target2890 returns an epic2891 fails if group id is missing2892 #execute2893 when using target id and type of epics2894 returns the expected notes2895 fails if group id is missing2896 when using an explicit epic target2897 returns the expected notes2898Clusters::Agents::CreateService2899 #execute2900 without premium plan2901 returns missing plan error2902 without user permissions2903 returns errors when user does not have permissions2904 with premium plan and user permissions2905 creates a new clusters_agent2906 returns success status2907 generates an error message when name is invalid2908Gitlab::Insights::Reducers::CountPerLabelReducer2909 raises an error for an unknown :issuable_type option2910 returns issuables with only the needed fields2911 avoids N + 1 queries2912UsersHelper2913 #current_user_menu_items2914 has_paid_namespace?: true, user?: true, gitlab_com?: true, user_eligible?: true2915 is expected to eq false2916 has_paid_namespace?: true, user?: true, gitlab_com?: true, user_eligible?: false2917 is expected to eq false2918 has_paid_namespace?: true, user?: true, gitlab_com?: false, user_eligible?: true2919 is expected to eq false2920 has_paid_namespace?: true, user?: true, gitlab_com?: false, user_eligible?: false2921 is expected to eq false2922 has_paid_namespace?: true, user?: false, gitlab_com?: true, user_eligible?: true2923 is expected to eq false2924 has_paid_namespace?: true, user?: false, gitlab_com?: true, user_eligible?: false2925 is expected to eq false2926 has_paid_namespace?: true, user?: false, gitlab_com?: false, user_eligible?: true2927 is expected to eq false2928 has_paid_namespace?: true, user?: false, gitlab_com?: false, user_eligible?: false2929 is expected to eq false2930 has_paid_namespace?: false, user?: true, gitlab_com?: true, user_eligible?: true2931 is expected to eq true2932 has_paid_namespace?: false, user?: true, gitlab_com?: true, user_eligible?: false2933 is expected to eq false2934 has_paid_namespace?: false, user?: true, gitlab_com?: false, user_eligible?: true2935 is expected to eq false2936 has_paid_namespace?: false, user?: true, gitlab_com?: false, user_eligible?: false2937 is expected to eq false2938 has_paid_namespace?: false, user?: false, gitlab_com?: true, user_eligible?: true2939 is expected to eq false2940 has_paid_namespace?: false, user?: false, gitlab_com?: true, user_eligible?: false2941 is expected to eq false2942 has_paid_namespace?: false, user?: false, gitlab_com?: false, user_eligible?: true2943 is expected to eq false2944 has_paid_namespace?: false, user?: false, gitlab_com?: false, user_eligible?: false2945 is expected to eq false2946 #user_badges_in_admin_section2947 when Gitlab.com? is true2948 is expected not to eq [{:text=>"Is using seat", :variant=>"light"}]2949 when user is an admin and the current_user2950 is expected to eq [{:text=>"Admin", :variant=>"success"}, {:text=>"It's you!", :variant=>nil}]2951 when Gitlab.com? is false2952 when user uses a license seat2953 is expected to eq [{:text=>"Is using seat", :variant=>"light"}]2954 when user is an admin and the current_user2955 is expected to eq [{:text=>"Admin", :variant=>"success"}, {:text=>"Is using seat", :variant=>"light"}, {:text=>"It's you!", :variant=>nil}]2956 when user does not use a license seat2957 is expected to eq []2958MergeRequestSidebarBasicEntity2959 #current_user2960 when the gitlab_employee_badge flag is off2961 does not expose the is_gitlab_employee field for the current user2962 when the gitlab_employee_badge flag is on but we are not on gitlab.com2963 does not expose the is_gitlab_employee field for the current user2964 when the gitlab_employee_badge flag is on and we are on gitlab.com2965 exposes the is_gitlab_employee field for the current user2966Container-Scanning.gitlab-ci.yml2967 the created pipeline2968 when project has no license2969 includes no jobs2970 when project has Ultimate license2971 by default2972 includes job2973 when CONTAINER_SCANNING_DISABLED=12974 includes no jobs2975Gitlab::Insights::Reducers::LabelCountPerPeriodReducer2976 returns issuables with only the needed fields2977 avoids N + 1 queries2978Elastic::MetricsUpdateService2979 #execute2980 sets gauges2981Commit2982 behaves like a mentionable with EE-specific mentions2983 extracts references from its reference property2984 creates cross-reference notes2985ApproverGroup2986 is expected to be valid2987 .filtered_approver_groups2988 is expected to contain exactly #<ApproverGroup id: 6, target_id: 892, target_type: "Project", group_id: 2152, created_at: "2020-08-31 02:53:07", updated_at: "2020-08-31 02:53:07">2989 when user has access to private group2990 is expected to contain exactly #<ApproverGroup id: 8, target_id: 893, target_type: "Project", group_id: 2155, created_at: "2020-08-31 02:53:08", updated_at: "2020-08-31 02:53:08"> and #<ApproverGroup id: 9, target_id: 893, target_type: "Project", group_id: 2154, created_at: "2020-08-31 02:53:08", updated_at: "2020-08-31 02:53:08">2991admin/dashboard/index.html.haml2992 when license is present2993 includes notices above license breakdown2994 includes license overview2995 includes license breakdown2996 when license is not present2997 does not show content2998EpicIssues::UpdateService2999 #execute3000 when moving issues between different epics3001 returns an error3002 does not change the relative_position values3003 moving issue to the first position3004 when some positions are close to each other3005 orders issues correctly3006 when there is enough place between positions3007 orders issues correctly3008 moving issue to the third position3009 when some positions are close to each other3010 orders issues correctly3011 when all positions are same3012 orders affected 2 issues correctly3013 when there is enough place between positions3014 orders issues correctly3015 moving issues to the last position3016 when index of the last possition is correct3017 orders issues correctly3018Banzai::Filter::LabelReferenceFilter3019 with scoped labels enabled3020 with a scoped label3021 renders scoped label3022 renders HTML tooltips3023 with a common label3024 renders common label3025 renders non-HTML tooltips3026 with scoped labels disabled3027 renders scoped label as a common label3028DependencyEntity3029 #as_json3030 when all required features available3031 with developer3032 is expected to eq {:licenses=>[{:name=>"MIT", :url=>"http://opensource.org/licenses/mit-license"}], :location=>{:blob_p...lnerabilities=>[{:name=>"DDoS", :severity=>"high"}, {:name=>"XSS vulnerability", :severity=>"low"}]}3033 with reporter3034 includes license info and not vulnerabilities3035 when all required features are unavailable3036 does not include licenses and vulnerabilities3037Gitlab::Prometheus::Queries::AdditionalMetricsDeploymentQuery3038 queries using specific time3039 with custom metrics3040 without common metrics3041 return group data for custom metric3042 with common metrics3043 return group data for custom metric3044EE::Gitlab::Checks::PushRules::FileSizeCheck3045 #validate!3046 returns an error if file exceeds the maximum file size3047 behaves like check ignored when push rule unlicensed3048 is expected to be truthy3049Vulnerabilities::ResponseEntity3050 #as_json3051 contains required fields3052Mutations::Issues::SetWeight3053 #resolve3054 raises an error if the resource is not accessible to the user3055 when the user can update the issue3056 returns the issue with correct weight3057Lfs::UnlockFileService3058 #execute3059 when authorized3060 File Locking integraction3061 when File Locking is available3062 deletes the Path Lock3063 when File Locking is not available3064 does not delete the Path Lock3065clusters/clusters/show3066 when the cluster details page is opened3067 with project level cluster3068 behaves like cluster health section3069 displays the Cluster health section3070 with group level cluster3071 behaves like cluster health section3072 displays the Cluster health section3073Clusters::DeploymentEntity3074 exposes id3075 exposes iid3076 exposes deployable name3077Ci::ChangeVariablesService3078 when creating a variable3079 calls AuditVariableChangeService with create3080 when updating a variable3081 when update succeeds3082 calls AuditVariableChangeService with update3083 when update fails3084 does not call AuditVariableChangeService3085 when destroying a variable3086 calls AuditVariableChangeService with destroy3087 when making multiple changes3088 calls AuditVariableChangeService with create3089 calls AuditVariableChangeService with update3090 calls AuditVariableChangeService with destroy3091ElasticsearchIndexedNamespace3092 scope3093 .namespace_in3094 returns records of the ids3095 behaves like an elasticsearch indexed container3096 validations3097 validates uniqueness of main attribute3098 callbacks3099 on save3100 triggers index_project3101 performs the expected action3102 on destroy3103 triggers delete_from_index3104 performs the expected action3105 with plans3106 .index_first_n_namespaces_of_plan3107 creates records, scoped by plan and ordered by namespace id3108 .unindex_last_n_namespaces_of_plan3109 creates records, scoped by plan and ordered by namespace id3110Projects::RestoreService3111 restoring project3112 marks project as unarchived and not marked for deletion3113 restoring project already in process of removal3114 does not allow to restore3115 audit events3116 saves audit event3117Autocomplete::UsersFinder3118 returns only users with that SAML provider when saml_provider_id is given3119 returns the user that name matches the search3120Gitlab::SearchResults3121 #projects3122 avoid N+1 queries3123EE::Gitlab::Ci::Pipeline::Quota::JobActivity3124 #enabled?3125 when limit is enabled in plan3126 is enabled3127 when limit is not enabled3128 is not enabled3129 when limit does not exist3130 is not enabled3131 #exceeded?3132 when pipelines created recently3133 and pipelines are running3134 when count of jobs in alive pipelines is below the limit3135 is not exceeded3136 when count of jobs in alive pipelines is above the limit3137 is exceeded3138 and pipelines are completed3139 is not exceeded3140 when pipelines are older than 24 hours3141 is not exceeded3142 #message3143 when limit is exceeded3144 returns info about pipeline activity limit exceeded3145Gitlab::Auth::GroupSaml::FailureHandler3146 calls Groups::OmniauthCallbacksController#failure for GroupSaml3147 falls back to parent on_failure handler3148Types::IssueType3149 is expected to have graphql field :epic3150 is expected to have graphql field :iteration3151 is expected to have graphql field :weight3152 is expected to have graphql field :health_status3153 is expected to have graphql field :blocked3154 N+1 queries3155 group issues3156 behaves like avoids N+1 queries on blocked3157 is expected not to exceed query limit 103158 project issues3159 behaves like avoids N+1 queries on blocked3160 is expected not to exceed query limit 143161registrations/welcome3162 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: false, shows_progress_bar: false, label_key: nil, is_continue_btn: false3163 is expected to have visible button "Get started!" that is not disabled3164 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3165 is expected not to have visible css "#progress-bar"3166 in_subscription_flow: true, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: false, shows_progress_bar: true, label_key: :subscription, is_continue_btn: true3167 is expected to have visible button "Continue" that is not disabled3168 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using this GitLab subscription?"3169 is expected to have visible css "#progress-bar"3170 in_subscription_flow: false, in_trial_flow: true, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: false, shows_progress_bar: false, label_key: :trial, is_continue_btn: true3171 is expected to have visible button "Continue" that is not disabled3172 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using this GitLab trial?"3173 is expected not to have visible css "#progress-bar"3174 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: true, in_oauth_flow: false, onboarding_issues_experiment_enabled: false, shows_progress_bar: false, label_key: nil, is_continue_btn: false3175 is expected to have visible button "Get started!" that is not disabled3176 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3177 is expected not to have visible css "#progress-bar"3178 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: true, onboarding_issues_experiment_enabled: false, shows_progress_bar: false, label_key: nil, is_continue_btn: false3179 is expected to have visible button "Get started!" that is not disabled3180 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3181 is expected not to have visible css "#progress-bar"3182 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: true, shows_progress_bar: true, label_key: nil, is_continue_btn: true3183 is expected to have visible button "Continue" that is not disabled3184 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3185 is expected to have visible css "#progress-bar"3186 in_subscription_flow: true, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: true, shows_progress_bar: true, label_key: :subscription, is_continue_btn: true3187 is expected to have visible button "Continue" that is not disabled3188 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using this GitLab subscription?"3189 is expected to have visible css "#progress-bar"3190 in_subscription_flow: false, in_trial_flow: true, in_invitation_flow: false, in_oauth_flow: false, onboarding_issues_experiment_enabled: true, shows_progress_bar: false, label_key: :trial, is_continue_btn: true3191 is expected to have visible button "Continue" that is not disabled3192 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using this GitLab trial?"3193 is expected not to have visible css "#progress-bar"3194 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: true, in_oauth_flow: false, onboarding_issues_experiment_enabled: true, shows_progress_bar: false, label_key: nil, is_continue_btn: false3195 is expected to have visible button "Get started!" that is not disabled3196 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3197 is expected not to have visible css "#progress-bar"3198 in_subscription_flow: false, in_trial_flow: false, in_invitation_flow: false, in_oauth_flow: true, onboarding_issues_experiment_enabled: true, shows_progress_bar: false, label_key: nil, is_continue_btn: false3199 is expected to have visible button "Get started!" that is not disabled3200 is expected to have visible css "label[for=\"user_setup_for_company\"]" with text "Who will be using GitLab?"3201 is expected not to have visible css "#progress-bar"3202API::Helpers::IssuesHelpers3203 find_issues3204 with epics3205 returns results3206 avoids N+1 queries3207EE::API::Helpers3208 #current_user3209 handles sticking when a user could be found3210 does not handle sticking if no user could be found3211 returns the user if one could be found3212 #authenticate_by_gitlab_geo_node_token!3213 rescues from ::Gitlab::Geo::InvalidDecryptionKeyError3214 rescues from ::Gitlab::Geo::InvalidSignatureTimeError3215 returns unauthorized response when scope is not valid3216 #authorize_change_param3217 does not throw exception if param is authorized3218 unauthorized param3219WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #<Exception: Forbidden>. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/ee/spec/lib/ee/api/helpers_spec.rb:118:in `block (4 levels) in <top (required)>'.3220 throws exception if unauthorized param is present3221 does not throw exception is unauthorized param is not present3222IdentityProviderPolicy3223 #rules3224 when user is group managed3225 is expected not to be allowed :link3226 is expected not to be allowed :unlink3227 owner is not yet group managed3228 no other owners exist3229 is expected not to be allowed :unlink3230 another group owner exists3231 without sso linked3232 is expected not to be allowed :unlink3233 with sso linked3234 is expected to be allowed :unlink3235 managed by the group3236 is expected to be allowed :unlink3237projects/dast_site_profiles/new3238 renders Vue app root3239 passes project's full path3240 passes DAST profiles library URL3241ResourceEvents::MergeIntoNotesService3242 #execute3243 squashes events with same time and author into single note but scoped labels are separated3244 scoped labels3245 when all labels are automatically removed3246 adds "automatically removed" message3247 when any of the labels is manually removed3248 adds "removed" message3249 with weight events3250 includes the expected notes3251Milestones::BurnupChartService3252 when license is not available3253 returns an error message3254 when license is available3255 returns an error when the number of events exceeds the limit3256 aggregates events before the start date to the start date3257 updates counts and weight when the milestone is added or removed3258 updates the completed counts when issue state is changed3259 updates the weight totals when issue weight is changed3260 when milestone does not have a start and due date3261 returns an error message3262Mutations::Security::CiConfiguration::ConfigureSast3263 is expected to require graphql authorizations :push_code3264 #resolve3265 raises an error if the resource is not accessible to the user3266 when user does not have enough permissions3267 raises an error3268 when user is a maintainer of a different project3269 raises an error3270 when the user can create a merge request3271 when service successfully generates a path to create a new merge request3272 returns a success path3273 when service can not generate any path to create a new merge request3274 returns an array of errors3275projects/dast_profiles/index3276 renders Vue app root3277 passes new dast site profile path3278 passes project's full path3279LabelPresenter3280 #scoped_label?3281 with scoped_labels enabled3282 with project label with context subject set3283 is expected to be truthy3284 with project label without context subject3285 is expected to be truthy3286 with scoped_labels disabled3287 with project label with context subject set3288 is expected to be falsey3289WeightNote3290 behaves like a synthetic note3291 behaves like a system note3292 has the correct attributes3293 #discussion_id3294 returns the expected discussion id3295Branches::DeleteService3296 #execute3297 when there is a push rule matching the branch name3298 behaves like a deleted branch3299 removes the branch3300RepositoryImportWorker3301 updates the error on custom project template Import/Export3302 when project is a mirror3303 adds mirror in front of the mirror scheduler queue3304 sidekiq options3305 disables retry3306 sets default status expiration3307NamespacePolicy3308 auditor3309 owner3310 is expected to be allowed :create_projects, :admin_namespace, and :read_namespace3311 non-owner3312 is expected to be disallowed :create_projects, :admin_namespace, and :read_namespace3313 create_jira_connect_subscription3314 admin3315 when admin mode enabled3316 is expected to be allowed :create_jira_connect_subscription3317 when admin mode disabled3318 is expected to be disallowed :create_jira_connect_subscription3319 owner3320 is expected to be allowed :create_jira_connect_subscription3321 other user3322 is expected to be disallowed :create_jira_connect_subscription3323 :over_storage_limit3324 when the namespace has exceeded its storage limit3325 is expected to be disallowed :create_projects3326 when the namespace has not exceeded its storage limit3327 is expected to be allowed :create_projects3328 behaves like update namespace limit policy3329 update_subscription_limit3330 role: :user, is_com: true, allowed: false3331 when admin mode enabled3332 is expected to be disallowed :update_subscription_limit3333 when admin mode disabled3334 is expected to be disallowed :update_subscription_limit3335 role: :owner, is_com: true, allowed: false3336 when admin mode enabled3337 is expected to be disallowed :update_subscription_limit3338 when admin mode disabled3339 is expected to be disallowed :update_subscription_limit3340 role: :admin, is_com: true, allowed: true3341 when admin mode enabled3342 is expected to be allowed :update_subscription_limit3343 when admin mode disabled3344 is expected to be disallowed :update_subscription_limit3345 role: :user, is_com: false, allowed: false3346 when admin mode enabled3347 is expected to be disallowed :update_subscription_limit3348 when admin mode disabled3349 is expected to be disallowed :update_subscription_limit3350 role: :owner, is_com: false, allowed: false3351 when admin mode enabled3352 is expected to be disallowed :update_subscription_limit3353 when admin mode disabled3354 is expected to be disallowed :update_subscription_limit3355 role: :admin, is_com: false, allowed: false3356 when admin mode enabled3357 is expected to be disallowed :update_subscription_limit3358 when admin mode disabled3359 is expected to be disallowed :update_subscription_limit3360EE::Audit::ProjectFeatureChangesAuditor3361 #execute3362 creates an event when any project feature level changes3363ApprovalProjectRulePolicy3364 when user can admin project3365 allows updating approval rule3366 when user cannot admin project3367 disallow updating approval rule3368Gitlab::Ci::Config::Entry::Need3369 with Bridge config3370 when upstream is specified3371 #valid?3372 is expected to be valid3373 #value3374 returns job needs configuration3375 when need is empty3376 #valid?3377 is expected not to be valid3378 #errors3379 is returns an error about an empty config3380 with CrossDependency config3381 #artifacts3382 artifacts: {:artifacts=>true}, value: true, validity: true3383 #valid?3384 is expected to eq true3385 #value3386 returns job needs configuration3387 #type3388 is expected to eq :cross_dependency3389 artifacts: {:artifacts=>false}, value: false, validity: true3390 #valid?3391 is expected to eq true3392 #value3393 returns job needs configuration3394 #type3395 is expected to eq :cross_dependency3396 artifacts: {:artifacts=>nil}, value: true, validity: true3397 #valid?3398 is expected to eq true3399 #value3400 returns job needs configuration3401 #type3402 is expected to eq :cross_dependency3403 artifacts: {}, value: true, validity: true3404 #valid?3405 is expected to eq true3406 #value3407 returns job needs configuration3408 #type3409 is expected to eq :cross_dependency3410 artifacts: {:artifacts=>1}, value: 1, validity: false3411 #valid?3412 is expected to eq false3413 #value3414 returns job needs configuration3415 #type3416 is expected to eq :cross_dependency3417 artifacts: {:artifacts=>"str"}, value: "str", validity: false3418 #valid?3419 is expected to eq false3420 #value3421 returns job needs configuration3422 #type3423 is expected to eq :cross_dependency3424 behaves like required string attribute3425 #project3426 value: {}, validity: false, error: "can't be blank"3427 #valid?3428 is expected to eq false3429 #value3430 returns needs configuration3431 #type3432 is expected to eq :cross_dependency3433 #errors3434 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223435 is expected to include "cross dependency project can't be blank"3436 value: {:project=>nil}, validity: false, error: "can't be blank"3437 #valid?3438 is expected to eq false3439 #value3440 returns needs configuration3441 #type3442 is expected to eq :cross_dependency3443 #errors3444 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223445 is expected to include "cross dependency project can't be blank"3446 value: {:project=>"something"}, validity: true, error: ""3447 #valid?3448 is expected to eq true3449 #value3450 returns needs configuration3451 #type3452 is expected to eq :cross_dependency3453 #errors3454 is expected to be empty3455 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1233456 value: {:project=>:symbol}, validity: false, error: "should be a string"3457 #valid?3458 is expected to eq false3459 #value3460 returns needs configuration3461 #type3462 is expected to eq :cross_dependency3463 #errors3464 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223465 is expected to include "cross dependency project should be a string"3466 value: {:project=>1}, validity: false, error: "should be a string"3467 #valid?3468 is expected to eq false3469 #value3470 returns needs configuration3471 #type3472 is expected to eq :cross_dependency3473 #errors3474 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223475 is expected to include "cross dependency project should be a string"3476 behaves like required string attribute3477 #job3478 value: {}, validity: false, error: "can't be blank"3479 #valid?3480 is expected to eq false3481 #value3482 returns needs configuration3483 #type3484 is expected to eq :cross_dependency3485 #errors3486 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223487 is expected to include "cross dependency job can't be blank"3488 value: {:job=>nil}, validity: false, error: "can't be blank"3489 #valid?3490 is expected to eq false3491 #value3492 returns needs configuration3493 #type3494 is expected to eq :cross_dependency3495 #errors3496 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223497 is expected to include "cross dependency job can't be blank"3498 value: {:job=>"something"}, validity: true, error: ""3499 #valid?3500 is expected to eq true3501 #value3502 returns needs configuration3503 #type3504 is expected to eq :cross_dependency3505 #errors3506 is expected to be empty3507 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1233508 value: {:job=>:symbol}, validity: false, error: "should be a string"3509 #valid?3510 is expected to eq false3511 #value3512 returns needs configuration3513 #type3514 is expected to eq :cross_dependency3515 #errors3516 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223517 is expected to include "cross dependency job should be a string"3518 value: {:job=>1}, validity: false, error: "should be a string"3519 #valid?3520 is expected to eq false3521 #value3522 returns needs configuration3523 #type3524 is expected to eq :cross_dependency3525 #errors3526 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223527 is expected to include "cross dependency job should be a string"3528 behaves like required string attribute3529 #ref3530 value: {}, validity: false, error: "can't be blank"3531 #valid?3532 is expected to eq false3533 #value3534 returns needs configuration3535 #type3536 is expected to eq :cross_dependency3537 #errors3538 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223539 is expected to include "cross dependency ref can't be blank"3540 value: {:ref=>nil}, validity: false, error: "can't be blank"3541 #valid?3542 is expected to eq false3543 #value3544 returns needs configuration3545 #type3546 is expected to eq :cross_dependency3547 #errors3548 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223549 is expected to include "cross dependency ref can't be blank"3550 value: {:ref=>"something"}, validity: true, error: ""3551 #valid?3552 is expected to eq true3553 #value3554 returns needs configuration3555 #type3556 is expected to eq :cross_dependency3557 #errors3558 is expected to be empty3559 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1233560 value: {:ref=>:symbol}, validity: false, error: "should be a string"3561 #valid?3562 is expected to eq false3563 #value3564 returns needs configuration3565 #type3566 is expected to eq :cross_dependency3567 #errors3568 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223569 is expected to include "cross dependency ref should be a string"3570 value: {:ref=>1}, validity: false, error: "should be a string"3571 #valid?3572 is expected to eq false3573 #value3574 returns needs configuration3575 #type3576 is expected to eq :cross_dependency3577 #errors3578 example at ./ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb:1223579 is expected to include "cross dependency ref should be a string"3580Elastic::ProjectsSearch3581 #maintain_elasticsearch_create3582 calls track!3583 #maintain_elasticsearch_destroy3584 calls delete worker3585Users::BlockService3586 #execute3587 audit events3588 when licensed3589 when user block operation succeeds3590 logs an audit event3591 logs the audit event info3592 when user block operation fails3593 does not log any audit event3594 when not licensed3595 does not log any audit event3596CiCd::GithubSetupService3597 #execute3598 creates the webhook in the background3599 sets up GithubService project integration3600PersonalAccessTokens::RevokeInvalidTokens3601 #execute3602 with a valid user and expiration date3603 with user tokens that will be revoked3604 behaves like revokes token3605 calls mailer to send an email notifying the user3606 revokes invalid user's tokens3607 user optout for notifications3608 behaves like user does not receive revoke notification email3609 does not send any notification to user3610 with no user3611 doesn't revoke user's tokens3612 behaves like user does not receive revoke notification email3613 does not send any notification to user3614 with no expiration date3615 doesn't revoke user's tokens3616 behaves like user does not receive revoke notification email3617 does not send any notification to user3618 when the feature flag for personal access token policy is disabled3619 doesn't revoke user's tokens3620 behaves like user does not receive revoke notification email3621 does not send any notification to user3622Security::CiConfiguration::SastParserService3623 #configuration3624 parses the configuration for SAST3625 while populating current values of the entities3626 when .gitlab-ci.yml is present3627 populates the current values from the file3628 when .gitlab-ci.yml is absent3629 populates the current values with the default values3630AllowedEmailDomain3631 relations3632 is expected to belong to group required:3633 .domain_names3634 returns the array of domain names3635 validations3636 is expected to validate that :domain cannot be empty/falsy3637 is expected to validate that :group_id cannot be empty/falsy3638 #valid domain3639 valid domain3640 succeeds3641 invalid domain3642 fails3643 domain from excluded list3644 fails3645 #allow_root_group_only3646 top-level group3647 succeeds3648 subgroup3649 fails3650 #email_matches_domain?3651 with matching domain3652 returns true3653 with not matching domain3654 returns false3655 #email_domain3656 returns formatted domain3657ProjectWiki3658 behaves like EE wiki model3659 uses Elasticsearch3660 #kerberos_url_to_repo3661 returns valid kerberos url for this repo3662Vulnerabilities::Statistics::ScheduleWorker3663 #perform3664 schedules the AdjustmentWorker with project_ids3665Gitlab::InstrumentationHelper3666 .add_instrumentation_data3667 when Elasticsearch calls are made3668 adds Elasticsearch data3669EpicsHelper3670 #epic_new_app_data3671 returns the correct data for a new epic3672 #epic_endpoint_query_params3673 includes Epic specific options in JSON format3674 includes data provided in param3675 #epic_state_dropdown_link3676 returns the active link when selected state is same as the link3677 returns the non-active link when selected state is different from the link3678 #epic_state_title3679 returns "Open" when the state is opened3680 returns humanized string when the state is other than opened3681 #epic_timeframe3682 when both dates are from the same year3683 returns start date with year omitted and end date with year3684 when both dates are from different years3685 returns start date with year omitted and end date with year3686 when only start date is present3687 returns start date with year3688 when only end date is present3689 returns end date with year3690BroadcastMessage3691 .current3692 without Geo3693 caches the output of the query for two weeks3694 with Geo3695 on the primary3696 caches the output of the query for two weeks3697 on a secondary3698 caches the output for a short time3699AuditLogFinder3700 #execute3701 filtering by level3702 when project level3703 finds all project events3704 when group level3705 when audit_log_group_level feature enabled3706 finds all group and project events3707 when audit_log_group_level feature disabled3708 finds all group events3709 when instance level3710 finds all instance level events3711 when invalid level3712 raises exception3713 filtering by entity_id3714 no entity_type provided3715 behaves like no filtering3716 finds all the events3717 invalid entity_id3718 ignores entity_id and returns all events for given entity_type3719 User Event3720 behaves like finds the right event3721 finds the right event3722 Project Event3723 behaves like finds the right event3724 finds the right event3725 Group Event3726 behaves like finds the right event3727 finds the right event3728 filtering by entity_type3729 User Event3730 finds the right user event3731 Project Event3732 finds the right project event3733 Group Event3734 finds the right group event3735 invalid entity types3736 blank entity_type3737 behaves like no filtering3738 finds all the events3739 invalid entity_type3740 behaves like no filtering3741 finds all the events3742 filtering by author_id3743 no author_id provided3744 behaves like no filtering3745 finds all the events3746 invalid author_id3747 ignores author_id and returns all events irrespective of entity_type3748 Group Event3749 behaves like finds the right event3750 finds the right event3751 Project Event3752 behaves like finds the right event3753 finds the right event3754 filtering by created_at3755 through created_after3756 returns events created on or after the given date3757 through created_before3758 returns events created on or before the given date3759 through created_after and created_before3760 returns events created between the given dates3761 #find_by!3762 is expected to eq #<AuditEvent id: 67, author_id: 1854, entity_id: 1855, entity_type: "User", details: {:change=>"email..._name: "John Doe2051", entity_path: "user1917", target_details: "John Doe2052", target_type: "User">3763 non-existent id provided3764 raises exception3765Gitlab::GroupPlansPreloader3766 #preload3767 only executes three SQL queries to preload the data3768 associates the correct plans with the correct groups3769 does not execute any queries for preloaded plans3770SyncSeatLinkWorker3771 #perform3772 when current, paid license is active3773 executes the SyncSeatLinkRequestWorker with expected params3774 when the timezone makes date one day in advance3775 executes the SyncSeatLinkRequestWorker with expected params3776 when the timezone makes date one day before than UTC3777 executes the SyncSeatLinkRequestWorker with expected params3778 when license is missing3779 does not execute the SyncSeatLinkRequestWorker3780 when using a trial license3781 does not execute the SyncSeatLinkRequestWorker3782 when the license has no expiration date3783 does not execute the SyncSeatLinkRequestWorker3784 when using an expired license3785 the license expired over 15 days ago3786 does not execute the SyncSeatLinkRequestWorker3787 the license expired less than or equal to 15 days ago3788 executes the SyncSeatLinkRequestWorker3789 when seat link has been disabled3790 does not execute the SyncSeatLinkRequestWorker3791FeatureFlagSummaryEntity3792 has summary information3793GitlabSlackApplicationService3794 #chat_responder3795 returns the chat responder to use3796Gitlab::Auth::GroupSaml::GroupLookup3797 looks up group by path3798 exposes saml_provider3799 on request path3800 can detect group_path from rack.input body params3801 can detect group_path from query params3802 on callback path3803 can extract group_path from PATH_INFO3804 does not allow params to take precedence3805 on metadata path3806 #token_discoverable?3807 returns false when missing the discovery token3808 returns false for incorrect discovery token3809 returns true when discovery token matches3810AuditEventEntity3811 .as_json3812 includes audit event attributes3813 @presenter3814 is only set once3815BurnupChartService3816 #execute3817 returns the expected events3818 excludes issues which should not be visible to the user3819 when burnup charts are not available3820 returns an empty array3821Ci::ExternalPullRequests::ProcessGithubEventService3822 #execute3823 when project is not a mirror3824 does nothing3825 when project is a mirror3826 when the pull request record does not exist3827 when the pull request webhook occurs after mirror update3828 creates a pipeline and the external pull request3829 when the pull request webhook occurs before mirror update3830 only saves pull request info3831 when the pull request record already exists3832 when pull request webhook action is "synchronize"3833 behaves like updates pull request3834 updates the pull request without creating any pipeline3835 when pull request webhook action is "closed"3836 behaves like updates pull request3837 updates the pull request without creating any pipeline3838 when pull request webhook action is "reopened"3839 behaves like updates pull request3840 updates the pull request without creating any pipeline3841 when pull request webhook action is unsupported3842 returns nil3843 when pull request webhook any missing params3844 returns a pull request with errors3845 without license3846 does nothing3847EE::AuditEvents::CustomAuditEventService3848 #security_event3849 creates an event and logs to a file with the provided details3850DependencyProxy::PullManifestService3851 remote request is successful3852 is expected to eq :success3853 is expected to eq "{\"foo\":\"bar\"}"3854 remote request is not found3855 is expected to eq :error3856 is expected to eq 4043857 is expected to eq "Not found"3858 net timeout exception3859 is expected to eq :error3860 is expected to eq 5993861 is expected to eq "execution expired"3862ImportSoftwareLicensesWorker3863 #perform3864 when the licenses.json endpoint is healthy3865 is expected to eql "Apache-1.0"3866 is expected to eq 33867 is expected to contain exactly "Apache-1.0", "MIT", and "BSD-4-Clause"3868 is expected to contain exactly "Apache License 1.0", "MIT License", and "BSD 4-Clause \"Original\" or \"Old\" License"3869 when run multiple times3870 does not create duplicated software licenses3871 when a license has an invalid SPDX identifier3872 is expected to eql "Apache-1.0"3873 is expected to contain exactly "Apache-1.0", "MIT", and "BSD-4-Clause"3874 when a license is deprecated3875 is expected to eql "GPL-1.0-only"3876admin/licenses/show.html.haml3877 when trial license is present3878 shows content as expected3879 when non trial license is present3880 shows content as expected3881 when license is not present3882 does not show content3883 when licenses are present3884 shows content as expected3885 when licenses are empty3886 does not show content3887 when licenses are not defined3888 does not show content3889admin/groups/_form3890 when sub group is used3891 does not render shared_runners_minutes_setting3892 when root group is used3893 does not render shared_runners_minutes_setting3894Notes::DestroyService3895 #execute3896 refresh analytics comment data3897 invokes forced Analytics::RefreshCommentsData3898 publish to status page3899 triggers status page publish3900Keys::CreateService3901 creates3902Mutations::Boards::Update3903 is expected to require graphql authorizations :admin_board3904 #resolve3905 when the user cannot admin the board3906 raises an error3907 when user can update board3908 updates issue with correct values3909Emails::DestroyService3910 #execute3911 registers a security event3912RequirementsManagement::UpdateRequirementService3913 #execute3914 when user can update requirements3915 updates the requirement with only permitted params3916 when user is not allowed to update requirements3917 raises an exception3918GroupWikiRepository3919 associations3920 is expected to belong to shard required:3921 is expected to belong to group required:3922 validations3923 is expected to validate that :shard cannot be empty/falsy3924 is expected to validate that :group cannot be empty/falsy3925 is expected to validate that :disk_path cannot be empty/falsy3926 uniqueness3927 is expected to validate that :group is case-sensitively unique3928 is expected to validate that :disk_path is case-sensitively unique3929Member3930 #notification_service3931 returns a NullNotificationService instance for LDAP users3932 #is_using_seat3933 when hosted on GL.com3934 calls users check for using the gitlab_com seat method3935 when not hosted on GL.com3936 calls users check for using the License seat method3937Gitlab::Vulnerabilities::StandardVulnerability3938 inherits from Gitlab::Vulnerabilities::BaseVulnerability3939 #severity3940 when severity is present3941 returns severity3942 when severity is not set3943 returns nil3944 #confidence3945 when confidence is present3946 returns confidence3947 when confidence is not set3948 returns nil3949 #solution3950 when solution is present3951 returns solution3952 when solution is not set3953 returns nil3954 #identifiers3955 when identifiers is present3956 returns identifiers3957 when identifiers is not set3958 returns nil3959 #links3960 when links is present3961 returns links3962 when links is not set3963 returns nil3964 #title3965 when title is present3966 returns title3967 when title is not set3968 fallbacks to name3969 when title and name are not set3970 returns nil3971 #description3972 when description is present3973 returns description3974 when description is not set3975 fallbacks to title3976 when description and title are not set3977 fallbacks to name3978 when title, name and description are not set3979 returns nil3980 #file3981 when file is present3982 returns file3983 when file is not set3984 fallbacks to location3985 when file and location are not set3986 returns nil3987 #line3988 when line is present3989 returns line3990 when line is not set3991 fallbacks to location3992 when line and location are not set3993 returns nil3994 #location_text3995 when line is nil3996 returns a string with file3997 when line is present3998 returns a string with file and line3999 #location_link4000 when blob_path is nil4001 returns file path4002 when line is present4003 returns a string with file and line4004 #blob_path4005 when blob_path is in top level data4006 returns blob_path from top level4007 when blob_path is not in top level data but is in location data4008 returns blob_path from location data4009 when blob_path is not present4010 returns nil4011Gitlab::ExpiringSubscriptionMessage4012 message4013 subscribable installed4014 subscribable should not notify admins4015 returns nil4016 subscribable should notify admins4017 admin signed in4018 subscribable expired4019 when it blocks changes4020 when it is currently blocking changes4021 has a nice subject4022 no namespace4023 has an expiration blocking message4024 with namespace4025 has an expiration blocking message4026 is auto_renew4027 has a nice subject4028 has an expiration blocking message4029 when it is not currently blocking changes4030 has a nice subject4031 has an expiration blocking message4032 subscribable is expiring soon4033 has a nice subject4034 without namespace4035 has an expiration blocking message4036 with namespace4037 has gold plan specific messaging4038 has silver plan specific messaging4039 has bronze plan specific messaging4040 is auto_renew nil4041 returns nil4042 is auto_renew4043 returns nil4044 subscribable expired a long time ago4045 and is past the cutoff date4046 has a nice subject4047 and not past the cutoff date4048 has a nice subject4049 no subscribable installed4050 is expected to be blank4051Projects::AlertManagementHelper4052 #alert_management_data4053 when available4054 is expected to include {"opsgenie_mvc_available" => "true", "opsgenie_mvc_enabled" => "false", "opsgenie_mvc_target_url" => "https://appname.app.opsgenie.com/alert/list"}4055 when not available4056 is expected not to include ["opsgenie_mvc_available", "opsgenie_mvc_enabled", "opsgenie_mvc_target_url"]4057Gitlab::StatusPage::Storage4058 MAX_KEYS_PER_PAGE times MAX_PAGES establishes upload limit4059 .details_path4060 is expected to eq "data/incident/123.json"4061 .details_url4062 when issue is not published4063 is expected to be nil4064 with a published incident4065 without a status page setting4066 is expected to be nil4067 when status page setting is disabled4068 is expected to be nil4069 when status page setting is enabled4070 is expected to eq "https://status.gitlab.com/#/data%2Fincident%2F1.json"4071 when status page setting does not include a url4072 is expected to be nil4073 .list_path4074 is expected to eq "data/list.json"4075 .upload_path4076 is expected to eq "data/incident/2/50b7a196557cf72a98e86a7ab4b1ac3b/screenshot.png"4077 .uploads_path4078 is expected to eq "data/incident/2/"4079GithubService::StatusNotifier4080 #notify4081 uses GitHub API to update status4082 passes optional params4083 uses access token4084 with blank api_endpoint4085 defaults to using GitHub.com API4086 with custom api_endpoint4087 uses provided API for requests4088Feature4089 .enable4090 when running on a Geo primary node4091 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes4092 creates a Geo::CacheInvalidationEvent4093 .disable4094 when running on a Geo primary node4095 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes4096 creates a Geo::CacheInvalidationEvent4097 .enable_group4098 when running on a Geo primary node4099 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes4100 creates a Geo::CacheInvalidationEvent4101 .disable_group4102 when running on a Geo primary node4103 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes4104 creates a Geo::CacheInvalidationEvent4105StatusPage::PublishDetailsService4106 #execute4107 when json upload succeeds4108 publishes details as JSON4109 when upload fails due to exception4110 propagates the exception4111 when limits exceeded4112 returns limit exceeded error4113 when status page setting is not enabled4114 returns feature not available error4115 when serialized content is missing id4116 returns an error4117 publishing attachments4118 when feature flag disabled4119 does not publish attachments and returns success4120 when successful4121 sends attachments to storage and returns success4122 when error returned from PublishAttachmentsService4123 returns an error4124Mutations::Boards::Lists::UpdateLimitMetrics4125 #ready?4126 raises an error if required arguments are missing4127 #resolve4128 with admin rights4129 updates the list as expected4130 without admin rights4131 fails4132Gitlab::Ci::Config::Required::Processor4133 when feature is available4134 when template is set4135 when template can not be found4136 raises an error4137 when template can be found4138 merges the template content with the config4139 when template is not set4140 returns the unmodified config4141 when template is empty string4142 returns the unmodified config4143 when feature is not available4144 returns the unmodified config4145IssuePolicy4146 when namespace is locked because storage usage limit exceeded4147 is expected to be disallowed :create_issue, :update_issue, :read_issue_iid, :reopen_issue, :create_design, and :create_note4148 when namespace is not locked because storage usage limit not exceeded4149 is expected to be allowed :create_issue, :update_issue, :read_issue_iid, :reopen_issue, :create_design, and :create_note4150admin/push_rules/_merge_request_approvals4151 shows settings form4152 when show compliance merge request approval settings4153 shows compliance framework content4154 when not show compliance merge request approval settings4155 shows non-compliance framework content4156Clusters::EnvironmentSerializer4157 matches clusters/environment json schema4158Gitlab::StatusPage::UsageDataCounters::IncidentCounter4159 behaves like a redis usage counter4160 .count(publishes)4161 increments the StatusPage::IncidentCounter publishes counter by 14162 .read(publishes)4163 returns the total number of publishes events4164 behaves like a redis usage counter4165 .count(unpublishes)4166 increments the StatusPage::IncidentCounter unpublishes counter by 14167 .read(unpublishes)4168 returns the total number of unpublishes events4169 behaves like a redis usage counter with totals4170 totals4171 can report all totals4172 unknown events4173 cannot increment4174 cannot read4175Gitlab::Database::LoadBalancing::RackMiddleware4176 .stick_or_unstick4177 sticks or unsticks and updates the Rack environment4178 #call4179 handles a request4180 #unstick_or_continue_sticking4181 does not stick if no namespace and identifier could be found4182 sticks to the primary if a sticking namespace and identifier were found4183 #stick_if_necessary4184 does not stick to the primary if not necessary4185 sticks to the primary if necessary4186 #clear4187 clears the currently used host and session4188 .load_balancer4189 returns a the load balancer4190 #sticking_namespace_and_id4191 using a Warden request4192 returns the warden user if present4193 returns an empty Array if no user was present4194 using a request with a manually set sticking object4195 returns the sticking object4196 using a regular request4197 returns an empty Array4198ElasticIndexerWorker4199 #perform4200 indexing is enabled4201 operation: "index", method: "maintain_elasticsearch_create"4202 calls respective methods4203 operation: "update", method: "maintain_elasticsearch_update"4204 calls respective methods4205 operation: "delete", method: "maintain_elasticsearch_destroy"4206 calls respective methods4207 indexing is disabled4208 returns true if ES disabled4209Security::Scan4210 associations4211 is expected to belong to build required:4212 is expected to have one pipeline class_name => Ci::Pipeline through build4213 validations4214 is expected to validate that :build_id cannot be empty/falsy4215 is expected to validate that :scan_type cannot be empty/falsy4216 behaves like having unique enum values4217 has unique values in "scan_type"4218Gitlab::Ci::Config::Entry::Vault::Engine4219 validation4220 when entry config value is correct4221 #value4222 returns Vault secret engine configuration4223 #valid?4224 is valid4225 when entry value is not correct4226 #errors4227 when there is an unknown key present4228 reports error4229 when name and path are missing4230 reports error4231 when name and path are blank4232 reports error4233SyncSeatLinkRequestWorker4234 #perform4235 makes an HTTP POST request with passed params4236 behaves like unsuccessful request4237 when the request is not successful4238 raises an error with the expected message4239Gitlab::SeatLinkData4240 #initialize4241 when passing no params4242 returns object with default attributes set4243 when passing params4244 returns object with given attributes set4245 when passing date param only4246 returns object with attributes set using given date4247 .to_json4248 is expected to delegate #to_json to the #data object4249 returns payload data as a JSON string4250admin/licenses/_info4251 when observing licensees4252 shows "How to upgrade" link4253Gitlab::Ci::Reports::Security::Identifier4254 #initialize4255 when all params are given4256 initializes an instance4257 when attribute external_type is missing4258 raises an error4259 when attribute external_id is missing4260 raises an error4261 when attribute name is missing4262 raises an error4263 #key4264 returns fingerprint4265 #to_hash4266 returns expected hash4267 #==4268 when external_type and external_id are equal4269 returns true4270 when external_type is different4271 returns false4272 when external_id is different4273 returns false4274NotificationSetting4275 .email_events4276 group4277 appends EE specific events4278 project4279 returns CE list4280 global4281 appends EE specific events4282StatusPage::IncidentCommentsFinder4283 #all4284 when limit is higher than the colletion size4285 is expected to eq [#<Note id: 125, note: [FILTERED], noteable_type: "Issue", author_id: 1895, created_at: "2020-08-31 0...n_version: 1638400, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil>]4286 when limit is lower than the colletion size4287 is expected to eq [#<Note id: 125, note: [FILTERED], noteable_type: "Issue", author_id: 1895, created_at: "2020-08-31 0...n_version: 1638400, change_position: nil, resolved_by_push: nil, review_id: nil, confidential: nil>]4288 award emoji4289 ensures that emoji exists4290Gitlab::GlRepository::RepoType4291 #<Gitlab::GlRepository::RepoType:0x000056335c5db8b8>4292 group wiki4293 behaves like a repo type4294 #identifier_for_container4295 is expected to eq "group-2420-wiki"4296 #path_suffix4297 is expected to eq ".wiki"4298 #repository_for4299 finds the repository for the repo type4300Resolvers::VulnerabilitiesCountPerDayResolver4301 #resolve4302 fetches historical vulnerability data from the start date to the end date4303Gitlab::Regex4304 .feature_flag_regex4305 is expected to match "foo"4306 is expected to match "f_feature_flag"4307 is expected not to match "MY_FEATURE_FLAG"4308 is expected not to match "my feature flag"4309 is expected not to match "!!()()"4310Analytics::LanguageTrend::RepositoryLanguage4311 associations4312 is expected to belong to programming_language required:4313 is expected to belong to project required:4314Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestClosed4315 behaves like cycle analytics event4316 is expected to be a kind of String4317 is expected to be a kind of Symbol4318 is expected to include ApplicationRecord(abstract)4319 is expected to respond to #timestamp_projection4320 is expected to be a kind of Array4321 #apply_query_customization4322 expects an ActiveRecord::Relation object as argument and returns a modified version of it4323GroupDeletionSchedule4324 Associations4325 is expected to belong to group required:4326 is expected to belong to deleting_user class_name => User required:4327 Validations4328 is expected to validate that :marked_for_deletion_on cannot be empty/falsy4329Gitlab::Ci::Reports::Security::Locations::Sast4330 behaves like vulnerability location4331 #initialize4332 when all params are given4333 initializes an instance4334 param: :file_path4335 when param file_path is missing4336 raises an error4337 param: :start_line4338 when param start_line is missing4339 raises an error4340 #fingerprint4341 generates expected fingerprint4342 #==4343 returns true when fingerprints are equal4344 returns false when fingerprints are different4345Gitlab::Auth::GroupSaml::ResponseStore4346 #set_raw4347 stores values in Redis4348 sets a redis expiry time4349 #get_raw4350 retrives a value set by set_response4351 prevents memory bloat by deleting the value4352ProjectMemberPresenter4353 #group_sso?4354 returns `false`4355 #group_managed_account?4356 returns `false`4357 #can_update?4358 when user cannot update_project_member but can override_project_member4359 is expected to eq true4360 when user cannot update_project_member and cannot override_project_member4361 is expected to eq false4362Gitlab::ReturnToLocation4363 #full_path4364 returns nil when location nil4365 returns an empty string when location is empty4366 removes the domain from location4367 keeps the query string from location4368 keeps the fragments from location4369TestReportsComparerEntity4370 #as_json4371 when head and base reports include two test suites4372 when the status of head report is success4373 contains correct compared test reports details4374 when the status of head report is failed4375 contains correct compared test reports details4376 when the status of head report is resolved4377 contains correct compared test reports details4378Types::EpicIssueType4379 is expected to eq "EpicIssue"4380 is expected to require graphql authorizations :read_issue4381 has specific fields4382LdapAllGroupsSyncWorker4383 #perform4384 with the default license key4385 syncs all groups when group_id is nil4386 without a license key4387 does not sync all groups4388Gitlab::Diff::CharDiff4389 #generate_diff4390 generates an array of changes4391 when old string is nil4392 does not raise an error4393 treats nil values as blank strings4394 #to_html4395 returns an HTML representation of the diff4396MetricsReportsComparerEntity4397 #as_json4398 contains the new metrics4399 contains existing metrics4400 contains removed metrics4401PersonalAccessTokens::Groups::UpdateLifetimeService4402 #execute4403 when we can obtain the lease4404 schedules the worker4405 when we can't obtain the lease4406 does not schedule the worker4407Elastic::Latest::Config4408 .document_type4409 returns config4410 .settings4411 returns config4412 .mappings4413 returns config4414Types::Clusters::AgentType4415 is expected to eq "ClusterAgent"4416 is expected to require graphql authorizations :admin_cluster4417 is expected to have graphql fields :created_at, :id, :name, :project, and :updated_at4418EE::NullNotificationService4419 responds to methods implemented by NotificationService4420 raises NoMethodError for methods not implemented by NotificationService4421Types::EpicStateEnum4422 is expected to eq "EpicState"4423 exposes all the existing epic states4424Types::ScannedResourceType4425 is expected to eq "ScannedResource"4426 has specific fields4427Types::RequirementsManagement::RequirementStatesCountType4428 is expected to eq "RequirementStatesCount"4429 has specific fields4430Types::BurnupChartDailyTotalsType4431 is expected to eq "BurnupChartDailyTotals"4432 has specific fields4433Gitlab::StatusPage::Filter::MentionAnonymizationFilter4434 replaces user link with anonymized text4435Gitlab::ImportSources4436 .import_table4437 includes specific EE imports types when the license supports them4438LicenseScanningReportDependencyEntity4439 #as_json4440 contains the correct dependency name4441Types::VulnerabilityLocation::ContainerScanningType4442 is expected to have graphql fields :dependency, :image, and :operating_system4443AutoMergeService4444 .all_strategies_ordered_by_preference4445 returns all strategies in preference order4446Types::SecurityScannerTypeEnum4447 exposes all security scanner types4448Types::VulnerabilityLocation::DastType4449 is expected to have graphql fields :hostname, :param, :path, and :request_method4450Types::VulnerabilityLocation::DependencyScanningType4451 is expected to have graphql fields :dependency and :file4452Knapsack report was generated. Preview:4453{4454 "ee/spec/lib/ee/gitlab/import_export/after_export_strategies/custom_template_export_import_strategy_spec.rb": 129.17978048324585,4455 "ee/spec/tasks/gitlab/seed/group_seed_rake_spec.rb": 70.74482464790344,4456 "ee/spec/models/merge_request_spec.rb": 47.25607395172119,4457 "ee/spec/services/projects/create_service_spec.rb": 37.322710275650024,4458 "ee/spec/models/merge_train_spec.rb": 31.106192350387573,4459 "ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb": 27.79215168952942,4460 "ee/spec/views/admin/application_settings/_elasticsearch_form.html.haml_spec.rb": 16.32655620574951,4461 "ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb": 19.229305267333984,4462 "ee/spec/models/group_wiki_spec.rb": 17.126466274261475,4463 "ee/spec/services/projects/gitlab_projects_import_service_spec.rb": 12.179115056991577,4464 "ee/spec/services/epics/issue_promote_service_spec.rb": 14.365975856781006,4465 "ee/spec/models/group_spec.rb": 12.966866493225098,4466 "ee/spec/services/ci/minutes/batch_reset_service_spec.rb": 12.078582763671875,4467 "ee/spec/policies/ci/build_policy_spec.rb": 10.213842391967773,4468 "ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb": 10.318891525268555,4469 "ee/spec/services/search_service_spec.rb": 13.747002363204956,4470 "ee/spec/services/ci/register_job_service_spec.rb": 8.99114727973938,4471 "ee/spec/models/analytics/cycle_analytics/group_stage_spec.rb": 8.757447719573975,4472 "ee/spec/models/vulnerabilities/feedback_spec.rb": 7.6238603591918945,4473 "ee/spec/models/approval_wrapped_rule_spec.rb": 9.684439897537231,4474 "ee/spec/services/merge_requests/merge_to_ref_service_spec.rb": 7.571577072143555,4475 "ee/spec/models/gitlab_subscription_spec.rb": 6.863240480422974,4476 "ee/spec/services/approval_rules/finalize_service_spec.rb": 6.815849781036377,4477 "ee/spec/lib/gitlab/ci/parsers/security/dast_spec.rb": 6.189584970474243,4478 "ee/spec/models/concerns/elastic/milestone_spec.rb": 4.952466249465942,4479 "ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb": 6.195441246032715,4480 "ee/spec/finders/groups_with_templates_finder_spec.rb": 5.150187015533447,4481 "ee/spec/helpers/ee/environments_helper_spec.rb": 5.175157308578491,4482 "ee/spec/services/ci/subscribe_bridge_service_spec.rb": 4.437237739562988,4483 "ee/spec/models/concerns/ee/issuable_spec.rb": 4.5253989696502686,4484 "ee/spec/services/status_page/trigger_publish_service_spec.rb": 6.158599615097046,4485 "ee/spec/lib/gitlab/auth/ldap/access_spec.rb": 4.018972635269165,4486 "ee/spec/services/ee/system_notes/epics_service_spec.rb": 4.452466011047363,4487 "ee/spec/services/epics/close_service_spec.rb": 4.157718658447266,4488 "ee/spec/views/shared/issuable/_approvals.html.haml_spec.rb": 3.2369658946990967,4489 "ee/spec/finders/productivity_analytics_finder_spec.rb": 3.553159475326538,4490 "ee/spec/models/ee/clusters/platforms/kubernetes_spec.rb": 3.505141496658325,4491 "ee/spec/services/merge_requests/remove_approval_service_spec.rb": 3.5591676235198975,4492 "ee/spec/services/ci/create_pipeline_service_spec.rb": 3.342717170715332,4493 "ee/spec/models/board_spec.rb": 4.050269365310669,4494 "ee/spec/lib/gitlab/git_access_wiki_spec.rb": 2.952949285507202,4495 "ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb": 2.7698569297790527,4496 "ee/spec/models/approval_wrapped_any_approver_rule_spec.rb": 2.83866024017334,4497 "ee/spec/serializers/vulnerabilities/feedback_entity_spec.rb": 2.8944504261016846,4498 "ee/spec/serializers/blocking_merge_request_entity_spec.rb": 2.7927684783935547,4499 "ee/spec/lib/gitlab/ci/parsers/security/common_spec.rb": 2.7838058471679688,4500 "ee/spec/helpers/ee/user_callouts_helper_spec.rb": 2.9076850414276123,4501 "ee/spec/graphql/mutations/issues/set_assignees_spec.rb": 2.907548666000366,4502 "ee/spec/lib/gitlab/database/load_balancing/host_spec.rb": 2.2171950340270996,4503 "ee/spec/services/boards/list_service_spec.rb": 1.9778361320495605,4504 "ee/spec/policies/dast_site_profile_policy_spec.rb": 1.8319919109344482,4505 "ee/spec/serializers/vulnerability_note_entity_spec.rb": 2.110616445541382,4506 "ee/spec/services/vulnerability_feedback/destroy_service_spec.rb": 2.1982505321502686,4507 "ee/spec/services/ee/releases/create_evidence_service_spec.rb": 1.7578403949737549,4508 "ee/spec/helpers/search_helper_spec.rb": 1.7946789264678955,4509 "ee/spec/services/ee/merge_request_metrics_service_spec.rb": 1.697904109954834,4510 "ee/spec/models/vulnerabilities/identifier_spec.rb": 1.6667191982269287,4511 "ee/spec/lib/banzai/reference_parser/epic_parser_spec.rb": 1.808729648590088,4512 "ee/spec/workers/elastic_delete_project_worker_spec.rb": 1.5851104259490967,4513 "ee/spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 1.6175284385681152,4514 "ee/spec/lib/gitlab/ci/parsers/security/container_scanning_spec.rb": 1.0354621410369873,4515 "ee/spec/helpers/ee/namespace_storage_limit_alert_helper_spec.rb": 1.654707431793213,4516 "ee/spec/finders/notes_finder_spec.rb": 1.3119237422943115,4517 "ee/spec/services/clusters/agents/create_service_spec.rb": 1.7946288585662842,4518 "ee/spec/lib/gitlab/insights/reducers/count_per_label_reducer_spec.rb": 1.4075596332550049,4519 "ee/spec/helpers/users_helper_spec.rb": 1.3949995040893555,4520 "ee/spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 1.4390020370483398,4521 "ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb": 1.7498259544372559,4522 "ee/spec/lib/gitlab/insights/reducers/label_count_per_period_reducer_spec.rb": 1.070800542831421,4523 "ee/spec/services/elastic/metrics_update_service_spec.rb": 0.24894499778747559,4524 "ee/spec/models/commit_spec.rb": 1.3259861469268799,4525 "ee/spec/models/approver_group_spec.rb": 1.4262194633483887,4526 "ee/spec/views/admin/dashboard/index.html.haml_spec.rb": 1.2194952964782715,4527 "ee/spec/services/epic_issues/update_service_spec.rb": 1.2416224479675293,4528 "ee/spec/lib/banzai/filter/label_reference_filter_spec.rb": 1.0724222660064697,4529 "ee/spec/serializers/dependency_entity_spec.rb": 0.8552775382995605,4530 "ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb": 0.991652250289917,4531 "ee/spec/lib/ee/gitlab/checks/push_rules/file_size_check_spec.rb": 1.3137412071228027,4532 "ee/spec/serializers/vulnerabilities/response_entity_spec.rb": 0.5558505058288574,4533 "ee/spec/graphql/mutations/issues/set_weight_spec.rb": 0.7522144317626953,4534 "ee/spec/services/lfs/unlock_file_service_spec.rb": 0.7527146339416504,4535 "ee/spec/views/clusters/clusters/show.html.haml_spec.rb": 1.0555946826934814,4536 "ee/spec/serializers/clusters/deployment_entity_spec.rb": 0.9209291934967041,4537 "ee/spec/services/ee/ci/change_variables_service_spec.rb": 0.7313187122344971,4538 "ee/spec/models/elasticsearch_indexed_namespace_spec.rb": 0.5832788944244385,4539 "ee/spec/services/projects/restore_service_spec.rb": 0.9278008937835693,4540 "ee/spec/finders/ee/autocomplete/users_finder_spec.rb": 0.8047983646392822,4541 "ee/spec/lib/ee/gitlab/search_results_spec.rb": 0.7075002193450928,4542 "ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb": 0.7478134632110596,4543 "ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb": 0.7738714218139648,4544 "ee/spec/graphql/types/issue_type_spec.rb": 0.7628958225250244,4545 "ee/spec/views/registrations/welcome.html.haml_spec.rb": 0.4737434387207031,4546 "ee/spec/lib/ee/api/helpers/issues_helpers_spec.rb": 0.6071195602416992,4547 "ee/spec/lib/ee/api/helpers_spec.rb": 0.6787047386169434,4548 "ee/spec/policies/identity_provider_policy_spec.rb": 0.6535906791687012,4549 "ee/spec/views/projects/dast_site_profiles/new.html.haml_spec.rb": 0.5942583084106445,4550 "ee/spec/services/ee/resource_events/merge_into_notes_service_spec.rb": 0.6698219776153564,4551 "ee/spec/services/milestones/burnup_chart_service_spec.rb": 0.9507029056549072,4552 "ee/spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 0.5467267036437988,4553 "ee/spec/views/projects/dast_profiles/index.html.haml_spec.rb": 0.5728321075439453,4554 "ee/spec/presenters/label_presenter_spec.rb": 0.5876636505126953,4555 "ee/spec/models/weight_note_spec.rb": 0.6508376598358154,4556 "ee/spec/services/branches/delete_service_spec.rb": 0.6986081600189209,4557 "ee/spec/workers/repository_import_worker_spec.rb": 0.7070159912109375,4558 "ee/spec/policies/namespace_policy_spec.rb": 1.5864818096160889,4559 "ee/spec/lib/ee/audit/project_feature_changes_auditor_spec.rb": 0.5204946994781494,4560 "ee/spec/policies/approval_project_rule_policy_spec.rb": 0.539325475692749,4561 "ee/spec/lib/ee/gitlab/ci/config/entry/need_spec.rb": 0.37964320182800293,4562 "ee/spec/models/concerns/elastic/projects_search_spec.rb": 0.5798859596252441,4563 "ee/spec/services/ee/users/block_service_spec.rb": 0.41683053970336914,4564 "ee/spec/services/ci_cd/github_setup_service_spec.rb": 0.8490004539489746,4565 "ee/spec/services/personal_access_tokens/revoke_invalid_tokens_spec.rb": 0.10727214813232422,4566 "ee/spec/services/security/ci_configuration/sast_parser_service_spec.rb": 0.4194672107696533,4567 "ee/spec/models/allowed_email_domain_spec.rb": 0.432140588760376,4568 "ee/spec/models/ee/project_wiki_spec.rb": 0.3302915096282959,4569 "ee/spec/workers/vulnerabilities/statistics/schedule_worker_spec.rb": 0.4131460189819336,4570 "ee/spec/lib/gitlab/instrumentation_helper_spec.rb": 0.3356921672821045,4571 "ee/spec/helpers/epics_helper_spec.rb": 0.40749478340148926,4572 "ee/spec/models/broadcast_message_spec.rb": 0.11463284492492676,4573 "ee/spec/finders/audit_log_finder_spec.rb": 0.16034770011901855,4574 "ee/spec/lib/gitlab/group_plans_preloader_spec.rb": 0.3581392765045166,4575 "ee/spec/workers/sync_seat_link_worker_spec.rb": 0.3314335346221924,4576 "ee/spec/serializers/feature_flag_summary_entity_spec.rb": 0.679567813873291,4577 "ee/spec/models/project_services/gitlab_slack_application_service_spec.rb": 0.04801058769226074,4578 "ee/spec/lib/gitlab/auth/group_saml/group_lookup_spec.rb": 0.2935299873352051,4579 "ee/spec/serializers/audit_event_entity_spec.rb": 0.27116918563842773,4580 "ee/spec/services/burnup_chart_service_spec.rb": 0.25298070907592773,4581 "ee/spec/services/ci/external_pull_requests/process_github_event_service_spec.rb": 0.21918487548828125,4582 "ee/spec/services/ee/audit_events/custom_audit_event_service_spec.rb": 0.5264651775360107,4583 "ee/spec/services/dependency_proxy/pull_manifest_service_spec.rb": 0.19069385528564453,4584 "ee/spec/workers/import_software_licenses_worker_spec.rb": 0.25193023681640625,4585 "ee/spec/views/admin/licenses/show.html.haml_spec.rb": 0.16481852531433105,4586 "ee/spec/views/admin/groups/_form.html.haml_spec.rb": 0.18445754051208496,4587 "ee/spec/services/ee/notes/destroy_service_spec.rb": 0.2057185173034668,4588 "ee/spec/services/keys/create_service_spec.rb": 0.1466970443725586,4589 "ee/spec/graphql/mutations/boards/update_spec.rb": 0.48360276222229004,4590 "ee/spec/services/emails/destroy_service_spec.rb": 0.10688281059265137,4591 "ee/spec/services/requirements_management/update_requirement_service_spec.rb": 0.18380212783813477,4592 "ee/spec/models/group_wiki_repository_spec.rb": 0.16402411460876465,4593 "ee/spec/models/member_spec.rb": 0.09328389167785645,4594 "ee/spec/lib/gitlab/vulnerabilities/standard_vulnerability_spec.rb": 0.09681057929992676,4595 "ee/spec/lib/gitlab/expiring_subscription_message_spec.rb": 0.10458660125732422,4596 "ee/spec/helpers/ee/projects/alert_management_helper_spec.rb": 0.10648894309997559,4597 "ee/spec/lib/gitlab/status_page/storage_spec.rb": 0.10902762413024902,4598 "ee/spec/models/project_services/github_service/status_notifier_spec.rb": 0.10438895225524902,4599 "ee/spec/lib/ee/feature_spec.rb": 0.09489321708679199,4600 "ee/spec/services/status_page/publish_details_service_spec.rb": 0.07548308372497559,4601 "ee/spec/graphql/mutations/boards/lists/update_limit_metrics_spec.rb": 0.09821176528930664,4602 "ee/spec/lib/gitlab/ci/config/required/processor_spec.rb": 0.0720219612121582,4603 "ee/spec/policies/issue_policy_spec.rb": 0.08193469047546387,4604 "ee/spec/views/admin/push_rules/_merge_request_approvals.html.haml_spec.rb": 0.061347007751464844,4605 "ee/spec/serializers/clusters/environment_serializer_spec.rb": 0.057359933853149414,4606 "ee/spec/lib/gitlab/status_page/usage_data_counters/incident_counter_spec.rb": 0.07918143272399902,4607 "ee/spec/lib/gitlab/database/load_balancing/rack_middleware_spec.rb": 0.05491948127746582,4608 "ee/spec/workers/elastic_indexer_worker_spec.rb": 0.04641270637512207,4609 "ee/spec/models/security/scan_spec.rb": 0.0485081672668457,4610 "ee/spec/lib/gitlab/ci/config/entry/vault/engine_spec.rb": 0.028497695922851562,4611 "ee/spec/workers/sync_seat_link_request_worker_spec.rb": 0.03631234169006348,4612 "ee/spec/models/gitlab/seat_link_data_spec.rb": 0.034584760665893555,4613 "ee/spec/views/admin/licenses/_info.html.haml_spec.rb": 0.01673746109008789,4614 "ee/spec/lib/gitlab/ci/reports/security/identifier_spec.rb": 0.031958580017089844,4615 "ee/spec/models/ee/notification_setting_spec.rb": 0.03402376174926758,4616 "ee/spec/finders/status_page/incident_comments_finder_spec.rb": 0.02604389190673828,4617 "ee/spec/lib/gitlab/gl_repository/repo_type_spec.rb": 0.029064655303955078,4618 "ee/spec/graphql/resolvers/vulnerabilities_count_per_day_resolver_spec.rb": 0.026106595993041992,4619 "ee/spec/lib/gitlab/regex_spec.rb": 0.017443418502807617,4620 "ee/spec/models/analytics/language_trend/repository_language_spec.rb": 0.024652719497680664,4621 "ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_closed_spec.rb": 0.02120494842529297,4622 "ee/spec/models/group_deletion_schedule_spec.rb": 0.017345428466796875,4623 "ee/spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb": 0.020170927047729492,4624 "ee/spec/lib/gitlab/auth/group_saml/response_store_spec.rb": 0.01763153076171875,4625 "ee/spec/presenters/project_member_presenter_spec.rb": 0.012434005737304688,4626 "ee/spec/lib/gitlab/return_to_location_spec.rb": 0.015277862548828125,4627 "ee/spec/serializers/test_reports_comparer_entity_spec.rb": 0.01526331901550293,4628 "ee/spec/graphql/types/epic_issue_type_spec.rb": 0.010859966278076172,4629 "ee/spec/workers/ldap_all_groups_sync_worker_spec.rb": 0.014960050582885742,4630 "ee/spec/lib/gitlab/diff/char_diff_spec.rb": 0.012693166732788086,4631 "ee/spec/serializers/metrics_reports_comparer_entity_spec.rb": 0.013120889663696289,4632 "ee/spec/services/personal_access_tokens/groups/update_lifetime_service_spec.rb": 0.00889444351196289,4633 "ee/spec/lib/elastic/latest/config_spec.rb": 0.00852823257446289,4634 "ee/spec/graphql/types/clusters/agent_type_spec.rb": 0.009307622909545898,4635 "ee/spec/services/ee/null_notification_service_spec.rb": 0.00788426399230957,4636 "ee/spec/graphql/types/epic_state_enum_spec.rb": 0.0069370269775390625,4637 "ee/spec/graphql/types/scanned_resource_type_spec.rb": 0.0063266754150390625,4638 "ee/spec/graphql/types/requirements_management/requirement_states_count_type_spec.rb": 0.005728244781494141,4639 "ee/spec/graphql/types/burnup_chart_daily_totals_type_spec.rb": 0.006278038024902344,4640 "ee/spec/lib/gitlab/status_page/filter/mention_anonymization_filter_spec.rb": 0.005192279815673828,4641 "ee/spec/lib/gitlab/import_sources_spec.rb": 0.0040531158447265625,4642 "ee/spec/serializers/license_scanning_report_dependency_entity_spec.rb": 0.003284454345703125,4643 "ee/spec/graphql/types/vulnerability_location/container_scanning_type_spec.rb": 0.0030841827392578125,4644 "ee/spec/services/ee/auto_merge_service_spec.rb": 0.002959012985229492,4645 "ee/spec/graphql/types/security_scanner_type_enum_spec.rb": 0.002753019332885742,4646 "ee/spec/graphql/types/vulnerability_location/dast_type_spec.rb": 0.0030379295349121094,4647 "ee/spec/graphql/types/vulnerability_location/dependency_scanning_type_spec.rb": 0.00286936759948730474648}4649Knapsack global time execution for tests: 11m 55s4650Finished in 18 minutes 24 seconds (files took 58.18 seconds to load)46511989 examples, 0 failures4652Mon Aug 31 02:56:35 UTC 20204654Not uploading cache rails-v2-3 due to policy4656Uploading artifacts...4657coverage/: found 5 matching files and directories 4658knapsack/: found 3 matching files and directories 4659rspec_flaky/: found 4 matching files and directories 4660rspec_profiling/: found 2 matching files and directories 4661WARNING: tmp/capybara/: no matching files 4662tmp/memory_test/: found 2 matching files and directories 4663log/*.log: found 17 matching files and directories 4664Uploading artifacts as "archive" to coordinator... ok id=710807252 responseStatus=201 Created token=wFBJ8NRW4665Uploading artifacts...4666junit_rspec.xml: found 1 matching files and directories 4667Uploading artifacts as "junit" to coordinator... ok id=710807252 responseStatus=201 Created token=wFBJ8NRW4668Job succeeded