rspec-ee unit pg13 7/18
Passed Started
by
@ohoral
Olena Horal-Koretska
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org rpvz2FF9, system ID: s_d704414ba02a3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:b643610fd4d2fbdd55447ceb5a6cba0c3d1a26945817741d73e1b51a1ec07d01 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:dfccb5b5ddadf4f1a3b9cb72cf21f5b99a28a55c217de34d9fa6b7a45a910031 ...11Starting service redis:6.2-alpine ...12Pulling docker image redis:6.2-alpine ...13Using docker image sha256:a9a47a706682d445577bb5da7328f0faaa0863a5742a315c829faa461dfc23ae for redis:6.2-alpine with digest redis@sha256:317575f05099ea47b1f2855b1bb6e068b52847bfa19b87014d88d57f82d4b8f0 ...14Starting service elasticsearch:7.17.6 ...15Pulling docker image elasticsearch:7.17.6 ...16Using docker image sha256:5fad10241ffd65d817ed0ddfaf6e87eee1f7dc2a7db33db1047835560ea71fda for elasticsearch:7.17.6 with digest elasticsearch@sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028 ...17WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.0 is already created. Ignoring.18WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.0 is already created. Ignoring.19Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.0 ...20Authenticating with credentials from job payload (GitLab Registry)21Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.0 ...22Using docker image sha256:4777ec1fa89def7d692d4979d05cb05234df25da1c6a3f67a564a433ec5ba1c8 for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.0 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:80c0cee4566aefe4f1f287e1091263e08b0ebc41ed3dc4e76930df3634ccb9aa ...23Waiting for services to be up and running (timeout 30 seconds)...24Authenticating with credentials from job payload (GitLab Registry)25Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...26Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...28Running on runner-rpvz2ff9-project-278964-concurrent-0 via runner-rpvz2ff9-private-1682499601-6eb30efd...30$ eval "$CI_PRE_CLONE_SCRIPT"31Fetching changes with git depth set to 20...32Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/33Created fresh repository.34remote: Enumerating objects: 165305, done. 35remote: Counting objects: 100% (165305/165305), done. 36remote: Compressing objects: 100% (99237/99237), done. 37remote: Total 165305 (delta 81746), reused 118333 (delta 59964), pack-reused 0 38Receiving objects: 100% (165305/165305), 131.94 MiB | 23.40 MiB/s, done.39Resolving deltas: 100% (81746/81746), done.41 * [new ref] refs/pipelines/849373675 -> refs/pipelines/84937367542 * [new branch] master -> origin/master43Checking out f463609d as detached HEAD (ref is master)...44Skipping Git submodules setup45$ git remote set-url origin "${CI_REPOSITORY_URL}"47Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...48Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 49Successfully extracted cache51Downloading artifacts for compile-test-assets (4181384009)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4181384009 responseStatus=200 OK token=64_NnpJt53Downloading artifacts for retrieve-tests-metadata (4181384016)...54Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4181384016 responseStatus=200 OK token=64_NnpJt55Downloading artifacts for setup-test-env (4181384014)...56Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4181384014 responseStatus=200 OK token=64_NnpJt58Using docker image sha256:552b81110cdd830e05d17c8e7365f72e1dd96842217d7225636cb55a75777ea7 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:a386dd1acb1341f710f3c3c320984f70512694bcfec8cb1c771365058ac7c475 ...59$ echo $FOSS_ONLY60$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb61$ export GOPATH=$CI_PROJECT_DIR/.go62$ mkdir -p $GOPATH63$ source scripts/utils.sh64$ source scripts/prepare_build.sh720Using decomposed database config (config/database.yml.decomposed-postgresql)721Geo DB will be set up.722Embedding DB will be set up.746$ source ./scripts/rspec_helpers.sh747$ run_timed_command "gem install knapsack --no-document"748$ gem install knapsack --no-document749Successfully installed knapsack-4.0.07501 gem installed751$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"752==> 'gem install knapsack --no-document' succeeded in 1 seconds.754$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"759$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"760$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"761SKIP_FLAKY_TESTS_AUTOMATICALLY: false762RETRY_FAILED_TESTS_IN_NEW_PROCESS: true763KNAPSACK_GENERATE_REPORT: true764FLAKY_RSPEC_GENERATE_REPORT: true765KNAPSACK_TEST_FILE_PATTERN: {ee/}spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb766KNAPSACK_LOG_LEVEL: debug767KNAPSACK_REPORT_PATH: knapsack/rspec-ee_unit_pg13_7_18_report.json768FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json769FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_unit_pg13_7_18_report.json770NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_unit_pg13_7_18_report.json771SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec-ee_unit_pg13_7_18_report.txt772CRYSTALBALL: 773RSPEC_TESTS_MAPPING_ENABLED: 774RSPEC_TESTS_FILTER_FILE: 775Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration -- ee/spec/lib/gitlab/elastic/search_results_spec.rb ee/spec/models/group_wiki_spec.rb ee/spec/elastic_integration/global_search_spec.rb ee/spec/models/merge_trains/car_spec.rb ee/spec/models/vulnerabilities/read_spec.rb ee/spec/replicators/geo/pages_deployment_replicator_spec.rb ee/spec/services/ee/merge_requests/create_pipeline_service_spec.rb ee/spec/services/todo_service_spec.rb ee/spec/services/ci/sync_reports_to_approval_rules_service_spec.rb ee/spec/elastic/migrate/20230131184300_backfill_traversal_ids_for_projects_spec.rb ee/spec/services/ee/issues/move_service_spec.rb ee/spec/models/hooks/group_hook_spec.rb ee/spec/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids_spec.rb ee/spec/services/geo/framework_repository_sync_service_spec.rb ee/spec/services/groups/update_service_spec.rb ee/spec/services/approval_rules/params_filtering_service_spec.rb ee/spec/services/ee/protected_branches/create_service_spec.rb ee/spec/lib/incident_management/oncall_shift_generator_spec.rb ee/spec/models/namespace_setting_spec.rb ee/spec/finders/geo/pages_deployment_registry_finder_spec.rb ee/spec/workers/update_all_mirrors_worker_spec.rb ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb ee/spec/services/ee/merge_requests/post_merge_service_spec.rb ee/spec/models/ee/list_spec.rb ee/spec/models/dora/daily_metrics_spec.rb ee/spec/models/ci/bridge_spec.rb ee/spec/graphql/resolvers/vulnerability_severities_count_resolver_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb ee/spec/workers/store_security_reports_worker_spec.rb ee/spec/lib/gitlab/git_access_wiki_spec.rb ee/spec/helpers/boards_helper_spec.rb ee/spec/services/ci/trigger_downstream_subscription_service_spec.rb ee/spec/services/ee/issue_links/create_service_spec.rb ee/spec/models/project_feature_spec.rb ee/spec/services/compliance_management/frameworks/update_service_spec.rb ee/spec/models/dast/site_profile_secret_variable_spec.rb ee/spec/services/app_sec/dast/scanner_profiles/update_service_spec.rb ee/spec/models/software_license_policy_spec.rb ee/spec/services/projects/gitlab_projects_import_service_spec.rb ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb ee/spec/views/layouts/application.html.haml_spec.rb ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb ee/spec/models/vulnerabilities/export_spec.rb ee/spec/elastic/migrate/20230316150000_add_hashed_root_namespace_id_to_merge_requests_spec.rb ee/spec/services/iterations/cadences/destroy_service_spec.rb ee/spec/lib/gitlab/compliance_management/violations/approved_by_insufficient_users_spec.rb ee/spec/workers/ci/minutes/refresh_cached_data_worker_spec.rb ee/spec/graphql/mutations/incident_management/escalation_policy/update_spec.rb ee/spec/services/geo/rename_repository_service_spec.rb ee/spec/services/ee/incident_management/issuable_escalation_statuses/prepare_update_service_spec.rb ee/spec/finders/ee/projects_finder_spec.rb ee/spec/models/status_page/published_incident_spec.rb ee/spec/services/incident_management/pending_escalations/create_service_spec.rb ee/spec/models/audit_events/instance_external_audit_event_destination_spec.rb ee/spec/views/shared/billings/_eoa_bronze_plan_banner.html.haml_spec.rb ee/spec/lib/ee/gitlab/pages/deployment_update_spec.rb ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb ee/spec/lib/gitlab/import_export/project/project_hooks_restorer_spec.rb ee/spec/graphql/types/vulnerability_request_response_header_type_spec.rb ee/spec/lib/gitlab/geo/replicator_spec.rb ee/spec/lib/gitlab/cidr_spec.rb ee/spec/graphql/mutations/dast_scanner_profiles/create_spec.rb ee/spec/lib/ee/gitlab/background_migration/fix_approval_project_rules_without_protected_branches_spec.rb ee/spec/models/elastic/index_setting_spec.rb ee/spec/lib/gitlab/com_spec.rb ee/spec/workers/elastic_index_bulk_cron_worker_spec.rb ee/spec/finders/incident_management/escalation_policies_finder_spec.rb ee/spec/finders/boards/epic_boards_finder_spec.rb ee/spec/services/merge_requests/remove_approval_service_spec.rb ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_merge_requests_for_projects_with_applied_scan_result_policies_metric_spec.rb ee/spec/views/shared/milestones/_milestone.html.haml_spec.rb ee/spec/services/llm/explain_code_service_spec.rb ee/spec/graphql/resolvers/external_issue_resolver_spec.rb ee/spec/services/security/security_orchestration_policies/ci_configuration_service_spec.rb ee/spec/services/gitlab_subscriptions/fetch_subscription_plans_service_spec.rb ee/spec/graphql/mutations/security/finding/dismiss_spec.rb ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb ee/spec/workers/sync_seat_link_worker_spec.rb ee/spec/models/groups/repository_storage_move_spec.rb ee/spec/policies/deployment_policy_spec.rb ee/spec/graphql/resolvers/path_locks_resolver_spec.rb ee/spec/services/security/ingestion/mark_as_resolved_service_spec.rb ee/spec/lib/gitlab/ci/config/entry/job_spec.rb ee/spec/services/security/purge_scans_service_spec.rb ee/spec/graphql/mutations/dast_scanner_profiles/update_spec.rb ee/spec/helpers/ee/tanuki_bot_helper_spec.rb ee/spec/graphql/resolvers/ci/runners_jobs_statistics_resolver_spec.rb ee/spec/graphql/resolvers/product_analytics/visualization_resolver_spec.rb ee/spec/graphql/mutations/vulnerabilities/confirm_spec.rb ee/spec/graphql/types/vulnerability_detail_type_spec.rb ee/spec/models/dast/pre_scan_verification_spec.rb ee/spec/graphql/resolvers/analytics/devops_adoption/enabled_namespaces_resolver_spec.rb ee/spec/lib/ee/gitlab/usage_data_counters/hll_redis_counter_spec.rb ee/spec/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb ee/spec/services/ci/runners/assign_runner_service_spec.rb ee/spec/services/gitlab_subscriptions/reconciliations/check_seat_usage_alerts_eligibility_service_spec.rb ee/spec/services/group_saml/sign_up_service_spec.rb ee/spec/services/security/security_orchestration_policies/on_demand_scan_pipeline_configuration_service_spec.rb ee/spec/tasks/gitlab/seed/awesome_co_rake_spec.rb ee/spec/finders/work_items/widgets/filters/requirement_legacy_spec.rb ee/spec/services/security/update_training_service_spec.rb ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb ee/spec/services/gitlab_subscriptions/check_future_renewal_service_spec.rb ee/spec/services/repositories/housekeeping_service_spec.rb ee/spec/lib/elastic/latest/snippet_instance_proxy_spec.rb ee/spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb ee/spec/serializers/integrations/jira_serializers/issue_entity_spec.rb ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb ee/spec/services/elastic/index_projects_by_range_service_spec.rb ee/spec/lib/gitlab/license_scanning/branch_components_spec.rb ee/spec/services/status_page/publish_list_service_spec.rb ee/spec/graphql/types/incident_management/escalation_rule_input_type_spec.rb ee/spec/services/search/reindexing_service_spec.rb ee/spec/lib/gitlab/ci/templates/secret_detection_gitlab_ci_yaml_spec.rb ee/spec/services/alert_management/extract_alert_payload_fields_service_spec.rb ee/spec/lib/ee/gitlab/scim/group/reprovisioning_service_spec.rb ee/spec/models/vulnerabilities/flag_spec.rb ee/spec/graphql/types/group_release_stats_type_spec.rb ee/spec/graphql/types/dast/profile_schedule_type_spec.rb ee/spec/services/ee/git/wiki_push_service_spec.rb ee/spec/helpers/admin/ip_restriction_helper_spec.rb ee/spec/services/analytics/devops_adoption/enabled_namespaces/find_or_create_service_spec.rb ee/spec/services/ci/minutes/additional_packs/create_service_spec.rb ee/spec/views/shared/credentials_inventory/ssh_keys/_ssh_key.html.haml_spec.rb ee/spec/lib/gitlab/auth/ldap/adapter_spec.rb ee/spec/models/ci/minutes/cost_setting_spec.rb ee/spec/services/path_locks/unlock_service_spec.rb ee/spec/services/security/configuration/save_auto_fix_service_spec.rb ee/spec/services/package_metadata/ingestion/ingestion_service_spec.rb ee/spec/workers/geo/sidekiq_cron_config_worker_spec.rb ee/spec/views/shared/issuable/_iterations_dropdown.html.haml_spec.rb ee/spec/workers/geo_repository_destroy_worker_spec.rb ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb ee/spec/lib/ee/sidebars/projects/panel_spec.rb ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/create_spec.rb ee/spec/lib/ee/gitlab/scim/deprovisioning_service_spec.rb ee/spec/models/work_items/widgets/health_status_spec.rb ee/spec/lib/gitlab/geo/log_cursor/event_logs_spec.rb ee/spec/models/work_items/widgets/requirement_legacy_spec.rb ee/spec/services/projects/open_issues_count_service_spec.rb ee/spec/services/ee/protected_branches/update_service_spec.rb ee/spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_metric_spec.rb ee/spec/models/vulnerabilities/merge_request_link_spec.rb ee/spec/services/merge_requests/mergeability/check_denied_policies_service_spec.rb ee/spec/serializers/integrations/jira_serializers/issue_serializer_spec.rb ee/spec/serializers/ee/ci/pipeline_entity_spec.rb ee/spec/models/approvals/wrapped_rule_set_spec.rb ee/spec/models/concerns/geo/verifiable_model_spec.rb ee/spec/lib/ee/api/entities/scim/user_name_spec.rb ee/spec/elastic/migrate/20201105181100_apply_max_analyzed_offset_spec.rb ee/spec/workers/geo/secondary_usage_data_cron_worker_spec.rb ee/spec/workers/incident_management/pending_escalations/alert_create_worker_spec.rb ee/spec/graphql/types/work_items/widgets/health_status_type_spec.rb ee/spec/lib/ee/gitlab/auth/ldap/config_spec.rb ee/spec/graphql/types/incident_management/oncall_schedule_type_spec.rb ee/spec/models/concerns/auditable_spec.rb ee/spec/serializers/metrics_report_metric_entity_spec.rb ee/spec/lib/ee/gitlab/omniauth_initializer_spec.rb ee/spec/helpers/merge_requests_helper_spec.rb ee/spec/graphql/types/vulnerability_severities_count_type_spec.rb ee/spec/graphql/types/vulnerability/state_transition_type_spec.rb ee/spec/models/storage_shard_spec.rb ee/spec/graphql/types/geo/project_wiki_repository_registry_type_spec.rb ee/spec/graphql/types/dast/profile_cadence_type_spec.rb ee/spec/graphql/types/incident_management/oncall_participant_type_spec.rb ee/spec/graphql/types/ci/code_coverage_summary_spec.rb ee/spec/models/ci/processable_spec.rb ee/spec/workers/elastic_index_initial_bulk_cron_worker_spec.rb ee/spec/graphql/types/vulnerability_details/int_type_spec.rb ee/spec/lib/api/entities/epic_boards/list_spec.rb ee/spec/graphql/types/ci/runner_type_spec.rb ee/spec/graphql/types/ci/code_quality_degradation_type_spec.rb ee/spec/lib/gitlab/status_page/filter/mention_anonymization_filter_spec.rb ee/spec/graphql/types/permission_types/vulnerability_spec.rbKnapsack report generator started!776warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.778Run options: exclude {:quarantine=>true, :level=>"background_migration"}779Test environment set up in 0.918243169 seconds780Gitlab::Elastic::SearchResults781 #highlight_map782 scope: "projects", results_method: :projects, expected: {1=>"test <span class=\"gl-text-gray-900 gl-font-weight-bold\">highlight</span>"}783 returns the expected highlight map784 scope: "milestones", results_method: :milestones, expected: {1=>"test <span class=\"gl-text-gray-900 gl-font-weight-bold\">highlight</span>"}785 returns the expected highlight map786 scope: "notes", results_method: :notes, expected: {1=>"test <span class=\"gl-text-gray-900 gl-font-weight-bold\">highlight</span>"}787 returns the expected highlight map788 scope: "issues", results_method: :issues, expected: {1=>"test <span class=\"gl-text-gray-900 gl-font-weight-bold\">highlight</span>"}789 returns the expected highlight map790 scope: "merge_requests", results_method: :merge_requests, expected: {1=>"test <span class=\"gl-text-gray-900 gl-font-weight-bold\">highlight</span>"}791 returns the expected highlight map792 scope: "blobs", results_method: nil, expected: nil793 returns the expected highlight map794 scope: "wiki_blobs", results_method: nil, expected: nil795 returns the expected highlight map796 scope: "commits", results_method: nil, expected: nil797 returns the expected highlight map798 scope: "users", results_method: nil, expected: nil799 returns the expected highlight map800 scope: "unknown", results_method: nil, expected: nil801 returns the expected highlight map802 #formatted_count803 scope: "projects", count_method: :projects_count, value: 0, expected: "0"804 returns the expected formatted count limited and delimited805 scope: "notes", count_method: :notes_count, value: 100, expected: "100"806 returns the expected formatted count limited and delimited807 scope: "blobs", count_method: :blobs_count, value: 1000, expected: "1,000"808 returns the expected formatted count limited and delimited809 scope: "wiki_blobs", count_method: :wiki_blobs_count, value: 1111, expected: "1,111"810 returns the expected formatted count limited and delimited811 scope: "commits", count_method: :commits_count, value: 9999, expected: "9,999"812 returns the expected formatted count limited and delimited813 scope: "issues", count_method: :issues_count, value: 10000, expected: "10,000+"814 returns the expected formatted count limited and delimited815 scope: "merge_requests", count_method: :merge_requests_count, value: 20000, expected: "10,000+"816 returns the expected formatted count limited and delimited817 scope: "milestones", count_method: :milestones_count, value: nil, expected: "0"818 returns the expected formatted count limited and delimited819 scope: "users", count_method: :users_count, value: 100, expected: "100"820 returns the expected formatted count limited and delimited821 scope: "unknown", count_method: nil, value: nil, expected: nil822 returns the expected formatted count limited and delimited823 #aggregations824 scope: "projects", expected_aggregation_name: nil, feature_flag: false825 when feature flag is enabled for user826 behaves like loads expected aggregations827 returns the expected aggregations828 when feature flag is disabled for user829 behaves like loads expected aggregations830 returns the expected aggregations831 scope: "milestones", expected_aggregation_name: nil, feature_flag: false832 when feature flag is enabled for user833 behaves like loads expected aggregations834 returns the expected aggregations835 when feature flag is disabled for user836 behaves like loads expected aggregations837 returns the expected aggregations838 scope: "notes", expected_aggregation_name: nil, feature_flag: false839 when feature flag is enabled for user840 behaves like loads expected aggregations841 returns the expected aggregations842 when feature flag is disabled for user843 behaves like loads expected aggregations844 returns the expected aggregations845 scope: "issues", expected_aggregation_name: "labels", feature_flag: :search_issue_label_aggregation846 when feature flag is enabled for user847 behaves like loads expected aggregations848 returns the expected aggregations849 when feature flag is disabled for user850 behaves like loads expected aggregations851 returns the expected aggregations852 scope: "merge_requests", expected_aggregation_name: nil, feature_flag: false853 when feature flag is enabled for user854 behaves like loads expected aggregations855 returns the expected aggregations856 when feature flag is disabled for user857 behaves like loads expected aggregations858 returns the expected aggregations859 scope: "wiki_blobs", expected_aggregation_name: nil, feature_flag: false860 when feature flag is enabled for user861 behaves like loads expected aggregations862 returns the expected aggregations863 when feature flag is disabled for user864 behaves like loads expected aggregations865 returns the expected aggregations866 scope: "commits", expected_aggregation_name: nil, feature_flag: false867 when feature flag is enabled for user868 behaves like loads expected aggregations869 returns the expected aggregations870 when feature flag is disabled for user871 behaves like loads expected aggregations872 returns the expected aggregations873 scope: "users", expected_aggregation_name: nil, feature_flag: false874 when feature flag is enabled for user875 behaves like loads expected aggregations876 returns the expected aggregations877 when feature flag is disabled for user878 behaves like loads expected aggregations879 returns the expected aggregations880 scope: "epics", expected_aggregation_name: nil, feature_flag: false881 when feature flag is enabled for user882 behaves like loads expected aggregations883 returns the expected aggregations884 when feature flag is disabled for user885 behaves like loads expected aggregations886 returns the expected aggregations887 scope: "unknown", expected_aggregation_name: nil, feature_flag: false888 when feature flag is enabled for user889 behaves like loads expected aggregations890 returns the expected aggregations891 when feature flag is disabled for user892 behaves like loads expected aggregations893 returns the expected aggregations894 scope: "blobs", expected_aggregation_name: "language", feature_flag: false895 when feature flag is enabled for user896 behaves like loads expected aggregations897 returns the expected aggregations898 when feature flag is disabled for user899 behaves like loads expected aggregations900 returns the expected aggregations901 parse_search_result902 returns an unhighlighted blob when no highlight data is present903 parses the blob with highlighting904 sets the correct matched_lines_count when the searched text found on the multiple lines905 when the highlighting finds the same terms multiple times906 does not mistake a line that happens to include the same term that was highlighted on a later line907 file path in the blob contains potential backtracking regex attack pattern908 still parses the basename from the path with reasonable amount of time909 issues910 lists found issues911 returns empty list when issues are not found912 lists issue when search by a valid iid913 can also find an issue by iid without the prefixed #914 finds the issue with an out of integer range number in its description without exception915 returns empty list when search by invalid iid916 handles plural words through algorithmic stemming917 executes count only queries918 behaves like a paginated object919 does not explode when given a page as a string920 paginates921 uses the per_page value if passed922 filtering923 state not provided924 returns opened and closed results925 all state926 returns opened and closed results927 closed state928 returns only closed results929 opened state930 returns only opened results931 unsupported state932 returns only opened results933 filter not provided (all behavior)934 returns confidential and not confidential results935 confidential filter936 returns only confidential results937 not confidential filter938 returns not confidential results939 ordering940 sort: created_desc941 sorts results by created_at942 sort: created_asc943 sorts results by created_at944 sort: updated_desc945 sorts results by updated_desc946 sort: updated_asc947 sorts results by updated_asc948 sort: popularity_desc949 sorts results by upvotes950 sort: popularity_asc951 sorts results by created_at952 notes953 lists found notes954 returns empty list when notes are not found955 behaves like a paginated object956 does not explode when given a page as a string957 paginates958 uses the per_page value if passed959 confidential issues960 search by term961 does not list confidential issues for guests962 does not list confidential issues for non project members963 lists confidential issues for author964 lists confidential issues for assignee965 lists confidential issues for project members966 for admin users967 when admin mode enabled968 lists all issues969 when admin mode disabled970 does not list confidential issues971 search by iid972 does not list confidential issues for guests973 does not list confidential issues for non project members974 lists confidential issues for author975 lists confidential issues for assignee976 lists confidential issues for project members977 for admin users978 when admin mode enabled979 lists all issues980 when admin mode disabled981 does not list confidential issues982 merge requests983 lists found merge requests984 returns empty list when merge requests are not found985 lists merge request when search by a valid iid986 can also find an issue by iid without the prefixed !987 finds the MR with an out of integer range number in its description without exception988 returns empty list when search by invalid iid989 behaves like a paginated object990 does not explode when given a page as a string991 paginates992 uses the per_page value if passed993 filtering994 state not provided995 returns opened and closed results996 all state997 returns opened and closed results998 closed state999 returns only closed results1000 opened state1001 returns only opened results1002 unsupported state1003 returns only opened results1004 ordering1005 sort: created_desc1006 sorts results by created_at1007 sort: created_asc1008 sorts results by created_at1009 sort: updated_desc1010 sorts results by updated_desc1011 sort: updated_asc1012 sorts results by updated_asc1013 users1014 behaves like a paginated object1015 does not explode when given a page as a string1016 paginates1017 uses the per_page value if passed1018 when the user is not allowed to read users1019 returns an empty list1020 when the user is allowed to read users1021 lists found users1022 when the calling user is an admin1023 lists found users including blocked user and email match1024 projects1025 returns items for project1026 blobs1027 finds blobs1028 finds blobs by prefix search1029 finds blobs from public projects only1030 returns zero when blobs are not found1031 behaves like a paginated object1032 does not explode when given a page as a string1033 paginates1034 uses the per_page value if passed1035 searches CamelCased methods1036 find by first word1037 find by first two words (PENDING: Temporarily skipped with xit)1038 find by last two words1039 find by exact match1040 find by prefix search1041 searches with special characters1042 finds all examples1043 filtering1044 behaves like search results filtered by language1045 filters by language1046 wikis1047 finds wiki blobs1048 finds wiki blobs for guest1049 finds wiki blobs from public projects only1050 returns zero when wiki blobs are not found1051 behaves like a paginated object1052 does not explode when given a page as a string1053 paginates1054 uses the per_page value if passed1055 when wiki is disabled1056 search by member1057 is expected to be empty1058 search by non-member1059 is expected to be empty1060 when wiki is internal1061 search by member1062 is expected not to be empty1063 search by non-member1064 is expected to be empty1065 commits1066 finds commits1067 finds commits from public projects only1068 returns zero when commits are not found1069 behaves like a paginated object1070 does not explode when given a page as a string1071 paginates1072 uses the per_page value if passed1073 visibility levels1074 issues1075 finds right set of issues1076 milestones1077 behaves like a paginated object1078 does not explode when given a page as a string1079 paginates1080 uses the per_page value if passed1081 when project ids are present1082 when authenticated1083 when user and merge requests are disabled in a project1084 returns right set of milestones1085 when user is admin1086 when admin mode enabled1087 returns right set of milestones1088 when user can read milestones1089 returns right set of milestones1090 when not authenticated1091 returns right set of milestones1092 when project_ids is not present1093 when project_ids is :any1094 returns all milestones1095 when authenticated1096 returns right set of milestones1097 when not authenticated1098 returns right set of milestones1099 projects1100 finds right set of projects1101 returns 0 results for count only query1102 behaves like a paginated object1103 does not explode when given a page as a string1104 paginates1105 uses the per_page value if passed1106 merge requests1107 finds right set of merge requests1108 wikis1109 finds the right set of wiki blobs1110 commits1111 finds right set of commits1112 blobs1113 finds right set of blobs1114 query performance1115 for scope projects1116 makes 1 Elasticsearch query1117 for scope notes1118 makes 1 Elasticsearch query1119 for scope blobs1120 makes 1 Elasticsearch query1121 for scope wiki_blobs1122 makes 1 Elasticsearch query1123 for scope commits1124 makes 1 Elasticsearch query1125 for scope issues1126 makes 1 Elasticsearch query1127 for scope merge_requests1128 makes 1 Elasticsearch query1129 for scope milestones1130 makes 1 Elasticsearch query1131 for scope projects1132 makes count query1133 for scope notes1134 makes count query1135 for scope blobs1136 makes count query1137 for scope wiki_blobs1138 makes count query1139 for scope commits1140 makes count query1141 for scope issues1142 makes count query1143 for scope merge_requests1144 makes count query1145 for scope milestones1146 makes count query1147GroupWiki1148 behaves like wiki model1149 VALID_USER_MARKUPS contains all valid markups1150 container class includes HasWiki1151 behaves like model with repository1152 container class includes HasRepository1153 #commits_by1154 retrieves several commits from the repository by oid1155 #web_url1156 when given the only_path option1157 when only_path is false1158 returns the full web URL for this repo1159 when only_path is true1160 returns the relative web URL for this repo1161 when only_path is nil1162 returns the full web URL for this repo1163 when not given the only_path option1164 returns the full web URL for this repo1165 #url_to_repo1166 returns the SSH URL to the repository1167 #ssh_url_to_repo1168 returns the SSH URL to the repository1169 #http_url_to_repo1170 returns the HTTP URL to the repository1171 #repository1172 returns valid repo1173 uses the same container1174 #storage1175 returns valid storage1176 #full_path1177 returns valid full_path1178 #lfs_enabled?1179 returns the expected value1180 #empty_repo?1181 when the repo does not exist1182 returns true1183 when the repo exists1184 returns the empty state of the repository1185 #valid_repo?1186 is expected to equal false1187 is expected to equal true1188 #repository_exists?1189 is expected to equal false1190 is expected to equal true1191 #repo_exists?1192 is expected to equal false1193 is expected to equal true1194 #root_ref1195 is expected to equal true1196 is expected to equal false1197 is expected to equal false1198 Respond to1199 is expected to respond to #base_dir1200 is expected to respond to #disk_path1201 is expected to respond to #gitlab_shell1202 #change_head1203 delegates #change_head to repository1204 #after_repository_change_head1205 calls #reload_default_branch1206 .container_class1207 is set to the container class1208 .find_by_id1209 returns a wiki instance if the container is found1210 returns nil if the container is not found1211 #initialize1212 accepts a valid user1213 accepts a blank user1214 raises an error for invalid users1215 #run_after_commit1216 delegates to the container1217 #==1218 returns true for wikis from the same container1219 returns false for wikis from different containers1220 #id1221 returns the ID of the container1222 #has_home_page?1223 when home page exists1224 returns true1225 returns false when #find_page raise an error1226 when home page does not exist1227 returns false1228 #to_global_id1229 returns a global ID1230 #repository1231 returns a wiki repository1232 #full_path1233 returns the container path with the .wiki extension1234 #wiki_base_path1235 returns the wiki base path1236 includes the relative URL root1237 #empty?1238 when the wiki repository is empty1239 returns true1240 when the repository does not exist1241 returns true and does not create the repo1242 when the wiki has pages1243 #empty?1244 returns false1245 #list_pages1246 behaves like wiki model #list_pages1247 returns an array of WikiPage instances1248 does not load WikiPage content by default1249 returns all pages by default1250 with limit option1251 returns limited set of pages1252 returns all set of pages if limit is more than the total pages1253 returns all set of pages if limit is 01254 with offset option1255 returns offset-ed set of pages1256 returns all set of pages if offset is 01257 can combines with limit1258 with sorting options1259 returns pages sorted by title by default1260 with load_content option1261 loads WikiPage content1262 #sidebar_entries1263 when the number of pages does not exceed the limit1264 returns all pages grouped by directory and limited is false1265 when the number of pages exceeds the limit1266 returns 15 pages grouped by directory and limited is true1267 #find_page1268 find page with normal repository RPCs1269 behaves like wiki model #find_page1270 returns the latest version of the page if it exists1271 returns nil if the page or version does not exist1272 can find a page by slug1273 returns a WikiPage instance1274 pages with multibyte-character title1275 can find a page by slug1276 pages with invalidly-encoded content1277 can find the page1278 wiki repository's default branch is updated1279 returns the page in the updated default branch1280 wiki repository's HEAD is updated1281 returns the page in the new HEAD1282 pages with relative paths1283 path: "~hello.md", title: "~Hello"1284 can find page with `~Hello` title1285 path: "hello~world.md", title: "Hello~World"1286 can find page with `Hello~World` title1287 path: "~~~hello.md", title: "~~~Hello"1288 can find page with `~~~Hello` title1289 path: "~/hello.md", title: "~/Hello"1290 can find page with `~/Hello` title1291 path: "hello.md", title: "/Hello"1292 can find page with `/Hello` title1293 path: "hello.md", title: "../Hello"1294 can find page with `../Hello` title1295 path: "hello.md", title: "./Hello"1296 can find page with `./Hello` title1297 path: "dir/hello.md", title: "/dir/Hello"1298 can find page with `/dir/Hello` title1299 pages with different file extensions1300 extension: :md, path: "wiki-markdown.md", title: "wiki markdown"1301 can find page with md extension1302 extension: :markdown, path: "wiki-markdown-2.md", title: "wiki markdown 2"1303 can find page with markdown extension1304 extension: :rdoc, path: "wiki-rdoc.rdoc", title: "wiki rdoc"1305 can find page with rdoc extension1306 extension: :asciidoc, path: "wiki-asciidoc.asciidoc", title: "wiki asciidoc"1307 can find page with asciidoc extension1308 extension: :adoc, path: "wiki-asciidoc-2.adoc", title: "wiki asciidoc 2"1309 can find page with adoc extension1310 extension: :org, path: "wiki-org.org", title: "wiki org"1311 can find page with org extension1312 extension: :textile, path: "wiki-textile.textile", title: "wiki textile"1313 can find page with textile extension1314 extension: :creole, path: "wiki-creole.creole", title: "wiki creole"1315 can find page with creole extension1316 extension: :rest, path: "wiki-rest.rest", title: "wiki rest"1317 can find page with rest extension1318 extension: :rst, path: "wiki-rest-2.rst", title: "wiki rest 2"1319 can find page with rst extension1320 extension: :mediawiki, path: "wiki-mediawiki.mediawiki", title: "wiki mediawiki"1321 can find page with mediawiki extension1322 extension: :wiki, path: "wiki-mediawiki-2.wiki", title: "wiki mediawiki 2"1323 can find page with wiki extension1324 extension: :pod, path: "wiki-pod.pod", title: "wiki pod"1325 can find page with pod extension1326 extension: :text, path: "wiki-text.txt", title: "wiki text"1327 can find page with text extension1328 #find_sidebar1329 find sidebar with normal repository RPCs1330 behaves like wiki model #find_sidebar1331 finds the page defined as _sidebar1332 #find_file1333 returns the latest version of the file if it exists1334 returns nil if the page does not exist1335 returns a Gitlab::Git::WikiFile instance1336 returns the whole file1337 when load_content is disabled1338 includes the file data in the Gitlab::Git::WikiFile1339 wiki repository's default branch is updated1340 returns the page in the updated default branch1341 #create_page1342 behaves like create_page tests1343 creates a new wiki page1344 returns false when a duplicate page exists1345 stores an error message when a duplicate page exists1346 sets the correct commit message1347 sets the correct commit email1348 runs after_wiki_activity callbacks1349 cannot create two pages with the same title but different format1350 cannot create two pages with the same title but different capitalization1351 cannot create two pages with the same title, different capitalization, and different format1352 returns false if a page exists already in the repository1353 returns false if it has an invalid format1354 new_file: "foo", format: :markdown, existing_repo_files: [], success: true1355 is expected to eq true1356 new_file: "foo", format: :rdoc, existing_repo_files: [], success: true1357 is expected to eq true1358 new_file: "foo", format: :asciidoc, existing_repo_files: [], success: true1359 is expected to eq true1360 new_file: "foo", format: :org, existing_repo_files: [], success: true1361 is expected to eq true1362 new_file: "foo", format: :textile, existing_repo_files: [], success: false1363 is expected to eq false1364 new_file: "foo", format: :creole, existing_repo_files: [], success: false1365 is expected to eq false1366 new_file: "foo", format: :rest, existing_repo_files: [], success: false1367 is expected to eq false1368 new_file: "foo", format: :mediawiki, existing_repo_files: [], success: false1369 is expected to eq false1370 new_file: "foo", format: :pod, existing_repo_files: [], success: false1371 is expected to eq false1372 new_file: "foo", format: :plaintext, existing_repo_files: [], success: false1373 is expected to eq false1374 new_file: "foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1375 is expected to eq false1376 new_file: "foo", format: :markdown, existing_repo_files: ["foO.md"], success: false1377 is expected to eq false1378 new_file: "foO", format: :markdown, existing_repo_files: ["foo.md"], success: false1379 is expected to eq false1380 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mdfoo"], success: true1381 is expected to eq true1382 new_file: "foo", format: :markdown, existing_repo_files: ["foo.markdown"], success: false1383 is expected to eq false1384 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mkd"], success: false1385 is expected to eq false1386 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mkdn"], success: false1387 is expected to eq false1388 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mdown"], success: false1389 is expected to eq false1390 new_file: "foo", format: :markdown, existing_repo_files: ["foo.adoc"], success: false1391 is expected to eq false1392 new_file: "foo", format: :markdown, existing_repo_files: ["foo.asciidoc"], success: false1393 is expected to eq false1394 new_file: "foo", format: :markdown, existing_repo_files: ["foo.org"], success: false1395 is expected to eq false1396 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rdoc"], success: false1397 is expected to eq false1398 new_file: "foo", format: :markdown, existing_repo_files: ["foo.textile"], success: false1399 is expected to eq false1400 new_file: "foo", format: :markdown, existing_repo_files: ["foo.creole"], success: false1401 is expected to eq false1402 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rest"], success: false1403 is expected to eq false1404 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rest.txt"], success: false1405 is expected to eq false1406 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst"], success: false1407 is expected to eq false1408 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst.txt"], success: false1409 is expected to eq false1410 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst.txtfoo"], success: true1411 is expected to eq true1412 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mediawiki"], success: false1413 is expected to eq false1414 new_file: "foo", format: :markdown, existing_repo_files: ["foo.wiki"], success: false1415 is expected to eq false1416 new_file: "foo", format: :markdown, existing_repo_files: ["foo.pod"], success: false1417 is expected to eq false1418 new_file: "foo", format: :markdown, existing_repo_files: ["foo.txt"], success: false1419 is expected to eq false1420 new_file: "foo", format: :markdown, existing_repo_files: ["foo.Md"], success: false1421 is expected to eq false1422 new_file: "foo", format: :markdown, existing_repo_files: ["foo.jpg"], success: true1423 is expected to eq true1424 new_file: "foo", format: :rdoc, existing_repo_files: ["foo.md"], success: false1425 is expected to eq false1426 new_file: "foo", format: :rdoc, existing_repo_files: ["foO.md"], success: false1427 is expected to eq false1428 new_file: "foO", format: :rdoc, existing_repo_files: ["foo.md"], success: false1429 is expected to eq false1430 new_file: "foo", format: :asciidoc, existing_repo_files: ["foo.md"], success: false1431 is expected to eq false1432 new_file: "foo", format: :org, existing_repo_files: ["foo.md"], success: false1433 is expected to eq false1434 new_file: "foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1435 is expected to eq true1436 new_file: "/foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1437 is expected to eq false1438 new_file: "~foo", format: :markdown, existing_repo_files: [], success: true1439 is expected to eq true1440 new_file: "~~~foo", format: :markdown, existing_repo_files: [], success: true1441 is expected to eq true1442 new_file: "./foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1443 is expected to eq false1444 new_file: "../foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1445 is expected to eq false1446 new_file: "../../foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1447 is expected to eq false1448 new_file: "../../foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1449 is expected to eq true1450 new_file: "dir/foo", format: :markdown, existing_repo_files: ["foo.md"], success: true1451 is expected to eq true1452 new_file: "dir/foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: false1453 is expected to eq false1454 new_file: "dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1455 is expected to eq false1456 new_file: "/dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1457 is expected to eq false1458 new_file: "./dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1459 is expected to eq false1460 new_file: "../dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1461 is expected to eq false1462 new_file: "../dir/../foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: true1463 is expected to eq true1464 new_file: "../dir/../foo", format: :markdown, existing_repo_files: ["foo.rdoc"], success: false1465 is expected to eq false1466 new_file: "../dir/../dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1467 is expected to eq false1468 new_file: "../dir/../another/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: true1469 is expected to eq true1470 new_file: "another/dir/foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1471 is expected to eq true1472 new_file: "foo bar", format: :markdown, existing_repo_files: ["foo-bar.md"], success: false1473 is expected to eq false1474 new_file: "foo bar", format: :markdown, existing_repo_files: ["foo-bar.md"], success: true1475 is expected to eq true1476 new_file: "f\xF6\xF6", format: :markdown, existing_repo_files: ["f��.md"], success: false1477 is expected to eq false1478 #update_page1479 behaves like update_page tests1480 original_title: "test page", original_format: :markdown, updated_title: "new test page", updated_format: :markdown, expected_title: "new test page", expected_path: "new-test-page.md"1481 aggregate_failures1482 original_title: "test page", original_format: :markdown, updated_title: "test page", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1483 aggregate_failures1484 original_title: "test page", original_format: :markdown, updated_title: "test page", updated_format: :asciidoc, expected_title: "test page", expected_path: "test-page.asciidoc"1485 aggregate_failures1486 original_title: "test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :markdown, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.md"1487 aggregate_failures1488 original_title: "test page", original_format: :markdown, updated_title: "new dir/test page", updated_format: :markdown, expected_title: "new dir/test page", expected_path: "new-dir/test-page.md"1489 aggregate_failures1490 original_title: "test dir/test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :markdown, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.md"1491 aggregate_failures1492 original_title: "test dir/test page", original_format: :markdown, updated_title: "test dir/test page", updated_format: :markdown, expected_title: "test dir/test page", expected_path: "test-dir/test-page.md"1493 aggregate_failures1494 original_title: "test dir/test page", original_format: :markdown, updated_title: "test dir/test page", updated_format: :asciidoc, expected_title: "test dir/test page", expected_path: "test-dir/test-page.asciidoc"1495 aggregate_failures1496 original_title: "test dir/test page", original_format: :markdown, updated_title: "new test page", updated_format: :markdown, expected_title: "new test page", expected_path: "new-test-page.md"1497 aggregate_failures1498 original_title: "test dir/test page", original_format: :markdown, updated_title: "test page", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1499 aggregate_failures1500 original_title: "test page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1501 aggregate_failures1502 original_title: "test.page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test.page", expected_path: "test.page.md"1503 aggregate_failures1504 original_title: "testpage", original_format: :markdown, updated_title: "./testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1505 aggregate_failures1506 original_title: "test page", original_format: :markdown, updated_title: "~new test page", updated_format: :asciidoc, expected_title: "~new test page", expected_path: "~new-test-page.asciidoc"1507 aggregate_failures1508 original_title: "test page", original_format: :markdown, updated_title: "~~~new test page", updated_format: :asciidoc, expected_title: "~~~new test page", expected_path: "~~~new-test-page.asciidoc"1509 aggregate_failures1510 original_title: "test page", original_format: :markdown, updated_title: "new test page", updated_format: :asciidoc, expected_title: "new test page", expected_path: "new-test-page.asciidoc"1511 aggregate_failures1512 original_title: "test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :asciidoc, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.asciidoc"1513 aggregate_failures1514 original_title: "test dir/test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :asciidoc, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.asciidoc"1515 aggregate_failures1516 original_title: "test dir/test page", original_format: :markdown, updated_title: "new test page", updated_format: :asciidoc, expected_title: "new test page", expected_path: "new-test-page.asciidoc"1517 aggregate_failures1518 original_title: "test page", original_format: :markdown, updated_title: nil, updated_format: :asciidoc, expected_title: "test page", expected_path: "test-page.asciidoc"1519 aggregate_failures1520 original_title: "test dir/test page", original_format: :markdown, updated_title: nil, updated_format: :asciidoc, expected_title: "test dir/test page", expected_path: "test-dir/test-page.asciidoc"1521 aggregate_failures1522 original_title: "test dir/test page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test dir/test page", expected_path: "test-dir/test-page.md"1523 aggregate_failures1524 original_title: "test page", original_format: :markdown, updated_title: "", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1525 aggregate_failures1526 original_title: "test.page", original_format: :markdown, updated_title: "", updated_format: :markdown, expected_title: "test.page", expected_path: "test.page.md"1527 aggregate_failures1528 original_title: "testpage", original_format: :markdown, updated_title: "../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1529 aggregate_failures1530 original_title: "dir/testpage", original_format: :markdown, updated_title: "dir/../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1531 aggregate_failures1532 original_title: "dir/testpage", original_format: :markdown, updated_title: "./dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1533 aggregate_failures1534 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1535 aggregate_failures1536 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1537 aggregate_failures1538 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1539 aggregate_failures1540 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../another/testpage", updated_format: :markdown, expected_title: "another/testpage", expected_path: "another/testpage.md"1541 aggregate_failures1542 when format is invalid1543 returns false and sets error message1544 when format is not allowed1545 returns false and sets error message1546 when the repository fails to update1547 returns false and sets error message1548 when page path does not have a default extension1549 when format is not different1550 does not change the default extension1551 #delete_page1552 deletes the page1553 sets the correct commit email1554 runs after_wiki_activity callbacks1555 when an error is raised1556 logs the error and returns false1557 #hook_attrs1558 returns a hash with values1559 #default_branch1560 when repository is not created1561 returns the instance default branch1562 when repository is empty1563 returns the instance default branch1564 when repository is not empty1565 returns the repository default branch1566 #create_wiki_repository1567 when repository is not created1568 changes the HEAD reference to the default branch1569 when repository is empty1570 creates the repository with the default branch1571 #preview_slug1572 title: "The Best Thing", file_extension: :md, format: :markdown, expected_slug: "The-Best-Thing"1573 is expected to eq "The-Best-Thing"1574 matches the slug generated by gitaly1575 title: "The Best Thing", file_extension: :txt, format: :plaintext, expected_slug: "The-Best-Thing"1576 is expected to eq "The-Best-Thing"1577 matches the slug generated by gitaly1578 title: "A Subject/Title Here", file_extension: :txt, format: :plaintext, expected_slug: "A-Subject/Title-Here"1579 is expected to eq "A-Subject/Title-Here"1580 matches the slug generated by gitaly1581 title: "A subject", file_extension: :txt, format: :plaintext, expected_slug: "A-subject"1582 is expected to eq "A-subject"1583 matches the slug generated by gitaly1584 title: "A 1/B 2/C 3", file_extension: :txt, format: :plaintext, expected_slug: "A-1/B-2/C-3"1585 is expected to eq "A-1/B-2/C-3"1586 matches the slug generated by gitaly1587 title: "subject/title", file_extension: :txt, format: :plaintext, expected_slug: "subject/title"1588 is expected to eq "subject/title"1589 matches the slug generated by gitaly1590 title: "subject/title.md", file_extension: :txt, format: :plaintext, expected_slug: "subject/title.md"1591 is expected to eq "subject/title.md"1592 matches the slug generated by gitaly1593 title: "foo%2Fbar", file_extension: :txt, format: :plaintext, expected_slug: "foo%2Fbar"1594 is expected to eq "foo%2Fbar"1595 matches the slug generated by gitaly1596 title: "", file_extension: :md, format: :markdown, expected_slug: ".md"1597 is expected to eq ".md"1598 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)1599 title: "", file_extension: :txt, format: :plaintext, expected_slug: ".txt"1600 is expected to eq ".txt"1601 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)1602 #create_wiki_repository1603 tracks the repository storage in the database1604 #track_wiki_repository1605 when a tracking entry does not exist1606 creates a new entry1607 tracks the storage location1608 on a read-only instance1609 does not attempt to create a new entry1610 when a tracking entry exists1611 does not create a new entry in the database1612 updates the storage location1613 on a read-only instance1614 does not update the storage location1615 #storage1616 uses the group repository prefix1617 #repository_storage1618 gets the repository storage from the container1619 #hashed_storage?1620 returns true1621 #disk_path1622 returns the repository storage path1623 #after_post_receive1624 updates group statistics1625 behaves like EE wiki model1626 does not use Elasticsearch1627 #kerberos_url_to_repo1628 returns valid kerberos url for this repo1629 behaves like can housekeep repository1630 with a clean redis state1631 #pushes_since_gc1632 without any pushes1633 returns 01634 with a number of pushes1635 returns the number of pushes1636 #increment_pushes_since_gc1637 increments the number of pushes since the last GC1638 #reset_pushes_since_gc1639 resets the number of pushes since the last GC1640 #pushes_since_gc_redis_shared_state_key1641 returns the proper redis key format1642 #git_garbage_collect_worker_klass1643 defines a git gargabe collect worker1644GlobalSearch1645 Respect feature visibility levels1646 Private projects1647 does not find items if features are disabled1648 shows items to member only if features are enabled1649 Internal projects1650 does not find items if features are disabled1651 shows items to member only if features are enabled1652 shows items to member only if features are private1653 Public projects1654 does not find items if features are disabled1655 finds items if features are enabled1656 shows items to member only if features are private1657MergeTrains::Car1658 # order random1659 is expected to belong to pipeline required: false1660 is expected to belong to merge_request required: false1661 is expected to belong to user required: false1662 .total_count_in_train1663 returns the merge request1664 when the other merge request is on the merge train1665 returns the merge request1666 when the merge request has already been merged1667 returns zero1668 when the merge request is not on merge train1669 returns empty array1670 .by_id1671 returns merge trains by id ASC1672 #all_prev1673 when the merge request is at first on the train1674 returns nil1675 when the merge request is at last on the train1676 returns the previous merge requests1677 when the previous merge request has already been merged1678 returns empty array1679 #pipeline_not_succeeded?1680 when merge train does not have a pipeline1681 is expected to be falsey1682 when merge train has a pipeline1683 when pipeline failed1684 is expected to be truthy1685 when pipeline succeeded1686 is expected to be falsey1687 when pipeline is running1688 is expected to be falsey1689 .all_active_mrs_in_train1690 returns the merge request1691 when the other merge request is on the merge train1692 returns the merge requests1693 when the merge request has already been merged1694 is expected to be empty1695 when the merge request is not on merge train1696 returns empty array1697 #next1698 when the merge request is at last on the train1699 returns nil1700 when the other merge request is on the merge train1701 returns the next merge request1702 status transition1703 when status is idle1704 and transits to fresh1705 refreshes the state and set a pipeline1706 and transits to merged1707 does not allow the transition1708 and transits to stale1709 does not allow the transition1710 when status is fresh1711 and transits to merged1712 does not allow the transition1713 and transits to stale1714 refreshes asynchronously1715 when status is merging1716 and transits to merged1717 persists duration and merged_at1718 cleans up train car ref1719 when status is merged1720 and transits to merged1721 does not allow the transition1722 #requires_new_pipeline?1723 when merge train has a pipeline associated1724 is expected to be falsey1725 when merge train is stale1726 is expected to be truthy1727 when merge train does not have a pipeline1728 is expected to be truthy1729 #mergeable?1730 when merge train has successful pipeline1731 when merge request is first on train1732 is expected to be truthy1733 when the other merge request is on the merge train1734 is expected to be falsy1735 when merge train has non successful pipeline1736 when merge request is first on train1737 is expected to be falsey1738 .complete1739 returns only merged merge trains1740 .for_target1741 when target merge train 1's project1742 returns merge train 1 only1743 when target merge train 2's project1744 returns merge train 2 only1745 #active?1746 when status is idle1747 is expected to eq true1748 when status is merged1749 is expected to eq false1750 #destroy1751 when merge train has a pipeline1752 cancels the jobs in the pipeline1753 #previous_ref1754 when merge request is first on train1755 returns the target branch1756 when merge request is not first on train1757 returns the ref of the previous merge request1758 #cleanup_ref1759 executes cleanup_refs for merge request1760 with loose foreign key on merge_trains.pipeline_id1761 behaves like cleanup by a loose foreign key1762 cleans up (delete or nullify) the model1763 #index1764 is expected to eq 01765 when the merge train is at the second queue1766 is expected to eq 11767 .first_cars_in_trains1768 returns only first merge requests per merge train1769 when first_on_master has already been merged1770 returns second on master as active MR1771 #prev1772 when the merge request is at first on the train1773 returns nil1774 when the merge request is at last on the train1775 returns the next merge request1776 #cancel_pipeline!1777 cancels the existing pipeline1778 .sha_exists_in_history?1779 when there is a merge request on train1780 when the merge request has already been merging1781 is expected to eq true1782 when the merge request has already been merged1783 is expected to eq true1784 when there is another merge request on train and it has been merged1785 is expected to eq true1786 when limit is 11787 is expected to eq false1788 when the merge request has not been merged yet1789 is expected to eq false1790 when there are no merge requests on train1791 is expected to eq false1792 #all_next1793 returns nil1794 when the other merge request is on the merge train1795 returns the next merge requests1796 .active1797 returns only active merge trains1798 .first_car1799 returns the merge request1800 when the other merge request is on the merge train1801 returns the merge request1802 when the merge request has already been merged1803 is expected to be nil1804 when the merge request is not on merge train1805 returns empty array1806Vulnerabilities::Read1807 associations1808 is expected to belong to vulnerability required: false1809 is expected to belong to project required: false1810 is expected to belong to scanner class_name => Vulnerabilities::Scanner required: false1811 validations1812 is expected to validate that :vulnerability_id cannot be empty/falsy1813 is expected to validate that :project_id cannot be empty/falsy1814 is expected to validate that :scanner_id cannot be empty/falsy1815 is expected to validate that :report_type cannot be empty/falsy1816 is expected to validate that :severity cannot be empty/falsy1817 is expected to validate that :state cannot be empty/falsy1818 is expected to validate that :uuid cannot be empty/falsy1819 is expected to validate that the length of :location_image is at most 20481820 is expected to validate that :vulnerability_id is case-sensitively unique1821 is expected to validate that :uuid is case-insensitively unique1822 is expected to allow :has_issues to be ‹true›1823 is expected to allow :has_issues to be ‹false›1824 is expected not to allow :has_issues to be ‹nil›1825 is expected to allow :resolved_on_default_branch to be ‹true›1826 is expected to allow :resolved_on_default_branch to be ‹false›1827 is expected not to allow :resolved_on_default_branch to be ‹nil›1828 triggers1829 trigger on vulnerability_occurrences insert1830 when vulnerability_id is set1831 when the related vulnerability record is not marked as `present_on_default_branch`1832 does not create a new vulnerability_reads row1833 when the related vulnerability record is marked as `present_on_default_branch`1834 creates a new vulnerability_reads row1835 sets has_issues to true when there are issue links1836 when vulnerability_id is not set1837 does not create a new vulnerability_reads row1838 trigger on vulnerability_occurrences update1839 when vulnerability_id is updated1840 creates a new vulnerability_reads row1841 sets has_issues when the vulnerability has issue links1842 when vulnerability_id is not updated1843 does not create a new vulnerability_reads row1844 trigger on vulnerability_occurrences location update1845 when image is updated1846 updates location_image in vulnerability_reads1847 when agent_id is updated1848 updates cluster_agent_id in vulnerability_reads1849 when image or agent_id is not updated1850 does not update location_image or cluster_agent_id in vulnerability_reads1851 trigger on vulnerabilities update1852 when the vulnerability is not marked as `present_on_default_branch`1853 does not update vulnerability attributes in vulnerability_reads1854 when the vulnerability is marked as `present_on_default_branch`1855 when vulnerability attributes are updated1856 updates vulnerability attributes in vulnerability_reads1857 when vulnerability attributes are not updated1858 does not update vulnerability attributes in vulnerability_reads1859 trigger_insert_vulnerability_reads_from_vulnerability1860 when the vulnerability does not get marked as `present_on_default_branch`1861 does not create a new `vulnerability_reads` record1862 when the vulnerability gets marked as `present_on_default_branch`1863 creates a new `vulnerability_reads` record1864 sets has_issues when the created vulnerability has issue links1865 trigger on vulnerabilities_issue_link1866 on insert1867 updates has_issues in vulnerability_reads1868 on delete1869 does not change has_issues when there exists another issue1870 unsets has_issues when all issues are deleted1871 .by_scanner_ids1872 returns matching vulnerabilities1873 .for_projects1874 returns vulnerability_reads related to the given project IDs1875 .with_report_types1876 returns vulnerabilities matching the given report_types1877 .with_severities1878 returns vulnerabilities matching the given severities1879 .with_states1880 returns vulnerabilities matching the given states1881 .with_scanner_external_ids1882 returns vulnerabilities matching the given scanner external IDs1883 .with_container_image1884 returns vulnerabilities with given image1885 .with_resolution1886 when no argument is provided1887 is expected to contain exactly #<Vulnerabilities::Read id: 50, vulnerability_id: 52, project_id: 555, scanner_id: 54, report_type: "...0301", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1580>1888 when the argument is provided1889 when the given argument is `true`1890 is expected to contain exactly #<Vulnerabilities::Read id: 50, vulnerability_id: 52, project_id: 555, scanner_id: 54, report_type: "...0301", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1580>1891 when the given argument is `false`1892 is expected to contain exactly #<Vulnerabilities::Read id: 51, vulnerability_id: 53, project_id: 558, scanner_id: 55, report_type: "...c2a0", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1587>1893 .with_issues1894 when no argument is provided1895 is expected to contain exactly #<Vulnerabilities::Read id: 52, vulnerability_id: 54, project_id: 561, scanner_id: 56, report_type: "...ab79", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1594>1896 when the argument is provided1897 when the given argument is `true`1898 is expected to contain exactly #<Vulnerabilities::Read id: 52, vulnerability_id: 54, project_id: 561, scanner_id: 56, report_type: "...ab79", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1594>1899 when the given argument is `false`1900 is expected to contain exactly #<Vulnerabilities::Read id: 53, vulnerability_id: 55, project_id: 564, scanner_id: 57, report_type: "...c32b", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1601>1901 .as_vulnerabilities1902 returns vulnerabilities as list1903 .order_by1904 when method is nil1905 is expected to contain exactly #<Vulnerabilities::Read id: 58, vulnerability_id: 60, project_id: 579, scanner_id: 62, report_type: "...86d2", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1636>, #<Vulnerabilities::Read id: 59, vulnerability_id: 61, project_id: 582, scanner_id: 63, report_type: "...1c31", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1643>, and #<Vulnerabilities::Read id: 57, vulnerability_id: 59, project_id: 576, scanner_id: 61, report_type: "...5eb6", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1629>1906 when ordered by severity_desc1907 is expected to contain exactly #<Vulnerabilities::Read id: 58, vulnerability_id: 60, project_id: 579, scanner_id: 62, report_type: "...86d2", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1636>, #<Vulnerabilities::Read id: 59, vulnerability_id: 61, project_id: 582, scanner_id: 63, report_type: "...1c31", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1643>, and #<Vulnerabilities::Read id: 57, vulnerability_id: 59, project_id: 576, scanner_id: 61, report_type: "...5eb6", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1629>1908 when ordered by severity_asc1909 is expected to contain exactly #<Vulnerabilities::Read id: 57, vulnerability_id: 59, project_id: 576, scanner_id: 61, report_type: "...5eb6", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1629>, #<Vulnerabilities::Read id: 59, vulnerability_id: 61, project_id: 582, scanner_id: 63, report_type: "...1c31", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1643>, and #<Vulnerabilities::Read id: 58, vulnerability_id: 60, project_id: 579, scanner_id: 62, report_type: "...86d2", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1636>1910 when ordered by detected_desc1911 is expected to contain exactly #<Vulnerabilities::Read id: 59, vulnerability_id: 61, project_id: 582, scanner_id: 63, report_type: "...1c31", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1643>, #<Vulnerabilities::Read id: 58, vulnerability_id: 60, project_id: 579, scanner_id: 62, report_type: "...86d2", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1636>, and #<Vulnerabilities::Read id: 57, vulnerability_id: 59, project_id: 576, scanner_id: 61, report_type: "...5eb6", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1629>1912 when ordered by detected_asc1913 is expected to contain exactly #<Vulnerabilities::Read id: 57, vulnerability_id: 59, project_id: 576, scanner_id: 61, report_type: "...5eb6", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1629>, #<Vulnerabilities::Read id: 58, vulnerability_id: 60, project_id: 579, scanner_id: 62, report_type: "...86d2", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1636>, and #<Vulnerabilities::Read id: 59, vulnerability_id: 61, project_id: 582, scanner_id: 63, report_type: "...1c31", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1643>1914 .order_severity_1915 ascending1916 is expected to contain exactly #<Vulnerabilities::Read id: 60, vulnerability_id: 62, project_id: 585, scanner_id: 64, report_type: "...df08", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1650>, #<Vulnerabilities::Read id: 62, vulnerability_id: 64, project_id: 591, scanner_id: 66, report_type: "...db65", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1664>, and #<Vulnerabilities::Read id: 61, vulnerability_id: 63, project_id: 588, scanner_id: 65, report_type: "...4669", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1657>1917 descending1918 is expected to contain exactly #<Vulnerabilities::Read id: 61, vulnerability_id: 63, project_id: 588, scanner_id: 65, report_type: "...4669", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1657>, #<Vulnerabilities::Read id: 62, vulnerability_id: 64, project_id: 591, scanner_id: 66, report_type: "...db65", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1664>, and #<Vulnerabilities::Read id: 60, vulnerability_id: 62, project_id: 585, scanner_id: 64, report_type: "...df08", location_image: nil, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 1650>1919 .order_detected_at_1920 ascending1921 returns vulnerabilities ordered by created_at1922 descending1923 returns vulnerabilities ordered by created_at1924 .container_images1925 returns container images for vulnerabilities1926 .by_scanner1927 returns records by given scanner1928Geo::PagesDeploymentReplicator1929 invokes replicator.handle_after_create_commit on create1930 behaves like a replicator1931 Geo node status1932 on a primary site1933 .primary_total_count1934 when batch count feature flag is enabled1935 returns the number of available replicables on primary1936 when batch count feature flag is disabled1937 returns the number of available replicables on primary1938 on a secondary site1939 .registry_count1940 when batch count feature flag is enabled1941 returns the number of registries on secondary1942 when batch count feature flag is disabled1943 returns the number of registries on secondary1944 .synced_count1945 when batch count feature flag is enabled1946 returns the number of synced items on secondary1947 when batch count feature flag is disabled1948 returns the number of synced items on secondary1949 .failed_count1950 when batch count feature flag is enabled1951 returns the number of failed items on secondary1952 when batch count feature flag is disabled1953 returns the number of failed items on secondary1954 when replicator is Geo::RegistrySyncWorker compatible1955 has "created" and "deleted" events1956 #replicator1957 is defined and does not raise error1958 .replicables_for_current_secondary1959 when syncing object storage is enabled1960 behaves like is implemented and returns a valid relation1961 is implemented1962 when syncing object storage is disabled1963 behaves like is implemented and returns a valid relation1964 is implemented1965 with selective sync disabled1966 behaves like is implemented and returns a valid relation1967 is implemented1968 with selective sync enabled for namespaces1969 behaves like is implemented and returns a valid relation1970 is implemented1971 with selective sync enabled for shards1972 behaves like is implemented and returns a valid relation1973 is implemented1974 #handle_after_create_commit1975 creates a Geo::Event1976 calls #after_verifiable_update1977 when replication feature flag is disabled1978 does not call #after_verifiable_update1979 does not publish1980 #handle_after_destroy1981 creates a Geo::Event1982 when replication feature flag is disabled1983 does not publish1984 created event consumption1985 when the blob's project is in replicables for this geo node1986 invokes Geo::BlobDownloadService1987 when the blob's project is not in replicables for this geo node1988 does not invoke Geo::BlobDownloadService1989 deleted event consumption1990 when model_record was deleted from the DB and the replicator only has its ID1991 invokes Geo::FileRegistryRemovalService1992 backward compatibility1993 invokes Geo::FileRegistryRemovalService when delete event is in deprecated format1994 when object storage is enabled1995 when GitLab managed replication is enabled1996 deletes the file from object storage1997 when GitLab managed replication is disabled1998 does not delete the file from object storage1999 #carrierwave_uploader2000 is implemented2001 #model2002 is implemented2003 is a Class2004 responds to primary_key2005 #blob_path2006 when the file is locally stored2007 returns a valid path to a file2008 #calculate_checksum2009 when the file is locally stored2010 when the file exists2011 returns hexdigest of the file2012 when the file does not exist2013 raises an error2014 when the file is remotely stored2015 raises an error2016 #file_exists?2017 is expected to be truthy2018 when the file does not exist2019 is expected to be falsey2020 when the file is nil2021 is expected to be falsey2022 .bulk_create_delete_events_async2023 creates events2024 raises error when model_record_id is nil2025 events2026 has checksum_succeeded event2027 .verification_enabled?2028 when replication is enabled2029 when verification_feature_flag_enabled? returns true2030 returns true2031 when verification_feature_flag_enabled? returns false2032 returns false2033 when replication is disabled2034 returns false2035 .checksummed_count2036 when verification is enabled2037 when batch count feature flag is enabled2038 behaves like a counter of succeeded available verifiables2039 is expected to eq 12040 excludes other verification states2041 when batch count feature flag is disabled2042 behaves like a counter of succeeded available verifiables2043 is expected to eq 12044 excludes other verification states2045 when verification is disabled2046 returns nil2047 .verified_count2048 when verification is enabled2049 when batch count feature flag is enabled2050 behaves like a counter of succeeded available verifiables2051 is expected to eq 12052 excludes other verification states2053 when batch count feature flag is disabled2054 behaves like a counter of succeeded available verifiables2055 is expected to eq 12056 excludes other verification states2057 when verification is disabled2058 returns nil2059 .checksum_failed_count2060 when verification is enabled2061 when batch count feature flag is enabled2062 behaves like a counter of failed available verifiables2063 is expected to eq 12064 excludes other verification states2065 when batch count feature flag is disabled2066 behaves like a counter of failed available verifiables2067 is expected to eq 12068 excludes other verification states2069 when verification is disabled2070 returns nil2071 .verification_failed_count2072 when verification is enabled2073 when batch count feature flag is enabled2074 behaves like a counter of failed available verifiables2075 is expected to eq 12076 excludes other verification states2077 when batch count feature flag is disabled2078 behaves like a counter of failed available verifiables2079 is expected to eq 12080 excludes other verification states2081 when verification is disabled2082 returns nil2083 .verification_total_count2084 when verification is enabled2085 when batch count feature flag is enabled2086 when the verification_state is disabled2087 is expected to eq 02088 when the verification_state is not disabled2089 is expected to eq 12090 when batch count feature flag is disabled2091 when the verification_state is disabled2092 is expected to eq 02093 when the verification_state is not disabled2094 is expected to eq 12095 when verification is disabled2096 returns nil2097 .trigger_background_verification2098 when verification is enabled2099 for a Geo secondary2100 does not enqueue ReverificationBatchWorker2101 enqueues VerificationBatchWorker2102 enqueues VerificationTimeoutWorker2103 for a Geo primary2104 enqueues ReverificationBatchWorker2105 enqueues VerificationStateBackfillWorker2106 enqueues VerificationBatchWorker2107 enqueues VerificationTimeoutWorker2108 when verification is disabled2109 does not enqueue VerificationBatchWorker2110 does not enqueue VerificationTimeoutWorker2111 .backfill_verification_state_table2112 calls VerificationStateBackfillService2113 when on secondary2114 returns false2115 .verify_batch2116 when there are records needing verification2117 calls #verify on each replicator2118 .remaining_verification_batch_count2119 converts needs_verification_count to number of batches2120 .remaining_reverification_batch_count2121 converts needs_reverification_count to number of batches2122 .reverify_batch!2123 calls #reverify_batch2124 .replicator_batch_to_verify2125 returns usable Replicator instances2126 .model_record_id_batch_to_verify2127 when the batch is filled by pending rows2128 returns IDs of pending rows2129 does not call .verification_failed_batch2130 when that batch is not filled by pending rows2131 includes IDs of failed rows2132 .verification_pending_batch2133 when current node is a primary2134 delegates to the model class of the replicator2135 when current node is a secondary2136 delegates to the registry class of the replicator2137 .verification_failed_batch2138 when current node is a primary2139 delegates to the model class of the replicator2140 when current node is a secondary2141 delegates to the registry class of the replicator2142 .fail_verification_timeouts2143 when current node is a primary2144 delegates to the model class of the replicator2145 when current node is a secondary2146 delegates to the registry class of the replicator2147 #after_verifiable_update2148 verification_enabled: true, immutable: true, checksum: nil, checksummable: true, expect_verify_async: true2149 calls verify_async only if needed2150 verification_enabled: true, immutable: true, checksum: nil, checksummable: false, expect_verify_async: false2151 calls verify_async only if needed2152 verification_enabled: true, immutable: true, checksum: "abc123", checksummable: true, expect_verify_async: false2153 calls verify_async only if needed2154 verification_enabled: true, immutable: true, checksum: "abc123", checksummable: false, expect_verify_async: false2155 calls verify_async only if needed2156 verification_enabled: true, immutable: false, checksum: nil, checksummable: true, expect_verify_async: true2157 calls verify_async only if needed2158 verification_enabled: true, immutable: false, checksum: nil, checksummable: false, expect_verify_async: false2159 calls verify_async only if needed2160 verification_enabled: true, immutable: false, checksum: "abc123", checksummable: true, expect_verify_async: true2161 calls verify_async only if needed2162 verification_enabled: true, immutable: false, checksum: "abc123", checksummable: false, expect_verify_async: false2163 calls verify_async only if needed2164 verification_enabled: false, immutable: true, checksum: nil, checksummable: true, expect_verify_async: false2165 calls verify_async only if needed2166 verification_enabled: false, immutable: true, checksum: nil, checksummable: false, expect_verify_async: false2167 calls verify_async only if needed2168 verification_enabled: false, immutable: true, checksum: "abc123", checksummable: true, expect_verify_async: false2169 calls verify_async only if needed2170 verification_enabled: false, immutable: true, checksum: "abc123", checksummable: false, expect_verify_async: false2171 calls verify_async only if needed2172 verification_enabled: false, immutable: false, checksum: nil, checksummable: true, expect_verify_async: false2173 calls verify_async only if needed2174 verification_enabled: false, immutable: false, checksum: nil, checksummable: false, expect_verify_async: false2175 calls verify_async only if needed2176 verification_enabled: false, immutable: false, checksum: "abc123", checksummable: true, expect_verify_async: false2177 calls verify_async only if needed2178 verification_enabled: false, immutable: false, checksum: "abc123", checksummable: false, expect_verify_async: false2179 calls verify_async only if needed2180 #verify_async2181 on a Geo primary2182 calls verification_started! and enqueues VerificationWorker2183 #verify2184 wraps the checksum calculation in track_checksum_attempt!2185 #verification_state_tracker2186 on a Geo primary2187 returns model_record2188 on a Geo secondary2189 returns registry2190 #handle_after_checksum_succeeded2191 on a Geo primary2192 creates checksum_succeeded event2193 is called on verification success2194 on a Geo secondary2195 does not create an event2196 #consume_event_checksum_succeeded2197 with a persisted model_record2198 on a Geo primary2199 does nothing2200 on a Geo secondary2201 with a persisted registry2202 with a registry which is verified2203 sets state to verification_pending2204 with a registry which is pending verification2205 does not change state from verification_pending2206 with an unpersisted registry2207 does not persist the registry2208 #primary_verification_succeeded?2209 when the model record is verification_succeeded2210 returns true2211 when the model record is verification_succeeded2212 returns false2213 integration tests2214 on a primary2215 background backfill2216 verifies model records2217 triggered by events2218 verifies model records2219 on a secondary2220 background backfill2221 verifies registries2222 triggered by events2223 verifies registries2224MergeRequests::CreatePipelineService2225 #execute2226 responds with success2227 when push options contain ci.skip2228 creates a skipped pipeline2229 when merge request is a draft2230 behaves like merged result pipeline2231 creates a merge result pipeline2232 when legacy_merge_request_state_check_for_merged_result_pipelines feature flag is enabled2233 behaves like detached merge request pipeline2234 creates a detached merge request pipeline2235 responds with success2236 when merge request requires an approval2237 behaves like merged result pipeline2238 creates a merge result pipeline2239 when project setting for merge request pipelines is disabled2240 behaves like detached merge request pipeline2241 creates a detached merge request pipeline2242 responds with success2243 when merge request is submitted from fork2244 behaves like detached merge request pipeline2245 creates a detached merge request pipeline2246 responds with success2247 when the CreateService is retried2248 does not create a merge request pipeline twice2249 when merge request has no commit2250 behaves like detached merge request pipeline2251 creates a detached merge request pipeline2252 responds with success2253 when merge request has a conflict2254 behaves like detached merge request pipeline2255 creates a detached merge request pipeline2256 responds with success2257 when workflow:rules are specified2258 when bridge job is used2259 behaves like detached merge request pipeline2260 creates a detached merge request pipeline2261 responds with success2262 when .gitlab-ci.yml is invalid2263 persists a pipeline with a config error2264 responds with error2265TodoService2266 Epics2267 Epics2268 #new_epic2269 when an epic belongs to a public group2270 for mentioned users2271 creates todos for users mentioned2272 does not create todos for users not mentioned or without permissions2273 for directly addressed users2274 creates todos for users mentioned2275 does not create todos for users not mentioned or without permissions2276 combined2277 mentioned users2278 creates todos for users mentioned2279 does not create todos for users not mentioned or without permissions2280 directly addressed users2281 creates todos for users mentioned2282 does not create todos for users not mentioned or without permissions2283 when an epic belongs to a private group2284 for mentioned users2285 creates todos for users mentioned2286 does not create todos for users not mentioned or without permissions2287 for directly addressed users2288 creates todos for users mentioned2289 does not create todos for users not mentioned or without permissions2290 creates todos for group members when a group is mentioned2291 creates todos for users mentioned2292 does not create todos for users not mentioned or without permissions2293 #update_epic2294 for mentioned users2295 creates todos for users mentioned2296 does not create todos for users not mentioned or without permissions2297 for directly addressed users2298 creates todos for users mentioned2299 does not create todos for users not mentioned or without permissions2300 when toggling task list items2301 does not create todos2302 #new_note2303 when a note is created for an epic2304 marks pending epic todos for the note author as done2305 does not mark pending epic todos for the note author as done for system notes2306 mentions2307 for mentioned users2308 creates todos for users mentioned2309 does not create todos for users not mentioned or without permissions2310 for directly addressed users2311 creates todos for users mentioned2312 does not create todos for users not mentioned or without permissions2313 combined2314 mentioned users2315 creates todos for users mentioned2316 does not create todos for users not mentioned or without permissions2317 directly addressed users2318 creates todos for users mentioned2319 does not create todos for users not mentioned or without permissions2320 Merge Requests2321 #new_merge_request2322 when the merge request has approvers2323 when no_todo_for_approvers feature flag is disabled2324 creates a approval required todo for added approvers2325 behaves like when user is mentioned2326 creates a todo2327 behaves like when code owner is not mentioned2328 skips creating a todo2329 behaves like when code owner is mentioned2330 creates a todo2331 when no_todo_for_approvers feature flag is enabled2332 skips creating a approval required todo2333 behaves like when user is mentioned2334 creates a todo2335 behaves like when code owner is not mentioned2336 skips creating a todo2337 behaves like when code owner is mentioned2338 creates a todo2339 Merge Requests2340 an approver has lost access to the project2341 #new_merge_request2342 does not create a todo for the approver2343 #merge_train_removed2344 creates a pending todo for each merge_participant2345Ci::SyncReportsToApprovalRulesService#execute2346 with code coverage rules2347 when pipeline is complete2348 and head pipeline coverage is lower than base pipeline coverage2349 won't lower approvals_required count2350 behaves like a successful execution2351 is successful2352 and head pipeline coverage is higher than base pipeline coverage2353 lowers approvals_required count2354 behaves like a successful execution2355 is successful2356 when MR is merged2357 won't change approvals_required count2358 behaves like a successful execution2359 is successful2360 and head pipeline coverage is the same as base pipeline coverage2361 lowers approvals_required count2362 behaves like a successful execution2363 is successful2364 and head pipeline does not have coverage2365 does not lower approvals_required count2366 behaves like a successful execution2367 is successful2368 when pipeline is incomplete2369 won't lower approvals_required count2370 behaves like a successful execution2371 is successful2372 when base pipeline is missing2373 lowers approvals_required count2374 behaves like a successful execution2375 is successful2376 when base pipeline does not have coverage2377 does not lower approvals_required count2378 behaves like a successful execution2379 is successful2380 with security orchestration rules2381 when sync_approval_rules_from_findings is enabled2382 does not update approval rules2383 when there are security reports2384 when pipeline passes2385 when new vulnerabilities are present2386 when only existing vulnerabilities are present2387 lowers approval_required count2388 with a recent pipeline related to the default branch2389 lowers approval_required count2390 when there are security reports2391 when pipeline passes2392 when high-severity vulnerabilities are present2393 when high-severity vulnerabilities already present in target branch pipeline2394 lowers approvals_required count to zero2395 when high-severity vulnerabilities do not present in target branch pipeline2396 won't change approvals_required count2397 when source approval rule is not present2398 lowers approvals_required count to zero2399 without any scanners related to the security reports2400 lowers approvals_required count to zero2401 with the minimum number of vulnerabilities allowed greater than the amount from the security reports2402 lowers approvals_required count to zero2403 without any findings related to the severity levels2404 lowers approvals_required count to zero2405 without any vulnerability state related to the security reports2406 lowers approvals_required count to zero2407 when only low-severity vulnerabilities are present2408 lowers approvals_required count to zero2409 when merge_requests are merged2410 won't change approvals_required count2411 license compliance policy2412 when a license violates the license compliance policy2413 is expected not to change `license_compliance_rule.reload.approvals_required`2414 is expected to equal :success2415 when no licenses violate the license compliance policy2416 is expected to change `license_compliance_rule.reload.approvals_required` from 1 to 02417 is expected to equal :success2418 when an unexpected error occurs2419 is expected to equal :error2420 is expected to eql "Failed to update approval rules"2421 when pipeline fails2422 when high-severity vulnerabilities are present2423 when high-severity vulnerabilities already present in target branch pipeline2424 lowers approvals_required count to zero2425 when high-severity vulnerabilities do not present in target branch pipeline2426 won't change approvals_required count2427 when only low-severity vulnerabilities are present2428 lowers approvals_required count to zero2429 without security reports2430 won't change approvals_required count2431 license compliance policy2432 is expected not to change `license_compliance_rule.reload.approvals_required`2433 is expected to equal :success2434BackfillTraversalIdsForProjects2435 # order random2436 .completed?2437 when documents are missing field2438 is expected not to be completed2439 when no documents are missing field2440 is expected to be completed2441 .migrate2442 when migration is already completed2443 does not modify data2444 migration process2445 updates all documents2446 only updates documents missing a field2447 processes in batches2448 migration_options2449 has migration options set2450Issues::MoveService2451 #execute2452 group issue hooks2453 executes group issue hooks2454 when moved issue belongs to epic2455 records epic moved from project event2456 when moved issue does not belong to epic2457 does not record epic moved from project event2458 when it is not allowed to move issues of given type2459 throws error2460 resource weight events2461 creates expected resource weight events2462 #rewrite_related_vulnerability_issues2463 updates all vulnerability issue links with new issue2464 #rewrite_epic_issue2465 issue assigned to epic2466 updates epic issue reference2467 events tracking2468 tracks usage data for changed epic action2469 behaves like issue_edit snowplow tracking2470 behaves like Snowplow event tracking with RedisHLL context2471 behaves like Snowplow event tracking2472 is emitted2473 user can not update the epic2474 ignores epic issue reference2475 does not send usage data for changed epic action2476 epic update fails2477 does not send usage data for changed epic action2478 #delete_pending_escalations2479 deletes the pending escalations for the incident2480GroupHook2481 .executable/.disabled2482 finds the correct set of project hooks2483 when the flag is disabled2484 causes all hooks to be considered executable2485 causes no hooks to be considered disabled2486 #executable?2487 recent_failures: 0, not_until: :not_set, executable: true2488 has the correct state2489 when the flag is disabled2490 is always executable2491 recent_failures: 0, not_until: :past, executable: true2492 has the correct state2493 when the flag is disabled2494 is always executable2495 recent_failures: 0, not_until: :future, executable: true2496 has the correct state2497 when the flag is disabled2498 is always executable2499 recent_failures: 0, not_until: :now, executable: true2500 has the correct state2501 when the flag is disabled2502 is always executable2503 recent_failures: 1, not_until: :not_set, executable: true2504 has the correct state2505 when the flag is disabled2506 is always executable2507 recent_failures: 1, not_until: :past, executable: true2508 has the correct state2509 when the flag is disabled2510 is always executable2511 recent_failures: 1, not_until: :future, executable: true2512 has the correct state2513 when the flag is disabled2514 is always executable2515 recent_failures: 3, not_until: :not_set, executable: true2516 has the correct state2517 when the flag is disabled2518 is always executable2519 recent_failures: 3, not_until: :past, executable: true2520 has the correct state2521 when the flag is disabled2522 is always executable2523 recent_failures: 3, not_until: :future, executable: true2524 has the correct state2525 when the flag is disabled2526 is always executable2527 recent_failures: 4, not_until: :not_set, executable: false2528 has the correct state2529 when the flag is disabled2530 is always executable2531 recent_failures: 4, not_until: :past, executable: true2532 has the correct state2533 when the flag is disabled2534 is always executable2535 recent_failures: 4, not_until: :now, executable: false2536 has the correct state2537 when the flag is disabled2538 is always executable2539 recent_failures: 4, not_until: :future, executable: false2540 has the correct state2541 when the flag is disabled2542 is always executable2543 #enable!2544 makes a hook executable if it was marked as failed2545 makes a hook executable if it is currently backed off2546 does not update hooks unless necessary2547 is expected to change `hook.executable?` from false to true2548 #backoff!2549 when we have not backed off before2550 does not disable the hook2551 when we have exhausted the grace period2552 is expected to change `hook.backoff_count` by 12553 when the hook is permanently disabled2554 does not set disabled_until2555 does not increment the backoff count2556 when the flag is disabled2557 does not increment backoff count2558 #failed!2559 is expected to change `hook.recent_failures` by 12560 when the flag is disabled2561 does not increment recent failure count2562 #disable!2563 disables a hook2564 does nothing if the hook is already disabled2565 is expected to change `hook.executable?` from true to false2566 when the flag is disabled2567 does not disable the hook2568 #temporarily_disabled?2569 is false when not temporarily disabled2570 allows FAILURE_THRESHOLD initial failures before we back-off2571 when hook has been told to back off2572 is true2573 when the flag is disabled2574 is false2575 #permanently_disabled?2576 is false when not disabled2577 when hook has been disabled2578 is true2579 when the flag is disabled2580 is false2581 #alert_status2582 is expected to eq :executable2583 when hook has been disabled2584 is expected to eq :disabled2585 when the flag is disabled2586 is expected to eq :executable2587 when hook has been backed off2588 is expected to eq :temporarily_disabled2589 when the flag is disabled2590 is expected to eq :executable2591 associations2592 is expected to belong to group required: false2593 behaves like includes Limitable concern2594 #exceeds_limits?2595 without plan limits configured2596 is expected to eq false2597 without plan limits configured2598 is expected to eq false2599 with an existing model2600 is expected to eq true2601 validations2602 is expected to be a kind of Limitable2603 without plan limits configured2604 can create new models2605 with plan limits configured2606 can create new models2607 with an existing model2608 cannot create new models exceeding the plan limits2609 #parent2610 returns the associated group2611 #application_context2612 includes the type and group2613Geo::FrameworkRepositorySyncService2614 behaves like geo base sync execution2615 #execute2616 when can acquire exclusive lease2617 executes the synchronization2618 when exclusive lease is not acquired2619 is does not execute synchronization2620 behaves like geo base sync fetch2621 #sync_repository2622 tells registry that sync will start now2623 #fetch_repository2624 cleans up temporary repository2625 syncs the HEAD ref2626 with existing repository2627 fetches repository from geo node2628 with a never synced repository2629 clones repository from geo node2630 reschedules sync due to race condition instead of waiting for backfill2631 #mark_sync_as_successful2632 when updated event was processed during a sync2633 sets reschedule sync2634 #execute2635 when reschedule sync is set2636 reschedules the sync after the lease block2637 #execute2638 returns the lease when succeed2639 returns the lease when sync fail2640 does not fetch project repository if cannot obtain a lease2641 voids the failure message when it succeeds after an error2642 expires repository caches2643 repository housekeeping2644 when the replicator class supports housekeeping2645 runs housekeeping2646 does not raise an error when a lease can not be taken2647 when the replicator class does not support housekeeping2648 does not run housekeeping2649 with existing repository2650 fetches git repository with JWT credentials2651 rescues when Gitlab::Shell::Error is raised2652 rescues exception and fires after_create hook when Gitlab::Git::Repository::NoRepository is raised2653 increases retry count when Gitlab::Git::Repository::NoRepository is raised2654 marks sync as successful if no repository found2655 marks sync as failed2656 repository housekeeping2657 when the count is high enough2658 does not run any task specifically2659 when there were errors2660 does not run any task specifically2661 when the count is low enough2662 does not run housekeeping2663 when there were errors2664 does not run housekeeping2665 with a never synced repository2666 with geo_use_clone_on_first_sync flag enabled2667 clones repository with JWT credentials2668 repository housekeeping2669 runs the garbage collection task specifically2670 when there were errors2671 does not run housekeeping2672 with geo_use_clone_on_first_sync flag disabled2673 fetches repository with JWT credentials2674 repository housekeeping2675 runs the garbage collection task specifically2676 when there were errors2677 runs the garbage collection task specifically2678 when repository is redownloaded2679 sets the redownload flag to false after success2680 tries to redownload repo2681 with geo_use_clone_on_first_sync flag disabled2682 creates a new repository and fetches with JWT credentials2683 cleans temporary repo after redownload2684 repository housekeeping2685 when the count is high enough2686 runs the garbage collection task specifically2687 when there were errors2688 does not run any task specifically2689 when the count is low enough2690 runs the garbage collection task specifically2691 when there were errors2692 does not run housekeeping2693 with geo_use_clone_on_first_sync flag enabled2694 clones a new repository with JWT credentials2695 cleans temporary repo after redownload2696 repository housekeeping2697 when the count is high enough2698 runs the garbage collection task specifically2699 when there were errors2700 does not run any task specifically2701 when the count is low enough2702 runs the garbage collection task specifically2703 when there were errors2704 does not run housekeeping2705 tracking database2706 temporary repositories2707 there is a leftover repository2708 removes leftover repository2709 when repository sync succeed2710 sets last_synced_at2711 logs success with timings2712 sets retry_count and repository_retry_at to nil2713 with non empty repositories2714 when HEAD change2715 syncs gitattributes to info/attributes (FAILED - 1)2716 updates the default branch2717 when HEAD does not change2718 syncs gitattributes to info/attributes (FAILED - 2)2719 updates the default branch2720 when repository sync fail2721 sets correct values for registry record2722 retries2723 with repository previously synced2724 tries to fetch repo2725 tries to redownload when should_be_redownloaded2726 successfully redownloads the repository even if the retry time exceeds max value2727 no repository2728 does not raise an error2729 with snapshotting enabled2730 behaves like sync retries use the snapshot RPC2731 snapshot synchronization method2732 does not attempt to snapshot for initial sync2733 does not attempt to snapshot for ordinary retries2734 registry is ready to be snapshotted2735 attempts to snapshot2736 attempts to clone if snapshotting raises an exception2737 with snapshotting disabled2738 does not attempt to snapshot for initial sync2739 does not attempt to snapshot for ordinary retries2740 does not attempt to snapshot when registry is ready to be redownloaded2741 #should_be_redownloaded?2742 force_to_redownload: false, retry_count: nil, expected: false2743 returns the expected boolean2744 force_to_redownload: false, retry_count: 0, expected: false2745 returns the expected boolean2746 force_to_redownload: false, retry_count: 1, expected: false2747 returns the expected boolean2748 force_to_redownload: false, retry_count: 10, expected: false2749 returns the expected boolean2750 force_to_redownload: false, retry_count: 11, expected: true2751 returns the expected boolean2752 force_to_redownload: false, retry_count: 12, expected: false2753 returns the expected boolean2754 force_to_redownload: false, retry_count: 13, expected: true2755 returns the expected boolean2756 force_to_redownload: false, retry_count: 14, expected: false2757 returns the expected boolean2758 force_to_redownload: false, retry_count: 101, expected: true2759 returns the expected boolean2760 force_to_redownload: false, retry_count: 102, expected: false2761 returns the expected boolean2762 force_to_redownload: true, retry_count: nil, expected: true2763 returns the expected boolean2764 force_to_redownload: true, retry_count: 0, expected: true2765 returns the expected boolean2766 force_to_redownload: true, retry_count: 11, expected: true2767 returns the expected boolean2768Groups::UpdateService#execute2769 audit events2770 #visibility2771 when licensed2772 does not log audit event if operation fails2773 does not log audit event if operation results in no change2774 when operation succeeds2775 logs an audit event2776 logs the audit event info2777 calls the audit method with the event type2778 when not licensed2779 does not log audit event2780 ip restrictions2781 when IP restrictions were changed2782 when licensed2783 does not log audit event if operation fails2784 does not log audit event if operation results in no change2785 when operation succeeds2786 logs an audit event2787 logs the audit event info2788 calls the audit method with the event type2789 when not licensed2790 does not log audit event2791 sub group2792 sends the audit streaming event2793 changing file_template_project_id2794 as a group maintainer2795 does not allow a project to be removed2796 does not allow a project to be set2797 as a group owner2798 allows a project to be removed2799 allows a valid project to be set2800 does not allow a project outwith the group to be set2801 does not allow a non-existent project to be set2802 in a subgroup2803 does not allow a project the group owner cannot see to be set2804 allows a project in the subgroup to be set2805 repository_size_limit assignment as Bytes2806 when param present2807 converts from MB to Bytes2808 when param not present2809 assign nil value2810 setting ip_restriction2811 when ip_restriction already exists2812 empty ip restriction param2813 deletes ip restriction2814 setting allowed email domain2815 when allowed_email_domain already exists2816 allowed_email_domains_list param is not specified2817 does not call EE::AllowedEmailDomains::UpdateService#execute2818 allowed_email_domains_list param is blank2819 as a group owner2820 calls EE::AllowedEmailDomains::UpdateService#execute2821 update is successful2822 deletes existing allowed_email_domain record2823 as a normal user2824 calls EE::AllowedEmailDomains::UpdateService#execute2825 update is not successful2826 registers an error2827 does not delete existing allowed_email_domain record2828 updating protected params2829 as an admin2830 updates the attributes2831 as a regular user2832 ignores the attributes2833 updating insight_attributes.project_id param2834 when project is not in the group2835 when user can read the project2836 behaves like ignorance of the Insights project ID2837 ignores the Insights project ID2838 when user cannot read the project2839 behaves like ignorance of the Insights project ID2840 ignores the Insights project ID2841 when project is in the group2842 when user can read the project2843 behaves like successful update of the Insights project2844 updates the Insights project2845 when user cannot read the project2846 behaves like ignorance of the Insights project ID2847 ignores the Insights project ID2848 updating analytics_dashboards_pointer_attributes.target_project_id param2849 updates the Analytics Dashboards pointer project2850 when pointer project is empty2851 removes pointer project2852 updating `max_personal_access_token_lifetime` param2853 updates the attribute2854 when the group does not enforce managed accounts2855 behaves like it does not call the update lifetime service2856 doesn't call the update lifetime service2857 when the group enforces managed accounts2858 without `personal_access_token_expiration_policy` licensed2859 behaves like it does not call the update lifetime service2860 doesn't call the update lifetime service2861 with personal_access_token_expiration_policy licensed2862 when `max_personal_access_token_lifetime` is updated to null value2863 behaves like it does not call the update lifetime service2864 doesn't call the update lifetime service2865 when `max_personal_access_token_lifetime` is updated to a non-null value2866 executes the update lifetime service2867ApprovalRules::ParamsFilteringService2868 #execute2869 create2870 behaves like assigning users and groups2871 user can update approvers2872 only assigns eligible users and groups2873 user cannot update approvers2874 deletes the approval_rules_attributes from params2875 empty project approval rule2876 adds empty rule2877 inapplicable user defined rules2878 when multiple_approval_rules feature is available2879 adds inapplicable user defined rules2880 when multiple_approval_rules feature is not available2881 does not add inapplicable user defined rules2882 any approver rule2883 sets rule type for the rules attributes2884 any approver rule from a project rule2885 and the project rule has hidden groups2886 sets rule type for the rules attributes2887 update2888 behaves like assigning users and groups2889 user can update approvers2890 only assigns eligible users and groups2891 user cannot update approvers2892 deletes the approval_rules_attributes from params2893 inapplicable user defined rules2894 does not add inapplicable user defined rules2895 when reset_approval_rules_to_defaults is true2896 when multiple_approval_rules feature is available2897 adds inapplicable user defined rules2898 when multiple_approval_rules feature is not available2899 does not add inapplicable user defined rules2900 with remove_hidden_groups being true2901 behaves like assigning users and groups2902 user can update approvers2903 only assigns eligible users and groups2904 user cannot update approvers2905 deletes the approval_rules_attributes from params2906ProtectedBranches::CreateService2907 #execute2908 adds a security audit event entry2909 code_owner_approval_required2910 when unavailable2911 ignores incoming params and sets code_owner_approval_required to false2912 when available2913 when code_owner_approval_required param is true2914 sets code_owner_approval_required to true2915 behaves like records an onboarding progress action2916 is expected to receive execute({:action=>:code_owners_enabled}) 1 time2917 when code_owner_approval_required param is false2918 sets code_owner_approval_required to false2919 behaves like does not record an onboarding progress action2920 is expected not to receive new(*(any args)) 0 times2921 when security_orchestration_policies is not licensed2922 does not sync scan_finding_approval_rules2923 when security_orchestration_policies is licensed2924 syncs scan_finding_approval_rules2925 when there are open merge requests2926 calls MergeRequest::SyncCodeOwnerApprovalRules to update open MRs2927 when the branch is a wildcard2928 with wildcard: *ture2929 calls MergeRequest::SyncCodeOwnerApprovalRules to update open MRs2930 with wildcard: *eatur*2931 calls MergeRequest::SyncCodeOwnerApprovalRules to update open MRs2932 with wildcard: feat*2933 calls MergeRequest::SyncCodeOwnerApprovalRules to update open MRs2934 with invalid params2935 doesn't add a security audit event entry2936 when entity group2937 return early in `sync_code_owner_approval_rules`2938 return early in `track_onboarding_progress`2939 when security_orchestration_policies is not licensed2940 does not sync scan_finding_approval_rules2941 when security_orchestration_policies is licensed2942 syncs scan_finding_approval_rules2943IncidentManagement::OncallShiftGenerator2944 # order random2945 #for_timeframe2946 with no participants2947 is expected to be empty2948 with one participant2949 behaves like unsaved shifts2950 returns 3 shifts of 5 days, all for the same participant2951 when timestamp is at the end of a shift2952 behaves like unsaved shifts2953 returns the second and third shift2954 with many participants2955 behaves like unsaved shifts2956 returns One shift of 5 days long for each participant2957 with shift active period times set2958 splits the shifts daily by each active period2959 behaves like unsaved shifts2960 returns 5 shifts for each participant split by each day2961 with week length unit2962 splits the shifts daily by each active period2963 behaves like unsaved shifts2964 returns 7 shifts for each participant split by each day2965 rotation start time is in middle of active period2966 behaves like unsaved shifts2967 returns 5 shifts for each participant split by each day2968 active period is overnight2969 splits the shifts daily by each active period2970 behaves like unsaved shifts2971 returns 5 shifts for each participant with overnight shifts2972 when end time is earlier than start time2973 is expected to be empty2974 when start time is the same time as the rotation start time2975 behaves like unsaved shifts2976 returns 2 shifts of 5 days starting with first participant at the rotation start time2977 when start time is earlier than the rotation start time2978 behaves like unsaved shifts2979 returns 2 shifts of 5 days starting with the first participant at the rotation start time2980 when start time coincides with a shift change2981 behaves like unsaved shifts2982 returns 2 shifts of 5 days, starting with the second participant and the second shift2983 when start time is partway through a shift2984 behaves like unsaved shifts2985 returns 3 shifts of 5 days staring with the first participant which includes the partially completed shift2986 when the rotation has been completed many times over2987 behaves like unsaved shifts2988 returns 3 shifts of 5 days starting with the first participant beginning 7 weeks after rotation start time2989 when timeframe covers the rotation many times over2990 behaves like unsaved shifts2991 returns 7 shifts of 5 days starting with the first participant2992 with rotation end time2993 when the rotation end time coincides with a shift end2994 when end time is equal_to the rotation end time2995 behaves like unsaved shifts2996 returns 3 shifts of 5 days which ends at the rotation end time2997 when end time is less_than the rotation end time2998 behaves like unsaved shifts2999 returns 3 shifts of 5 days which ends at the rotation end time3000 when end time is greater_than the rotation end time3001 behaves like unsaved shifts3002 returns 3 shifts of 5 days which ends at the rotation end time3003 when end time is well_past the rotation end time3004 behaves like unsaved shifts3005 returns 3 shifts of 5 days which ends at the rotation end time3006 when the rotation end time is partway through a shift3007 when end time is equal_to the rotation end time3008 behaves like unsaved shifts3009 returns 2 shifts of 5 days and one partial shift which ends at the rotation end time3010 when end time is less_than the rotation end time3011 behaves like unsaved shifts3012 returns 2 shifts of 5 days and one partial shift which ends at the rotation end time3013 when end time is greater_than the rotation end time3014 behaves like unsaved shifts3015 returns 2 shifts of 5 days and one partial shift which ends at the rotation end time3016 when end time is well_past the rotation end time3017 behaves like unsaved shifts3018 returns 2 shifts of 5 days and one partial shift which ends at the rotation end time3019 in timezones with daylight-savings3020 with positive UTC offsets3021 with rotation in hours3022 switching to daylight savings time3023 when overlapping the switch3024 behaves like unsaved shifts3025 returns hour-long shifts which start in NZST(+1200) and switch to NZDT(+1300)3026 starting after switch3027 behaves like unsaved shifts3028 returns hour-long shifts which are entirely in NZDT(+1300)3029 starting after multiple switches3030 behaves like unsaved shifts3031 returns hour-long shifts which are entirely back in NZST(+1200) after 2 timezone switches since the rotation start time3032 switching off daylight savings time3033 when overlapping the switch3034 behaves like unsaved shifts3035 returns hour-long shifts which start in NZDT(+1300) and switch to NZST(+1200)3036 starting after switch3037 behaves like unsaved shifts3038 returns hour-long shifts which are entirely in NZST(+1200)3039 starting after multiple switches3040 behaves like unsaved shifts3041 returns hour-long shifts which are entirely back in NZST(+1300) after 2 timezone switches since the rotation start time3042 with rotation in days3043 switching to daylight savings time3044 when overlapping the switch3045 behaves like unsaved shifts3046 returns day-long shifts which start in NZST(+1200) and switch to NZDT(+1300)3047 starting after switch3048 behaves like unsaved shifts3049 returns day-long shifts which are entirely in NZDT(+1300)3050 starting after multiple switches3051 behaves like unsaved shifts3052 returns day-long shifts which are entirely back in NZST(+1200) after 2 timezone switches since the rotation start time3053 switching off daylight savings time3054 when overlapping the switch3055 behaves like unsaved shifts3056 returns day-long shifts which start in NZDT(+1300) and switch to NZST(+1200)3057 starting after switch3058 behaves like unsaved shifts3059 returns day-long shifts which are entirely in NZST(+1200)3060 starting after multiple switches3061 behaves like unsaved shifts3062 returns day-long shifts which are entirely back in NZST(+1300) after 2 timezone switches since the rotation start time3063 with rotation in weeks3064 switching to daylight savings time3065 when overlapping the switch3066 behaves like unsaved shifts3067 returns 2-week-long shifts which start in NZST(+1200) and switch to NZDT(+1300)3068 starting after switch3069 behaves like unsaved shifts3070 returns 2-week-long shifts which are entirely in NZDT(+1300)3071 starting after multiple switches3072 behaves like unsaved shifts3073 returns 2-week-long shifts which are entirely back in NZST(+1200) after 2 timezone switches since the rotation start time3074 switching off daylight savings time3075 when overlapping the switch3076 behaves like unsaved shifts3077 returns 2-week-long shifts which start in NZDT(+1300) and switch to NZST(+1200)3078 starting after switch3079 behaves like unsaved shifts3080 returns 2-week-long shifts which are entirely in NZST(+1200)3081 starting after multiple switches3082 behaves like unsaved shifts3083 returns 2-week-long shifts which are entirely back in NZST(+1200) after 2 timezone switches since the rotation start time3084 with negative UTC offsets3085 with rotation in hours3086 switching to daylight savings time3087 when overlapping the switch3088 behaves like unsaved shifts3089 returns hour-long shifts which start in EST(-0500) and switch to EDT(-0400)3090 starting after switch3091 behaves like unsaved shifts3092 returns hour-long shifts which are entirely in EDT(-0400)3093 starting after multiple switches3094 behaves like unsaved shifts3095 returns hour-long shifts which are entirely back in EST(-0500) after 2 timezone switches since the rotation start time3096 switching off daylight savings time3097 when overlapping the switch3098 behaves like unsaved shifts3099 returns hour-long shifts which start in EDT(-0400) and switch to EST(-0500)3100 starting after switch3101 behaves like unsaved shifts3102 returns hour-long shifts which are entirely in EST(-0500)3103 starting after multiple switches3104 behaves like unsaved shifts3105 returns hour-long shifts which are entirely back in EDT(-0400) after 2 timezone switches since the rotation start time3106 with rotation in days3107 switching to daylight savings time3108 when overlapping the switch3109 behaves like unsaved shifts3110 returns day-long shifts which start in EST(-0500) and switch to EDT(-0400)3111 starting after switch3112 behaves like unsaved shifts3113 returns day-long shifts which are entirely in EDT(-0400)3114 starting after multiple switches3115 behaves like unsaved shifts3116 returns day-long shifts which are entirely back in EST(-0500) after 2 timezone switches since the rotation start time3117 switching off daylight savings time3118 when overlapping the switch3119 behaves like unsaved shifts3120 returns day-long shifts which start in EDT(-0400) and switch to EST(-0500)3121 starting after switch3122 behaves like unsaved shifts3123 returns day-long shifts which are entirely in EST(-0500)3124 starting after multiple switches3125 behaves like unsaved shifts3126 returns day-long shifts which are entirely back in EDT(-0400) after 2 timezone switches since the rotation start time3127 with rotation in weeks3128 switching to daylight savings time3129 when overlapping the switch3130 behaves like unsaved shifts3131 returns 2-week-long shifts which start in EST(-0500) and switch to EDT(-0400)3132 starting after switch3133 behaves like unsaved shifts3134 returns 2-week-long shifts which are entirely in EDT(-0400)3135 starting after multiple switches3136 behaves like unsaved shifts3137 returns 2-week-long shifts which are entirely back in EST(-0500) after 2 timezone switches since the rotation start time3138 switching off daylight savings time3139 when overlapping the switch3140 behaves like unsaved shifts3141 returns 2-week-long shifts which start in EDT(-0400) and switch to EST(-0500)3142 starting after switch3143 behaves like unsaved shifts3144 returns 2-week-long shifts which are entirely in EST(-0500)3145 starting after multiple switches3146 behaves like unsaved shifts3147 returns 2-week-long shifts which are entirely back in EDT(-0400) after 2 timezone switches since the rotation start time3148 #for_timestamp3149 with no participants3150 is expected to be nil3151 with participants3152 when timestamp is before the rotation start time3153 is expected to be nil3154 when timestamp matches the rotation start time3155 behaves like unsaved shift3156 returns shift which starts at the same time as the rotation3157 when timestamp matches a shift start/end time3158 behaves like unsaved shift3159 returns the next shift of the rotation3160 when timestamp is in the middle of a shift3161 behaves like unsaved shift3162 returns the shift during which the timestamp occurs3163 when timestamp is at the end of a shift3164 behaves like unsaved shift3165 returns the second shift3166 with rotation end time3167 when timestamp matches rotation end time3168 is expected to be nil3169 when timestamp is before rotation end time3170 behaves like unsaved shift3171 returns the shift during which the timestamp occurs3172 when timestamp is at rotation end time3173 is expected to be nil3174 with shift active period times set3175 when timestamp is the start of rotation, but before active period3176 is expected to be nil3177 when timestamp is the same time as active period start3178 behaves like unsaved shift3179 returns the first shift of the shift cycle (split by the active period)3180 when timestamp is the same time as active period end3181 is expected to be nil3182 when timestamp is the after the active period ends3183 is expected to be nil3184NamespaceSetting3185 validations3186 is expected to validate that :unique_project_download_limit cannot be empty/falsy3187 is expected to validate that :unique_project_download_limit_interval_in_seconds cannot be empty/falsy3188 is expected to validate that :unique_project_download_limit looks like an integer greater than or equal to 0 and less than or equal to 100003189 is expected to validate that :unique_project_download_limit_interval_in_seconds looks like an integer greater than or equal to 0 and less than or equal to 8640003190 unique_project_download_limit_allowlist3191 is expected to allow :unique_project_download_limit_allowlist to be ‹[]›3192 is expected to allow :unique_project_download_limit_allowlist to be ‹["user504"]›3193 is expected not to allow :unique_project_download_limit_allowlist to be ‹nil›3194 is expected not to allow :unique_project_download_limit_allowlist to be ‹["unknown_user"]›3195 when maximum length is exceeded3196 is not valid3197 unique_project_download_limit_alertlist3198 is expected to allow :unique_project_download_limit_alertlist to be ‹[]›3199 is expected to allow :unique_project_download_limit_alertlist to be ‹[1371]›3200 is expected to allow :unique_project_download_limit_alertlist to be ‹nil›3201 is expected not to allow :unique_project_download_limit_alertlist to be ‹[2147483647]›3202 when maximum length is exceeded3203 is not valid3204 when empty3205 returns the user ids of the active group owners3206 when not empty3207 returns the set user ids3208 #prevent_forking_outside_group?3209 with feature available3210 group with no associated saml provider3211 returns namespace setting3212 group with associated saml provider3213 when it is configured to true on saml level3214 returns true3215 when it is configured to false on saml level3216 returns false3217 when setting is configured on namespace level3218 returns namespace setting3219 without feature available3220 returns false3221 when saml setting is available3222 when it is configured to true on saml level3223 returns true3224 when it is configured to false on saml level3225 returns false3226 validating new_user_signup_cap3227 feature_available: true, old_value: nil, new_value: 10, expectation: true3228 returns the expected response3229 feature_available: true, old_value: 0, new_value: 10, expectation: true3230 returns the expected response3231 feature_available: true, old_value: 0, new_value: 0, expectation: true3232 returns the expected response3233 feature_available: false, old_value: nil, new_value: 10, expectation: false3234 returns the expected response3235 feature_available: false, old_value: 10, new_value: 10, expectation: true3236 returns the expected response3237 when enabling the setting3238 when the group is a subgroup3239 behaves like user cap is not available3240 is invalid3241 when the group is shared externally3242 behaves like user cap is not available3243 is invalid3244 when the namespace is a user3245 behaves like user cap is not available3246 is invalid3247 hooks related to group user cap update3248 when updating a group with a user cap3249 also sets share_with_group_lock and prevent_sharing_groups_outside_hierarchy to true3250 has share_with_group_lock and prevent_sharing_groups_outside_hierarchy returning true for descendent groups3251 when removing a user cap from namespace settings3252 leaves share_with_group_lock and prevent_sharing_groups_outside_hierarchy set to true to the related group3253 .allowed_namespace_settings_params3254 includes attributes used for limiting unique project downloads3255 .cascading_with_parent_namespace3256 when calling .cascading_with_parent_namespace3257 create three instance methods for attribute3258 three configurations of MR checks3259 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3260 group_attr: true, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3261 returns correct value3262 group_attr: true, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3263 returns correct value3264 group_attr: true, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3265 returns correct value3266 group_attr: false, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3267 returns correct value3268 group_attr: false, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3269 returns correct value3270 group_attr: false, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, subsubgroup_with_inherit_attr?: false, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: false3271 returns correct value3272 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3273 group_attr: true, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3274 returns correct value3275 group_attr: true, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3276 returns correct value3277 group_attr: true, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3278 returns correct value3279 group_attr: false, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3280 returns correct value3281 group_attr: false, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3282 returns correct value3283 group_attr: false, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, subsubgroup_with_inherit_attr?: false, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: false3284 returns correct value3285 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3286 group_attr: true, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3287 returns correct value3288 group_attr: true, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3289 returns correct value3290 group_attr: true, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: true, group_without_inherit_attr?: true, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: false, subgroup_locked?: true, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3291 returns correct value3292 group_attr: false, subgroup_attr: true, subsubgroup_attr: true, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: true, subsubgroup_locked?: true3293 returns correct value3294 group_attr: false, subgroup_attr: true, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: true, subgroup_without_inherit_attr?: true, subgroup_locked?: false, subsubgroup_with_inherit_attr?: true, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: true3295 returns correct value3296 group_attr: false, subgroup_attr: false, subsubgroup_attr: false, group_with_inherit_attr?: false, group_without_inherit_attr?: false, group_locked?: false, subgroup_with_inherit_attr?: false, subgroup_without_inherit_attr?: false, subgroup_locked?: false, subsubgroup_with_inherit_attr?: false, subsubgroup_without_inherit_attr?: false, subsubgroup_locked?: false3297 returns correct value3298Geo::PagesDeploymentRegistryFinder3299 behaves like a framework registry finder3300 #execute3301 when user cannot read all Geo3302 is expected to be empty3303 when user can read all Geo3304 when admin mode is disabled3305 is expected to be empty3306 when admin mode is enabled3307 with an ids param3308 returns specified registries3309 with an ids param empty3310 returns all registries3311 with a replication_state param3312 returns registries with requested replication state3313 with a replication_state param empty3314 returns all registries3315 with verification enabled3316 with a verification_state param3317 returns registries with requested verification state3318 with a verification_state param empty3319 returns all registries3320 with verification disabled3321 with a verification_state param3322 raises ArgumentError (PENDING: Skipping because verification is enabled for PagesDeployment)3323 with a verification_state param empty3324 raises ArgumentError (PENDING: Skipping because verification is enabled for PagesDeployment)3325 when search method is not implemented in the registry model3326 raises ArgumentError (PENDING: Skipping because search method is implemented for PagesDeployment)3327 when search method is implemented in the registry model3328 returns a registry filtered by keyword3329 with no params3330 returns all registries3331UpdateAllMirrorsWorker3332 behaves like worker with data consistency3333 .get_data_consistency_feature_flag_enabled?3334 returns true3335 .get_data_consistency3336 returns correct data consistency3337 #perform3338 does nothing if the database is read-only3339 does not execute if cannot get the lease3340 removes metadata except correlation_id from the application context before scheduling mirrors3341 schedules mirrors3342 when updates were scheduled3343 waits until ProjectImportScheduleWorker job tracker returns 03344 sleeps a bit after scheduling mirrors3345 if capacity is available3346 reschedules the job3347 if no capacity is available3348 does not reschedule the job3349 when no updates were scheduled3350 does not reschedule the job3351 does not wait3352 #schedule_mirrors!3353 when the instance is unlicensed3354 does not schedule when project does not have repository mirrors available3355 when the instance is licensed3356 when capacity is in excess3357 schedules all available mirrors3358 when the instance checks namespace plans3359 when checking licenses on each record individually3360 when capacity is in excess3361 schedules all available mirrors3362 requests as many batches as necessary3363 does not schedule a mirror of an archived project3364 does not schedule a mirror of an pending_delete project3365 when capacity is exactly sufficient3366 schedules all available mirrors3367 requests as many batches as necessary3368 when capacity is insufficient3369 schedules mirrors by next_execution_timestamp3370 requests as many batches as necessary3371 when capacity is insufficient and the first batch is empty3372 schedules mirrors by next_execution_timestamp3373 requests as many batches as necessary3374MergeTrains::RefreshMergeRequestService3375 #execute3376 when merge pipelines project configuration is disabled3377 behaves like drops the merge request from the merge train3378 is expected to receive abort(#<MergeRequest id:276 namespace902/project-946!1>, "project disabled merge trains", hash_including(:process_next=>false)) 1 time3379 when merge trains not enabled3380 behaves like drops the merge request from the merge train3381 is expected to receive abort(#<MergeRequest id:277 namespace902/project-946!1>, "project disabled merge trains", hash_including(:process_next=>false)) 1 time3382 when merge request is not in a mergeable state3383 behaves like drops the merge request from the merge train3384 is expected to receive abort(#<MergeRequest id:278 namespace902/project-946!1>, "merge request is not mergeable", hash_including(:process_next=>false)) 1 time3385 when pipeline for merge train failed3386 behaves like drops the merge request from the merge train3387 is expected to receive abort(#<MergeRequest id:279 namespace902/project-946!1>, "pipeline did not succeed", hash_including(:process_next=>false)) 1 time3388 when merge request is to be squashed3389 behaves like creates a pipeline for merge train3390 is expected to be fresh3391 when previous ref is not found3392 behaves like drops the merge request from the merge train3393 is expected to receive abort(#<MergeRequest id:281 namespace902/project-946!1>, "previous ref does not exist", hash_including(:process_next=>false)) 1 time3394 when pipeline has not been created yet3395 when the merge request is the first queue3396 behaves like creates a pipeline for merge train3397 is expected to be fresh3398 when it failed to create a pipeline3399 behaves like drops the merge request from the merge train3400 is expected to receive abort(#<MergeRequest id:283 namespace902/project-946!1>, "failed to create pipeline", hash_including(:process_next=>false)) 1 time3401 when pipeline for merge train is running3402 when the pipeline is not stale3403 behaves like does not create a pipeline3404 is expected to be falsy3405 when the pipeline is stale3406 behaves like cancels and recreates a pipeline for the merge train3407 cancels and recreates a pipeline for the merge train3408 when the pipeline is required to be recreated3409 behaves like cancels and recreates a pipeline for the merge train3410 cancels and recreates a pipeline for the merge train3411 when pipeline for merge train succeeded3412 when the merge request is the first queue3413 merges the merge request3414 when it failed to merge the merge request3415 does not finish merge and drops the merge request from train3416 behaves like drops the merge request from the merge train3417 is expected to receive abort(#<MergeRequest id:289 namespace902/project-946!1>, "failed to merge. Branch has been updated since the merge was requested.", hash_including(:process_next=>false)) 1 time3418 when the merge request is not the first queue3419 does not merge the merge request3420MergeRequests::PostMergeService3421 #execute3422 finalize approvals3423 executes ApprovalRules::FinalizeService3424 compliance violations3425 when the compliance report feature is unlicensed3426 behaves like does not call the compliance violations worker3427 is expected not to receive perform_async(*(any args)) 0 times3428 when the compliance report feature is licensed3429 calls the compliance violations worker asynchronously3430 auditing and tracking invalid logs3431 when the rule is code owner3432 when the rule is valid3433 does not audit or track the event3434 when invalid3435 audits and tracks logs the event3436 when the rule is any_approver3437 when the rule is valid3438 does not audit or track the event3439 when invalid3440 does not audit or track the event3441 when the rule is approval_merge_request_rule3442 when the rule is valid3443 does not audit or track the event3444 when invalid3445 audits and tracks logs the event3446 when the rule is report_approver3447 when the rule is valid3448 does not audit or track the event3449 when invalid3450 audits and tracks logs the event3451 security orchestration policy configuration3452 executes Security::SyncScanResultPolicyWorker for each configuration project3453 without licensed feature3454 does not execute Security::SyncScanResultPolicyWorker for each configuration project3455 with unrelated policy configurations3456 does not execute Security::SyncScanResultPolicyWorker for each configuration project3457 when merge request is a blocker for other merge requests3458 triggers GraphQL subscription mergeRequestMergeStatusUpdated for each blocked merge request3459List3460 relationships3461 is expected to belong to user required: false3462 is expected to belong to milestone required: false3463 is expected to belong to iteration required: false3464 validations3465 is expected to validate that :max_issue_count looks like an integer greater than or equal to 03466 is expected to validate that :max_issue_weight looks like an integer greater than or equal to 03467 is expected to validate that :limit_metric is either ‹"all_metrics"›, ‹"issue_count"›, or ‹"issue_weights"› as long as it is not nil3468 when it is an assignee type3469 is expected to be destroyable3470 is expected to be movable3471 validations3472 is expected to validate that :user cannot be empty/falsy3473 #title3474 returns the username as title3475 when it is a milestone type3476 is expected to be destroyable3477 is expected to be movable3478 validations3479 is expected to validate that :milestone cannot be empty/falsy3480 is invalid when feature is not available3481 #title3482 returns the milestone title3483 when it is an iteration type3484 is expected to be destroyable3485 is expected to be movable3486 validations3487 is expected to validate that :iteration cannot be empty/falsy3488 is invalid when feature is not available3489 #title3490 returns the iteration cadence and period as title3491 #wip_limits_available?3492 with enabled wip_limits3493 returns the expected values3494 with disabled wip_limits3495 returns the expected values3496Dora::DailyMetrics3497 associations3498 is expected to belong to environment required: false3499 .in_range_of3500 when between 2 days ago and 1 day ago3501 returns the correct metrics3502 when between 3 days ago and 2 days ago3503 returns the correct metrics3504 .for_environments3505 when targeting environment A only3506 returns the entry of environment A3507 when targeting environment B only3508 returns the entry of environment B3509 .refresh!3510 refreshes with whatever metrics return3511 when there is an existing metric already overwrites data3512 for production environment3513 recalculates performance scores3514 for non-production environment3515 does not for scores recalculation3516 .aggregate_for!3517 when metric is deployment frequency3518 when interval is all3519 aggregates the rows3520 when interval is monthly3521 aggregates the rows3522 when interval is daily3523 aggregates the rows3524 when interval is unknown3525 is expected to raise ArgumentError with "Unknown interval"3526 when metric is change_failure_rate3527 when interval is all3528 aggregates the rows3529 when interval is monthly3530 aggregates the rows3531 when interval is daily3532 aggregates the rows3533 when interval is unknown3534 is expected to raise ArgumentError with "Unknown interval"3535 when metric is lead time for changes3536 when interval is all3537 calculates the median3538 when interval is monthly3539 calculates the median3540 when interval is daily3541 calculates the median3542 when interval is unknown3543 is expected to raise ArgumentError with "Unknown interval"3544 when metric is time_to_restore_service3545 when interval is all3546 calculates the median3547 when interval is monthly3548 calculates the median3549 when interval is daily3550 calculates the median3551 when interval is unknown3552 is expected to raise ArgumentError with "Unknown interval"3553 when metric is unknown3554 is expected to raise ArgumentError with "Unknown metric"3555 with multiple metrics3556 when interval is all3557 aggregates the rows3558 when interval is monthly3559 aggregates the rows3560 when interval is daily3561 aggregates the rows3562Ci::Bridge3563 belongs to an upstream pipeline3564 behaves like has secrets3565 delegations3566 is expected to delegate #secrets to the #metadata object, allowing #metadata to return nil3567 #secrets?3568 without metadata3569 is expected to equal false3570 with metadata3571 when secrets exist3572 is expected to equal true3573 when secrets do not exit3574 is expected to equal false3575 state machine transitions3576 when bridge points towards downstream3577 does not subscribe to upstream project3578 when bridge points towards upstream3579 subscribes to the upstream project3580 does not schedule downstream pipeline creation3581 #inherit_status_from_upstream!3582 when bridge does not have upstream pipeline3583 is expected to equal false3584 when upstream pipeline has the same status as the bridge3585 is expected to equal false3586 when status is not supported3587 when status is created3588 returns false3589 does not change the bridge status3590 when status is waiting_for_resource3591 returns false3592 does not change the bridge status3593 when status is preparing3594 returns false3595 does not change the bridge status3596 when status is pending3597 returns false3598 does not change the bridge status3599 when status is supported3600 when status is running3601 inherits the upstream status3602 when status is success3603 inherits the upstream status3604 when status is failed3605 inherits the upstream status3606 when status is canceled3607 inherits the upstream status3608 when status is skipped3609 inherits the upstream status3610 when status is manual3611 inherits the upstream status3612 when status is scheduled3613 inherits the upstream status3614Resolvers::VulnerabilitySeveritiesCountResolver3615 #resolve3616 when the user does not have access3617 is redacted3618 when the user has access3619 when given severities3620 only returns count for low severity vulnerability3621 when given states3622 only returns count for high severity vulnerability3623 when given scanner3624 only returns count for high severity vulnerability3625 when given image3626 only returns count for medium severity vulnerability3627 when given cluster agent id3628 only returns count for medium severity vulnerability3629 when given scanner ID3630 only returns count for vulnerabilities with scanner ID3631 when given report types3632 only returns count for vulnerabilities of the given report types3633 when resolving vulnerabilities for a project3634 returns the project's vulnerabilities3635 when filtering vulnerabilities with issues3636 only returns count for vulnerabilities with issues3637 when filtering vulnerabilities with issues3638 only returns count for vulnerabilities with issues3639 when filtering resolved vulnerabilities3640 only returns count for resolved vulnerabilities3641 when filtering resolved vulnerabilities3642 only returns count for resolved vulnerabilities3643 when resolving vulnerabilities for an instance security dashboard3644 when there is a current user3645 returns vulnerabilities for all projects on the current user's instance security dashboard3646 without a current user3647 returns no vulnerabilities3648Gitlab::Geo::LogCursor::Events::DesignRepositoryUpdatedEvent3649 #process3650 when the associated shard is healthy3651 when the design repository is not excluded by selective sync3652 behaves like event should trigger a sync3653 when a registry does not yet exist3654 behaves like event creates a registry3655 creates a registry with pending state3656 behaves like event schedules a sync worker3657 schedules a sync worker3658 behaves like logs event source info3659 logs `job_id` and `event_id3660 when a registry exists3661 behaves like event transitions a registry to pending3662 transitions the registry to pending3663 behaves like event schedules a sync worker3664 schedules a sync worker3665 behaves like logs event source info3666 logs `job_id` and `event_id3667 when the project is included in selective sync but there is no design3668 when a registry does not yet exist3669 behaves like event does not create a registry3670 does not create a registry3671 behaves like event does not schedule a sync worker3672 does not schedule a sync worker3673 behaves like logs event source info3674 logs `job_id` and `event_id3675 when the design repository is excluded by selective sync3676 when a registry does not yet exist3677 behaves like event does not create a registry3678 does not create a registry3679 behaves like event does not schedule a sync worker3680 does not schedule a sync worker3681 behaves like logs event source info3682 logs `job_id` and `event_id3683 when a registry exists3684 behaves like event transitions a registry to pending3685 transitions the registry to pending3686 behaves like event schedules a sync worker3687 schedules a sync worker3688 behaves like logs event source info3689 logs `job_id` and `event_id3690 when associated shard is unhealthy3691 when a registry does not yet exist3692 behaves like event creates a registry3693 creates a registry with pending state3694 behaves like event does not schedule a sync worker3695 does not schedule a sync worker3696 behaves like logs event source info3697 logs `job_id` and `event_id3698 when a registry exists3699 behaves like event transitions a registry to pending3700 transitions the registry to pending3701 behaves like event does not schedule a sync worker3702 does not schedule a sync worker3703 behaves like logs event source info3704 logs `job_id` and `event_id3705StoreSecurityReportsWorker3706 #perform3707 when there is no pipeline with the given ID3708 does not raise an error3709 when at least one security report feature is enabled3710 report_type: :sast3711 executes IngestReportsService for given pipeline3712 report_type: :dast3713 executes IngestReportsService for given pipeline3714 report_type: :dependency_scanning3715 executes IngestReportsService for given pipeline3716 report_type: :container_scanning3717 executes IngestReportsService for given pipeline3718 report_type: :cluster_image_scanning3719 executes IngestReportsService for given pipeline3720 when running SAST analyzers that produce duplicate vulnerabilities3721 vulnerability_finding_signatures_enabled: true3722 and prefers original analyzer over semgrep when deduplicating3723 does not duplicate vulnerabilities3724 and prefers semgrep over original analyzer when deduplicating3725 does not duplicate vulnerabilities3726 vulnerability_finding_signatures_enabled: false3727 and prefers original analyzer over semgrep when deduplicating3728 does not duplicate vulnerabilities3729 and prefers semgrep over original analyzer when deduplicating3730 does not duplicate vulnerabilities3731 when resolving dropped identifiers3732 resolves vulnerabilities3733 when the same scanner runs multiple times in one pipeline3734 does not mark any of the detected vulnerabilities as resolved3735 when security reports feature is not available3736 does not execute IngestReportsService3737Gitlab::GitAccessWiki3738 group wiki access3739 #push_access_check3740 when user can :create_wiki3741 is expected not to raise Exception3742 when in a read-only GitLab instance3743 does not give access to upload wiki code3744 when group is read-only3745 does not allow push and allows pull access3746 when the group is renamed3747 enqueues a redirected message for pushing3748 when user cannot :create_wiki3749 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to write to this group's wiki."3750 #check_download_access!3751 the user has at least reporter access3752 when wiki feature is enabled3753 gives access to download wiki code3754 when the wiki repository does not exist3755 behaves like not-found git access3756 prevents access3757 when wiki feature is disabled3758 behaves like forbidden git access3759 prevents access3760 the user does not have access3761 behaves like not-found git access3762 prevents access3763 when actor is geo3764 gives access to download wiki code3765 the group is public3766 gives access to download wiki code3767 when wiki feature is disabled3768 behaves like forbidden git access3769 prevents access3770 when in a read-only GitLab instance3771 behaves like git access for a read-only GitLab instance3772 denies push access3773 for a Geo setup3774 that is incorrectly set up3775 denies push access with primary present3776 that is correctly set up3777 for a git clone/pull3778 attempts to proxy to the primary3779 for a git push3780 attempts to proxy to the primary3781 when wiki is disabled3782 allows code download for geo3783BoardsHelper3784 #build_issue_link_base3785 when epic board3786 generates the correct url3787 #board_base_url3788 when epic board3789 generates the correct url3790 #board_data3791 issue board3792 when no iteration3793 serializes board without iteration3794 when board is scoped to an iteration3795 serializes board with iteration3796 group and project-level licensed features3797 when 'multiple_issue_assignees' is available3798 indicates that the feature is available in a boolean string3799 when 'multiple_issue_assignees' is unavailable3800 indicates that the feature is unavailable in a boolean string3801 when 'issue_weights' is available3802 indicates that the feature is available in a boolean string3803 when 'issue_weights' is unavailable3804 indicates that the feature is unavailable in a boolean string3805 when 'board_milestone_lists' is available3806 indicates that the feature is available in a boolean string3807 when 'board_milestone_lists' is unavailable3808 indicates that the feature is unavailable in a boolean string3809 when 'board_assignee_lists' is available3810 indicates that the feature is available in a boolean string3811 when 'board_assignee_lists' is unavailable3812 indicates that the feature is unavailable in a boolean string3813 when 'issuable_health_status' is available3814 indicates that the feature is available in a boolean string3815 when 'issuable_health_status' is unavailable3816 indicates that the feature is unavailable in a boolean string3817 when 'scoped_labels' is available3818 indicates that the feature is available in a boolean string3819 when 'scoped_labels' is unavailable3820 indicates that the feature is unavailable in a boolean string3821 when 'scoped_issue_board' is available3822 indicates that the feature is available in a boolean string3823 when 'scoped_issue_board' is unavailable3824 indicates that the feature is unavailable in a boolean string3825 group-level licensed features3826 when 'board_iteration_lists' is available3827 indicates that the feature is available in a boolean string3828 when 'board_iteration_lists' is unavailable3829 indicates that the feature is unavailable in a boolean string3830 when 'epics' is available3831 indicates that the feature is available in a boolean string3832 when 'epics' is unavailable3833 indicates that the feature is unavailable in a boolean string3834 when 'iterations' is available3835 indicates that the feature is available in a boolean string3836 when 'iterations' is unavailable3837 indicates that the feature is unavailable in a boolean string3838 when 'issuable_health_status' is available3839 indicates that the feature is available in a boolean string3840 when 'issuable_health_status' is unavailable3841 indicates that the feature is unavailable in a boolean string3842 when 'subepics' is available3843 indicates that the feature is available in a boolean string3844 when 'subepics' is unavailable3845 indicates that the feature is unavailable in a boolean string3846 epic board3847 returns the correct permission for creating an epic from board3848 returns the correct permission for updating the board3849 returns the correct permission for administering the boards lists3850 returns the correct permission for administering the boards3851Ci::TriggerDownstreamSubscriptionService3852 #execute3853 when pipeline project has downstream projects3854 when subscription has an author3855 uses the subscription author as pipeline user3856 behaves like creates a downstream pipeline3857 associates the downstream pipeline with the upstream project3858 when the legacy subscription does not have an author3859 uses the downstream project creator as pipeline user3860 behaves like creates a downstream pipeline3861 associates the downstream pipeline with the upstream project3862 when project creator no longer exists3863 does not create a downstream pipeline3864 when pipeline project does not have downstream projects3865 does not call the create pipeline service3866IssueLinks::CreateService3867 #execute3868 when there is an issue to relate3869 returns success status and created links3870 when feature is not available3871 returns error3872 no relationship is created3873 behaves like issuable link creation with blocking link_type3874 when is_blocked_by relation is used3875 creates `blocks` relation with swapped source and target3876 creates block and blocked_by notes with swapped issuables3877 when blocks relation is used3878 creates `blocks` relation3879 creates block and blocked_by notes3880 when reference of any already related issue is present3881 sets the same type of relation for selected references3882ProjectFeature3883 default values3884 is expected to eq 203885 #feature_available?3886 when features are enabled only for team members3887 returns true if user is an auditor3888 project visibility changes3889 feature: "issues", worker_expected: true, associations: ["issues", "notes"]3890 re-indexes project and project associations on update3891 feature: "wiki", worker_expected: false, associations: nil3892 re-indexes project and project associations on update3893 feature: "builds", worker_expected: false, associations: nil3894 re-indexes project and project associations on update3895 feature: "merge_requests", worker_expected: true, associations: ["merge_requests", "notes"]3896 re-indexes project and project associations on update3897 feature: "repository", worker_expected: true, associations: ["notes"]3898 re-indexes project and project associations on update3899 feature: "snippets", worker_expected: true, associations: ["notes"]3900 re-indexes project and project associations on update3901 feature: "operations", worker_expected: false, associations: nil3902 re-indexes project and project associations on update3903 feature: "security_and_compliance", worker_expected: false, associations: nil3904 re-indexes project and project associations on update3905 feature: "pages", worker_expected: false, associations: nil3906 re-indexes project and project associations on update3907 behaves like access level validation3908 does not allow public access level for requirements3909ComplianceManagement::Frameworks::UpdateService3910 feature is unlicensed3911 behaves like a failed update request3912 does not update the compliance framework3913 is unsuccessful3914 current_user is not the namespace owner3915 behaves like a failed update request3916 does not update the compliance framework3917 is unsuccessful3918 when feature is licensed3919 with an invalid param passed3920 is unsuccessful3921 has appropriate errors3922 with valid params passed3923 updates the compliance framework with valid params3924 is successful3925 audits the changes3926 when default param is used3927 when true3928 updates the default compliance framework for the namespace3929 when false3930 does not update the default framework for the namespace when default framework is not set3931 removes the default framework for the namespace3932Dast::SiteProfileSecretVariable3933 behaves like CI variable3934 is expected to includes the Ci::HasVariable module3935 strips whitespaces when assigning key3936 can convert to runner variable3937 variable type3938 defines variable types3939 defaults variable type to env_var3940 supports variable type file3941 associations3942 is expected to belong to dast_site_profile required: false3943 validations3944 is expected to be valid3945 is expected to includes the Ci::Maskable module3946 is expected to includes the Ci::HasVariable module3947 is expected to validate that :dast_site_profile_id cannot be empty/falsy3948 is expected to validate that :masked is ‹true›3949 is expected to validate that :key is case-sensitively unique within the scope of :dast_site_profile_id, producing a custom validation error on failure3950 only allows records where variable_type=env_var3951 #value3952 when the value is over the limit3953 is not valid3954 raises a database level error3955 when value at the maximum value3956 is valid3957 does not raise database level error3958 when value at the minimum value3959 is valid3960 does not raise database level error3961 when value is under the limit3962 is not valid3963 #masked3964 defaults to true3965 #project3966 delegates to dast_site_profile3967 #raw_value=3968 pre-encodes the value3969 #value=3970 raises an error because #raw_value= should be used instead3971 #variable_type3972 defaults to env_var3973AppSec::Dast::ScannerProfiles::UpdateService3974 #execute3975 when a user does not have access to the project3976 returns an error status3977 populates message3978 when the dast_scanner_profile exists on a different project3979 returns an error status3980 when the user can run a dast scan3981 returns a success status3982 updates the dast_scanner_profile3983 audits the update3984 returns a dast_scanner_profile payload3985 when the user omits unrequired elements3986 does not update those elements3987 omits those elements from the audit3988 when setting properties to false3989 updates the dast_scanner_profile3990 when the dast_scanner_profile doesn't exist3991 returns an error status3992 populates message3993 when on demand scan licensed feature is not available3994 returns an error status3995 populates message3996 when project has security policies enabled3997 when there is no policy that is referencing the profile3998 returns a success status3999 when there is a policy that is referencing the profile4000 returns an error status4001 populates message4002SoftwareLicensePolicy4003 validations4004 is expected to includes the Presentable module4005 is expected to validate that :software_license cannot be empty/falsy4006 is expected to validate that :project cannot be empty/falsy4007 is expected to validate that :classification cannot be empty/falsy4008 is expected to validate that :software_license is case-sensitively unique within the scope of :project_id and :scan_result_policy_id, producing a custom validation error on failure4009 .with_license_by_name4010 finds a license by an exact match4011 finds a license by a case insensitive match4012 finds multiple licenses4013 .by_spdx4014 is expected to contain exactly #<SoftwareLicensePolicy id: 12, project_id: 1128, software_license_id: 12, classification: "allowed",...:18.266013848 +0000", updated_at: "2023-04-26 10:49:18.266013848 +0000", scan_result_policy_id: nil>4015 is expected to contain exactly #<SoftwareLicensePolicy id: 12, project_id: 1128, software_license_id: 12, classification: "allowed",...:18.266013848 +0000", updated_at: "2023-04-26 10:49:18.266013848 +0000", scan_result_policy_id: nil> and #<SoftwareLicensePolicy id: 13, project_id: 1129, software_license_id: 13, classification: "allowed",...:18.497507707 +0000", updated_at: "2023-04-26 10:49:18.497507707 +0000", scan_result_policy_id: nil>4016 is expected to be empty4017 .count_for_software_license4018 is expected to eq 24019 .exclusion_allowed4020 is expected to eq [#<SoftwareLicensePolicy id: 18, project_id: 1138, software_license_id: 15, classification: "allowed"...9:21.612142438 +0000", updated_at: "2023-04-26 10:49:21.612142438 +0000", scan_result_policy_id: 2>]4021 #name4022 is expected to eql "SOFTWARE-LICENSE-2.7/example_8"4023 #approval_status4024 classification: "allowed", approval_status: "allowed"4025 is expected to eql "allowed"4026 classification: "denied", approval_status: "denied"4027 is expected to eql "denied"4028Projects::GitlabProjectsImportService4029 #execute4030 creates template export job4031 if project saved and custom template exists4032 sets custom template import strategy after export4033 does not create export job4034 if project not saved4035 behaves like gitlab projects import validations4036 with an invalid path4037 returns an invalid project4038 with a valid path4039 creates a project4040 override params4041 stores them as import data when passed4042 when there is a project with the same path4043 does not create the project4044 when overwrite param is set4045 creates a project in a temporary full_path4046Ci::CreatePipelineService4047 when the feature is not licensed4048 behaves like it does not expand the dast variables4049 does not include the profile variables4050 when the feature is licensed4051 when the stage is dast4052 persists dast_configuration in build options4053 expands the dast variables4054 when the user has permission4055 expands the secret dast variables4056 when the site profile does not exist4057 behaves like a missing profile4058 communicates failure4059 when the scanner profile does not exist4060 behaves like a missing profile4061 communicates failure4062 when there is an unexpected system error4063 handles the error4064 when the stage is not dast4065 behaves like it does not expand the dast variables4066 does not include the profile variables4067 behaves like pipelines are created without N+1 SQL queries4068 avoids N+1 queries4069 behaves like pipelines are created without N+1 SQL queries4070 avoids N+1 queries4071layouts/application4072 behaves like a layout which reflects the application theme setting4073 as a themed layout4074 when no theme is explicitly selected4075 renders with the default theme4076 when user is authenticated & has selected a specific theme4077 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">4078 renders with the Indigo theme4079 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">4080 renders with the Light Indigo theme4081 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">4082 renders with the Blue theme4083 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">4084 renders with the Light Blue theme4085 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">4086 renders with the Green theme4087 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">4088 renders with the Light Green theme4089 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">4090 renders with the Red theme4091 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">4092 renders with the Light Red theme4093 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">4094 renders with the Gray theme4095 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">4096 renders with the Light Gray theme4097 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">4098 renders with the Dark Mode (alpha) theme4099 layouts/_user_notification_dot4100 when we show the notification dot4101 has the notification dot4102 when we do not show the notification dot4103 does not have the notification dot4104Elastic::Latest::ProjectWikiClassProxy4105 names elasticsearch queries4106 #elastic_search_as_wiki_page4107 returns FoundWikiPage4108Jobs/Browser-Performance-Testing.gitlab-ci.yml4109 the created pipeline4110 has no errors4111 when variable is KUBECONFIG and not CI_KUBERNETES_ACTIVE4112 is present4113 on master4114 behaves like browser_performance job on tag or branch4115 by default4116 when BROWSER_PERFORMANCE_DISABLED4117 on another branch4118 behaves like browser_performance job on tag or branch4119 by default4120 when BROWSER_PERFORMANCE_DISABLED4121 on tag4122 behaves like browser_performance job on tag or branch4123 by default4124 when BROWSER_PERFORMANCE_DISABLED4125 on merge request4126 has no jobs4127Vulnerabilities::Export4128 is expected to define :format as an enum backed by an integer4129 associations4130 is expected to belong to project required: false4131 is expected to belong to group required: false4132 is expected to belong to author class_name => User required: true4133 validations4134 is expected to validate that :status cannot be empty/falsy4135 is expected to validate that :format cannot be empty/falsy4136 is expected not to validate that :file cannot be empty/falsy4137 when export is finished4138 is expected to validate that :file cannot be empty/falsy4139 presence of both project and group4140 when the project is present4141 when the group is present4142 is expected to include "Project & Group can not be assigned at the same time"4143 when the group is not present4144 is expected not to include "Project & Group can not be assigned at the same time"4145 when the project is not present4146 when the group is present4147 is expected not to include "Project & Group can not be assigned at the same time"4148 when the group is not present4149 is expected not to include "Project & Group can not be assigned at the same time"4150 #status4151 when the export is new4152 is expected to have attributes {:status => "created"}4153 when the export starts4154 is expected to have attributes {:started_at => 2023-04-26 10:49:57.000000000 +0000, :status => "running"}4155 when the export is running4156 and it finishes4157 is expected to have attributes {:finished_at => 2023-04-26 10:49:57.000000000 +0000, :status => "finished"}4158 and it fails4159 is expected to have attributes {:finished_at => 2023-04-26 10:49:58.000000000 +0000, :status => "failed"}4160 #exportable4161 when the export has project assigned4162 is expected to eq #<Project id: namespace1111/project-1175>>4163 when the export does not have project assigned4164 when the export has group assigned4165 is expected to eq #<Group id: @group467>4166 when the export does not have group assigned4167 is expected to eq #<InstanceDouble(InstanceSecurityDashboard) (anonymous)>4168 #exportable=4169 when the exportable is a Project4170 changes the exportable of the export to given project4171 when the exportable is a Group4172 changes the exportable of the export to given group4173 when the exportable is an InstanceSecurityDashboard4174 changes the exportable of the export to security dashboard of the author4175 when the exportable is a String4176 raises an exception4177 #completed?4178 when status is created4179 is expected not to be completed4180 when status is running4181 is expected not to be completed4182 when status is finished4183 is expected to be completed4184 when status is failed4185 is expected to be completed4186AddHashedRootNamespaceIdToMergeRequests4187 # order random4188 .migrate4189 when migration is already completed4190 does not modify data4191 migration process4192 updates the issues index mappings4193 .completed?4194 mapping has been updated4195 is expected to be completed4196 mapping has not been updated4197 is expected not to be completed4198Iterations::Cadences::DestroyService4199 #execute4200 when iterations feature enabled4201 when user is authorized4202 is expected to be success4203 destroys the cadence and associated records4204 returns the cadence as part of the response4205 when user is not authorized4206 behaves like cadence destroy fails with message4207 is expected to be error4208 returns not allowed message4209 when iterations feature disabled4210 when user is authorized4211 behaves like cadence destroy fails with message4212 is expected to be error4213 returns not allowed message4214 when user is not authorized4215 behaves like cadence destroy fails with message4216 is expected to be error4217 returns not allowed message4218Gitlab::ComplianceManagement::Violations::ApprovedByInsufficientUsers4219 #execute4220 when merge request is approved by sufficient number of users4221 does not create a ComplianceViolation4222 when merge request is approved by insufficient number of users4223 creates a ComplianceViolation4224 when the merge requests merge user is within metrics4225 creates a ComplianceViolation4226 when the merge request does not have a merge user4227 does not create a ComplianceViolation4228Ci::Minutes::RefreshCachedDataWorker4229 #perform4230 when namespace is out of CI minutes4231 is labeled as idempotent4232 performs multiple times sequentially without raising an exception4233 updates pending builds4234 when namespace has CI minutes4235 is labeled as idempotent4236 performs multiple times sequentially without raising an exception4237 updates pending builds4238 namespace does not exist4239 does nothing4240Mutations::IncidentManagement::EscalationPolicy::Update4241 # order random4242 #resolve4243 when the policy cannot be found4244 behaves like failed update with a top-level access error4245 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4246 when project does not have feature4247 behaves like failed update with a top-level access error4248 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "Escalation policies are not supported for this project"4249 when user does not have permissions to update the policy4250 behaves like failed update with a top-level access error4251 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4252 when there is an error in updating4253 returns errors in the body of the response4254 when rules are excluded4255 behaves like successful update with no errors4256 returns the updated escalation policy4257 when rules are included but empty4258 returns errors in the body of the response4259 with rule updates4260 behaves like successful update with no errors4261 returns the updated escalation policy4262 when schedule does not exist4263 behaves like failed update with a top-level access error4264 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4265 the user does not have permission to update policies regardless4266 behaves like failed update with a top-level access error4267 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4268 when rule's user does not exist4269 behaves like failed update with a top-level access error4270 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4271Geo::RenameRepositoryService4272 #execute4273 does not move project backed by hashed storage4274 project backed by legacy storage4275 moves the project repositories4276 raises an error when project repository can not be moved4277 raises an error when wiki repository can not be moved4278 #async_execute4279 starts the worker4280 returns job id4281IncidentManagement::IssuableEscalationStatuses::PrepareUpdateService4282 # order random4283 behaves like successful response4284 returns valid parameters which can be used to update the issue4285 when policy is unchanged4286 behaves like successful response4287 returns valid parameters which can be used to update the issue4288 when issue is associated with an alert4289 behaves like successful response4290 returns valid parameters which can be used to update the issue4291 when provided policy is in a different project4292 returns an error response4293 when escalation policies feature is unavailable4294 behaves like successful response without policy params4295 returns valid parameters which can be used to update the issue4296 when the escalation status is already associated with a policy4297 when policy is unchanged4298 behaves like successful response without policy params4299 returns valid parameters which can be used to update the issue4300 when policy is excluded4301 behaves like successful response without policy params4302 returns valid parameters which can be used to update the issue4303 when policy is nil4304 behaves like successful response4305 returns valid parameters which can be used to update the issue4306ProjectsFinder4307 #execute4308 filter by plans4309 with ultimate plan4310 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>> and #<Project id:1186 namespace1147/project-1207>>4311 with multiple plans4312 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, and #<Project id:1187 namespace1148/project-1208>>4313 with other plans4314 is expected to be empty4315 without plans4316 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, #<Project id:1187 namespace1148/project-1208>>, and #<Project id:1188 namespace1149/project-1209>>4317 with empty plans4318 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, #<Project id:1187 namespace1148/project-1208>>, and #<Project id:1188 namespace1149/project-1209>>4319 filter by aimed for deletion4320 is expected to contain exactly #<Project id:1189 namespace1150/project-1210>>4321 filter by not aimed for deletion4322 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, #<Project id:1187 namespace1148/project-1208>>, and #<Project id:1188 namespace1149/project-1209>>4323 filter by hidden4324 when include hidden is true4325 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, #<Project id:1187 namespace1148/project-1208>>, #<Project id:1188 namespace1149/project-1209>>, and #<Project id:1193 namespace1154/project-1214>>4326 when include hidden is false4327 is expected to contain exactly #<Project id:1185 namespace1146/project-1206>>, #<Project id:1186 namespace1147/project-1207>>, #<Project id:1187 namespace1148/project-1208>>, and #<Project id:1188 namespace1149/project-1209>>4328StatusPage::PublishedIncident4329 # order random4330 validation4331 is expected to validate that :issue cannot be empty/falsy4332 .untrack4333 when the incident is not yet tracked4334 is expected not to change `described_class.count`4335 when the incident is already tracked4336 is expected to change `described_class.count` by -14337 .track4338 is expected to be a kind of StatusPage::PublishedIncident(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, issue_id: integer)4339 is expected to eq #<StatusPage::PublishedIncident id: 3, created_at: "2023-04-26 10:50:33.686016707 +0000", updated_at: "2023-04-26 10:50:33.686016707 +0000", issue_id: 337>4340 is expected to eq #<Issue id:337 namespace1155/project-1215#1>4341 is expected to change `described_class.count` by 14342 when the incident already exists4343 is expected to be a kind of StatusPage::PublishedIncident(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, issue_id: integer)4344 is expected to eq #<StatusPage::PublishedIncident id: 7, created_at: "2023-04-26 10:50:33.910831607 +0000", updated_at: "2023-04-26 10:50:33.910831607 +0000", issue_id: 337>4345 is expected to eq #<Issue id:337 namespace1155/project-1215#1>4346 is expected not to change `described_class.count`4347 when issue is new record4348 is expected to be a kind of StatusPage::PublishedIncident(id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, issue_id: integer)4349 is expected to eq #<StatusPage::PublishedIncident id: 11, created_at: "2023-04-26 10:50:34.705267727 +0000", updated_at: "2023-04-26 10:50:34.705267727 +0000", issue_id: 339>4350 is expected to eq #<Issue id:340 namespace1158/project-1218#1>4351 is expected to change `described_class.count` by 14352 when issue is nil4353 is expected to raise ActiveRecord::RecordInvalid with message matching /Issue can't be blank/4354 associations4355 is expected to belong to issue required: false inverse_of => status_page_published_incident4356IncidentManagement::PendingEscalations::CreateService4357 # order random4358 for incidents4359 feature not available4360 does nothing4361 feature available4362 creates an escalation for each rule for the policy4363 creates the escalations and queues the escalation process check4364 target is resolved4365 does nothing4366 when there is no escalation policy for the project4367 does nothing4368 when the escalatable has pending escalations4369 does nothing4370 for alerts4371 feature not available4372 does nothing4373 feature available4374 creates an escalation for each rule for the policy4375 creates the escalations and queues the escalation process check4376 target is resolved4377 does nothing4378 when there is no escalation policy for the project4379 does nothing4380 when the escalatable has pending escalations4381 does nothing4382AuditEvents::InstanceExternalAuditEventDestination4383 # order random4384 behaves like includes ExternallyDestinationable concern4385 validations4386 is expected to be a kind of AuditEvents::ExternallyDestinationable4387 is expected to validate that the length of :destination_url is at most 2554388 is expected to validate that :destination_url cannot be empty/falsy4389 is expected to validate that the length of :verification_token is between 16 and 244390 when creating with undefined verification token4391 destination is valid4392 verification token is present4393 when updating4394 verification token cannot be nil4395 behaves like includes Limitable concern4396 #exceeds_limits?4397 without plan limits configured4398 is expected to eq false4399 without plan limits configured4400 is expected to eq false4401 with an existing model4402 is expected to eq true4403 validations4404 is expected to be a kind of Limitable4405 without plan limits configured4406 can create new models4407 with plan limits configured4408 can create new models4409 with an existing model4410 cannot create new models exceeding the plan limits4411shared/billings/_eoa_bronze_plan_banner.html.haml4412 with group namespace4413 behaves like current time4414 displays the banner4415 behaves like past eoa date4416 does not display the banner4417 behaves like with show_billing_eoa_banner turned off4418 does not display the banner4419 behaves like with a different plan than Bronze4420 does not display the banner4421 behaves like when user dismissed the banner4422 does not display the banner4423 with personal namespace4424 behaves like current time4425 displays the banner4426 behaves like past eoa date4427 does not display the banner4428 behaves like with show_billing_eoa_banner turned off4429 does not display the banner4430 behaves like with a different plan than Bronze4431 does not display the banner4432 behaves like when user dismissed the banner4433 does not display the banner4434Gitlab::Pages::DeploymentUpdate4435 maximum pages artifacts size4436 when size is below the limit4437 is valid4438 when size is above the limit4439 is invalid4440 when pages_size_limit feature is not available4441 when size is below the limit4442 is valid4443 when size is above the limit4444 is invalid4445IncidentManagement::IssuableResourceLinks::CreateService4446 # order random4447 #execute4448 successfully creates a database record4449 when current user is blank4450 behaves like error_message4451 has an informative message4452 behaves like does not track incident management event4453 does not track the event4454 when user does not have permissions to create issuable resource links4455 behaves like error_message4456 has an informative message4457 behaves like does not track incident management event4458 does not track the event4459 when feature is not available4460 behaves like error_message4461 has an informative message4462 behaves like does not track incident management event4463 does not track the event4464 when error occurs during creation4465 behaves like error_message4466 has an informative message4467 behaves like does not track incident management event4468 does not track the event4469 when a valid request4470 behaves like success_response4471 has issuable resource link4472 creates a system note notification4473 behaves like an incident management tracked event4474 .track_event4475 tracks the event using redis4476 when link text is absent4477 link_text: nil4478 stores id as link text4479 link_text: ""4480 stores id as link text4481 link_text: " "4482 stores id as link text4483 when link type is general4484 stores link as link text for general type4485 when link type is absent4486 for slack4487 behaves like link_types4488 sets correct link type based on link4489 for zoom4490 behaves like link_types4491 sets correct link type based on link4492 for pagerduty4493 behaves like link_types4494 sets correct link type based on link4495Gitlab::ImportExport::Project::ProjectHooksRestorer4496 # order random4497 when project hooks are present in source project4498 has the same amount of project hooks as the source4499 has different encrypted values compared to source4500 when the user is unauthorized4501 raises an error and logs user4502 logs the unauthorized user4503 when all hooks are not duplicated4504 reports the failure4505 returns true4506Types::VulnerabilityRequestResponseHeaderType4507 is expected to eq "VulnerabilityRequestResponseHeader"4508 is expected to have graphql fields :name and :value4509 checking field contents4510 evidence.request.headers fields4511 checks the contents of the fields4512 evidence.response.headers fields4513 checks the contents of the fields4514 evidence.supportingMessages[].request.headers fields4515 checks the contents of the fields4516 evidence.supportingMessages[].response.headers fields4517 checks the contents of the fields4518Gitlab::Geo::Replicator4519-- create_table(:_test_dummy_models, {:force=>true})4520 -> 0.0053s4521 event DSL4522 .supported_events4523 expects :test event to be supported4524 .event_supported?4525 expects a supported event to return true4526 expect an unsupported event to return false4527 #publish4528 when publishing a supported events with required params4529 creates event with associated event log record4530 when publishing unsupported event4531 raises an argument error4532 #consume4533 accepts valid attributes4534 calls corresponding method with specified named attributes4535 .for_class_name4536 when given a Geo RegistryFinder4537 returns the corresponding Replicator class4538 when given a Geo RegistriesResolver"4539 returns the corresponding Replicator class4540 .for_replicable_name4541 given a valid replicable_name4542 returns the corresponding Replicator class4543 given an invalid replicable_name4544 raises and logs NotImplementedError4545 given nil4546 raises NotImplementedError4547 .for_replicable_params4548 returns the corresponding Replicator instance4549 .replicable_params4550 returns a Hash of data needed to reinstantiate the Replicator4551 .bulk_create_events4552 creates events4553 #initialize4554 given model_record4555 sets model_record4556 sets model_record_id4557 given model_record_id4558 sets model_record4559 sets model_record_id4560 #in_replicables_for_current_secondary?4561 is expected to delegate #in_replicables_for_current_secondary? to the #model_record object4562-- drop_table(:_test_dummy_models, {:force=>true})4563 -> 0.0026s4564Gitlab::CIDR4565 validation4566 raises an exception when an octet is invalid4567 raises an exception when a bitmask is invalid4568 raises an exception when one IP from a set is invalid4569 matching4570 values: "192.1.1.1", ip: "192.1.1.1", match: true4571 is expected to eq true4572 values: "192.1.1.1, 192.1.2.1", ip: "192.1.2.1", match: true4573 is expected to eq true4574 values: "192.1.1.0/24", ip: "192.1.1.223", match: true4575 is expected to eq true4576 values: "192.1.0.0/16", ip: "192.1.223.223", match: true4577 is expected to eq true4578 values: "192.1.0.0/16, 192.1.2.0/24", ip: "192.1.2.223", match: true4579 is expected to eq true4580 values: "192.1.0.0/16", ip: "192.2.1.1", match: false4581 is expected to eq false4582 values: "192.1.0.1", ip: "192.2.1.1", match: false4583 is expected to eq false4584Mutations::DastScannerProfiles::Create4585 is expected to require graphql authorizations :create_on_demand_dast_scan4586 #resolve4587 when the project does not exist4588 raises an exception4589 when the user can run a dast scan4590 returns the dast_scanner_profile id4591 returns the complete dast_scanner_profile4592 calls the dast_scanner_profile creation service4593 when the dast_scanner_profile already exists4594 returns an error4595Elastic::IndexSetting4596 validations4597 is expected to allow :number_of_shards to be ‹10›4598 is expected not to allow :number_of_shards to be ‹nil›4599 is expected not to allow :number_of_shards to be ‹0›4600 is expected not to allow :number_of_shards to be ‹1.1›4601 is expected not to allow :number_of_shards to be ‹-1›4602 is expected to allow :number_of_replicas to be ‹10›4603 is expected to allow :number_of_replicas to be ‹0›4604 is expected not to allow :number_of_replicas to be ‹nil›4605 is expected not to allow :number_of_replicas to be ‹1.1›4606 is expected not to allow :number_of_replicas to be ‹-1›4607 is expected to allow :alias_name to be ‹"a"›4608 is expected not to allow :alias_name to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›4609 .[]4610 returns existing record4611 creates a new record4612 .default4613 returns index_setting record for the default index4614 .number_of_replicas4615 returns default number of replicas4616 .number_of_shards4617 returns default number of shards4618Gitlab::Com4619 is expected to eq #<ActiveSupport::Cache::MemoryStore entries=0, size=0, options={:compress=>false}>4620 is expected to eq <ActiveSupport::Cache::NullStore>4621 .gitlab_com_group_member?4622 when user is a gitlab team member4623 is expected to equal true4624 caching of allowed user IDs4625 behaves like allowed user IDs are cached4626 caches the allowed user IDs in cache4627 caches the allowed user IDs in L1 cache for 1 minute4628 caches the allowed user IDs in L2 cache for 5 minutes4629 when user is not a gitlab team member4630 is expected to equal false4631 caching of allowed user IDs4632 behaves like allowed user IDs are cached4633 caches the allowed user IDs in cache4634 caches the allowed user IDs in L1 cache for 1 minute4635 caches the allowed user IDs in L2 cache for 5 minutes4636 when user is nil4637 is expected to equal false4638 when subject is not a user4639 is expected to equal false4640 when gitlab-com group does not exist4641 is expected to equal false4642ElasticIndexBulkCronWorker4643 .perform4644 indexing is not paused4645 queues all shards for execution4646 executes the service under an exclusive lease4647 legacy lease is detected4648 skips scheduling4649 skips shard execution4650 indexing is paused4651 does nothing if indexing is paused4652 when service returns non-zero counter4653 adds logging_extras to the done log4654 requeues the worker4655 when there are no records in the queue4656 does not requeue the worker4657 behaves like worker with data consistency4658 .get_data_consistency_feature_flag_enabled?4659 returns true4660 .get_data_consistency4661 returns correct data consistency4662IncidentManagement::EscalationPoliciesFinder4663 # order random4664 #execute4665 when feature is available4666 when user has permissions4667 returns project escalation policies4668 when id given4669 is expected to contain exactly #<IncidentManagement::EscalationPolicy id: 14, project_id: 1212, name: "unique identifier", description: [FILTERED]>4670 when exact_name is given4671 is expected to contain exactly #<IncidentManagement::EscalationPolicy id: 14, project_id: 1212, name: "unique identifier", description: [FILTERED]>4672 when the name does not match4673 is expected to eq #<ActiveRecord::Relation []>4674 when search_name is given4675 is expected to contain exactly #<IncidentManagement::EscalationPolicy id: 14, project_id: 1212, name: "unique identifier", description: [FILTERED]>4676 when the name does not match4677 is expected to eq #<ActiveRecord::Relation []>4678 when no params are given4679 is expected to contain exactly #<IncidentManagement::EscalationPolicy id: 14, project_id: 1212, name: "unique identifier", description: [FILTERED]>4680 when user has no permissions4681 is expected to eq #<ActiveRecord::Relation []>4682 when feature is not avaiable4683 is expected to eq #<ActiveRecord::Relation []>4684Boards::EpicBoardsFinder4685 #execute4686 finds all epic boards in the group ordered by case-insensitive name4687 when include_ancestor_groups parameter is set4688 finds all epic boards in the group or ancestor groups4689 when ID parameter is set4690 finds epic board by ID4691MergeRequests::RemoveApprovalService4692 #execute4693 with a user who has approved4694 removes the approval4695 creates an unapproval note4696 fires an unapproval webhook4697 does not send a notification4698 resets the cache for approvals4699Gitlab::Usage::Metrics::Instrumentations::CountUserMergeRequestsForProjectsWithAppliedScanResultPoliciesMetric4700 # order random4701 behaves like a correct instrumented metric value and query4702 behaves like a correct instrumented metric value4703 has correct value4704 behaves like a correct instrumented metric query4705 has correct generate query4706 behaves like a correct instrumented metric value and query4707 behaves like a correct instrumented metric value4708 has correct value4709 behaves like a correct instrumented metric query4710 has correct generate query4711shared/milestones/_milestone.html.haml4712 when a milestone is associated to a lot of releases4713 when viewing a project milestone4714 renders "1 more release" as a link to the project's Releases page4715 when viewing a group milestone4716 renders "1 more release" as plain text instead of as a link4717Llm::ExplainCodeService4718 # order random4719 #perform4720 schedules a job4721 returns an error when messages are too big4722 returns an error if user is not a member of the project4723 when explain_code_snippet feature flag is disabled4724 returns an error4725 when explain_code licensed feature is disabled4726 returns an error4727 when a project is not public4728 returns an error4729Resolvers::ExternalIssueResolver4730 when Jira issues are requested4731 when Jira API responds with nil4732 sends request to Jira to fetch issues4733 returns nil4734 when Jira API responds with found issues4735 sends request to Jira to fetch issues4736 returns serialized Jira issues4737 when Jira API responds with an integration error4738 generates an error4739 when Jira API responds with an request error4740 generates an error4741Security::SecurityOrchestrationPolicies::CiConfigurationService4742 #execute4743 when action is valid4744 when scan type is secret_detection4745 merges template variables with ci variables and returns them as string4746 returns prepared CI configuration with Secret Detection scans4747 behaves like with template name for scan type4748 fetches template content using ::TemplateFinder4749 when scan type is container_scanning4750 merges template variables with ci variables and returns them as string4751 returns prepared CI configuration for Container Scanning4752 behaves like with template name for scan type4753 fetches template content using ::TemplateFinder4754 when scan type is sast4755 returns prepared CI configuration for SAST4756 when scan type is dependency_scanning4757 returns prepared CI configuration for Dependency Scanning4758 when scan type is sast_iac4759 returns prepared CI configuration for SAST IaC4760 when action is invalid4761 returns prepared CI configuration with error script4762GitlabSubscriptions::FetchSubscriptionPlansService4763 #execute4764 when successfully fetching plans data4765 returns parsed JSON4766 uses only the plan within the cache key name4767 with pnp_subscription_plan_cache_key flag disabled4768 returns a new cache key so the cache is busted4769 with given namespace_id4770 returns parsed JSON4771 uses the namespace id within the cache key name4772 when failing to fetch plans data4773 logs failure4774 returns nil4775 does not cache the result4776Mutations::Security::Finding::Dismiss4777 # order random4778 #resolve4779 when the user has permission to dismiss the security finding4780 when user does not have access to the project4781 raises an error4782 when no uuid is provided4783 raises an error4784 when the user has access to the project4785 when the dismissal is successful4786 returns the dismissed security finding uuid4787 returns the dismissed security finding4788 when the dismissal fails4789 raises an error and no uuid is returned4790 raises an error and no security finding is returned4791 when the security dashboard is not available to the user4792 raises an error4793Gitlab::Geo::LogCursor::Events::RepositoryDeletedEvent4794 #process4795 when a tracking entry does not exist4796 does not schedule a GeoRepositoryDestroyWorker4797 does not create a tracking entry4798 when a tracking entry exists4799 when selective sync is enabled4800 replays delete events when project does not exist on primary4801 does not remove the tracking entry4802 behaves like logs event source info4803 logs `job_id` and `event_id4804SyncSeatLinkWorker4805 #perform4806 when current, paid license is active4807 executes the SyncSeatLinkRequestWorker with expected params4808 when the timezone makes date one day in advance4809 executes the SyncSeatLinkRequestWorker with expected params4810 when the timezone makes date one day before than UTC4811 executes the SyncSeatLinkRequestWorker with expected params4812 license checks4813 when license is missing4814 does not execute the SyncSeatLinkRequestWorker4815 when using a trial license4816 does not execute the SyncSeatLinkRequestWorker4817 when the license has no expiration date4818 does not execute the SyncSeatLinkRequestWorker4819 when using an expired license4820 executes the SyncSeatLinkRequestWorker4821 with a non cloud license4822 does not execute the SyncSeatLinkRequestWorker4823Groups::RepositoryStorageMove4824 behaves like handles repository moves4825 associations4826 is expected to belong to container required: false4827 validations4828 is expected to validate that :container cannot be empty/falsy4829 is expected to validate that :state cannot be empty/falsy4830 is expected to validate that :source_storage_name cannot be empty/falsy4831 is expected to validate that :destination_storage_name cannot be empty/falsy4832 source_storage_name inclusion4833 does not allow repository storages that don't match a label in the configuration4834 destination_storage_name inclusion4835 does not allow repository storages that don't match a label in the configuration4836 container repository read-only4837 does not allow the container to be read-only on create4838 defaults4839 destination_storage_name4840 can pick new storage4841 state transitions4842 when in the default state4843 and transits to scheduled4844 triggers the corresponding repository storage worker4845 when the transition fails4846 does not trigger the corresponding repository storage worker and adds an error4847 and transits to started4848 does not allow the transition4849 when started4850 and transits to replicated4851 marks the container as writable4852 updates the updated_at column of the container4853 and transits to failed4854 marks the container as writable4855DeploymentPolicy4856 # order random4857 when the user is allowed to deploy4858 is expected to be allowed :destroy_deployment4859 when user is developer4860 is expected not to be allowed :destroy_deployment4861 when maintainers are allowed to deploy and approve4862 is expected to be allowed :approve_deployment4863 when user is developer4864 is expected not to be allowed :approve_deployment4865 when the user is not allowed to deploy4866 is expected not to be allowed :destroy_deployment4867 when specific group is allowed to approve4868 is expected to be allowed :approve_deployment4869 when user is developer4870 is expected not to be allowed :approve_deployment4871Resolvers::PathLocksResolver4872 #resolve4873 feature is not licensed4874 is expected to be empty4875 feature is licensed4876 is expected to contain exactly #<PathLock id: 1, path: "README.md", project_id: 1235, user_id: 1832, created_at: "2023-04-26 10:51:39.572458238 +0000", updated_at: "2023-04-26 10:51:39.572458238 +0000">4877 preloads users4878 user is unauthorized4879 generates an error4880Security::Ingestion::MarkAsResolvedService4881 #execute4882 when using a vulnerability scanner4883 resolves non-generic vulnerabilities detected by the scanner4884 does not resolve vulnerabilities detected by a different scanner4885 does not resolve generic vulnerabilities4886 when a vulnerability is already ingested4887 does not resolve ingested vulnerabilities4888 when a scanner is not available4889 does not resolve any vulnerabilities4890Gitlab::Ci::Config::Entry::Job4891 .nodes4892 when filtering all the entry/node names4893 is expected to include :dast_configuration and :secrets4894 validations4895 when entry value is correct4896 when has secrets4897 behaves like a valid entry4898 #valid?4899 is valid4900 when has dast_configuration4901 behaves like a valid entry4902 #valid?4903 is valid4904 when entry value is not correct4905 when has needs4906 when needs is bridge type4907 behaves like an invalid entry4908 reports error4909 when has invalid dast_configuration4910 behaves like an invalid entry4911 reports error4912 when has invalid secrets4913 behaves like an invalid entry4914 reports error4915 dast_configuration4916 includes dast_profile value4917 secrets4918 includes secrets value4919Security::PurgeScansService4920 # order random4921 class interface4922 .purge_stale_records4923 instantiates the service class with stale scans4924 .purge_by_build_ids4925 instantiates the service class with scans by given build ids4926Mutations::DastScannerProfiles::Update4927 is expected to require graphql authorizations :create_on_demand_dast_scan4928 #resolve4929 when on demand scan feature is enabled4930 when the user can run a DAST scan4931 updates the dast_scanner_profile4932 returns the complete dast_scanner_profile4933 when the user omits unrequired elements4934 does not update those elements4935 when dast scanner profile does not exist4936 raises an exception4937EE::TanukiBotHelper4938 # order random4939 #show_tanuki_bot_chat?4940 when :openai_experimentation and tanuki_bot FF are true4941 feature_available: false, dot_com: false, has_paid_namespace: false, result: false4942 returns correct result4943 feature_available: false, dot_com: true, has_paid_namespace: false, result: false4944 returns correct result4945 feature_available: false, dot_com: true, has_paid_namespace: true, result: false4946 returns correct result4947 feature_available: true, dot_com: false, has_paid_namespace: false, result: true4948 returns correct result4949 feature_available: true, dot_com: true, has_paid_namespace: false, result: false4950 returns correct result4951 feature_available: true, dot_com: true, has_paid_namespace: true, result: true4952 returns correct result4953 when :openai_experimentation and tanuki_bot FF are not both true4954 openai_experimentation: false, tanuki_bot: false4955 returns false4956 openai_experimentation: true, tanuki_bot: false4957 returns false4958 openai_experimentation: false, tanuki_bot: true4959 returns false4960Resolvers::Ci::RunnersJobsStatisticsResolver4961 # order random4962 #resolve4963 with admin4964 when licensed4965 with no builds4966 retrieves expected fields with nil values4967 with builds4968 returns jobs statistics4969 with JOBS_LIMIT set to one lower than dataset size4970 ignores non-started job and does not affect statistics4971 with RUNNERS_LIMIT set to one4972 returns statistics from latest runner4973 when not licensed4974 when all fields are requested4975 is expected to be nil4976 with regular user4977 when licensed4978 when all fields are requested4979 is expected to be nil4980Resolvers::ProductAnalytics::VisualizationResolver4981 # order random4982 #resolve4983 returns the visualization object4984 when the visualization does not exist4985 raises an error4986Mutations::Vulnerabilities::Confirm4987 #resolve4988 when the user can confirm the vulnerability4989 when user doe not have access to the project4990 raises an error4991 when user has access to the project4992 returns the Confirmed vulnerability4993 when comment is not provided4994 returns the Confirmed vulnerability4995Types::VulnerabilityDetailType4996 exposes all possible types4997 .resolve_type4998 type: "url", value: nil, graphql_type: Types::VulnerabilityDetails::UrlType4999 correctly maps type in object to GraphQL type5000 type: "code", value: nil, graphql_type: Types::VulnerabilityDetails::CodeType5001 correctly maps type in object to GraphQL type5002 type: "text", value: nil, graphql_type: Types::VulnerabilityDetails::TextType5003 correctly maps type in object to GraphQL type5004 type: "diff", value: nil, graphql_type: Types::VulnerabilityDetails::DiffType5005 correctly maps type in object to GraphQL type5006 type: "table", value: nil, graphql_type: Types::VulnerabilityDetails::TableType5007 correctly maps type in object to GraphQL type5008 type: "commit", value: nil, graphql_type: Types::VulnerabilityDetails::CommitType5009 correctly maps type in object to GraphQL type5010 type: "markdown", value: nil, graphql_type: Types::VulnerabilityDetails::MarkdownType5011 correctly maps type in object to GraphQL type5012 type: "file-location", value: nil, graphql_type: Types::VulnerabilityDetails::FileLocationType5013 correctly maps type in object to GraphQL type5014 type: "module-location", value: nil, graphql_type: Types::VulnerabilityDetails::ModuleLocationType5015 correctly maps type in object to GraphQL type5016 type: "list", value: nil, graphql_type: Types::VulnerabilityDetails::ListType5017 correctly maps type in object to GraphQL type5018 type: "named-list", value: nil, graphql_type: Types::VulnerabilityDetails::ListType5019 correctly maps type in object to GraphQL type5020 type: "other", value: nil, graphql_type: Types::VulnerabilityDetails::BaseType5021 correctly maps type in object to GraphQL type5022 type: "value", value: nil, graphql_type: Types::VulnerabilityDetails::BaseType5023 correctly maps type in object to GraphQL type5024 type: "value", value: "1", graphql_type: Types::VulnerabilityDetails::TextType5025 correctly maps type in object to GraphQL type5026 type: "value", value: 412, graphql_type: Types::VulnerabilityDetails::IntType5027 correctly maps type in object to GraphQL type5028 type: "value", value: true, graphql_type: Types::VulnerabilityDetails::BooleanType5029 correctly maps type in object to GraphQL type5030 type: "value", value: false, graphql_type: Types::VulnerabilityDetails::BooleanType5031 correctly maps type in object to GraphQL type5032Dast::PreScanVerification5033 # order random5034 instance methods5035 #verification_valid?5036 when the associated dast_site_profile was updated before the pre_scan_verification creation5037 is expected to be verification valid5038 when the associated dast_site_profile was updated after the pre_scan_verification creation5039 is expected not to be verification valid5040 validations5041 is expected to be valid5042 is expected to validate that :dast_profile_id cannot be empty/falsy5043 is expected to validate that :status cannot be empty/falsy5044Resolvers::Analytics::DevopsAdoption::EnabledNamespacesResolver5045 #resolve5046 for instance level5047 as an admin user5048 returns enabled_namespaces for all groups without display_namespace5049 as a non-admin user5050 generates ResourceNotAvailable error5051 when the feature is not available5052 generates ResourceNotAvailable error5053 for group level5054 for reporter+5055 returns enabled_namespaces for given parent group and its descendants5056 for guests5057 generates ResourceNotAvailable error5058 when the feature is not available5059 generates ResourceNotAvailable error5060Gitlab::UsageDataCounters::HLLRedisCounter5061 .known_events5062 returns both ee and ce events5063 .track_event_in_context5064 with valid context5065 entity: "dfb9d2d2-f56c-4c77-8aeb-6cddc4a1f857", event_name: "context_event", context: "default"5066 increments context event counter5067 entity: "dfb9d2d2-f56c-4c77-8aeb-6cddc4a1f857", event_name: "context_event", context: "ultimate"5068 increments context event counter5069 entity: "dfb9d2d2-f56c-4c77-8aeb-6cddc4a1f857", event_name: "context_event", context: "gold"5070 increments context event counter5071 when sending empty context5072 is not incrementing the counter5073 .unique_events5074 with events tracked in context5075 with correct arguments5076 context: default_context, value: 25077 is expected to eq 25078 context: ultimate_context, value: 15079 is expected to eq 15080 context: gold_context, value: 15081 is expected to eq 15082 context: "", value: 05083 is expected to eq 05084 with invalid context5085 raise error5086 .track_event5087 with settings usage ping disabled5088 with license usage ping enabled5089 tracks the event5090Mutations::Vulnerabilities::DestroyExternalIssueLink5091 #resolve5092 when user does not have permissions to destroy external issue link5093 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable5094 when user has permission to destroy external issue link5095 when destroy succeeds5096 is expected to eq {:errors=>[]}5097 when destroy fails5098 is expected to eq {:errors=>["Error deleting the vulnerability external issue link"]}5099Ci::Runners::AssignRunnerService#execute5100 with unauthorized user5101 does not call assign_to on runner and returns error response5102 with admin user5103 with assign_to returning true5104 calls track_event on RunnerCustomAuditEventService and returns success response5105 with assign_to returning false5106 does not call track_event on RunnerCustomAuditEventService and returns error response5107GitlabSubscriptions::Reconciliations::CheckSeatUsageAlertsEligibilityService5108 #execute5109 eligible_for_seat_usage_alerts: true, expected_response: true5110 returns the correct value5111 caches the query response5112 eligible_for_seat_usage_alerts: false, expected_response: false5113 returns the correct value5114 caches the query response5115 with an unsuccessful CustomersDot query5116 assumes the subscription is ineligible5117 when called with a group5118 uses the namespace id5119 when the namespace has no plan5120 is expected to equal false5121GroupSaml::SignUpService5122 #execute5123 creates new user5124 links new user to oauth identity5125 when group has enforced_group_managed_accounts enabled5126 creates new user managed by given group5127Security::SecurityOrchestrationPolicies::OnDemandScanPipelineConfigurationService5128 #execute5129 uses DastSiteProfilesFinder and DastScannerProfilesFinder to find DAST profiles within the project5130 delegates params creation to DastOnDemandScans::ParamsCreateService5131 fetches template content using ::TemplateFinder5132 returns prepared CI configuration with DAST On-Demand scans defined5133 variable injection and precedence5134 overrides template variables with action variables5135ee:gitlab:seed:awesome_co5136 # order random5137 prints a seeding statement5138 when seed file does not exist5139 raises an error5140WorkItems::Widgets::Filters::RequirementLegacy5141 # order random5142 .filter5143 when legacy_iids parameter contains a single item5144 is expected to contain exactly #<WorkItem id:344 namespace1217/project-1280#35>5145 when legacy_iids parameter contains multiple items5146 is expected to contain exactly #<WorkItem id:344 namespace1217/project-1280#35>, #<WorkItem id:345 namespace1217/project-1280#74>, and #<WorkItem id:346 namespace1217/project-1280#356>5147 when legacy_iids parameter is nil5148 is expected to contain exactly #<WorkItem id:344 namespace1217/project-1280#35>, #<WorkItem id:345 namespace1217/project-1280#74>, and #<WorkItem id:346 namespace1217/project-1280#356>5149Security::UpdateTrainingService5150 #execute5151 when there is no provider with the given id5152 does not raise error5153 when `is_enabled` argument is false5154 when the deletion fails5155 is expected to match {:status=>:error, :message=>"Updating security training failed!", :training=>(an instance of Security::Training)}5156 when there is no training5157 is expected to match {:status=>:success, :training=>(an instance of Security::Training)}5158 when there is a training5159 is expected to eq {:status=>:success, :training=>#<Security::Training id: 1, project_id: 1261, provider_id: 1, is_prima...eated_at: "2023-04-26 10:52:09.770498388 +0000", updated_at: "2023-04-26 10:52:09.770498388 +0000">}5160 deletes the existing training5161 when `is_enabled` argument is true5162 when updating the training fails5163 is expected to match {:status=>:error, :message=>"Updating security training failed!", :training=>(an instance of Security::Training)}5164 when `is_primary` argument is false5165 when there is no security training for the project with given provider5166 creates a new security training record for the project5167 when there is a security training for the project with given provider5168 updates the `is_primary` attribute of the existing security training records to false5169 when `is_primary` argument is true5170 when there is already a primary training for the project5171 when there is no security training for the project with given provider5172 creates a new security training record for the project5173 when there is a security training for the project with given provider5174 updates the `is_primary` attribute of the security training records5175 when there is not a primary training for the project5176 when there is no security training for the project with given provider5177 creates a new security training record for the project5178 when there is a security training for the project with given provider5179 updates the `is_primary` attribute of the existing security training record to true5180ComplianceManagement::MergeRequests::CreateComplianceViolationsService5181 when the compliance report feature is disabled5182 behaves like does not call process_merge_request5183 aggregate_failures5184 when the compliance report feature is enabled5185 and the merge request is not merged5186 does not call process_merge_request5187 and the merge request is merged5188 calls process_merge_request5189GitlabSubscriptions::CheckFutureRenewalService5190 #execute5191 in_last_term: true, expected_response: false5192 returns the correct value5193 caches the query response5194 in_last_term: false, expected_response: true5195 returns the correct value5196 caches the query response5197 with an unsuccessful CustomersDot query5198 assumes no future renewal5199 when called with a sub-group5200 uses the root ancestor namespace5201 when the namespace has no plan5202 is expected to equal false5203Repositories::HousekeepingService5204 behaves like housekeeps repository5205 with a clean redis state5206 #execute5207 enqueues a sidekiq job5208 yields the block if given5209 resets counter after execution5210 runs the task specifically requested5211 when no lease can be obtained5212 does not enqueue a job5213 does not reset pushes_since_gc5214 does not yield5215 task type5216 goes through all three housekeeping tasks, executing only the highest task when there is overlap5217 #needed?5218 when the count is low enough5219 when the count is high enough5220 when incremental repack period is not multiple of gc period5221 #increment!5222 increments the pushes_since_gc counter5223Elastic::Latest::SnippetInstanceProxy5224 #as_indexed_json5225 serializes snippet as hash5226Gitlab::Usage::Metrics::NamesSuggestions::Generator5227 # order random5228 #generate5229 metrics with `having` keyword5230 behaves like name suggestion5231 returns correct name5232 behaves like name suggestion5233 returns correct name5234Integrations::JiraSerializers::IssueEntity5235 returns the Jira issues attributes5236 with Jira Server configuration5237 returns the Jira Server profile URL5238 includes the Atlassian referrer on gitlab.com5239 sets user id field to `name`5240 with only url5241 returns URLs with the web url5242 with Jira Cloud configuration5243 returns the Jira Cloud profile URL5244 includes the Atlassian referrer on gitlab.com5245 sets user id field to `accountId`5246 without assignee5247 returns an empty array5248 without labels5249 returns an empty array5250projects/security/dast_profiles/show5251 renders Vue app root5252 passes new dast site profile path5253 passes new dast scanner profile path5254 passes project's full path5255Elastic::IndexProjectsByRangeService5256 #execute5257 when without project5258 does not err5259 when range not specified5260 schedules for all projects5261 respects batch_size setting5262 when range specified5263 schedules for projects within range5264 respects batch_size setting5265Gitlab::LicenseScanning::BranchComponents5266 # order random5267 #fetch5268 fetches the latest pipeline for the given ref with sbom reports5269 when there is a pipeline with an sbom report5270 fetches components for the sbom pipeline5271 when the pipeline does not have an sbom report5272 behaves like does not fetch pipeline components5273 is expected not to receive new(*(any args)) 0 times5274 when the pipeline does not have any reports5275 behaves like does not fetch pipeline components5276 is expected not to receive new(*(any args)) 0 times5277 when no pipeline exists for the given ref5278 behaves like does not fetch pipeline components5279 is expected not to receive new(*(any args)) 0 times5280StatusPage::PublishListService5281 # order random5282 #execute5283 when json upload succeeds5284 publishes details as JSON5285 when upload fails due to exception5286 propagates the exception5287 when limits exceeded5288 returns limit exceeded error5289 when status page setting is not enabled5290 returns feature not available error5291Types::IncidentManagement::EscalationRuleInputType5292 # order random5293 has specific fields5294 mutually exclusive arguments5295 with neither username nor schedule provided5296 is expected to raise Gitlab::Graphql::Errors::ArgumentError with "One of oncall_schedule_iid or username must be provided"5297 with both username and schedule provided5298 is expected to raise Gitlab::Graphql::Errors::ArgumentError with "One of oncall_schedule_iid or username must be provided"5299 with only on-call schedule provided5300 is expected to eq {:elapsed_time_seconds=>0, :oncall_schedule_iid=>"3", :status=>"resolved", :username=>nil}5301 with only user schedule provided5302 is expected to eq {:elapsed_time_seconds=>0, :oncall_schedule_iid=>nil, :status=>"resolved", :username=>"username"}5303Search::ReindexingService5304 # order random5305 .execute5306 passes arguments to instance5307 #execute5308 passes correct arguments to search client5309 #request5310 formats request correctly5311 when overrides are given5312 formats request correctly5313Secret-Detection.gitlab-ci.yml5314 the created pipeline5315 when project has no license5316 when SECRET_DETECTION_DISABLED=15317 includes no jobs5318 by default5319 creates a pipeline with the expected jobs5320AlertManagement::ExtractAlertPayloadFieldsService5321 with license5322 with permissions5323 when payload is valid JSON5324 when payload has an acceptable size5325 responds with success5326 returns parsed fields5327 when limits are exceeded5328 returns payload size exceeded error5329 when payload is not a valid JSON5330 returns payload parse failure error5331 without permissions5332 returns insufficient permissions error5333EE::Gitlab::Scim::Group::ReprovisioningService5334 # order random5335 #execute5336 activates scim identity5337 creates the member5338 creates the member with the access level as specified in saml_provider5339 does not change group membership when the user is already a member5340 with minimal access user5341 does not change group membership when the user is already a member5342Vulnerabilities::Flag5343 associations5344 is expected to belong to finding class_name => Vulnerabilities::Finding required: true5345 validations5346 is expected to validate that the length of :origin is at most 2555347 is expected to validate that the length of :description is at most 10245348 is expected to validate that :flag_type cannot be empty/falsy5349 is expected to validate that :flag_type is unique within the scope of :vulnerability_occurrence_id and :origin5350 is expected to define :flag_type as an enum backed by an integer with values ‹{false_positive: 0}›5351 #initialize5352 creates a valid flag with flag_type attribute5353Types::GroupReleaseStatsType5354 is expected to require graphql authorizations :read_group_release_stats5355 has the expected fields5356Types::Dast::ProfileScheduleType5357 is expected to eq "DastProfileSchedule"5358 is expected to have graphql fields :id, :active, :startsAt, :timezone, :nextRunAt, :cadence, and :ownerValid5359 startsAt field5360 converts the startsAt to the timezone5361 nextRunAt field5362 converts the nextRunAt to the timezone5363 ownerValid5364 returns if the owner is valid5365Git::WikiPushService5366 #process_changes5367 with a group wiki5368 does not create any events5369 when elasticsearch is enabled5370 when changes include master ref5371 triggers a wiki update5372 with a group wiki5373 does not trigger a wiki update5374 when changes do not include master ref5375 does not trigger a wiki update5376 when elasticsearch is disabled5377 when changes include master ref5378 does nothing even if changes include master ref5379Admin::IpRestrictionHelper5380 #ip_restriction_feature_available5381 when group_ip_restriction feature is available5382 is expected to be truthy5383 when group_ip_restriction feature is disabled5384 is expected to be falsey5385 when usage ping is enabled5386 when usage_ping_features is enabled5387 is expected to be truthy5388 when usage_ping_features is disabled5389 is expected to be falsey5390 when usage ping is disabled5391 is expected to be falsey5392Analytics::DevopsAdoption::EnabledNamespaces::FindOrCreateService5393 authorizes for manage_devops_adoption5394 when enabled_namespace for given namespace & display_namespace already exists5395 returns existing enabled_namespace5396 when enabled_namespace for given namespace does not exist5397 calls for enabled_namespace creation5398 when user cannot manage devops adoption for given namespace5399 returns forbidden error5400Ci::Minutes::AdditionalPacks::CreateService5401 #execute5402 with a non-admin user5403 raises an error5404 with an admin user5405 when a record exists5406 returns success5407 returns the existing and newly created records5408 when no record exists5409 creates new records5410 kicks off reset ci minutes service5411 returns success5412 with invalid params5413 returns an error5414shared/credentials_inventory/ssh_keys/_ssh_key.html.haml5415 shows the users name5416 shows the created on date5417 shows the expiry date5418 shows the delete button5419 last accessed date5420 when set5421 shows the last accessed on date5422 when not set5423 shows "Never" for the last accessed on date5424Gitlab::Auth::Ldap::Adapter5425 includes the EE module5426 #groups5427 searches with the proper options5428 returns a group object if search returns a result5429 #filter_search5430 searches with the proper options5431 errors out with an invalid filter5432 #user_by_certificate_assertion5433 searches with the proper options5434 return value5435 returns a person object5436 returns correct attributes5437Ci::Minutes::CostSetting5438 # order random5439 associations5440 is expected to belong to runner required: false5441 validations5442 is expected to validate that :os_contribution_factor cannot be empty/falsy5443 is expected to validate that :os_plan_factor cannot be empty/falsy5444 is expected to validate that :standard_factor cannot be empty/falsy5445 is expected to validate that :standard_factor looks like a number5446 is expected to validate that :os_contribution_factor looks like a number5447 is expected to validate that :os_plan_factor looks like a number5448 when the runner is shared5449 is expected to be valid5450 when the runner is not shared5451 is invalid5452PathLocks::UnlockService5453 unlocks path5454 raises exception if user has no permissions5455Security::Configuration::SaveAutoFixService5456 #execute5457 with supported scanner type5458 returns success status5459 changes setting5460 with all scanners5461 returns success status5462 changes setting5463 with not supported scanner type5464 does not change setting5465PackageMetadata::Ingestion::IngestionService5466 # order random5467 .execute5468 calls each task in order5469 transaction5470 and when every task executes without error5471 all updates are committed5472 but when PackageMetadata::Ingestion::Tasks::IngestPackages has an error5473 all updates are rolled back5474 but when PackageMetadata::Ingestion::Tasks::IngestPackageVersions has an error5475 all updates are rolled back5476 but when PackageMetadata::Ingestion::Tasks::IngestLicenses has an error5477 all updates are rolled back5478 but when PackageMetadata::Ingestion::Tasks::IngestPackageVersionLicenses has an error5479 all updates are rolled back5480 created data5481 has the expected relationships5482Geo::SidekiqCronConfigWorker5483 #perform5484 runs the cron manager5485shared/issuable/_iterations_dropdown.html.haml5486 behaves like issuable bulk dropdown5487 renders hidden input5488 renders vue root5489 without parent5490 is nil5491 without feature5492 is nil5493GeoRepositoryDestroyWorker5494 #perform5495 with an existing project5496 delegates project removal to Geo::RepositoryDestroyService5497 with project ID from an orphaned registry5498 delegates project removal to Geo::RepositoryDestroyService5499layouts/header/_current_user_dropdown5500 Buy Pipeline Minutes link in user dropdown5501 when pipeline minutes need bought without notification dot5502 has "Buy Pipeline minutes" link with correct data properties5503 when pipeline minutes need bought and there is a notification dot5504 has "Buy Pipeline minutes" link with correct text5505 when pipeline minutes need bought and notification dot has been acknowledged5506 has "Buy Pipeline minutes" link with correct text5507 when ci minutes do not need bought5508 has no "Buy Pipeline minutes" link5509Sidebars::Projects::Panel5510 ExternalIssueTrackerMenu5511 when show_jira_menu_items? is false5512 contains ExternalIssueTracker menu5513 when show_jira_menu_items? is true5514 does not contain ExternalIssueTracker menu5515 with learn gitlab menu5516 contains the menu5517Mutations::AuditEvents::Streaming::EventTypeFilters::Create5518 # order random5519 #resolve5520 when feature is unlicensed5521 returns useful error messages5522 when feature is licensed5523 when current_user is not group owner5524 returns useful error messages5525 when current_user is group owner5526 and calls create service5527 when response is success5528 returns event type filters5529 when response is error5530 returns error message5531EE::Gitlab::Scim::DeprovisioningService5532 # order random5533 #execute5534 when user is successfully removed5535 deactivates scim identity5536 blocks the user5537 returns the successful deprovision message5538WorkItems::Widgets::HealthStatus5539 # order random5540 #health_status5541 is expected to eq "on_track"5542 .quick_action_params5543 is expected to include :health_status5544Gitlab::Geo::LogCursor::EventLogs5545 #fetch_in_batches5546 when there are no event_logs5547 does not yield a group of events5548 when there are event logs5549 when there is no event_log_state5550 does not yield a group of events5551 when there is already an event_log_state5552 saves last event as last processed after yielding5553 yields a group of events5554WorkItems::Widgets::RequirementLegacy5555 # order random5556 #legacy_iid5557 is expected to eq 15558 #type5559 is expected to eq :requirement_legacy5560 .type5561 is expected to eq :requirement_legacy5562Projects::OpenIssuesCountService5563 #count5564 includes all issue types5565ProtectedBranches::UpdateService5566 #execute5567 with invalid params5568 does not add a security audit event entry5569 with valid params5570 adds security audit event entries5571Gitlab::Usage::Metrics::Instrumentations::CountSlackAppInstallationsMetric5572 behaves like a correct instrumented metric value and query5573 behaves like a correct instrumented metric value5574 has correct value5575 behaves like a correct instrumented metric query5576 has correct generate query5577Vulnerabilities::MergeRequestLink5578 associations and fields5579 is expected to belong to vulnerability required: false5580 is expected to belong to merge_request required: false5581 is expected to have one author class_name => User through merge_request5582MergeRequests::Mergeability::CheckDeniedPoliciesService5583 #execute5584 when the merge request has denied policies5585 returns a check result with status failed5586 when the merge request does not have denied policies5587 returns a check result with status success5588 #skip?5589 returns false5590 #cacheable?5591 returns false5592Integrations::JiraSerializers::IssueSerializer5593 #represent5594 when an empty array is being serialized5595 returns an empty array5596 when multiple objects are being serialized5597 serializes the array of jira issues5598Ci::PipelineEntity5599 #as_json5600 contains flags5601Approvals::WrappedRuleSet5602 .wrap5603 with report_type set to scan_finding5604 is expected to be an instance of Approvals::ScanFindingWrappedRuleSet5605 with any other report_type5606 is expected to be an instance of Approvals::WrappedRuleSet5607 #wrapped_rules5608 returns an array of ApprovalWrappedRule5609 returns ApprovalWrappedRule with attributes as provided to Approvals::WrappedRuleSet5610Geo::VerifiableModel5611 when separate table is used for verification state5612-- create_table(:_test_dummy_model_with_separate_states, {:force=>true})5613 -> 0.0038s5614-- create_table(:_test_dummy_model_states, {:id=>false, :force=>true})5615 -> 0.0028s5616 .verification_state_model_key5617 returns the primary key of the state model5618-- drop_table(:_test_dummy_model_with_separate_states, {:force=>true})5619 -> 0.0023s5620-- drop_table(:_test_dummy_model_states, {:force=>true})5621 -> 0.0016s5622 when separate table is not used for verification state5623-- create_table(:_test_dummy_models, {:force=>true})5624 -> 0.0039s5625 .verification_state_object5626 returns self5627 .verification_state_model_key5628 returns the primary key of the model5629-- drop_table(:_test_dummy_models, {:force=>true})5630 -> 0.0026s5631EE::API::Entities::Scim::UserName5632 contains the name5633 contains the first name5634 contains the last name5635ApplyMaxAnalyzedOffset5636 behaves like a deprecated Advanced Search migration5637 #migrate5638 logs a message and halts the migration5639 #completed?5640 returns false5641 #obsolete?5642 returns true5643Geo::SecondaryUsageDataCronWorker5644 uses a cronjob queue5645 does not run for primary nodes5646 calls SecondaryUsageData update metrics when it obtains the lease5647 does not update metrics if it does not obtain the lease5648IncidentManagement::PendingEscalations::AlertCreateWorker5649 # order random5650 #perform5651 with valid alert5652 processes the escalation5653 without valid alert5654 does nothing5655Types::WorkItems::Widgets::HealthStatusType5656 # order random5657 is expected to have graphql fields :type and :health_status5658 is expected to eq "WorkItemWidgetHealthStatus"5659Gitlab::Auth::Ldap::Config5660 .available_providers5661 when multiple LDAP servers are licensed5662 returns multiple configured providers5663 ._available_servers5664 when no database connection occurs5665 returns an empty array5666Types::IncidentManagement::OncallScheduleType5667 # order random5668 is expected to require graphql authorizations :read_incident_management_oncall_schedule5669 exposes the expected fields5670 is expected to eq "IncidentManagementOncallSchedule"5671Auditable5672 #push_audit_event5673 when audit event queue is active5674 add message to audit event queue5675 when audit event queue is not active5676 does not add message to audit event queue5677 #audit_details5678 raises error to prompt for implementation5679MetricsReportMetricEntity5680 #as_json5681 contains the correct metric5682 when the metric did not change5683 does not expose previous_value5684 when the metric changed5685 exposes the previous_value5686Gitlab::OmniauthInitializer5687 .full_host5688 with non-proxied request5689 is expected to eq "http://localhost/test"5690 with a proxied request5691 for a non-existing node5692 is expected to eq "http://localhost/test"5693 for an existing node5694 is expected to eq "http://localhost/geonode_url"5695MergeRequestsHelper5696 #render_items_list5697 returns one item in the list5698 returns two items in the list5699 returns three items in the list5700Types::VulnerabilitySeveritiesCountType5701 is expected to have graphql fields "info", "unknown", "low", "medium", "high", and "critical"5702Types::Vulnerability::StateTransitionType5703 # order random5704 is expected to require graphql authorizations :read_security_resource5705 is expected to have graphql fields :from_state, :to_state, :comment, :dismissal_reason, :author, and :created_at5706StorageShard5707 .all5708 returns an array of StorageShard objects5709 .build_digest5710 returns SHA1 digest for the current configuration5711Types::Geo::ProjectWikiRepositoryRegistryType5712 # order random5713 has the expected fields (other than those included in RegistryType)5714 behaves like a Geo registry type5715 is expected to require graphql authorizations :read_geo_registry5716 has the expected fields5717Types::Dast::ProfileCadenceType5718 is expected to eq "DastProfileCadence"5719 is expected to have graphql fields :unit and :duration5720Types::IncidentManagement::OncallParticipantType5721 # order random5722 is expected to eq "OncallParticipantType"5723 exposes the expected fields5724Types::Ci::CodeCoverageSummaryType5725 is expected to eq "CodeCoverageSummary"5726 fields5727 is expected to have graphql fields :average_coverage, :coverage_count, and :last_updated_on5728Ci::Processable5729 delegations5730 is expected to delegate #merge_train_pipeline? to the #pipeline object5731ElasticIndexInitialBulkCronWorker5732 behaves like worker with data consistency5733 .get_data_consistency_feature_flag_enabled?5734 returns true5735 .get_data_consistency5736 returns correct data consistency5737Types::VulnerabilityDetails::IntType5738 is expected to have graphql fields :name, :description, :fieldName, and :value5739API::Entities::EpicBoards::List5740 # order random5741 exposes correct attributes5742Types::Ci::RunnerType5743 is expected to eq "CiRunner"5744 includes the ee specific fields5745Types::Ci::CodeQualityDegradationType5746 is expected to have graphql fields :description, :fingerprint, :severity, :web_url, :path, :line, and :engine_name5747Gitlab::StatusPage::Filter::MentionAnonymizationFilter5748 # order random5749 replaces user link with anonymized text5750Types::PermissionTypes::Vulnerability5751 is expected to have graphql field :read_vulnerability5752Knapsack report was generated. Preview:5753{5754 "ee/spec/lib/gitlab/elastic/search_results_spec.rb": 558.3318620569999,5755 "ee/spec/models/group_wiki_spec.rb": 103.60718278100012,5756 "ee/spec/elastic_integration/global_search_spec.rb": 61.471538647999296,5757 "ee/spec/models/merge_trains/car_spec.rb": 64.08345525799996,5758 "ee/spec/models/vulnerabilities/read_spec.rb": 54.69429597399994,5759 "ee/spec/replicators/geo/pages_deployment_replicator_spec.rb": 43.10403890900034,5760 "ee/spec/services/ee/merge_requests/create_pipeline_service_spec.rb": 43.06881345999955,5761 "ee/spec/services/todo_service_spec.rb": 35.37243447900073,5762 "ee/spec/services/ci/sync_reports_to_approval_rules_service_spec.rb": 30.94622993899975,5763 "ee/spec/elastic/migrate/20230131184300_backfill_traversal_ids_for_projects_spec.rb": 27.460660437000115,5764 "ee/spec/services/ee/issues/move_service_spec.rb": 28.454884881999533,5765 "ee/spec/models/hooks/group_hook_spec.rb": 20.236664414000188,5766 "ee/spec/services/geo/framework_repository_sync_service_spec.rb": 14.500098994999462,5767 "ee/spec/services/groups/update_service_spec.rb": 20.77060192600038,5768 "ee/spec/services/approval_rules/params_filtering_service_spec.rb": 24.49330193700007,5769 "ee/spec/services/ee/protected_branches/create_service_spec.rb": 20.54988700299964,5770 "ee/spec/lib/incident_management/oncall_shift_generator_spec.rb": 11.081291684999997,5771 "ee/spec/models/namespace_setting_spec.rb": 7.400062793999496,5772 "ee/spec/finders/geo/pages_deployment_registry_finder_spec.rb": 19.445113048000167,5773 "ee/spec/workers/update_all_mirrors_worker_spec.rb": 16.02859637199981,5774 "ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb": 14.373753263000253,5775 "ee/spec/services/ee/merge_requests/post_merge_service_spec.rb": 11.299028945999453,5776 "ee/spec/models/ee/list_spec.rb": 11.602755181999783,5777 "ee/spec/models/dora/daily_metrics_spec.rb": 5.724134039000091,5778 "ee/spec/models/ci/bridge_spec.rb": 8.401369557999715,5779 "ee/spec/graphql/resolvers/vulnerability_severities_count_resolver_spec.rb": 8.349460945999454,5780 "ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb": 10.672222985999724,5781 "ee/spec/workers/store_security_reports_worker_spec.rb": 11.264895722000801,5782 "ee/spec/lib/gitlab/git_access_wiki_spec.rb": 8.035494381000717,5783 "ee/spec/helpers/boards_helper_spec.rb": 3.855253700000503,5784 "ee/spec/services/ci/trigger_downstream_subscription_service_spec.rb": 10.058322224999756,5785 "ee/spec/services/ee/issue_links/create_service_spec.rb": 11.995287632000327,5786 "ee/spec/models/project_feature_spec.rb": 5.112608268000258,5787 "ee/spec/services/compliance_management/frameworks/update_service_spec.rb": 3.8970233719992393,5788 "ee/spec/models/dast/site_profile_secret_variable_spec.rb": 2.913224545999583,5789 "ee/spec/services/app_sec/dast/scanner_profiles/update_service_spec.rb": 4.858620341999995,5790 "ee/spec/models/software_license_policy_spec.rb": 7.027797368999927,5791 "ee/spec/services/projects/gitlab_projects_import_service_spec.rb": 7.187658832000125,5792 "ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb": 5.861356045999855,5793 "ee/spec/views/layouts/application.html.haml_spec.rb": 6.9639980100000685,5794 "ee/spec/lib/elastic/latest/project_wiki_class_proxy_spec.rb": 8.40130256700013,5795 "ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb": 5.285005337000257,5796 "ee/spec/models/vulnerabilities/export_spec.rb": 3.670138771999518,5797 "ee/spec/elastic/migrate/20230316150000_add_hashed_root_namespace_id_to_merge_requests_spec.rb": 6.599135254999965,5798 "ee/spec/services/iterations/cadences/destroy_service_spec.rb": 3.7254875729995547,5799 "ee/spec/lib/gitlab/compliance_management/violations/approved_by_insufficient_users_spec.rb": 4.025038929000402,5800 "ee/spec/workers/ci/minutes/refresh_cached_data_worker_spec.rb": 2.4269443120001597,5801 "ee/spec/graphql/mutations/incident_management/escalation_policy/update_spec.rb": 3.5549671420003506,5802 "ee/spec/services/geo/rename_repository_service_spec.rb": 7.418875430999833,5803 "ee/spec/services/ee/incident_management/issuable_escalation_statuses/prepare_update_service_spec.rb": 2.565375596999729,5804 "ee/spec/finders/ee/projects_finder_spec.rb": 3.09637012300027,5805 "ee/spec/models/status_page/published_incident_spec.rb": 3.018579958000373,5806 "ee/spec/services/incident_management/pending_escalations/create_service_spec.rb": 1.9777118010006234,5807 "ee/spec/models/audit_events/instance_external_audit_event_destination_spec.rb": 2.349088706000657,5808 "ee/spec/views/shared/billings/_eoa_bronze_plan_banner.html.haml_spec.rb": 2.6238825869995708,5809 "ee/spec/lib/ee/gitlab/pages/deployment_update_spec.rb": 5.292461786999411,5810 "ee/spec/services/incident_management/issuable_resource_links/create_service_spec.rb": 3.46967432800011,5811 "ee/spec/lib/gitlab/import_export/project/project_hooks_restorer_spec.rb": 2.414801943999919,5812 "ee/spec/graphql/types/vulnerability_request_response_header_type_spec.rb": 4.070653161999871,5813 "ee/spec/lib/gitlab/geo/replicator_spec.rb": 1.41562267000063,5814 "ee/spec/lib/gitlab/cidr_spec.rb": 0.7763035529997069,5815 "ee/spec/graphql/mutations/dast_scanner_profiles/create_spec.rb": 3.862839548000011,5816 "ee/spec/models/elastic/index_setting_spec.rb": 1.2875915329996133,5817 "ee/spec/lib/gitlab/com_spec.rb": 2.630696975000319,5818 "ee/spec/workers/elastic_index_bulk_cron_worker_spec.rb": 0.6735348109996266,5819 "ee/spec/finders/incident_management/escalation_policies_finder_spec.rb": 2.488756180000564,5820 "ee/spec/finders/boards/epic_boards_finder_spec.rb": 0.7694870539999101,5821 "ee/spec/services/merge_requests/remove_approval_service_spec.rb": 5.413434515000517,5822 "ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_merge_requests_for_projects_with_applied_scan_result_policies_metric_spec.rb": 1.8797568480003974,5823 "ee/spec/views/shared/milestones/_milestone.html.haml_spec.rb": 2.178070165000463,5824 "ee/spec/services/llm/explain_code_service_spec.rb": 2.08242662199973,5825 "ee/spec/graphql/resolvers/external_issue_resolver_spec.rb": 1.5736207619993365,5826 "ee/spec/services/security/security_orchestration_policies/ci_configuration_service_spec.rb": 1.3304085849995317,5827 "ee/spec/services/gitlab_subscriptions/fetch_subscription_plans_service_spec.rb": 0.6867477989999315,5828 "ee/spec/graphql/mutations/security/finding/dismiss_spec.rb": 2.159451729000466,5829 "ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb": 2.425808732000405,5830 "ee/spec/workers/sync_seat_link_worker_spec.rb": 2.232749566000166,5831 "ee/spec/models/groups/repository_storage_move_spec.rb": 1.430970288000026,5832 "ee/spec/policies/deployment_policy_spec.rb": 3.738077770000018,5833 "ee/spec/graphql/resolvers/path_locks_resolver_spec.rb": 1.0383294570001453,5834 "ee/spec/services/security/ingestion/mark_as_resolved_service_spec.rb": 2.0033177870000145,5835 "ee/spec/lib/gitlab/ci/config/entry/job_spec.rb": 0.7579938760000005,5836 "ee/spec/services/security/purge_scans_service_spec.rb": 2.330566349000037,5837 "ee/spec/graphql/mutations/dast_scanner_profiles/update_spec.rb": 1.6361871709996194,5838 "ee/spec/helpers/ee/tanuki_bot_helper_spec.rb": 0.7381624589997955,5839 "ee/spec/graphql/resolvers/ci/runners_jobs_statistics_resolver_spec.rb": 1.8758045790000324,5840 "ee/spec/graphql/resolvers/product_analytics/visualization_resolver_spec.rb": 1.5276675299992348,5841 "ee/spec/graphql/mutations/vulnerabilities/confirm_spec.rb": 2.8346113899997363,5842 "ee/spec/graphql/types/vulnerability_detail_type_spec.rb": 1.1111641839997901,5843 "ee/spec/models/dast/pre_scan_verification_spec.rb": 1.4515435229996,5844 "ee/spec/graphql/resolvers/analytics/devops_adoption/enabled_namespaces_resolver_spec.rb": 1.3937269150001157,5845 "ee/spec/lib/ee/gitlab/usage_data_counters/hll_redis_counter_spec.rb": 1.1243633519998184,5846 "ee/spec/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb": 1.3234821959995315,5847 "ee/spec/services/ci/runners/assign_runner_service_spec.rb": 1.3485677619992202,5848 "ee/spec/services/gitlab_subscriptions/reconciliations/check_seat_usage_alerts_eligibility_service_spec.rb": 1.0280082090002907,5849 "ee/spec/services/group_saml/sign_up_service_spec.rb": 1.2407399210005678,5850 "ee/spec/services/security/security_orchestration_policies/on_demand_scan_pipeline_configuration_service_spec.rb": 1.5676613329997053,5851 "ee/spec/tasks/gitlab/seed/awesome_co_rake_spec.rb": 2.335054348000085,5852 "ee/spec/finders/work_items/widgets/filters/requirement_legacy_spec.rb": 1.3886474350001663,5853 "ee/spec/services/security/update_training_service_spec.rb": 1.3971891239998513,5854 "ee/spec/services/compliance_management/merge_requests/create_compliance_violations_service_spec.rb": 2.5685492209995573,5855 "ee/spec/services/gitlab_subscriptions/check_future_renewal_service_spec.rb": 0.9971058649998668,5856 "ee/spec/services/repositories/housekeeping_service_spec.rb": 1.54001797500041,5857 "ee/spec/lib/elastic/latest/snippet_instance_proxy_spec.rb": 0.48752561299988884,5858 "ee/spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb": 2.14068221099933,5859 "ee/spec/serializers/integrations/jira_serializers/issue_entity_spec.rb": 1.3826135939998494,5860 "ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb": 2.0762750750000123,5861 "ee/spec/services/elastic/index_projects_by_range_service_spec.rb": 0.6365649839999605,5862 "ee/spec/lib/gitlab/license_scanning/branch_components_spec.rb": 1.7440573229996517,5863 "ee/spec/services/status_page/publish_list_service_spec.rb": 0.8383261830003903,5864 "ee/spec/graphql/types/incident_management/escalation_rule_input_type_spec.rb": 0.5985159270003351,5865 "ee/spec/services/search/reindexing_service_spec.rb": 0.44640023600004497,5866 "ee/spec/lib/gitlab/ci/templates/secret_detection_gitlab_ci_yaml_spec.rb": 2.022579188000236,5867 "ee/spec/services/alert_management/extract_alert_payload_fields_service_spec.rb": 1.4970481580003252,5868 "ee/spec/lib/ee/gitlab/scim/group/reprovisioning_service_spec.rb": 3.1186130070000218,5869 "ee/spec/models/vulnerabilities/flag_spec.rb": 1.658201088000169,5870 "ee/spec/graphql/types/group_release_stats_type_spec.rb": 0.622891066000193,5871 "ee/spec/graphql/types/dast/profile_schedule_type_spec.rb": 1.5030804160005573,5872 "ee/spec/services/ee/git/wiki_push_service_spec.rb": 1.3577557640001032,5873 "ee/spec/helpers/admin/ip_restriction_helper_spec.rb": 1.0236516639997717,5874 "ee/spec/services/analytics/devops_adoption/enabled_namespaces/find_or_create_service_spec.rb": 1.3016009869998015,5875 "ee/spec/services/ci/minutes/additional_packs/create_service_spec.rb": 0.9637732370001686,5876 "ee/spec/views/shared/credentials_inventory/ssh_keys/_ssh_key.html.haml_spec.rb": 1.1567816460001268,5877 "ee/spec/lib/gitlab/auth/ldap/adapter_spec.rb": 0.8692904619992987,5878 "ee/spec/models/ci/minutes/cost_setting_spec.rb": 0.8434463329995197,5879 "ee/spec/services/path_locks/unlock_service_spec.rb": 1.5416636950003522,5880 "ee/spec/services/security/configuration/save_auto_fix_service_spec.rb": 0.7336492289996386,5881 "ee/spec/services/package_metadata/ingestion/ingestion_service_spec.rb": 0.825297875000615,5882 "ee/spec/workers/geo/sidekiq_cron_config_worker_spec.rb": 0.32134542200037686,5883 "ee/spec/views/shared/issuable/_iterations_dropdown.html.haml_spec.rb": 0.879116981000152,5884 "ee/spec/workers/geo_repository_destroy_worker_spec.rb": 1.210524732999147,5885 "ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb": 0.860433462000401,5886 "ee/spec/lib/ee/sidebars/projects/panel_spec.rb": 0.8684502020005311,5887 "ee/spec/graphql/mutations/audit_events/streaming/event_type_filters/create_spec.rb": 1.2224767219995556,5888 "ee/spec/lib/ee/gitlab/scim/deprovisioning_service_spec.rb": 1.162693956000112,5889 "ee/spec/models/work_items/widgets/health_status_spec.rb": 0.8302482239996607,5890 "ee/spec/lib/gitlab/geo/log_cursor/event_logs_spec.rb": 0.9857986649994928,5891 "ee/spec/models/work_items/widgets/requirement_legacy_spec.rb": 0.9090041899999051,5892 "ee/spec/services/projects/open_issues_count_service_spec.rb": 0.8895147709999947,5893 "ee/spec/services/ee/protected_branches/update_service_spec.rb": 1.3500929349993385,5894 "ee/spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_metric_spec.rb": 1.0635942910002996,5895 "ee/spec/models/vulnerabilities/merge_request_link_spec.rb": 0.4820677629995771,5896 "ee/spec/services/merge_requests/mergeability/check_denied_policies_service_spec.rb": 0.6952337620004982,5897 "ee/spec/serializers/integrations/jira_serializers/issue_serializer_spec.rb": 0.6999645910000254,5898 "ee/spec/serializers/ee/ci/pipeline_entity_spec.rb": 0.6578565230001914,5899 "ee/spec/models/approvals/wrapped_rule_set_spec.rb": 0.5353114609997647,5900 "ee/spec/models/concerns/geo/verifiable_model_spec.rb": 0.8964595899997221,5901 "ee/spec/lib/ee/api/entities/scim/user_name_spec.rb": 0.5115826119999838,5902 "ee/spec/elastic/migrate/20201105181100_apply_max_analyzed_offset_spec.rb": 0.44533440499981225,5903 "ee/spec/workers/geo/secondary_usage_data_cron_worker_spec.rb": 0.7291353090004122,5904 "ee/spec/workers/incident_management/pending_escalations/alert_create_worker_spec.rb": 0.7059701509997467,5905 "ee/spec/graphql/types/work_items/widgets/health_status_type_spec.rb": 0.6108527460000914,5906 "ee/spec/lib/ee/gitlab/auth/ldap/config_spec.rb": 0.8515019930000562,5907 "ee/spec/graphql/types/incident_management/oncall_schedule_type_spec.rb": 0.5506913489998624,5908 "ee/spec/models/concerns/auditable_spec.rb": 0.4990735820001646,5909 "ee/spec/serializers/metrics_report_metric_entity_spec.rb": 0.42561609699987457,5910 "ee/spec/lib/ee/gitlab/omniauth_initializer_spec.rb": 0.4157066269999632,5911 "ee/spec/helpers/merge_requests_helper_spec.rb": 0.4478336250003849,5912 "ee/spec/graphql/types/vulnerability_severities_count_type_spec.rb": 0.5169019309996656,5913 "ee/spec/graphql/types/vulnerability/state_transition_type_spec.rb": 0.4037569079991954,5914 "ee/spec/models/storage_shard_spec.rb": 0.48534040300000925,5915 "ee/spec/graphql/types/geo/project_wiki_repository_registry_type_spec.rb": 0.3731410689997574,5916 "ee/spec/graphql/types/dast/profile_cadence_type_spec.rb": 0.38471373900028993,5917 "ee/spec/graphql/types/incident_management/oncall_participant_type_spec.rb": 0.3475562909998189,5918 "ee/spec/graphql/types/ci/code_coverage_summary_spec.rb": 0.4249012860000221,5919 "ee/spec/models/ci/processable_spec.rb": 0.46520852399953583,5920 "ee/spec/workers/elastic_index_initial_bulk_cron_worker_spec.rb": 0.48990705300002446,5921 "ee/spec/graphql/types/vulnerability_details/int_type_spec.rb": 0.5714266189997943,5922 "ee/spec/lib/api/entities/epic_boards/list_spec.rb": 0.480854804000046,5923 "ee/spec/graphql/types/ci/runner_type_spec.rb": 0.34228596100001596,5924 "ee/spec/graphql/types/ci/code_quality_degradation_type_spec.rb": 0.32687845199961885,5925 "ee/spec/lib/gitlab/status_page/filter/mention_anonymization_filter_spec.rb": 0.5419518999997308,5926 "ee/spec/graphql/types/permission_types/vulnerability_spec.rb": 0.4745268139995465927}5928Knapsack global time execution for tests: 26m 18s5929Pending: (Failures listed here are expected and do not affect your suite's status)5930 1) Gitlab::Elastic::SearchResults blobs searches CamelCased methods find by first two words5931 # Temporarily skipped with xit5932 # ./ee/spec/lib/gitlab/elastic/search_results_spec.rb:9545933 2) GroupWiki behaves like wiki model #preview_slug title: "", file_extension: :md, format: :markdown, expected_slug: ".md" matches the slug generated by gitaly5934 # Gitaly cannot generate a slug for an empty title5935 # ./spec/support/shared_examples/models/wiki_shared_examples.rb:10035936 3) GroupWiki behaves like wiki model #preview_slug title: "", file_extension: :txt, format: :plaintext, expected_slug: ".txt" matches the slug generated by gitaly5937 # Gitaly cannot generate a slug for an empty title5938 # ./spec/support/shared_examples/models/wiki_shared_examples.rb:10035939 4) Geo::PagesDeploymentRegistryFinder behaves like a framework registry finder #execute when user can read all Geo when admin mode is enabled with verification disabled with a verification_state param raises ArgumentError5940 # Skipping because verification is enabled for PagesDeployment5941 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:985942 5) Geo::PagesDeploymentRegistryFinder behaves like a framework registry finder #execute when user can read all Geo when admin mode is enabled with verification disabled with a verification_state param empty raises ArgumentError5943 # Skipping because verification is enabled for PagesDeployment5944 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1065945 6) Geo::PagesDeploymentRegistryFinder behaves like a framework registry finder #execute when user can read all Geo when admin mode is enabled when search method is not implemented in the registry model raises ArgumentError5946 # Skipping because search method is implemented for PagesDeployment5947 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1225948Failures:5949 1) Geo::FrameworkRepositorySyncService#execute tracking database when repository sync succeed with non empty repositories when HEAD change syncs gitattributes to info/attributes5950 Failure/Error: expect(repository).to receive(:copy_gitattributes)5951 (#<Repository:@snippets/78/5f/785f3ec7eb32f30b90cd0fcf3657d388b5ff4297f2f9716ff66e9b69c05ddd09>).copy_gitattributes(*(any args))5952 expected: 1 time with any arguments5953 received: 0 times with any arguments5954 # ./ee/spec/services/geo/framework_repository_sync_service_spec.rb:558:in `block (7 levels) in <top (required)>'5955 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'5956 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'5957 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'5958 # ./spec/spec_helper.rb:411:in `block (3 levels) in <top (required)>'5959 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'5960 # ./spec/spec_helper.rb:411:in `block (2 levels) in <top (required)>'5961 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'5962 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'5963 # ./spec/support/redis.rb:17:in `block (3 levels) in <top (required)>'5964 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'5965 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'5966 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'5967 2) Geo::FrameworkRepositorySyncService#execute tracking database when repository sync succeed with non empty repositories when HEAD does not change syncs gitattributes to info/attributes5968 Failure/Error: expect(repository).to receive(:copy_gitattributes)5969 (#<Repository:@snippets/78/5f/785f3ec7eb32f30b90cd0fcf3657d388b5ff4297f2f9716ff66e9b69c05ddd09>).copy_gitattributes(*(any args))5970 expected: 1 time with any arguments5971 received: 0 times with any arguments5972 # ./ee/spec/services/geo/framework_repository_sync_service_spec.rb:572:in `block (7 levels) in <top (required)>'5973 # ./spec/spec_helper.rb:423:in `block (3 levels) in <top (required)>'5974 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'5975 # ./spec/spec_helper.rb:415:in `block (2 levels) in <top (required)>'5976 # ./spec/spec_helper.rb:411:in `block (3 levels) in <top (required)>'5977 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'5978 # ./spec/spec_helper.rb:411:in `block (2 levels) in <top (required)>'5979 # ./spec/spec_helper.rb:242:in `block (2 levels) in <top (required)>'5980 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'5981 # ./spec/support/redis.rb:17:in `block (3 levels) in <top (required)>'5982 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'5983 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'5984 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'5985Finished in 26 minutes 23 seconds (files took 1 minute 25.17 seconds to load)59862278 examples, 2 failures, 6 pending5987Failed examples:5988rspec ./ee/spec/services/geo/framework_repository_sync_service_spec.rb:557 # Geo::FrameworkRepositorySyncService#execute tracking database when repository sync succeed with non empty repositories when HEAD change syncs gitattributes to info/attributes5989rspec ./ee/spec/services/geo/framework_repository_sync_service_spec.rb:571 # Geo::FrameworkRepositorySyncService#execute tracking database when repository sync succeed with non empty repositories when HEAD does not change syncs gitattributes to info/attributes5990Randomized with seed 553185991[TEST PROF INFO] Time spent in factories: 14:30.952 (53.56% of total time)5992Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected5993RSpec exited with 1.5994RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec-ee_unit_pg13_7_18_report.txt5995Retrying the failing examples in a new RSpec process...5996$ gem install junit_merge --no-document --version 0.1.25997Successfully installed nokogiri-1.14.3-x86_64-linux5998Successfully installed junit_merge-0.1.259992 gems installed6000==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.6001Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec-retry.xml --only-failures --pattern "{ee/}spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"6002warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.6004Run options: include {:last_run_status=>"failed"}6005Test environment set up in 0.452145745 seconds6006Geo::FrameworkRepositorySyncService6007 #execute6008 tracking database6009 when repository sync succeed6010 with non empty repositories6011 when HEAD change6012 syncs gitattributes to info/attributes6013 when HEAD does not change6014 syncs gitattributes to info/attributes6015Finished in 5.59 seconds (files took 1 minute 2.59 seconds to load)60162 examples, 0 failures6017[TEST PROF INFO] Time spent in factories: 00:01.950 (23.16% of total time)6018A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...6019Flaky test was not part of this MR.6021Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy6023Uploading artifacts...6024coverage/: found 4 matching artifact files and directories 6025WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6026WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6027knapsack/: found 4 matching artifact files and directories 6028query_recorder/: found 2 matching artifact files and directories 6029rspec/: found 10 matching artifact files and directories 6030WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6031log/*.log: found 18 matching artifact files and directories 6032WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4181384264/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6033WARNING: Retrying... context=artifacts-uploader error=request redirected6034Uploading artifacts as "archive" to coordinator... 201 Created id=4181384264 responseStatus=201 Created token=64_NnpJt6035Uploading artifacts...6036rspec/junit_rspec.xml: found 1 matching artifact files and directories 6037WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4181384264/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6038WARNING: Retrying... context=artifacts-uploader error=request redirected6039Uploading artifacts as "junit" to coordinator... 201 Created id=4181384264 responseStatus=201 Created token=64_NnpJt6041Job succeeded