rspec-ee unit pg14 14/18
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-5.private.runners-manager.gitlab.com/gitlab.com/gitlab-org Zi_8oswQ, system ID: s_8a4f217c24b63 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.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:4fa67bf5f0f681a62c15a144e1ecce7bf7b20e00dcbb99441c4182f5e2607534 for redis:6.2-alpine with digest redis@sha256:9b1723d69398d170688d7f382f6ace36d0fc209481b143f3acf58a2f6f0743d3 ...20WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.1 is already created. Ignoring.21WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.1 is already created. Ignoring.22Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.1 ...23Authenticating with credentials from job payload (GitLab Registry)24Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.1 ...25Using docker image sha256:bdd3992fa86a67ac06315198d28ab4e2c28f222872eea1d954ddcb1a8702b3bb for registry.gitlab.com/gitlab-org/gitlab-build-images:zoekt-ci-image-1.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:b0503585bc8e1a1930419b1b31de2711d745d09f3111e406f8b90d1b73c8ea5e ...26Starting service elasticsearch:7.17.6 ...27Pulling docker image elasticsearch:7.17.6 ...28Using docker image sha256:5fad10241ffd65d817ed0ddfaf6e87eee1f7dc2a7db33db1047835560ea71fda for elasticsearch:7.17.6 with digest elasticsearch@sha256:6c128de5d01c0c130a806022d6bd99b3e4c27a9af5bfc33b6b81861ae117d028 ...29Waiting for services to be up and running (timeout 30 seconds)...30Authenticating with credentials from job payload (GitLab Registry)31Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...32Using docker image sha256:17ff485d60cad0e7a2cef114c588c387f0a02ea52778bdef56b31436edf609aa for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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.20-rust-1.65-node-18.16-postgresql-14@sha256:87a54d6d4c6d7bdd77d0700637df7c79a35b39235baf4c412cd1273ab94788c3 ...34Running on runner-zi8oswq-project-278964-concurrent-0 via runner-zi8oswq-private-1690426852-3df8794b...36Fetching changes with git depth set to 20...37Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/38Created fresh repository.39remote: Enumerating objects: 200368, done. 40remote: Counting objects: 100% (200368/200368), done. 41remote: Compressing objects: 100% (127761/127761), done. 42remote: Total 200368 (delta 101729), reused 135279 (delta 65007), pack-reused 0 43Receiving objects: 100% (200368/200368), 150.13 MiB | 26.12 MiB/s, done.44Resolving deltas: 100% (101729/101729), done.46 * [new ref] refs/pipelines/946806672 -> refs/pipelines/94680667247 * [new branch] master -> origin/master48Checking out 9bb6bea6 as detached HEAD (ref is master)...49Skipping Git submodules setup50$ git remote set-url origin "${CI_REPOSITORY_URL}"52Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...53cache.zip is up to date 54Successfully extracted cache56Downloading artifacts for compile-test-assets (4749214174)...57Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214174 responseStatus=200 OK token=64_YER6_58Downloading artifacts for retrieve-tests-metadata (4749214304)...59Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214304 responseStatus=200 OK token=64_YER6_60Downloading artifacts for setup-test-env (4749214206)...61Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214206 responseStatus=200 OK token=64_YER6_63Using docker image sha256:17ff485d60cad0e7a2cef114c588c387f0a02ea52778bdef56b31436edf609aa for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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.20-rust-1.65-node-18.16-postgresql-14@sha256:87a54d6d4c6d7bdd77d0700637df7c79a35b39235baf4c412cd1273ab94788c3 ...64$ echo $FOSS_ONLY65$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb66$ export GOPATH=$CI_PROJECT_DIR/.go67$ mkdir -p $GOPATH68$ source scripts/utils.sh69$ source scripts/prepare_build.sh101Using decomposed database config (config/database.yml.decomposed-postgresql)102Geo DB will be set up.103Embedding DB will be set up.119$ source ./scripts/rspec_helpers.sh120$ run_timed_command "gem install knapsack --no-document"121$ gem install knapsack --no-document122Successfully installed knapsack-4.0.01231 gem installed124==> 'gem install knapsack --no-document' succeeded in 2 seconds.125$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"130$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"131SKIP_FLAKY_TESTS_AUTOMATICALLY: 132RETRY_FAILED_TESTS_IN_NEW_PROCESS: true133KNAPSACK_GENERATE_REPORT: true134FLAKY_RSPEC_GENERATE_REPORT: true135KNAPSACK_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.rb136KNAPSACK_LOG_LEVEL: debug137KNAPSACK_REPORT_PATH: knapsack/rspec-ee_unit_pg14_14_18_report.json138FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json139FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec-ee_unit_pg14_14_18_report.json140NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec-ee_unit_pg14_14_18_report.json141SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec-ee_unit_pg14_14_18.txt142CRYSTALBALL: true143RSPEC_TESTS_MAPPING_ENABLED: 144RSPEC_TESTS_FILTER_FILE: 145Shell set options (set -o) enabled:146braceexpand on147hashall on148interactive-comments on149pipefail on150Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-4749214782.json --format RspecJunitFormatter --out rspec/rspec-4749214782.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb ee/spec/models/epic_spec.rb ee/spec/models/ee/group_spec.rb ee/spec/services/ee/merge_requests/refresh_service_spec.rb ee/spec/lib/gitlab/ci/templates/sast_latest_gitlab_ci_yaml_spec.rb ee/spec/replicators/geo/pages_deployment_replicator_spec.rb ee/spec/lib/ee/gitlab/usage/service_ping_report_spec.rb ee/spec/lib/gitlab/background_migration/migrate_requirements_to_work_items_spec.rb ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb ee/spec/elastic/migrate/20230719094700_remove_projects_from_main_index_spec.rb ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb ee/spec/services/projects/transfer_service_spec.rb ee/spec/lib/gitlab/checks/diff_check_spec.rb ee/spec/models/namespace_setting_spec.rb ee/spec/models/audit_events/google_cloud_logging_configuration_spec.rb ee/spec/lib/audit/group_push_rules_changes_auditor_spec.rb ee/spec/policies/note_policy_spec.rb ee/spec/models/integrations/github_spec.rb ee/spec/finders/geo/design_management_repository_registry_finder_spec.rb ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb ee/spec/models/sbom/occurrence_spec.rb ee/spec/finders/security/findings_finder_spec.rb ee/spec/models/merge_requests/compliance_violation_spec.rb ee/spec/policies/ci/build_policy_spec.rb ee/spec/graphql/resolvers/geo/pipeline_artifact_registries_resolver_spec.rb ee/spec/services/groups/sync_service_spec.rb ee/spec/workers/geo/prune_event_log_worker_spec.rb ee/spec/models/ee/project_statistics_spec.rb ee/spec/lib/gitlab/elastic/document_reference_spec.rb ee/spec/models/ee/event_spec.rb ee/spec/graphql/resolvers/geo/container_repository_registries_resolver_spec.rb ee/spec/elastic/migrate/20230208100000_reindex_users_spec.rb ee/spec/lib/sidebars/groups/menus/analytics_menu_spec.rb ee/spec/finders/security/vulnerability_reads_finder_spec.rb ee/spec/lib/audit_events/strategies/external_destination_strategy_spec.rb ee/spec/services/ci/subscribe_bridge_service_spec.rb ee/spec/services/ee/boards/issues/create_service_spec.rb ee/spec/models/ci/minutes/project_monthly_usage_spec.rb ee/spec/services/llm/generate_summary_service_spec.rb ee/spec/services/analytics/cycle_analytics/data_loader_service_spec.rb ee/spec/graphql/mutations/issues/set_epic_spec.rb ee/spec/finders/security/scan_result_policies_finder_spec.rb ee/spec/finders/geo/dependency_proxy_blob_registry_finder_spec.rb ee/spec/graphql/mutations/issues/update_spec.rb ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb ee/spec/services/vulnerability_issue_links/delete_service_spec.rb ee/spec/services/projects/gitlab_projects_import_service_spec.rb ee/spec/lib/gitlab/auth/group_saml/identity_linker_spec.rb ee/spec/finders/template_finder_spec.rb ee/spec/lib/ee/backup/repositories_spec.rb ee/spec/lib/gitlab/ci/parsers/security/dependency_list_spec.rb ee/spec/serializers/dependency_entity_spec.rb ee/spec/services/geo/repository_verification_secondary_service_spec.rb ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb ee/spec/services/requirements_management/process_test_reports_service_spec.rb ee/spec/services/ee/resource_events/synthetic_iteration_notes_builder_service_spec.rb ee/spec/services/llm/fill_in_merge_request_template_service_spec.rb ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb ee/spec/graphql/types/geo/registrable_type_spec.rb ee/spec/services/security/merge_request_security_report_generation_service_spec.rb ee/spec/graphql/resolvers/product_analytics/state_resolver_spec.rb ee/spec/services/package_metadata/data_object_spec.rb ee/spec/serializers/dependency_list_entity_spec.rb ee/spec/graphql/types/ci/pipeline_type_spec.rb ee/spec/models/allowed_email_domain_spec.rb ee/spec/serializers/status_page/incident_comment_entity_spec.rb ee/spec/lib/ee/gitlab/database/docs/docs_spec.rb ee/spec/services/ee/issues/reopen_service_spec.rb ee/spec/services/security/store_grouped_scans_service_spec.rb ee/spec/services/ee/merge_requests/reopen_service_spec.rb ee/spec/lib/gitlab/llm/open_ai/options_spec.rb ee/spec/services/compliance_management/frameworks/update_service_spec.rb ee/spec/lib/bulk_imports/common/pipelines/wiki_pipeline_spec.rb ee/spec/services/quality_management/test_cases/create_service_spec.rb ee/spec/helpers/ee/subscribable_banner_helper_spec.rb ee/spec/services/jira/jql_builder_service_spec.rb ee/spec/workers/llm/completion_worker_spec.rb ee/spec/lib/gitlab/ci/yaml_processor_spec.rb ee/spec/services/user_permissions/export_service_spec.rb ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress_spec.rb ee/spec/serializers/user_analytics_entity_spec.rb ee/spec/workers/geo/scheduler/per_shard_scheduler_worker_spec.rb ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb ee/spec/workers/geo/verification_worker_spec.rb ee/spec/views/projects/edit.html.haml_spec.rb ee/spec/helpers/ee/environments_helper_spec.rb ee/spec/policies/dast_scanner_profile_policy_spec.rb ee/spec/lib/ee/gitlab/scim/filter_parser_spec.rb ee/spec/services/projects/group_links/update_service_spec.rb ee/spec/lib/gitlab/sidekiq_config_spec.rb ee/spec/services/package_metadata/compressed_package_data_object_spec.rb ee/spec/services/alert_management/process_prometheus_alert_service_spec.rb ee/spec/workers/elastic/namespace_update_worker_spec.rb ee/spec/workers/incident_management/pending_escalations/schedule_check_cron_worker_spec.rb ee/spec/models/users_security_dashboard_project_spec.rb ee/spec/models/ee/description_version_spec.rb ee/spec/finders/billed_users_finder_spec.rb ee/spec/lib/ee/api/entities/scim/conflict_spec.rb ee/spec/services/geo/cache_invalidation_event_store_spec.rb ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb ee/spec/services/geo/repository_deleted_event_store_spec.rb ee/spec/workers/vulnerabilities/mark_dropped_as_resolved_worker_spec.rb ee/spec/graphql/types/dast/pre_scan_verification_step_type_spec.rb ee/spec/services/ee/design_management/delete_designs_service_spec.rb ee/spec/services/concerns/search/elasticsearchable_spec.rb ee/spec/helpers/ee/ci/pipeline_editor_helper_spec.rb ee/spec/lib/gitlab/llm/completions/chat_spec.rb ee/spec/lib/ee/feature_spec.rb ee/spec/lib/gitlab/usage/metrics/instrumentations/count_users_deployment_approvals_spec.rb ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_submitted_review_spec.rb ee/spec/finders/security/training_providers/kontra_url_finder_spec.rb ee/spec/services/protected_environments/destroy_service_spec.rb ee/spec/services/vulnerability_issue_links/bulk_create_service_spec.rb ee/spec/finders/boards/users_finder_spec.rb ee/spec/policies/base_policy_spec.rb ee/spec/workers/merge_requests/process_approval_auto_merge_worker_spec.rb ee/spec/graphql/types/geo/container_repository_registry_type_spec.rb ee/spec/services/milestones/destroy_service_spec.rb ee/spec/graphql/mutations/todos/create_spec.rb ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb ee/spec/services/incident_management/oncall_rotations/destroy_service_spec.rb ee/spec/serializers/vulnerabilities/merge_request_link_entity_spec.rb ee/spec/helpers/ee/projects/security/dast_configuration_helper_spec.rb ee/spec/models/protected_branch/push_access_level_spec.rb ee/spec/services/status_page/publish_attachments_service_spec.rb ee/spec/helpers/projects/security/dast_profiles_helper_spec.rb ee/spec/lib/gitlab/insights/reducers/base_reducer_spec.rb ee/spec/elastic/migrate/20220824123000_add_label_ids_and_schema_version_to_issues_mapping_spec.rb ee/spec/lib/elastic/latest/merge_request_config_spec.rb ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb ee/spec/graphql/types/vulnerability_location/coverage_fuzzing_type_spec.rb ee/spec/services/projects/deregister_suggested_reviewers_project_service_spec.rb ee/spec/services/package_metadata/ingestion/tasks/ingest_packages_spec.rb ee/spec/services/ee/groups/group_links/destroy_service_spec.rb ee/spec/services/system_notes/escalations_service_spec.rb ee/spec/graphql/types/vulnerability_evidence_type_spec.rb ee/spec/lib/system_check/app/advanced_search_migrations_check_spec.rb ee/spec/workers/iterations/cadences/create_iterations_worker_spec.rb ee/spec/lib/ee/api/entities/scim/users_spec.rb ee/spec/helpers/projects/on_demand_scans_helper_spec.rb ee/spec/services/ee/projects/deploy_tokens/destroy_service_spec.rb ee/spec/models/sbom/source_spec.rb ee/spec/services/path_locks/lock_service_spec.rb ee/spec/views/devise/sessions/new.html.haml_spec.rb ee/spec/lib/elastic/latest/project_instance_proxy_spec.rb ee/spec/workers/ee/repository_check/single_repository_worker_spec.rb ee/spec/workers/geo/batch/project_registry_worker_spec.rb ee/spec/lib/ee/gitlab/scim/deprovisioning_service_spec.rb ee/spec/workers/geo/verification_timeout_worker_spec.rb ee/spec/services/path_locks/unlock_service_spec.rb ee/spec/workers/deployments/auto_rollback_worker_spec.rb ee/spec/lib/gitlab/cache_spec.rb ee/spec/lib/ee/api/helpers/variables_helpers_spec.rb ee/spec/services/milestones/promote_service_spec.rb ee/spec/graphql/resolvers/security_report_summary_resolver_spec.rb ee/spec/workers/groups/schedule_bulk_repository_shard_moves_worker_spec.rb ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb ee/spec/services/elastic/index_projects_by_range_service_spec.rb ee/spec/graphql/resolvers/security_training_urls_resolver_spec.rb ee/spec/models/geo/repository_created_event_spec.rb ee/spec/views/admin/groups/_form.html.haml_spec.rb ee/spec/models/concerns/geo/verifiable_model_spec.rb ee/spec/views/projects/settings/merge_requests/_merge_request_approvals.html.haml_spec.rb ee/spec/helpers/groups/analytics_dashboard_helper_spec.rb ee/spec/models/ci/minutes/context_spec.rb ee/spec/lib/ee/gitlab/hook_data/group_member_builder_spec.rb ee/spec/lib/sidebars/search/panel_spec.rb ee/spec/lib/elastic/latest/config_spec.rb ee/spec/workers/concerns/elastic/migration_obsolete_spec.rb ee/spec/lib/bulk_imports/projects/pipelines/push_rule_pipeline_spec.rb ee/spec/lib/ee/api/entities/scim/not_found_spec.rb ee/spec/graphql/types/geo/dependency_proxy_manifest_registry_type_spec.rb ee/spec/graphql/types/epic_sort_enum_spec.rb ee/spec/elastic/migrate/20210510113500_delete_merge_requests_from_original_index_spec.rb ee/spec/lib/remote_development/message_spec.rb ee/spec/graphql/ee/types/repository/blob_type_spec.rb ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/version_metric_spec.rb ee/spec/initializers/fog_google_https_private_urls_spec.rb ee/spec/lib/gitlab/geo/json_request_spec.rb ee/spec/graphql/types/work_items/widgets/test_reports_type_spec.rb ee/spec/graphql/types/compliance_management/merge_requests/compliance_violation_input_type_spec.rb ee/spec/graphql/types/repository/code_owner_validation_type_spec.rb ee/spec/routing/projects/security/configuration_controller_routing_spec.rb ee/spec/graphql/types/app_sec/fuzzing/api/ci_configuration_type_spec.rb ee/spec/graphql/types/dast/profile_cadence_type_spec.rb ee/spec/views/shared/billings/_billing_plan_actions.html.haml_spec.rb ee/spec/graphql/ee/types/mutation_type_spec.rb ee/spec/lib/gitlab/llm/vertex_ai/templates/explain_code_spec.rb ee/spec/graphql/types/permission_types/project_spec.rb ee/spec/helpers/groups/sso_helper_spec.rb ee/spec/lib/api/entities/protected_environments/approval_rule_for_summary_spec.rb ee/spec/graphql/types/security/training_type_spec.rb ee/spec/graphql/types/ci/minutes/namespace_monthly_usage_type_spec.rb ee/spec/lib/zoekt/logger_spec.rb ee/spec/lib/elastic/latest/epic_class_proxy_spec.rbKnapsack report generator started!151/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!152/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!153/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!154/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!155/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:35: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!156/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!157/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!158/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!159/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!160/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!161/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!162/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!163/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!164/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!165/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!166/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!167/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!168/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!169/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/main.rb:48: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!170/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!171/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!172/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!173/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!174/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!175/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!176/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!177/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!178/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!179/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!180/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!181/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!182/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!183/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!184/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!185/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!186/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!187/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/main.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!188/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!189Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}190Test environment set up in 0.995653811 seconds191Dependency-Scanning.gitlab-ci.yml192 the created pipeline193 when project has no license194 includes no jobs195 when project has Ultimate license196 when DEPENDENCY_SCANNING_DISABLED=1197 includes no jobs198 when DS_EXCLUDED_ANALYZERS set to199 exclude200 nothing201 creates pipeline with excluded analyzers skipped202 gemnasium203 creates pipeline with excluded analyzers skipped204 gemnasium-maven205 creates pipeline with excluded analyzers skipped206 gemnasium-python207 creates pipeline with excluded analyzers skipped208 two209 creates pipeline with excluded analyzers skipped210 three211 creates pipeline with excluded analyzers skipped212 four213 creates pipeline with excluded analyzers skipped214 all analyzers excluded215 creates a pipeline excluding jobs from specified analyzers216 by default217 Go218 with file at root219 creates a pipeline with the expected jobs220 sets the image suffix as expected221 with file at depth 1222 creates a pipeline with the expected jobs223 sets the image suffix as expected224 with file at depth 2225 creates a pipeline with the expected jobs226 sets the image suffix as expected227 with file at depth > 2228 creates a pipeline with the expected jobs229 sets the image suffix as expected230 Java231 with file at root232 creates a pipeline with the expected jobs233 sets the image suffix as expected234 with file at depth 1235 creates a pipeline with the expected jobs236 sets the image suffix as expected237 with file at depth 2238 creates a pipeline with the expected jobs239 sets the image suffix as expected240 with file at depth > 2241 creates a pipeline with the expected jobs242 sets the image suffix as expected243 Java Gradle244 with file at root245 creates a pipeline with the expected jobs246 sets the image suffix as expected247 with file at depth 1248 creates a pipeline with the expected jobs249 sets the image suffix as expected250 with file at depth 2251 creates a pipeline with the expected jobs252 sets the image suffix as expected253 with file at depth > 2254 creates a pipeline with the expected jobs255 sets the image suffix as expected256 Java Gradle Kotlin DSL257 with file at root258 creates a pipeline with the expected jobs259 sets the image suffix as expected260 with file at depth 1261 creates a pipeline with the expected jobs262 sets the image suffix as expected263 with file at depth 2264 creates a pipeline with the expected jobs265 sets the image suffix as expected266 with file at depth > 2267 creates a pipeline with the expected jobs268 sets the image suffix as expected269 Javascript package-lock.json270 with file at root271 creates a pipeline with the expected jobs272 sets the image suffix as expected273 with file at depth 1274 creates a pipeline with the expected jobs275 sets the image suffix as expected276 with file at depth 2277 creates a pipeline with the expected jobs278 sets the image suffix as expected279 with file at depth > 2280 creates a pipeline with the expected jobs281 sets the image suffix as expected282 Javascript yarn.lock283 with file at root284 creates a pipeline with the expected jobs285 sets the image suffix as expected286 with file at depth 1287 creates a pipeline with the expected jobs288 sets the image suffix as expected289 with file at depth 2290 creates a pipeline with the expected jobs291 sets the image suffix as expected292 with file at depth > 2293 creates a pipeline with the expected jobs294 sets the image suffix as expected295 Javascript npm-shrinkwrap.json296 with file at root297 creates a pipeline with the expected jobs298 sets the image suffix as expected299 with file at depth 1300 creates a pipeline with the expected jobs301 sets the image suffix as expected302 with file at depth 2303 creates a pipeline with the expected jobs304 sets the image suffix as expected305 with file at depth > 2306 creates a pipeline with the expected jobs307 sets the image suffix as expected308 Multiple languages309 with file at root310 creates a pipeline with the expected jobs311 sets the image suffix as expected312 with file at depth 1313 creates a pipeline with the expected jobs314 sets the image suffix as expected315 with file at depth 2316 creates a pipeline with the expected jobs317 sets the image suffix as expected318 with file at depth > 2319 creates a pipeline with the expected jobs320 sets the image suffix as expected321 NuGet322 with file at root323 creates a pipeline with the expected jobs324 sets the image suffix as expected325 with file at depth 1326 creates a pipeline with the expected jobs327 sets the image suffix as expected328 with file at depth 2329 creates a pipeline with the expected jobs330 sets the image suffix as expected331 with file at depth > 2332 creates a pipeline with the expected jobs333 sets the image suffix as expected334 Conan335 with file at root336 creates a pipeline with the expected jobs337 sets the image suffix as expected338 with file at depth 1339 creates a pipeline with the expected jobs340 sets the image suffix as expected341 with file at depth 2342 creates a pipeline with the expected jobs343 sets the image suffix as expected344 with file at depth > 2345 creates a pipeline with the expected jobs346 sets the image suffix as expected347 PHP348 with file at root349 creates a pipeline with the expected jobs350 sets the image suffix as expected351 with file at depth 1352 creates a pipeline with the expected jobs353 sets the image suffix as expected354 with file at depth 2355 creates a pipeline with the expected jobs356 sets the image suffix as expected357 with file at depth > 2358 creates a pipeline with the expected jobs359 sets the image suffix as expected360 Python requirements.txt361 with file at root362 creates a pipeline with the expected jobs363 sets the image suffix as expected364 with file at depth 1365 creates a pipeline with the expected jobs366 sets the image suffix as expected367 with file at depth 2368 creates a pipeline with the expected jobs369 sets the image suffix as expected370 with file at depth > 2371 creates a pipeline with the expected jobs372 sets the image suffix as expected373 Python requirements.pip374 with file at root375 creates a pipeline with the expected jobs376 sets the image suffix as expected377 with file at depth 1378 creates a pipeline with the expected jobs379 sets the image suffix as expected380 with file at depth 2381 creates a pipeline with the expected jobs382 sets the image suffix as expected383 with file at depth > 2384 creates a pipeline with the expected jobs385 sets the image suffix as expected386 Python Pipfile387 with file at root388 creates a pipeline with the expected jobs389 sets the image suffix as expected390 with file at depth 1391 creates a pipeline with the expected jobs392 sets the image suffix as expected393 with file at depth 2394 creates a pipeline with the expected jobs395 sets the image suffix as expected396 with file at depth > 2397 creates a pipeline with the expected jobs398 sets the image suffix as expected399 Python requires.txt400 with file at root401 creates a pipeline with the expected jobs402 sets the image suffix as expected403 with file at depth 1404 creates a pipeline with the expected jobs405 sets the image suffix as expected406 with file at depth 2407 creates a pipeline with the expected jobs408 sets the image suffix as expected409 with file at depth > 2410 creates a pipeline with the expected jobs411 sets the image suffix as expected412 Python with setup.py413 with file at root414 creates a pipeline with the expected jobs415 sets the image suffix as expected416 with file at depth 1417 creates a pipeline with the expected jobs418 sets the image suffix as expected419 with file at depth 2420 creates a pipeline with the expected jobs421 sets the image suffix as expected422 with file at depth > 2423 creates a pipeline with the expected jobs424 sets the image suffix as expected425 Python with poetry.lock426 with file at root427 creates a pipeline with the expected jobs428 sets the image suffix as expected429 with file at depth 1430 creates a pipeline with the expected jobs431 sets the image suffix as expected432 with file at depth 2433 creates a pipeline with the expected jobs434 sets the image suffix as expected435 with file at depth > 2436 creates a pipeline with the expected jobs437 sets the image suffix as expected438 Ruby Gemfile.lock439 with file at root440 creates a pipeline with the expected jobs441 sets the image suffix as expected442 with file at depth 1443 creates a pipeline with the expected jobs444 sets the image suffix as expected445 with file at depth 2446 creates a pipeline with the expected jobs447 sets the image suffix as expected448 with file at depth > 2449 creates a pipeline with the expected jobs450 sets the image suffix as expected451 Ruby gems.locked452 with file at root453 creates a pipeline with the expected jobs454 sets the image suffix as expected455 with file at depth 1456 creates a pipeline with the expected jobs457 sets the image suffix as expected458 with file at depth 2459 creates a pipeline with the expected jobs460 sets the image suffix as expected461 with file at depth > 2462 creates a pipeline with the expected jobs463 sets the image suffix as expected464 Scala465 with file at root466 creates a pipeline with the expected jobs467 sets the image suffix as expected468 with file at depth 1469 creates a pipeline with the expected jobs470 sets the image suffix as expected471 with file at depth 2472 creates a pipeline with the expected jobs473 sets the image suffix as expected474 with file at depth > 2475 creates a pipeline with the expected jobs476 sets the image suffix as expected477 when PIP_REQUIREMENTS_FILE is defined478 creates a pipeline with the expected jobs479 sets the image suffix as expected480 project supported by gemnasium analyzer481 sets default value for DS_REMEDIATE482 when FIPS mode is enabled483 Go484 with file at root485 creates a pipeline with the expected jobs486 sets the image suffix as expected487 with file at depth 1488 creates a pipeline with the expected jobs489 sets the image suffix as expected490 with file at depth 2491 creates a pipeline with the expected jobs492 sets the image suffix as expected493 with file at depth > 2494 creates a pipeline with the expected jobs495 sets the image suffix as expected496 Java497 with file at root498 creates a pipeline with the expected jobs499 sets the image suffix as expected500 with file at depth 1501 creates a pipeline with the expected jobs502 sets the image suffix as expected503 with file at depth 2504 creates a pipeline with the expected jobs505 sets the image suffix as expected506 with file at depth > 2507 creates a pipeline with the expected jobs508 sets the image suffix as expected509 Java Gradle510 with file at root511 creates a pipeline with the expected jobs512 sets the image suffix as expected513 with file at depth 1514 creates a pipeline with the expected jobs515 sets the image suffix as expected516 with file at depth 2517 creates a pipeline with the expected jobs518 sets the image suffix as expected519 with file at depth > 2520 creates a pipeline with the expected jobs521 sets the image suffix as expected522 Java Gradle Kotlin DSL523 with file at root524 creates a pipeline with the expected jobs525 sets the image suffix as expected526 with file at depth 1527 creates a pipeline with the expected jobs528 sets the image suffix as expected529 with file at depth 2530 creates a pipeline with the expected jobs531 sets the image suffix as expected532 with file at depth > 2533 creates a pipeline with the expected jobs534 sets the image suffix as expected535 Javascript package-lock.json536 with file at root537 creates a pipeline with the expected jobs538 sets the image suffix as expected539 with file at depth 1540 creates a pipeline with the expected jobs541 sets the image suffix as expected542 with file at depth 2543 creates a pipeline with the expected jobs544 sets the image suffix as expected545 with file at depth > 2546 creates a pipeline with the expected jobs547 sets the image suffix as expected548 Javascript yarn.lock549 with file at root550 creates a pipeline with the expected jobs551 sets the image suffix as expected552 with file at depth 1553 creates a pipeline with the expected jobs554 sets the image suffix as expected555 with file at depth 2556 creates a pipeline with the expected jobs557 sets the image suffix as expected558 with file at depth > 2559 creates a pipeline with the expected jobs560 sets the image suffix as expected561 Javascript npm-shrinkwrap.json562 with file at root563 creates a pipeline with the expected jobs564 sets the image suffix as expected565 with file at depth 1566 creates a pipeline with the expected jobs567 sets the image suffix as expected568 with file at depth 2569 creates a pipeline with the expected jobs570 sets the image suffix as expected571 with file at depth > 2572 creates a pipeline with the expected jobs573 sets the image suffix as expected574 Multiple languages575 with file at root576 creates a pipeline with the expected jobs577 sets the image suffix as expected578 with file at depth 1579 creates a pipeline with the expected jobs580 sets the image suffix as expected581 with file at depth 2582 creates a pipeline with the expected jobs583 sets the image suffix as expected584 with file at depth > 2585 creates a pipeline with the expected jobs586 sets the image suffix as expected587 NuGet588 with file at root589 creates a pipeline with the expected jobs590 sets the image suffix as expected591 with file at depth 1592 creates a pipeline with the expected jobs593 sets the image suffix as expected594 with file at depth 2595 creates a pipeline with the expected jobs596 sets the image suffix as expected597 with file at depth > 2598 creates a pipeline with the expected jobs599 sets the image suffix as expected600 Conan601 with file at root602 creates a pipeline with the expected jobs603 sets the image suffix as expected604 with file at depth 1605 creates a pipeline with the expected jobs606 sets the image suffix as expected607 with file at depth 2608 creates a pipeline with the expected jobs609 sets the image suffix as expected610 with file at depth > 2611 creates a pipeline with the expected jobs612 sets the image suffix as expected613 PHP614 with file at root615 creates a pipeline with the expected jobs616 sets the image suffix as expected617 with file at depth 1618 creates a pipeline with the expected jobs619 sets the image suffix as expected620 with file at depth 2621 creates a pipeline with the expected jobs622 sets the image suffix as expected623 with file at depth > 2624 creates a pipeline with the expected jobs625 sets the image suffix as expected626 Python requirements.txt627 with file at root628 creates a pipeline with the expected jobs629 sets the image suffix as expected630 with file at depth 1631 creates a pipeline with the expected jobs632 sets the image suffix as expected633 with file at depth 2634 creates a pipeline with the expected jobs635 sets the image suffix as expected636 with file at depth > 2637 creates a pipeline with the expected jobs638 sets the image suffix as expected639 Python requirements.pip640 with file at root641 creates a pipeline with the expected jobs642 sets the image suffix as expected643 with file at depth 1644 creates a pipeline with the expected jobs645 sets the image suffix as expected646 with file at depth 2647 creates a pipeline with the expected jobs648 sets the image suffix as expected649 with file at depth > 2650 creates a pipeline with the expected jobs651 sets the image suffix as expected652 Python Pipfile653 with file at root654 creates a pipeline with the expected jobs655 sets the image suffix as expected656 with file at depth 1657 creates a pipeline with the expected jobs658 sets the image suffix as expected659 with file at depth 2660 creates a pipeline with the expected jobs661 sets the image suffix as expected662 with file at depth > 2663 creates a pipeline with the expected jobs664 sets the image suffix as expected665 Python requires.txt666 with file at root667 creates a pipeline with the expected jobs668 sets the image suffix as expected669 with file at depth 1670 creates a pipeline with the expected jobs671 sets the image suffix as expected672 with file at depth 2673 creates a pipeline with the expected jobs674 sets the image suffix as expected675 with file at depth > 2676 creates a pipeline with the expected jobs677 sets the image suffix as expected678 Python with setup.py679 with file at root680 creates a pipeline with the expected jobs681 sets the image suffix as expected682 with file at depth 1683 creates a pipeline with the expected jobs684 sets the image suffix as expected685 with file at depth 2686 creates a pipeline with the expected jobs687 sets the image suffix as expected688 with file at depth > 2689 creates a pipeline with the expected jobs690 sets the image suffix as expected691 Python with poetry.lock692 with file at root693 creates a pipeline with the expected jobs694 sets the image suffix as expected695 with file at depth 1696 creates a pipeline with the expected jobs697 sets the image suffix as expected698 with file at depth 2699 creates a pipeline with the expected jobs700 sets the image suffix as expected701 with file at depth > 2702 creates a pipeline with the expected jobs703 sets the image suffix as expected704 Ruby Gemfile.lock705 with file at root706 creates a pipeline with the expected jobs707 sets the image suffix as expected708 with file at depth 1709 creates a pipeline with the expected jobs710 sets the image suffix as expected711 with file at depth 2712 creates a pipeline with the expected jobs713 sets the image suffix as expected714 with file at depth > 2715 creates a pipeline with the expected jobs716 sets the image suffix as expected717 Ruby gems.locked718 with file at root719 creates a pipeline with the expected jobs720 sets the image suffix as expected721 with file at depth 1722 creates a pipeline with the expected jobs723 sets the image suffix as expected724 with file at depth 2725 creates a pipeline with the expected jobs726 sets the image suffix as expected727 with file at depth > 2728 creates a pipeline with the expected jobs729 sets the image suffix as expected730 Scala731 with file at root732 creates a pipeline with the expected jobs733 sets the image suffix as expected734 with file at depth 1735 creates a pipeline with the expected jobs736 sets the image suffix as expected737 with file at depth 2738 creates a pipeline with the expected jobs739 sets the image suffix as expected740 with file at depth > 2741 creates a pipeline with the expected jobs742 sets the image suffix as expected743 when PIP_REQUIREMENTS_FILE is defined744 creates a pipeline with the expected jobs745 sets the image suffix as expected746 project supported by gemnasium analyzer747 sets default value for DS_REMEDIATE748Epic749 associations750 is expected to belong to author class_name => User required: false751 is expected to belong to assignee class_name => User required: false752 is expected to belong to group required: false753 is expected to belong to parent required: false754 is expected to have many epic_issues755 is expected to have many children756 is expected to have many user_mentions class_name => EpicUserMention757 is expected to have many boards_epic_user_preferences class_name => Boards::EpicUserPreference inverse_of => epic758 is expected to have many epic_board_positions class_name => Boards::EpicBoardPosition inverse_of => epic_board759 default values760 is expected to eq #<Gitlab::Color:0x00007e9eca4fd138 @value="#1068bf">761 scopes762 .public_only763 only returns public epics764 .confidential765 only returns confidential epics766 .not_confidential_or_in_groups767 returns only epics which are either not confidential or in the group768 relative position scopes769 .order_relative_position_on_board770 returns epics ordered by position on the board, null last771 without_board_position772 returns only epics which do not have position set for the board773 .join_board_position774 returns epics with joined position for the board775 title sort scopes776 .order_title_asc777 returns epics ordered by title, ascending778 .order_title_desc779 returns epics ordered by title, decending780 .in_milestone781 returns epics which have an issue in the milestone782 from_id783 returns records with id bigger or equal to the provided param784 validations785 is expected to validate that :group cannot be empty/falsy786 is expected to validate that :author cannot be empty/falsy787 is expected to validate that :title cannot be empty/falsy788 is expected to validate that :total_opened_issue_weight cannot be empty/falsy789 is expected to validate that :total_closed_issue_weight cannot be empty/falsy790 is expected to validate that :total_opened_issue_count cannot be empty/falsy791 is expected to validate that :total_closed_issue_count cannot be empty/falsy792 is expected to validate that :total_opened_issue_weight looks like an integer793 is expected to validate that :total_closed_issue_weight looks like an integer794 is expected to validate that :total_opened_issue_count looks like an integer795 is expected to validate that :total_closed_issue_count looks like an integer796 is valid with a valid parent797 is valid if epic is confidential and has only confidential issues798 is not valid if epic is confidential and has non-confidential issues799 is valid if epic is confidential and has only confidential subepics800 is not valid if epic is confidential and has non-confidential subepics801 children count802 is expected to be valid803 when child count limit was reached804 is not valid805 already assigned epics are still valid806 is valid when removing parent807 is not valid when changing parents808 maximum hierarchy depth809 for a new epic810 when it below maximum depth811 is expected to be valid812 when goes above maximum depth813 is invalid814 callbacks815 when epic indexing is enabled816 updates epics in Elasticsearch when the child epic start_date is updated817 updates epics in Elasticsearch when the child epic end_date is updated818 modules819 behaves like AtomicInternalId820 .has_internal_id821 Module inclusion822 is expected to includes the AtomicInternalId module823 Validation824 when presence validation is required825 when creating an object826 raises an error if the internal id is blank827 when updating an object828 raises an error if the internal id is blank829 when presence validation is not required830 when creating an object831 does not raise an error if the internal id is blank (PENDING: No reason given)832 when updating an object833 does not raise an error if the internal id is blank (PENDING: No reason given)834 Creating an instance835 saves a new instance properly836 internal id generation837 calls InternalId.generate_next and sets internal id attribute838 does not overwrite an existing internal id839 when the instance has an internal ID set840 calls InternalId.update_last_value and sets the `last_value` to that of the instance841 unsetting the instance internal id on rollback842 when the internal id has been changed843 when the internal id is automatically set844 clears it on the instance845 when the internal id is manually set846 does not clear it on the instance847 when the internal id has not been changed848 preserves the value on the instance849 supply of internal ids850 provides a persistent supply of IID values, sensitive to the current state851 #reset_scope_internal_id_attribute852 rewinds the allocated IID853 allocates the same IID854 ordering855 orders by start_or_end_date856 orders by start_date ASC857 orders by start_date DESC858 orders by end_date ASC859 orders by end_date DESC860 orders by updated_at ASC861 orders by updated_at DESC862 orders by created_at ASC863 orders by created_at DESC864 orders by relative_position ASC865 orders by title ASC866 orders by title DESC867 #valid_parent?868 basic checks869 returns true without parent870 returns true with a valid parent871 returns false when level is too deep872 with parent in a descendant group873 returns true874 with parent from a different group hierarchy875 returns true876 when adding an Epic that has existing children877 returns true when total depth after adding will not exceed limit878 returns false when total depth after adding would exceed limit879 when parent has ancestors and epic has children880 returns true when total depth after adding will not exceed limit881 returns false when total depth after adding would exceed limit882 when hierarchy is cyclic883 returns false when parent is same as the epic884 returns false when child epic is parent of the given parent885 returns false when child epic is an ancestor of the given parent886 hierarchy887 #ancestors888 returns all ancestors for an epic ordered correctly889 returns all ancestors for an epic ordered correctly with the hierarchy_order param890 returns an empty array if an epic does not have any parent891 #descendants892 returns all descendants for an epic893 returns an empty array if an epic does not have any descendants894 #upcoming?895 returns true when start_date is in the future896 returns false when start_date is in the past897 #expired?898 returns true when due_date is in the past899 returns false when due_date is in the future900 #elapsed_days901 returns 0 if there is no start_date902 returns elapsed_days when start_date is present903 #start_date904 is set905 returns as is906 behaves like within_timeframe scope907 .within_timeframe908 returns resources with start_date and/or end_date between timeframe909 returns resources which starts before the timeframe910 returns resources which ends after the timeframe911 #start_date_from_milestones912 fixed date913 returns start date from start date sourcing milestone914 keeps start date sourcing milestone when switching to fixed dates915 keeps start date sourcing epic when switching to fixed dates916 milestone date917 returns start_date918 #due_date_from_milestones919 fixed date920 returns due date from due date sourcing milestone921 keeps due date sourcing milestone when switching to fixed dates922 keeps due date sourcing epic when switching to fixed dates923 milestone date924 returns due_date925 .deepest_relationship_level926 returns the deepest relationship level between epics927 when there are no epics928 returns nil929 #issues_readable_by930 returns all issues if a user has access to them931 does not return issues user can not see932 #close933 sets closed_at to Time.current when an epic is closed934 changes the state to closed935 #reopen936 sets closed_at to nil when an epic is reopend937 sets closed_by to nil when an epic is reopend938 changes the state to opened939 #to_reference940 avoids additional SQL queries941 when nil argument942 returns epic id943 when from argument equals epic group944 returns epic id945 when from argument is a group different from epic group946 returns complete path to the epic947 when from argument is a project under the epic group948 returns epic id949 when from argument is a project under the epic subgroup950 returns complete path to the epic951 when from argument is a project in another group952 returns complete path to the epic953 when full is true954 returns complete path to the epic955 #has_children?956 has no children957 has child epics958 #has_issues?959 has no issues960 has child issues961 #has_parent?962 has no parent963 has parent964 mentioning other objects965 creates new system notes for cross references966 relative positioning967 there is no parent968 behaves like no-op relative positioning969 .scoped_items970 is empty971 .relative_siblings972 is empty973 .move_nulls_to_end974 does not move any items975 behaves like a no-op method976 does not raise errors977 does not perform any DB queries978 does not change any relative_position979 .move_nulls_to_start980 does not move any items981 behaves like a no-op method982 does not raise errors983 does not perform any DB queries984 does not change any relative_position985 instance methods986 #move_to_start987 behaves like a no-op method988 does not raise errors989 does not perform any DB queries990 does not change any relative_position991 #move_to_end992 behaves like a no-op method993 does not raise errors994 does not perform any DB queries995 does not change any relative_position996 #move_between997 behaves like a no-op method998 does not raise errors999 does not perform any DB queries1000 does not change any relative_position1001 #move_before1002 behaves like a no-op method1003 does not raise errors1004 does not perform any DB queries1005 does not change any relative_position1006 #move_after1007 behaves like a no-op method1008 does not raise errors1009 does not perform any DB queries1010 does not change any relative_position1011 there is a parent1012 behaves like a class that supports relative positioning1013 #scoped_items1014 includes all items with the same scope1015 #relative_siblings1016 includes all items with the same scope, except self1017 .move_nulls_to_end1018 moves items with null relative_position to the end1019 preserves relative position1020 moves the item near the start position when there are no existing positions1021 does not perform any moves if all items have their relative_position set1022 manages to move nulls to the end even if there is a sequence at the end1023 manages to move nulls to the end even if there is not enough space1024 manages to move nulls to the end, stacking if we cannot create enough space1025 manages to move nulls found in the relative scope1026 can move many nulls1027 does not have an N+1 issue1028 .move_nulls_to_start1029 moves items with null relative_position to the start1030 moves the item near the start position when there are no existing positions1031 preserves relative position1032 does not perform any moves if all items have their relative_position set1033 manages to move nulls to the start even if there is not enough space1034 manages to move nulls to the end, stacking if we cannot create enough space1035 #move_before1036 moves item before1037 can move the item before an item at the start1038 can move the item before an item at MIN_POSITION1039 can move the item before an item bunched up at MIN_POSITION1040 when there is no space1041 moves items correctly1042 leap-frogging to the left1043 can leap-frog STEPS times before needing to rebalance1044 there is no space to the left after moving STEPS times1045 rebalances to the right1046 #move_after1047 moves item after1048 can move the item after an item bunched up at MAX_POSITION1049 when there is no space1050 can move the item after an item at MAX_POSITION1051 moves items correctly1052 leap-frogging1053 rebalances after STEPS jumps1054 #move_to_start1055 places items at most IDEAL_DISTANCE from the start when the range is open1056 moves item to the end1057 positions the item at MIN_POSITION when there is only one space left1058 rebalances when there is already an item at the MIN_POSITION1059 deals with a run of elements at the start1060 #move_to_end1061 places items at most IDEAL_DISTANCE from the start when the range is open1062 moves item to the end1063 positions the item at MAX_POSITION when there is only one space left1064 rebalances when there is already an item at the MAX_POSITION1065 deals with a run of elements at the end1066 #move_between1067 positions item between two other1068 positions item between on top1069 positions item between to end1070 positions items even when after and before positions are the same1071 positions item in the middle of other two if distance is big enough1072 positions item closer to the middle if we are at the very top1073 positions item closer to the middle if we are at the very bottom1074 positions item in the middle of other two1075 positions item right if we pass non-sequential parameters1076 avoids N+1 queries when rebalancing other items1077 the two items are next to each other1078 behaves like moves item between1079 moves the middle item to between left and right1080 there is no space1081 behaves like moves item between1082 moves the middle item to between left and right1083 there is a bunch of items1084 handles bunches correctly1085 behaves like moves item between1086 moves the middle item to between left and right1087 with existing epics and related issues1088 .related_issues1089 returns epic issues ordered by relative position1090 .ids_for_base_and_decendants1091 returns epic ids only for selected epics or its descendant epics1092 .issue_metadata_for_epics1093 returns hash containing epic issues count and weight and epic status1094 with multiple health statuses1095 returns hash containing epic issues count, weight, epic status and epic issues health statuses1096 behaves like versioned description1097 associations1098 is expected to have many description_versions1099 save_description_version1100 when description was changed1101 saves the old and new description for the first update1102 only saves the new description for subsequent updates1103 sets the new description version to `saved_description_version`1104 clears `saved_description_version` after another save that does not change description1105 when description was not changed1106 does not save any description version1107 #usage_ping_record_epic_creation1108 records epic creation after saving1109 with coloured epics1110 epic_color: #<Gitlab::Color:0x00007e9eca4fd138 @value="#1068bf">, expected_text_color: #<Gitlab::Color:0x00007e9eb051dee8 @value="#FFFFFF">1111 returns correct text color1112 epic_color: #<Gitlab::Color:0x00007e9eb0517868 @value="#FFFFFF">, expected_text_color: #<Gitlab::Color:0x00007e9eb05177a0 @value="#1F1E24">1113 returns correct text color1114 epic_color: #<Gitlab::Color:0x00007e9eb0515d60 @value="#000000">, expected_text_color: #<Gitlab::Color:0x00007e9eb0515c70 @value="#FFFFFF">1115 returns correct text color1116 .epics_readable_by_user1117 avoids N+1 queries when authorizing a list of epics1118 with an admin when admin mode is enabled1119 is expected to contain exactly #<Epic id:387 group147&1>1120 with an admin when admin mode is disabled1121 returns the epics readable by the admin1122 returns no epics when not given access1123 with a regular user1124 returns the epics readable by the user1125 returns an empty array when no epics are readable1126 without a regular user1127 returns epics that are publicly visible1128 with group hierarchy1129 when user is not a member1130 returns no epic1131 when user is a reporter in the ancestor group1132 returns epics from all groups1133 when user is a reporter in the base group1134 returns epics in main group and its descendants1135 when user is a reporter in the subgroup1136 returns epics in subgroup1137 #related_epics1138 when epics feature is enabled1139 returns readable related epics of the epic1140 when epics feature is disabled1141 returns empty result1142 ES related specs1143 when create epic index migration is not finished1144 use_elasticsearch? is false1145 when create epic index migration is finished1146 when the group has use_elasticsearch? as true1147 use_elasticsearch? is true1148 when feature flag is disabled1149 use_elasticsearch? is false1150 with elasticsearch enabled1151 calls ::Elastic::ProcessBookkeepingService.track! when the epic is updated1152 when the group has use_elasticsearch? as false1153 use_elasticsearch? is false1154 with elasticsearch enabled1155 does not call ::Elastic::ProcessBookkeepingService.track! when the epic is updated1156 #epic_link_type1157 returns nil if link_type attributes are not available1158 returns link type value for sources1159 returns inverse link type value for targets1160 #blocked_by_epics_for1161 when user can read epics1162 returns blocked epics1163 when user cannot read epic1164 returns empty array1165 when user cannot read some spics1166 returns only epics that user can read1167 order by closed_at1168 .order_closed_at_asc1169 orders on closed at1170 .order_closed_at_desc1171 orders on closed at1172 #participants1173 behaves like issuable participants1174 when resource parent is public1175 and users are referenced on notes1176 includes the issue author1177 includes the authors of the notes1178 and note is confidential1179 and mentions users1180 only includes users that can read the note as participants1181 #total_issue_weight_and_count1182 returns hash of total issue weight and count including its subepics1183 #update_cached_metadata1184 schedules cache update for parent epic when new subepic is created1185 skips cache update if there is no epic parent1186 when adding existing subepic1187 schedules cache update for parent epic1188 when epic is already assigned to other epic1189 schedules cache update for old parent and new parent epics1190 schedules cache update for parent epic when removing subepic parent1191 schedules cache update for parent epic when subepic is destroyed1192 #confidentiality_errors1193 returns correct message if epic has non-confidential issues1194 returns correct message if epic has non-confidential subepics1195 is empty if epic has only confidential subepics1196 is empty if epic has only confidential issues1197 #expire_etag_cache1198 expires etag cache when epic is changed1199 with exportable associations1200 behaves like an exportable1201 #exportable_association?1202 is expected to be falsey1203 when user can only read resource1204 is expected to be falsey1205 when user can read resource's association1206 is expected to be truthy1207 for an unknown association1208 is expected to be falsey1209 #to_authorized_json1210 when association not supported1211 is expected not to include "foo"1212 when association is `:notes`1213 is expected to include "\"notes\":[{\"id\":6}]"1214 when user have access to all notes1215 string includes all notes1216Group1217 is expected to includes the EE::Group module1218 is expected to be a kind of ReactiveCaching1219 associations1220 is expected to have many audit_events dependent => false1221 is expected to belong to file_template_project class_name => Project1222 is expected to have many ip_restrictions1223 is expected to have many allowed_email_domains1224 is expected to have many compliance_management_frameworks1225 is expected to have one deletion_schedule1226 is expected to have one group_wiki_repository1227 is expected to belong to push_rule required: false inverse_of => group1228 is expected to have many saml_group_links1229 is expected to have many epics1230 is expected to have many epic_boards inverse_of => group1231 is expected to have many provisioned_user_details inverse_of => provisioned_by_group1232 is expected to have many provisioned_users1233 is expected to have one group_merge_request_approval_setting1234 is expected to have many repository_storage_moves1235 is expected to have many iterations1236 is expected to have many iterations_cadences1237 is expected to have many epic_board_recent_visits inverse_of => group1238 is expected to have many external_audit_event_destinations1239 is expected to have many google_cloud_logging_configurations1240 is expected to have one analytics_dashboards_pointer1241 is expected to have one analytics_dashboards_configuration_project1242 is expected to have one value_stream_dashboard_aggregation1243 is expected to have one index_status class_name => Elastic::GroupIndexStatus dependent => destroy1244 behaves like model with wiki1245 #create_wiki1246 returns true if the wiki repository already exists1247 returns true if the wiki repository was created1248 when the repository cannot be created1249 returns false and adds a validation error1250 #wiki_repository_exists?1251 returns true when the wiki repository exists1252 returns false when the wiki repository does not exist1253 wiki path conflict1254 when the new path has been used by the wiki of other Project1255 has an error on the name attribute1256 when the new wiki path has been used by the path of other Project1257 has an error on the name attribute1258 when the new path has been used by the wiki of other Group1259 has an error on the name attribute1260 when the new wiki path has been used by the path of other Group1261 has an error on the name attribute1262 scopes1263 .with_custom_file_templates1264 is expected to contain exactly #<Group id:1951 @group197>1265 preloads everything needed to show a valid checked_file_template_project1266 .with_saml_provider1267 preloads saml_providers1268 .aimed_for_deletion1269 only includes groups that are marked for deletion on or before the specified date1270 .for_epics1271 returns groups only for selected epics1272 .with_managed_accounts_enabled1273 includes the groups that has managed accounts enabled1274 .with_no_pat_expiry_policy1275 includes the groups that has no PAT expiry policy set1276 .user_is_member1277 returns only groups where user is direct or indirect member ignoring inheritance and minimal access level1278 .invited_groups_in_groups_for_hierarchy1279 with guests1280 includes all groups from group invites1281 without guests1282 includes all groups from group invites1283 .invited_groups_in_projects_for_hierarchy1284 with guests1285 includes all groups from group invites1286 without guests1287 includes all groups from group invites1288 .with_trial_started_on1289 returns correct group1290 validations1291 max_personal_access_token_lifetime1292 is expected to allow :max_personal_access_token_lifetime to be ‹1›1293 is expected to allow :max_personal_access_token_lifetime to be ‹nil›1294 is expected to allow :max_personal_access_token_lifetime to be ‹10›1295 is expected to allow :max_personal_access_token_lifetime to be ‹365›1296 is expected not to allow :max_personal_access_token_lifetime to be ‹"value"›1297 is expected not to allow :max_personal_access_token_lifetime to be ‹2.5›1298 is expected not to allow :max_personal_access_token_lifetime to be ‹-5›1299 is expected not to allow :max_personal_access_token_lifetime to be ‹366›1300 validates if custom_project_templates_group_id is allowed1301 rejects change if the assigned group is not a subgroup1302 allows value if the assigned value is from a subgroup1303 rejects change if the assigned value is from a subgroup's descendant group1304 allows value when it is blank1305 delegations1306 is expected to delegate #code_suggestions to the #namespace_settings object, allowing #namespace_settings to return nil1307 is expected to delegate #code_suggestions= to the #namespace_settings object passing arguments [true], allowing #namespace_settings to return nil1308 is expected to delegate #wiki_access_level to the #group_feature object1309 is expected to delegate #wiki_access_level= to the #group_feature object passing arguments [:args]1310 states1311 is expected to be ldap sync ready1312 after the start transition1313 sets the last sync timestamp1314 after the finish transition1315 sets the state to started1316 sets last update and last successful update to the same timestamp1317 clears previous error message on success1318 after the fail transition1319 sets the state to failed1320 sets last update timestamp but not last successful update timestamp1321 .groups_user_can1322 for :read_epic permission1323 when user has minimal access to group1324 behaves like a filter for permissioned groups1325 with epics enabled1326 uses filter optmization to return groups with access1327 when groups array is empty1328 does not use filter optimization1329 when use_traversal_ids is disabled1330 does not use filter optimization1331 when same_root is false1332 does not use filter optimization1333 with epics disabled1334 returns an empty list1335 when user is a group member1336 behaves like a filter for permissioned groups1337 with epics enabled1338 uses filter optmization to return groups with access1339 when groups array is empty1340 does not use filter optimization1341 when use_traversal_ids is disabled1342 does not use filter optimization1343 when same_root is false1344 does not use filter optimization1345 with epics disabled1346 returns an empty list1347 when user is not member of any group1348 behaves like a filter for permissioned groups1349 with epics enabled1350 uses filter optmization to return groups with access1351 when groups array is empty1352 does not use filter optimization1353 when use_traversal_ids is disabled1354 does not use filter optimization1355 when same_root is false1356 does not use filter optimization1357 with epics disabled1358 returns an empty list1359 when user has membership from a group share1360 behaves like a filter for permissioned groups1361 with epics enabled1362 uses filter optmization to return groups with access1363 when groups array is empty1364 does not use filter optimization1365 when use_traversal_ids is disabled1366 does not use filter optimization1367 when same_root is false1368 does not use filter optimization1369 with epics disabled1370 returns an empty list1371 when user is member of a project in the hierarchy1372 behaves like a filter for permissioned groups1373 with epics enabled1374 uses filter optmization to return groups with access1375 when groups array is empty1376 does not use filter optimization1377 when use_traversal_ids is disabled1378 does not use filter optimization1379 when same_root is false1380 does not use filter optimization1381 with epics disabled1382 returns an empty list1383 when user is member of a child group that has a project1384 behaves like a filter for permissioned groups1385 with epics enabled1386 uses filter optmization to return groups with access1387 when groups array is empty1388 does not use filter optimization1389 when use_traversal_ids is disabled1390 does not use filter optimization1391 when same_root is false1392 does not use filter optimization1393 with epics disabled1394 returns an empty list1395 for :read_confidential_epic permission1396 when user is guest1397 behaves like a filter for permissioned groups1398 with epics enabled1399 uses filter optmization to return groups with access1400 when groups array is empty1401 does not use filter optimization1402 when use_traversal_ids is disabled1403 does not use filter optimization1404 when same_root is false1405 does not use filter optimization1406 with epics disabled1407 returns an empty list1408 when user is reporter1409 behaves like a filter for permissioned groups1410 with epics enabled1411 uses filter optmization to return groups with access1412 when groups array is empty1413 does not use filter optimization1414 when use_traversal_ids is disabled1415 does not use filter optimization1416 when same_root is false1417 does not use filter optimization1418 with epics disabled1419 returns an empty list1420 when user is reporter via shared group1421 behaves like a filter for permissioned groups1422 with epics enabled1423 uses filter optmization to return groups with access1424 when groups array is empty1425 does not use filter optimization1426 when use_traversal_ids is disabled1427 does not use filter optimization1428 when same_root is false1429 does not use filter optimization1430 with epics disabled1431 returns an empty list1432 when user is member of a project in the hierarchy1433 behaves like a filter for permissioned groups1434 with epics enabled1435 uses filter optmization to return groups with access1436 when groups array is empty1437 does not use filter optimization1438 when use_traversal_ids is disabled1439 does not use filter optimization1440 when same_root is false1441 does not use filter optimization1442 with epics disabled1443 returns an empty list1444 when action is not allowed to use filtering optmization1445 returns an empty list1446 getting group root ancestor1447 when same_root is false1448 behaves like group root ancestor1449 does not exceed SQL queries count1450 when same_root is true1451 behaves like group root ancestor1452 does not exceed SQL queries count1453 .preload_root_saml_providers1454 sets root_saml_provider for given groups1455 #vulnerabilities1456 returns vulnerabilities for all non-archived, non-deleted projects in the group and its subgroups1457 #vulnerability_reads1458 returns vulnerabilities for projects in the group and its subgroups1459 #vulnerability_scanners1460 returns vulnerability scanners for all non-archived, non-deleted projects in the group and its subgroups1461 #vulnerability_historical_statistics1462 returns vulnerability scanners for all non-archived, non-deleted projects in the group and its subgroups1463 #mark_ldap_sync_as_failed1464 sets the state to failed1465 sets the error message1466 is graceful when current state is not valid for the fail transition1467 #repository_size_limit column1468 support values up to 8 exabytes1469 #file_template_project1470 is expected to include :file_template_project1471 validation1472 is cleared if invalid1473 is permitted if valid1474 #ip_restriction_ranges1475 group with no associated ip_restriction records1476 returns nil1477 group with associated ip_restriction records1478 returns a comma separated string of ranges of its ip_restriction records1479 #root_ancestor_ip_restrictions1480 returns the ip restrictions configured for the root group1481 #allowed_email_domains_list1482 group with no associated allowed_email_domains records1483 returns nil1484 group with associated allowed_email_domains records1485 returns a comma separated string of domains of its allowed_email_domains records1486 #root_ancestor_allowed_email_domains1487 returns the email domain restrictions configured for the root group1488 #owner_of_email?1489 when domain_verification feature is licensed1490 returns true for email with verified domain1491 returns false for email with unverified domain1492 returns false for email with unverified subdomain of verified domain1493 ignores case sensitivity1494 returns false when the receiver is subgroup1495 when domain_verification feature is not licensed1496 returns false for email with verified domain1497 #predefined_push_rule1498 group with no associated push_rules record1499 returns instance push rule1500 group with associated push_rules record1501 with its own push rule1502 returns its own push rule1503 with push rule from ancestor1504 returns push rule from closest ancestor1505 there are no push rules1506 returns nil1507 #checked_file_template_project1508 licensed1509 returns nil for an invalid project1510 returns a valid project1511 unlicensed1512 returns nil for a valid project1513 #checked_file_template_project_id1514 licensed1515 returns nil for an invalid project1516 returns the ID for a valid project1517 unlicensed1518 returns nil for a valid project1519 #group_project_template_available?1520 licensed1521 returns true for licensed instance1522 when in need of checking plan1523 returns true for groups in proper plan1524 returns false for groups with group template already set but not in proper plan1525 unlicensed1526 returns false for unlicensed instance1527 #scoped_variables_available?1528 licensed feature is available1529 is expected to equal true1530 licensed feature is not available1531 is expected to equal false1532 #minimal_access_role_allowed?1533 licensed1534 returns true for licensed instance1535 returns false for subgroup in licensed instance1536 unlicensed1537 returns false unlicensed instance1538 #member?1539 with `minimal_access_role` not licensed1540 is expected to be falsey1541 with `minimal_access_role` licensed1542 when group is a subgroup1543 is expected to be falsey1544 when group is a top-level group1545 is expected to be truthy1546 accepts higher level as argument1547 with anonymous user1548 is expected to be falsey1549 #billed_user_ids1550 with guests1551 includes distinct active users1552 excludes banned members1553 without guests1554 includes distinct active users1555 #billable_members_count1556 with guests1557 provides count of users1558 without guests1559 provides count of users1560 #billed_group_users1561 with guests1562 includes active users1563 without guests1564 includes active users1565 with member roles1566 includes guests with elevating role assigned1567 with banned members1568 excludes banned members1569 when member is banned in one namespace but not another1570 excludes banned member in the namespace it is banned in1571 includes member in the namespace it isn't banned in1572 #billed_project_users1573 with guests1574 includes active users1575 without guests1576 includes active users1577 with member roles1578 includes guests with elevating role assigned1579 with banned members1580 excludes banned members1581 #billed_shared_group_users1582 with guests1583 includes active users from the other group1584 without guests1585 includes active users from the other group1586 with banned members1587 includes members that are banned in invited group1588 excludes members that are banned in group1589 #billed_invited_group_to_project_users1590 with guests1591 includes active users from the other group1592 without guests1593 includes active users from the other group1594 with banned members1595 includes members that are banned in invited group1596 excludes members that are banned in group1597 #billed_group_user?1598 user: developer, exclude_guests: false, result: true1599 is expected to eq true1600 user: sub_developer, exclude_guests: false, result: true1601 is expected to eq true1602 user: guest, exclude_guests: false, result: true1603 is expected to eq true1604 user: developer, exclude_guests: true, result: true1605 is expected to eq true1606 user: sub_developer, exclude_guests: true, result: true1607 is expected to eq true1608 user: guest, exclude_guests: true, result: false1609 is expected to eq false1610 #billed_project_user?1611 user: developer, exclude_guests: false, result: true1612 is expected to eq true1613 user: sub_developer, exclude_guests: false, result: true1614 is expected to eq true1615 user: guest, exclude_guests: false, result: true1616 is expected to eq true1617 user: developer, exclude_guests: true, result: true1618 is expected to eq true1619 user: sub_developer, exclude_guests: true, result: true1620 is expected to eq true1621 user: guest, exclude_guests: true, result: false1622 is expected to eq false1623 #billed_shared_group_user?1624 user: ancestor_invited_developer, exclude_guests: false, result: true1625 is expected to eq true1626 user: invited_developer, exclude_guests: false, result: true1627 is expected to eq true1628 user: invited_guest, exclude_guests: false, result: true1629 is expected to eq true1630 user: ancestor_invited_developer, exclude_guests: true, result: true1631 is expected to eq true1632 user: invited_developer, exclude_guests: true, result: true1633 is expected to eq true1634 user: invited_guest, exclude_guests: true, result: false1635 is expected to eq false1636 #billed_shared_project_user?1637 user: ancestor_invited_developer, exclude_guests: false, result: true1638 is expected to eq true1639 user: invited_developer, exclude_guests: false, result: true1640 is expected to eq true1641 user: invited_guest, exclude_guests: false, result: true1642 is expected to eq true1643 user: ancestor_invited_developer, exclude_guests: true, result: true1644 is expected to eq true1645 user: invited_developer, exclude_guests: true, result: true1646 is expected to eq true1647 user: invited_guest, exclude_guests: true, result: false1648 is expected to eq false1649 #capacity_left_for_user?1650 user_cap_available: false, user_cap_reached: false, existing_membership: false, result: true1651 is expected to eq true1652 user_cap_available: false, user_cap_reached: false, existing_membership: true, result: true1653 is expected to eq true1654 user_cap_available: false, user_cap_reached: true, existing_membership: true, result: true1655 is expected to eq true1656 user_cap_available: true, user_cap_reached: false, existing_membership: false, result: true1657 is expected to eq true1658 user_cap_available: true, user_cap_reached: false, existing_membership: true, result: true1659 is expected to eq true1660 user_cap_available: true, user_cap_reached: true, existing_membership: true, result: true1661 is expected to eq true1662 user_cap_available: true, user_cap_reached: true, existing_membership: false, result: false1663 is expected to eq false1664 #has_free_or_no_subscription?1665 returns true with a free plan1666 returns false when the plan is not free1667 returns true when there is no plan1668 returns true when there is a subscription with no plan1669 when it is a subgroup1670 with a free plan1671 returns true1672 with a plan that is not free1673 returns false1674 when there is no plan1675 returns true1676 when there is a subscription with no plan1677 returns true1678 #enforce_free_user_cap?1679 enforce_free_cap: false, result: false1680 is expected to eq false1681 enforce_free_cap: true, result: true1682 is expected to eq true1683 #exclude_guests?1684 actual_plan_name: :free, requested_plan_name: nil, result: false1685 returns the expected result1686 actual_plan_name: :premium, requested_plan_name: nil, result: false1687 returns the expected result1688 actual_plan_name: :ultimate, requested_plan_name: nil, result: true1689 returns the expected result1690 actual_plan_name: :ultimate_trial, requested_plan_name: nil, result: true1691 returns the expected result1692 actual_plan_name: :gold, requested_plan_name: nil, result: true1693 returns the expected result1694 actual_plan_name: :free, requested_plan_name: "premium", result: false1695 returns the expected result1696 actual_plan_name: :free, requested_plan_name: "ultimate", result: true1697 returns the expected result1698 actual_plan_name: :premium, requested_plan_name: "ultimate", result: true1699 returns the expected result1700 actual_plan_name: :ultimate, requested_plan_name: "ultimate", result: true1701 returns the expected result1702 #actual_plan_name1703 when parent group has a subscription associated1704 returns an associated plan name1705 when parent group does not have subscription associated1706 returns a free plan name1707 #users_count1708 with `minimal_access_role` not licensed1709 does not count the minimal access user1710 with `minimal_access_role` licensed1711 counts the minimal access user1712 #saml_discovery_token1713 returns existing tokens1714 when missing on read1715 generates a token1716 saves the generated token1717 in read-only mode1718 doesn't raise an error as that could expose group existance1719 returns a random value to prevent access1720 #saml_enabled?1721 when a SAML provider does not exist1722 is expected to eq false1723 when a SAML provider exists and is persisted1724 is expected to eq true1725 when a SAML provider is not persisted1726 is expected to eq false1727 when global SAML is enabled1728 is expected to eq true1729 #saml_group_sync_available?1730 is expected to eq false1731 with group_saml_group_sync feature licensed1732 is expected to eq false1733 with saml enabled1734 is expected to eq true1735 when the group is a subgroup1736 is expected to eq true1737 #saml_group_links_enabled?1738 with group saml disabled1739 is expected to eq false1740 with group saml enabled1741 without saml group links1742 is expected to eq false1743 with saml group links1744 is expected to eq true1745 #insights_config1746 when group has no Insights project configured1747 returns the default config1748 when group has an Insights project configured without a config file1749 returns the default config1750 when group has an Insights project configured1751 with a valid config file1752 returns the insights config data1753 with an invalid config file1754 returns nil1755 when group has an Insights project configured which is in a nested group1756 returns the insights config data1757 #any_hook_failed?1758 is expected to eq false1759 #execute_hooks1760 group_webhooks1761 when group_webhooks feature is enabled1762 execution1763 executes the hook for self and ancestor groups by default1764 when group_webhooks feature is disabled1765 does not execute the hook1766 subgroup hooks1767 when a subgroup is added to the parent group1768 executes the webhook1769 when a subgroup is removed from the parent group1770 executes the webhook1771 when the subgroup has subgroup webhooks enabled1772 does not execute the webhook on itself1773 ancestor groups1774 fires webhook twice when both parent & grandparent group has subgroup_events enabled1775 when parent group does not have subgroup_events enabled1776 fires webhook once for the grandparent group when it has subgroup_events enabled1777 when the group is not a subgroup1778 does not proceed to firing any webhooks1779 when group webhooks are unlicensed1780 does not execute the webhook1781 #self_or_ancestor_marked_for_deletion1782 delayed deletion feature is not available1783 returns nil1784 delayed deletion feature is available1785 the group has been marked for deletion1786 returns the group1787 the parent group has been marked for deletion1788 returns the parent group1789 no group has been marked for deletion1790 returns nil1791 ordering1792 returns the first group that is marked for deletion, up its ancestry chain1793 #marked_for_deletion?1794 delayed deletion feature is available1795 when the group is marked for delayed deletion1796 is expected to be truthy1797 when the group is not marked for delayed deletion1798 is expected to be falsey1799 delayed deletion feature is not available1800 when the group is marked for delayed deletion1801 is expected to be falsey1802 when the group is not marked for delayed deletion1803 is expected to be falsey1804 #adjourned_deletion?1805 delayed deletion feature is available1806 adjourned_period: 0, delayed_group_deletion: true, expected: false1807 is expected to be falsey1808 adjourned_period: 0, delayed_group_deletion: false, expected: false1809 is expected to be falsey1810 adjourned_period: 1, delayed_group_deletion: true, expected: true1811 is expected to be truthy1812 adjourned_period: 1, delayed_group_deletion: false, expected: true1813 is expected to be truthy1814 delayed deletion feature is not available1815 when delayed deletion period is set to more than 01816 behaves like returns false1817 is expected to be falsey1818 #personal_access_token_expiration_policy_available?1819 when the group does not enforce managed accounts1820 is expected to be falsey1821 when the group enforces managed accounts1822 with `personal_access_token_expiration_policy` licensed1823 is expected to be truthy1824 with `personal_access_token_expiration_policy` not licensed1825 is expected to be falsey1826 #update_personal_access_tokens_lifetime1827 when the group does not enforce managed accounts1828 behaves like it does not call the update lifetime service1829 doesn not call the update lifetime service1830 when the group enforces managed accounts1831 with `personal_access_token_expiration_policy` not licensed1832 behaves like it does not call the update lifetime service1833 doesn not call the update lifetime service1834 with `personal_access_token_expiration_policy` licensed1835 when the group does not enforce a PAT expiry policy1836 behaves like it does not call the update lifetime service1837 doesn not call the update lifetime service1838 when the group enforces a PAT expiry policy1839 executes the update lifetime service1840 #max_personal_access_token_lifetime_from_now1841 when max_personal_access_token_lifetime is defined1842 is a date1843 is in the future1844 is in days_from_now1845 when max_personal_access_token_lifetime is nil1846 is nil1847 #owners_emails1848 is expected to match ["bob@example.com"]1849 #access_level_roles1850 returns the correct roles1851 Releases Stats1852 when there are no releases1853 #releases_count1854 returns 01855 #releases_percentage1856 returns 0 and does not attempt to divide by 01857 when there are some releases1858 #releases_count1859 counts all releases for group and descendants1860 #releases_percentage1861 calculates projects with releases percentage for group and descendants1862 #repository_storage1863 when wiki does not have a tracked repository storage1864 returns the default shard1865 when wiki has a tracked repository storage1866 returns the persisted shard1867 #user_cap_reached?1868 when user cap feature is not available1869 is expected to be falsey1870 when user cap feature is available1871 when the :saas_user_caps feature flag is not enabled1872 is expected to be falsey1873 when the :saas_user_caps feature flag is enabled1874 when this group has no root ancestor1875 behaves like returning the right value for user_cap_reached?1876 when no user cap has been set to that root ancestor1877 is expected to be falsey1878 when a user cap has been set to that root ancestor1879 when this cap is higher than the number of billable members1880 is expected to be falsey1881 when this cap is the same as the number of billable members1882 is expected to be truthy1883 when this cap is lower than the number of billable members1884 is expected to be truthy1885 when this group has a root ancestor1886 behaves like returning the right value for user_cap_reached?1887 when no user cap has been set to that root ancestor1888 is expected to be falsey1889 when a user cap has been set to that root ancestor1890 when this cap is higher than the number of billable members1891 is expected to be falsey1892 when this cap is the same as the number of billable members1893 is expected to be truthy1894 when this cap is lower than the number of billable members1895 is expected to be truthy1896 #calculate_reactive_cache1897 returns cache data for the free plan members count1898 #shared_externally?1899 returns false when the group is not shared outside of the namespace hierarchy1900 returns true when the group is shared outside of the namespace hierarchy1901 returns false when the group is shared internally within the namespace hierarchy1902 returns true when a subgroup is shared outside of the namespace hierarchy1903 returns false when the only shared groups are outside of the namespace hierarchy1904 returns true when the group project is shared outside of the namespace hierarchy1905 returns false when the group project is only shared internally within the namespace hierarchy1906 behaves like can move repository storage1907 #set_repository_read_only!1908 makes the repository read-only1909 raises an error if the project is already read-only1910 raises an error when there is an existing git transfer in progress1911 skip_git_transfer_check is true1912 makes the project read-only when git transfers are in progress1913 #set_repository_writable!1914 sets repository_read_only to false1915 #reference_counter1916 returns a Gitlab::ReferenceCounter object1917 #cluster_agents1918 is expected to contain exactly #<Clusters::Agent id: 2, created_at: "2023-07-27 04:30:01.832644496 +0000", updated_at: "2023-07-27 0...4496 +0000", project_id: 657, name: "agent-2", created_by_user_id: 1538, has_vulnerabilities: false> and #<Clusters::Agent id: 3, created_at: "2023-07-27 04:30:01.905312040 +0000", updated_at: "2023-07-27 0...2040 +0000", project_id: 658, name: "agent-3", created_by_user_id: 1539, has_vulnerabilities: false>1919 #unique_project_download_limit_enabled?1920 is expected to eq true1921 when feature flag is disabled1922 is expected to eq false1923 when licensed feature is not available1924 is expected to eq false1925 when sub-group1926 is expected to eq false1927 #parent_epic_ids_in_ancestor_groups1928 returns parent ids of epics of the given group that belongs to ancestor groups1929 #usage_quotas_enabled?1930 feature_available: false, feature_enabled: true, root_group: true, result: true1931 returns the expected result1932 feature_available: true, feature_enabled: true, root_group: true, result: true1933 returns the expected result1934 feature_available: true, feature_enabled: false, root_group: true, result: true1935 returns the expected result1936 feature_available: false, feature_enabled: false, root_group: true, result: false1937 returns the expected result1938 feature_available: false, feature_enabled: false, root_group: false, result: false1939 returns the expected result1940 feature_available: false, feature_enabled: true, root_group: false, result: false1941 returns the expected result1942 feature_available: true, feature_enabled: false, root_group: false, result: false1943 returns the expected result1944 feature_available: true, feature_enabled: true, root_group: false, result: false1945 returns the expected result1946 #sbom_occurrences1947 is expected to be empty1948 with project1949 is expected to be empty1950 with occurrences1951 returns occurrences with aggregated ids1952 #reached_project_access_token_limit?1953 when not in a saas environment1954 returns false when group project has a token1955 when in a saas environment1956 returns false when the limit has not been reached1957 returns true when the limit has been reached1958 returns true for a subgroup when a root group project has a token1959 returns true for the root group when a subgroup project has a token1960 returns true for a subgroup when another subgroup project has a token1961 does not count group tokens1962 does not count personal tokens1963 does not count expired tokens1964 .pending_delete?1965 when deletion_schedule is not present1966 returns false1967 when deletion_schedule is present1968 when marked_for_deletion_on is from past1969 returns false1970 when marked_for_deletion_on is in future1971 returns true1972MergeRequests::RefreshService1973 #execute1974 checks merge train status1975 when branch is deleted1976 does not check merge train status1977 #update_approvers_for_target_branch_merge_requests1978 when the feature flags are enabled1979 when the branch is protected1980 when code owners file is updated1981 when not on the merge train1982 refreshes the code owner rules for all relevant merge requests1983 when on the merge train1984 behaves like does not refresh the code owner rules1985 is expected not to receive new(*(any args)) 0 times1986 when code owners file is not updated1987 behaves like does not refresh the code owner rules1988 is expected not to receive new(*(any args)) 0 times1989 when the branch is deleted1990 behaves like does not refresh the code owner rules1991 is expected not to receive new(*(any args)) 0 times1992 when the branch is created1993 behaves like does not refresh the code owner rules1994 is expected not to receive new(*(any args)) 0 times1995 when the branch is not protected1996 behaves like does not refresh the code owner rules1997 is expected not to receive new(*(any args)) 0 times1998 when code_owners is disabled1999 behaves like does not refresh the code owner rules2000 is expected not to receive new(*(any args)) 0 times2001 #trigger_suggested_reviewers_fetch2002 project_can_suggest: true, merge_request_can_suggest: true, triggered: true2003 is expected to receive perform_async(12) 1 time2004 project_can_suggest: true, merge_request_can_suggest: false, triggered: false2005 is expected not to receive perform_async(13) 0 times2006 project_can_suggest: false, merge_request_can_suggest: true, triggered: false2007 is expected not to receive perform_async(14) 0 times2008 project_can_suggest: false, merge_request_can_suggest: false, triggered: false2009 is expected not to receive perform_async(15) 0 times2010 #update_approvers_for_source_branch_merge_requests2011 gets called in a specific order2012 creating approval_rules2013 with a non-sectional codeowners file2014 behaves like creates an approval rule based on current diff2015 creates expected approval rules2016 with a sectional codeowners file2017 behaves like creates an approval rule based on current diff2018 creates expected approval rules2019 when code owners disabled2020 does nothing2021 when code owners enabled2022 refreshes the code owner rules for all relevant merge requests2023 when report_approver_rules enabled, with approval_rule enabled2024 refreshes the report_approver rules for all relevant merge requests2025 Pipelines for merge requests2026 creates a merge request pipeline2027 when MergeRequestUpdateWorker is retried by an exception2028 does not re-create a duplicate merge request pipeline2029 when user is approver2030 push to origin repo source branch2031 when no_todo_for_approvers feature flag is enabled2032 resets approvals and does not create approval todos for regular and for merge request2033 when no_todo_for_approvers feature flag is disabled2034 resets approvals and does create approval todos for regular only2035 in the time it takes to reset approvals2036 prevents merging2037 removes the unmergeable flag after the allotted time2038 with a merge request on a merge train2039 does not add an umergeable flag2040 push to origin repo target branch2041 when all MRs to the target branch had diffs2042 does not reset approvals2043 push to fork repo source branch2044 open fork merge request2045 when no_todo_for_approvers feature flag is disabled2046 resets approvals and creates approval todo in fork2047 when no_todo_for_approvers feature flag is enabled2048 resets approvals and does not create approval todo in fork2049 closed fork merge request2050 resets approvals2051 push to fork repo target branch2052 changes to merge requests2053 does not reset approvals2054 push to origin repo target branch after fork project was removed2055 does not reset approvals2056 resetting approvals if they are enabled2057 when approvals_before_merge is disabled2058 when no_todo_for_approvers feature flag is disabled2059 resets approvals and creates approval todo for approver2060 when no_todo_for_approvers feature flag is enabled2061 resets approvals and creates approval todo for approver2062 when reset_approvals_on_push is disabled2063 does not reset approvals2064 when the rebase_commit_sha on the MR matches the pushed SHA2065 does not reset approvals2066 when there are approvals2067 closed merge request2068 resets the approvals2069 opened merge request2070 when no_todo_for_approvers feature flag is disabled2071 resets the approvals2072 when no_todo_for_approvers feature flag is enabled2073 resets the approvals2074 #abort_ff_merge_requests_with_when_pipeline_succeeds2075 with add to merge train when pipeline succeeds strategy2076 behaves like maintained merge requests for MWPS2077 does not cancel auto merge2078 does not change merge_user2079 does not add todos2080 with merge train strategy2081 behaves like maintained merge requests for MWPS2082 does not cancel auto merge2083 does not change merge_user2084 does not add todos2085SAST.latest.gitlab-ci.yml2086 the created pipeline2087 when project has no license2088 when SAST_DISABLED="1"2089 includes no jobs2090 when SAST_DISABLED="true"2091 includes no jobs2092 when SAST_DISABLED="false"2093 includes jobs2094 when SAST_EXPERIMENTAL_FEATURES is disabled for iOS projects2095 includes no jobs2096 by default2097 language detection2098 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead8a3048>2099 when branch pipeline2100 creates a pipeline with the expected jobs2101 when MR pipeline2102 creates a pipeline with the expected jobs2103 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead897ae0>2104 when branch pipeline2105 creates a pipeline with the expected jobs2106 when MR pipeline2107 creates a pipeline with the expected jobs2108 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead894ed0>2109 when branch pipeline2110 creates a pipeline with the expected jobs2111 when MR pipeline2112 creates a pipeline with the expected jobs2113 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead88e8f0>2114 when branch pipeline2115 creates a pipeline with the expected jobs2116 when MR pipeline2117 creates a pipeline with the expected jobs2118 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead887c30>2119 when branch pipeline2120 creates a pipeline with the expected jobs2121 when MR pipeline2122 creates a pipeline with the expected jobs2123 Apex2124 when branch pipeline2125 creates a pipeline with the expected jobs2126 when MR pipeline2127 creates a pipeline with the expected jobs2128 C2129 when branch pipeline2130 creates a pipeline with the expected jobs2131 when MR pipeline2132 creates a pipeline with the expected jobs2133 C++2134 when branch pipeline2135 creates a pipeline with the expected jobs2136 when MR pipeline2137 creates a pipeline with the expected jobs2138 C#2139 when branch pipeline2140 creates a pipeline with the expected jobs2141 when MR pipeline2142 creates a pipeline with the expected jobs2143 Elixir2144 when branch pipeline2145 creates a pipeline with the expected jobs2146 when MR pipeline2147 creates a pipeline with the expected jobs2148 Elixir, nested2149 when branch pipeline2150 creates a pipeline with the expected jobs2151 when MR pipeline2152 creates a pipeline with the expected jobs2153 Golang2154 when branch pipeline2155 creates a pipeline with the expected jobs2156 when MR pipeline2157 creates a pipeline with the expected jobs2158 Groovy2159 when branch pipeline2160 creates a pipeline with the expected jobs2161 when MR pipeline2162 creates a pipeline with the expected jobs2163 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead8546f0>2164 when branch pipeline2165 creates a pipeline with the expected jobs2166 when MR pipeline2167 creates a pipeline with the expected jobs2168 #<RSpec::Parameterized::Core::RefArg:0x00007e9ead84d4e0>2169 when branch pipeline2170 creates a pipeline with the expected jobs2171 when MR pipeline2172 creates a pipeline with the expected jobs2173 Java2174 when branch pipeline2175 creates a pipeline with the expected jobs2176 when MR pipeline2177 creates a pipeline with the expected jobs2178 Java with MobSF2179 when branch pipeline2180 creates a pipeline with the expected jobs2181 when MR pipeline2182 creates a pipeline with the expected jobs2183 Java without MobSF2184 when branch pipeline2185 creates a pipeline with the expected jobs2186 when MR pipeline2187 creates a pipeline with the expected jobs2188 Javascript2189 when branch pipeline2190 creates a pipeline with the expected jobs2191 when MR pipeline2192 creates a pipeline with the expected jobs2193 JSX2194 when branch pipeline2195 creates a pipeline with the expected jobs2196 when MR pipeline2197 creates a pipeline with the expected jobs2198 Javascript Node2199 when branch pipeline2200 creates a pipeline with the expected jobs2201 when MR pipeline2202 creates a pipeline with the expected jobs2203 HTML2204 when branch pipeline2205 creates a pipeline with the expected jobs2206 when MR pipeline2207 creates a pipeline with the expected jobs2208 Kubernetes Manifests2209 when branch pipeline2210 creates a pipeline with the expected jobs2211 when MR pipeline2212 creates a pipeline with the expected jobs2213 Multiple languages2214 when branch pipeline2215 creates a pipeline with the expected jobs2216 when MR pipeline2217 creates a pipeline with the expected jobs2218 PHP2219 when branch pipeline2220 creates a pipeline with the expected jobs2221 when MR pipeline2222 creates a pipeline with the expected jobs2223 Python2224 when branch pipeline2225 creates a pipeline with the expected jobs2226 when MR pipeline2227 creates a pipeline with the expected jobs2228 Ruby2229 when branch pipeline2230 creates a pipeline with the expected jobs2231 when MR pipeline2232 creates a pipeline with the expected jobs2233 Scala2234 when branch pipeline2235 creates a pipeline with the expected jobs2236 when MR pipeline2237 creates a pipeline with the expected jobs2238 Scala2239 when branch pipeline2240 creates a pipeline with the expected jobs2241 when MR pipeline2242 creates a pipeline with the expected jobs2243 Typescript2244 when branch pipeline2245 creates a pipeline with the expected jobs2246 when MR pipeline2247 creates a pipeline with the expected jobs2248 Typescript JSX2249 when branch pipeline2250 creates a pipeline with the expected jobs2251 when MR pipeline2252 creates a pipeline with the expected jobs2253Geo::PagesDeploymentReplicator2254 invokes replicator.handle_after_create_commit on create2255 behaves like a replicator2256 Geo node status2257 on a primary site2258 .primary_total_count2259 when batch count feature flag is enabled2260 returns the number of available replicables on primary2261 when batch count feature flag is disabled2262 returns the number of available replicables on primary2263 on a secondary site2264 .registry_count2265 when batch count feature flag is enabled2266 returns the number of registries on secondary2267 when batch count feature flag is disabled2268 returns the number of registries on secondary2269 .synced_count2270 when batch count feature flag is enabled2271 returns the number of synced items on secondary2272 when batch count feature flag is disabled2273 returns the number of synced items on secondary2274 .failed_count2275 when batch count feature flag is enabled2276 returns the number of failed items on secondary2277 when batch count feature flag is disabled2278 returns the number of failed items on secondary2279 when replicator is Geo::RegistrySyncWorker compatible2280 has "created" and "deleted" events2281 when replicator enqueues a sync event2282 is expected to receive perform_async("pages_deployment", "created", {"model_record_id"=>22}) 1 time2283 #replicator2284 is defined and does not raise error2285 .replicables_for_current_secondary2286 when syncing object storage is enabled2287 behaves like is implemented and returns a valid relation2288 is implemented2289 when syncing object storage is disabled2290 behaves like is implemented and returns a valid relation2291 is implemented2292 with selective sync disabled2293 behaves like is implemented and returns a valid relation2294 is implemented2295 with selective sync enabled for namespaces2296 behaves like is implemented and returns a valid relation2297 is implemented2298 with selective sync enabled for shards2299 behaves like is implemented and returns a valid relation2300 is implemented2301 #handle_after_create_commit2302 creates a Geo::Event2303 calls #after_verifiable_update2304 when replication feature flag is disabled2305 does not call #after_verifiable_update2306 does not publish2307 #geo_handle_after_destroy2308 creates a Geo::Event2309 when replication feature flag is disabled2310 does not publish2311 created event consumption2312 when the blob's project is in replicables for this geo node2313 invokes Geo::BlobDownloadService2314 when the blob's project is not in replicables for this geo node2315 does not invoke Geo::BlobDownloadService2316 deleted event consumption2317 when model_record was deleted from the DB and the replicator only has its ID2318 invokes Geo::FileRegistryRemovalService2319 backward compatibility2320 invokes Geo::FileRegistryRemovalService when delete event is in deprecated format2321 when object storage is enabled2322 when GitLab managed replication is enabled2323 deletes the file from object storage2324 when GitLab managed replication is disabled2325 does not delete the file from object storage2326 #carrierwave_uploader2327 is implemented2328 #model2329 is implemented2330 is a Class2331 responds to primary_key2332 #blob_path2333 when the file is locally stored2334 returns a valid path to a file2335 #calculate_checksum2336 when the file is locally stored2337 when the file exists2338 returns hexdigest of the file2339 when the file does not exist2340 raises an error2341 when the file is remotely stored2342 raises an error2343 #file_exists?2344 is expected to be truthy2345 when the file does not exist2346 is expected to be falsey2347 when the file is nil2348 is expected to be falsey2349 .bulk_create_delete_events_async2350 creates events2351 raises error when model_record_id is nil2352 events2353 has checksum_succeeded event2354 .verification_enabled?2355 when replication is enabled2356 when verification_feature_flag_enabled? returns true2357 returns true2358 when verification_feature_flag_enabled? returns false2359 returns false2360 when replication is disabled2361 returns false2362 .checksummed_count2363 when verification is enabled2364 when batch count feature flag is enabled2365 behaves like a counter of succeeded available verifiables2366 is expected to eq 12367 excludes other verification states2368 when batch count feature flag is disabled2369 behaves like a counter of succeeded available verifiables2370 is expected to eq 12371 excludes other verification states2372 when verification is disabled2373 returns nil2374 .verified_count2375 when verification is enabled2376 when batch count feature flag is enabled2377 behaves like a counter of succeeded available verifiables2378 is expected to eq 12379 excludes other verification states2380 when batch count feature flag is disabled2381 behaves like a counter of succeeded available verifiables2382 is expected to eq 12383 excludes other verification states2384 when verification is disabled2385 returns nil2386 .checksum_failed_count2387 when verification is enabled2388 when batch count feature flag is enabled2389 behaves like a counter of failed available verifiables2390 is expected to eq 12391 excludes other verification states2392 when batch count feature flag is disabled2393 behaves like a counter of failed available verifiables2394 is expected to eq 12395 excludes other verification states2396 when verification is disabled2397 returns nil2398 .verification_failed_count2399 when verification is enabled2400 when batch count feature flag is enabled2401 behaves like a counter of failed available verifiables2402 is expected to eq 12403 excludes other verification states2404 when batch count feature flag is disabled2405 behaves like a counter of failed available verifiables2406 is expected to eq 12407 excludes other verification states2408 when verification is disabled2409 returns nil2410 .verification_total_count2411 when verification is enabled2412 when batch count feature flag is enabled2413 when the verification_state is disabled2414 is expected to eq 02415 when the verification_state is not disabled2416 is expected to eq 12417 when batch count feature flag is disabled2418 when the verification_state is disabled2419 is expected to eq 02420 when the verification_state is not disabled2421 is expected to eq 12422 when verification is disabled2423 returns nil2424 .trigger_background_verification2425 when verification is enabled2426 for a Geo secondary2427 does not enqueue ReverificationBatchWorker2428 enqueues VerificationBatchWorker2429 enqueues VerificationTimeoutWorker2430 for a Geo primary2431 enqueues ReverificationBatchWorker2432 enqueues VerificationStateBackfillWorker2433 enqueues VerificationBatchWorker2434 enqueues VerificationTimeoutWorker2435 when verification is disabled2436 does not enqueue VerificationBatchWorker2437 does not enqueue VerificationTimeoutWorker2438 .backfill_verification_state_table2439 calls VerificationStateBackfillService2440 when on secondary2441 returns false2442 .verify_batch2443 when there are records needing verification2444 calls #verify on each replicator2445 .remaining_verification_batch_count2446 converts needs_verification_count to number of batches2447 .remaining_reverification_batch_count2448 converts needs_reverification_count to number of batches2449 .reverify_batch!2450 calls #reverify_batch2451 .replicator_batch_to_verify2452 returns usable Replicator instances2453 .model_record_id_batch_to_verify2454 when the batch is filled by pending rows2455 returns IDs of pending rows2456 does not call .verification_failed_batch2457 when that batch is not filled by pending rows2458 includes IDs of failed rows2459 .verification_pending_batch2460 when current node is a primary2461 delegates to the model class of the replicator2462 when current node is a secondary2463 delegates to the registry class of the replicator2464 .verification_failed_batch2465 when current node is a primary2466 delegates to the model class of the replicator2467 when current node is a secondary2468 delegates to the registry class of the replicator2469 .fail_verification_timeouts2470 when current node is a primary2471 delegates to the model class of the replicator2472 when current node is a secondary2473 delegates to the registry class of the replicator2474 #after_verifiable_update2475 verification_enabled: true, immutable: true, checksum: nil, checksummable: true, expect_verify_async: true2476 calls verify_async only if needed2477 verification_enabled: true, immutable: true, checksum: nil, checksummable: false, expect_verify_async: false2478 calls verify_async only if needed2479 verification_enabled: true, immutable: true, checksum: "abc123", checksummable: true, expect_verify_async: false2480 calls verify_async only if needed2481 verification_enabled: true, immutable: true, checksum: "abc123", checksummable: false, expect_verify_async: false2482 calls verify_async only if needed2483 verification_enabled: true, immutable: false, checksum: nil, checksummable: true, expect_verify_async: true2484 calls verify_async only if needed2485 verification_enabled: true, immutable: false, checksum: nil, checksummable: false, expect_verify_async: false2486 calls verify_async only if needed2487 verification_enabled: true, immutable: false, checksum: "abc123", checksummable: true, expect_verify_async: true2488 calls verify_async only if needed2489 verification_enabled: true, immutable: false, checksum: "abc123", checksummable: false, expect_verify_async: false2490 calls verify_async only if needed2491 verification_enabled: false, immutable: true, checksum: nil, checksummable: true, expect_verify_async: false2492 calls verify_async only if needed2493 verification_enabled: false, immutable: true, checksum: nil, checksummable: false, expect_verify_async: false2494 calls verify_async only if needed2495 verification_enabled: false, immutable: true, checksum: "abc123", checksummable: true, expect_verify_async: false2496 calls verify_async only if needed2497 verification_enabled: false, immutable: true, checksum: "abc123", checksummable: false, expect_verify_async: false2498 calls verify_async only if needed2499 verification_enabled: false, immutable: false, checksum: nil, checksummable: true, expect_verify_async: false2500 calls verify_async only if needed2501 verification_enabled: false, immutable: false, checksum: nil, checksummable: false, expect_verify_async: false2502 calls verify_async only if needed2503 verification_enabled: false, immutable: false, checksum: "abc123", checksummable: true, expect_verify_async: false2504 calls verify_async only if needed2505 verification_enabled: false, immutable: false, checksum: "abc123", checksummable: false, expect_verify_async: false2506 calls verify_async only if needed2507 #verify_async2508 on a Geo primary2509 calls verification_started! and enqueues VerificationWorker2510 #verify2511 wraps the checksum calculation in track_checksum_attempt!2512 #verification_state_tracker2513 on a Geo primary2514 returns model_record2515 on a Geo secondary2516 returns registry2517 #handle_after_checksum_succeeded2518 on a Geo primary2519 creates checksum_succeeded event2520 is called on verification success2521 on a Geo secondary2522 does not create an event2523 #consume_event_checksum_succeeded2524 with a persisted model_record2525 on a Geo primary2526 does nothing2527 on a Geo secondary2528 with a persisted registry2529 with a registry which is verified2530 sets state to verification_pending2531 with a registry which is pending verification2532 does not change state from verification_pending2533 with an unpersisted registry2534 does not persist the registry2535 #primary_verification_succeeded?2536 when the model record is verification_succeeded2537 returns true2538 when the model record is verification_succeeded2539 returns false2540 integration tests2541 on a primary2542 background backfill2543 verifies model records2544 triggered by events2545 verifies model records2546 on a secondary2547 background backfill2548 verifies registries2549 triggered by events2550 verifies registries2551Gitlab::Usage::ServicePingReport2552 for conditional metrics inclusion2553 does not raise errors2554 for output: :metrics_queries2555/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2556/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2557/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2558/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2559/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2560/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2561/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2562/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2563 returns queries that do not change between calls2564Banzai::Filter::References::IterationReferenceFilter2565 requires project context2566 group context2567 when group iteration2568 for subgroups2569 links to a valid reference of subgroup and group iterations2570 for private subgroups2571 links to a valid reference of subgroup and group iterations2572 when iteration is open2573 group iterations2574 ignores valid references contained inside 'pre' element2575 ignores valid references contained inside 'code' element2576 ignores valid references contained inside 'a' element2577 ignores valid references contained inside 'style' element2578 includes default classes2579 includes a data-project attribute2580 includes a data-iteration attribute2581 supports an :only_path context2582 does not support references by IID2583 does not support references by link2584 does not support cross-project references2585 supports parent group references2586 behaves like String-based single-word references2587 links to a valid reference2588 links with adjacent text2589 links with adjacent html tags2590 ignores invalid iteration names2591 behaves like String-based multi-word references in quotes2592 links to a valid reference2593 links with adjacent text2594 ignores invalid iteration names2595 behaves like referencing a iteration in a link href2596 links to a valid reference2597 links with adjacent text2598 includes a data-project attribute2599 includes a data-iteration attribute2600 behaves like Integer-based references2601 links to a valid reference2602 links with adjacent text2603 ignores invalid iteration IIDs2604 when iteration is closed2605 group iterations2606 ignores valid references contained inside 'pre' element2607 ignores valid references contained inside 'code' element2608 ignores valid references contained inside 'a' element2609 ignores valid references contained inside 'style' element2610 includes default classes2611 includes a data-project attribute2612 includes a data-iteration attribute2613 supports an :only_path context2614 does not support references by IID2615 does not support references by link2616 does not support cross-project references2617 supports parent group references2618 behaves like String-based single-word references2619 links to a valid reference2620 links with adjacent text2621 links with adjacent html tags2622 ignores invalid iteration names2623 behaves like String-based multi-word references in quotes2624 links to a valid reference2625 links with adjacent text2626 ignores invalid iteration names2627 behaves like referencing a iteration in a link href2628 links to a valid reference2629 links with adjacent text2630 includes a data-project attribute2631 includes a data-iteration attribute2632 behaves like Integer-based references2633 links to a valid reference2634 links with adjacent text2635 ignores invalid iteration IIDs2636 checking N+12637 does not have N+1 per multiple references per group2638 has N+1 for multiple unique group references2639RemoveProjectsFromMainIndex2640 # order random2641 .completed?2642 when original_documents_count is zero2643 returns true2644 when original_documents_count is non zero2645 returns false2646 .migrate2647 when projects are still present in the index2648 removes projects from the index26501st Try error in ./ee/spec/elastic/migrate/20230719094700_remove_projects_from_main_index_spec.rb:35:2651expected {"documents_remaining"=>5, "task_id"=>"oNfoIfeST2KOvVo4dF6SfQ:2265"} to match {:task_id=>nil, :documents_remaining=>0}2652Diff:2653@@ -1,3 +1,3 @@2654-:documents_remaining => 0,2655-:task_id => nil,2656+"documents_remaining" => 5,2657+"task_id" => "oNfoIfeST2KOvVo4dF6SfQ:2265",2659RSpec::Retry: 2nd try ./ee/spec/elastic/migrate/20230719094700_remove_projects_from_main_index_spec.rb:352660 and task in progress2661 does nothing if task is not completed2662 when migration fails2663 and exception is raised2664 resets task_id2665 and es responds with errors2666 when a task throws an error2667 resets task_id2668 when delete_by_query throws an error2669 resets task_id2670 when projects are already deleted2671 does not execute delete_by_query2672 migration_options2673 has migration options set2674EE::Gitlab::Auth::Ldap::Sync::Group2675 .execute_all_providers2676 uses the ldap sync state machine2677 fails a stuck group older than 1 hour2678 when the group ldap sync has already started2679 logs a debug message2680 does not update permissions2681 when ldap connection fails2682 logs a debug message2683 ensures group state returns to failed_ldap_sync2684 .execute2685 uses the ldap sync state machine2686 fails a stuck group older than 1 hour2687 when the group ldap sync has already started2688 logs a debug message2689 does not update permissions2690 when ldap connection fails2691 logs a debug message2692 ensures group state returns to failed_ldap_sync2693 .fail_stuck_group2694 handles nil ldap_sync_last_sync_at2695 .ldap_sync_ready?2696 returns false when ldap sync started2697 returns true when ldap sync pending2698 #update_permissions2699 with all functionality against one LDAP group type2700 with basic add/update actions2701 does not update permissions unless ldap sync status is started2702 adds new members and sets ldap attribute to true2703 converts an existing membership access request to a real member2704 downgrades existing member access2705 upgrades existing member access2706 sets an existing member ldap attribute to true2707 does not alter an ldap member that has a permission override2708 when existing user is no longer in LDAP group2709 removes the user from the group2710 refuses to delete the last owner2711 updates projects authorizations2712 when the user is the last owner2713 downgrades one user but not the other2714 when user inherits higher permissions from parent2715 adds member with the inherited higher permission2716 upgrades existing member to the inherited higher permission2717 does not alter an ldap member that has a permission override2718 when user inherits lower permissions from parent2719 adds member with the ldap group link's access level2720 downgrades existing member access to the ldap group link's access level2721 does not alter an ldap member that has a permission override2722 when user has a pending access request in a parent group2723 does not propagate the access level of the pending access request2724 when user inherits permissions from parent and user is no longer in LDAP group2725 removes existing member2726 when permissions are inherited from a complex ancestry2727 applies the permission inherited from the closest ancestor when it's higher2728 when the extern_uid and group member DNs have different case2729 does not revert the overrides2730 does not update permissions when group base is missing2731 with different LDAP group types2732 with groupOfNames style LDAP group2733 adds the user to the group2734 with posixGroup style LDAP group2735 adds the user to the group2736 with groupOfUniqueNames style LDAP group2737 adds the user to the group2738 with an empty LDAP group2739 does nothing, without failure2740 filter2741 #update_permissions2742 with all functionality against one LDAP group type2743 with basic add/update actions2744 does not update permissions unless ldap sync status is started2745 adds new members and sets ldap attribute to true2746 updates permissions when group base is missing2747Security::PipelineVulnerabilitiesFinder2748 #execute2749 findings2750 assigns commit sha to findings2751 assigns the found_by_pipeline to findings2752 does not have N+1 queries2753 by order2754 orders by severity and confidence2755 when the artifact has invalid findings2756 does not return the invalid findings2757 by report type2758 when sast2759 includes only sast2760 false-positive2761 includes findings with false-positive2762 does not include findings with false-positive if license is not available2763 when secret detection2764 includes only secret_detection2765 uses the commit SHA from the report when available2766 when dependency_scanning2767 includes only dependency_scanning2768 when dast2769 includes only dast2770 when container_scanning2771 includes only container_scanning2772 by scope2773 when vulnerability_finding_signatures feature is disabled2774 when unscoped2775 returns non-dismissed vulnerabilities2776 when `dismissed`2777 returns non-dismissed vulnerabilities2778 when `all`2779 returns all vulnerabilities2780 when vulnerability_finding_signatures feature is enabled2781 when unscoped2782 returns non-dismissed vulnerabilities2783 when `dismissed`2784 returns non-dismissed vulnerabilities2785 when `all`2786 returns all vulnerabilities2787 by severity2788 when unscoped2789 returns all vulnerability severity levels2790 when `low`2791 returns only low-severity vulnerabilities2792 by confidence2793 when unscoped2794 returns all vulnerability confidence levels2795 when `medium`2796 returns only medium-confidence vulnerabilities2797 by scanner2798 when unscoped2799 returns all vulnerabilities with all scanners available2800 when matching scanners do not exist for the findings2801 creates a non-persistent scanner from the report finding2802 when `zaproxy`2803 returns only vulnerabilities with selected scanner external id2804 when existing scanners exist for the findings2805 associates the finding with the scanner in the database2806 by state2807 when the state parameter is not given2808 returns all findings2809 when the state parameter is given2810 when the given state is `dismissed`2811 is expected to contain exactly "a24fce14-a705-5eba-a56d-c869580a8db1"2812 when the given state is `detected`2813 returns all detected findings2814 when the given state is `confirmed`2815 is expected to contain exactly "a24fce14-a705-5eba-a56d-c869580a8db1"2816 when the given state is `resolved`2817 is expected to contain exactly "a24fce14-a705-5eba-a56d-c869580a8db1"2818 by all filters2819 with found entity2820 filters by all params2821 without found entity2822 did not find anything2823 without params2824 returns all report_types2825 when matching vulnerability records exist2826 assigns vulnerability records to findings providing them with computed state2827 when being tested for sort stability2828 maintains the order of the findings having the same severity and confidence2829 when scanner is not provided in the report findings2830 sets empty scanner2831 when evidence is not provided in the report findings2832 does not set the evidences for findings2833Projects::TransferService2834 when running on a primary node2835 logs an event to the Geo event log2836 audit events2837 when licensed2838 does not log audit event if operation fails2839 does not log audit event if operation results in no change2840 when operation succeeds2841 logs an audit event2842 logs the audit event info2843 calls the audit method with the event type2844 when not licensed2845 does not log audit event2846 missing epics applied to issues2847 delegates transfer to Epics::TransferService2848 elasticsearch indexing2849 delegates transfer to Elastic::ProjectTransferWorker2850 security policy project2851 when project has policy project2852 unassigns the policy project2853 when project has inherited policy project2854 when transferring the project within the same hierarchy2855 deletes scan_finding_rules for inherited policy project2856 when transferring the project from one hierarchy to another2857 deletes scan_finding_rules for inherited policy project2858 triggers Security::ScanResultPolicies::SyncProjectWorker to sync new group policies2859 updating paid features2860 project access tokens2861 with a self managed instance2862 does not revoke PATs2863 with GL.com2864 when target namespace has a premium plan2865 does not revoke PATs2866 when target namespace has a free plan2867 revoke PATs2868 pipeline subscriptions2869 when target namespace has a premium plan2870 does not schedule cleanup for upstream project subscription2871 when target namespace has a free plan2872 schedules cleanup for upstream project subscription2873 test cases2874 when target namespace has a premium plan2875 does not delete the test cases2876 when target namespace has a free plan2877 deletes the test cases2878 deleting compliance framework setting2879 when the project has a compliance framework setting2880 deletes the compliance framework setting2881 when the project does not have a compliance framework setting2882 does not raise an error2883 does not change the compliance framework settings count2884Gitlab::Checks::DiffCheck2885 #validate!2886 no push rules active2887 does not attempt to check commits2888 #validate_code_owners?2889 when user can not push to the branch2890 when not updated from web2891 checks if the branch requires code owner approval2892 when updated from the web2893 returns false2894 when a user can push to the branch2895 returns false2896 #validate_code_owners2897 the MR contains a renamed file matching a file path2898 returns an error message2899 the MR contains a matching file path2900 behaves like returns codeowners validation message2901 returns an error message2902 the MR doesn't contain a matching file path2903 returns nil2904 #file_paths_validations2905 when the feature isn't enabled on the project2906 returns an empty array2907 when the feature is enabled on the project2908 updated_from_web? == false2909 returns an array of Proc(s)2910 updated_from_web? == true2911 returns an empty array2912 file name rules2913 file name regex check2914 returns an error if a new or renamed filed doesn't match the file name regex2915 returns an error if the regex is invalid2916 behaves like check ignored when push rule unlicensed2917 is expected to be truthy2918 denylisted files check2919 returns true if there is no denylisted files2920 returns an error if a new or renamed filed doesn't match the file name regex2921 behaves like check ignored when push rule unlicensed2922 is expected to be truthy2923 when the repository was empty2924 when file contains secrets2925 returns an error if a new or renamed filed doesn't match the file name regex2926 when feature flag "verify_push_rules_for_first_commit" is disabled2927 does not raise an error2928 when file is permitted2929 does not raise an error2930 file lock rules2931 memoizes the validate_path_locks? call2932 when file has changes2933 behaves like a locked file2934 and path is locked by another user2935 returns an error2936 and path is locked by current user2937 is allows changes2938 when file is renamed2939 behaves like a locked file2940 and path is locked by another user2941 returns an error2942 and path is locked by current user2943 is allows changes2944 when file is deleted2945 behaves like a locked file2946 and path is locked by another user2947 returns an error2948 and path is locked by current user2949 is allows changes2950 when the branch is being deleted2951 does not run2952 when there is no valid change2953 does not run2954NamespaceSetting2955 validations2956 is expected to validate that :unique_project_download_limit cannot be empty/falsy2957 is expected to validate that :unique_project_download_limit_interval_in_seconds cannot be empty/falsy2958 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 100002959 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 8640002960 unique_project_download_limit_allowlist2961 is expected to allow :unique_project_download_limit_allowlist to be ‹[]›2962 is expected to allow :unique_project_download_limit_allowlist to be ‹["user1237"]›2963 is expected not to allow :unique_project_download_limit_allowlist to be ‹nil›2964 is expected not to allow :unique_project_download_limit_allowlist to be ‹["unknown_user"]›2965 when maximum length is exceeded2966 is not valid2967 AI related settings2968 behaves like AI related settings validations2969 is expected to allow :third_party_ai_features_enabled to be ‹true› or ‹false›2970 is expected not to allow :third_party_ai_features_enabled to be ‹nil›2971 when AI settings are not allowed2972 third_party_ai_features_enabled is not valid2973 behaves like AI related settings validations2974 is expected to allow :experiment_features_enabled to be ‹true› or ‹false›2975 is expected not to allow :experiment_features_enabled to be ‹nil›2976 when AI settings are not allowed2977 experiment_features_enabled is not valid2978 when AI settings are not allowed but ai_assist are2979 is expected to allow :third_party_ai_features_enabled to be ‹true› or ‹false›2980 is expected not to allow :third_party_ai_features_enabled to be ‹nil›2981 unique_project_download_limit_alertlist2982 is expected to allow :unique_project_download_limit_alertlist to be ‹[]›2983 is expected to allow :unique_project_download_limit_alertlist to be ‹[2248]›2984 is expected to allow :unique_project_download_limit_alertlist to be ‹nil›2985 is expected not to allow :unique_project_download_limit_alertlist to be ‹[2147483647]›2986 when maximum length is exceeded2987 is not valid2988 when empty2989 returns the user ids of the active group owners2990 when not empty2991 returns the set user ids2992 #prevent_forking_outside_group?2993 with feature available2994 group with no associated saml provider2995 returns namespace setting2996 group with associated saml provider2997 when it is configured to true on saml level2998 returns true2999 when it is configured to false on saml level3000 returns false3001 when setting is configured on namespace level3002 returns namespace setting3003 without feature available3004 returns false3005 when saml setting is available3006 when it is configured to true on saml level3007 returns true3008 when it is configured to false on saml level3009 returns false3010 validating new_user_signup_cap3011 feature_available: true, old_value: nil, new_value: 10, expectation: true3012 returns the expected response3013 feature_available: true, old_value: 0, new_value: 10, expectation: true3014 returns the expected response3015 feature_available: true, old_value: 0, new_value: 0, expectation: true3016 returns the expected response3017 feature_available: false, old_value: nil, new_value: 10, expectation: false3018 returns the expected response3019 feature_available: false, old_value: 10, new_value: 10, expectation: true3020 returns the expected response3021 when enabling the setting3022 when the group is a subgroup3023 behaves like user cap is not available3024 is invalid3025 when the group is shared externally3026 behaves like user cap is not available3027 is invalid3028 when the namespace is a user3029 behaves like user cap is not available3030 is invalid3031 hooks related to group user cap update3032 when updating a group with a user cap3033 also sets share_with_group_lock and prevent_sharing_groups_outside_hierarchy to true3034 has share_with_group_lock and prevent_sharing_groups_outside_hierarchy returning true for descendent groups3035 when removing a user cap from namespace settings3036 leaves share_with_group_lock and prevent_sharing_groups_outside_hierarchy set to true to the related group3037 .allowed_namespace_settings_params3038 includes attributes used for limiting unique project downloads3039 .cascading_with_parent_namespace3040 when calling .cascading_with_parent_namespace3041 create three instance methods for attribute3042 three configurations of MR checks3043 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3044 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?: true3045 returns correct value3046 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?: true3047 returns correct value3048 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?: true3049 returns correct value3050 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?: true3051 returns correct value3052 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?: true3053 returns correct value3054 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?: false3055 returns correct value3056 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3057 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?: true3058 returns correct value3059 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?: true3060 returns correct value3061 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?: true3062 returns correct value3063 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?: true3064 returns correct value3065 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?: true3066 returns correct value3067 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?: false3068 returns correct value3069 behaves like [configuration](inherit_group_setting: bool) and [configuration]_locked?3070 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?: true3071 returns correct value3072 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?: true3073 returns correct value3074 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?: true3075 returns correct value3076 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?: true3077 returns correct value3078 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?: true3079 returns correct value3080 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?: false3081 returns correct value3082 .ai_settings_allowed?3083 check_namespace_plan: true, main_feature_flag: true, secondary_feature_flag: true, licensed_feature: true, is_root: true, result: true3084 is expected to eq true3085 check_namespace_plan: false, main_feature_flag: true, secondary_feature_flag: true, licensed_feature: true, is_root: true, result: false3086 is expected to eq false3087 check_namespace_plan: true, main_feature_flag: false, secondary_feature_flag: true, licensed_feature: true, is_root: true, result: false3088 is expected to eq false3089 check_namespace_plan: true, main_feature_flag: true, secondary_feature_flag: false, licensed_feature: true, is_root: true, result: false3090 is expected to eq false3091 check_namespace_plan: true, main_feature_flag: true, secondary_feature_flag: true, licensed_feature: false, is_root: true, result: false3092 is expected to eq false3093 check_namespace_plan: true, main_feature_flag: true, secondary_feature_flag: true, licensed_feature: true, is_root: false, result: false3094 is expected to eq false3095 #ai_assist_ui_enabled?3096 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: group, check_namespace_plan: false, result: false3097 is expected to eq false3098 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: subgroup, check_namespace_plan: false, result: false3099 is expected to eq false3100 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: user_namespace, check_namespace_plan: false, result: false3101 is expected to eq false3102 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: group, check_namespace_plan: true, result: false3103 is expected to eq false3104 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: subgroup, check_namespace_plan: true, result: false3105 is expected to eq false3106 feature_ai_assist_ui: false, ai_assist_flag: false, namespace: user_namespace, check_namespace_plan: true, result: false3107 is expected to eq false3108 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: group, check_namespace_plan: false, result: false3109 is expected to eq false3110 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: subgroup, check_namespace_plan: false, result: false3111 is expected to eq false3112 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: user_namespace, check_namespace_plan: false, result: false3113 is expected to eq false3114 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: group, check_namespace_plan: true, result: false3115 is expected to eq false3116 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: subgroup, check_namespace_plan: true, result: false3117 is expected to eq false3118 feature_ai_assist_ui: false, ai_assist_flag: true, namespace: user_namespace, check_namespace_plan: true, result: false3119 is expected to eq false3120 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: group, check_namespace_plan: false, result: false3121 is expected to eq false3122 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: subgroup, check_namespace_plan: false, result: false3123 is expected to eq false3124 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: user_namespace, check_namespace_plan: false, result: false3125 is expected to eq false3126 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: group, check_namespace_plan: true, result: false3127 is expected to eq false3128 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: subgroup, check_namespace_plan: true, result: false3129 is expected to eq false3130 feature_ai_assist_ui: true, ai_assist_flag: false, namespace: user_namespace, check_namespace_plan: true, result: false3131 is expected to eq false3132 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: group, check_namespace_plan: false, result: false3133 is expected to eq false3134 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: subgroup, check_namespace_plan: false, result: false3135 is expected to eq false3136 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: user_namespace, check_namespace_plan: false, result: false3137 is expected to eq false3138 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: group, check_namespace_plan: true, result: true3139 is expected to eq true3140 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: subgroup, check_namespace_plan: true, result: false3141 is expected to eq false3142 feature_ai_assist_ui: true, ai_assist_flag: true, namespace: user_namespace, check_namespace_plan: true, result: true3143 is expected to eq true3144AuditEvents::GoogleCloudLoggingConfiguration3145 # order random3146 behaves like includes Limitable concern3147 #exceeds_limits?3148 without plan limits configured3149 is expected to eq false3150 without plan limits configured3151 is expected to eq false3152 with an existing model3153 is expected to eq true3154 validations3155 is expected to be a kind of Limitable3156 without plan limits configured3157 can create new models3158 with plan limits configured3159 can create new models3160 with an existing model3161 cannot create new models exceeding the plan limits3162 Validations3163 is expected to validate that :google_project_id_name cannot be empty/falsy3164 is expected to validate that :client_email cannot be empty/falsy3165 is expected to validate that :log_id_name cannot be empty/falsy3166 is expected to validate that :private_key cannot be empty/falsy3167 is expected to validate that the length of :google_project_id_name is between 6 and 303168 is expected to validate that the length of :client_email is at most 2543169 is expected to validate that the length of :log_id_name is at most 5113170 is expected to allow :google_project_id_name to be ‹"valid-project-id"›3171 is expected not to allow :google_project_id_name to be ‹"invalid_project_id"›3172 is expected not to allow :google_project_id_name to be ‹"invalid-project-id-"›3173 is expected not to allow :google_project_id_name to be ‹"Invalid-project-id"›3174 is expected not to allow :google_project_id_name to be ‹"1-invalid-project-id"›3175 is expected to allow :client_email to be ‹"valid@example.com"›3176 is expected to allow :client_email to be ‹"valid@example.org"›3177 is expected to allow :client_email to be ‹"valid@example.co.uk"›3178 is expected to allow :client_email to be ‹"valid_email+mail@mail.com"›3179 is expected not to allow :client_email to be ‹"invalid_email"›3180 is expected not to allow :client_email to be ‹"invalid@.com"›3181 is expected not to allow :client_email to be ‹"invalid..com"›3182 is expected to allow :log_id_name to be ‹"audit_events"›3183 is expected to allow :log_id_name to be ‹"audit-events"›3184 is expected to allow :log_id_name to be ‹"audit.events"›3185 is expected to allow :log_id_name to be ‹"AUDIT_EVENTS"›3186 is expected to allow :log_id_name to be ‹"audit_events/123"›3187 is expected not to allow :log_id_name to be ‹"AUDIT_EVENT@"›3188 is expected not to allow :log_id_name to be ‹"AUDIT_EVENT$"›3189 is expected not to allow :log_id_name to be ‹"#AUDIT_EVENT"›3190 is expected not to allow :log_id_name to be ‹"%audit_events/123"›3191 when the same google_project_id_name for the same namespace and log_id_name exists3192 is not valid and adds an error message3193 when the group is a subgroup3194 is not valid and adds an error message3195 Associations3196 belongs to a group3197 #full_log_path3198 returns the full log path for the google project3199 default values3200 uses 'audit_events' as default value for log_id_name3201 #allowed_to_stream?3202 always returns true3203Audit::GroupPushRulesChangesAuditor3204 when auditing group-level changes in push rules3205 key: :commit_committer_check, old_value: false, new_value: true, event_name: "group_push_rules_commit_committer_check_updated"3206 audits the change in push rule correctly3207 streams correct audit event3208 key: :commit_committer_check, old_value: true, new_value: false, event_name: "group_push_rules_commit_committer_check_updated"3209 audits the change in push rule correctly3210 streams correct audit event3211 key: :reject_unsigned_commits, old_value: false, new_value: true, event_name: "group_push_rules_reject_unsigned_commits_updated"3212 audits the change in push rule correctly3213 streams correct audit event3214 key: :reject_unsigned_commits, old_value: true, new_value: false, event_name: "group_push_rules_reject_unsigned_commits_updated"3215 audits the change in push rule correctly3216 streams correct audit event3217 key: :deny_delete_tag, old_value: false, new_value: true, event_name: "group_push_rules_reject_deny_delete_tag_updated"3218 audits the change in push rule correctly3219 streams correct audit event3220 key: :deny_delete_tag, old_value: true, new_value: false, event_name: "group_push_rules_reject_deny_delete_tag_updated"3221 audits the change in push rule correctly3222 streams correct audit event3223 key: :member_check, old_value: false, new_value: true, event_name: "group_push_rules_reject_member_check_updated"3224 audits the change in push rule correctly3225 streams correct audit event3226 key: :member_check, old_value: true, new_value: false, event_name: "group_push_rules_reject_member_check_updated"3227 audits the change in push rule correctly3228 streams correct audit event3229 key: :prevent_secrets, old_value: false, new_value: true, event_name: "group_push_rules_prevent_secrets_updated"3230 audits the change in push rule correctly3231 streams correct audit event3232 key: :prevent_secrets, old_value: true, new_value: false, event_name: "group_push_rules_prevent_secrets_updated"3233 audits the change in push rule correctly3234 streams correct audit event3235 key: :branch_name_regex, old_value: nil, new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_branch_name_regex_updated"3236 audits the change in push rule correctly3237 streams correct audit event3238 key: :branch_name_regex, old_value: ".*\\w{2}", new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_branch_name_regex_updated"3239 audits the change in push rule correctly3240 streams correct audit event3241 key: :commit_message_regex, old_value: nil, new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_commit_message_regex_updated"3242 audits the change in push rule correctly3243 streams correct audit event3244 key: :commit_message_regex, old_value: ".*\\w{2}", new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_commit_message_regex_updated"3245 audits the change in push rule correctly3246 streams correct audit event3247 key: :commit_message_negative_regex, old_value: nil, new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_commit_message_negative_regex_updated"3248 audits the change in push rule correctly3249 streams correct audit event3250 key: :commit_message_negative_regex, old_value: ".*\\w{2}", new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_commit_message_negative_regex_updated"3251 audits the change in push rule correctly3252 streams correct audit event3253 key: :author_email_regex, old_value: nil, new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_author_email_regex_updated"3254 audits the change in push rule correctly3255 streams correct audit event3256 key: :author_email_regex, old_value: ".*\\w{2}", new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_author_email_regex_updated"3257 audits the change in push rule correctly3258 streams correct audit event3259 key: :file_name_regex, old_value: nil, new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_file_name_regex_updated"3260 audits the change in push rule correctly3261 streams correct audit event3262 key: :file_name_regex, old_value: ".*\\w{2}", new_value: "\\Asecurity-.*\\z", event_name: "group_push_rules_file_name_regex_updated"3263 audits the change in push rule correctly3264 streams correct audit event3265 key: :max_file_size, old_value: 0, new_value: 132, event_name: "group_push_rules_max_file_size_updated"3266 audits the change in push rule correctly3267 streams correct audit event3268 key: :max_file_size, old_value: 12, new_value: 42, event_name: "group_push_rules_max_file_size_updated"3269 audits the change in push rule correctly3270 streams correct audit event3271 for EVENT_TYPE_PER_ATTR3272 defines audit event types for all the audit log allowlist attributes for group push rule changes3273NotePolicy3274 #rules3275 for epics in a public group3276 with non-confidential notes3277 allows non members to read notes3278 allows guests only to read notes3279 allows reporters only to read notes3280 allows developers only to read notes3281 allows maintainers to read notes and admin them3282 allows noteable author to read notes3283 with confidential notes3284 does not allow guests to read confidential notes and replies3285 does not allow noteable author to read note3286 behaves like private notes3287 does not allow non members to read notes3288 allows reporter to read notes3289 allows developer to read notes3290 allows maintainers to read notes and admin them3291 for epics in a private group3292 does not allow guests to read notes3293 behaves like private notes3294 does not allow non members to read notes3295 allows reporter to read notes3296 allows developer to read notes3297 allows maintainers to read notes and admin them3298Integrations::Github3299 default values3300 is expected to eq true3301 behaves like Integrations::ResetSecretFields3302 #exposing_secrets_fields3303 returns an array of strings3304 #reset_secret_fields?3305 returns false if no exposing field has changed3306 returns true if any exposing field has changed3307 validation callback3308 when an exposing field has changed3309 clears all secret fields3310 when a secret field has been updated3311 does not clear this secret field3312 when a secret field has been updated with the same value3313 does not clear this secret field3314 when no exposing field has changed3315 does not clear any secret fields3316 Associations3317 is expected to belong to project required: false3318 Validations3319 when base_url is a localhost url3320 #valid?3321 is not valid3322 #owner3323 is determined from the repo URL3324 #repository_name3325 is determined from the repo URL3326 #api_url3327 uses github.com by default3328 with GitHub Enterprise repo URL3329 is set to the Enterprise API URL3330 #help3331 links to mirroring settings3332 #properties3333 does not overwrite existing integrations3334 when initialized without properties3335 static_context defaults to true3336 when initialized with static_context as false3337 static_context remains false3338 when initialized with static_context as false3339 static_context remains false3340 #execute3341 notifies GitHub of a status change3342 uses StatusMessage to build message3343 uses GitHub API to update status3344 the integration is invalid3345 does not notify GitHub of a status change3346 passes StatusMessage values to StatusNotifier3347 sha3348 status3349 context3350 target_url3351 description3352 with custom api endpoint3353 hands custom api url to StatusNotifier3354 when an external pull request pipeline exists3355 does not send notification3356 sends notification if the sha is not present3357 when the pipeline is an external pull request pipeline3358 sends notification3359 logs result of GitHub API call without the "creator" section and "avatar_url" field3360 without a license3361 does nothing3362 #testable?3363 is false if there are no pipelines3364 is true if the project has a pipeline3365 #test3366 mentions creator in success message3367 forwards failure message on error3368 without a license3369 fails gracefully3370Geo::DesignManagementRepositoryRegistryFinder3371 # order random3372 behaves like a framework registry finder3373 #execute3374 when user cannot read all Geo3375 is expected to be empty3376 when user can read all Geo3377 when admin mode is disabled3378 is expected to be empty3379 when admin mode is enabled3380 with an ids param3381 returns specified registries3382 with an ids param empty3383 returns all registries3384 with a replication_state param3385 returns registries with requested replication state3386 with a replication_state param empty3387 returns all registries3388 with verification enabled3389 with a verification_state param3390 returns registries with requested verification state3391 with a verification_state param empty3392 returns all registries3393 with verification disabled3394 with a verification_state param3395 raises ArgumentError (PENDING: Skipping because verification is enabled for DesignManagement::Repository)3396 with a verification_state param empty3397 raises ArgumentError (PENDING: Skipping because verification is enabled for DesignManagement::Repository)3398 when search method is not implemented in the registry model3399 raises ArgumentError3400 when search method is implemented in the registry model3401 returns a registry filtered by keyword (PENDING: Skipping because search method is not implemented3402 for DesignManagement::Repository or searchable attributes are not defined.)3403 with no params3404 returns all registries3405ComplianceManagement::ComplianceReport::CommitLoader3406 # order random3407 when user is missing3408 raises an ArgumentError3409 #find_each3410 when an MR exists3411 is expected to contain exactly "a49095738f691a43cdf2bd306030950b65f879a1"3412 when a project has more than the max commits3413 only returns the max commits3414 with a subgroup project3415 returns group and subgroup commits3416 with commits that span the 1 month window3417 returns only the commits within 1 month3418 when a project does not have a repository3419 does not throw a NoRepository error3420 returns an empty array3421 when given a commit sha to filter by3422 when the sha is a merge commit sha3423 is expected to contain exactly "3c9a4cd202b1e47552cc6c224648f72a95b11c0e"3424 when the commit is a non-merge commit3425 is expected to contain exactly "a9d48e7527d5bdb513d19f1a3dc711f0512396e6"3426 when group is missing3427 raises an ArgumentError3428Sbom::Occurrence3429 associations3430 is expected to belong to component required: true3431 is expected to belong to component_version required: false3432 is expected to belong to project required: true3433 is expected to belong to pipeline required: false3434 is expected to belong to source required: false3435 loose foreign key on sbom_occurrences.pipeline_id3436 behaves like cleanup by a loose foreign key3437 cleans up (delete or nullify) the model3438 validations3439 is expected to validate that :commit_sha cannot be empty/falsy3440 is expected to validate that :uuid cannot be empty/falsy3441 is expected to validate that :uuid is case-insensitively unique3442 .order_by_id3443 returns records sorted by id3444 .order_by_component_name3445 returns records sorted by component name asc3446 returns records sorted by component name desc3447 .order_by_package_name3448 when the sort order is ascending3449 returns records sorted by package name asc3450 when the sort order is descending3451 returns records sorted by package name desc3452 .filter_by_component_names3453 returns records filtered by component name3454 .filter_by_package_managers3455 returns records filtered by package name3456 with empty array3457 returns no records3458 .filter_by_search_with_component_and_group3459 with different search keywords3460 keyword: "file", occurrences: [occurrence_bundler]3461 returns records filtered by search3462 keyword: "pack", occurrences: [occurrence_npm]3463 returns records filtered by search3464 keyword: "lock", occurrences: [occurrence_npm, occurrence_bundler]3465 returns records filtered by search3466 with unrelated group3467 returns empty array3468 with unrelated component3469 returns empty array3470 #name3471 delegates name to component3472 #version3473 delegates version to component_version3474 when component_version is nil3475 returns nil3476 source delegation3477 #packager3478 delegates packager to source3479 when source is nil3480 is expected to be nil3481 #location3482 returns expected location data3483 when source is nil3484 returns nil values3485Security::FindingsFinder3486 behaves like security findings finder3487 #execute3488 when the pipeline does not have security findings3489 is expected to be empty3490 when the pipeline has security findings3491 N+1 queries3492 does not cause N+1 queries3493 #current_page3494 when the page is not provided3495 is expected to equal 13496 when the page is provided3497 is expected to equal 23498 #limit_value3499 when the per_page is not provided3500 is expected to equal 203501 when the per_page is provided3502 is expected to equal 1003503 #total_pages3504 when the per_page is not provided3505 is expected to equal 13506 when the per_page is provided3507 is expected to equal 33508 #total_count3509 when the scope is not provided3510 is expected to equal 73511 when the scope is provided as `all`3512 is expected to equal 83513 #next_page3514 when the page is not provided3515 is expected to equal 23516 when the page is provided3517 is expected to be nil3518 #prev_page3519 when the page is not provided3520 is expected to be nil3521 when the page is provided3522 is expected to equal 13523 #findings3524 with the default parameters3525 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f", "a1aae794-0983-58e2-aec2-bf2a83f933e8", "ec2b1191-ab36-52d7-af4a-33fb20dd72b4", "c5b3652d-3746-5c1c-a85f-54fd1516794e", "970ffdb1-7836-57d8-91d9-c88110b4d4c1", "c39d408c-292c-56c3-bfb2-96b575596c10", "db8052e2-c4cf-59c7-8d16-6cf76ed67cb5", and "d4204681-934f-5f74-9471-b363260089af"3526 when the uuid is provided3527 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f"3528 when the page is provided3529 is expected to contain exactly "970ffdb1-7836-57d8-91d9-c88110b4d4c1" and "c39d408c-292c-56c3-bfb2-96b575596c10"3530 when the per_page is provided3531 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f"3532 when the `severity_levels` is provided3533 is expected to contain exactly "c5b3652d-3746-5c1c-a85f-54fd1516794e", "970ffdb1-7836-57d8-91d9-c88110b4d4c1", "c39d408c-292c-56c3-bfb2-96b575596c10", and "db8052e2-c4cf-59c7-8d16-6cf76ed67cb5"3534 when the `confidence_levels` is provided3535 is expected to contain exactly "d4204681-934f-5f74-9471-b363260089af"3536 when the `report_types` is provided3537 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f", "a1aae794-0983-58e2-aec2-bf2a83f933e8", and "ec2b1191-ab36-52d7-af4a-33fb20dd72b4"3538 when the `scope` is provided as `all`3539 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f", "a1aae794-0983-58e2-aec2-bf2a83f933e8", "ec2b1191-ab36-52d7-af4a-33fb20dd72b4", "c5b3652d-3746-5c1c-a85f-54fd1516794e", "970ffdb1-7836-57d8-91d9-c88110b4d4c1", "c39d408c-292c-56c3-bfb2-96b575596c10", "db8052e2-c4cf-59c7-8d16-6cf76ed67cb5", and "d4204681-934f-5f74-9471-b363260089af"3540 when the `scanner` is provided3541 is expected to contain exactly "c5b3652d-3746-5c1c-a85f-54fd1516794e", "970ffdb1-7836-57d8-91d9-c88110b4d4c1", "c39d408c-292c-56c3-bfb2-96b575596c10", "db8052e2-c4cf-59c7-8d16-6cf76ed67cb5", and "d4204681-934f-5f74-9471-b363260089af"3542 when the `state` is provided3543 is expected to eq ["99509157-5ed7-5938-916f-45abbfc4445f"]3544 when there is a retried build3545 is expected to contain exactly "99509157-5ed7-5938-916f-45abbfc4445f", "a1aae794-0983-58e2-aec2-bf2a83f933e8", and "ec2b1191-ab36-52d7-af4a-33fb20dd72b4"3546 when a build has more than one security report artifacts3547 is expected to contain exactly "7490ceeb-05ec-5cfc-a6bf-e80dc6fcbb92"3548 when a vulnerability already exist for a security finding3549 the vulnerability is included in results3550 is expected to eq #<Vulnerability id:31 [vulnerability:namespace1120/project-1260/31]>3551 when the `security_findings` records have `overridden_uuid`s3552 is expected to contain exactly "c5b3652d-3746-5c1c-a85f-54fd1516794e", "970ffdb1-7836-57d8-91d9-c88110b4d4c1", "c39d408c-292c-56c3-bfb2-96b575596c10", "db8052e2-c4cf-59c7-8d16-6cf76ed67cb5", "d4204681-934f-5f74-9471-b363260089af", "4242d411-06bf-452e-bd50-7ac8dd40262b", "1fb7cbaa-bfc9-41a6-a9cc-11e9d464cd9c", and "91f279fd-8708-4655-a5a0-594e0877bf37"3553 #vulnerability_flags3554 with no vulnerability flags present3555 does not have any vulnerability flag3556 with some vulnerability flags present3557 has some vulnerability_findings with vulnerability flag3558 does not have any vulnerability_flag if license is not available3559MergeRequests::ComplianceViolation3560 Associations3561 is expected to belong to violating_user required: false3562 is expected to belong to merge_request required: false3563 Validations3564 is expected to validate that :violating_user cannot be empty/falsy3565 is expected to validate that :merge_request cannot be empty/falsy3566 is expected to validate that :reason cannot be empty/falsy3567 is expected to validate that :severity_level cannot be empty/falsy3568 when a violation exists with the same reason and user for a merge request3569 does not create a duplicate merge request violation3570 Enums3571 is expected to define :reason as an enum backed by an integer with values ‹{approved_by_merge_request_author: 0, approved_by_committer: 1, approved_by_insufficient_users: 2}›3572 is expected to define :severity_level as an enum backed by an integer with values ‹{info: 0, low: 1, medium: 2, high: 3, critical: 4}›3573 #by_approved_by_committer3574 returns the correct collection of violations3575 #by_group3576 returns the correct collection of violations3577 #by_projects3578 returns the correct collection of violations3579 #merged_before3580 returns the correct collection of violations3581 #merged_after3582 returns the correct collection of violations3583 #order_by_reason3584 direction: "ASC", result: lazy { [violations[0], violations[1]] }3585 returns the correct collection of violations3586 direction: "DESC", result: lazy { [violations[1], violations[0]] }3587 returns the correct collection of violations3588 #order_by_severity_level3589 direction: "ASC", result: lazy { [violations[0], violations[1]] }3590 returns the correct collection of violations3591 direction: "DESC", result: lazy { [violations[1], violations[0]] }3592 returns the correct collection of violations3593 #order_by_merge_request_title3594 direction: "ASC", result: lazy { [violations[0], violations[1]] }3595 returns the correct collection of violations3596 direction: "DESC", result: lazy { [violations[1], violations[0]] }3597 returns the correct collection of violations3598 #order_by_merged_at3599 direction: "ASC", result: lazy { [violations[0], violations[1]] }3600 returns the correct collection of violations3601 direction: "DESC", result: lazy { [violations[1], violations[0]] }3602 returns the correct collection of violations3603 #by_target_branch3604 returns the correct collection of violations3605 .process_merge_request3606 loops through each violation class3607Ci::BuildPolicy3608 #update_build?3609 behaves like protected environments access3610 when Protected Environments feature is not available in the project3611 access_level: :guest, result: false3612 is expected to eq false3613 access_level: :reporter, result: false3614 is expected to eq false3615 access_level: :developer, result: true3616 is expected to eq true3617 access_level: :maintainer, result: true3618 is expected to eq true3619 access_level: :admin, result: true3620 is expected to eq true3621 when Protected Environments feature is available in the project3622 when environment is protected with project-level protection3623 behaves like authorize correctly per access type3624 when user does not have access to the environment3625 access_level: :guest, result: false3626 is expected to eq false3627 access_level: :reporter, result: false3628 is expected to eq false3629 access_level: :developer, result: false3630 is expected to eq false3631 access_level: :maintainer, result: false3632 is expected to eq false3633 access_level: :admin, result: true3634 is expected to eq true3635 when user has access to the environment3636 access_level: :reporter, result: true3637 is expected to eq true3638 access_level: :developer, result: true3639 is expected to eq true3640 access_level: :maintainer, result: true3641 is expected to eq true3642 access_level: :admin, result: true3643 is expected to eq true3644 when the user has access via a group3645 is expected to eq true3646 when environment is protected with group-level protection3647 behaves like authorize correctly per access type3648 when user does not have access to the environment3649 access_level: :guest, result: false3650 is expected to eq false3651 access_level: :reporter, result: false3652 is expected to eq false3653 access_level: :developer, result: false3654 is expected to eq false3655 access_level: :maintainer, result: false3656 is expected to eq false3657 access_level: :admin, result: true3658 is expected to eq true3659 when user has access to the environment3660 access_level: :reporter, result: true3661 is expected to eq true3662 access_level: :developer, result: true3663 is expected to eq true3664 access_level: :maintainer, result: true3665 is expected to eq true3666 access_level: :admin, result: true3667 is expected to eq true3668 when the user has access via a group3669 is expected to eq true3670 when environment is not protected3671 access_level: :guest, result: false3672 is expected to eq false3673 access_level: :reporter, result: false3674 is expected to eq false3675 access_level: :developer, result: true3676 is expected to eq true3677 access_level: :maintainer, result: true3678 is expected to eq true3679 access_level: :admin, result: true3680 is expected to eq true3681Resolvers::Geo::PipelineArtifactRegistriesResolver3682 behaves like a Geo registries resolver3683 #resolve3684 when the parent object is the current node3685 when the user has permission to view Geo data3686 when admin mode is enabled3687 when the ids argument is null3688 returns registries, in order3689 when the ids argument is present3690 returns the requested registries, in order3691 when the replication_state argument is present3692 returns registries with requested replication state, in order3693 with verification enabled3694 when the verification_state argument is present3695 returns registries with requested verification state, in order3696 with verification disabled3697 when the verification_state argument is present3698 raises ArgumentError (PENDING: Skipping because verification is enabled for Ci::PipelineArtifact)3699 when admin mode is disabled3700 returns nothing3701 when the user does not have permission to view Geo data3702 returns nothing3703 when the parent object is not the current node3704 when the user has permission to view Geo data3705 returns nothing, because we can't query other nodes' tracking databases3706Groups::SyncService3707 #execute3708 adds two new group member records3709 adds the user to top_level_group as Guest3710 adds the user to group1 as Developer3711 returns a success response3712 returns sync stats as payload3713 when the user is already a member3714 with the correct access level3715 does not change group member count3716 retains the correct access level3717 does not call Group find_by_id3718 with a different access level3719 when the user is not the last owner3720 does not change the group member count3721 updates the access_level3722 returns sync stats as payload3723 when the user is the last owner3724 does not change the group member count3725 does not update the access_level3726 returns sync stats as payload3727 when a group has no group links3728 when manage_group_ids is present3729 behaves like removes the member3730 reduces group member count by 13731 removes the matching user3732 returns sync stats as payload3733 in a group that is not managed3734 behaves like retains the member3735 does not change the group member count3736 retains the correct access level3737 when no groups are managed3738 behaves like retains the member3739 does not change the group member count3740 retains the correct access level3741 when the user has an access request3742 accepts the access request successfully3743Geo::PruneEventLogWorker3744 #perform3745 current node secondary3746 does nothing3747 current node primary3748 does nothing when database is not feeling healthy3749 does checks if it should prune3750 deletes also associated event table rows3751 delegates pruning to Geo::PruneEventLogService3752 no Geo secondary nodes3753 deletes everything from the Geo event log3754 no Geo primary node3755 deletes everything from the Geo event log3756 multiple secondary nodes3757 aborts when there is a node without status3758 aborts when there is an unhealthy node3759 aborts when there is a node with an old status3760 aborts when there is a node with a healthy status without timestamp3761 takes the integer-minimum value of all cursor_last_event_ids3762 #log_error3763 calls the Geo logger3764ProjectStatistics3765 # order random3766 #cost_factored_storage_size3767 when there is no cost factor for forks3768 plan: :free_plan, fork_visibility: :public3769 equals the storage size3770 plan: :free_plan, fork_visibility: :internal3771 equals the storage size3772 plan: :free_plan, fork_visibility: :private3773 equals the storage size3774 plan: :premium_plan, fork_visibility: :public3775 equals the storage size3776 plan: :premium_plan, fork_visibility: :internal3777 equals the storage size3778 plan: :premium_plan, fork_visibility: :private3779 equals the storage size3780 plan: :ultimate_plan, fork_visibility: :public3781 equals the storage size3782 plan: :ultimate_plan, fork_visibility: :internal3783 equals the storage size3784 plan: :ultimate_plan, fork_visibility: :private3785 equals the storage size3786 when there is a cost factor for forks3787 returns the storage size if the fork namespace is free and the fork is private3788 returns the storage size with the cost factor applied for a fork in a subgroup3789 returns the storage size if the project is not a fork3790 rounds to the nearest integer3791 plan: :free_plan, fork_visibility: :public3792 returns the storage size with the cost factor applied3793 plan: :free_plan, fork_visibility: :internal3794 returns the storage size with the cost factor applied3795 plan: :premium_plan, fork_visibility: :public3796 returns the storage size with the cost factor applied3797 plan: :premium_plan, fork_visibility: :internal3798 returns the storage size with the cost factor applied3799 plan: :premium_plan, fork_visibility: :private3800 returns the storage size with the cost factor applied3801 plan: :ultimate_plan, fork_visibility: :public3802 returns the storage size with the cost factor applied3803 plan: :ultimate_plan, fork_visibility: :internal3804 returns the storage size with the cost factor applied3805 plan: :ultimate_plan, fork_visibility: :private3806 returns the storage size with the cost factor applied3807 #update_storage_size3808 when should_check_namespace_plan? returns true3809 sums the relevant storage counters without uploads_size3810 when should_check_namespace_plan? returns false3811 sums the relevant storage counters along with uploads_size3812Gitlab::Elastic::DocumentReference3813 .build3814 builds a document for an issue3815 builds a document for a project3816 .serialize3817 does nothing to a string3818 serializes a DocumentReference3819 defers to serialize_record for ApplicationRecord instances3820 defers to serialize_array for Array instances3821 fails to serialize an unrecognised value3822 .serialize_record3823 serializes an issue3824 serializes a project3825 .serialize_array3826 serializes a project array3827 serializes an issue array3828 fails to serialize a too-small array3829 fails to serialize a too-large array3830 .deserialize3831 deserializes an issue string3832 deserializes a project string3833 when a pipe delimiter is used3834 deserializes string correctly3835 #initialize3836 creates an issue reference3837 creates a project reference3838 #==3839 is equal to itself3840 is equal to another ref when all elements match3841 is not equal unless the other instance class matches3842 is not equal unless db_id matches3843 is not equal unless es_id matches3844 is not equal unless es_parent matches3845 #klass_name3846 is expected to eq "Issue"3847 #database_record3848 returns an issue3849 returns a project3850 returns nil if the record cannot be found3851 raises if the class is bad3852 #serialize3853 serializes an issue3854 serializes a project3855 ::Collection3856 contains a collection of DocumentReference3857 #preload_database_records3858 preloads database records to avoid N+1 queries3859 batches database records to avoid sql timeouts3860Event3861 #visible_to_user?3862 scopes3863 .for_projects_after3864 returns events for specified projects created after selected time3865 vulnerability event3866 on public project3867 for standard users3868 is visible only to authorized users3869 for admin in admin mode3870 is visible to admin3871 on private project3872 for standard users3873 is visible only to authorized users3874 for admin in admin mode3875 is visible to admin3876 vulnerability note event3877 on public project3878 for standard users3879 is visible only to authorized users3880 for admin in admin mode3881 is visible to admin3882 on private project3883 for standard users3884 is visible only to authorized users3885 for admin in admin mode3886 is visible to admin3887 epic event3888 on public group3889 behaves like visible to everybody3890 is visible to other users3891 on private group3892 behaves like visible to group members only3893 is not visible to other users3894 when admin mode enabled3895 is visible to admin3896 when admin mode disabled3897 is not visible to admin3898 epic note event3899 on public group3900 behaves like visible to everybody3901 is visible to other users3902 private group3903 behaves like visible to group members only3904 is not visible to other users3905 when admin mode enabled3906 is visible to admin3907 when admin mode disabled3908 is not visible to admin3909 #set_last_repository_updated_at3910 always updates the project_repository_state record3911Resolvers::Geo::ContainerRepositoryRegistriesResolver3912 # order random3913 behaves like a Geo registries resolver3914 #resolve3915 when the parent object is the current node3916 when the user has permission to view Geo data3917 when admin mode is enabled3918 when the ids argument is null3919 returns registries, in order3920 when the ids argument is present3921 returns the requested registries, in order3922 when the replication_state argument is present3923 returns registries with requested replication state, in order3924 with verification enabled3925 when the verification_state argument is present3926 returns registries with requested verification state, in order (PENDING: Skipping because verification is not enabled for ContainerRepository)3927 with verification disabled3928 when the verification_state argument is present3929 raises ArgumentError3930 when admin mode is disabled3931 returns nothing3932 when the user does not have permission to view Geo data3933 returns nothing3934 when the parent object is not the current node3935 when the user has permission to view Geo data3936 returns nothing, because we can't query other nodes' tracking databases3937ReindexUsers3938 # order random3939 behaves like a deprecated Advanced Search migration3940 #migrate3941 logs a message and halts the migration3942 #completed?3943 returns false3944 #obsolete?3945 returns true3946Sidebars::Groups::Menus::AnalyticsMenu3947 #link3948 returns link to the value stream page3949 when Value Stream is not visible3950 returns link to the the first visible menu item3951 Menu items3952 CI/CD3953 is expected not to be nil3954 when licensed feature :group_ci_cd_analytics is disabled3955 is expected to be nil3956 when the user does not have access3957 is expected to be nil3958 Devops adoptions3959 is expected not to be nil3960 when the user does not have access3961 is expected to be nil3962 Repository3963 is expected not to be nil3964 when licensed feature :group_coverage_reports is disabled3965 is expected to be nil3966 when licensed feature :group_repository_analytics is disabled3967 is expected to be nil3968 when the user does not have access3969 is expected to be nil3970 Contribution analytics3971 is expected not to be nil3972 when licensed feature :group_coverage_reports is disabled3973 is expected to be nil3974 when the user does not have access3975 is not available3976 Insights3977 is expected not to be nil3978 when insights are not available3979 is expected to be nil3980 Issue analytics3981 is expected not to be nil3982 when licensed feature :issues_analytics is disabled3983 is expected to be nil3984 Productivity analytics3985 is expected not to be nil3986 when licensed feature :productivity_analytics is disabled3987 is expected to be nil3988 when the user does not have access3989 is expected to be nil3990 Value Stream3991 is expected not to be nil3992 when licensed feature :cycle_analytics_for_groups is disabled3993 is expected to be nil3994 when the user does not have access3995 is expected to be nil3996 Dashboards3997 is expected not to be nil3998 when licensed feature :group_level_analytics_dashboard is disabled3999 is expected to be nil4000 when the user does not have access4001 is expected to be nil4002 Dashboards analytics4003 is expected not to be nil4004 with different user access levels4005 access_level: nil, has_menu_item: false4006 when the user is not allowed to view the menu item4007 is expected to be nil4008 access_level: :reporter, has_menu_item: true4009 when the user is allowed to view the menu item4010 is expected not to be nil4011 access_level: :developer, has_menu_item: true4012 when the user is allowed to view the menu item4013 is expected not to be nil4014 access_level: :maintainer, has_menu_item: true4015 when the user is allowed to view the menu item4016 is expected not to be nil4017 when the license does not support the feature4018 is expected to be nil4019 when the dashboards analytics feature is disabled4020 is expected to be nil4021Security::VulnerabilityReadsFinder4022 when not given a second argument4023 does not filter the vulnerability list4024 when filtered by report type4025 only returns vulnerabilities matching the given report types4026 when filtered by severity4027 only returns vulnerabilities matching the given severities4028 when filtered by state4029 only returns vulnerabilities matching the given states4030 when filtered by scanner external ID4031 only returns vulnerabilities matching the given scanner IDs4032 when filtered by scanner_id4033 only returns vulnerabilities matching the given scanner IDs4034 when filtered by project4035 only returns vulnerabilities matching the given projects4036 when sorted4037 when sort method is not given4038 is expected to eq [#<Vulnerabilities::Read id: 41, vulnerability_id: 37, project_id: 1405, scanner_id: 53, report_type:...il, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 5081, dismissal_reason: nil>]4039 ascending by severity4040 is expected to eq [#<Vulnerabilities::Read id: 40, vulnerability_id: 36, project_id: 1405, scanner_id: 52, report_type:...il, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 5081, dismissal_reason: nil>]4041 descending by severity4042 is expected to eq [#<Vulnerabilities::Read id: 41, vulnerability_id: 37, project_id: 1405, scanner_id: 53, report_type:...il, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 5081, dismissal_reason: nil>]4043 ascending by detected_at4044 is expected to eq [#<Vulnerabilities::Read id: 40, vulnerability_id: 36, project_id: 1405, scanner_id: 52, report_type:...il, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 5081, dismissal_reason: nil>]4045 descending by detected_at4046 is expected to eq [#<Vulnerabilities::Read id: 42, vulnerability_id: 38, project_id: 1405, scanner_id: 54, report_type:...il, cluster_agent_id: nil, casted_cluster_agent_id: nil, namespace_id: 5081, dismissal_reason: nil>]4047 when filtered by has_issues argument4048 when has_issues is set to true4049 only returns vulnerabilities that have issues4050 when has_issues is set to false4051 only returns vulnerabilities that does not have issues4052 when filtered by has_resolution argument4053 when has_resolution is set to true4054 only returns vulnerabilities that have resolution4055 when has_resolution is set to false4056 only returns vulnerabilities that do not have resolution4057 when filtered by more than one property4058 only returns vulnerabilities matching all of the given filters4059 when filtered by image4060 only returns vulnerabilities matching the given image4061 when different report_type is passed4062 returns an empty relation4063 when vulnerable is InstanceSecurityDashboard4064 does not include cluster vulnerability4065 when filtered by cluster_agent_id4066 only returns vulnerabilities matching the given agent_id4067 when different report_type is passed4068 returns empty list4069 use of unnested filters4070 when the given vulnerable is a project4071 calls `use_unnested_filters` on relation4072 when the given vulnerable is a group4073 calls `use_unnested_filters` on relation4074 when the given vulnerable is an instance security dashboard4075 does not call `use_unnested_filters` on relation4076AuditEvents::Strategies::ExternalDestinationStrategy4077 # order random4078 #destinations4079 raises NotImplementedError4080 #execute4081 when allowed to stream4082 when a destination exists4083 makes one HTTP call4084 sends the correct verification header4085 adds event type only when audit operation is present4086 and id is always passed in request body4087 sends correct id in request body4088 when audit event type is tracked for count4089 tracks the event count and makes http call4090 when audit event type is not tracked for count4091 does not track the event count and makes http call4092 behaves like streams audit events to external destination4093 makes one HTTP call4094 sends the correct verification header4095 adds event type only when audit operation is present4096 and id is always passed in request body4097 sends correct id in request body4098 when audit event type is tracked for count4099 tracks the event count and makes http call4100 when audit event type is not tracked for count4101 does not track the event count and makes http call4102 when any of Gitlab::HTTP::HTTP_ERRORS is raised4103 with Net::OpenTimeout4104 does not logs the error4105 with Net::ReadTimeout4106 does not logs the error4107 with Net::WriteTimeout4108 does not logs the error4109 with Gitlab::HTTP::ReadTotalTimeout4110 does not logs the error4111 with EOFError4112 does not logs the error4113 with SocketError4114 does not logs the error4115 with OpenSSL::SSL::SSLError4116 does not logs the error4117 with OpenSSL::OpenSSLError4118 does not logs the error4119 with Errno::ECONNRESET4120 does not logs the error4121 with Errno::ECONNREFUSED4122 does not logs the error4123 with Errno::EHOSTUNREACH4124 does not logs the error4125 with Errno::ENETUNREACH4126 does not logs the error4127 with Gitlab::HTTP::BlockedUrlError4128 does not logs the error4129 with Gitlab::HTTP::RedirectionTooDeep4130 does not logs the error4131 with Net::HTTPBadResponse4132 does not logs the error4133 when URI::InvalidURIError exception is raised4134 logs the error4135 when multiple destinations exist4136 makes the correct number of HTTP calls4137 when no destination exist4138 makes no HTTP calls4139 when not allowed to stream4140 when a destination exists4141 makes no HTTP calls4142 #streamable?4143 raises NotImplementedError4144Ci::SubscribeBridgeService4145 #execute4146 when the upstream project exists4147 when the upstream project has a pipeline4148 when the user has permissions4149 populates the pipeline project source4150 persists the bridge4151 when the pipeline already finished4152 mirrors the pipeline status to the bridge job instantly4153 when the user does not have permissions4154 drops the bridge4155 when the upstream project does not have a pipeline4156 skips the bridge4157 when the upstream project does not exist4158 drops the bridge4159Boards::Issues::CreateService4160 #execute4161 saved board configuration4162 adds the board assignee, weight, labels and milestone to the issue4163 when board is scoped by weight4164 creates issue weight 0 weight4165 creates issue with nil weight4166 when board weight is invalid4167 creates issue with nil weight4168 assignees list4169 assigns the issue to the List assignee4170 milestone list4171 assigns the issue to the list milestone4172Ci::Minutes::ProjectMonthlyUsage4173 unique index4174 raises unique index violation4175 does not raise exception if unique index is not violated4176 .find_or_create_current4177 when project usage does not exist4178 behaves like creates usage record4179 creates new record and resets minutes consumption4180 when project usage exists for previous months4181 behaves like creates usage record4182 creates new record and resets minutes consumption4183 when project usage exists for the current month4184 returns the existing usage4185 when a usage for another project exists for the current month4186 behaves like creates usage record4187 creates new record and resets minutes consumption4188 #increase_usage4189 behaves like CI minutes increase usage4190 when amount is greater than 04191 updates the current month usage4192 when amount is less or equal to 04193 does not update the current month usage4194 when shared_runners_duration is incremented4195 when duration is positive4196 updates the duration and amount used4197 when amount_used is zero4198 updates only the duration4199 when duration is zero4200 updates only the amount used4201 when amount_used is zero4202 does not perform updates4203 .for_namespace_monthly_usage4204 fetches project monthly usages matching the namespace monthly usage's date and namespace4205 does not join across databases4206 fetches project monthly usages with more than 0 minutes used4207 fetches project monthly usages sorted by amount used in descending order4208 fetches project monthly usages in namespace and descendants4209 loose foreign key on ci_project_monthly_usages.project_id4210 behaves like cleanup by a loose foreign key4211 cleans up (delete or nullify) the model4212Llm::GenerateSummaryService4213 # order random4214 #perform4215 for an issue4216 behaves like issuable without notes4217 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4218 with notes4219 behaves like ensures feature flags and license4220 without the license available4221 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4222 without the general feature flag enabled4223 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4224 behaves like ensures user membership4225 without membership4226 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4227 behaves like completion worker sync and async4228 worker runs asynchronously4229 caches request4230 when running synchronously4231 worker runs synchronously4232 when a special reset message is used4233 only stores the message in cache4234 for a work item4235 behaves like issuable without notes4236 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4237 with notes4238 behaves like ensures feature flags and license4239 without the license available4240 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4241 without the general feature flag enabled4242 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4243 behaves like ensures user membership4244 without membership4245 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4246 behaves like completion worker sync and async4247 worker runs asynchronously4248 caches request4249 when running synchronously4250 worker runs synchronously4251 when a special reset message is used4252 only stores the message in cache4253 for an epic4254 behaves like issuable without notes4255 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4256 with notes4257 behaves like ensures feature flags and license4258 without the license available4259 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4260 without the general feature flag enabled4261 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4262 behaves like ensures user membership4263 without membership4264 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4265 behaves like completion worker sync and async4266 worker runs asynchronously4267 caches request4268 when running synchronously4269 worker runs synchronously4270 when a special reset message is used4271 only stores the message in cache4272Analytics::CycleAnalytics::DataLoaderService4273 validations4274 when wrong model is passed4275 returns service error response4276 when license is missing4277 returns service error response4278 when sub-group is given4279 returns service error response4280 data loading into stage tables4281 loads nothing for Issue model4282 loads nothing for MergeRequest model4283 when MergeRequest data is present4284 inserts stage records4285 inserts nothing for group outside of the hierarchy4286 when all records are processed4287 finishes with model_processed reason4288 when MAX_UPSERT_COUNT is reached4289 finishes with limit_reached reason4290 when runtime limit is reached4291 finishes with limit_reached reason4292 when cursor is given4293 continues processing the records from the cursor4294 when Issue data is present4295 inserts stage records4296Mutations::Issues::SetEpic4297 #resolve4298 behaves like permission level for issue mutation is correctly verified4299 when the user is not a project member4300 behaves like when the user does not have access to the resource4301 raises an error4302 even if assigned to the issue4303 does not modify issue4304 even if author of the issue4305 does not modify issue4306 when the user is a project member4307 with guest role4308 behaves like when the user does not have access to the resource4309 raises an error4310 even if assigned to the issue4311 does not modify issue4312 even if author of the issue4313 does not modify issue4314 when the user can update the issue4315 when user can read epic4316 returns the issue with the epic4317 returns errors if issue could not be updated4318 when passing epic_id as nil4319 removes the epic4320 does not do anything if the issue already does not have a epic4321 when epic is confidential but issue is public4322 returns an error with appropriate message4323 with assigning epic error4324 returns an error with appropriate message4325 when user can not read epic4326 raises an error4327Security::ScanResultPoliciesFinder4328 # order random4329 behaves like scan policies finder4330 #execute4331 when execute is not implemented in the subclass4332 raises NotImplementedError4333 when feature is not licensed4334 returns empty collection4335 when feature is licensed4336 when configuration is associated to project4337 returns policies with project4338 when configuration is associated to namespace4339 when relationship argument is not provided4340 returns no policies4341 when relationship argument is provided as INHERITED4342 returns scan policies for groups only4343 when configuration is associated to project and namespace4344 when relationship argument is not provided4345 returns scan policies for project only4346 when relationship argument is provided as INHERITED4347 returns policies defined for both project and namespace4348 when relationship argument is provided as INHERITED_ONLY4349 returns policies defined for namespace only4350 when user is unauthorized4351 returns empty collection4352Geo::DependencyProxyBlobRegistryFinder4353 # order random4354 behaves like a framework registry finder4355 #execute4356 when user cannot read all Geo4357 is expected to be empty4358 when user can read all Geo4359 when admin mode is disabled4360 is expected to be empty4361 when admin mode is enabled4362 with an ids param4363 returns specified registries4364 with an ids param empty4365 returns all registries4366 with a replication_state param4367 returns registries with requested replication state4368 with a replication_state param empty4369 returns all registries4370 with verification enabled4371 with a verification_state param4372 returns registries with requested verification state4373 with a verification_state param empty4374 returns all registries4375 with verification disabled4376 with a verification_state param4377 raises ArgumentError (PENDING: Skipping because verification is enabled for DependencyProxy::Blob)4378 with a verification_state param empty4379 raises ArgumentError (PENDING: Skipping because verification is enabled for DependencyProxy::Blob)4380 when search method is not implemented in the registry model4381 raises ArgumentError4382 when search method is implemented in the registry model4383 returns a registry filtered by keyword (PENDING: Skipping because search method is not implemented4384 for DependencyProxy::Blob or searchable attributes are not defined.)4385 with no params4386 returns all registries4387Mutations::Issues::Update4388 behaves like updating health status4389 when the user has permission4390 and issuable_heath_status feature is disabled4391 does not update health status4392 and issuable_health_status feature is enabled4393 updates health status4394 updating parent epic4395 when epics feature is disabled4396 raises an error4397 when epics feature is enabled4398 for user without permissions4399 raises an error4400 for user with correct permissions4401 when a valid epic is given4402 updates the epic4403 returns the updated issue4404 when nil epic is given4405 set the epic to nil4406 returns the updated issue4407Ci::CreatePipelineService4408 when the feature is not licensed4409 behaves like it does not expand the dast variables4410 does not include the profile variables4411 when the feature is licensed4412 when the stage is dast4413 persists dast_configuration in build options4414 expands the dast variables4415 when the user has permission4416 expands the secret dast variables4417 when the site profile does not exist4418 behaves like a missing profile4419 communicates failure4420 when the scanner profile does not exist4421 behaves like a missing profile4422 communicates failure4423 when there is an unexpected system error4424 handles the error4425 when the stage is not dast4426 behaves like it does not expand the dast variables4427 does not include the profile variables4428 behaves like pipelines are created without N+1 SQL queries4429 avoids N+1 queries4430 behaves like pipelines are created without N+1 SQL queries4431 avoids N+1 queries4432VulnerabilityIssueLinks::DeleteService4433 with an authorized user with proper permissions4434 with valid params4435 deletes the specified vulnerability-issue link4436 when security dashboard feature is disabled4437 raises an "access denied" error4438 permissions4439 is expected to be allowed for :owner4440 is expected to be allowed for :maintainer4441 is expected to be allowed for :developer4442 is expected to be denied for :auditor4443 is expected to be denied for :reporter4444 is expected to be denied for :guest4445 is expected to be denied for :anonymous4446 when admin mode is enabled4447 is expected to be allowed for :admin4448 when admin mode is disabled4449 is expected to be denied for :admin4450Projects::GitlabProjectsImportService4451 #execute4452 creates template export job4453 if project saved and custom template exists4454 sets custom template import strategy after export4455 does not create export job4456 if project not saved4457 behaves like gitlab projects import validations4458 with an invalid path4459 returns an invalid project4460 with a valid path4461 creates a project4462 override params4463 stores them as import data when passed4464 when there is a project with the same path4465 does not create the project4466 when overwrite param is set4467 creates a project in a temporary full_path4468Gitlab::Auth::GroupSaml::IdentityLinker4469 linked identity exists4470 when the extern_uid matches4471 doesn't create new identity4472 sets #changed? to false4473 adds user to group4474 when the extern_uid does not match4475 updates the identity when the email address matches4476 does not update the identity when the email address does not match4477 when the extern_uid is already taken4478 fails and does not update the identity4479 identity needs to be created4480 with identity provider initiated request4481 attempting to link accounts raises an exception4482 with valid gitlab initiated request4483 creates linked identity4484 sets identity provider4485 sets saml provider4486 sets identity extern_uid4487 sets #changed? to true4488 adds user to group4489TemplateFinder4490 #execute4491 type: :dockerfiles, expected_template_finder: Gitlab::Template::CustomDockerfileTemplate4492 custom templates enabled4493 returns custom templates4494 a custom template is specified by name4495 returns the custom template if its name is specified4496 custom templates disabled4497 does not return any custom templates4498 type: :gitignores, expected_template_finder: Gitlab::Template::CustomGitignoreTemplate4499 custom templates enabled4500 returns custom templates4501 a custom template is specified by name4502 returns the custom template if its name is specified4503 custom templates disabled4504 does not return any custom templates4505 type: :gitlab_ci_ymls, expected_template_finder: Gitlab::Template::CustomGitlabCiYmlTemplate4506 custom templates enabled4507 returns custom templates4508 a custom template is specified by name4509 returns the custom template if its name is specified4510 custom templates disabled4511 does not return any custom templates4512 type: :issues, expected_template_finder: Gitlab::Template::IssueTemplate4513 custom templates enabled4514 returns custom templates4515 a custom template is specified by name4516 returns the custom template if its name is specified4517 custom templates disabled4518 does not return any custom templates4519 type: :merge_requests, expected_template_finder: Gitlab::Template::MergeRequestTemplate4520 custom templates enabled4521 returns custom templates4522 a custom template is specified by name4523 returns the custom template if its name is specified4524 custom templates disabled4525 does not return any custom templates4526 #template_names4527 type: :dockerfiles, custom_name: "project_dockerfiles_template"4528 when project has a repository4529 returns all custom templates4530 template names hash keys4531 has all the expected keys4532 type: :gitignores, custom_name: "project_gitignores_template"4533 when project has a repository4534 returns all custom templates4535 template names hash keys4536 has all the expected keys4537 type: :gitlab_ci_ymls, custom_name: "project_gitlab_ci_ymls_template"4538 when project has a repository4539 returns all custom templates4540 template names hash keys4541 has all the expected keys4542Backup::Repositories4543 #dump4544 calls enqueue for each repository type4545 avoids N+1 database queries4546 command failure4547 enqueue_group raises an error4548 group query raises an error4549 storages4550 calls enqueue for all repositories on the specified storage4551 #restore4552 calls enqueue for each repository type4553 storages4554 calls enqueue for all repositories on the specified storage4555 paths4556 calls enqueue for all descendant repositories on the specified group4557Gitlab::Ci::Parsers::Security::DependencyList4558 #parse!4559 with dependency_list artifact4560 parses all files4561 with dependency_scanning dependencies4562 does not causes N+1 query4563 merges vulnerability data4564 with newfound dependency4565 adds new dependency and vulnerability to the report4566 with container_scanning dependencies4567 adds new dependency and vulnerability to the report with modified path4568 with null dependencies4569 ignores null dependencies4570 #apply_licenses!4571 without indirect dependencies4572 with existing license4573 applies license to dependency4574 without existing license4575 does not apply any license if name mismatch4576 for multi license report with indirect dependency whose ancestor is invalid4577 applies license4578 and also includes a direct dependency4579 applies licenses4580DependencyEntity4581 #as_json4582 when all required features available4583 with developer4584 includes license info and vulnerabilities4585 does not include component_id4586 with reporter4587 includes license info and not vulnerabilities4588 with project4589 includes project name and full_path4590 includes component_id4591 when all required features are unavailable4592 does not include licenses and vulnerabilities4593 when there is no dependency path attributes4594 correctly represent location4595Geo::RepositoryVerificationSecondaryService4596 #execute4597 for a repository4598 does not calculate the checksum when not running on a secondary4599 does not verify the checksum if resync is needed4600 does not verify the checksum if primary was never verified4601 does not verify the checksum if the current checksum matches4602 sets checksum when the checksum matches4603 does not mark the verification as failed when there is no repo4604 when the checksum mismatch4605 keeps track of failures4606 ensures the next retry time is capped properly4607 when checksum calculation fails4608 keeps track of failures4609 ensures the next retry time is capped properly4610 for a wiki4611 with geo_project_wiki_repository_replication feature flag disabled4612 does not calculate the checksum when not running on a secondary4613 does not verify the checksum if resync is needed4614 does not verify the checksum if primary was never verified4615 does not verify the checksum if the current checksum matches4616 sets checksum when the checksum matches4617 does not mark the verification as failed when there is no repo4618 when the checksum mismatch4619 keeps track of failures4620 ensures the next retry time is capped properly4621 when checksum calculation fails4622 keeps track of failures4623 ensures the next retry time is capped properly4624 with geo_project_wiki_repository_replication feature flag enabled4625 does not calculate the wiki checksum4626RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator4627 # order random4628 .calculate_actual_state4629 with cases parameterized from shared fixtures4630 previous_actual_state: "CreationRequested", current_actual_state: "Starting", workspace_exists: nil4631 calculates correct actual state4632 previous_actual_state: "Starting", current_actual_state: "Starting", workspace_exists: false4633 calculates correct actual state4634 previous_actual_state: "Starting", current_actual_state: "Running", workspace_exists: false4635 calculates correct actual state4636 previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: false4637 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: false)4638 previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: false4639 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: false)4640 previous_actual_state: "Running", current_actual_state: "Failed", workspace_exists: nil4641 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Running, current_actual_state: Failed, workspace_exists: )4642 previous_actual_state: "Running", current_actual_state: "Stopping", workspace_exists: nil4643 calculates correct actual state4644 previous_actual_state: "Stopping", current_actual_state: "Stopped", workspace_exists: nil4645 calculates correct actual state4646 previous_actual_state: "Stopping", current_actual_state: "Failed", workspace_exists: nil4647 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Stopping, current_actual_state: Failed, workspace_exists: )4648 previous_actual_state: "Stopped", current_actual_state: "Starting", workspace_exists: nil4649 calculates correct actual state4650 previous_actual_state: "Stopped", current_actual_state: "Failed", workspace_exists: nil4651 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Stopped, current_actual_state: Failed, workspace_exists: )4652 previous_actual_state: "Starting", current_actual_state: "Starting", workspace_exists: true4653 calculates correct actual state4654 previous_actual_state: "Starting", current_actual_state: "Running", workspace_exists: true4655 calculates correct actual state4656 previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: true4657 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: true)4658 previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: true4659 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: true)4660 previous_actual_state: "Failed", current_actual_state: "Stopping", workspace_exists: nil4661 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Stopping, workspace_exists: )4662 previous_actual_state: nil, current_actual_state: "Failed", workspace_exists: nil4663 calculates correct actual state (PENDING: TODO: Properly implement the agent info status fixture for previous_actual_state: , current_actual_state: Failed, workspace_exists: )4664 when the deployment is completed successfully4665 when new workspace has been created or existing workspace has been scaled up4666 returns the expected actual state4667 when existing workspace has been scaled down4668 returns the expected actual state4669 when status does not contain required information4670 returns the expected actual state4671 when the deployment is in progress4672 when new workspace has been created4673 returns the expected actual state4674 when existing workspace has been updated4675 returns the expected actual state4676 when existing workspace has been scaled up4677 returns the expected actual state4678 when existing workspace has been scaled down4679 returns the expected actual state4680 when spec replicas is more than 14681 returns the expected actual state4682 when status does not contain required information4683 returns the expected actual state4684 when the deployment is failed4685 when new workspace has been created or existing workspace has been scaled up4686 returns the expected actual state4687 when existing scaled down workspace which was failing has been scaled up4688 returns the expected actual state (PENDING: This currently returns STARTING state. See related TODOs in the relevant code.)4689 when the deployment status is unknown4690 when spec is missing4691 returns the expected actual state4692 when spec replicas is missing4693 returns the expected actual state4694 when status is missing4695 returns the expected actual state4696 when status conditions is missing4697 returns the expected actual state4698 when status conditions reason is missing4699 returns the expected actual state4700 when status progressing and available conditions are unrecognized4701 returns the expected actual state4702 when termination_progress is Terminating4703 returns the expected actual state4704 when termination_progress is Terminated4705 returns the expected actual state4706RequirementsManagement::ProcessTestReportsService4707 #execute4708 when requirements feature is available4709 when there are no requirements in the project4710 does not create any test report4711 when there are requirements4712 when user is not allowed to create requirements test reports4713 raises an exception4714 when user can create requirements test reports4715 when using artifact with work items iids4716 creates new test report for each open requirement4717 does not create test report for the same pipeline and user twice4718 when there is also a report with legacy requirements iids4719 ignores legacy requirement iids report4720 when using artifact with legacy requirement iids4721 creates new test report for each open requirement4722 does not create test report for the same pipeline and user twice4723 when build does not contain any requirements report4724 does not create any test report4725 when requirements feature is not available4726 does not create any test report4727EE::ResourceEvents::SyntheticIterationNotesBuilderService4728 #execute4729 builds notes for existing resource iteration events4730 behaves like filters by paginated notes4731 only returns given notes4732 when paginated notes is empty4733 does not return any notes4734Llm::FillInMergeRequestTemplateService4735 # order random4736 #perform4737 behaves like completion worker sync and async4738 worker runs asynchronously4739 caches request4740 when running synchronously4741 worker runs synchronously4742 when a special reset message is used4743 only stores the message in cache4744 when user is not member of project group4745 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4746 when general feature flag is disabled4747 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4748 when resource is not a project4749 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4750 when user has no ability to fill_in_merge_request_template4751 is expected to be error and have attributes {:message => (eq "AI features are not enabled or resource is not permitted to be sent.")}4752Analytics::DevopsAdoption::EnabledNamespace4753 associations4754 is expected to have many snapshots4755 is expected to belong to namespace required: false4756 is expected to belong to display_namespace required: false4757 validation4758 is expected to validate that :namespace cannot be empty/falsy4759 is expected to validate that :namespace is case-sensitively unique within the scope of :display_namespace_id4760 .ordered_by_name4761 orders enabled_namespaces by namespace name4762 .for_namespaces4763 selects enabled_namespaces for given namespaces only4764 .for_display_namespaces4765 selects enabled_namespaces for given namespaces only4766 .for_parent4767 selects enabled_namespaces for given namespace only4768 .latest_snapshot4769 loads the latest snapshot4770 .pending_calculation4771 returns all namespaces without finalized snapshot for previous month4772Types::Geo::RegistrableType4773 # order random4774 .resolve_type4775 when resolving a supported registry type4776 registry_class: Geo::CiSecureFileRegistry (call 'Geo::CiSecureFileRegistry.connection' to establish a connection), registry_type: Types::Geo::CiSecureFileRegistryType, registry_factory: :geo_ci_secure_file_registry4777 resolves to a Geo registry type4778 registry_class: Geo::ContainerRepositoryRegistry (call 'Geo::ContainerRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ContainerRepositoryRegistryType, registry_factory: :geo_container_repository_registry4779 resolves to a Geo registry type4780 registry_class: Geo::DependencyProxyBlobRegistry (call 'Geo::DependencyProxyBlobRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyBlobRegistryType, registry_factory: :geo_dependency_proxy_blob_registry4781 resolves to a Geo registry type4782 registry_class: Geo::DependencyProxyManifestRegistry (call 'Geo::DependencyProxyManifestRegistry.connection' to establish a connection), registry_type: Types::Geo::DependencyProxyManifestRegistryType, registry_factory: :geo_dependency_proxy_manifest_registry4783 resolves to a Geo registry type4784 registry_class: Geo::DesignManagementRepositoryRegistry (call 'Geo::DesignManagementRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::DesignManagementRepositoryRegistryType, registry_factory: :geo_design_management_repository_registry4785 resolves to a Geo registry type4786 registry_class: Geo::JobArtifactRegistry (call 'Geo::JobArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::JobArtifactRegistryType, registry_factory: :geo_job_artifact_registry4787 resolves to a Geo registry type4788 registry_class: Geo::LfsObjectRegistry (call 'Geo::LfsObjectRegistry.connection' to establish a connection), registry_type: Types::Geo::LfsObjectRegistryType, registry_factory: :geo_lfs_object_registry4789 resolves to a Geo registry type4790 registry_class: Geo::MergeRequestDiffRegistry (call 'Geo::MergeRequestDiffRegistry.connection' to establish a connection), registry_type: Types::Geo::MergeRequestDiffRegistryType, registry_factory: :geo_merge_request_diff_registry4791 resolves to a Geo registry type4792 registry_class: Geo::PackageFileRegistry (call 'Geo::PackageFileRegistry.connection' to establish a connection), registry_type: Types::Geo::PackageFileRegistryType, registry_factory: :geo_package_file_registry4793 resolves to a Geo registry type4794 registry_class: Geo::PagesDeploymentRegistry (call 'Geo::PagesDeploymentRegistry.connection' to establish a connection), registry_type: Types::Geo::PagesDeploymentRegistryType, registry_factory: :geo_pages_deployment_registry4795 resolves to a Geo registry type4796 registry_class: Geo::PipelineArtifactRegistry (call 'Geo::PipelineArtifactRegistry.connection' to establish a connection), registry_type: Types::Geo::PipelineArtifactRegistryType, registry_factory: :geo_pipeline_artifact_registry4797 resolves to a Geo registry type4798 registry_class: Geo::ProjectWikiRepositoryRegistry (call 'Geo::ProjectWikiRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::ProjectWikiRepositoryRegistryType, registry_factory: :geo_project_wiki_repository_registry4799 resolves to a Geo registry type4800 registry_class: Geo::SnippetRepositoryRegistry (call 'Geo::SnippetRepositoryRegistry.connection' to establish a connection), registry_type: Types::Geo::SnippetRepositoryRegistryType, registry_factory: :geo_snippet_repository_registry4801 resolves to a Geo registry type4802 registry_class: Geo::TerraformStateVersionRegistry (call 'Geo::TerraformStateVersionRegistry.connection' to establish a connection), registry_type: Types::Geo::TerraformStateVersionRegistryType, registry_factory: :geo_terraform_state_version_registry4803 resolves to a Geo registry type4804 registry_class: Geo::UploadRegistry (call 'Geo::UploadRegistry.connection' to establish a connection), registry_type: Types::Geo::UploadRegistryType, registry_factory: :geo_upload_registry4805 resolves to a Geo registry type4806 when resolving an unsupported registry type4807 raises a TypeNotSupportedError for string object4808 raises a TypeNotSupportedError for nil object4809 raises a TypeNotSupportedError for other registry type4810Security::MergeRequestSecurityReportGenerationService4811 # order random4812 #execute4813 when the given report type is invalid4814 raises InvalidReportTypeError4815 when the given report type is valid4816 report_type: "sast", mr_report_method: :compare_sast_reports4817 when the report status is `parsing`4818 returns the report4819 when the report status is `parsed`4820 returns all the fields along with the calculated state of the findings4821 report_type: "secret_detection", mr_report_method: :compare_secret_detection_reports4822 when the report status is `parsing`4823 returns the report4824 when the report status is `parsed`4825 returns all the fields along with the calculated state of the findings4826 report_type: "container_scanning", mr_report_method: :compare_container_scanning_reports4827 when the report status is `parsing`4828 returns the report4829 when the report status is `parsed`4830 returns all the fields along with the calculated state of the findings4831 report_type: "dependency_scanning", mr_report_method: :compare_dependency_scanning_reports4832 when the report status is `parsing`4833 returns the report4834 when the report status is `parsed`4835 returns all the fields along with the calculated state of the findings4836 report_type: "dast", mr_report_method: :compare_dast_reports4837 when the report status is `parsing`4838 returns the report4839 when the report status is `parsed`4840 returns all the fields along with the calculated state of the findings4841 report_type: "coverage_fuzzing", mr_report_method: :compare_coverage_fuzzing_reports4842 when the report status is `parsing`4843 returns the report4844 when the report status is `parsed`4845 returns all the fields along with the calculated state of the findings4846 report_type: "api_fuzzing", mr_report_method: :compare_api_fuzzing_reports4847 when the report status is `parsing`4848 returns the report4849 when the report status is `parsed`4850 returns all the fields along with the calculated state of the findings4851Resolvers::ProductAnalytics::StateResolver4852 # order random4853 #resolve4854 when user has developer access4855 when disabled4856 returns disabled4857 when create_instance4858 returns create_instance4859 when loading_instance4860 returns loading_instance4861 when waiting_for_events4862 returns waiting_for_events4863 when complete4864 returns complete4865 when snowplow is disabled4866 returns complete4867 when error is raised by Cube4868 raises error in GraphQL output4869 when Cube DB does not exist4870 returns waiting_for_events state4871 when user has guest access4872 in any state4873 returns nil4874PackageMetadata::DataObject4875 # order random4876 ==4877 when all attributes are equal4878 is expected to eq true4879 when an attribute is not equal4880 and it is name4881 and the purl_type is not pypi4882 is expected to eq false4883 and the purl_type is pypi4884 is expected to eq false4885 and it is version4886 is expected to eq false4887 and it is license4888 is expected to eq false4889 and it is purl_type4890 is expected to eq false4891 .create4892 when arr is well-formed4893 is expected to eq #<PackageMetadata::DataObject:0x00007e9e8baf5b38 @name="foo", @version="v1.0.0", @license="MIT", @purl_type="npm">4894 when arr is not well-formed4895 with less than 3 fields4896 is expected to eq nil4897 warns about the error4898 and field is longer than expected4899 and it is package name4900 is expected to eq 2554901 and it is package version4902 is expected to eq 2554903 and it is license4904 is expected to eq 504905DependencyListEntity4906 behaves like report list4907 #as_json4908 with success build4909 with provided items4910 has array of items with status ok4911 with no items4912 has empty array of items with status no_items4913 with failed build4914 with authorized user4915 has job_path with status failed_job4916 without authorized user4917 has only status failed_job4918 with no build4919 has status job_not_set_up and no job_path4920 without an associated project4921 returns a no_items status4922 with items are present4923 returns a ok status4924Types::Ci::PipelineType4925 is expected to eq "Pipeline"4926 includes the ee specific fields4927 security_report_finding4928 when no security findings exist for the pipeline4929 returns null4930 when security findings exist for the pipeline4931 when the specified security finding is not found for the pipeline4932 returns null4933 when the security finding is found4934 returns the security finding4935AllowedEmailDomain4936 relations4937 is expected to belong to group required: false4938 .domain_names4939 returns the array of domain names4940 validations4941 is expected to validate that :domain cannot be empty/falsy4942 is expected to validate that :group_id cannot be empty/falsy4943 #valid domain4944 valid domain4945 succeeds4946 invalid domain4947 fails4948 domain from excluded list4949 fails4950 #allow_root_group_only4951 top-level group4952 succeeds4953 subgroup4954 fails4955 #email_matches_domain?4956 with matching domain4957 returns true4958 with not matching domain4959 returns false4960 #email_domain4961 returns formatted domain4962StatusPage::IncidentCommentEntity4963 # order random4964 exposes JSON fields4965 field #note4966 behaves like reference links for status page4967 with public project4968 with public issue4969 shows link anchor with HTML data attributes4970 with confidential issue4971 redacts link anchor and HTML data attributes4972 with private project4973 with public issue4974 redacts link anchor and HTML data attributes4975 mentions4976 with username4977 anonymizes mention4978 with arbitrary username4979 shows the mention4980 with @all4981 when `disable_all_mention` FF is disabled4982 anonymizes mention4983 when `disable_all_mention` FF is enabled4984 shows the mention text4985 with groups4986 group_visibility: :public4987 anonymizes mention4988 group_visibility: :internal4989 anonymizes mention4990 group_visibility: :private4991 anonymizes mention4992 behaves like img upload tags for status page4993 converts to html4994embedding database documentation4995 # order random4996 for tables4997 for each object4998 has a metadata file4999 has a valid metadata file5000 has a valid metadata file with allowed fields5001 has a valid metadata file without missing fields5002 for views5003 for each object5004 has a metadata file5005 has a valid metadata file5006 has a valid metadata file with allowed fields5007 has a valid metadata file without missing fields5008geo database documentation5009 # order random5010 for tables5011 for each object5012 has a metadata file5013 has a valid metadata file5014 has a valid metadata file with allowed fields5015 has a valid metadata file without missing fields5016 for views5017 for each object5018 has a metadata file5019 has a valid metadata file5020 has a valid metadata file with allowed fields5021 has a valid metadata file without missing fields5022Issues::ReopenService5023 # order random5024 #execute5025 when project bot it logs audit events5026 when licensed5027 does not log audit event if operation fails5028 does not log audit event if operation results in no change5029 when operation succeeds5030 logs an audit event5031 logs the audit event info5032 calls the audit method with the event type5033 when not licensed5034 does not log audit event5035Security::StoreGroupedScansService5036 .execute5037 delegates the call to an instance of `Security::StoreGroupedScansService`5038 #execute5039 when there is a parsing error5040nil versions are discouraged and will be deprecated in Rubygems 45041 does not propagate the error to the caller5042 tracks the error5043 when there is no error5044 schema validation5045 when there is only one report5046 accesses the validated security report5047 when there are more than one reports5048 accesses the validated security reports5049 when the artifacts are not dependency_scanning5050 and reports doesn't pass schema validation5051 calls the Security::StoreScanService with ordered artifacts5052 some of the reports don't pass schema validation5053 calls the Security::StoreScanService with correctly ordered artifacts5054 and report does pass schema validation5055 calls the Security::StoreScanService with ordered artifacts5056 when the artifacts are sast5057 calls the Security::StoreScanService with ordered artifacts5058 when the artifacts are dependency_scanning5059 calls the Security::StoreScanService with ordered artifacts5060MergeRequests::ReopenService5061 # order random5062 #execute5063 for audit events5064 when licensed5065 does not log audit event if operation fails5066 does not log audit event if operation results in no change5067 when operation succeeds5068 logs an audit event5069 logs the audit event info5070 calls the audit method with the event type5071 when not licensed5072 does not log audit event5073Gitlab::Llm::OpenAi::Options5074 # order random5075 #messages_chat5076 when all messages have valid roles5077 returns a hash with the expected keys5078 when some messages have invalid roles5079 raises an ArgumentError5080 #completions5081 returns a hash with the expected keys5082 #moderations5083 returns a hash with the expected keys5084 #chat5085 returns a hash with the expected keys5086 #embeddings5087 returns a hash with the expected keys5088 #edits5089 returns a hash with the expected keys5090ComplianceManagement::Frameworks::UpdateService5091 feature is unlicensed5092 behaves like a failed update request5093 does not update the compliance framework5094 is unsuccessful5095 current_user is not the namespace owner5096 behaves like a failed update request5097 does not update the compliance framework5098 is unsuccessful5099 when feature is licensed5100 with an invalid param passed5101 is unsuccessful5102 has appropriate errors5103 with valid params passed5104 updates the compliance framework with valid params5105 is successful5106 audits the changes5107 when default param is used5108 when true5109 updates the default compliance framework for the namespace5110 when false5111 does not update the default framework for the namespace when default framework is not set5112 removes the default framework for the namespace5113BulkImports::Common::Pipelines::WikiPipeline5114 #run5115 behaves like wiki pipeline imports a wiki for an entity5116 #run5117 when wiki exists5118 imports new wiki into destination project5119 when wiki does not exist5120 does not import wiki5121 when scheme is blocked5122 prevents import5123 when wiki is disabled5124 unsuccessful response5125 when response is forbidden5126 does not raise an error5127 when response is not found5128 does not raise an error5129 when response is not 4035130 marks tracker as failed5131QualityManagement::TestCases::CreateService5132 #execute5133 when test has title and description5134 responds with success5135 creates an test case issue5136 created issue has correct attributes5137 when test case has no title5138 does not create an issue5139 responds with errors5140 result payload contains an Issue object5141EE::SubscribableBannerHelper5142 #renew_subscription_path5143 does not raise error if available project is not persisted5144 does not raise error if entity is not available5145 #gitlab_subscription_or_license5146 when instance variable true5147 when should_check_namespace_plan is true5148 when a project exists5149 behaves like when a subscription exists5150 returns a decorator5151 when a group exists5152 behaves like when a subscription exists5153 returns a decorator5154 when should_check_namespace_plan is false5155 returns the current license5156 when instance variable false5157 returns the current license5158 with a future dated license5159 returns the current license5160 #gitlab_subscription_message_or_license_message5161 when instance variable true5162 when should_check_namespace_plan is true5163 when a project is present5164 behaves like subscription message5165 calls Gitlab::ExpiringSubscriptionMessage and SubscriptionPresenter if is Gitlab.com?5166 when a group is present5167 behaves like subscription message5168 calls Gitlab::ExpiringSubscriptionMessage and SubscriptionPresenter if is Gitlab.com?5169 when should_check_namespace_plan is false5170 calls Gitlab::ExpiringSubscriptionMessage to get expiring message5171 when instance variable false5172 returns the license message5173 #display_subscription_banner!5174 sets @display_subscription_banner to true5175 #link_to_button_style5176 return correct link with path and track property5177Jira::JqlBuilderService5178 #execute5179 when no params5180 builds jql with default ordering5181 with special characters in project key5182 escapes quotes and backslashes5183 with search param5184 builds jql5185 search param with single qoutes5186 builds jql5187 search param with single double qoutes5188 builds jql5189 search param with special characters5190 builds jql5191 with labels param5192 builds jql5193 with status param5194 builds jql5195 with author_username param5196 builds jql5197 with assignee_username param5198 builds jql5199 with sort params5200 builds jql5201 with opened state param5202 builds jql5203 with closed state param5204 builds jql5205 with any other state param5206 builds jql5207 with vulnerability_ids params5208 builds jql5209 with issue_ids params5210 builds jql5211Llm::CompletionWorker5212 # order random5213 behaves like worker with data consistency5214 .get_data_consistency_feature_flag_enabled?5215 returns true5216 .get_data_consistency5217 returns correct data consistency5218 #perform5219 with valid parameters5220 for an issue5221 behaves like performs successfully5222 calls Gitlab::Llm::CompletionsFactory5223 for a work item5224 behaves like performs successfully5225 calls Gitlab::Llm::CompletionsFactory5226 for a merge request5227 behaves like performs successfully5228 calls Gitlab::Llm::CompletionsFactory5229 for an epic5230 behaves like performs successfully5231 calls Gitlab::Llm::CompletionsFactory5232 when resource is nil5233 behaves like performs successfully5234 calls Gitlab::Llm::CompletionsFactory5235 with invalid parameters5236 when issue type is not supported5237 raises a NameError5238 when user can not read the resource5239 does not call Gitlab::Llm::CompletionsFactory.completion5240Gitlab::Ci::YamlProcessor5241 Bridge Needs5242 needs upstream pipeline5243 creates jobs with valid specification5244 needs both job and pipeline5245 creates jobs with valid specification5246 needs cross projects artifacts5247 creates jobs with valid specification5248 needs cross projects artifacts and pipelines5249 returns errors5250 with invalid needs cross projects artifacts5251 returns errors5252 cross pipeline needs5253 when job is not present5254 returns an error5255 with cross project and cross pipeline needs5256 returns a valid specification5257 dast configuration5258 creates a job with a valid specification5259 secrets5260 hashicorp vault5261 returns secrets info5262 azure key vault5263 returns secrets info5264UserPermissions::ExportService5265 access5266 when user is an admin5267 when licensed5268 behaves like allowed to export user permissions5269 is expected to be success5270 when not licensed5271 behaves like not allowed to export user permissions5272 is expected not to be success5273 when user is not an admin5274 when licensed5275 behaves like not allowed to export user permissions5276 is expected not to be success5277 when not licensed5278 behaves like not allowed to export user permissions5279 is expected not to be success5280 data verification5281 includes the appropriate headers5282 Username5283 Email5284 Type5285 Path5286 Access Level5287 Last Activity5288 when user is member of a sub group5289 displays attributes correctly5290 when user is member of a project5291 displays attributes correctly5292UserAnalyticsEntity5293 has all the user attributes5294 fetches push events for the user from the request5295 fetches issues_created events for the user from the request5296 fetches issues_closed events for the user from the request5297 fetches merge_requests_created events for the user from the request5298 fetches merge_requests_merged events for the user from the request5299 fetches merge_requests_approved events for the user from the request5300 fetches total_events events for the user from the request5301 sets 0 as the total when there were no events for a type5302Geo::Scheduler::PerShardSchedulerWorker5303 includes ApplicationWorker5304 includes CronjobQueue5305 includes Gitlab::Utils::StrongMemoize5306 includes Gitlab::Geo::LogHelpers5307 instance methods5308 #schedule_job5309 raises a NotImplementedError exception5310 #ready_shards5311 returns an array of ready shards5312 #healthy_ready_shards5313 returns an array of healthy shard names5314 logs unhealthy shards5315 #healthy_shard_names5316 returns an array of healthy shard names5317AppSec::Dast::Profiles::BuildConfigService5318 #execute5319 includes all profiles in the payload5320 behaves like a fetch operation5321 when licensed5322 when the profile exists5323 includes the profile in the payload5324 when the profile is not provided5325 does not include the profile in the payload5326 when the profile does not exist5327 behaves like an error occurred5328 communicates failure5329 when the profile cannot be read5330 behaves like an error occurred5331 communicates failure5332 when the user cannot create dast scans5333 behaves like an error occurred5334 communicates failure5335 when not licensed5336 behaves like an error occurred5337 communicates failure5338 behaves like a fetch operation5339 when licensed5340 when the profile exists5341 includes the profile in the payload5342 when the profile is not provided5343 does not include the profile in the payload5344 when the profile does not exist5345 behaves like an error occurred5346 communicates failure5347 when the profile cannot be read5348 behaves like an error occurred5349 communicates failure5350 when the user cannot create dast scans5351 behaves like an error occurred5352 communicates failure5353 when not licensed5354 behaves like an error occurred5355 communicates failure5356Geo::VerificationWorker5357 #perform5358 calls verify5359 when on a primary node5360 behaves like an idempotent worker5361 is labeled as idempotent5362 performs multiple times sequentially without raising an exception5363 calculates the checksum5364projects/edit5365 prompt user about registration features5366 with no license and service ping disabled5367 behaves like renders registration features prompt5368 renders a placeholder input with registration features message5369 behaves like renders registration features settings link5370 as regular user5371 does not render settings link5372 as admin5373 renders settings link5374 with a valid license and service ping disabled5375 behaves like does not render registration features prompt5376 does not render a placeholder input with registration features message5377EnvironmentsHelper5378 #environment_logs_data5379 returns environment parameters data5380 returns parameters for forming the pod logs API URL5381 #deployment_approval_data5382 provides data for a deployment approval5383 #show_deployment_approval?5384 can read deployment5385 returns true5386 cannot read deployment5387 returns false5388 #can_approve_deployment?5389 when environment has a unified approval setting5390 user has access5391 with required approvals count = 05392 returns false5393 with required approvals count > 05394 returns true5395 user does not have access5396 returns false5397 when environment has multiple approval rules5398 user has access5399 returns true5400 user does not have access5401 with no matching approval rules5402 returns false5403 when cannot read deployment5404 returns false5405DastScannerProfilePolicy5406 behaves like a dast on-demand scan policy5407 dast on-demand policies5408 when a user does not have access to the project5409 is expected to be disallowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5410 when the user is a guest5411 is expected to be disallowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5412 when the user is a reporter5413 is expected to be disallowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5414 when the user is a developer5415 is expected to be allowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5416 when the user is a maintainer5417 is expected to be allowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5418 when the user is an owner5419 is expected to be allowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5420 when the user is an auditor5421 is expected to be disallowed :create_on_demand_dast_scan and :edit_on_demand_dast_scan5422 is expected to be allowed :read_on_demand_dast_scan5423 when the user is allowed5424 when on demand scan licensed feature is not available5425 is expected to be disallowed :create_on_demand_dast_scan, :edit_on_demand_dast_scan, and :read_on_demand_dast_scan5426EE::Gitlab::Scim::FilterParser5427 #operator5428 is extracted from the filter5429 #valid?5430 succeeds when the operator is supported5431 fails with unsupported operators5432 fails when the attribute path is unsupported5433 #params5434 returns a mapping to filter on5435 returns an empty hash when invalid5436Projects::GroupLinks::UpdateService5437 audit events5438 sends the audit streaming event5439 when only expires_at is updated5440 sends the audit streaming event5441 when expires_at is already same5442 does not send audit streaming event5443 when only access_level is updated5444 sends the audit streaming event5445 when access_level is already same5446 does not send audit streaming event5447Gitlab::SidekiqConfig5448 .workers5449 includes EE workers5450 .worker_queues5451 includes EE queues5452 .expand_queues5453 expands queue namespaces to concrete queue names5454 lets concrete queue names pass through5455 lets unknown queues pass through5456 .workers_for_all_queues_yml5457 returns a tuple with EE workers second5458 .all_queues_yml_outdated?5459 returns true if the YAML file does not match the application code5460 returns false if the YAML file matches the application code5461PackageMetadata::CompressedPackageDataObject5462 # order random5463 .spdx_identifiers5464 sorts licenses and removes duplicates5465 does not mutate default_licenses5466 ==5467 when all attributes are equal5468 is expected to eq true5469 when names do not match5470 and they are different5471 is expected to eq false5472 and their case is different5473 and not pypi5474 is expected to eq false5475 and pypi5476 is expected to eq true5477 when default_licenses does not match5478 is expected to eq false5479 when lowest_version does not match5480 is expected to eq false5481 when highest_version does not match5482 is expected to eq false5483 when other_licenses does not match5484 is expected to eq false5485 .create5486 when hash is well-formed5487 is expected to eq #<PackageMetadata::CompressedPackageDataObject:0x00007e9ea7bbf778 @purl_type="npm", @name="xpp3/xpp3"...s"=>["1.1.2a", "1.1.2a_min", "1.1.3.3", "1.1.3.3_min", "1.1.3.4.O", "1.1.3.4-RC3", "1.1.3.4-RC8"]}]>5488 when hash is missing attribute5489 and it is name5490 is expected to raise ArgumentError5491 and it is default_licenses5492 is expected to raise ArgumentError5493 and it is not madantory5494 is expected not to raise Exception5495AlertManagement::ProcessPrometheusAlertService5496 #execute5497 when alert payload is valid5498 behaves like does not create or delete any escalations5499 is expected to not change `IncidentManagement::PendingEscalations::Alert.count` and not change `IncidentManagement::PendingEscalations::Issue.count`5500 with escalation policies feature enabled5501 is expected to receive perform_async(a kind of Integer) 1 time5502 with an existing alert5503 behaves like does not create or delete any escalations5504 is expected to not change `IncidentManagement::PendingEscalations::Alert.count` and not change `IncidentManagement::PendingEscalations::Issue.count`5505 with resolving payload5506 is expected to change `target.pending_escalations.reload.count` from 1 to 05507 with HTTP integration provided5508 ignores the custom mapping5509 with custom mappings feature enabled5510 respects the custom mapping5511Elastic::NamespaceUpdateWorker5512 # order random5513 when elasticsearch indexing is enabled5514 for users5515 for a project5516 does not call Elastic::ProcessBookkeepingService.track!5517 when the project has a member5518 calls Elastic::ProcessBookkeepingService.track! for the user5519 for a group5520 does not call Elastic::ProcessBookkeepingService.track!5521 when the group has a member5522 calls Elastic::ProcessBookkeepingService.track! for the user5523 when the group has a subgroup with a member5524 calls Elastic::ProcessBookkeepingService.track! for the user5525 when the group has a parent with a member5526 does not call Elastic::ProcessBookkeepingService.track!5527 for epics5528 calls Elastic::ProcessBookkeepingService.maintain_indexed_group_associations! if the namespace is a group5529 does not call maintain_indexed_group_associations! if the namespace is not a group5530IncidentManagement::PendingEscalations::ScheduleCheckCronWorker5531 # order random5532 #perform5533 schedules a job for each processable escalation5534UsersSecurityDashboardProject5535 associations5536 is expected to belong to project required: false5537 is expected to belong to user required: false5538 validations5539 is expected to validate that :user cannot be empty/falsy5540 is expected to validate that :project cannot be empty/falsy5541 is expected to validate that :project_id is case-sensitively unique within the scope of :user_id5542 when validating the number of projects a user can add to their dashboard5543 limits the number of projects per user5544 allows a user to add a project if they are under the limit5545 .delete_by_project_id5546 deletes all entries for the given project ID5547 when there is no record with the given project ID5548 fails silently5549DescriptionVersion5550 associations5551 is expected to belong to epic required: false5552 validations5553 is valid when epic_id is set5554 #previous_version5555 returns the previous version for the same issuable5556 #delete!5557 expires issuable etag cache5558 when start_id is not present5559 only delayed deletes description_version5560 when start_id is present5561 delayed deletes description versions of same issuable up to start_id5562BilledUsersFinder5563 #execute5564 without members5565 returns an empty object5566 with members5567 when a search parameter is provided5568 when a sorting parameter is provided (eg name descending)5569 sorts results accordingly5570 when a sorting parameter is not provided5571 sorts expected results in name_asc order5572 when a search parameter is not present5573 returns expected users in name asc order when a sorting is not provided either5574 and when a sorting parameter is provided (eg name descending)5575 sorts results accordingly5576 with billable group members including shared members5577 returns a hash of users and user ids5578 returns the correct user ids5579EE::API::Entities::Scim::Conflict5580 contains the schemas5581 contains the detail5582 contains the status5583Geo::CacheInvalidationEventStore5584 #initialize5585 when the key is a String5586 does not modify the key5587 when the key is an Array5588 expands the key5589 #create5590 behaves like a Geo event store5591 when running on a secondary node5592 does not create an event5593 when running on a primary node5594 does not create an event if there are no secondary nodes5595 creates an event5596 when file subject is not on local store5597 creates an event (PENDING: No file subject defined, skipping)5598 when running on a primary node5599 tracks the cache key that should be invalidated5600 logs an error message when event creation fail5601Mutations::IncidentManagement::OncallSchedule::Destroy5602 # order random5603 is expected to require graphql authorizations :admin_incident_management_oncall_schedule5604 #resolve5605 user has access to project5606 when OncallSchedules::DestroyService responds with success5607 returns the on-call schedule with no errors5608 when OncallSchedules::DestroyService responds with an error5609 returns errors5610 when resource is not accessible to the user5611 raises an error5612Geo::RepositoryDeletedEventStore5613 #create!5614 behaves like a Geo event store5615 when running on a secondary node5616 does not create an event5617 when running on a primary node5618 does not create an event if there are no secondary nodes5619 creates an event5620 when file subject is not on local store5621 creates an event (PENDING: No file subject defined, skipping)5622 when running on a primary node5623 tracks information for the deleted project5624Vulnerabilities::MarkDroppedAsResolvedWorker5625 # order random5626 #perform5627 is labeled as idempotent5628 performs multiple times sequentially without raising an exception5629 changes state of Vulnerabilities to resolved5630 creates state transition entry with note for each vulnerability5631Types::Dast::PreScanVerificationStepType5632 # order random5633 is expected to eq "DastPreScanVerificationStep"5634 is expected to require graphql authorizations :read_on_demand_dast_scan5635 is expected to have graphql fields :name, :check_type, :errors, and :success5636 errors field5637 correctly resolves the field5638 success field5639 correctly resolves the field5640 check_type field5641 correctly resolves the field5642DesignManagement::DeleteDesignsService5643 #execute5644 when service is successful5645 calls repository#log_geo_updated_event5646 when service errors5647 does not call repository#log_geo_updated_event5648Search::Elasticsearchable5649 # order random5650 #global_elasticsearchable_scope?5651 is false5652 when scope is users5653 is true5654 #use_elasticsearch?5655 is false5656 when search_using_elasticsearch setting is enabled5657 when basic_search param is passed in5658 is false5659 when scope is epics5660 is false5661 when scope is notes5662 is true5663 when scope is users5664 returns true5665EE::Ci::PipelineEditorHelper5666 #js_pipeline_editor_data5667 passes down EE only properties5668 with api_fuzzing enabled5669 behaves like api fuzzing only5670 includes keys for only api fuzzing5671 with ai ci config chat enabled5672 when user can create a pipeline5673 includes ai_config_chat key only5674 when the user cannot create a pipeline5675 behaves like no licensed features keys5676 returns dataset with no licensed features keys5677 with ai ci config chat and api_fuzzing enabled5678 when user can create a pipeline5679 includes keys for all features5680 when user cannot create a pipeline5681 behaves like api fuzzing only5682 includes keys for only api fuzzing5683 without features licensed and enabled5684 when user can create a pipeline5685 behaves like no licensed features keys5686 returns dataset with no licensed features keys5687 when user cannot create a pipeline5688 behaves like no licensed features keys5689 returns dataset with no licensed features keys5690Gitlab::Llm::Completions::Chat5691 # order random5692 #execute5693 when resource is an issue5694 behaves like success5695 calls the ZeroShot Agent with the right parameters5696 when resource is a user5697 behaves like success5698 calls the ZeroShot Agent with the right parameters5699 when resource is nil5700 behaves like success5701 calls the ZeroShot Agent with the right parameters5702Feature5703 .register_feature_groups5704 registers expected groups5705 .enabled?5706 with gitlab_team_members feature group5707 delegates check to Gitlab::Com.gitlab_com_group_member?5708 .enable5709 when running on a Geo primary node5710 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes5711 creates a Geo::CacheInvalidationEvent5712 .disable5713 when running on a Geo primary node5714 does not create a Geo::CacheInvalidationEvent if there are no Geo secondary nodes5715 creates a Geo::CacheInvalidationEvent5716 Feature::Target5717 #targets5718 when repository target works with group wiki5719 returns all found targets5720Gitlab::Usage::Metrics::Instrumentations::CountUsersDeploymentApprovals5721 behaves like a correct instrumented metric value and query5722 behaves like a correct instrumented metric value5723 has correct value5724 behaves like a correct instrumented metric query5725 has correct generate query5726Gitlab::Llm::VertexAi::Completions::SummarizeSubmittedReview5727 # order random5728 #execute5729 when the chat client returns a successful response5730 stores the content from the AI response5731 when the chat client returns an unsuccessful response5732 does not store the content5733Security::TrainingProviders::KontraUrlFinder5734 #calculate_reactive_cache5735 when response is nil5736 returns nil5737 when response is not nil5738 returns content url hash5739 when external_type is not present in allowed list5740 returns nil5741 #full_url5742 when external_type is present in allowed list5743 returns full url path5744 when identifier contains CWE-{number} format5745 returns full url path with proper mapping key5746 when a language is provided5747 returns full url path with the language parameter mapped5748 #allowed_identifier_list5749 returns allowed identifiers5750ProtectedEnvironments::DestroyService#execute5751 when the Protected Environment is deleted5752 is expected to be truthy5753 deletes the requested ProtectedEnvironment5754 deletes the related DeployAccessLevel5755 stores and logs the audit event5756 when the Protected Environment can not be deleted5757 is expected to be falsy5758 does not store or log the audit event5759VulnerabilityIssueLinks::BulkCreateService5760 # order random5761 with an authorized user with proper permissions5762 with valid params5763 creates Vulnerabilities::IssueLink objects5764 if the issue links already exist5765 doesn't fail5766 doesn't create new IssueLinks5767 with missing vulnerabilities5768 doesn't create vulnerabilities::IssueLink objects5769 responds with an error5770 with missing issue5771 doesn't create vulnerabilities::IssueLink objects5772 responds with an error5773Boards::UsersFinder5774 #execute5775 when parent is a project5776 requests correct relations5777 finds ProjectMembers with MemberFinder5778 when parent is a group5779 requests correct relations5780 finds GroupMembers with GroupMemberFinder5781BasePolicy5782 read cross project5783 when an external authorization service is enabled5784 allows auditors5785 read all resources5786 allows auditors5787 admin all resources5788 forbids auditors5789MergeRequests::ProcessApprovalAutoMergeWorker5790 # order random5791 behaves like subscribes to event5792 consumes the published event5793 calls AutoMergeService5794 behaves like an idempotent worker5795 is labeled as idempotent5796 performs multiple times sequentially without raising an exception5797 when the merge request does not exist5798 logs and does not call AutoMergeService5799 when feature flag "merge_when_checks_pass" is disabled5800 doesn't call AutoMergeService5801Types::Geo::ContainerRepositoryRegistryType5802 # order random5803 has the expected fields (other than those included in RegistryType)5804 behaves like a Geo registry type5805 is expected to require graphql authorizations :read_geo_registry5806 has the expected fields5807Milestones::DestroyService5808 #execute5809 with an existing merge request5810 manually queues MergeRequests::SyncCodeOwnerApprovalRulesWorker jobs5811Mutations::Todos::Create5812 with epics as target5813 behaves like create todo mutation5814 when user does not have permission to create todo5815 raises error5816 when user has permission to create todo5817 creates a todo5818Audit::GroupMergeRequestApprovalSettingChangesAuditor5819 when group_merge_request_approval_setting is created5820 creates audit events5821 when group_merge_request_approval_setting is updated5822 creates an audit event5823 passes correct event type to auditor5824 creates an audit event5825 passes correct event type to auditor5826 creates an audit event5827 passes correct event type to auditor5828 creates an audit event5829 passes correct event type to auditor5830 creates an audit event5831 passes correct event type to auditor5832IncidentManagement::OncallRotations::DestroyService5833 # order random5834 #execute5835 successfully deletes and returns the rotation5836 when the current_user is anonymous5837 behaves like error response5838 has an informative message5839 when the current_user does not have permissions to remove on-call rotations5840 behaves like error response5841 has an informative message5842 when feature is not available5843 behaves like error response5844 has an informative message5845 when an error occurs during removal5846 behaves like error response5847 has an informative message5848Vulnerabilities::MergeRequestLinkEntity5849 # order random5850 #as_json5851 when the request is not nil5852 when the user is available5853 behaves like required fields5854 are present5855 when the user can not read MR5856 does not contain merge_request_path5857 when the user can read MR5858 contains merge_request_path5859 when the user is not available5860 does not contain merge_request_path5861 behaves like required fields5862 are present5863 when the request is nil5864 does not contain merge_request_path5865 behaves like required fields5866 are present5867Projects::Security::DastConfigurationHelper5868 #dast_configuration_data5869 with yml_config_data5870 when service does not return dast profile and scanner profile5871 is expected to eq {:full_path=>"namespace1543/project-1687", :gitlab_ci_yaml_edit_path=>"/namespace1543/project-1687/-/..._library_path=>"/namespace1543/project-1687/-/security/configuration/profile_library#site-profiles"}5872 when service returns dast profile and scanner profile5873 is expected to eq {:full_path=>"namespace1543/project-1687", :gitlab_ci_yaml_edit_path=>"/namespace1543/project-1687/-/..._library_path=>"/namespace1543/project-1687/-/security/configuration/profile_library#site-profiles"}5874 with pipeline_data5875 when pipeline data is present5876 when scanner is enabled5877 is expected to eq {:dast_enabled=>true, :full_path=>"namespace1543/project-1687", :gitlab_ci_yaml_edit_path=>"/namespac..._library_path=>"/namespace1543/project-1687/-/security/configuration/profile_library#site-profiles"}5878 when scanner is not enabled5879 is expected to eq {:dast_enabled=>false, :full_path=>"namespace1543/project-1687", :gitlab_ci_yaml_edit_path=>"/namespa..._library_path=>"/namespace1543/project-1687/-/security/configuration/profile_library#site-profiles"}5880 when service returns an error5881 is expected to eq {:full_path=>"namespace1543/project-1687", :gitlab_ci_yaml_edit_path=>"/namespace1543/project-1687/-/..._library_path=>"/namespace1543/project-1687/-/security/configuration/profile_library#site-profiles"}5882ProtectedBranch::PushAccessLevel5883 # order random5884 #check_access5885 when user is assigned5886 when current_user is the user5887 is expected to eq true5888 when current_user is another user5889 is expected to eq false5890 when group is assigned5891 when current_user is in the group5892 is expected to eq true5893 when current_user is not in the group5894 is expected to eq false5895StatusPage::PublishAttachmentsService5896 # order random5897 #execute5898 publishes file attachments5899 when not in markdown5900 publishes no images5901 when in markdown5902 publishes description images5903 when upload to storage throws an error5904 returns an error response5905 user notes uploads5906 publishes images5907 when exceeds upload limit5908 publishes no images5909 when all images are in s35910 publishes no images5911 when images are already in s35912 publishes only new images5913Projects::Security::DastProfilesHelper5914 #dast_profiles_list_data5915 returns proper data5916 #dast_scanner_profile_form_data5917 returns proper data5918 behaves like passes on-demand scan edit path when from_on_demand_scan_id param is present5919 returns edit path as on_demand_scan_form_path5920 #edit_dast_scanner_profile_form_data5921 returns proper data5922 behaves like passes on-demand scan edit path when from_on_demand_scan_id param is present5923 returns edit path as on_demand_scan_form_path5924 #dast_site_profile_form_data5925 returns proper data5926 behaves like passes on-demand scan edit path when from_on_demand_scan_id param is present5927 returns edit path as on_demand_scan_form_path5928 #edit_dast_site_profile_form_data5929 returns proper data5930 behaves like passes on-demand scan edit path when from_on_demand_scan_id param is present5931 returns edit path as on_demand_scan_form_path5932Gitlab::Insights::Reducers::BaseReducer5933 raises NotImplementedError5934 #issuable_type5935 with issues5936 returns :issue5937 with merge requests5938 returns :merge_request5939AddLabelIdsAndSchemaVersionToIssuesMapping5940 # order random5941 behaves like a deprecated Advanced Search migration5942 #migrate5943 logs a message and halts the migration5944 #completed?5945 returns false5946 #obsolete?5947 returns true5948Elastic::Latest::MergeRequestConfig5949 .settings5950 behaves like config settings return correct values5951 returns config5952 sets correct shard/replica settings5953 .mappings5954 returns config5955layouts/header/_current_user_dropdown5956 Buy Pipeline Minutes link in user dropdown5957 when pipeline minutes need bought without notification dot5958 has "Buy Pipeline minutes" link with correct data properties5959 when pipeline minutes need bought and there is a notification dot5960 has "Buy Pipeline minutes" link with correct text5961 when pipeline minutes need bought and notification dot has been acknowledged5962 has "Buy Pipeline minutes" link with correct text5963 when ci minutes do not need bought5964 has no "Buy Pipeline minutes" link5965Types::VulnerabilityLocation::CoverageFuzzingType5966 is expected to have graphql fields :vulnerable_class, :end_line, :file, :vulnerable_method, :start_line, :blob_path, :crash_type, :crash_address, and :stacktrace_snippet5967 is expected to eq "VulnerabilityLocationCoverageFuzzing"5968 checking field contents5969 checks the contents of the VulnerabilityLocationCoverageFuzzing fields5970Projects::DeregisterSuggestedReviewersProjectService5971 # order random5972 #execute5973 when the suggested reviewers is not available5974 behaves like an unavailable response5975 returns an error response without calling client5976 when the suggested reviewers is available5977 when the suggested reviewers is enabled5978 behaves like an unavailable response5979 returns an error response without calling client5980 when the suggested reviewers is not enabled5981 when project is not found5982 returns an error response5983 when suggested reviewers client fails5984 returns an error response5985 when suggested reviewers client succeeds5986 returns a success response5987PackageMetadata::Ingestion::Tasks::IngestPackages5988 # order random5989 #execute5990 when import data is new5991 adds the new records5992 updates the data map5993 when import data exists5994 does not add records5995 updates the data map5996 when normalizing names5997 with pypi packages5998 treats case variations as non unique5999 normalizes the original package name6000 with non-pypi packages6001 treats case variations as unique6002 keeps the original package names6003Groups::GroupLinks::DestroyService#execute6004 # order random6005 with a single link6006 sends an audit event6007 with multiple links6008 sends multiple audit events6009SystemNotes::EscalationsService6010 #notify_via_escalation6011 posts the correct text to the system note6012 behaves like a system note6013 has the correct attributes6014 #start_escalation6015 posts the correct text to the system note6016 behaves like a system note6017 has the correct attributes6018Types::VulnerabilityEvidenceType6019 is expected to eq "VulnerabilityEvidence"6020 is expected to have graphql fields :summary, :supporting_messages, :source, :request, and :response6021 checking field contents6022 checks the contents of the evidence.summary field6023SystemCheck::App::AdvancedSearchMigrationsCheck6024 # order random6025 #pending_migrations_count6026 with pending migrations6027 is expected to eq 16028 without pending migrations6029 is expected to eq 06030 #fail_info6031 when pending migration count is 16032 is expected to eq "no (You have 1 pending migration.)"6033 when pending migration count is greater than 16034 is expected to eq "no (You have 5 pending migrations.)"6035 .skip?6036 with elasticsearch disabled6037 returns true6038 with elasticsearch enabled6039 returns false6040 .show_error6041 returns the elasticsearch.md page6042 .check?6043 with pending migrations6044 returns false6045 without pending migrations6046 returns true6047Iterations::Cadences::CreateIterationsWorker6048 is labeled as idempotent6049 performs multiple times sequentially without raising an exception6050 #perform6051 when passing in nil cadence id6052 exits early6053 when passing in non-existent cadence id6054 exits early6055 when passing existent cadence id6056 invokes CreateIterationsInAdvanceService6057 when CreateIterationsInAdvanceService returns error6058 logs error6059EE::API::Entities::Scim::Users6060 contains the schemas6061 calculates the totalResults6062 contains the default itemsPerPage6063 contains the default startIndex6064 contains the user6065 contains the user ID6066 with configured values6067 contains the configured totalResults6068 contains the configured itemsPerPage6069 contains the configured startIndex6070Projects::OnDemandScansHelper6071 #on_demand_scans_data6072 returns proper data6073 #on_demand_scans_form_data6074 returns proper data6075Projects::DeployTokens::DestroyService6076 #execute6077 destroys a token record and it's associated DeployToken6078 creates an audit event6079 behaves like sends correct event type in audit event stream6080 sends correct event type in audit event stream6081Sbom::Source6082 enums6083 is expected to define :source_type as an enum backed by an integer with values ‹{dependency_scanning: 0, container_scanning: 1}›6084 validations6085 is expected to validate that :source_type cannot be empty/falsy6086 is expected to validate that :source cannot be empty/falsy6087 source validation6088 when source is valid6089 is expected to be valid6090 when optional attributes are missing6091 is expected to be valid6092 when input_file is missing6093 is expected to be invalid6094 when attributes have wrong type6095 is expected to be invalid6096 readers6097 #packager6098 is expected to eq "npm"6099 #input_file_path6100 is expected to eq "package-lock.json"6101PathLocks::LockService6102 locks path6103 raises exception if user has no permissions6104devise/sessions/new6105 ArkoseLabs challenge6106 when the :arkose_labs_login_challenge feature flag is enabled6107 renders the challenge container6108 passes the API key to the challenge container6109 passes the ArkoseLabs domain to the challenge container6110 when the :arkose_labs_login_challenge feature flag is disabled6111 does not render challenge container6112Elastic::Latest::ProjectInstanceProxy6113 when migrate_projects_to_separate_index migration is not completed6114 #as_indexed_json6115 serializes project as hash6116 when project_feature is null6117 sets all tracked feature access levels to PRIVATE6118 when migrate_projects_to_separate_index migration is completed6119 #as_indexed_json6120 serializes project as hash6121 contains the expected mappings6122EE::RepositoryCheck::SingleRepositoryWorker6123 Geo primary6124 saves results to main database6125 Geo secondary6126 saves results to Geo registry6127 creates Geo registry when not yet exists6128Geo::Batch::ProjectRegistryWorker6129 #perform6130 when operation is :reverify_repositories6131 flags repositories for reverify6132 when operation is :resync_repositories6133 flags repositories for resync6134 when informed operation is unknown/invalid6135 fails with ArgumentError6136EE::Gitlab::Scim::DeprovisioningService6137 # order random6138 #execute6139 when user is successfully removed6140 deactivates scim identity6141 blocks the user6142 returns the successful deprovision message6143Geo::VerificationTimeoutWorker6144 uses a Geo queue6145 perform6146 secondary node6147 fails timed out records on secondary6148 idempotent behaviour6149 is labeled as idempotent6150 performs multiple times sequentially without raising an exception6151 calls fail_verification_timeouts6152PathLocks::UnlockService6153 unlocks path6154 raises exception if user has no permissions6155Deployments::AutoRollbackWorker6156 #perform6157 executes the rollback service6158 when an environment does not exist6159 does not execute the rollback service6160Gitlab::Cache6161 .delete6162 calls Rails.cache.delete6163 calls .delete_on_geo_secondaries6164 .delete_on_geo_secondaries6165 without Geo6166 does not create a Geo::CacheInvalidationEvent6167 for a Geo primary site6168 when there is at least one Geo secondary site6169 creates a Geo::CacheInvalidationEvent6170 when there are no Geo secondary sites6171 does not create a Geo::CacheInvalidationEvent6172 for a Geo secondary site6173 when there is at least one Geo secondary site6174 does not create a Geo::CacheInvalidationEvent6175EE::API::Helpers::VariablesHelpers6176 #filter_variable_parameters6177 owner is a project6178 is expected to eq {:environment_scope=>"production", :key=>"KEY"}6179 owner is a group6180 scoped variables are available6181 is expected to eq {:environment_scope=>"production", :key=>"KEY"}6182 scoped variables are not available6183 is expected to eq {:key=>"KEY"}6184Milestones::PromoteService6185 #execute6186 updates board with new milestone6187Resolvers::SecurityReportSummaryResolver6188 #resolve6189 All fields are requested6190 returns calls the ReportSummaryService6191 when the user is not authorized6192 does not call Security::ReportSummaryService and returns nothing6193 When lookahead includes :__typename6194 does not search for :__typename6195Groups::ScheduleBulkRepositoryShardMovesWorker6196 behaves like schedules bulk repository shard moves6197 #perform6198 is labeled as idempotent6199 performs multiple times sequentially without raising an exception6200 schedules container repository storage moves6201Gitlab::Auth::GroupSaml::FailureHandler6202 calls Groups::OmniauthCallbacksController#failure for GroupSaml6203 falls back to parent on_failure handler6204Elastic::IndexProjectsByRangeService6205 #execute6206 when without project6207 does not err6208 when range not specified6209 schedules for all projects6210 respects batch_size setting6211 when range specified6212 schedules for projects within range6213 respects batch_size setting6214Resolvers::SecurityTrainingUrlsResolver6215 #resolve6216 when the user is not authorized6217 does not do the resolver action6218 when the user is authorized6219 calls TrainingUrlsFinder#execute6220Geo::RepositoryCreatedEvent6221 relationships6222 is expected to belong to project required: false6223 validations6224 is expected to validate that :project cannot be empty/falsy6225 is expected to validate that :project_name cannot be empty/falsy6226 is expected to validate that :repo_path cannot be empty/falsy6227 is expected to validate that :repository_storage_name cannot be empty/falsy6228admin/groups/_form6229 when sub group is used6230 does not render shared_runners_minutes_setting6231 when root group is used6232 does not render shared_runners_minutes_setting6233Geo::VerifiableModel6234 when separate table is used for verification state6235-- create_table(:_test_dummy_model_with_separate_states, {:force=>true})6236 -> 0.0038s6237-- create_table(:_test_dummy_model_states, {:id=>false, :force=>true})6238 -> 0.0027s6239 .verification_state_model_key6240 returns the primary key of the state model6241-- drop_table(:_test_dummy_model_with_separate_states, {:force=>true})6242 -> 0.0028s6243-- drop_table(:_test_dummy_model_states, {:force=>true})6244 -> 0.0016s6245 when separate table is not used for verification state6246-- create_table(:_test_dummy_models, {:force=>true})6247 -> 0.0034s6248 .verification_state_object6249 returns self6250 .verification_state_model_key6251 returns the primary key of the model6252-- drop_table(:_test_dummy_models, {:force=>true})6253 -> 0.0029s6254projects/settings/merge_requests/_merge_request_approvals_settings6255 # order random6256 renders the settings app element6257 renders the settings title6258 renders the loading spinner6259Groups::AnalyticsDashboardHelper6260 # order random6261 #group_analytics_dashboard_available?6262 is true for the group6263 when feature flag is disabled6264 is false for the group6265 when licensed feature is not available6266 is false for the group6267 when the current user does not have permission6268 is false for the group6269Ci::Minutes::Context6270 delegation6271 is expected to delegate #shared_runners_minutes_limit_enabled? to the #namespace object6272 is expected to delegate #namespace_name to the #namespace object as #name6273Gitlab::HookData::GroupMemberBuilder6274 #build6275 data6276 group_plan attribute6277 returns correct group_plan6278Sidebars::Search::Panel6279 # order random6280 behaves like a panel without placeholders6281 has no Sidebars::NilMenuItem6282 behaves like a panel with uniquely identifiable menu items6283 all menu_items have unique item_id6284 all menu_items have an item_id6285Elastic::Latest::Config6286 .settings6287 behaves like config settings return correct values6288 returns config6289 sets correct shard/replica settings6290 .mappings6291 returns config6292Elastic::MigrationObsolete6293 #migrate6294 logs a message and halts the migration6295 #completed?6296 returns false6297 #obsolete?6298 returns true6299BulkImports::Projects::Pipelines::PushRulePipeline6300 #run6301 imports push rules6302EE::API::Entities::Scim::NotFound6303 contains the schemas6304 contains the detail6305 contains the status6306Types::Geo::DependencyProxyManifestRegistryType6307 # order random6308 has the expected fields (other than those included in RegistryType)6309 behaves like a Geo registry type6310 is expected to require graphql authorizations :read_geo_registry6311 has the expected fields6312Types::EpicSortEnum6313 is expected to eq "EpicSort"6314 exposes all the existing epic sort orders6315DeleteMergeRequestsFromOriginalIndex6316 behaves like a deprecated Advanced Search migration6317 #migrate6318 logs a message and halts the migration6319 #completed?6320 returns false6321 #obsolete?6322 returns true6323RemoteDevelopment::Message6324 # order random6325 #==6326 implements equality6327 validation6328 requires context to be a Hash6329Types::Repository::BlobType6330 is expected to eq "RepositoryBlob"6331 is expected to have graphql field :code_owners and {:calls_gitaly?=>true}6332Gitlab::Usage::Metrics::Instrumentations::AdvancedSearch::VersionMetric6333 behaves like a correct instrumented metric value6334 has correct value6335 elasticsearch_indexing is enabled6336 behaves like a correct instrumented metric value6337 has correct value6338Fog::Storage::GoogleXML::File6339 delegates to #get_https_url6340Gitlab::Geo::JsonRequest6341 #headers6342 contains the JSON request headers6343Types::WorkItems::Widgets::TestReportsType6344 # order random6345 is expected to have graphql fields :type and :test_reports6346 is expected to eq "WorkItemWidgetTestReports"6347Types::ComplianceManagement::MergeRequests::ComplianceViolationInputType6348 is expected to eq "ComplianceViolationInput"6349 is expected to contain exactly "projectIds", "mergedBefore", "mergedAfter", and "targetBranch"6350EE::Types::Repository::CodeOwnerValidationType6351 # order random6352 is expected to have graphql fields :total and :validation_errors6353 is expected to eq "RepositoryCodeownerValidation"6354Projects::Security::ConfigurationController routing6355 to #show6356 to #auto_fix6357Types::AppSec::Fuzzing::API::CiConfigurationType6358 is expected to have graphql fields :scanModes and :scanProfiles6359Types::Dast::ProfileCadenceType6360 is expected to eq "DastProfileCadence"6361 is expected to have graphql fields :unit and :duration6362shared/billings/_billing_plan_actions.html.haml6363 contains the hand raise lead selector and tracking6364Types::MutationType6365 deprecated mutations6366 field_name: "ApiFuzzingCiConfigurationCreate", reason: "The configuration snippet is now generated client-side", milestone: "15.1"6367 is expected not to be present6368Gitlab::Llm::VertexAi::Templates::ExplainCode6369 # order random6370 .get_options6371 returns correct parameters6372Types::PermissionTypes::Project6373 is expected to have graphql field :admin_path_locks6374Groups::SsoHelper6375 #authorize_gma_conversion_confirm_modal_data6376 returns expected hash6377API::Entities::ProtectedEnvironments::ApprovalRuleForSummary6378 exposes correct attributes6379Types::Security::TrainingType6380 is expected to have graphql fields :id, :name, :description, :url, :logo_url, :is_enabled, and :is_primary6381Types::Ci::Minutes::NamespaceMonthlyUsageType6382 is expected to have graphql fields :minutes, :month, :month_iso8601, :projects, and :shared_runners_duration6383Zoekt::Logger6384 # order random6385 .build6386 builds an instance6387Elastic::Latest::EpicClassProxy6388 # order random6389 raises an error when calling elastic_search6390Knapsack report was generated. Preview:6391{6392 "ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb": 374.334402253,6393 "ee/spec/models/epic_spec.rb": 271.6604550009997,6394 "ee/spec/models/ee/group_spec.rb": 255.8550181240007,6395 "ee/spec/services/ee/merge_requests/refresh_service_spec.rb": 146.0895043290002,6396 "ee/spec/lib/gitlab/ci/templates/sast_latest_gitlab_ci_yaml_spec.rb": 92.69897322599991,6397 "ee/spec/replicators/geo/pages_deployment_replicator_spec.rb": 76.67602379800064,6398 "ee/spec/lib/ee/gitlab/usage/service_ping_report_spec.rb": 75.58160516399948,6399 "ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb": 50.67743254800007,6400 "ee/spec/elastic/migrate/20230719094700_remove_projects_from_main_index_spec.rb": 68.28640953400009,6401 "ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb": 39.88695206000011,6402 "ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb": 42.715837965999526,6403 "ee/spec/services/projects/transfer_service_spec.rb": 44.16993671900036,6404 "ee/spec/lib/gitlab/checks/diff_check_spec.rb": 39.49036361799972,6405 "ee/spec/models/namespace_setting_spec.rb": 34.00918821399955,6406 "ee/spec/models/audit_events/google_cloud_logging_configuration_spec.rb": 30.290300153000317,6407 "ee/spec/lib/audit/group_push_rules_changes_auditor_spec.rb": 28.57324328499999,6408 "ee/spec/policies/note_policy_spec.rb": 31.604473813000368,6409 "ee/spec/models/integrations/github_spec.rb": 27.073331569999937,6410 "ee/spec/finders/geo/design_management_repository_registry_finder_spec.rb": 20.078271190999658,6411 "ee/spec/lib/compliance_management/compliance_report/commit_loader_spec.rb": 19.387235769000654,6412 "ee/spec/models/sbom/occurrence_spec.rb": 15.684694376000152,6413 "ee/spec/finders/security/findings_finder_spec.rb": 17.91273442199963,6414 "ee/spec/models/merge_requests/compliance_violation_spec.rb": 16.72339003900015,6415 "ee/spec/policies/ci/build_policy_spec.rb": 23.48321249499986,6416 "ee/spec/graphql/resolvers/geo/pipeline_artifact_registries_resolver_spec.rb": 17.20081628600019,6417 "ee/spec/services/groups/sync_service_spec.rb": 15.866437435999615,6418 "ee/spec/workers/geo/prune_event_log_worker_spec.rb": 13.431768366999677,6419 "ee/spec/models/ee/project_statistics_spec.rb": 16.84778792399993,6420 "ee/spec/lib/gitlab/elastic/document_reference_spec.rb": 11.652331754999977,6421 "ee/spec/models/ee/event_spec.rb": 18.043001096000808,6422 "ee/spec/graphql/resolvers/geo/container_repository_registries_resolver_spec.rb": 15.451468760000353,6423 "ee/spec/elastic/migrate/20230208100000_reindex_users_spec.rb": 11.700204662000033,6424 "ee/spec/lib/sidebars/groups/menus/analytics_menu_spec.rb": 10.35260978199949,6425 "ee/spec/finders/security/vulnerability_reads_finder_spec.rb": 14.942688582999835,6426 "ee/spec/lib/audit_events/strategies/external_destination_strategy_spec.rb": 12.560754959000406,6427 "ee/spec/services/ci/subscribe_bridge_service_spec.rb": 12.207642366000073,6428 "ee/spec/services/ee/boards/issues/create_service_spec.rb": 9.248052042999916,6429 "ee/spec/models/ci/minutes/project_monthly_usage_spec.rb": 8.260876385999836,6430 "ee/spec/services/llm/generate_summary_service_spec.rb": 14.597314482000002,6431 "ee/spec/services/analytics/cycle_analytics/data_loader_service_spec.rb": 9.76775656100017,6432 "ee/spec/graphql/mutations/issues/set_epic_spec.rb": 10.878649508999843,6433 "ee/spec/finders/security/scan_result_policies_finder_spec.rb": 10.526541959000497,6434 "ee/spec/finders/geo/dependency_proxy_blob_registry_finder_spec.rb": 9.40151846200024,6435 "ee/spec/graphql/mutations/issues/update_spec.rb": 8.24180726799932,6436 "ee/spec/services/ci/create_pipeline_service/dast_configuration_spec.rb": 6.976751442999557,6437 "ee/spec/services/vulnerability_issue_links/delete_service_spec.rb": 4.890229454999826,6438 "ee/spec/services/projects/gitlab_projects_import_service_spec.rb": 9.201929167999879,6439 "ee/spec/lib/gitlab/auth/group_saml/identity_linker_spec.rb": 8.419071532000089,6440 "ee/spec/finders/template_finder_spec.rb": 5.543476421000378,6441 "ee/spec/lib/ee/backup/repositories_spec.rb": 5.952080568000383,6442 "ee/spec/lib/gitlab/ci/parsers/security/dependency_list_spec.rb": 8.593436469000153,6443 "ee/spec/serializers/dependency_entity_spec.rb": 7.31377882400011,6444 "ee/spec/services/geo/repository_verification_secondary_service_spec.rb": 7.617290778999632,6445 "ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb": 11.23814025899992,6446 "ee/spec/services/requirements_management/process_test_reports_service_spec.rb": 5.60203159699995,6447 "ee/spec/services/ee/resource_events/synthetic_iteration_notes_builder_service_spec.rb": 5.071994800000539,6448 "ee/spec/services/llm/fill_in_merge_request_template_service_spec.rb": 4.851208939000571,6449 "ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb": 4.726519888000439,6450 "ee/spec/graphql/types/geo/registrable_type_spec.rb": 7.031187218000014,6451 "ee/spec/services/security/merge_request_security_report_generation_service_spec.rb": 8.171110133000184,6452 "ee/spec/graphql/resolvers/product_analytics/state_resolver_spec.rb": 3.2562259000005724,6453 "ee/spec/services/package_metadata/data_object_spec.rb": 4.859403078000469,6454 "ee/spec/serializers/dependency_list_entity_spec.rb": 4.702413569999408,6455 "ee/spec/graphql/types/ci/pipeline_type_spec.rb": 6.867536161999851,6456 "ee/spec/models/allowed_email_domain_spec.rb": 3.100373842999943,6457 "ee/spec/serializers/status_page/incident_comment_entity_spec.rb": 7.9437242620006145,6458 "ee/spec/lib/ee/gitlab/database/docs/docs_spec.rb": 5.825255947999722,6459 "ee/spec/services/ee/issues/reopen_service_spec.rb": 3.7448640200000227,6460 "ee/spec/services/security/store_grouped_scans_service_spec.rb": 7.945377320999796,6461 "ee/spec/services/ee/merge_requests/reopen_service_spec.rb": 3.5070517799995287,6462 "ee/spec/lib/gitlab/llm/open_ai/options_spec.rb": 2.7318947039993873,6463 "ee/spec/services/compliance_management/frameworks/update_service_spec.rb": 6.624061840999275,6464 "ee/spec/lib/bulk_imports/common/pipelines/wiki_pipeline_spec.rb": 4.398531155000455,6465 "ee/spec/services/quality_management/test_cases/create_service_spec.rb": 3.4524423139991995,6466 "ee/spec/helpers/ee/subscribable_banner_helper_spec.rb": 6.143268890999934,6467 "ee/spec/services/jira/jql_builder_service_spec.rb": 2.923661328999515,6468 "ee/spec/workers/llm/completion_worker_spec.rb": 6.589841975000127,6469 "ee/spec/lib/gitlab/ci/yaml_processor_spec.rb": 3.353028991999963,6470 "ee/spec/services/user_permissions/export_service_spec.rb": 5.217138437999893,6471 "ee/spec/serializers/user_analytics_entity_spec.rb": 4.369166047999897,6472 "ee/spec/workers/geo/scheduler/per_shard_scheduler_worker_spec.rb": 1.8181718899995758,6473 "ee/spec/services/app_sec/dast/profiles/build_config_service_spec.rb": 6.5449309590003395,6474 "ee/spec/workers/geo/verification_worker_spec.rb": 3.7836313970001356,6475 "ee/spec/views/projects/edit.html.haml_spec.rb": 4.974695508999503,6476 "ee/spec/helpers/ee/environments_helper_spec.rb": 7.964303310000105,6477 "ee/spec/policies/dast_scanner_profile_policy_spec.rb": 6.233129334000296,6478 "ee/spec/lib/ee/gitlab/scim/filter_parser_spec.rb": 1.2717522839993762,6479 "ee/spec/services/projects/group_links/update_service_spec.rb": 2.556366387999333,6480 "ee/spec/lib/gitlab/sidekiq_config_spec.rb": 3.311475635999159,6481 "ee/spec/services/package_metadata/compressed_package_data_object_spec.rb": 3.8867923979996704,6482 "ee/spec/services/alert_management/process_prometheus_alert_service_spec.rb": 6.782925367999269,6483 "ee/spec/workers/elastic/namespace_update_worker_spec.rb": 3.2973905970002306,6484 "ee/spec/workers/incident_management/pending_escalations/schedule_check_cron_worker_spec.rb": 1.883497953999722,6485 "ee/spec/models/users_security_dashboard_project_spec.rb": 4.4368241120000675,6486 "ee/spec/models/ee/description_version_spec.rb": 5.197191129000203,6487 "ee/spec/finders/billed_users_finder_spec.rb": 3.7671617979995062,6488 "ee/spec/lib/ee/api/entities/scim/conflict_spec.rb": 0.7385853590003535,6489 "ee/spec/services/geo/cache_invalidation_event_store_spec.rb": 4.539829074000409,6490 "ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb": 1.639680874000078,6491 "ee/spec/services/geo/repository_deleted_event_store_spec.rb": 1.5126688950003881,6492 "ee/spec/workers/vulnerabilities/mark_dropped_as_resolved_worker_spec.rb": 4.202977662000194,6493 "ee/spec/graphql/types/dast/pre_scan_verification_step_type_spec.rb": 3.3149348649994863,6494 "ee/spec/services/ee/design_management/delete_designs_service_spec.rb": 1.6504058240006998,6495 "ee/spec/services/concerns/search/elasticsearchable_spec.rb": 1.478152417000274,6496 "ee/spec/helpers/ee/ci/pipeline_editor_helper_spec.rb": 5.825230768000438,6497 "ee/spec/lib/gitlab/llm/completions/chat_spec.rb": 1.311646510999708,6498 "ee/spec/lib/ee/feature_spec.rb": 1.6453869340002711,6499 "ee/spec/lib/gitlab/usage/metrics/instrumentations/count_users_deployment_approvals_spec.rb": 3.7005965329999526,6500 "ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_submitted_review_spec.rb": 4.04346172500027,6501 "ee/spec/finders/security/training_providers/kontra_url_finder_spec.rb": 2.522002851000252,6502 "ee/spec/services/protected_environments/destroy_service_spec.rb": 3.715000162999786,6503 "ee/spec/services/vulnerability_issue_links/bulk_create_service_spec.rb": 4.330251221000253,6504 "ee/spec/finders/boards/users_finder_spec.rb": 2.394263162000243,6505 "ee/spec/policies/base_policy_spec.rb": 0.801529202999518,6506 "ee/spec/workers/merge_requests/process_approval_auto_merge_worker_spec.rb": 3.5927735730001586,6507 "ee/spec/graphql/types/geo/container_repository_registry_type_spec.rb": 2.0936748660005833,6508 "ee/spec/services/milestones/destroy_service_spec.rb": 2.5503152490000502,6509 "ee/spec/graphql/mutations/todos/create_spec.rb": 1.0822286699994947,6510 "ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb": 2.5294720199999574,6511 "ee/spec/services/incident_management/oncall_rotations/destroy_service_spec.rb": 4.886105585000223,6512 "ee/spec/serializers/vulnerabilities/merge_request_link_entity_spec.rb": 2.535547331000089,6513 "ee/spec/helpers/ee/projects/security/dast_configuration_helper_spec.rb": 2.040436609999233,6514 "ee/spec/models/protected_branch/push_access_level_spec.rb": 2.9870309530006125,6515 "ee/spec/services/status_page/publish_attachments_service_spec.rb": 3.1054179229995498,6516 "ee/spec/helpers/projects/security/dast_profiles_helper_spec.rb": 2.1640235710001434,6517 "ee/spec/lib/gitlab/insights/reducers/base_reducer_spec.rb": 3.0967697429996406,6518 "ee/spec/elastic/migrate/20220824123000_add_label_ids_and_schema_version_to_issues_mapping_spec.rb": 2.0744441879996884,6519 "ee/spec/lib/elastic/latest/merge_request_config_spec.rb": 0.7546801979997326,6520 "ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb": 1.420476891999897,6521 "ee/spec/graphql/types/vulnerability_location/coverage_fuzzing_type_spec.rb": 1.6329063749999477,6522 "ee/spec/services/projects/deregister_suggested_reviewers_project_service_spec.rb": 3.329049804000533,6523 "ee/spec/services/package_metadata/ingestion/tasks/ingest_packages_spec.rb": 3.2131713239996316,6524 "ee/spec/services/ee/groups/group_links/destroy_service_spec.rb": 1.539488373000495,6525 "ee/spec/services/system_notes/escalations_service_spec.rb": 1.6889078089998293,6526 "ee/spec/graphql/types/vulnerability_evidence_type_spec.rb": 1.770875693000562,6527 "ee/spec/lib/system_check/app/advanced_search_migrations_check_spec.rb": 4.47451399900001,6528 "ee/spec/workers/iterations/cadences/create_iterations_worker_spec.rb": 1.617320426000333,6529 "ee/spec/lib/ee/api/entities/scim/users_spec.rb": 1.6522048039996662,6530 "ee/spec/helpers/projects/on_demand_scans_helper_spec.rb": 1.6516212430005908,6531 "ee/spec/services/ee/projects/deploy_tokens/destroy_service_spec.rb": 4.338066760000402,6532 "ee/spec/models/sbom/source_spec.rb": 1.688733260000845,6533 "ee/spec/services/path_locks/lock_service_spec.rb": 1.4797020570003951,6534 "ee/spec/views/devise/sessions/new.html.haml_spec.rb": 3.1911280350004745,6535 "ee/spec/lib/elastic/latest/project_instance_proxy_spec.rb": 2.5747484669991536,6536 "ee/spec/workers/ee/repository_check/single_repository_worker_spec.rb": 1.4437545600003432,6537 "ee/spec/workers/geo/batch/project_registry_worker_spec.rb": 1.4750064579993705,6538 "ee/spec/lib/ee/gitlab/scim/deprovisioning_service_spec.rb": 1.3612864569995509,6539 "ee/spec/workers/geo/verification_timeout_worker_spec.rb": 2.539335239999673,6540 "ee/spec/services/path_locks/unlock_service_spec.rb": 2.7084419160000834,6541 "ee/spec/workers/deployments/auto_rollback_worker_spec.rb": 1.2689046650002638,6542 "ee/spec/lib/gitlab/cache_spec.rb": 1.265239174999806,6543 "ee/spec/lib/ee/api/helpers/variables_helpers_spec.rb": 1.2333213580004667,6544 "ee/spec/services/milestones/promote_service_spec.rb": 0.9789018490000672,6545 "ee/spec/graphql/resolvers/security_report_summary_resolver_spec.rb": 1.835560217999955,6546 "ee/spec/workers/groups/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.6732939909998095,6547 "ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb": 2.5137745620004353,6548 "ee/spec/services/elastic/index_projects_by_range_service_spec.rb": 1.0502335230003155,6549 "ee/spec/graphql/resolvers/security_training_urls_resolver_spec.rb": 1.0051977070006615,6550 "ee/spec/models/geo/repository_created_event_spec.rb": 1.0474072740007614,6551 "ee/spec/views/admin/groups/_form.html.haml_spec.rb": 1.2333179179995568,6552 "ee/spec/models/concerns/geo/verifiable_model_spec.rb": 0.799110513999949,6553 "ee/spec/views/projects/settings/merge_requests/_merge_request_approvals.html.haml_spec.rb": 2.218391665999661,6554 "ee/spec/helpers/groups/analytics_dashboard_helper_spec.rb": 2.3327128769997216,6555 "ee/spec/models/ci/minutes/context_spec.rb": 0.810822571999779,6556 "ee/spec/lib/ee/gitlab/hook_data/group_member_builder_spec.rb": 0.774893104999137,6557 "ee/spec/lib/sidebars/search/panel_spec.rb": 0.8140072429996508,6558 "ee/spec/lib/elastic/latest/config_spec.rb": 0.694029932000376,6559 "ee/spec/workers/concerns/elastic/migration_obsolete_spec.rb": 0.7076270419993307,6560 "ee/spec/lib/bulk_imports/projects/pipelines/push_rule_pipeline_spec.rb": 2.1330746240000735,6561 "ee/spec/lib/ee/api/entities/scim/not_found_spec.rb": 2.066422199000044,6562 "ee/spec/graphql/types/geo/dependency_proxy_manifest_registry_type_spec.rb": 0.7669472859997768,6563 "ee/spec/graphql/types/epic_sort_enum_spec.rb": 0.5818405620002522,6564 "ee/spec/elastic/migrate/20210510113500_delete_merge_requests_from_original_index_spec.rb": 0.7553297269996619,6565 "ee/spec/lib/remote_development/message_spec.rb": 0.5968893810004374,6566 "ee/spec/graphql/ee/types/repository/blob_type_spec.rb": 0.6463389560003634,6567 "ee/spec/lib/gitlab/usage/metrics/instrumentations/advanced_search/version_metric_spec.rb": 0.560390433000066,6568 "ee/spec/initializers/fog_google_https_private_urls_spec.rb": 0.4394727139997485,6569 "ee/spec/lib/gitlab/geo/json_request_spec.rb": 0.550595694000549,6570 "ee/spec/graphql/types/work_items/widgets/test_reports_type_spec.rb": 2.004379254000014,6571 "ee/spec/graphql/types/compliance_management/merge_requests/compliance_violation_input_type_spec.rb": 1.9877222149998488,6572 "ee/spec/graphql/types/repository/code_owner_validation_type_spec.rb": 0.5972072110007502,6573 "ee/spec/routing/projects/security/configuration_controller_routing_spec.rb": 0.6581832350002514,6574 "ee/spec/graphql/types/app_sec/fuzzing/api/ci_configuration_type_spec.rb": 0.45831011199970817,6575 "ee/spec/graphql/types/dast/profile_cadence_type_spec.rb": 0.5759897730004013,6576 "ee/spec/views/shared/billings/_billing_plan_actions.html.haml_spec.rb": 0.5602836429998206,6577 "ee/spec/graphql/ee/types/mutation_type_spec.rb": 0.4383966239993242,6578 "ee/spec/lib/gitlab/llm/vertex_ai/templates/explain_code_spec.rb": 0.43271206400004303,6579 "ee/spec/graphql/types/permission_types/project_spec.rb": 0.4354710139996314,6580 "ee/spec/helpers/groups/sso_helper_spec.rb": 0.4515028030000394,6581 "ee/spec/lib/api/entities/protected_environments/approval_rule_for_summary_spec.rb": 0.4330382449998069,6582 "ee/spec/graphql/types/security/training_type_spec.rb": 0.4128591049993702,6583 "ee/spec/graphql/types/ci/minutes/namespace_monthly_usage_type_spec.rb": 0.40226217599956726,6584 "ee/spec/lib/zoekt/logger_spec.rb": 0.42531859499922575,6585 "ee/spec/lib/elastic/latest/epic_class_proxy_spec.rb": 1.21707157899982126586}6587Knapsack global time execution for tests: 42m 27s6588Pending: (Failures listed here are expected and do not affect your suite's status)6589 1) Epic modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank6590 # No reason given6591 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:496592 2) Epic modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank6593 # No reason given6594 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:576595 3) Geo::DesignManagementRepositoryRegistryFinder 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 ArgumentError6596 # Skipping because verification is enabled for DesignManagement::Repository6597 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:986598 4) Geo::DesignManagementRepositoryRegistryFinder 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 ArgumentError6599 # Skipping because verification is enabled for DesignManagement::Repository6600 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1066601 5) Geo::DesignManagementRepositoryRegistryFinder behaves like a framework registry finder #execute when user can read all Geo when admin mode is enabled when search method is implemented in the registry model returns a registry filtered by keyword6602 # Skipping because search method is not implemented6603 for DesignManagement::Repository or searchable attributes are not defined.6604 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1536605 6) Resolvers::Geo::PipelineArtifactRegistriesResolver behaves like a Geo registries resolver #resolve when the parent object is the current node when the user has permission to view Geo data when admin mode is enabled with verification disabled when the verification_state argument is present raises ArgumentError6606 # Skipping because verification is enabled for Ci::PipelineArtifact6607 # ./ee/spec/support/shared_examples/graphql/geo/geo_registries_resolver_shared_examples.rb:776608 7) Resolvers::Geo::ContainerRepositoryRegistriesResolver behaves like a Geo registries resolver #resolve when the parent object is the current node when the user has permission to view Geo data when admin mode is enabled with verification enabled when the verification_state argument is present returns registries with requested verification state, in order6609 # Skipping because verification is not enabled for ContainerRepository6610 # ./ee/spec/support/shared_examples/graphql/geo/geo_registries_resolver_shared_examples.rb:626611 8) Geo::DependencyProxyBlobRegistryFinder 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 ArgumentError6612 # Skipping because verification is enabled for DependencyProxy::Blob6613 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:986614 9) Geo::DependencyProxyBlobRegistryFinder 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 ArgumentError6615 # Skipping because verification is enabled for DependencyProxy::Blob6616 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1066617 10) Geo::DependencyProxyBlobRegistryFinder behaves like a framework registry finder #execute when user can read all Geo when admin mode is enabled when search method is implemented in the registry model returns a registry filtered by keyword6618 # Skipping because search method is not implemented6619 for DependencyProxy::Blob or searchable attributes are not defined.6620 # ./ee/spec/support/shared_examples/finders/geo/framework_registry_finder_shared_examples.rb:1536621 11) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: false calculates correct actual state6622 # TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: false6623 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626624 12) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: false calculates correct actual state6625 # TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: false6626 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626627 13) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Running", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state6628 # TODO: Properly implement the agent info status fixture for previous_actual_state: Running, current_actual_state: Failed, workspace_exists: 6629 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626630 14) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Stopping", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state6631 # TODO: Properly implement the agent info status fixture for previous_actual_state: Stopping, current_actual_state: Failed, workspace_exists: 6632 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626633 15) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Stopped", current_actual_state: "Failed", workspace_exists: nil calculates correct actual state6634 # TODO: Properly implement the agent info status fixture for previous_actual_state: Stopped, current_actual_state: Failed, workspace_exists: 6635 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626636 16) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Starting", current_actual_state: "Failed", workspace_exists: true calculates correct actual state6637 # TODO: Properly implement the agent info status fixture for previous_actual_state: Starting, current_actual_state: Failed, workspace_exists: true6638 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626639 17) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Starting", workspace_exists: true calculates correct actual state6640 # TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Starting, workspace_exists: true6641 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626642 18) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: "Failed", current_actual_state: "Stopping", workspace_exists: nil calculates correct actual state6643 # TODO: Properly implement the agent info status fixture for previous_actual_state: Failed, current_actual_state: Stopping, workspace_exists: 6644 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626645 19) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state with cases parameterized from shared fixtures previous_actual_state: nil, current_actual_state: "Failed", workspace_exists: nil calculates correct actual state6646 # TODO: Properly implement the agent info status fixture for previous_actual_state: , current_actual_state: Failed, workspace_exists: 6647 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:626648 20) RemoteDevelopment::Workspaces::Reconcile::ActualStateCalculator.calculate_actual_state when the deployment is failed when existing scaled down workspace which was failing has been scaled up returns the expected actual state6649 # This currently returns STARTING state. See related TODOs in the relevant code.6650 Failure/Error:6651 expect(subject.calculate_actual_state(latest_k8s_deployment_info: latest_k8s_deployment_info))6652 .to be(expected_actual_state)6653 expected #<String:409286980> => "Failed"6654 got #<String:409287000> => "Starting"6655 Compared using equal?, which compares object identity,6656 but expected and actual are not the same object. Use6657 `expect(actual).to eq(expected)` if you don't care about6658 object identity in this example.6659 # ./ee/spec/lib/remote_development/workspaces/reconcile/actual_state_calculator_spec.rb:328:in `block (5 levels) in <top (required)>'6660 # ./spec/spec_helper.rb:442:in `block (3 levels) in <top (required)>'6661 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'6662 # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'6663 # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'6664 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'6665 # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'6666 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'6667 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'6668 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'6669 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'6670 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'6671 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'6672 21) Geo::CacheInvalidationEventStore#create behaves like a Geo event store when running on a primary node when file subject is not on local store creates an event6673 # No file subject defined, skipping6674 # ./ee/spec/support/shared_examples/services/geo_event_store_shared_examples.rb:366675 22) Geo::RepositoryDeletedEventStore#create! behaves like a Geo event store when running on a primary node when file subject is not on local store creates an event6676 # No file subject defined, skipping6677 # ./ee/spec/support/shared_examples/services/geo_event_store_shared_examples.rb:366678Finished in 42 minutes 36 seconds (files took 1 minute 37.38 seconds to load)66792990 examples, 0 failures, 22 pending6680Randomized with seed 78186681[TEST PROF INFO] Time spent in factories: 17:31.049 (40.41% of total time)6682RSpec exited with 0.6683No examples to retry, congrats! 6684 Running after_script 6685Running after script...6686$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"6727Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy6729Uploading artifacts...6730WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6731coverage/: found 5 matching artifact files and directories 6732crystalball/: found 2 matching artifact files and directories 6733WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6734knapsack/: found 4 matching artifact files and directories 6735rspec/: found 10 matching artifact files and directories 6736WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6737log/*.log: found 22 matching artifact files and directories 6738WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214782/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6739WARNING: Retrying... context=artifacts-uploader error=request redirected6740Uploading artifacts as "archive" to coordinator... 201 Created id=4749214782 responseStatus=201 Created token=64_YER6_6741Uploading artifacts...6742rspec/rspec-*.xml: found 1 matching artifact files and directories 6743WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214782/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6744WARNING: Retrying... context=artifacts-uploader error=request redirected6745Uploading artifacts as "junit" to coordinator... 201 Created id=4749214782 responseStatus=201 Created token=64_YER6_6747Job succeeded