rspec unit pg14 8/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-2.shared-gitlab-org.runners-manager.gitlab.com/default 8zCxmpPt, system ID: s_130a96ce9e653 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 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling 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 ...23Using 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 ...25Running on runner-8zcxmppt-project-278964-concurrent-0 via runner-8zcxmppt-shared-gitlab-org-1690430668-bfa4647e...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 200368, done. 31remote: Counting objects: 100% (200368/200368), done. 32remote: Compressing objects: 100% (127761/127761), done. 33remote: Total 200368 (delta 101729), reused 135279 (delta 65007), pack-reused 0 34Receiving objects: 100% (200368/200368), 150.13 MiB | 29.10 MiB/s, done.35Resolving deltas: 100% (101729/101729), done.37 * [new ref] refs/pipelines/946806672 -> refs/pipelines/94680667238 * [new branch] master -> origin/master39Checking out 9bb6bea6 as detached HEAD (ref is master)...40Skipping Git submodules setup41$ git remote set-url origin "${CI_REPOSITORY_URL}"43Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...44Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 45Successfully extracted cache47Downloading artifacts for compile-test-assets (4749214174)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214174 responseStatus=200 OK token=64_yzKyQ49Downloading artifacts for retrieve-tests-metadata (4749214304)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214304 responseStatus=200 OK token=64_yzKyQ51Downloading artifacts for setup-test-env (4749214206)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214206 responseStatus=200 OK token=64_yzKyQ54Using 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 ...55$ echo $FOSS_ONLY56$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb57$ export GOPATH=$CI_PROJECT_DIR/.go58$ mkdir -p $GOPATH59$ source scripts/utils.sh60$ source scripts/prepare_build.sh92Using decomposed database config (config/database.yml.decomposed-postgresql)93Geo DB won't be set up.94Embedding DB won't be set up.106$ source ./scripts/rspec_helpers.sh107$ run_timed_command "gem install knapsack --no-document"108$ gem install knapsack --no-document109Successfully installed knapsack-4.0.01101 gem installed111==> 'gem install knapsack --no-document' succeeded in 1 seconds.112$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"117$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"118SKIP_FLAKY_TESTS_AUTOMATICALLY: 119RETRY_FAILED_TESTS_IN_NEW_PROCESS: true120KNAPSACK_GENERATE_REPORT: true121FLAKY_RSPEC_GENERATE_REPORT: true122KNAPSACK_TEST_FILE_PATTERN: 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.rb123KNAPSACK_LOG_LEVEL: debug124KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_8_28_report.json125FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json126FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_8_28_report.json127NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_8_28_report.json128SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg14_8_28.txt129CRYSTALBALL: true130RSPEC_TESTS_MAPPING_ENABLED: 131RSPEC_TESTS_FILTER_FILE: 132Shell set options (set -o) enabled:133braceexpand on134hashall on135interactive-comments on136pipefail on137Running 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-4749214618.json --format RspecJunitFormatter --out rspec/rspec-4749214618.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/application_setting_spec.rb spec/services/todos/destroy/entity_leave_service_spec.rb spec/lib/gitlab/git/tree_spec.rb spec/services/boards/issues/list_service_spec.rb spec/services/issues/relative_position_rebalancing_service_spec.rb spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb spec/tooling/danger/project_helper_spec.rb spec/models/integrations/slack_spec.rb spec/lib/gitlab/url_sanitizer_spec.rb spec/workers/packages/maven/metadata/sync_worker_spec.rb spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb spec/services/merge_requests/cleanup_refs_service_spec.rb spec/models/integrations/microsoft_teams_spec.rb spec/lib/gitlab/ci/status/bridge/factory_spec.rb spec/models/packages/package_file_spec.rb spec/models/namespace/root_storage_statistics_spec.rb spec/finders/group_projects_finder_spec.rb spec/helpers/markup_helper_spec.rb spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb spec/models/incident_management/issuable_escalation_status_spec.rb spec/helpers/merge_requests_helper_spec.rb spec/models/integrations/jenkins_spec.rb spec/workers/concerns/application_worker_spec.rb spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb spec/models/wiki_page/meta_spec.rb spec/services/issues/export_csv_service_spec.rb spec/lib/banzai/filter/audio_link_filter_spec.rb spec/lib/gitlab/ci/status/stage/factory_spec.rb spec/models/concerns/reactive_caching_spec.rb spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb spec/models/hooks/active_hook_filter_spec.rb spec/lib/gitlab/observability_spec.rb spec/lib/gitlab/background_migration/batching_strategies/primary_key_batching_strategy_spec.rb spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb spec/services/award_emojis/destroy_service_spec.rb spec/lib/security/weak_passwords_spec.rb spec/lib/gitlab/data_builder/pipeline_spec.rb spec/lib/gitlab/popen_spec.rb spec/finders/starred_projects_finder_spec.rb spec/models/generic_commit_status_spec.rb spec/lib/gitlab/sanitizers/exif_spec.rb spec/services/projects/participants_service_spec.rb spec/serializers/ci/trigger_entity_spec.rb spec/lib/gitlab/pagination/keyset/paginator_spec.rb spec/models/protected_branch/push_access_level_spec.rb spec/workers/merge_worker_spec.rb spec/graphql/mutations/merge_requests/create_spec.rb spec/serializers/fork_namespace_entity_spec.rb spec/lib/gitlab/ci/jwt_v2_spec.rb spec/lib/gitlab/checks/snippet_check_spec.rb spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb spec/lib/gitlab/ci/status/build/stop_spec.rb spec/graphql/mutations/releases/delete_spec.rb spec/finders/ci/jobs_finder_spec.rb spec/services/merge_requests/update_assignees_service_spec.rb spec/views/layouts/devise.html.haml_spec.rb spec/lib/gitlab/database/count_spec.rb spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb spec/finders/projects/groups_finder_spec.rb spec/views/projects/commits/_commit.html.haml_spec.rb spec/lib/gitlab/spamcheck/client_spec.rb spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb spec/graphql/resolvers/last_commit_resolver_spec.rb spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb spec/serializers/diff_file_metadata_entity_spec.rb spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb spec/lib/gitlab/ci/config/entry/policy_spec.rb spec/services/wiki_pages/create_service_spec.rb spec/lib/banzai/filter/custom_emoji_filter_spec.rb spec/lib/gitlab/lfs/client_spec.rb spec/models/customer_relations/organization_spec.rb spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb spec/lib/gitlab/daemon_spec.rb spec/uploaders/object_storage/cdn/google_cdn_spec.rb spec/lib/gitlab/file_detector_spec.rb spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb spec/serializers/group_child_serializer_spec.rb spec/lib/gitlab/auth/ldap/adapter_spec.rb spec/models/packages/sem_ver_spec.rb spec/models/concerns/project_features_compatibility_spec.rb spec/lib/gitlab/web_hooks/recursion_detection_spec.rb spec/services/error_tracking/issue_latest_event_service_spec.rb spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb spec/models/concerns/subquery_spec.rb spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb spec/workers/propagate_integration_inherit_worker_spec.rb spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb spec/views/projects/pages/show.html.haml_spec.rb spec/services/projects/download_service_spec.rb spec/services/ci/catalog/validate_resource_service_spec.rb spec/services/issuable/destroy_label_links_service_spec.rb spec/models/ci/job_variable_spec.rb spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb spec/lib/gitlab/gitaly_client/diff_spec.rb spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb spec/lib/gitlab/pages/cache_control_spec.rb spec/lib/gitlab/slash_commands/run_spec.rb spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb spec/services/prometheus/proxy_variable_substitution_service_spec.rb spec/lib/gitlab/ci/templates/katalon_gitlab_ci_yaml_spec.rb spec/finders/personal_projects_finder_spec.rb spec/views/projects/milestones/index.html.haml_spec.rb spec/finders/projects/topics_finder_spec.rb spec/tasks/dev_rake_spec.rb spec/services/compare_service_spec.rb spec/services/boards/create_service_spec.rb spec/rubocop/cop/rspec/factory_bot/avoid_create_spec.rb spec/components/pajamas/checkbox_component_spec.rb spec/policies/application_setting_policy_spec.rb spec/graphql/resolvers/concerns/looks_ahead_spec.rb spec/models/ci/commit_with_pipeline_spec.rb spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb spec/services/ci/compare_codequality_reports_service_spec.rb spec/graphql/types/users/autocompleted_user_type_spec.rb spec/graphql/resolvers/ci/runner_job_count_resolver_spec.rb spec/services/integrations/propagate_service_spec.rb spec/lib/bulk_imports/common/pipelines/wiki_pipeline_spec.rb spec/services/projects/import_export/parallel_export_service_spec.rb spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb spec/workers/work_items/import_work_items_csv_worker_spec.rb spec/tasks/gitlab/terraform/migrate_rake_spec.rb spec/validators/devise_email_validator_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_snippets_metric_spec.rb spec/lib/gitlab/background_task_spec.rb spec/presenters/packages/composer/packages_presenter_spec.rb spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb spec/validators/qualified_domain_array_validator_spec.rb spec/tooling/lib/tooling/find_tests_spec.rb spec/lib/gitlab/background_migration/delete_orphaned_operational_vulnerabilities_spec.rb spec/models/concerns/ci/track_environment_usage_spec.rb spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb spec/lib/gitlab/exception_log_formatter_spec.rb spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb spec/lib/api/helpers/members_helpers_spec.rb spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb spec/services/todos/destroy/destroyed_issuable_service_spec.rb spec/helpers/components_helper_spec.rb spec/helpers/ci/secure_files_helper_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/distinct_count_projects_with_expiration_policy_metric_spec.rb spec/lib/gitlab/background_migration/populate_operation_visibility_permissions_from_operations_spec.rb spec/lib/json_web_token/token_spec.rb spec/lib/gitlab/exclusive_lease_helpers_spec.rb spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb spec/helpers/environment_helper_spec.rb spec/services/pages_domains/create_acme_order_service_spec.rb spec/lib/gitlab/pipeline_scope_counts_spec.rb spec/components/pajamas/radio_component_spec.rb spec/validators/future_date_validator_spec.rb spec/graphql/types/time_tracking/timelog_category_type_spec.rb spec/lib/gitlab/email/message/in_product_marketing/verify_spec.rb spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb spec/graphql/mutations/clusters/agents/delete_spec.rb spec/finders/packages/helm/package_files_finder_spec.rb spec/graphql/resolvers/snippets/blobs_resolver_spec.rb spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb spec/services/ci/pipeline_schedules/create_service_spec.rb spec/services/issues/after_create_service_spec.rb spec/rubocop/cop/migration/update_column_in_batches_spec.rb spec/lib/banzai/querying_spec.rb spec/lib/slack_markdown_sanitizer_spec.rb spec/serializers/integrations/event_entity_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb spec/graphql/resolvers/project_resolver_spec.rb spec/workers/propagate_integration_group_worker_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb spec/graphql/mutations/environments/canary_ingress/update_spec.rb spec/lib/gitlab/utils/link_header_parser_spec.rb spec/policies/integration_policy_spec.rb spec/models/concerns/issuable_link_spec.rb spec/services/protected_branches/api_service_spec.rb spec/lib/gitlab/timeless_spec.rb spec/models/raw_usage_data_spec.rb spec/serializers/import/manifest_provider_repo_entity_spec.rb spec/lib/gitlab/ci/config/entry/inherit/variables_spec.rb spec/lib/bitbucket/representation/comment_spec.rb spec/services/work_items/widgets/labels_service/update_service_spec.rb spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb spec/rubocop/cop/code_reuse/service_class_spec.rb spec/graphql/mutations/work_items/update_task_spec.rb spec/lib/gitlab/github_gists_import/status_spec.rb spec/services/integrations/slack_option_service_spec.rb spec/lib/gitlab/utils/gzip_spec.rb spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb spec/models/snippet_input_action_collection_spec.rb spec/helpers/admin/abuse_reports_helper_spec.rb spec/graphql/types/ci/job_trace_type_spec.rb spec/lib/gitlab/kubernetes/rollout_instances_spec.rb spec/lib/banzai/filter/plantuml_filter_spec.rb spec/policies/abuse_report_policy_spec.rb spec/serializers/ci/downloadable_artifact_serializer_spec.rb spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb spec/lib/gitlab/bullet_spec.rb spec/graphql/resolvers/achievements/achievements_resolver_spec.rb spec/graphql/types/merge_requests/assignee_type_spec.rb spec/workers/service_desk_email_receiver_worker_spec.rb spec/lib/gitlab/bitbucket_server_import/importers/lfs_object_importer_spec.rb spec/config/mail_room_spec.rb spec/lib/gitlab/event_store/event_spec.rb spec/graphql/types/ci/pipeline_type_spec.rb spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb spec/services/releases/links/params_spec.rb spec/lib/gitlab/i18n/metadata_entry_spec.rb spec/lib/gitlab/usage_data_counters/base_counter_spec.rb spec/graphql/types/tree/tree_entry_type_spec.rb spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb spec/graphql/types/container_repository_sort_enum_spec.rb spec/graphql/types/work_items/widgets/hierarchy_update_input_type_spec.rb spec/views/projects/pages/_pages_settings.html.haml_spec.rb spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb spec/lib/api/entities/nuget/dependency_group_spec.rb spec/lib/gitlab/ci_access_spec.rb spec/graphql/types/ci/instance_variable_type_spec.rb spec/finders/database/batched_background_migrations_finder_spec.rb spec/lib/api/entities/public_group_details_spec.rb spec/graphql/types/work_items/widgets/notifications_update_input_type_spec.rb spec/graphql/types/tree/blob_type_spec.rb spec/graphql/types/commit_encoding_enum_spec.rb spec/graphql/types/ci_configuration/sast/analyzers_entity_input_type_spec.rb spec/graphql/types/jira_import_type_spec.rb spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb spec/graphql/types/packages/helm/metadata_type_spec.rb spec/graphql/types/ci/test_suite_summary_type_spec.rb spec/graphql/types/deployment_tier_enum_spec.rb spec/serializers/integrations/harbor_serializers/tag_serializer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_metric_spec.rb spec/graphql/types/notes/deleted_note_type_spec.rb spec/lib/gitlab/insecure_key_fingerprint_spec.rb spec/services/gravatar_service_spec.rb spec/graphql/types/packages/conan/file_metadatum_type_spec.rb spec/graphql/types/packages/package_type_enum_spec.rb spec/helpers/admin/deploy_key_helper_spec.rb spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/having_constraints_spec.rbKnapsack report generator started!138/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!139/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!140/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!141/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!142/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!143/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!144/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!145/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!146/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!147/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!148/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!149/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!150/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!151/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!152/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!153/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!154/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!155/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!156/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!157/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!158/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!159/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!160/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!161/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!162/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!163/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!164/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!165/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!166/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!167/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!168/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!169/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!170/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!171/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!172/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!173/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!174/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!175/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!176Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}177Test environment set up in 0.665319976 seconds178ApplicationSetting179 example at ./spec/models/application_setting_spec.rb:12180 example at ./spec/models/application_setting_spec.rb:13181 is expected to eq nil182 is expected to be valid183 is expected to be present184 is expected to have db column named auto_devops_enabled185 behaves like sanitizable186 includes Sanitizable187 #default_branch_name188 when input includes javascript tags189 gets sanitized190 #default_branch_name validation191 when input contains pre-escaped html entities192 is not valid193 when it contains a path component194 is not valid195 default values196 is expected to eq 1197 is expected to eq {}198 is expected to eq {}199 is expected to eq {}200 validations201 is expected to allow :home_page_url to be ‹nil›202 is expected to allow :home_page_url to be ‹"http://example.com"›203 is expected to allow :home_page_url to be ‹"https://example.com"›204 is expected not to allow :home_page_url to be ‹"ftp://example.com"›205 is expected to allow :after_sign_out_path to be ‹nil›206 is expected to allow :after_sign_out_path to be ‹"http://example.com"›207 is expected to allow :after_sign_out_path to be ‹"https://example.com"›208 is expected not to allow :after_sign_out_path to be ‹"ftp://example.com"›209 is expected to allow :commit_email_hostname to be ‹"dev.gitlab.com"›210 is expected not to allow :commit_email_hostname to be ‹"@dev.gitlab"›211 is expected to allow :container_expiration_policies_enable_historic_entries to be ‹true› or ‹false›212 is expected not to allow :container_expiration_policies_enable_historic_entries to be ‹nil›213 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@gitlab.com"›214 is expected to allow :lets_encrypt_notification_email to be ‹nil›215 is expected not to allow :lets_encrypt_notification_email to be ‹"notanemail"›216 is expected not to allow :lets_encrypt_notification_email to be ‹"myemail@example.com"›217 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@test.example.com"›218 is expected to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192...›219 is expected not to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192...›220 is expected to allow :outbound_local_requests_whitelist to be ‹["111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›221 is expected not to allow :outbound_local_requests_whitelist to be ‹["1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›222 is expected not to allow :outbound_local_requests_whitelist to be ‹["ğitlab.com"]›223 is expected to allow :outbound_local_requests_whitelist to be ‹["xn--itlab-j1a.com"]›224 is expected not to allow :outbound_local_requests_whitelist to be ‹["<h1></h1>"]›225 is expected to allow :outbound_local_requests_whitelist to be ‹["gitlab.com"]›226 is expected not to allow :outbound_local_requests_whitelist to be ‹nil›227 is expected to allow :outbound_local_requests_whitelist to be ‹[]›228 is expected to allow :static_objects_external_storage_url to be ‹nil›229 is expected to allow :static_objects_external_storage_url to be ‹"http://example.com"›230 is expected to allow :static_objects_external_storage_url to be ‹"https://example.com"›231 is expected to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›232 is expected not to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›233 is expected not to allow :protected_paths to be ‹nil›234 is expected to allow :protected_paths to be ‹[]›235 is expected to allow :push_event_hooks_limit to be ‹3›236 is expected not to allow :push_event_hooks_limit to be ‹"three"›237 is expected not to allow :push_event_hooks_limit to be ‹nil›238 is expected to allow :push_event_activities_limit to be ‹3›239 is expected not to allow :push_event_activities_limit to be ‹"three"›240 is expected not to allow :push_event_activities_limit to be ‹nil›241 is expected to validate that :container_registry_delete_tags_service_timeout looks like an integer greater than or equal to 0242 is expected to validate that :container_registry_cleanup_tags_service_max_list_size looks like an integer greater than or equal to 0243 is expected to validate that :container_registry_data_repair_detail_worker_max_concurrency looks like an integer greater than or equal to 0244 is expected to validate that :container_registry_expiration_policies_worker_capacity looks like an integer greater than or equal to 0245 is expected to allow :container_registry_expiration_policies_caching to be ‹true› or ‹false›246 is expected to validate that :container_registry_import_max_tags_count looks like an integer greater than or equal to 0247 is expected to validate that :container_registry_import_max_retries looks like an integer greater than or equal to 0248 is expected to validate that :container_registry_import_start_max_retries looks like an integer greater than or equal to 0249 is expected to validate that :container_registry_import_max_step_duration looks like an integer greater than or equal to 0250 is expected to validate that :container_registry_pre_import_timeout looks like an integer greater than or equal to 0251 is expected to validate that :container_registry_import_timeout looks like an integer greater than or equal to 0252 is expected to validate that :container_registry_pre_import_tags_rate looks like a number greater than or equal to 0253 is expected not to allow :container_registry_data_repair_detail_worker_max_concurrency to be ‹nil›254 is expected not to allow :container_registry_import_max_tags_count to be ‹nil›255 is expected not to allow :container_registry_import_max_retries to be ‹nil›256 is expected not to allow :container_registry_import_start_max_retries to be ‹nil›257 is expected not to allow :container_registry_import_max_step_duration to be ‹nil›258 is expected not to allow :container_registry_pre_import_timeout to be ‹nil›259 is expected not to allow :container_registry_import_timeout to be ‹nil›260 is expected not to allow :container_registry_pre_import_tags_rate to be ‹nil›261 is expected to allow :container_registry_pre_import_tags_rate to be ‹1.5›262 is expected to validate that :container_registry_import_target_plan cannot be empty/falsy263 is expected to validate that :container_registry_import_created_before cannot be empty/falsy264 is expected to validate that :dependency_proxy_ttl_group_policy_worker_capacity looks like an integer greater than or equal to 0265 is expected not to allow :dependency_proxy_ttl_group_policy_worker_capacity to be ‹nil›266 is expected to validate that :packages_cleanup_package_file_worker_capacity looks like an integer greater than or equal to 0267 is expected not to allow :packages_cleanup_package_file_worker_capacity to be ‹nil›268 is expected to validate that :package_registry_cleanup_policies_worker_capacity looks like an integer greater than or equal to 0269 is expected not to allow :package_registry_cleanup_policies_worker_capacity to be ‹nil›270 is expected to validate that :snippet_size_limit looks like an integer greater than 0271 is expected to validate that :wiki_page_max_content_bytes looks like an integer greater than or equal to 1024272 is expected to allow :wiki_asciidoc_allow_uri_includes to be ‹true› or ‹false›273 is expected not to allow :wiki_asciidoc_allow_uri_includes to be ‹nil›274 is expected to validate that :max_artifacts_size cannot be empty/falsy275 is expected to validate that :max_artifacts_size looks like an integer greater than 0276 is expected to validate that :max_yaml_size_bytes cannot be empty/falsy277 is expected to validate that :max_yaml_size_bytes looks like an integer greater than 0278 is expected to validate that :max_yaml_depth cannot be empty/falsy279 is expected to validate that :max_yaml_depth looks like an integer greater than 0280 is expected to validate that :max_pages_size cannot be empty/falsy281 is expected to validate that :max_pages_custom_domains_per_project cannot be empty/falsy282 is expected to validate that :max_terraform_state_size_bytes cannot be empty/falsy283 is expected to validate that :max_terraform_state_size_bytes looks like an integer greater than or equal to 0284 is expected to allow :user_defaults_to_private_profile to be ‹true› or ‹false›285 is expected not to allow :user_defaults_to_private_profile to be ‹nil›286 is expected to allow :deny_all_requests_except_allowed to be ‹[true, false]›287 is expected not to allow :deny_all_requests_except_allowed to be ‹nil›288 ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)289 ensures max_pages_custom_domains_per_project is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)290 is expected to validate that :jobs_per_stage_page_size cannot be empty/falsy291 is expected to validate that :jobs_per_stage_page_size looks like an integer greater than or equal to 0292 is expected not to allow :minimum_password_length to be ‹7›293 is expected not to allow :minimum_password_length to be ‹129›294 is expected not to allow :minimum_password_length to be ‹nil›295 is expected not to allow :minimum_password_length to be ‹"abc"›296 is expected to allow :minimum_password_length to be ‹10›297 is expected to allow :issues_create_limit to be ‹300›298 is expected not to allow :issues_create_limit to be ‹"three"›299 is expected not to allow :issues_create_limit to be ‹nil›300 is expected not to allow :issues_create_limit to be ‹10.5›301 is expected not to allow :issues_create_limit to be ‹-1›302 is expected to allow :raw_blob_request_limit to be ‹0›303 is expected not to allow :raw_blob_request_limit to be ‹"abc"›304 is expected not to allow :raw_blob_request_limit to be ‹nil›305 is expected not to allow :raw_blob_request_limit to be ‹10.5›306 is expected not to allow :raw_blob_request_limit to be ‹-1›307 is expected to allow :pipeline_limit_per_project_user_sha to be ‹0›308 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹"abc"›309 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹nil›310 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹10.5›311 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹-1›312 is expected not to allow :hashed_storage_enabled to be ‹false›313 is expected to allow :repository_storages_weighted to be ‹{"default" => 0}›314 is expected to allow :repository_storages_weighted to be ‹{"default" => 50}›315 is expected to allow :repository_storages_weighted to be ‹{"default" => 100}›316 is expected to allow :repository_storages_weighted to be ‹{"default" => "90"}›317 is expected to allow :repository_storages_weighted to be ‹{"default" => nil}›318 is expected not to allow :repository_storages_weighted to be ‹{"default" => -1}›, producing a custom validation error on failure319 is expected not to allow :repository_storages_weighted to be ‹{"default" => 101}›, producing a custom validation error on failure320 is expected not to allow :repository_storages_weighted to be ‹{"default" => 100, shouldntexist: 50}›, producing a custom validation error on failure321 is expected to allow :notes_create_limit to be ‹400›322 is expected not to allow :notes_create_limit to be ‹"two"›323 is expected not to allow :notes_create_limit to be ‹nil›324 is expected not to allow :notes_create_limit to be ‹5.5›325 is expected not to allow :notes_create_limit to be ‹-2›326 is expected to allow :search_rate_limit to be ‹400›327 is expected not to allow :search_rate_limit to be ‹"two"›328 is expected not to allow :search_rate_limit to be ‹nil›329 is expected not to allow :search_rate_limit to be ‹5.5›330 is expected not to allow :search_rate_limit to be ‹-2›331 is expected to allow :search_rate_limit_unauthenticated to be ‹400›332 is expected not to allow :search_rate_limit_unauthenticated to be ‹"two"›333 is expected not to allow :search_rate_limit_unauthenticated to be ‹nil›334 is expected not to allow :search_rate_limit_unauthenticated to be ‹5.5›335 is expected not to allow :search_rate_limit_unauthenticated to be ‹-2›336 is expected to allow :users_get_by_id_limit to be ‹400›337 is expected not to allow :users_get_by_id_limit to be ‹"two"›338 is expected not to allow :users_get_by_id_limit to be ‹nil›339 is expected not to allow :users_get_by_id_limit to be ‹5.5›340 is expected not to allow :users_get_by_id_limit to be ‹-2›341 is expected to allow :projects_api_rate_limit_unauthenticated to be ‹400›342 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹"two"›343 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹nil›344 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹5.5›345 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹-2›346 is expected to allow :gitlab_shell_operation_limit to be ‹400›347 is expected not to allow :gitlab_shell_operation_limit to be ‹"two"›348 is expected not to allow :gitlab_shell_operation_limit to be ‹nil›349 is expected not to allow :gitlab_shell_operation_limit to be ‹5.5›350 is expected not to allow :gitlab_shell_operation_limit to be ‹-2›351 is expected to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›352 is expected not to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›353 is expected not to allow :notes_create_limit_allowlist to be ‹nil›354 is expected to allow :notes_create_limit_allowlist to be ‹[]›355 is expected to allow :users_get_by_id_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›356 is expected not to allow :users_get_by_id_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›357 is expected not to allow :users_get_by_id_limit_allowlist to be ‹nil›358 is expected to allow :users_get_by_id_limit_allowlist to be ‹[]›359 is expected to allow :whats_new_variant to be ‹"all_tiers"›360 is expected to allow :whats_new_variant to be ‹"current_tier"›361 is expected to allow :whats_new_variant to be ‹"disabled"›362 is expected not to allow :whats_new_variant to be ‹nil›363 is expected to allow :public_runner_releases_url to be ‹"http://example.com/"›364 is expected not to allow :public_runner_releases_url to be ‹nil›365 is expected to allow :update_runner_versions_enabled to be ‹[true, false]›366 is expected not to allow :update_runner_versions_enabled to be ‹nil›367 is expected not to allow :valid_runner_registrars to be ‹[""]›368 is expected not to allow :valid_runner_registrars to be ‹["OBVIOUSLY_WRONG"]›369 is expected not to allow :valid_runner_registrars to be ‹["project", "project"]›370 is expected not to allow :valid_runner_registrars to be ‹[nil]›371 is expected not to allow :valid_runner_registrars to be ‹nil›372 is expected to allow :valid_runner_registrars to be ‹[]›373 is expected to allow :valid_runner_registrars to be ‹["project", "group"]›374 is expected to allow :jira_connect_proxy_url to be ‹"http://example.com"›375 is expected to allow :jira_connect_proxy_url to be ‹"https://example.com"›376 is expected to allow :bulk_import_enabled to be ‹true› or ‹false›377 is expected not to allow :bulk_import_enabled to be ‹nil›378 is expected to allow :allow_runner_registration_token to be ‹true› or ‹false›379 is expected not to allow :allow_runner_registration_token to be ‹nil›380 is expected to allow :gitlab_dedicated_instance to be ‹true› or ‹false›381 is expected not to allow :gitlab_dedicated_instance to be ‹nil›382 is expected not to allow :database_apdex_settings to be ‹{random: :value}›383 is expected to allow :database_apdex_settings to be ‹nil›384 is expected to allow :database_apdex_settings to be ‹{prometheus_api_url: "Prometheus URL", apdex_sli_query: {:main=>"Apdex SLI query main", :ci=>"Apdex SLI query ci"}, apdex_slo: {:main=>0.99, :ci=>0.98}}›385 is expected to allow :silent_mode_enabled to be ‹[true, false]›386 is expected not to allow :silent_mode_enabled to be ‹nil›387 is expected to allow :ci_max_includes to be ‹0›388 is expected to allow :ci_max_includes to be ‹200›389 is expected not to allow :ci_max_includes to be ‹"abc"›390 is expected not to allow :ci_max_includes to be ‹nil›391 is expected not to allow :ci_max_includes to be ‹10.5›392 is expected not to allow :ci_max_includes to be ‹-1›393 is expected to allow :remember_me_enabled to be ‹[true, false]›394 is expected not to allow :remember_me_enabled to be ‹nil›395 is expected to validate that :namespace_aggregation_schedule_lease_duration_in_seconds looks like an integer greater than 0396 is expected to allow :instance_level_code_suggestions_enabled to be ‹[true, false]›397 is expected not to allow :instance_level_code_suggestions_enabled to be ‹nil›398 is expected to validate that :max_attachment_size cannot be empty/falsy399 is expected to validate that :max_attachment_size looks like an integer greater than 0400 is expected to validate that :max_export_size cannot be empty/falsy401 is expected to validate that :max_export_size looks like an integer greater than or equal to 0402 is expected to validate that :max_import_size cannot be empty/falsy403 is expected to validate that :max_import_size looks like an integer greater than or equal to 0404 is expected to validate that :local_markdown_version looks like an integer greater than or equal to 0 and less than 65536405 is expected to validate that :archive_builds_in_seconds looks like an integer greater than or equal to 86400, producing a custom validation error on failure406 when deactivate_dormant_users is enabled407 is expected not to allow :deactivate_dormant_users_period to be ‹nil›408 is expected to allow :deactivate_dormant_users_period to be ‹90›409 is expected to allow :deactivate_dormant_users_period to be ‹365›410 is expected not to allow :deactivate_dormant_users_period to be ‹89›411 help_page_documentation_base_url validations412 is expected to allow :help_page_documentation_base_url to be ‹nil›413 is expected to allow :help_page_documentation_base_url to be ‹"https://docs.gitlab.com"›414 is expected to allow :help_page_documentation_base_url to be ‹"http://127.0.0.1"›415 is expected not to allow :help_page_documentation_base_url to be ‹"docs.gitlab.com"›416 when url length validation417 when value string length is 255 characters418 allows the value419 when value string length exceeds 255 characters420 does not allow the value421 grafana_url validations422 is expected to allow :grafana_url to be ‹"http://example.com"›423 is expected to allow :grafana_url to be ‹"https://example.com"›424 is expected not to allow :grafana_url to be ‹"ftp://example.com"›425 is expected not to allow :grafana_url to be ‹"javascript:alert(window.opener.document.location)"›426 is expected to allow :grafana_url to be ‹"/-/grafana"›427 is expected to allow :grafana_url to be ‹"http://localhost:9000"›428 when local URLs are not allowed in system hooks429 is expected not to allow :grafana_url to be ‹"http://localhost:9000"›430 is expected not to allow :jira_connect_proxy_url to be ‹"http://localhost:9000"›431 with invalid grafana URL432 adds an error433 with blocked grafana URL434 adds an error435 default_branch_name validations436 when javascript tags get sanitized properly437 gets sanitized properly438 spam_check_endpoint439 when spam_check_endpoint is enabled440 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›441 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›442 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›443 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›444 is expected not to allow :spam_check_endpoint_url to be ‹nil›445 is expected not to allow :spam_check_endpoint_url to be ‹""›446 when spam_check_endpoint is NOT enabled447 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›448 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›449 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›450 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›451 is expected to allow :spam_check_endpoint_url to be ‹nil›452 is expected to allow :spam_check_endpoint_url to be ‹""›453 snowplow settings454 when snowplow is enabled455 is expected not to allow :snowplow_collector_hostname to be ‹nil›456 is expected to allow :snowplow_collector_hostname to be ‹"snowplow.gitlab.com"›457 is expected not to allow :snowplow_collector_hostname to be ‹"/example"›458 when snowplow is not enabled459 is expected to allow :snowplow_collector_hostname to be ‹nil›460 when mailgun_events_enabled is enabled461 is expected to validate that :mailgun_signing_key cannot be empty/falsy462 is expected to validate that the length of :mailgun_signing_key is at most 255463 when mailgun_events_enabled is not enabled464 is expected not to validate that :mailgun_signing_key cannot be empty/falsy465 when user accepted let's encrypt terms of service466 is expected not to allow :lets_encrypt_notification_email to be ‹nil›467 EKS integration468 integration is disabled469 is expected to allow :eks_account_id to be ‹nil›470 is expected to allow :eks_access_key_id to be ‹nil›471 is expected to allow :eks_secret_access_key to be ‹nil›472 integration is enabled473 is expected to allow :eks_account_id to be ‹"123456789012"›474 is expected not to allow :eks_account_id to be ‹nil›475 is expected not to allow :eks_account_id to be ‹"123"›476 is expected not to allow :eks_account_id to be ‹"12345678901a"›477 is expected to allow :eks_access_key_id to be ‹"access-key-id-12"›478 is expected not to allow :eks_access_key_id to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›479 is expected not to allow :eks_access_key_id to be ‹"short-key"›480 is expected to allow :eks_access_key_id to be ‹nil›481 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›482 is expected to allow :eks_secret_access_key to be ‹nil›483 access key is specified484 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›485 is expected not to allow :eks_secret_access_key to be ‹nil›486 GitLab for Slack app settings487 when GitLab for Slack app is disabled488 is expected to allow :slack_app_id to be ‹nil›489 is expected to allow :slack_app_secret to be ‹nil›490 is expected to allow :slack_app_signing_secret to be ‹nil›491 is expected to allow :slack_app_verification_token to be ‹nil›492 when GitLab for Slack app is enabled493 is expected to allow :slack_app_id to be ‹"123456789a"›494 is expected not to allow :slack_app_id to be ‹nil›495 is expected to allow :slack_app_secret to be ‹"secret"›496 is expected not to allow :slack_app_secret to be ‹nil›497 is expected to allow :slack_app_signing_secret to be ‹"signing-secret"›498 is expected not to allow :slack_app_signing_secret to be ‹nil›499 is expected to allow :slack_app_verification_token to be ‹"token"›500 is expected not to allow :slack_app_verification_token to be ‹nil›501 default_artifacts_expire_in502 sets an error if it cannot parse503 sets an error if it is blank504 sets the value if it is valid505 sets the value if it is 0506 usage_ping_enabled setting507 when setting is in database508 with usage_ping_enabled disabled509 behaves like usage ping disabled510 is expected to eq false511 with usage_ping_enabled enabled512 behaves like usage ping enabled513 is expected to eq true514 when setting is in GitLab config515 with usage_ping_enabled disabled516 behaves like usage ping disabled517 is expected to eq false518 with usage_ping_enabled enabled519 behaves like usage ping enabled520 is expected to eq true521 when setting in database false and setting in GitLab config true522 behaves like usage ping disabled523 is expected to eq false524 when setting database true and setting in GitLab config false525 behaves like usage ping disabled526 is expected to eq false527 when setting database true and setting in GitLab config true528 behaves like usage ping enabled529 is expected to eq true530 setting validated as `addressable_url` configured with external URI531 is valid by default532 is invalid when unpersisted `deny_all_requests_except_allowed` property is true533 key restrictions534 does not allow all key types to be disabled535 #ensure_key_restrictions!536 with non-compliant FIPS settings537 in non-FIPS mode538 keeps existing key restrictions539 in FIPS mode540 updates key restrictions to meet FIPS compliance541 behaves like an object with email-formatted attributes542 specifically its :abuse_notification_email attribute543 with a value of 'info@example.com'544 is valid545 with a value of 'info+test@example.com'546 is valid547 with a value of 'o'reilly@example.com'548 is valid549 with a value of 'mailto:test@example.com'550 is valid551 with a value of 'lol!'+=?><#$%^&*()@gmail.com'552 is valid553 with a value of 'foobar'554 is invalid555 with a value of 'test@test@example.com'556 is invalid557 repository_storages is a String, not an Array558 is expected to eq ["default"]559 auto_devops_domain setting560 when auto_devops_enabled? is true561 can be blank562 with a valid value563 is valid564 with an invalid value565 is invalid566 repository storages567 inclusion568 is expected to allow :repository_storages to be ‹"custom1"›569 is expected to allow :repository_storages to be ‹["custom2", "custom3"]›570 is expected not to allow :repository_storages to be ‹"alternative"›571 is expected not to allow :repository_storages to be ‹["alternative", "custom1"]›572 presence573 is expected not to allow :repository_storages to be ‹[]›574 is expected not to allow :repository_storages to be ‹""›575 is expected not to allow :repository_storages to be ‹nil›576 housekeeping settings577 is expected not to allow :housekeeping_optimize_repository_period to be ‹0›578 gitaly timeouts579 validates that the default_timeout is lower than the max_request_duration580 is expected to validate that :gitaly_timeout_default looks like an integer greater than or equal to 0581 is expected to validate that :gitaly_timeout_medium looks like an integer greater than or equal to 0582 is expected to validate that :gitaly_timeout_fast looks like an integer greater than or equal to 0583 validates that gitaly_timeout_medium is lower than timeout_default584 validates that gitaly_timeout_fast is lower than timeout_default585 accepts all timeouts equal586 accepts timeouts in descending order587 rejects timeouts in ascending order588 rejects medium timeout larger than default589 rejects medium timeout smaller than fast590 does not prevent from saving when gitaly timeouts were previously invalid591 enforcing terms592 requires the terms to present when enforcing users to accept593 is valid when terms are created594 when external authorization service is enabled595 is expected not to allow :external_authorization_service_url to be ‹"not a URL"›596 is expected to allow :external_authorization_service_url to be ‹"https://example.com"›597 is expected to allow :external_authorization_service_url to be ‹""›598 is expected not to allow :external_authorization_service_default_label to be ‹nil›599 is expected not to allow :external_authorization_service_timeout to be ‹11›600 is expected not to allow :external_authorization_service_timeout to be ‹0›601 is expected not to allow :external_auth_client_cert to be ‹"not a certificate"›602 is expected to allow :external_auth_client_cert to be ‹""›603 is expected to allow :external_auth_client_key to be ‹""›604 when setting a valid client certificate for external authorization605 requires a valid client key when a certificate is set606 requires a matching certificate607 the credentials are valid when the private key can be read and matches the certificate608 asset proxy settings609 #asset_proxy_url610 is expected not to allow :asset_proxy_url to be ‹""›611 is expected to allow :asset_proxy_url to be ‹"http://example.com"›612 is expected to allow :asset_proxy_url to be ‹"https://example.com"›613 is expected not to allow :asset_proxy_url to be ‹"ftp://example.com"›614 is not required when asset proxy is disabled615 #asset_proxy_secret_key616 is expected not to allow :asset_proxy_secret_key to be ‹""›617 is expected to allow :asset_proxy_secret_key to be ‹"anything"›618 is not required when asset proxy is disabled619 is encrypted620 #asset_proxy_whitelist621 when given an Array622 sets the domains and adds current running host623 when given a String624 sets multiple domains with spaces625 sets multiple domains with newlines and a space626 sets multiple domains with commas627 #asset_proxy_allowlist628 when given an Array629 sets the domains and adds current running host630 when given a String631 sets multiple domains with spaces632 sets multiple domains with newlines and a space633 sets multiple domains with commas634 #ci_jwt_signing_key635 is expected not to allow :ci_jwt_signing_key to be ‹""›636 is expected not to allow :ci_jwt_signing_key to be ‹"invalid RSA key"›637 is expected to allow :ci_jwt_signing_key to be ‹nil›638 is expected to allow :ci_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXwIBAAKBgQCZF3Kd7XncztXmFivQvsnZApNPLZ5MKrdfVoz37j82e6zfF9Kx\npEWmDUYmhvcNLZYbuDH/RikdjpBdZSplOGwHLZ6PxcGLWGLjunA/RgMOwGB0TOPY\nbwqhDZKUiRtzVuh0L3sHKsfXZlFwXtFc5B8Tyk7DFWahvXI3oOTh0pm1MwIDAQAB\nAoGBAJZLCa/3WoKm4CERNRSqqRiNybaar2RRL1K+cohYceB4DB+8kJDrF6FMOMlM\nCK/8R/iQnSziYSzuL9Ywoi1a9dmVUvj4n0SlMe1ejaX0y9tUoB+EIw+nHs+kLIOE\nDkOvSP+kdiBbeYbEyajagVm+0SL0XXKaeOLuJuHxSmMj8+SJAkEAzAdbWDyLDqhH\nXGrPz8xZ4mL/SU/KagouAioqZ0CJSjtKQ/kMioNkjbXvsl5mLA7d6O7QqocjCdlt\n6idl...›639 is encrypted640 #customers_dot_jwt_signing_key641 is expected not to allow :customers_dot_jwt_signing_key to be ‹""›642 is expected not to allow :customers_dot_jwt_signing_key to be ‹"invalid RSA key"›643 is expected to allow :customers_dot_jwt_signing_key to be ‹nil›644 is expected to allow :customers_dot_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCfUfk1Ebdx4DB6cBkO/wbc5sS9cu8tRd6YMPpaV0YCoY50rn23\nZRBT+1bWFW011aiDr4xjYwLv34TJNbOdqax0UvhTgytwL7HwykoCQqiThaWkFIDI\nqQnRcudJGTZ4n4GJT6PUDVo3nZfZhQa0mPaLZYloifBhNjj+zZVOAOE0SQIDAQAB\nAoGBAIl+pjKdkpKNZ2kTOx0NDPAxnFLfUPjiVqNDiZvTu9DjelzKhiZy6u9/dsaV\ngUW3mZHkO6U+OrenUCKR3OxRFUmF3iQO2UV81ub1LZy5MhmjfBHVvvfwRcz3eigq\nzvAJxRvUIOwPf1wyhqjuFj5bLEI9LiW5Ee90LoM0hzAd8/cxAkEA0Dpm2OC+UGt2\nAJZ2WYB90KuOYGC0eB5ipmWgE05f+qP8C7m4ThNd7IqBZSMacB4cGSjkM4907X1L\nuJyo...›645 is encrypted646 #cloud_license_auth_token647 is expected to allow :cloud_license_auth_token to be ‹nil›648 is encrypted649 static objects external storage650 when URL is set651 is expected not to allow :static_objects_external_storage_auth_token to be ‹nil›652 sourcegraph settings653 is invalid if sourcegraph is enabled and no url is provided654 gitpod settings655 is invalid if gitpod is enabled and no url is provided656 is invalid if gitpod is enabled and an empty url is provided657 is invalid if gitpod is enabled and an invalid url is provided658 diagrams.net settings659 when diagrams.net is enabled660 is expected not to allow :diagramsnet_url to be ‹nil›661 is expected to allow :diagramsnet_url to be ‹"https://embed.diagrams.net"›662 is expected not to allow :diagramsnet_url to be ‹"not a URL"›663 when diagrams.net is not enabled664 is expected to allow :diagramsnet_url to be ‹nil›665 throttle_* settings666 throttle_setting: :throttle_unauthenticated_api_requests_per_period667 is expected to allow :throttle_unauthenticated_api_requests_per_period to be ‹3›668 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹-3›669 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹0›670 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹"three"›671 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹nil›672 throttle_setting: :throttle_unauthenticated_api_period_in_seconds673 is expected to allow :throttle_unauthenticated_api_period_in_seconds to be ‹3›674 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹-3›675 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹0›676 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹"three"›677 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹nil›678 throttle_setting: :throttle_unauthenticated_requests_per_period679 is expected to allow :throttle_unauthenticated_requests_per_period to be ‹3›680 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹-3›681 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹0›682 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹"three"›683 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹nil›684 throttle_setting: :throttle_unauthenticated_period_in_seconds685 is expected to allow :throttle_unauthenticated_period_in_seconds to be ‹3›686 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹-3›687 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹0›688 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹"three"›689 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹nil›690 throttle_setting: :throttle_authenticated_api_requests_per_period691 is expected to allow :throttle_authenticated_api_requests_per_period to be ‹3›692 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹-3›693 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹0›694 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹"three"›695 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹nil›696 throttle_setting: :throttle_authenticated_api_period_in_seconds697 is expected to allow :throttle_authenticated_api_period_in_seconds to be ‹3›698 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹-3›699 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹0›700 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹"three"›701 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹nil›702 throttle_setting: :throttle_authenticated_web_requests_per_period703 is expected to allow :throttle_authenticated_web_requests_per_period to be ‹3›704 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹-3›705 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹0›706 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹"three"›707 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹nil›708 throttle_setting: :throttle_authenticated_web_period_in_seconds709 is expected to allow :throttle_authenticated_web_period_in_seconds to be ‹3›710 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹-3›711 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹0›712 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹"three"›713 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹nil›714 throttle_setting: :throttle_unauthenticated_packages_api_requests_per_period715 is expected to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹3›716 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹-3›717 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹0›718 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹"three"›719 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹nil›720 throttle_setting: :throttle_unauthenticated_packages_api_period_in_seconds721 is expected to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹3›722 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹-3›723 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹0›724 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹"three"›725 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹nil›726 throttle_setting: :throttle_authenticated_packages_api_requests_per_period727 is expected to allow :throttle_authenticated_packages_api_requests_per_period to be ‹3›728 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹-3›729 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹0›730 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹"three"›731 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹nil›732 throttle_setting: :throttle_authenticated_packages_api_period_in_seconds733 is expected to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹3›734 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹-3›735 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹0›736 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹"three"›737 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹nil›738 throttle_setting: :throttle_unauthenticated_files_api_requests_per_period739 is expected to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹3›740 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹-3›741 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹0›742 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹"three"›743 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹nil›744 throttle_setting: :throttle_unauthenticated_files_api_period_in_seconds745 is expected to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹3›746 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹-3›747 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹0›748 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹"three"›749 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹nil›750 throttle_setting: :throttle_authenticated_files_api_requests_per_period751 is expected to allow :throttle_authenticated_files_api_requests_per_period to be ‹3›752 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹-3›753 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹0›754 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹"three"›755 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹nil›756 throttle_setting: :throttle_authenticated_files_api_period_in_seconds757 is expected to allow :throttle_authenticated_files_api_period_in_seconds to be ‹3›758 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹-3›759 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹0›760 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹"three"›761 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹nil›762 throttle_setting: :throttle_unauthenticated_deprecated_api_requests_per_period763 is expected to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹3›764 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹-3›765 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹0›766 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹"three"›767 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹nil›768 throttle_setting: :throttle_unauthenticated_deprecated_api_period_in_seconds769 is expected to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹3›770 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹-3›771 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹0›772 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹"three"›773 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹nil›774 throttle_setting: :throttle_authenticated_deprecated_api_requests_per_period775 is expected to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹3›776 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹-3›777 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹0›778 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹"three"›779 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹nil›780 throttle_setting: :throttle_authenticated_deprecated_api_period_in_seconds781 is expected to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹3›782 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹-3›783 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹0›784 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹"three"›785 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹nil›786 throttle_setting: :throttle_authenticated_git_lfs_requests_per_period787 is expected to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹3›788 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹-3›789 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹0›790 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹"three"›791 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹nil›792 throttle_setting: :throttle_authenticated_git_lfs_period_in_seconds793 is expected to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹3›794 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹-3›795 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹0›796 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹"three"›797 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹nil›798 sidekiq job limiter settings799 has the right defaults800 is expected to allow :sidekiq_job_limiter_mode to be ‹"track"›801 is expected to validate that :sidekiq_job_limiter_compression_threshold_bytes looks like an integer greater than or equal to 0802 is expected to validate that :sidekiq_job_limiter_limit_bytes looks like an integer greater than or equal to 0803 prometheus settings804 validates metrics_method_call_threshold805 error tracking settings806 with error tracking disabled807 is expected to allow :error_tracking_api_url to be ‹nil›808 with error tracking enabled809 is expected to allow :error_tracking_api_url to be ‹"http://example.com"›810 is expected to allow :error_tracking_api_url to be ‹"https://example.com"›811 is expected not to allow :error_tracking_api_url to be ‹"ftp://example.com"›812 is expected to validate that :error_tracking_api_url cannot be empty/falsy813 for default_preferred_language814 is expected to allow :default_preferred_language to be ‹"bg"›, ‹"cs_CZ"›, ‹"da_DK"›, ‹"de"›, ‹"en"›, ‹"eo"›, ‹"es"›, ‹"fil_PH"›, ‹"fr"›, ‹"gl_ES"›, ‹"id_ID"›, ‹"it"›, ‹"ja"›, ‹"ko"›, ‹"nb_NO"›, ‹"nl_NL"›, ‹"pl_PL"›, ‹"pt_BR"›, ‹"ro_RO"›, ‹"ru"›, ‹"si_LK"›, ‹"tr_TR"›, ‹"uk"›, ‹"zh_CN"›, ‹"zh_HK"›, or ‹"zh_TW"›815 is expected not to allow :default_preferred_language to be ‹nil›, ‹""›, or ‹"invalid_locale"›816 for default_syntax_highlighting_theme817 is expected to allow :default_syntax_highlighting_theme to be ‹1›, ‹2›, ‹3›, ‹4›, ‹5›, or ‹6›818 is expected not to allow :default_syntax_highlighting_theme to be ‹nil›, ‹0›, or ‹7›819 default_branch_protections_defaults validations820 is expected to validate jsonb schema "default_branch_protection_defaults"821 when json is more than 1kb822 is expected not to allow :default_branch_protection_defaults to be ‹{name: "pihomt9vsbbte6md0rifasg6x29mq42qod4fy7u1qnuz8dc8u4jny52ohblq48x70yyob43g671j10eno2d113k2y3b1ibbdw2s8cz69qht2jca75g6gr403059yo30vbeh7g8kq6vlhl2k632q3t630mgmwyc902szyze4nh6oxeo935wc6da5yuu99esd1g3099xd3k36r0m50bfb8jo6nij1lefbyxbe79pzr3olme5jll988jv0nz9oeuhegeugnhilqqbj6nx7ycalgl2hhphksc0zxvd6aaokvuwtixewcmuuy5d7rs6438vy1fe8yu4qlq3jwiwxiqrv8q4yt0ju44ysq580fdv8zixix13h88i96qykj38lk6ej42ojg7rs0gll394cg7a5q6c0e8s6q9h4kcldos8wv5vc99jo934zmh9x5evsia67j78vrmau0vhima0bzjqw7okprjc102e4toi6l5vndi9rqzrasyiz123u40nbg0bul9h3q5rulmwgkrlzt8bj0z5vee9z60m8ehhzocw8ismw6fg3thrc9m4xoylee1srbyw4n14xx93pmvywq85vi5wyk74ppu3x0ze4y8gfqi1t8c22zy2zq3ib5bapq2ovno5mx2648kcz3nii8nn7v6f1xnw2cv001q5e4dtidwa34m0jdjj88szkczm9vjoljyrx6asaxj4qr1rabjypojdr25r1hk2s5a3sntaz4ixy9aoqnc0g02hvoezcbugeqdu8zmo7c8yzv4s1j3gfnlekpbk1ffqbbb8i5ib9a3otnntx1qwfhtrxg1bc7436bz4ioh542baj2oeiv5qf8ju95pgm7rojrs46s9dg2c22ahzse9cwfjdpfy7hn7f06qimqz6p7p2jqm6s5cgclkdbsyde6r2cr8yj106x466uwxe83bzf85im1ha1hbt32k7bt5zr1l3uja6kxsxbeb6oalehs31fndier671i053nd5awdtyokvw420d8idb84fzjkkgvbseuxoyu1fowsiqq6mcblmeh8x2j2f826w5rrdiwbnos2i3i45uptmlqzjijji4za5lb5buogve878blv9sy2i654695tn"}›823 when json less than 1kb824 is expected to allow :default_branch_protection_defaults to be ‹{name: "0icdseznwuk8fp64msrlh8aq00m92voecqy5tbfg4ujiyvjqb6aemzomadoual4z70sinxma285vuo8w1a93ka5j2x0yk13i6vfmxceqwjncospkixn4b2beq13gstzv1ke195jig93x0nq7r9n7bo9ur0mczmu8ysvybf7pjc234fkeuid8hezbuwlpbtgsdvddztfsot8cxd4aho22iuhuki9cklncb4anbiybh5qbysgk0cytemeut6qkjoifd08t31hpk42c7z4ixud7948hb214cgu5lvi9vxscx059cruf0gi87yv47ab6m3hm0g9my63k55n9y90z0tehv92m1fe7w2aedfbizrylp6f0r17c6gdvmzrwvdkis59igip1s2cej4dbopcbo4r47tpwqzw4bfmk81bn5g5c9k6p6qwwmprrpjdvz96wqsmd6rz8mnqh0n75tcjsq5pml9g35ps0uh37qm95q779n3ydbuqqj98mnkdr2yelb7rx"}›825 default_project_visibility, default_group_visibility and restricted_visibility_levels validations826 is expected not to allow :default_group_visibility to be ‹10›827 is expected not to allow :default_project_visibility to be ‹10›828 is expected to allow :default_group_visibility to be ‹20›829 is expected to allow :default_project_visibility to be ‹20›830 sets error messages when default visibility settings are not valid831 when prevent_visibility_restriction FF is disabled832 is expected to allow :default_group_visibility to be ‹10›833 is expected to allow :default_project_visibility to be ‹10›834 is expected to allow :default_group_visibility to be ‹20›835 is expected to allow :default_project_visibility to be ‹20›836 restrict creating duplicates837 returns the current settings838 when ApplicationSettings does not have a primary key839 raises an exception840 ADDRESSABLE_URL_VALIDATION_OPTIONS841 is applied to all addressable_url validated properties842 #disabled_oauth_sign_in_sources=843 removes unknown sources (as strings) from the array844 removes unknown sources (as symbols) from the array845 ignores nil846 performance bar settings847 performance_bar_allowed_group848 with no performance_bar_allowed_group_id saved849 returns nil850 with a performance_bar_allowed_group_id saved851 returns the group852 performance_bar_enabled853 with the Performance Bar is enabled854 returns true855 diff limit settings856 #diff_max_patch_bytes857 validations858 is expected to validate that :diff_max_patch_bytes cannot be empty/falsy859 is expected to validate that :diff_max_patch_bytes looks like an integer greater than or equal to 204800 and less than or equal to 512000860 #diff_max_files861 validations862 is expected to validate that :diff_max_files cannot be empty/falsy863 is expected to validate that :diff_max_files looks like an integer greater than or equal to 1000 and less than or equal to 3000864 #diff_max_lines865 validations866 is expected to validate that :diff_max_lines cannot be empty/falsy867 is expected to validate that :diff_max_lines looks like an integer greater than or equal to 50000 and less than or equal to 100000868 #sourcegraph_url_is_com?869 url: "https://sourcegraph.com", is_com: true870 matches the url with sourcegraph.com871 url: "https://sourcegraph.com/", is_com: true872 matches the url with sourcegraph.com873 url: "https://www.sourcegraph.com", is_com: true874 matches the url with sourcegraph.com875 url: "shttps://www.sourcegraph.com", is_com: false876 matches the url with sourcegraph.com877 url: "https://sourcegraph.example.com/", is_com: false878 matches the url with sourcegraph.com879 url: "https://sourcegraph.org/", is_com: false880 matches the url with sourcegraph.com881 #instance_review_permitted?882 users_over_minimum: -1883 is expected to equal false884 users_over_minimum: 0885 is expected to equal true886 users_over_minimum: 1887 is expected to equal true888 email_restrictions889 when email restrictions are enabled890 allows empty email restrictions891 accepts valid email restrictions regex892 does not accept invalid email restrictions regex893 sets an error when regex is not valid894 when email restrictions are disabled895 allows empty email restrictions896 invalid regex is not valid897 behaves like application settings examples898 predicate method changes when value is updated899 restricted signup domains900 behaves like string of domains901 sets single domain902 sets multiple domains with spaces903 sets multiple domains with newlines and a space904 sets multiple domains with commas905 sets multiple domains with semicolon906 sets multiple domains with mixture of everything907 removes duplicates908 does not fail with garbage values909 does not raise error with nil910 denied signup domains911 sets multiple domain with file912 behaves like string of domains913 sets single domain914 sets multiple domains with spaces915 sets multiple domains with newlines and a space916 sets multiple domains with commas917 sets multiple domains with semicolon918 sets multiple domains with mixture of everything919 removes duplicates920 does not fail with garbage values921 does not raise error with nil922 outbound_local_requests_whitelist923 clears outbound_local_requests_allowlist_arrays memoization924 behaves like string of domains925 sets single domain926 sets multiple domains with spaces927 sets multiple domains with newlines and a space928 sets multiple domains with commas929 sets multiple domains with semicolon930 sets multiple domains with mixture of everything931 removes duplicates932 does not fail with garbage values933 does not raise error with nil934 outbound_local_requests_allowlist_arrays935 separates the IPs and domains936 add_to_outbound_local_requests_whitelist937 adds entry to outbound_local_requests_whitelist938 clears outbound_local_requests_allowlist_arrays memoization939 does not raise error with nil940 does not raise error with nil941 usage ping settings942 when the usage ping is disabled in gitlab.yml943 does not allow the usage ping to be configured944 when the usage ping is disabled in the DB945 returns false for usage_ping_enabled946 when the usage ping is enabled in the DB947 returns false for usage_ping_enabled948 when the usage ping is enabled in gitlab.yml949 allows the usage ping to be configured950 when the usage ping is disabled in the DB951 returns false for usage_ping_enabled952 when the usage ping is enabled in the DB953 returns true for usage_ping_enabled954 #allowed_key_types955 excludes disabled key types956 in non-FIPS mode957 includes all key types by default958 in FIPS mode959 excludes DSA from supported key types960 #key_restriction_for961 returns the restriction value for recognised types962 allows types to be passed as a string963 returns forbidden for unrecognised type964 #allow_signup?965 returns true966 returns false if signup is disabled967 returns false if password authentication is disabled for the web interface968 #pick_repository_storage969 chooses repository based on weight970 #normalized_repository_storage_weights971 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}972 normalizes storage weights973 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}974 normalizes storage weights975 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}976 normalizes storage weights977 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}978 normalizes storage weights979 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}980 normalizes storage weights981 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}982 normalizes storage weights983 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}984 normalizes storage weights985 #user_default_internal_regex_enabled?986 user_default_external: false, user_default_internal_regex: nil, result: false987 is expected to eq false988 user_default_external: false, user_default_internal_regex: "", result: false989 is expected to eq false990 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false991 is expected to eq false992 user_default_external: true, user_default_internal_regex: "", result: false993 is expected to eq false994 user_default_external: true, user_default_internal_regex: nil, result: false995 is expected to eq false996 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true997 is expected to eq true998 #archive_builds_older_than999 when the archive_builds_in_seconds is set1000 is expected to be within 60 of 2023-07-27 03:21:16.828789481 +00001001 when the archive_builds_in_seconds is set1002 is expected to be nil1003 #commit_email_hostname1004 when the value is provided1005 returns the provided value1006 when the value is not provided1007 returns the default from the class1008 kroki_format_supported?1009 returns true when Excalidraw is enabled1010 returns true when BlockDiag is enabled1011 returns false when BlockDiag is disabled1012 returns false when the diagram type is optional and not enabled1013 returns true when the diagram type is enabled by default1014 returns false when the diagram type is unknown1015 kroki_formats1016 returns the value for kroki_formats1017 default_branch_protection_defaults1018 returns the value for default_branch_protection_defaults1019 when provided with content that does not match the JSON schema1020 is expected to allow :default_branch_protection_defaults to be ‹{name: "bar"}›1021 is expected not to allow :default_branch_protection_defaults to be ‹{foo: "bar"}›1022 #static_objects_external_storage_auth_token=1023 stores an encrypted version of the token1024 when token is empty1025 removes an encrypted version of the token1026 with plaintext token only1027 ignores the plaintext token1028 #database_grafana_api_key1029 is encrypted1030 inactive project deletion1031 validates that inactive_projects_send_warning_email_after_months is less than inactive_projects_delete_after_months1032 is expected to validate that :inactive_projects_send_warning_email_after_months looks like a number greater than 01033 is expected to validate that :inactive_projects_delete_after_months looks like a number greater than 01034 is expected to validate that :inactive_projects_min_size_mb looks like a number greater than or equal to 01035 deletes the redis key used for tracking inactive projects deletion warning emails when setting is updated1036 personal accesss token prefix1037 sets the correct default value1038 .personal_access_tokens_disabled?1039 is false1040 #ai_access_token1041 does not modify the token if it is unchanged in the form1042 when `instance_level_code_suggestions_enabled` is true1043 is expected not to allow :ai_access_token to be ‹nil›1044 when `instance_level_code_suggestions_enabled` is false1045 is expected to allow :ai_access_token to be ‹nil›1046Todos::Destroy::EntityLeaveService1047 #execute1048 updating a Project1049 when project is private1050 when user is not a member of the project1051 removes project todos for the provided user1052 access permissions1053 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1054 behaves like using different access permissions1055 is expected not to change `Todo.count`1056 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1057 behaves like using different access permissions1058 is expected to contain exactly #<Todo id: 18, user_id: 1, project_id: 1, target_id: 11, target_type: "Issue", author_id: 4, action: ...-27 04:21:41.487219598 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 15, user_id: 1, project_id: 10, target_id: 9, target_type: "Issue", author_id: 15, action:...07-27 04:21:40.272220858 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1059 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1060 behaves like using different access permissions1061 is expected not to change `Todo.count`1062 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1063 behaves like using different access permissions1064 is expected to contain exactly #<Todo id: 32, user_id: 1, project_id: 1, target_id: 19, target_type: "Issue", author_id: 4, action: ...-27 04:21:47.423536912 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 29, user_id: 1, project_id: 18, target_id: 17, target_type: "Issue", author_id: 25, action...07-27 04:21:45.219500036 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1065 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1066 behaves like using different access permissions1067 is expected not to change `Todo.count`1068 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1069 behaves like using different access permissions1070 is expected to contain exactly #<Todo id: 46, user_id: 1, project_id: 1, target_id: 27, target_type: "Issue", author_id: 4, action: ...-27 04:21:52.555902057 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 43, user_id: 1, project_id: 26, target_id: 25, target_type: "Issue", author_id: 35, action...07-27 04:21:51.512404702 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1071 when project is private in an internal/public group1072 when user is not a member of the project1073 removes project todos for the provided user1074 access permissions1075 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1076 behaves like using different access permissions1077 is expected not to change `Todo.count`1078 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1079 behaves like using different access permissions1080 is expected to contain exactly #<Todo id: 67, user_id: 1, project_id: 30, target_id: 39, target_type: "Issue", author_id: 41, action...-27 04:22:00.067553103 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 64, user_id: 1, project_id: 39, target_id: 37, target_type: "Issue", author_id: 52, action...7-27 04:21:58.972703450 +0000", commit_id: nil, group_id: 72, resolved_by_action: nil, note_id: nil>1081 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1082 behaves like using different access permissions1083 is expected not to change `Todo.count`1084 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1085 behaves like using different access permissions1086 is expected to contain exactly #<Todo id: 81, user_id: 1, project_id: 30, target_id: 47, target_type: "Issue", author_id: 41, action...-27 04:22:05.213403507 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 78, user_id: 1, project_id: 47, target_id: 45, target_type: "Issue", author_id: 62, action...7-27 04:22:04.073941895 +0000", commit_id: nil, group_id: 72, resolved_by_action: nil, note_id: nil>1087 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1088 behaves like using different access permissions1089 is expected not to change `Todo.count`1090 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1091 behaves like using different access permissions1092 is expected to contain exactly #<Todo id: 95, user_id: 1, project_id: 30, target_id: 55, target_type: "Issue", author_id: 41, action...-27 04:22:11.384989275 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 92, user_id: 1, project_id: 55, target_id: 53, target_type: "Issue", author_id: 72, action...7-27 04:22:09.203962789 +0000", commit_id: nil, group_id: 72, resolved_by_action: nil, note_id: nil>1093 when project is not private1094 enqueues the PrivateFeaturesWorker1095 confidential issues1096 when a user is not an author of confidential issue1097 behaves like removes confidential issues and internal notes todos1098 is expected to change `Todo.count` from 7 to 51099 when a user is an author of confidential issue1100 behaves like removes only internal notes todos1101 is expected to change `Todo.count` from 7 to 61102 when a user is an assignee of confidential issue1103 behaves like removes only internal notes todos1104 is expected to change `Todo.count` from 7 to 61105 access permissions1106 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1107 behaves like using different access permissions1108 is expected not to change `Todo.count`1109 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1110 behaves like using different access permissions1111 is expected to change `Todo.count` from 7 to 51112 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1113 behaves like using different access permissions1114 is expected not to change `Todo.count`1115 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1116 behaves like using different access permissions1117 is expected to change `Todo.count` from 7 to 51118 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1119 behaves like using different access permissions1120 is expected not to change `Todo.count`1121 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1122 behaves like using different access permissions1123 is expected to change `Todo.count` from 7 to 51124 feature visibility check1125 when issues are visible only to project members1126 removes only users issue todos1127 updating a Group1128 when group is private1129 when a user leaves a group1130 removes group and subproject todos for the user1131 access permissions1132 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1133 behaves like using different access permissions1134 is expected not to change `Todo.count`1135 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1136 behaves like using different access permissions1137 is expected to contain exactly #<Todo id: 193, user_id: 1, project_id: 1, target_id: 111, target_type: "Issue", author_id: 4, action...-27 04:22:56.660143576 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 190, user_id: 1, project_id: 122, target_id: 109, target_type: "Issue", author_id: 164, ac...07-27 04:22:55.191424872 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1138 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1139 behaves like using different access permissions1140 is expected not to change `Todo.count`1141 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1142 behaves like using different access permissions1143 is expected to contain exactly #<Todo id: 207, user_id: 1, project_id: 1, target_id: 119, target_type: "Issue", author_id: 4, action...-27 04:23:02.244754330 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 204, user_id: 1, project_id: 130, target_id: 117, target_type: "Issue", author_id: 174, ac...07-27 04:23:01.051754329 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1144 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1145 behaves like using different access permissions1146 is expected not to change `Todo.count`1147 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1148 behaves like using different access permissions1149 is expected to contain exactly #<Todo id: 221, user_id: 1, project_id: 1, target_id: 127, target_type: "Issue", author_id: 4, action...-27 04:23:08.229158193 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 218, user_id: 1, project_id: 138, target_id: 125, target_type: "Issue", author_id: 184, ac...07-27 04:23:06.878351486 +0000", commit_id: nil, group_id: 5, resolved_by_action: nil, note_id: nil>1150 with nested groups1151 when the user is not a member of any groups/projects1152 removes todos for the user including subprojects todos1153 when the user is member of a parent group1154 behaves like does not remove any todos1155 is expected not to change `Todo.count`1156 when the user is member of a subgroup1157 does not remove group and subproject todos1158 when the user is member of a child project1159 does not remove subproject and group todos1160 when group is not private1161 enqueues the PrivateFeaturesWorker1162 access permissions1163 group_access: nil, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1164 behaves like using different access permissions1165 is expected to change `Todo.count` from 7 to 51166 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1167 behaves like using different access permissions1168 is expected not to change `Todo.count`1169 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1170 behaves like using different access permissions1171 is expected to change `Todo.count` from 7 to 51172 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1173 behaves like using different access permissions1174 is expected not to change `Todo.count`1175 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1176 behaves like using different access permissions1177 is expected to change `Todo.count` from 7 to 51178 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1179 behaves like using different access permissions1180 is expected not to change `Todo.count`1181 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1182 behaves like using different access permissions1183 is expected to change `Todo.count` from 7 to 51184 when entity type is not valid1185 raises an exception1186 when entity was not found1187 does not remove any todos1188Gitlab::Git::Tree1189 .where with Gitaly enabled1190 behaves like repo1191 is expected to be a kind of Array1192 is expected to be falsey1193 is expected to eq 21194 is expected to eq 101195 is expected to eq 21196 is expected to be blank1197 with an invalid ref1198 is expected to eq []1199 is expected to be nil1200 when path is provided1201 returns a list of tree objects1202 #dir?1203 is expected to be a kind of Gitlab::Git::Tree1204 is expected to eq "3c122d2b7830eca25235131070602575cf8b41a1"1205 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1206 is expected to eq "encoding"1207 is expected to eq "encoding"1208 is expected to eq "40000"1209 is expected to eq "encoding"1210 subdir1211 is expected to be a kind of Gitlab::Git::Tree1212 is expected to eq "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba"1213 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1214 is expected to eq "html"1215 is expected to eq "files/html"1216 is expected to eq "files/html"1217 subdir_file1218 is expected to be a kind of Gitlab::Git::Tree1219 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"1220 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1221 is expected to eq "popen.rb"1222 is expected to eq "files/ruby/popen.rb"1223 is expected to eq "files/ruby/popen.rb"1224 flat_path1225 is expected to eq "files/flat/path/correct"1226 when skip_flat_paths is true1227 is expected to be blank1228 #file?1229 is expected to be a kind of Gitlab::Git::Tree1230 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"1231 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1232 is expected to eq ".gitignore"1233 #readme?1234 is expected to be a kind of Gitlab::Git::Tree1235 is expected to eq "README.md"1236 #contributing?1237 is expected to be a kind of Gitlab::Git::Tree1238 is expected to eq "CONTRIBUTING.md"1239 #submodule?1240 is expected to be a kind of Gitlab::Git::Tree1241 is expected to eq "79bceae69cb5750d6567b223597999bfa91cb3b9"1242 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1243 is expected to eq "gitlab-shell"1244 with pagination parameters1245 returns paginated list of tree objects1246 and invalid reference is used1247 returns no entries and nil cursor1248 .where with Rugged enabled1249 calls out to the Rugged implementation1250 behaves like repo1251 is expected to be a kind of Array1252 is expected to be falsey1253 is expected to eq 21254 is expected to eq 101255 is expected to eq 21256 is expected to be blank1257 with an invalid ref1258 is expected to eq []1259 is expected to be nil1260 when path is provided1261 returns a list of tree objects1262 #dir?1263 is expected to be a kind of Gitlab::Git::Tree1264 is expected to eq "3c122d2b7830eca25235131070602575cf8b41a1"1265 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1266 is expected to eq "encoding"1267 is expected to eq "encoding"1268 is expected to eq "40000"1269 is expected to eq "encoding"1270 subdir1271 is expected to be a kind of Gitlab::Git::Tree1272 is expected to eq "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba"1273 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1274 is expected to eq "html"1275 is expected to eq "files/html"1276 is expected to eq "files/html"1277 subdir_file1278 is expected to be a kind of Gitlab::Git::Tree1279 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"1280 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1281 is expected to eq "popen.rb"1282 is expected to eq "files/ruby/popen.rb"1283 is expected to eq "files/ruby/popen.rb"1284 flat_path1285 is expected to eq "files/flat/path/correct"1286 when skip_flat_paths is true1287 is expected to be blank1288 #file?1289 is expected to be a kind of Gitlab::Git::Tree1290 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"1291 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1292 is expected to eq ".gitignore"1293 #readme?1294 is expected to be a kind of Gitlab::Git::Tree1295 is expected to eq "README.md"1296 #contributing?1297 is expected to be a kind of Gitlab::Git::Tree1298 is expected to eq "CONTRIBUTING.md"1299 #submodule?1300 is expected to be a kind of Gitlab::Git::Tree1301 is expected to eq "79bceae69cb5750d6567b223597999bfa91cb3b9"1302 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"1303 is expected to eq "gitlab-shell"1304 Pagination1305 returns all tree entries in specific order during cursor pagination1306 with restrictive limit1307 returns limited paginated list of tree objects1308 when limit is equal to number of entries1309 returns all entries without a cursor1310 when limit is 01311 returns empty result1312 when limit is missing1313 returns empty result1314 when limit is negative1315 returns all entries1316 when token is provided1317 returns all entries after token1318 when token does not exist1319 raises a command error1320 when limit is bigger than number of entries1321 returns only available entries1322Boards::Issues::ListService1323 #execute1324 when parent is a project1325 behaves like issues list service1326 delegates search to IssuesFinder1327 #metadata1328 returns issues count for list1329 behaves like items list service1330 avoids N+11331 returns opened items when list_id and list are missing1332 returns opened items when listing items from Backlog1333 returns opened items that have label list applied when listing items from a label list1334 returns closed items when listing items from Closed sorted by closed_at in descending order1335 raises an error if the list does not belong to the board1336 raises an error if list and list id are invalid or missing1337 returns items from all lists if :all_list is used1338 returns opened items that have label list applied when using list param1339 when project is archived1340 behaves like issues list service1341 delegates search to IssuesFinder1342 #metadata1343 returns issues count for list1344 behaves like items list service1345 avoids N+11346 returns opened items when list_id and list are missing1347 returns opened items when listing items from Backlog1348 returns opened items that have label list applied when listing items from a label list1349 returns closed items when listing items from Closed sorted by closed_at in descending order1350 raises an error if the list does not belong to the board1351 raises an error if list and list id are invalid or missing1352 returns items from all lists if :all_list is used1353 returns opened items that have label list applied when using list param1354 when filtering1355 when filtering by type1356 only returns the specified type1357 when filtering by negated type1358 only returns the specified type1359 when parent is a group1360 when the group has no parent1361 behaves like issues list service1362 delegates search to IssuesFinder1363 #metadata1364 returns issues count for list1365 behaves like items list service1366 avoids N+11367 returns opened items when list_id and list are missing1368 returns opened items when listing items from Backlog1369 returns opened items that have label list applied when listing items from a label list1370 returns closed items when listing items from Closed sorted by closed_at in descending order1371 raises an error if the list does not belong to the board1372 raises an error if list and list id are invalid or missing1373 returns items from all lists if :all_list is used1374 returns opened items that have label list applied when using list param1375 when the group is an ancestor1376 behaves like issues list service1377 delegates search to IssuesFinder1378 #metadata1379 returns issues count for list1380 behaves like items list service1381 avoids N+11382 returns opened items when list_id and list are missing1383 returns opened items when listing items from Backlog1384 returns opened items that have label list applied when listing items from a label list1385 returns closed items when listing items from Closed sorted by closed_at in descending order1386 raises an error if the list does not belong to the board1387 raises an error if list and list id are invalid or missing1388 returns items from all lists if :all_list is used1389 returns opened items that have label list applied when using list param1390 .initialize_relative_positions1391 when 'Gitlab::Database::read_write?' is true1392 user cannot move issues1393 does not initialize the relative positions of issues1394 user can move issues1395 initializes the relative positions of issues1396 when 'Gitlab::Database::read_write?' is false1397 does not initialize the relative positions of issues1398Issues::RelativePositionRebalancingService1399 execute1400 re-balances a set of issues with clumps at the end and start1401 is idempotent1402 acts if the flag is enabled for the root namespace1403 acts if the flag is enabled for the group1404 aborts if there are too many rebalances running1405 resumes a started rebalance even if there are already too many rebalances running1406 re-balancing is retried on statement timeout exceptions1407 retries update statement1408 when resuming a stopped rebalance1409 rebalances the other half of issues1410 when error is raised in cache cleanup step1411 when srem fails1412 behaves like no-op on the retried job1413 does not update positions in the 2nd .execute1414 when delete issues ids sorted set fails1415 behaves like no-op on the retried job1416 does not update positions in the 2nd .execute1417 when delete current_index_key fails1418 behaves like no-op on the retried job1419 does not update positions in the 2nd .execute1420 when setting recently finished key fails1421 reruns the next job in full1422Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables1423 # order random1424 when renaming a table1425 when a gitlab_main table1426 behaves like does not lock writes on table1427main: == : migrating ===============================================================1428main: -- create_table(:_test_gitlab_main_table)1429main: -> 0.0034s1430main: == : migrated (0.0115s) ======================================================1431main: == : migrating ===============================================================1432main: -- rename_table(:_test_gitlab_main_table, :_test_gitlab_main_new_table)1433main: -> 0.0106s1434main: == : migrated (0.0181s) ======================================================1435 allows deleting records from the table1436 behaves like locks writes on table1437ci: == : migrating ===============================================================1438ci: -- create_table(:_test_gitlab_main_table)1439ci: -> 0.0036s1440I, [2023-07-27T04:28:53.655160 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_table': Lock Writes1441I, [2023-07-27T04:28:53.656889 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Lock timeout is set", :current_iteration=>1, :lock_timeout_in_ms=>100}1442I, [2023-07-27T04:28:53.658100 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Migration finished", :current_iteration=>1, :lock_timeout_in_ms=>100}1443ci: == : migrated (0.0333s) ======================================================1444ci: == : migrating ===============================================================1445ci: -- rename_table(:_test_gitlab_main_table, :_test_gitlab_main_new_table)1446ci: -> 0.0101s1447I, [2023-07-27T04:28:53.694875 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_new_table': Lock Writes1448ci: == : migrated (0.0351s) ======================================================1449 errors on deleting1450 when a gitlab_ci table1451 behaves like does not lock writes on table1452ci: == : migrating ===============================================================1453ci: -- create_table(:_test_gitlab_ci_table)1454ci: -> 0.0053s1455ci: == : migrated (0.0549s) ======================================================1456ci: == : migrating ===============================================================1457ci: -- rename_table(:_test_gitlab_ci_table, :_test_gitlab_ci_new_table)1458ci: -> 0.0149s1459ci: == : migrated (0.0537s) ======================================================1460 allows deleting records from the table1461 behaves like locks writes on table1462main: == : migrating ===============================================================1463main: -- create_table(:_test_gitlab_ci_table)1464main: -> 0.0032s1465I, [2023-07-27T04:28:58.162902 #330] INFO -- : Database: 'main', Table: '_test_gitlab_ci_table': Lock Writes1466I, [2023-07-27T04:28:58.164636 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Lock timeout is set", :current_iteration=>1, :lock_timeout_in_ms=>100}1467I, [2023-07-27T04:28:58.165815 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Migration finished", :current_iteration=>1, :lock_timeout_in_ms=>100}1468main: == : migrated (0.0189s) ======================================================1469main: == : migrating ===============================================================1470main: -- rename_table(:_test_gitlab_ci_table, :_test_gitlab_ci_new_table)1471main: -> 0.0104s1472I, [2023-07-27T04:28:58.190357 #330] INFO -- : Database: 'main', Table: '_test_gitlab_ci_new_table': Lock Writes1473main: == : migrated (0.0227s) ======================================================1474 errors on deleting1475 when executing create_table migrations1476 when single database1477 does not lock any newly created tables (PENDING: Skipping because database ci exists)1478 when multiple databases1479 for creating a gitlab_main table1480 behaves like does not lock writes on table1481main: == : migrating ===============================================================1482main: -- create_table(:_test_gitlab_main_table)1483main: -> 0.0031s1484main: == : migrated (0.0117s) ======================================================1485 allows deleting records from the table1486 behaves like locks writes on table1487ci: == : migrating ===============================================================1488ci: -- create_table(:_test_gitlab_main_table)1489ci: -> 0.0036s1490I, [2023-07-27T04:29:03.236086 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_table': Lock Writes1491ci: == : migrated (0.0328s) ======================================================1492 errors on deleting1493 when table listed as a deleted table1494 behaves like does not lock writes on table1495ci: == : migrating ===============================================================1496ci: -- create_table(:_test_gitlab_main_table)1497ci: -> 0.0033s1498ci: == : migrated (0.0274s) ======================================================1499 allows deleting records from the table1500 when the migration skips automatic locking of tables1501 behaves like does not lock writes on table1502ci: == : migrating ===============================================================1503ci: -- create_table(:_test_gitlab_main_table)1504ci: -> 0.0040s1505ci: == : migrated (0.0051s) ======================================================1506 allows deleting records from the table1507 when migration does not run within a transaction1508 behaves like locks writes on table using WithLockRetries1509ci: == : migrating ===============================================================1510ci: -- create_table(:_test_gitlab_main_table)1511ci: -> 0.0038s1512I, [2023-07-27T04:29:09.395323 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_table': Lock Writes1513I, [2023-07-27T04:29:09.397439 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Lock timeout is set", :current_iteration=>1, :lock_timeout_in_ms=>100}1514I, [2023-07-27T04:29:09.398476 #330] INFO -- : {:method=>"with_lock_retries", :class=>"gitlab:db:lock_writes", :message=>"Migration finished", :current_iteration=>1, :lock_timeout_in_ms=>100}1515ci: == : migrated (0.0325s) ======================================================1516 locks the writes on the table using WithLockRetries1517 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set1518 behaves like does not lock writes on table1519ci: == : migrating ===============================================================1520ci: -- create_table(:_test_gitlab_main_table)1521ci: -> 0.0041s1522ci: == : migrated (0.0055s) ======================================================1523 allows deleting records from the table1524 when the automatic_lock_writes_on_table feature flag is disabled1525 behaves like does not lock writes on table1526ci: == : migrating ===============================================================1527ci: -- create_table(:_test_gitlab_main_table)1528ci: -> 0.0045s1529ci: == : migrated (0.0200s) ======================================================1530 allows deleting records from the table1531 for creating a gitlab_main_clusterwide table1532 behaves like does not lock writes on table1533main: == : migrating ===============================================================1534main: -- create_table(:_test_gitlab_main_clusterwide_table)1535main: -> 0.0036s1536main: == : migrated (0.0123s) ======================================================1537 allows deleting records from the table1538 behaves like locks writes on table1539ci: == : migrating ===============================================================1540ci: -- create_table(:_test_gitlab_main_clusterwide_table)1541ci: -> 0.0036s1542I, [2023-07-27T04:29:16.019383 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_clusterwide_table': Lock Writes1543ci: == : migrated (0.0340s) ======================================================1544 errors on deleting1545 for creating a gitlab_main_cell table1546 behaves like does not lock writes on table1547main: == : migrating ===============================================================1548main: -- create_table(:_test_gitlab_main_cell_table)1549main: -> 0.0030s1550main: == : migrated (0.0114s) ======================================================1551 allows deleting records from the table1552 behaves like locks writes on table1553ci: == : migrating ===============================================================1554ci: -- create_table(:_test_gitlab_main_cell_table)1555ci: -> 0.0034s1556I, [2023-07-27T04:29:19.293225 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_cell_table': Lock Writes1557ci: == : migrated (0.0305s) ======================================================1558 errors on deleting1559 for creating a gitlab_pm table1560 behaves like does not lock writes on table1561main: == : migrating ===============================================================1562main: -- create_table(:_test_gitlab_pm_table)1563main: -> 0.0039s1564main: == : migrated (0.0133s) ======================================================1565 allows deleting records from the table1566 behaves like locks writes on table1567ci: == : migrating ===============================================================1568ci: -- create_table(:_test_gitlab_pm_table)1569ci: -> 0.0034s1570I, [2023-07-27T04:29:22.631386 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_pm_table': Lock Writes1571ci: == : migrated (0.0320s) ======================================================1572 errors on deleting1573 for creating a gitlab_ci table1574 behaves like does not lock writes on table1575ci: == : migrating ===============================================================1576ci: -- create_table(:_test_gitlab_ci_table)1577ci: -> 0.0034s1578ci: == : migrated (0.0284s) ======================================================1579 allows deleting records from the table1580 behaves like locks writes on table1581main: == : migrating ===============================================================1582main: -- create_table(:_test_gitlab_ci_table)1583main: -> 0.0033s1584I, [2023-07-27T04:29:25.896218 #330] INFO -- : Database: 'main', Table: '_test_gitlab_ci_table': Lock Writes1585main: == : migrated (0.0169s) ======================================================1586 errors on deleting1587 when table listed as a deleted table1588 behaves like does not lock writes on table1589main: == : migrating ===============================================================1590main: -- create_table(:_test_gitlab_ci_table)1591main: -> 0.0033s1592main: == : migrated (0.0127s) ======================================================1593 allows deleting records from the table1594 when the migration skips automatic locking of tables1595 behaves like does not lock writes on table1596main: == : migrating ===============================================================1597main: -- create_table(:_test_gitlab_ci_table)1598main: -> 0.0041s1599main: == : migrated (0.0046s) ======================================================1600 allows deleting records from the table1601 when the SKIP_AUTOMATIC_LOCK_ON_WRITES feature flag is set1602 behaves like does not lock writes on table1603main: == : migrating ===============================================================1604main: -- create_table(:_test_gitlab_ci_table)1605main: -> 0.0043s1606main: == : migrated (0.0049s) ======================================================1607 allows deleting records from the table1608 when the automatic_lock_writes_on_table feature flag is disabled1609 behaves like does not lock writes on table1610main: == : migrating ===============================================================1611main: -- create_table(:_test_gitlab_ci_table)1612main: -> 0.0043s1613main: == : migrated (0.0053s) ======================================================1614 allows deleting records from the table1615 for creating gitlab_shared table1616 behaves like does not lock writes on table1617main: == : migrating ===============================================================1618main: -- create_table(:_test_table)1619main: -> 0.0037s1620main: == : migrated (0.0124s) ======================================================1621 allows deleting records from the table1622 behaves like does not lock writes on table1623ci: == : migrating ===============================================================1624ci: -- create_table(:_test_table)1625ci: -> 0.0032s1626ci: == : migrated (0.0274s) ======================================================1627 allows deleting records from the table1628 for creating a gitlab_geo table1629 behaves like does not lock writes on table1630 allows deleting records from the table (PENDING: No reason given)1631 for creating an unknown gitlab_schema table1632main: == : migrating ===============================================================1633main: -- create_table(:foobar)1634 raises an error about undefined gitlab_schema1635 when reversing drop_table migrations1636 when single database1637 does not lock any newly created tables (PENDING: Skipping because database ci exists)1638 when multiple databases1639 for re-creating a gitlab_main table1640 behaves like does not lock writes on table1641main: == : migrating ===============================================================1642main: -- drop_table(:_test_gitlab_main_table)1643main: -> 0.0021s1644main: == : migrated (0.0112s) ======================================================1645main: == : reverting ===============================================================1646main: -- create_table(:_test_gitlab_main_table)1647main: -> 0.0040s1648main: == : reverted (0.0289s) ======================================================1649 allows deleting records from the table1650 behaves like locks writes on table1651ci: == : migrating ===============================================================1652ci: -- drop_table(:_test_gitlab_main_table)1653ci: -> 0.0017s1654ci: == : migrated (0.0234s) ======================================================1655ci: == : reverting ===============================================================1656ci: -- create_table(:_test_gitlab_main_table)1657ci: -> 0.0030s1658I, [2023-07-27T04:29:44.160238 #330] INFO -- : Database: 'ci', Table: '_test_gitlab_main_table': Lock Writes1659ci: == : reverted (0.0295s) ======================================================1660 errors on deleting1661 for re-creating a gitlab_ci table1662 behaves like does not lock writes on table1663ci: == : migrating ===============================================================1664ci: -- drop_table(:_test_gitlab_ci_table)1665ci: -> 0.0016s1666ci: == : migrated (0.0240s) ======================================================1667ci: == : reverting ===============================================================1668ci: -- create_table(:_test_gitlab_ci_table)1669ci: -> 0.0027s1670ci: == : reverted (0.0240s) ======================================================1671 allows deleting records from the table1672 behaves like locks writes on table1673main: == : migrating ===============================================================1674main: -- drop_table(:_test_gitlab_ci_table)1675main: -> 0.0015s1676main: == : migrated (0.0089s) ======================================================1677main: == : reverting ===============================================================1678main: -- create_table(:_test_gitlab_ci_table)1679main: -> 0.0031s1680I, [2023-07-27T04:29:47.419768 #330] INFO -- : Database: 'main', Table: '_test_gitlab_ci_table': Lock Writes1681main: == : reverted (0.0155s) ======================================================1682 errors on deleting1683 for re-creating a gitlab_shared table1684 behaves like does not lock writes on table1685main: == : migrating ===============================================================1686main: -- drop_table(:_test_table)1687main: -> 0.0063s1688main: == : migrated (0.0168s) ======================================================1689main: == : reverting ===============================================================1690main: -- create_table(:_test_table)1691main: -> 0.0030s1692main: == : reverted (0.0111s) ======================================================1693 allows deleting records from the table1694 behaves like does not lock writes on table1695ci: == : migrating ===============================================================1696ci: -- drop_table(:_test_table)1697ci: -> 0.0021s1698ci: == : migrated (0.0242s) ======================================================1699ci: == : reverting ===============================================================1700ci: -- create_table(:_test_table)1701ci: -> 0.0028s1702ci: == : reverted (0.0251s) ======================================================1703 allows deleting records from the table1704Tooling::Danger::ProjectHelper1705 #categories_for_file1706 path: "glfm_specification/example_snapshots/prosemirror_json.yml", expected_categories: [:frontend]1707 is expected to eq [:frontend]1708 path: "glfm_specification/input/glfm_anything.yml", expected_categories: [:frontend, :backend]1709 is expected to eq [:frontend, :backend]1710 path: "doc/api/graphql/reference/index.md", expected_categories: [:docs, :backend]1711 is expected to eq [:docs, :backend]1712 path: "doc/api/graphql/reference/some_other_file.txt", expected_categories: [:docs, :backend]1713 is expected to eq [:docs, :backend]1714 path: "doc/api/openapi/openapi.yaml", expected_categories: [:docs, :backend]1715 is expected to eq [:docs, :backend]1716 path: "doc/api/openapi/any_other_file.yaml", expected_categories: [:docs, :backend]1717 is expected to eq [:docs, :backend]1718 path: "usage_data.rb", expected_categories: [:database, :backend, :analytics_instrumentation]1719 is expected to eq [:database, :backend, :analytics_instrumentation]1720 path: "doc/foo.md", expected_categories: [:docs]1721 is expected to eq [:docs]1722 path: "CONTRIBUTING.md", expected_categories: [:docs]1723 is expected to eq [:docs]1724 path: "LICENSE", expected_categories: [:docs]1725 is expected to eq [:docs]1726 path: "MAINTENANCE.md", expected_categories: [:docs]1727 is expected to eq [:docs]1728 path: "PHILOSOPHY.md", expected_categories: [:docs]1729 is expected to eq [:docs]1730 path: "PROCESS.md", expected_categories: [:docs]1731 is expected to eq [:docs]1732 path: "README.md", expected_categories: [:docs]1733 is expected to eq [:docs]1734 path: "ee/doc/foo", expected_categories: [:none]1735 is expected to eq [:none]1736 path: "ee/README", expected_categories: [:none]1737 is expected to eq [:none]1738 path: "app/assets/foo", expected_categories: [:frontend]1739 is expected to eq [:frontend]1740 path: "app/views/foo", expected_categories: [:frontend, :backend]1741 is expected to eq [:frontend, :backend]1742 path: "public/foo", expected_categories: [:frontend]1743 is expected to eq [:frontend]1744 path: "scripts/frontend/foo", expected_categories: [:frontend]1745 is expected to eq [:frontend]1746 path: "spec/frontend/bar", expected_categories: [:frontend]1747 is expected to eq [:frontend]1748 path: "spec/frontend_integration/bar", expected_categories: [:frontend]1749 is expected to eq [:frontend]1750 path: "vendor/assets/foo", expected_categories: [:frontend]1751 is expected to eq [:frontend]1752 path: "babel.config.js", expected_categories: [:frontend]1753 is expected to eq [:frontend]1754 path: "jest.config.js", expected_categories: [:frontend]1755 is expected to eq [:frontend]1756 path: "package.json", expected_categories: [:frontend]1757 is expected to eq [:frontend]1758 path: "yarn.lock", expected_categories: [:frontend]1759 is expected to eq [:frontend]1760 path: "config/foo.js", expected_categories: [:frontend]1761 is expected to eq [:frontend]1762 path: "config/deep/foo.js", expected_categories: [:frontend]1763 is expected to eq [:frontend]1764 path: "app/components/pajamas/empty_state_component.html.haml", expected_categories: [:frontend, :backend]1765 is expected to eq [:frontend, :backend]1766 path: "ee/app/components/pajamas/empty_state_component.html.haml", expected_categories: [:frontend, :backend]1767 is expected to eq [:frontend, :backend]1768 path: "app/components/diffs/overflow_warning_component.html.haml", expected_categories: [:frontend, :backend]1769 is expected to eq [:frontend, :backend]1770 path: "app/components/layouts/horizontal_section_component.rb", expected_categories: [:frontend, :backend]1771 is expected to eq [:frontend, :backend]1772 path: "ee/app/assets/foo", expected_categories: [:frontend]1773 is expected to eq [:frontend]1774 path: "ee/app/views/foo", expected_categories: [:frontend, :backend]1775 is expected to eq [:frontend, :backend]1776 path: "ee/spec/frontend/bar", expected_categories: [:frontend]1777 is expected to eq [:frontend]1778 path: "ee/spec/frontend_integration/bar", expected_categories: [:frontend]1779 is expected to eq [:frontend]1780 path: ".gitlab/ci/frontend.gitlab-ci.yml", expected_categories: [:frontend, :tooling]1781 is expected to eq [:frontend, :tooling]1782 path: "app/models/foo", expected_categories: [:backend]1783 is expected to eq [:backend]1784 path: "bin/foo", expected_categories: [:backend]1785 is expected to eq [:backend]1786 path: "config/foo", expected_categories: [:backend]1787 is expected to eq [:backend]1788 path: "lib/foo", expected_categories: [:backend]1789 is expected to eq [:backend]1790 path: "rubocop/foo", expected_categories: [:backend]1791 is expected to eq [:backend]1792 path: ".rubocop.yml", expected_categories: [:backend]1793 is expected to eq [:backend]1794 path: ".rubocop_todo.yml", expected_categories: [:backend]1795 is expected to eq [:backend]1796 path: ".rubocop_todo/cop/name.yml", expected_categories: [:backend]1797 is expected to eq [:backend]1798 path: "gems/foo/.rubocop.yml", expected_categories: [:backend]1799 is expected to eq [:backend]1800 path: "spec/foo", expected_categories: [:backend]1801 is expected to eq [:backend]1802 path: "spec/foo/bar", expected_categories: [:backend]1803 is expected to eq [:backend]1804 path: "ee/app/foo", expected_categories: [:backend]1805 is expected to eq [:backend]1806 path: "ee/bin/foo", expected_categories: [:backend]1807 is expected to eq [:backend]1808 path: "ee/spec/foo", expected_categories: [:backend]1809 is expected to eq [:backend]1810 path: "ee/spec/foo/bar", expected_categories: [:backend]1811 is expected to eq [:backend]1812 path: "spec/migrations/foo", expected_categories: [:database]1813 is expected to eq [:database]1814 path: "ee/spec/migrations/foo", expected_categories: [:database]1815 is expected to eq [:database]1816 path: "spec/features/foo", expected_categories: [:test]1817 is expected to eq [:test]1818 path: "ee/spec/features/foo", expected_categories: [:test]1819 is expected to eq [:test]1820 path: "spec/support/shared_examples/features/foo", expected_categories: [:test]1821 is expected to eq [:test]1822 path: "ee/spec/support/shared_examples/features/foo", expected_categories: [:test]1823 is expected to eq [:test]1824 path: "spec/support/shared_contexts/features/foo", expected_categories: [:test]1825 is expected to eq [:test]1826 path: "ee/spec/support/shared_contexts/features/foo", expected_categories: [:test]1827 is expected to eq [:test]1828 path: "spec/support/helpers/features/foo", expected_categories: [:test]1829 is expected to eq [:test]1830 path: "ee/spec/support/helpers/features/foo", expected_categories: [:test]1831 is expected to eq [:test]1832 path: "generator_templates/foo", expected_categories: [:backend]1833 is expected to eq [:backend]1834 path: "vendor/languages.yml", expected_categories: [:backend]1835 is expected to eq [:backend]1836 path: "file_hooks/examples/", expected_categories: [:backend]1837 is expected to eq [:backend]1838 path: "Gemfile", expected_categories: [:backend]1839 is expected to eq [:backend]1840 path: "Gemfile.lock", expected_categories: [:backend]1841 is expected to eq [:backend]1842 path: "Gemfile.checksum", expected_categories: [:backend]1843 is expected to eq [:backend]1844 path: "Rakefile", expected_categories: [:backend]1845 is expected to eq [:backend]1846 path: "FOO_VERSION", expected_categories: [:backend]1847 is expected to eq [:backend]1848 path: "scripts/glfm/bar.rb", expected_categories: [:backend]1849 is expected to eq [:backend]1850 path: "scripts/glfm/bar.js", expected_categories: [:frontend]1851 is expected to eq [:frontend]1852 path: "scripts/remote_development/run-smoke-test-suite.sh", expected_categories: [:remote_development_be]1853 is expected to eq [:remote_development_be]1854 path: "scripts/lib/glfm/bar.rb", expected_categories: [:backend]1855 is expected to eq [:backend]1856 path: "scripts/lib/glfm/bar.js", expected_categories: [:frontend]1857 is expected to eq [:frontend]1858 path: "scripts/bar.rb", expected_categories: [:backend, :tooling]1859 is expected to eq [:backend, :tooling]1860 path: "scripts/bar.js", expected_categories: [:frontend, :tooling]1861 is expected to eq [:frontend, :tooling]1862 path: "scripts/subdir/bar.rb", expected_categories: [:backend, :tooling]1863 is expected to eq [:backend, :tooling]1864 path: "scripts/subdir/bar.js", expected_categories: [:frontend, :tooling]1865 is expected to eq [:frontend, :tooling]1866 path: "scripts/foo", expected_categories: [:tooling]1867 is expected to eq [:tooling]1868 path: "Dangerfile", expected_categories: [:tooling]1869 is expected to eq [:tooling]1870 path: "danger/bundle_size/Dangerfile", expected_categories: [:tooling]1871 is expected to eq [:tooling]1872 path: "ee/danger/bundle_size/Dangerfile", expected_categories: [:tooling]1873 is expected to eq [:tooling]1874 path: "danger/bundle_size/", expected_categories: [:tooling]1875 is expected to eq [:tooling]1876 path: "ee/danger/bundle_size/", expected_categories: [:tooling]1877 is expected to eq [:tooling]1878 path: ".gitlab-ci.yml", expected_categories: [:tooling]1879 is expected to eq [:tooling]1880 path: ".gitlab/ci/cng.gitlab-ci.yml", expected_categories: [:tooling]1881 is expected to eq [:tooling]1882 path: ".gitlab/ci/ee-specific-checks.gitlab-ci.yml", expected_categories: [:tooling]1883 is expected to eq [:tooling]1884 path: "tooling/danger/foo", expected_categories: [:tooling]1885 is expected to eq [:tooling]1886 path: "ee/tooling/danger/foo", expected_categories: [:tooling]1887 is expected to eq [:tooling]1888 path: "lefthook.yml", expected_categories: [:tooling]1889 is expected to eq [:tooling]1890 path: ".editorconfig", expected_categories: [:tooling]1891 is expected to eq [:tooling]1892 path: "tooling/bin/find_foss_tests", expected_categories: [:tooling]1893 is expected to eq [:tooling]1894 path: ".codeclimate.yml", expected_categories: [:tooling]1895 is expected to eq [:tooling]1896 path: ".gitlab/CODEOWNERS", expected_categories: [:tooling]1897 is expected to eq [:tooling]1898 path: "gems/gem.gitlab-ci.yml", expected_categories: [:tooling]1899 is expected to eq [:tooling]1900 path: "gems/config/rubocop.yml", expected_categories: [:tooling]1901 is expected to eq [:tooling]1902 path: "lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml", expected_categories: [:ci_template]1903 is expected to eq [:ci_template]1904 path: "lib/gitlab/ci/templates/dotNET-Core.yml", expected_categories: [:ci_template]1905 is expected to eq [:ci_template]1906 path: "ee/FOO_VERSION", expected_categories: [:none]1907 is expected to eq [:none]1908 path: "db/schema.rb", expected_categories: [:database]1909 is expected to eq [:database]1910 path: "db/structure.sql", expected_categories: [:database]1911 is expected to eq [:database]1912 path: "db/migrate/foo", expected_categories: [:database, :migration]1913 is expected to eq [:database, :migration]1914 path: "db/post_migrate/foo", expected_categories: [:database, :migration]1915 is expected to eq [:database, :migration]1916 path: "ee/db/geo/migrate/foo", expected_categories: [:database, :migration]1917 is expected to eq [:database, :migration]1918 path: "ee/db/geo/post_migrate/foo", expected_categories: [:database, :migration]1919 is expected to eq [:database, :migration]1920 path: "app/models/project_authorization.rb", expected_categories: [:database, :backend]1921 is expected to eq [:database, :backend]1922 path: "app/services/users/refresh_authorized_projects_service.rb", expected_categories: [:database, :backend]1923 is expected to eq [:database, :backend]1924 path: "app/services/authorized_project_update/find_records_due_for_refresh_service.rb", expected_categories: [:database, :backend]1925 is expected to eq [:database, :backend]1926 path: "lib/gitlab/background_migration.rb", expected_categories: [:database, :backend]1927 is expected to eq [:database, :backend]1928 path: "lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]1929 is expected to eq [:database, :backend]1930 path: "ee/lib/gitlab/background_migration/foo", expected_categories: [:database, :backend]1931 is expected to eq [:database, :backend]1932 path: "lib/gitlab/database.rb", expected_categories: [:database, :backend]1933 is expected to eq [:database, :backend]1934 path: "lib/gitlab/database/foo", expected_categories: [:database, :backend]1935 is expected to eq [:database, :backend]1936 path: "ee/lib/gitlab/database/foo", expected_categories: [:database, :backend]1937 is expected to eq [:database, :backend]1938 path: "lib/gitlab/sql/foo", expected_categories: [:database, :backend]1939 is expected to eq [:database, :backend]1940 path: "rubocop/cop/migration/foo", expected_categories: [:database]1941 is expected to eq [:database]1942 path: "db/fixtures/foo.rb", expected_categories: [:backend]1943 is expected to eq [:backend]1944 path: "ee/db/fixtures/foo.rb", expected_categories: [:backend]1945 is expected to eq [:backend]1946 path: "qa/foo", expected_categories: [:qa]1947 is expected to eq [:qa]1948 path: "ee/qa/foo", expected_categories: [:qa]1949 is expected to eq [:qa]1950 path: "workhorse/main.go", expected_categories: [:workhorse]1951 is expected to eq [:workhorse]1952 path: "workhorse/internal/upload/upload.go", expected_categories: [:workhorse]1953 is expected to eq [:workhorse]1954 path: "locale/gitlab.pot", expected_categories: [:none]1955 is expected to eq [:none]1956 path: "FOO", expected_categories: [:none]1957 is expected to eq [:none]1958 path: "foo", expected_categories: [:none]1959 is expected to eq [:none]1960 path: "foo/bar.rb", expected_categories: [:backend]1961 is expected to eq [:backend]1962 path: "foo/bar.js", expected_categories: [:frontend]1963 is expected to eq [:frontend]1964 path: "foo/bar.txt", expected_categories: [:none]1965 is expected to eq [:none]1966 path: "foo/bar.md", expected_categories: [:none]1967 is expected to eq [:none]1968 path: "ee/config/metrics/counts_7d/20210216174919_g_analytics_issues_weekly.yml", expected_categories: [:analytics_instrumentation]1969 is expected to eq [:analytics_instrumentation]1970 path: "lib/gitlab/usage_data_counters/aggregated_metrics/common.yml", expected_categories: [:analytics_instrumentation]1971 is expected to eq [:analytics_instrumentation]1972 path: "lib/gitlab/usage_data_counters/hll_redis_counter.rb", expected_categories: [:backend, :analytics_instrumentation]1973 is expected to eq [:backend, :analytics_instrumentation]1974 path: "lib/gitlab/tracking.rb", expected_categories: [:backend, :analytics_instrumentation]1975 is expected to eq [:backend, :analytics_instrumentation]1976 path: "lib/gitlab/usage/service_ping_report.rb", expected_categories: [:backend, :analytics_instrumentation]1977 is expected to eq [:backend, :analytics_instrumentation]1978 path: "lib/gitlab/usage/metrics/key_path_processor.rb", expected_categories: [:backend, :analytics_instrumentation]1979 is expected to eq [:backend, :analytics_instrumentation]1980 path: "spec/lib/gitlab/tracking_spec.rb", expected_categories: [:backend, :analytics_instrumentation]1981 is expected to eq [:backend, :analytics_instrumentation]1982 path: "app/helpers/tracking_helper.rb", expected_categories: [:backend, :analytics_instrumentation]1983 is expected to eq [:backend, :analytics_instrumentation]1984 path: "spec/helpers/tracking_helper_spec.rb", expected_categories: [:backend, :analytics_instrumentation]1985 is expected to eq [:backend, :analytics_instrumentation]1986 path: "lib/generators/rails/usage_metric_definition_generator.rb", expected_categories: [:backend, :analytics_instrumentation]1987 is expected to eq [:backend, :analytics_instrumentation]1988 path: "spec/lib/generators/usage_metric_definition_generator_spec.rb", expected_categories: [:backend, :analytics_instrumentation]1989 is expected to eq [:backend, :analytics_instrumentation]1990 path: "config/metrics/schema.json", expected_categories: [:analytics_instrumentation]1991 is expected to eq [:analytics_instrumentation]1992 path: "app/assets/javascripts/tracking/foo.js", expected_categories: [:frontend, :analytics_instrumentation]1993 is expected to eq [:frontend, :analytics_instrumentation]1994 path: "spec/frontend/tracking/foo.js", expected_categories: [:frontend, :analytics_instrumentation]1995 is expected to eq [:frontend, :analytics_instrumentation]1996 path: "spec/frontend/tracking_spec.js", expected_categories: [:frontend, :analytics_instrumentation]1997 is expected to eq [:frontend, :analytics_instrumentation]1998 path: "lib/gitlab/usage_database/foo.rb", expected_categories: [:backend]1999 is expected to eq [:backend]2000 path: "config/metrics/counts_7d/test_metric.yml", expected_categories: [:analytics_instrumentation]2001 is expected to eq [:analytics_instrumentation]2002 path: "config/events/snowplow_event.yml", expected_categories: [:analytics_instrumentation]2003 is expected to eq [:analytics_instrumentation]2004 path: "config/metrics/schema.json", expected_categories: [:analytics_instrumentation]2005 is expected to eq [:analytics_instrumentation]2006 path: "doc/api/usage_data.md", expected_categories: [:analytics_instrumentation]2007 is expected to eq [:analytics_instrumentation]2008 path: "spec/lib/gitlab/usage_data_spec.rb", expected_categories: [:analytics_instrumentation]2009 is expected to eq [:analytics_instrumentation]2010 path: "spec/lib/gitlab/usage/service_ping_report.rb", expected_categories: [:backend, :analytics_instrumentation]2011 is expected to eq [:backend, :analytics_instrumentation]2012 path: "spec/lib/gitlab/usage/metrics/key_path_processor.rb", expected_categories: [:backend, :analytics_instrumentation]2013 is expected to eq [:backend, :analytics_instrumentation]2014 path: "app/models/integration.rb", expected_categories: [:import_integrate_be, :backend]2015 is expected to eq [:import_integrate_be, :backend]2016 path: "ee/app/models/integrations/github.rb", expected_categories: [:import_integrate_be, :backend]2017 is expected to eq [:import_integrate_be, :backend]2018 path: "ee/app/models/ee/integrations/jira.rb", expected_categories: [:import_integrate_be, :backend]2019 is expected to eq [:import_integrate_be, :backend]2020 path: "app/models/integrations/chat_message/pipeline_message.rb", expected_categories: [:import_integrate_be, :backend]2021 is expected to eq [:import_integrate_be, :backend]2022 path: "app/models/jira_connect_subscription.rb", expected_categories: [:import_integrate_be, :backend]2023 is expected to eq [:import_integrate_be, :backend]2024 path: "app/models/hooks/service_hook.rb", expected_categories: [:import_integrate_be, :backend]2025 is expected to eq [:import_integrate_be, :backend]2026 path: "ee/app/models/ee/hooks/system_hook.rb", expected_categories: [:import_integrate_be, :backend]2027 is expected to eq [:import_integrate_be, :backend]2028 path: "app/services/concerns/integrations/project_test_data.rb", expected_categories: [:import_integrate_be, :backend]2029 is expected to eq [:import_integrate_be, :backend]2030 path: "ee/app/services/ee/integrations/test/project_service.rb", expected_categories: [:import_integrate_be, :backend]2031 is expected to eq [:import_integrate_be, :backend]2032 path: "app/controllers/concerns/integrations/actions.rb", expected_categories: [:import_integrate_be, :backend]2033 is expected to eq [:import_integrate_be, :backend]2034 path: "ee/app/controllers/concerns/ee/integrations/params.rb", expected_categories: [:import_integrate_be, :backend]2035 is expected to eq [:import_integrate_be, :backend]2036 path: "ee/app/controllers/projects/integrations/jira/issues_controller.rb", expected_categories: [:import_integrate_be, :backend]2037 is expected to eq [:import_integrate_be, :backend]2038 path: "app/controllers/projects/hooks_controller.rb", expected_categories: [:import_integrate_be, :backend]2039 is expected to eq [:import_integrate_be, :backend]2040 path: "app/controllers/admin/hook_logs_controller.rb", expected_categories: [:import_integrate_be, :backend]2041 is expected to eq [:import_integrate_be, :backend]2042 path: "app/controllers/groups/settings/integrations_controller.rb", expected_categories: [:import_integrate_be, :backend]2043 is expected to eq [:import_integrate_be, :backend]2044 path: "app/controllers/jira_connect/branches_controller.rb", expected_categories: [:import_integrate_be, :backend]2045 is expected to eq [:import_integrate_be, :backend]2046 path: "app/controllers/oauth/jira/authorizations_controller.rb", expected_categories: [:import_integrate_be, :backend]2047 is expected to eq [:import_integrate_be, :backend]2048 path: "ee/app/finders/projects/integrations/jira/by_ids_finder.rb", expected_categories: [:import_integrate_be, :database, :backend]2049 is expected to eq [:import_integrate_be, :database, :backend]2050 path: "app/workers/jira_connect/sync_merge_request_worker.rb", expected_categories: [:import_integrate_be, :backend]2051 is expected to eq [:import_integrate_be, :backend]2052 path: "app/workers/propagate_integration_inherit_worker.rb", expected_categories: [:import_integrate_be, :backend]2053 is expected to eq [:import_integrate_be, :backend]2054 path: "app/workers/web_hooks/log_execution_worker.rb", expected_categories: [:import_integrate_be, :backend]2055 is expected to eq [:import_integrate_be, :backend]2056 path: "app/workers/web_hook_worker.rb", expected_categories: [:import_integrate_be, :backend]2057 is expected to eq [:import_integrate_be, :backend]2058 path: "app/workers/project_service_worker.rb", expected_categories: [:import_integrate_be, :backend]2059 is expected to eq [:import_integrate_be, :backend]2060 path: "lib/atlassian/jira_connect/serializers/commit_entity.rb", expected_categories: [:import_integrate_be, :backend]2061 is expected to eq [:import_integrate_be, :backend]2062 path: "lib/api/entities/project_integration.rb", expected_categories: [:import_integrate_be, :backend]2063 is expected to eq [:import_integrate_be, :backend]2064 path: "lib/gitlab/hook_data/note_builder.rb", expected_categories: [:import_integrate_be, :backend]2065 is expected to eq [:import_integrate_be, :backend]2066 path: "lib/gitlab/data_builder/note.rb", expected_categories: [:import_integrate_be, :backend]2067 is expected to eq [:import_integrate_be, :backend]2068 path: "lib/gitlab/web_hooks/recursion_detection.rb", expected_categories: [:import_integrate_be, :backend]2069 is expected to eq [:import_integrate_be, :backend]2070 path: "ee/lib/ee/gitlab/integrations/sti_type.rb", expected_categories: [:import_integrate_be, :backend]2071 is expected to eq [:import_integrate_be, :backend]2072 path: "ee/lib/ee/api/helpers/integrations_helpers.rb", expected_categories: [:import_integrate_be, :backend]2073 is expected to eq [:import_integrate_be, :backend]2074 path: "ee/app/serializers/integrations/jira_serializers/issue_entity.rb", expected_categories: [:import_integrate_be, :backend]2075 is expected to eq [:import_integrate_be, :backend]2076 path: "app/serializers/jira_connect/app_data_serializer.rb", expected_categories: [:import_integrate_be, :backend]2077 is expected to eq [:import_integrate_be, :backend]2078 path: "lib/api/github/entities.rb", expected_categories: [:import_integrate_be, :backend]2079 is expected to eq [:import_integrate_be, :backend]2080 path: "lib/api/v3/github.rb", expected_categories: [:import_integrate_be, :backend]2081 is expected to eq [:import_integrate_be, :backend]2082 path: "app/controllers/clusters/integrations_controller.rb", expected_categories: [:backend]2083 is expected to eq [:backend]2084 path: "app/services/clusters/integrations/prometheus_health_check_service.rb", expected_categories: [:backend]2085 is expected to eq [:backend]2086 path: "app/graphql/types/alert_management/integration_type.rb", expected_categories: [:backend]2087 is expected to eq [:backend]2088 path: "app/views/jira_connect/branches/new.html.haml", expected_categories: [:import_integrate_fe, :frontend]2089 is expected to eq [:import_integrate_fe, :frontend]2090 path: "app/views/layouts/jira_connect.html.haml", expected_categories: [:import_integrate_fe, :frontend]2091 is expected to eq [:import_integrate_fe, :frontend]2092 path: "app/assets/javascripts/jira_connect/branches/pages/index.vue", expected_categories: [:import_integrate_fe, :frontend]2093 is expected to eq [:import_integrate_fe, :frontend]2094 path: "ee/app/views/projects/integrations/jira/issues/show.html.haml", expected_categories: [:import_integrate_fe, :frontend]2095 is expected to eq [:import_integrate_fe, :frontend]2096 path: "ee/app/assets/javascripts/integrations/zentao/issues_list/graphql/queries/get_zentao_issues.query.graphql", expected_categories: [:import_integrate_fe, :frontend]2097 is expected to eq [:import_integrate_fe, :frontend]2098 path: "app/assets/javascripts/pages/projects/settings/integrations/show/index.js", expected_categories: [:import_integrate_fe, :frontend]2099 is expected to eq [:import_integrate_fe, :frontend]2100 path: "ee/app/assets/javascripts/pages/groups/hooks/index.js", expected_categories: [:import_integrate_fe, :frontend]2101 is expected to eq [:import_integrate_fe, :frontend]2102 path: "app/views/clusters/clusters/_integrations_tab.html.haml", expected_categories: [:frontend, :backend]2103 is expected to eq [:frontend, :backend]2104 path: "app/assets/javascripts/alerts_settings/graphql/fragments/integration_item.fragment.graphql", expected_categories: [:frontend]2105 is expected to eq [:frontend]2106 path: "app/assets/javascripts/filtered_search/droplab/hook_input.js", expected_categories: [:frontend]2107 is expected to eq [:frontend]2108 path: "app/views/layouts/header/_default.html.haml", expected_categories: [:frontend, :backend]2109 is expected to eq [:frontend, :backend]2110 path: "app/views/layouts/header/_default.html.erb", expected_categories: [:frontend, :backend]2111 is expected to eq [:frontend, :backend]2112 having specific changes2113 expected_categories: [:analytics_instrumentation], patch: "+data-track-action", changed_files: ["components/welcome.vue"]2114 has the correct categories2115 expected_categories: [:analytics_instrumentation], patch: "+ data: { track_label:", changed_files: ["admin/groups/_form.html.haml"]2116 has the correct categories2117 expected_categories: [:analytics_instrumentation], patch: "+ Gitlab::Tracking.event", changed_files: ["dashboard/todos_controller.rb", "admin/groups/_form.html.haml"]2118 has the correct categories2119 expected_categories: [:database, :backend, :analytics_instrumentation], patch: "+ count(User.active)", changed_files: ["usage_data.rb", "lib/gitlab/usage_data.rb", "ee/lib/ee/gitlab/usage_data.rb"]2120 has the correct categories2121 expected_categories: [:database, :backend, :analytics_instrumentation], patch: "+ estimate_batch_distinct_count(User.active)", changed_files: ["usage_data.rb"]2122 has the correct categories2123 expected_categories: [:backend, :analytics_instrumentation], patch: "+ alt_usage_data(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]2124 has the correct categories2125 expected_categories: [:backend, :analytics_instrumentation], patch: "+ count(User.active)", changed_files: ["lib/gitlab/usage_data/topology.rb"]2126 has the correct categories2127 expected_categories: [:backend, :analytics_instrumentation], patch: "+ foo_count(User.active)", changed_files: ["lib/gitlab/usage_data.rb"]2128 has the correct categories2129 expected_categories: [:backend], patch: "+ count(User.active)", changed_files: ["user.rb"]2130 has the correct categories2131 expected_categories: [:import_integrate_be, :database, :migration], patch: "+ add_column :integrations, :foo, :text", changed_files: ["db/migrate/foo.rb"]2132 has the correct categories2133 expected_categories: [:import_integrate_be, :database, :migration], patch: "+ create_table :zentao_tracker_data do |t|", changed_files: ["ee/db/post_migrate/foo.rb"]2134 has the correct categories2135 expected_categories: [:import_integrate_be, :backend], patch: "+ Integrations::Foo", changed_files: ["app/foo/bar.rb"]2136 has the correct categories2137 expected_categories: [:import_integrate_be, :backend], patch: "+ project.execute_hooks(foo, :bar)", changed_files: ["ee/lib/ee/foo.rb"]2138 has the correct categories2139 expected_categories: [:import_integrate_be, :backend], patch: "+ project.execute_integrations(foo, :bar)", changed_files: ["app/foo.rb"]2140 has the correct categories2141 expected_categories: [:frontend, :analytics_instrumentation], patch: "+ api.trackRedisCounterEvent(\"foo\")", changed_files: ["app/assets/javascripts/telemetry.js", "ee/app/assets/javascripts/mr_widget.vue"]2142 has the correct categories2143 expected_categories: [:frontend, :analytics_instrumentation], patch: "+ api.trackRedisHllUserEvent(\"bar\")", changed_files: ["app/assets/javascripts/telemetry.js", "ee/app/assets/javascripts/mr_widget.vue"]2144 has the correct categories2145 #file_lines2146 returns the chomped file lines2147Integrations::Slack2148 behaves like Integrations::SlackMattermostNotifier2149 Associations2150 is expected to belong to project required: false2151 Validations2152 when integration is active2153 is expected to validate that :webhook cannot be empty/falsy2154 behaves like issue tracker integration URL attribute2155 is expected to allow :webhook to be ‹"https://example.com"›2156 is expected not to allow :webhook to be ‹"example.com"›2157 is expected not to allow :webhook to be ‹"ftp://example.com"›2158 is expected not to allow :webhook to be ‹"herp-and-derp"›2159 when integration is inactive2160 is expected not to validate that :webhook cannot be empty/falsy2161 #execute2162 with username for slack configured2163 uses the username as an option2164 push events2165 behaves like calls the integration API with the event message2166 is expected to request POST https://8.8.8.9/ 1 time2167 with event channel2168 uses the right channel for push event2169 tag_push events2170 behaves like calls the integration API with the event message2171 is expected to request POST https://8.8.8.9/ 1 time2172 issue events2173 behaves like calls the integration API with the event message2174 is expected to request POST https://8.8.8.9/ 1 time2175 whith event channel2176 uses the right channel for issue event2177 for confidential issues2178 falls back to issue channel2179 and confidential_issue_channel is defined2180 uses the confidential issue channel when it is defined2181 merge request events2182 behaves like calls the integration API with the event message2183 is expected to request POST https://8.8.8.9/ 1 time2184 with event channel2185 uses the right channel for merge request event2186 wiki page events2187 behaves like calls the integration API with the event message2188 is expected to request POST https://8.8.8.9/ 1 time2189 with event channel2190 uses the right channel for wiki event2191 deployment events2192 behaves like calls the integration API with the event message2193 is expected to request POST https://8.8.8.9/ 1 time2194 note event2195 behaves like calls the integration API with the event message2196 is expected to request POST https://8.8.8.9/ 1 time2197 with event channel2198 uses the right channel2199 for confidential notes2200 falls back to note channel2201 and confidential_note_channel is defined2202 uses confidential channel2203 Push events2204 on default branch2205 pushing tags2206 behaves like triggered Slack integration2207 notifies about push events2208 when the response is not successful2209 logs an error2210 notification enabled only for default branch2211 behaves like triggered Slack integration2212 notifies about push events2213 when the response is not successful2214 logs an error2215 notification enabled only for protected branches2216 behaves like untriggered Slack integration2217 does not notify about push events2218 notification enabled only for default and protected branches2219 behaves like triggered Slack integration2220 notifies about push events2221 when the response is not successful2222 logs an error2223 notification enabled for all branches2224 behaves like triggered Slack integration2225 notifies about push events2226 when the response is not successful2227 logs an error2228 on a protected branch2229 pushing tags2230 behaves like triggered Slack integration2231 notifies about push events2232 when the response is not successful2233 logs an error2234 notification enabled only for default branch2235 behaves like untriggered Slack integration2236 does not notify about push events2237 notification enabled only for protected branches2238 behaves like triggered Slack integration2239 notifies about push events2240 when the response is not successful2241 logs an error2242 notification enabled only for default and protected branches2243 behaves like triggered Slack integration2244 notifies about push events2245 when the response is not successful2246 logs an error2247 notification enabled for all branches2248 behaves like triggered Slack integration2249 notifies about push events2250 when the response is not successful2251 logs an error2252 on a protected branch with protected branches defined using wildcards2253 pushing tags2254 behaves like triggered Slack integration2255 notifies about push events2256 when the response is not successful2257 logs an error2258 notification enabled only for default branch2259 behaves like untriggered Slack integration2260 does not notify about push events2261 notification enabled only for protected branches2262 behaves like triggered Slack integration2263 notifies about push events2264 when the response is not successful2265 logs an error2266 notification enabled only for default and protected branches2267 behaves like triggered Slack integration2268 notifies about push events2269 when the response is not successful2270 logs an error2271 notification enabled for all branches2272 behaves like triggered Slack integration2273 notifies about push events2274 when the response is not successful2275 logs an error2276 on a neither protected nor default branch2277 pushing tags2278 behaves like triggered Slack integration2279 notifies about push events2280 when the response is not successful2281 logs an error2282 notification enabled only for default branch2283 behaves like untriggered Slack integration2284 does not notify about push events2285 notification enabled only for protected branches2286 behaves like untriggered Slack integration2287 does not notify about push events2288 notification enabled only for default and protected branches2289 behaves like untriggered Slack integration2290 does not notify about push events2291 notification enabled for all branches2292 behaves like triggered Slack integration2293 notifies about push events2294 when the response is not successful2295 logs an error2296 Note events2297 when commit comment event executed2298 behaves like triggered Slack integration2299 notifies about commit comment events2300 when the response is not successful2301 logs an error2302 when merge request comment event executed2303 behaves like triggered Slack integration2304 notifies about merge request comment events2305 when the response is not successful2306 logs an error2307 when issue comment event executed2308 behaves like triggered Slack integration2309 notifies about issue comment events2310 when the response is not successful2311 logs an error2312 when snippet comment event executed2313 behaves like triggered Slack integration2314 notifies about snippet comment events2315 when the response is not successful2316 logs an error2317 Pipeline events2318 with succeeded pipeline2319 with default to notify_only_broken_pipelines2320 behaves like untriggered Slack integration2321 does not notify about pipeline events2322 with setting notify_only_broken_pipelines to false2323 behaves like triggered Slack integration2324 notifies about pipeline events2325 when the response is not successful2326 logs an error2327 with failed pipeline2328 on default branch2329 notification enabled only for default branch2330 behaves like triggered Slack integration2331 notifies about pipeline events2332 when the response is not successful2333 logs an error2334 notification enabled only for protected branches2335 behaves like untriggered Slack integration2336 does not notify about pipeline events2337 notification enabled only for default and protected branches2338 behaves like triggered Slack integration2339 notifies about pipeline events2340 when the response is not successful2341 logs an error2342 notification enabled for all branches2343 behaves like triggered Slack integration2344 notifies about pipeline events2345 when the response is not successful2346 logs an error2347 on a protected branch2348 notification enabled only for default branch2349 behaves like untriggered Slack integration2350 does not notify about pipeline events2351 notification enabled only for protected branches2352 behaves like triggered Slack integration2353 notifies about pipeline events2354 when the response is not successful2355 logs an error2356 notification enabled only for default and protected branches2357 behaves like triggered Slack integration2358 notifies about pipeline events2359 when the response is not successful2360 logs an error2361 notification enabled for all branches2362 behaves like triggered Slack integration2363 notifies about pipeline events2364 when the response is not successful2365 logs an error2366 on a protected branch with protected branches defined usin wildcards2367 notification enabled only for default branch2368 behaves like untriggered Slack integration2369 does not notify about pipeline events2370 notification enabled only for protected branches2371 behaves like triggered Slack integration2372 notifies about pipeline events2373 when the response is not successful2374 logs an error2375 notification enabled only for default and protected branches2376 behaves like triggered Slack integration2377 notifies about pipeline events2378 when the response is not successful2379 logs an error2380 notification enabled for all branches2381 behaves like triggered Slack integration2382 notifies about pipeline events2383 when the response is not successful2384 logs an error2385 on a neither protected nor default branch2386 notification enabled only for default branch2387 behaves like untriggered Slack integration2388 does not notify about pipeline events2389 notification enabled only for protected branches2390 behaves like untriggered Slack integration2391 does not notify about pipeline events2392 notification enabled only for default and protected branches2393 behaves like untriggered Slack integration2394 does not notify about pipeline events2395 notification enabled for all branches2396 behaves like triggered Slack integration2397 notifies about pipeline events2398 when the response is not successful2399 logs an error2400 Deployment events2401 behaves like triggered Slack integration2402 notifies about deployment events2403 when the response is not successful2404 logs an error2405 on a protected branch2406 notification enabled only for default branch2407 behaves like untriggered Slack integration2408 does not notify about pipeline events2409 notification enabled only for protected branches2410 behaves like triggered Slack integration2411 notifies about pipeline events2412 when the response is not successful2413 logs an error2414 notification enabled only for default and protected branches2415 behaves like triggered Slack integration2416 notifies about pipeline events2417 when the response is not successful2418 logs an error2419 notification enabled for all branches2420 behaves like triggered Slack integration2421 notifies about pipeline events2422 when the response is not successful2423 logs an error2424 behaves like Integrations::BaseSlackNotification2425 #execute2426 uses only known events2427 when hook data includes a user object2428 when event is not supported for usage log2429 does not increase the usage data counter2430 for issue notification2431 behaves like increases the usage data counter2432 increases the usage data counter2433 behaves like Snowplow event tracking with RedisHLL context2434 behaves like Snowplow event tracking2435 is emitted2436 for push notification2437 behaves like increases the usage data counter2438 increases the usage data counter2439 behaves like Snowplow event tracking with RedisHLL context2440 behaves like Snowplow event tracking2441 is emitted2442 for deployment notification2443 behaves like increases the usage data counter2444 increases the usage data counter2445 behaves like Snowplow event tracking with RedisHLL context2446 behaves like Snowplow event tracking2447 is emitted2448 for wiki_page notification2449 behaves like increases the usage data counter2450 increases the usage data counter2451 behaves like Snowplow event tracking with RedisHLL context2452 behaves like Snowplow event tracking2453 is emitted2454 for merge_request notification2455 behaves like increases the usage data counter2456 increases the usage data counter2457 behaves like Snowplow event tracking with RedisHLL context2458 behaves like Snowplow event tracking2459 is emitted2460 for note notification2461 behaves like increases the usage data counter2462 increases the usage data counter2463 behaves like Snowplow event tracking with RedisHLL context2464 behaves like Snowplow event tracking2465 is emitted2466 for tag_push notification2467 behaves like increases the usage data counter2468 increases the usage data counter2469 behaves like Snowplow event tracking with RedisHLL context2470 behaves like Snowplow event tracking2471 is emitted2472 for confidential note notification2473 behaves like increases the usage data counter2474 increases the usage data counter2475 behaves like Snowplow event tracking with RedisHLL context2476 behaves like Snowplow event tracking2477 is emitted2478 for confidential issue notification2479 behaves like increases the usage data counter2480 increases the usage data counter2481 behaves like Snowplow event tracking with RedisHLL context2482 behaves like Snowplow event tracking2483 is emitted2484 when hook data does not include a user2485 does not increase the usage data counter2486Gitlab::UrlSanitizer2487 .sanitize2488 input: "http://test.com", output: "http://test.com"2489 is expected to include "repository `http://test.com` not found"2490 input: "http://test.com/", output: "http://test.com/"2491 is expected to include "repository `http://test.com/` not found"2492 input: "http://test.com/path/to/repo.git", output: "http://test.com/path/to/repo.git"2493 is expected to include "repository `http://test.com/path/to/repo.git` not found"2494 input: "http://user@test.com", output: "http://*****@test.com"2495 is expected to include "repository `http://*****@test.com` not found"2496 input: "http://user:pass@test.com", output: "http://*****:*****@test.com"2497 is expected to include "repository `http://*****:*****@test.com` not found"2498 input: "http://user:@test.com", output: "http://*****@test.com"2499 is expected to include "repository `http://*****@test.com` not found"2500 input: "http://:pass@test.com", output: "http://:*****@test.com"2501 is expected to include "repository `http://:*****@test.com` not found"2502 input: "https://test.com", output: "https://test.com"2503 is expected to include "repository `https://test.com` not found"2504 input: "https://test.com/", output: "https://test.com/"2505 is expected to include "repository `https://test.com/` not found"2506 input: "https://test.com/path/to/repo.git", output: "https://test.com/path/to/repo.git"2507 is expected to include "repository `https://test.com/path/to/repo.git` not found"2508 input: "https://user@test.com", output: "https://*****@test.com"2509 is expected to include "repository `https://*****@test.com` not found"2510 input: "https://user:pass@test.com", output: "https://*****:*****@test.com"2511 is expected to include "repository `https://*****:*****@test.com` not found"2512 input: "https://user:@test.com", output: "https://*****@test.com"2513 is expected to include "repository `https://*****@test.com` not found"2514 input: "https://:pass@test.com", output: "https://:*****@test.com"2515 is expected to include "repository `https://:*****@test.com` not found"2516 input: "ssh://test.com", output: "ssh://test.com"2517 is expected to include "repository `ssh://test.com` not found"2518 input: "ssh://test.com/", output: "ssh://test.com/"2519 is expected to include "repository `ssh://test.com/` not found"2520 input: "ssh://test.com/path/to/repo.git", output: "ssh://test.com/path/to/repo.git"2521 is expected to include "repository `ssh://test.com/path/to/repo.git` not found"2522 input: "ssh://user@test.com", output: "ssh://*****@test.com"2523 is expected to include "repository `ssh://*****@test.com` not found"2524 input: "ssh://user:pass@test.com", output: "ssh://*****:*****@test.com"2525 is expected to include "repository `ssh://*****:*****@test.com` not found"2526 input: "ssh://user:@test.com", output: "ssh://*****@test.com"2527 is expected to include "repository `ssh://*****@test.com` not found"2528 input: "ssh://:pass@test.com", output: "ssh://:*****@test.com"2529 is expected to include "repository `ssh://:*****@test.com` not found"2530 input: "git://test.com", output: "git://test.com"2531 is expected to include "repository `git://test.com` not found"2532 input: "git://test.com/", output: "git://test.com/"2533 is expected to include "repository `git://test.com/` not found"2534 input: "git://test.com/path/to/repo.git", output: "git://test.com/path/to/repo.git"2535 is expected to include "repository `git://test.com/path/to/repo.git` not found"2536 input: "git://user@test.com", output: "git://*****@test.com"2537 is expected to include "repository `git://*****@test.com` not found"2538 input: "git://user:pass@test.com", output: "git://*****:*****@test.com"2539 is expected to include "repository `git://*****:*****@test.com` not found"2540 input: "git://user:@test.com", output: "git://*****@test.com"2541 is expected to include "repository `git://*****@test.com` not found"2542 input: "git://:pass@test.com", output: "git://:*****@test.com"2543 is expected to include "repository `git://:*****@test.com` not found"2544 input: "//test.com", output: "//test.com"2545 is expected to include "repository `//test.com` not found"2546 input: "//test.com/", output: "//test.com/"2547 is expected to include "repository `//test.com/` not found"2548 input: "//test.com/path/to/repo.git", output: "//test.com/path/to/repo.git"2549 is expected to include "repository `//test.com/path/to/repo.git` not found"2550 input: "//user@test.com", output: "//*****@test.com"2551 is expected to include "repository `//*****@test.com` not found"2552 input: "//user:pass@test.com", output: "//*****:*****@test.com"2553 is expected to include "repository `//*****:*****@test.com` not found"2554 input: "//user:@test.com", output: "//*****@test.com"2555 is expected to include "repository `//*****@test.com` not found"2556 input: "//:pass@test.com", output: "//:*****@test.com"2557 is expected to include "repository `//:*****@test.com` not found"2558 input: "test.com", output: "test.com"2559 is expected to include "repository `test.com` not found"2560 input: "test.com/", output: "test.com/"2561 is expected to include "repository `test.com/` not found"2562 input: "test.com/path/to/repo.git", output: "test.com/path/to/repo.git"2563 is expected to include "repository `test.com/path/to/repo.git` not found"2564 input: "user@test.com", output: "*****@test.com"2565 is expected to include "repository `*****@test.com` not found"2566 input: "user:pass@test.com", output: "*****:*****@test.com"2567 is expected to include "repository `*****:*****@test.com` not found"2568 input: "user:@test.com", output: "*****@test.com"2569 is expected to include "repository `*****@test.com` not found"2570 input: ":pass@test.com", output: ":*****@test.com"2571 is expected to include "repository `:*****@test.com` not found"2572 input: "user@server:project.git", output: "user@server:project.git"2573 is expected to include "repository `user@server:project.git` not found"2574 input: "user:@server:project.git", output: "user:@server:project.git"2575 is expected to include "repository `user:@server:project.git` not found"2576 input: ":pass@server:project.git", output: ":pass@server:project.git"2577 is expected to include "repository `:pass@server:project.git` not found"2578 input: "user:pass@server:project.git", output: "user:pass@server:project.git"2579 is expected to include "repository `user:pass@server:project.git` not found"2580 input: "ssh://", output: ""2581 is expected to include "repository `` not found"2582 .valid?2583 value: false, url: nil2584 is expected to eq false2585 value: false, url: ""2586 is expected to eq false2587 value: false, url: "123://invalid:url"2588 is expected to eq false2589 value: false, url: "valid@project:url.git"2590 is expected to eq false2591 value: false, url: "valid:pass@project:url.git"2592 is expected to eq false2593 value: false, url: ["test", "array"]2594 is expected to eq false2595 value: true, url: "ssh://example.com"2596 is expected to eq true2597 value: true, url: "ssh://:@example.com"2598 is expected to eq true2599 value: true, url: "ssh://foo@example.com"2600 is expected to eq true2601 value: true, url: "ssh://foo:bar@example.com"2602 is expected to eq true2603 value: true, url: "ssh://foo:bar@example.com/group/group/project.git"2604 is expected to eq true2605 value: true, url: "git://example.com/group/group/project.git"2606 is expected to eq true2607 value: true, url: "git://foo:bar@example.com/group/group/project.git"2608 is expected to eq true2609 value: true, url: "http://foo:bar@example.com/group/group/project.git"2610 is expected to eq true2611 value: true, url: "https://foo:bar@example.com/group/group/project.git"2612 is expected to eq true2613 .valid_web?2614 value: false, url: nil2615 is expected to eq false2616 value: false, url: ""2617 is expected to eq false2618 value: false, url: "123://invalid:url"2619 is expected to eq false2620 value: false, url: "valid@project:url.git"2621 is expected to eq false2622 value: false, url: "valid:pass@project:url.git"2623 is expected to eq false2624 value: false, url: ["test", "array"]2625 is expected to eq false2626 value: false, url: "ssh://example.com"2627 is expected to eq false2628 value: false, url: "ssh://:@example.com"2629 is expected to eq false2630 value: false, url: "ssh://foo@example.com"2631 is expected to eq false2632 value: false, url: "ssh://foo:bar@example.com"2633 is expected to eq false2634 value: false, url: "ssh://foo:bar@example.com/group/group/project.git"2635 is expected to eq false2636 value: false, url: "git://example.com/group/group/project.git"2637 is expected to eq false2638 value: false, url: "git://foo:bar@example.com/group/group/project.git"2639 is expected to eq false2640 value: true, url: "http://foo:bar@example.com/group/group/project.git"2641 is expected to eq true2642 value: true, url: "https://foo:bar@example.com/group/group/project.git"2643 is expected to eq true2644 #sanitized_url2645 credentials in hash2646 username: "foo", password: "bar"2647 is expected to eq "http://example.com"2648 username: "foo", password: ""2649 is expected to eq "http://example.com"2650 username: "foo", password: nil2651 is expected to eq "http://example.com"2652 username: "", password: "bar"2653 is expected to eq "http://example.com"2654 username: "", password: ""2655 is expected to eq "http://example.com"2656 username: "", password: nil2657 is expected to eq "http://example.com"2658 username: nil, password: "bar"2659 is expected to eq "http://example.com"2660 username: nil, password: ""2661 is expected to eq "http://example.com"2662 username: nil, password: nil2663 is expected to eq "http://example.com"2664 credentials in URL2665 userinfo: "foo:bar@"2666 is expected to eq "http://example.com"2667 userinfo: "foo@"2668 is expected to eq "http://example.com"2669 userinfo: ":bar@"2670 is expected to eq "http://example.com"2671 userinfo: ":@"2672 is expected to eq "http://example.com"2673 userinfo: "@"2674 is expected to eq "http://example.com"2675 userinfo: nil2676 is expected to eq "http://example.com"2677 #credentials2678 credentials in hash2679 overrides URL-provided credentials2680 credentials in URL2681 url: "http://foo:bar@example.com", credentials: {:user=>"foo", :password=>"bar"}2682 is expected to eq {:password=>"bar", :user=>"foo"}2683 url: "http://foo:bar:baz@example.com", credentials: {:user=>"foo", :password=>"bar:baz"}2684 is expected to eq {:password=>"bar:baz", :user=>"foo"}2685 url: "http://:bar@example.com", credentials: {:user=>nil, :password=>"bar"}2686 is expected to eq {:password=>"bar", :user=>nil}2687 url: "http://foo:@example.com", credentials: {:user=>"foo", :password=>nil}2688 is expected to eq {:password=>nil, :user=>"foo"}2689 url: "http://foo@example.com", credentials: {:user=>"foo", :password=>nil}2690 is expected to eq {:password=>nil, :user=>"foo"}2691 url: "http://:@example.com", credentials: {:user=>nil, :password=>nil}2692 is expected to eq {:password=>nil, :user=>nil}2693 url: "http://@example.com", credentials: {:user=>nil, :password=>nil}2694 is expected to eq {:password=>nil, :user=>nil}2695 url: "http://example.com", credentials: {:user=>nil, :password=>nil}2696 is expected to eq {:password=>nil, :user=>nil}2697 url: nil, credentials: {:user=>nil, :password=>nil}2698 is expected to eq {:password=>nil, :user=>nil}2699 url: "", credentials: {:user=>nil, :password=>nil}2700 is expected to eq {:password=>nil, :user=>nil}2701 url: "no", credentials: {:user=>nil, :password=>nil}2702 is expected to eq {:password=>nil, :user=>nil}2703 with mixed credentials2704 url: "http://a@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}2705 is expected to eq {:password=>"d", :user=>"a"}2706 url: "http://a:b@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}2707 is expected to eq {:password=>"d", :user=>"a"}2708 url: "http://:b@example.com", credentials: {:password=>"d"}, result: {:user=>nil, :password=>"d"}2709 is expected to eq {:password=>"d", :user=>nil}2710 url: "http://a@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>nil}2711 is expected to eq {:password=>nil, :user=>"c"}2712 url: "http://a:b@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>"b"}2713 is expected to eq {:password=>"b", :user=>"c"}2714 url: "http://a:b@example.com", credentials: {:user=>""}, result: {:user=>"a", :password=>"b"}2715 is expected to eq {:password=>"b", :user=>"a"}2716 #user2717 credentials in hash2718 overrides URL-provided user2719 credentials in URL2720 url: "http://foo:bar@example.com", user: "foo"2721 is expected to eq "foo"2722 url: "http://foo:bar:baz@example.com", user: "foo"2723 is expected to eq "foo"2724 url: "http://:bar@example.com", user: nil2725 is expected to eq nil2726 url: "http://foo:@example.com", user: "foo"2727 is expected to eq "foo"2728 url: "http://foo@example.com", user: "foo"2729 is expected to eq "foo"2730 url: "http://:@example.com", user: nil2731 is expected to eq nil2732 url: "http://@example.com", user: nil2733 is expected to eq nil2734 url: "http://example.com", user: nil2735 is expected to eq nil2736 url: nil, user: nil2737 is expected to eq nil2738 url: "", user: nil2739 is expected to eq nil2740 url: "no", user: nil2741 is expected to eq nil2742 #full_url2743 credentials in hash2744 credentials: {:user=>"foo", :password=>"bar"}, userinfo: "foo:bar@"2745 is expected to eq "http://foo:bar@example.com"2746 credentials: {:user=>"foo", :password=>""}, userinfo: "foo@"2747 is expected to eq "http://foo@example.com"2748 credentials: {:user=>"foo", :password=>nil}, userinfo: "foo@"2749 is expected to eq "http://foo@example.com"2750 credentials: {:user=>"", :password=>"bar"}, userinfo: ":bar@"2751 is expected to eq "http://:bar@example.com"2752 credentials: {:user=>"", :password=>""}, userinfo: nil2753 is expected to eq "http://example.com"2754 credentials: {:user=>"", :password=>nil}, userinfo: nil2755 is expected to eq "http://example.com"2756 credentials: {:user=>nil, :password=>"bar"}, userinfo: ":bar@"2757 is expected to eq "http://:bar@example.com"2758 credentials: {:user=>nil, :password=>""}, userinfo: nil2759 is expected to eq "http://example.com"2760 credentials: {:user=>nil, :password=>nil}, userinfo: nil2761 is expected to eq "http://example.com"2762 credentials in URL2763 input: nil, output: ""2764 is expected to eq ""2765 input: "", output: :same2766 is expected to eq ""2767 input: "git@example.com", output: :same2768 is expected to eq "git@example.com"2769 input: "http://example.com", output: :same2770 is expected to eq "http://example.com"2771 input: "http://foo@example.com", output: :same2772 is expected to eq "http://foo@example.com"2773 input: "http://foo:@example.com", output: "http://foo@example.com"2774 is expected to eq "http://foo@example.com"2775 input: "http://:bar@example.com", output: :same2776 is expected to eq "http://:bar@example.com"2777 input: "http://foo:bar@example.com", output: :same2778 is expected to eq "http://foo:bar@example.com"2779 input: "http://foo:g p@example.com", output: "http://foo:g%20p@example.com"2780 is expected to eq "http://foo:g%20p@example.com"2781 input: "http://foo:s/h@example.com", output: "http://foo:s%2Fh@example.com"2782 is expected to eq "http://foo:s%2Fh@example.com"2783 input: "http://t u:a#b@example.com", output: "http://t%20u:a%23b@example.com"2784 is expected to eq "http://t%20u:a%23b@example.com"2785 input: "http://t+u:a#b@example.com", output: "http://t%2Bu:a%23b@example.com"2786 is expected to eq "http://t%2Bu:a%23b@example.com"2787 when credentials contains special chars2788 parses the URL without errors2789Packages::Maven::Metadata::SyncWorker2790 #perform2791 with a jar2792 with a valid package name2793 logs the message from the service2794 behaves like an idempotent worker2795 is labeled as idempotent2796 performs multiple times sequentially without raising an exception2797 creates the updated metadata files2798 not in the passed project2799 does not create the updated metadata files2800 with a user with not enough permissions2801 does not create the updated metadata files2802 with a maven plugin2803 with a valid package name2804 logs the message from the service2805 behaves like an idempotent worker2806 is labeled as idempotent2807 performs multiple times sequentially without raising an exception2808 creates the updated metadata files2809 not in the passed project2810 does not create the updated metadata files2811 with a user with not enough permissions2812 does not create the updated metadata files2813 with no package name2814 does not run2815 with no user id2816 does not run2817 with no project id2818 does not run2819Gitlab::Database::MigrationHelpers::RestrictGitlabSchema2820 #restrict_gitlab_migration2821 invalid schema raises exception2822 does configure allowed_gitlab_schema2823 when executing migrations2824 does create table in gitlab_main and gitlab_ci2825 for db_config_name=main2826 while restrict_gitlab_migration=no_gitlab_schema2827 does run migrate :up and :down2828 while restrict_gitlab_migration=gitlab_schema_gitlab_main2829 does run migrate :up and :down2830 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2831 does run migrate :up and :down2832 for db_config_name=ci2833 while restrict_gitlab_migration=no_gitlab_schema2834 does run migrate :up and :down2835 while restrict_gitlab_migration=gitlab_schema_gitlab_main2836 does run migrate :up and :down2837 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2838 does run migrate :up and :down2839 does add column to projects in gitlab_main and gitlab_ci2840 for db_config_name=main2841 while restrict_gitlab_migration=no_gitlab_schema2842 does run migrate :up and :down2843 while restrict_gitlab_migration=gitlab_schema_gitlab_main2844 does run migrate :up and :down2845 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2846 does run migrate :up and :down2847 for db_config_name=ci2848 while restrict_gitlab_migration=no_gitlab_schema2849 does run migrate :up and :down2850 while restrict_gitlab_migration=gitlab_schema_gitlab_main2851 does run migrate :up and :down2852 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2853 does run migrate :up and :down2854 does add column to p_ci_builds in gitlab_main and gitlab_ci2855 for db_config_name=main2856 while restrict_gitlab_migration=no_gitlab_schema2857 does run migrate :up and :down2858 while restrict_gitlab_migration=gitlab_schema_gitlab_main2859 does run migrate :up and :down2860 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2861 does run migrate :up and :down2862 for db_config_name=ci2863 while restrict_gitlab_migration=no_gitlab_schema2864 does run migrate :up and :down2865 while restrict_gitlab_migration=gitlab_schema_gitlab_main2866 does run migrate :up and :down2867 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2868 does run migrate :up and :down2869 does add index to projects in gitlab_main and gitlab_ci2870 for db_config_name=main2871 while restrict_gitlab_migration=no_gitlab_schema2872 does run migrate :up and :down2873 while restrict_gitlab_migration=gitlab_schema_gitlab_main2874 does run migrate :up and :down2875 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2876 does run migrate :up and :down2877 for db_config_name=ci2878 while restrict_gitlab_migration=no_gitlab_schema2879 does run migrate :up and :down2880 while restrict_gitlab_migration=gitlab_schema_gitlab_main2881 does run migrate :up and :down2882 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2883 does run migrate :up and :down2884 does add index to ci_builds in gitlab_main and gitlab_ci2885 for db_config_name=main2886 while restrict_gitlab_migration=no_gitlab_schema2887 does run migrate :up and :down2888 while restrict_gitlab_migration=gitlab_schema_gitlab_main2889 does run migrate :up and :down2890 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2891 does run migrate :up and :down2892 for db_config_name=ci2893 while restrict_gitlab_migration=no_gitlab_schema2894 does run migrate :up and :down2895 while restrict_gitlab_migration=gitlab_schema_gitlab_main2896 does run migrate :up and :down2897 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2898 does run migrate :up and :down2899 does create trigger in gitlab_main and gitlab_ci2900 for db_config_name=main2901 while restrict_gitlab_migration=no_gitlab_schema2902 does run migrate :up and :down2903 while restrict_gitlab_migration=gitlab_schema_gitlab_main2904 does run migrate :up and :down2905 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2906 does run migrate :up and :down2907 for db_config_name=ci2908 while restrict_gitlab_migration=no_gitlab_schema2909 does run migrate :up and :down2910 while restrict_gitlab_migration=gitlab_schema_gitlab_main2911 does run migrate :up and :down2912 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2913 does run migrate :up and :down2914 does create schema in gitlab_main and gitlab_ci2915 for db_config_name=main2916 while restrict_gitlab_migration=no_gitlab_schema2917 does run migrate :up and :down2918 while restrict_gitlab_migration=gitlab_schema_gitlab_main2919 does run migrate :up and :down2920 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2921 does run migrate :up and :down2922 for db_config_name=ci2923 while restrict_gitlab_migration=no_gitlab_schema2924 does run migrate :up and :down2925 while restrict_gitlab_migration=gitlab_schema_gitlab_main2926 does run migrate :up and :down2927 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2928 does run migrate :up and :down2929 does attach loose foreign key trigger in gitlab_main and gitlab_ci2930 for db_config_name=main2931 while restrict_gitlab_migration=no_gitlab_schema2932 does run migrate :up and :down2933 while restrict_gitlab_migration=gitlab_schema_gitlab_main2934 does run migrate :up and :down2935 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2936 does run migrate :up and :down2937 for db_config_name=ci2938 while restrict_gitlab_migration=no_gitlab_schema2939 does run migrate :up and :down2940 while restrict_gitlab_migration=gitlab_schema_gitlab_main2941 does run migrate :up and :down2942 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2943 does run migrate :up and :down2944 does insert into software_licenses2945 for db_config_name=main2946 while restrict_gitlab_migration=no_gitlab_schema2947 does run migrate :up and :down2948 while restrict_gitlab_migration=gitlab_schema_gitlab_main2949 does run migrate :up and :down2950 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2951 does run migrate :up and :down2952 for db_config_name=ci2953 while restrict_gitlab_migration=no_gitlab_schema2954 does run migrate :up and :down2955 while restrict_gitlab_migration=gitlab_schema_gitlab_main2956 does run migrate :up and :down2957 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2958 does run migrate :up and :down2959 does raise exception when accessing tables outside of gitlab_main2960 for db_config_name=main2961 while restrict_gitlab_migration=no_gitlab_schema2962 does run migrate :up and :down2963 while restrict_gitlab_migration=gitlab_schema_gitlab_main2964 does run migrate :up and :down2965 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2966 does run migrate :up and :down2967 for db_config_name=ci2968 while restrict_gitlab_migration=no_gitlab_schema2969 does run migrate :up and :down2970 while restrict_gitlab_migration=gitlab_schema_gitlab_main2971 does run migrate :up and :down2972 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2973 does run migrate :up and :down2974 does allow modifying gitlab_shared2975 for db_config_name=main2976 while restrict_gitlab_migration=no_gitlab_schema2977 does run migrate :up and :down2978 while restrict_gitlab_migration=gitlab_schema_gitlab_main2979 does run migrate :up and :down2980 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2981 does run migrate :up and :down2982 for db_config_name=ci2983 while restrict_gitlab_migration=no_gitlab_schema2984 does run migrate :up and :down2985 while restrict_gitlab_migration=gitlab_schema_gitlab_main2986 does run migrate :up and :down2987 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2988 does run migrate :up and :down2989 does update data in batches of gitlab_main, but skips gitlab_ci2990 for db_config_name=main2991 while restrict_gitlab_migration=no_gitlab_schema2992 does run migrate :up and :down2993 while restrict_gitlab_migration=gitlab_schema_gitlab_main2994 does run migrate :up and :down2995 while restrict_gitlab_migration=gitlab_schema_gitlab_shared2996 does run migrate :up and :down2997 for db_config_name=ci2998 while restrict_gitlab_migration=no_gitlab_schema2999 does run migrate :up and :down3000 while restrict_gitlab_migration=gitlab_schema_gitlab_main3001 does run migrate :up and :down3002 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3003 does run migrate :up and :down3004 does not allow executing mixed DDL and DML migrations3005 for db_config_name=main3006 while restrict_gitlab_migration=no_gitlab_schema3007 does run migrate :up and :down3008 while restrict_gitlab_migration=gitlab_schema_gitlab_main3009 does run migrate :up and :down3010 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3011 does run migrate :up and :down3012 for db_config_name=ci3013 while restrict_gitlab_migration=no_gitlab_schema3014 does run migrate :up and :down3015 while restrict_gitlab_migration=gitlab_schema_gitlab_main3016 does run migrate :up and :down3017 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3018 does run migrate :up and :down3019 does schedule background migrations on gitlab_main3020 for db_config_name=main3021 while restrict_gitlab_migration=no_gitlab_schema3022 does run migrate :up and :down3023 while restrict_gitlab_migration=gitlab_schema_gitlab_main3024 does run migrate :up and :down3025 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3026 does run migrate :up and :down3027 for db_config_name=ci3028 while restrict_gitlab_migration=no_gitlab_schema3029 does run migrate :up and :down3030 while restrict_gitlab_migration=gitlab_schema_gitlab_main3031 does run migrate :up and :down3032 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3033 does run migrate :up and :down3034 does support prepare_async_index3035 for db_config_name=main3036 while restrict_gitlab_migration=no_gitlab_schema3037 does run migrate :up and :down3038 while restrict_gitlab_migration=gitlab_schema_gitlab_main3039 does run migrate :up and :down3040 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3041 does run migrate :up and :down3042 for db_config_name=ci3043 while restrict_gitlab_migration=no_gitlab_schema3044 does run migrate :up and :down3045 while restrict_gitlab_migration=gitlab_schema_gitlab_main3046 does run migrate :up and :down3047 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3048 does run migrate :up and :down3049 does raise exception when accessing current settings3050 for db_config_name=main3051 while restrict_gitlab_migration=no_gitlab_schema3052 does run migrate :up and :down3053 while restrict_gitlab_migration=gitlab_schema_gitlab_main3054 does run migrate :up and :down3055 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3056 does run migrate :up and :down3057 for db_config_name=ci3058 while restrict_gitlab_migration=no_gitlab_schema3059 does run migrate :up and :down3060 while restrict_gitlab_migration=gitlab_schema_gitlab_main3061 does run migrate :up and :down3062 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3063 does run migrate :up and :down3064 does raise exception when accessing feature flags3065 for db_config_name=main3066 while restrict_gitlab_migration=no_gitlab_schema3067 does run migrate :up and :down3068 while restrict_gitlab_migration=gitlab_schema_gitlab_main3069 does run migrate :up and :down3070 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3071 does run migrate :up and :down (FAILED - 1)30731st Try error in ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:554:3074expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError but nothing was raised3076RSpec::Retry: 2nd try ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:5543077 for db_config_name=ci3078 while restrict_gitlab_migration=no_gitlab_schema3079 does run migrate :up and :down (FAILED - 2)30811st Try error in ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:554:3082expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLNotAllowedError but nothing was raised3084RSpec::Retry: 2nd try ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:5543085 while restrict_gitlab_migration=gitlab_schema_gitlab_main3086 does run migrate :up and :down3087 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3088 does run migrate :up and :down (FAILED - 3)30901st Try error in ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:554:3091expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError but nothing was raised3093RSpec::Retry: 2nd try ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:5543094 does raise exception about cross schema access when suppressing restriction to ensure3095 for db_config_name=main3096 while restrict_gitlab_migration=no_gitlab_schema3097 does run migrate :up and :down3098 while restrict_gitlab_migration=gitlab_schema_gitlab_main3099 does run migrate :up and :down3100 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3101 does run migrate :up and :down3102 for db_config_name=ci3103 while restrict_gitlab_migration=no_gitlab_schema3104 does run migrate :up and :down3105 while restrict_gitlab_migration=gitlab_schema_gitlab_main3106 does run migrate :up and :down3107 while restrict_gitlab_migration=gitlab_schema_gitlab_shared3108 does run migrate :up and :down3109MergeRequests::CleanupRefsService3110 .schedule3111 creates a merge request cleanup schedule3112 #execute3113 when merge request is closed3114 when closed 14 days ago3115 behaves like service that cleans up merge request refs3116 creates keep around ref and deletes merge request refs3117 when merge request has no head ref3118 does not fail3119 when merge request has merge ref3120 caches merge ref sha and deletes merge ref3121 when merge ref sha cannot be cached3122 behaves like service that does not clean up merge request refs3123 does not delete merge request refs3124 when keep around ref cannot be created3125 behaves like service that does not clean up merge request refs3126 does not delete merge request refs3127 when a git error is raised3128 Gitlab::Git::Repository::GitError3129 behaves like service that does not clean up merge request refs3130 does not delete merge request refs3131 Gitlab::Git::CommandError3132 behaves like service that does not clean up merge request refs3133 does not delete merge request refs3134 when cleanup schedule fails to update3135 creates keep around ref and deletes merge request refs3136 when merge request is not scheduled to be cleaned up yet3137 behaves like service that does not clean up merge request refs3138 does not delete merge request refs3139 when repository no longer exists3140 does not fail and still mark schedule as complete3141 when closed later than 14 days ago3142 behaves like service that does not clean up merge request refs3143 does not delete merge request refs3144 when merge request is merged3145 when merged 14 days ago3146 behaves like service that cleans up merge request refs3147 creates keep around ref and deletes merge request refs3148 when merge request has no head ref3149 does not fail3150 when merge request has merge ref3151 caches merge ref sha and deletes merge ref3152 when merge ref sha cannot be cached3153 behaves like service that does not clean up merge request refs3154 does not delete merge request refs3155 when keep around ref cannot be created3156 behaves like service that does not clean up merge request refs3157 does not delete merge request refs3158 when a git error is raised3159 Gitlab::Git::Repository::GitError3160 behaves like service that does not clean up merge request refs3161 does not delete merge request refs3162 Gitlab::Git::CommandError3163 behaves like service that does not clean up merge request refs3164 does not delete merge request refs3165 when cleanup schedule fails to update3166 creates keep around ref and deletes merge request refs3167 when merge request is not scheduled to be cleaned up yet3168 behaves like service that does not clean up merge request refs3169 does not delete merge request refs3170 when repository no longer exists3171 does not fail and still mark schedule as complete3172 when merged later than 14 days ago3173 behaves like service that does not clean up merge request refs3174 does not delete merge request refs3175 when merge request is not closed nor merged3176 behaves like service that does not clean up merge request refs3177 does not delete merge request refs3178Integrations::MicrosoftTeams3179 behaves like chat integration3180 Associations3181 is expected to belong to project required: false3182 Validations3183 when integration is active3184 is expected to validate that :webhook cannot be empty/falsy3185 behaves like issue tracker integration URL attribute3186 is expected to allow :webhook to be ‹"https://example.com"›3187 is expected not to allow :webhook to be ‹"example.com"›3188 is expected not to allow :webhook to be ‹"ftp://example.com"›3189 is expected not to allow :webhook to be ‹"herp-and-derp"›3190 when integration is inactive3191 is expected not to validate that :webhook cannot be empty/falsy3192 .supported_events3193 does not support deployment_events3194 #execute3195 with push events3196 behaves like triggered Microsoft Teams integration3197 calls Microsoft Teams API3198 with default branch3199 when only default branch are to be notified3200 behaves like triggered Microsoft Teams integration3201 calls Microsoft Teams API3202 when only protected branches are to be notified3203 behaves like untriggered Microsoft Teams integration3204 does not call Microsoft Teams API3205 when default and protected branches are to be notified3206 behaves like triggered Microsoft Teams integration3207 calls Microsoft Teams API3208 when all branches are to be notified3209 behaves like triggered Microsoft Teams integration3210 calls Microsoft Teams API3211 with protected branch3212 when only default branch are to be notified3213 behaves like untriggered Microsoft Teams integration3214 does not call Microsoft Teams API3215 when only protected branches are to be notified3216 behaves like triggered Microsoft Teams integration3217 calls Microsoft Teams API3218 when default and protected branches are to be notified3219 behaves like triggered Microsoft Teams integration3220 calls Microsoft Teams API3221 when all branches are to be notified3222 behaves like triggered Microsoft Teams integration3223 calls Microsoft Teams API3224 with neither default nor protected branch3225 when only default branch are to be notified3226 behaves like untriggered Microsoft Teams integration3227 does not call Microsoft Teams API3228 when only protected branches are to be notified3229 behaves like untriggered Microsoft Teams integration3230 does not call Microsoft Teams API3231 when default and protected branches are to be notified3232 behaves like untriggered Microsoft Teams integration3233 does not call Microsoft Teams API3234 when all branches are to be notified3235 behaves like triggered Microsoft Teams integration3236 calls Microsoft Teams API3237 with issue events3238 behaves like triggered Microsoft Teams integration3239 calls Microsoft Teams API3240 with merge events3241 behaves like triggered Microsoft Teams integration3242 calls Microsoft Teams API3243 with wiki page events3244 behaves like triggered Microsoft Teams integration3245 calls Microsoft Teams API3246 with note events3247 with commit comment3248 behaves like triggered Microsoft Teams integration3249 calls Microsoft Teams API3250 with merge request comment3251 behaves like triggered Microsoft Teams integration3252 calls Microsoft Teams API3253 with issue comment3254 behaves like triggered Microsoft Teams integration3255 calls Microsoft Teams API3256 with snippet comment3257 behaves like triggered Microsoft Teams integration3258 calls Microsoft Teams API3259 with pipeline events3260 with failed pipeline3261 behaves like triggered Microsoft Teams integration3262 calls Microsoft Teams API3263 with succeeded pipeline3264 with default notify_only_broken_pipelines3265 does not call Microsoft Teams API3266 when notify_only_broken_pipelines is false3267 behaves like triggered Microsoft Teams integration3268 calls Microsoft Teams API3269 with default branch3270 when only default branch are to be notified3271 behaves like triggered Microsoft Teams integration3272 calls Microsoft Teams API3273 when only protected branches are to be notified3274 behaves like untriggered Microsoft Teams integration3275 does not call Microsoft Teams API3276 when default and protected branches are to be notified3277 behaves like triggered Microsoft Teams integration3278 calls Microsoft Teams API3279 when all branches are to be notified3280 behaves like triggered Microsoft Teams integration3281 calls Microsoft Teams API3282 with protected branch3283 when only default branch are to be notified3284 behaves like untriggered Microsoft Teams integration3285 does not call Microsoft Teams API3286 when only protected branches are to be notified3287 behaves like triggered Microsoft Teams integration3288 calls Microsoft Teams API3289 when default and protected branches are to be notified3290 behaves like triggered Microsoft Teams integration3291 calls Microsoft Teams API3292 when all branches are to be notified3293 behaves like triggered Microsoft Teams integration3294 calls Microsoft Teams API3295 with neither default nor protected branch3296 when only default branch are to be notified3297 behaves like untriggered Microsoft Teams integration3298 does not call Microsoft Teams API3299 when only protected branches are to be notified3300 behaves like untriggered Microsoft Teams integration3301 does not call Microsoft Teams API3302 when default and protected branches are to be notified3303 behaves like untriggered Microsoft Teams integration3304 does not call Microsoft Teams API3305 when all branches are to be notified3306 behaves like triggered Microsoft Teams integration3307 calls Microsoft Teams API3308 deployment events3309 behaves like untriggered Microsoft Teams integration3310 does not call Microsoft Teams API3311 #execute3312 with push events3313 calls Microsoft Teams API for push events3314 specifies the webhook when it is configured3315 with issue events3316 calls Microsoft Teams API3317 with merge events3318 calls Microsoft Teams API3319 with wiki page events3320 calls Microsoft Teams API3321 Note events3322 when commit comment event executed3323 calls Microsoft Teams API for commit comment events3324 when merge request comment event executed3325 calls Microsoft Teams API for merge request comment events3326 when issue comment event executed3327 calls Microsoft Teams API for issue comment events3328 when snippet comment event executed3329 calls Microsoft Teams API for snippet comment events3330 Pipeline events3331 with failed pipeline3332 behaves like call Microsoft Teams API3333 calls Microsoft Teams API for pipeline events3334 with succeeded pipeline3335 with default to notify_only_broken_pipelines3336 does not call Microsoft Teams API for pipeline events3337 with setting notify_only_broken_pipelines to false3338 behaves like call Microsoft Teams API3339 calls Microsoft Teams API for pipeline events3340 with default branch3341 only notify for the default branch3342 behaves like call Microsoft Teams API3343 calls Microsoft Teams API for pipeline events3344 notify for only protected branches3345 behaves like does not call Microsoft Teams API3346 does not call Microsoft Teams API for pipeline events3347 notify for only default and protected branches3348 behaves like call Microsoft Teams API3349 calls Microsoft Teams API for pipeline events3350 notify for all branches3351 behaves like call Microsoft Teams API3352 calls Microsoft Teams API for pipeline events3353 with protected branch3354 only notify for the default branch3355 behaves like does not call Microsoft Teams API3356 does not call Microsoft Teams API for pipeline events3357 notify for only protected branches3358 behaves like call Microsoft Teams API3359 calls Microsoft Teams API for pipeline events3360 notify for only default and protected branches3361 behaves like call Microsoft Teams API3362 calls Microsoft Teams API for pipeline events3363 notify for all branches3364 behaves like call Microsoft Teams API3365 calls Microsoft Teams API for pipeline events3366 with neither protected nor default branch3367 only notify for the default branch3368 behaves like does not call Microsoft Teams API3369 does not call Microsoft Teams API for pipeline events3370 notify for only protected branches3371 behaves like does not call Microsoft Teams API3372 does not call Microsoft Teams API for pipeline events3373 notify for only default and protected branches3374 behaves like does not call Microsoft Teams API3375 does not call Microsoft Teams API for pipeline events3376 notify for all branches3377 behaves like call Microsoft Teams API3378 calls Microsoft Teams API for pipeline events3379Gitlab::Ci::Status::Bridge::Factory3380 when bridge is created3381 matches correct core status3382 fabricates status with correct details3383 when bridge is failed3384 matches correct core status3385 matches correct extended statuses3386 fabricates a failed bridge status3387 fabricates status with correct details3388 failed with downstream_pipeline_creation_failed3389 fabricates correct status_tooltip3390 when bridge is a manual action3391 matches correct core status3392 matches correct extended statuses3393 fabricates action detailed status3394 fabricates status with correct details3395 when user has ability to play action3396 fabricates status that has action3397 when user does not have ability to play action3398 fabricates status that has no action3399 when bridge is waiting for resource3400 matches correct core status3401 fabricates status with correct details3402 when the bridge is successful and therefore retryable3403 matches correct core status3404 matches correct extended statuses3405 fabricates a retryable build status3406 fabricates status with correct details3407Packages::PackageFile3408 behaves like having unique enum values3409 has unique values in "status"3410 behaves like destructible3411 .next_pending_destruction3412 returns the oldest item pending destruction based on updated_at3413 returns the oldest item pending destruction based on created_at3414 relationships3415 is expected to belong to package required: false3416 is expected to have one conan_file_metadatum3417 is expected to have many package_file_build_infos inverse_of => package_file3418 is expected to have one debian_file_metadatum class_name => Packages::Debian::FileMetadatum inverse_of => package_file3419 is expected to have one helm_file_metadatum class_name => Packages::Helm::FileMetadatum inverse_of => package_file3420 validations3421 is expected to validate that :package cannot be empty/falsy3422 with pypi package3423 file_name3424 can not save a duplicated file3425 with a pending destruction package duplicated file3426 can save it3427 file_sha2563428 sha256_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", expected_success: true3429 does not allow invalid sha256 characters3430 sha256_value: nil, expected_success: true3431 does not allow invalid sha256 characters3432 sha256_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", expected_success: false3433 does not allow invalid sha256 characters3434 sha256_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", expected_success: false3435 does not allow invalid sha256 characters3436 sha256_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%", expected_success: false3437 does not allow invalid sha256 characters3438 sha256_value: "", expected_success: false3439 does not allow invalid sha256 characters3440 with package filenames3441 .with_file_name3442 is expected to contain exactly #<Packages::PackageFile id: 277, package_id: 153, created_at: "2023-07-27 04:35:40.022532606 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3443 .with_file_name_like3444 is expected to contain exactly #<Packages::PackageFile id: 277, package_id: 153, created_at: "2023-07-27 04:35:40.022532606 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3445 .with_format3446 is expected to contain exactly #<Packages::PackageFile id: 279, package_id: 155, created_at: "2023-07-27 04:35:40.629768571 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3447 .with_nuget_format3448 is expected to contain exactly #<Packages::PackageFile id: 280, package_id: 156, created_at: "2023-07-27 04:35:40.903531459 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3449 updating project statistics3450 when the package file has an explicit size3451 behaves like UpdateProjectStatistics3452 is expected to be a new record3453 when statistic is a counter attribute3454 when creating3455 stores pending increments for async update3456 when updating3457 stores pending increments for async update3458 avoids N + 1 queries3459 when destroying3460 stores pending increment for async update3461 when it is destroyed from the project level3462 does not store pending increments for async update3463 does not schedule a namespace statistics worker3464 .for_package_ids3465 returns matching packages3466 .with_conan_package_reference3467 returns matching packages3468 .for_rubygem_with_file_name3469 returns the matching gem file only for ruby packages3470 Debian scopes3471 #with_debian_file_type3472 is expected to contain exactly #<Packages::PackageFile id: 288, package_id: 157, created_at: "2023-07-27 04:35:41.327870000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3473 #with_debian_component_name3474 is expected to contain exactly #<Packages::PackageFile id: 314, package_id: 157, created_at: "2023-07-27 04:35:55.156392633 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3475 #with_debian_architecture_name3476 is expected to contain exactly #<Packages::PackageFile id: 315, package_id: 157, created_at: "2023-07-27 04:35:55.180373592 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3477 #with_debian_unknown_since3478 is expected to contain exactly #<Packages::PackageFile id: 316, package_id: 169, created_at: "2023-07-27 04:35:55.723844000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3479 .for_helm_with_channel3480 returns the matching file only for Helm packages3481 with package files pending destruction3482 does not return them3483 .most_recent!3484 is expected to eq #<Packages::PackageFile id: 288, package_id: 157, created_at: "2023-07-27 04:35:41.327870000 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3485 .most_recent_for3486 package_input1: 1, package_input2: 2, package_input3: 3, package_input4: 43487 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3488 package_input1: 1, package_input2: 2, package_input3: 3, package_input4: nil3489 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3490 package_input1: 1, package_input2: 2, package_input3: nil, package_input4: 43491 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3492 package_input1: 1, package_input2: 2, package_input3: nil, package_input4: nil3493 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3494 package_input1: 1, package_input2: nil, package_input3: 3, package_input4: 43495 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3496 package_input1: 1, package_input2: nil, package_input3: 3, package_input4: nil3497 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3498 package_input1: 1, package_input2: nil, package_input3: nil, package_input4: 43499 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3500 package_input1: 1, package_input2: nil, package_input3: nil, package_input4: nil3501 is expected to contain exactly #<Packages::PackageFile id: 330, package_id: 173, created_at: "2023-07-27 04:35:57.216353000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3502 package_input1: nil, package_input2: 2, package_input3: 3, package_input4: 43503 is expected to contain exactly #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>, and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3504 package_input1: nil, package_input2: 2, package_input3: 3, package_input4: nil3505 is expected to contain exactly #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3506 package_input1: nil, package_input2: 2, package_input3: nil, package_input4: 43507 is expected to contain exactly #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3508 package_input1: nil, package_input2: 2, package_input3: nil, package_input4: nil3509 is expected to contain exactly #<Packages::PackageFile id: 340, package_id: 174, created_at: "2023-07-27 04:35:58.306899000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3510 package_input1: nil, package_input2: nil, package_input3: 3, package_input4: 43511 is expected to contain exactly #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil> and #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3512 package_input1: nil, package_input2: nil, package_input3: 3, package_input4: nil3513 is expected to contain exactly #<Packages::PackageFile id: 336, package_id: 175, created_at: "2023-07-27 04:35:58.248219000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3514 package_input1: nil, package_input2: nil, package_input3: nil, package_input4: 43515 is expected to contain exactly #<Packages::PackageFile id: 333, package_id: 176, created_at: "2023-07-27 04:35:58.201887000 +0000", ...01c...", verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>3516 package_input1: nil, package_input2: nil, package_input3: nil, package_input4: nil3517 is expected to contain exactly3518 extra join and extra where3519 returns the most recent package for the selected channel3520 with package files pending destruction3521 does not return them3522 #pipelines3523 package_file without pipeline3524 is expected to be empty3525 package_file with pipeline3526 is expected to contain exactly #<Ci::Pipeline id: 73, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...a: nil, external_pull_request_id: nil, ci_ref_id: 73, locked: "artifacts_locked", partition_id: 100> and #<Ci::Pipeline id: 74, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...a: nil, external_pull_request_id: nil, ci_ref_id: 74, locked: "artifacts_locked", partition_id: 100>3527 #update_file_store callback3528 updates metadata columns3529 update callbacks3530 with object storage disabled3531 behaves like executing the default callback3532 executes the default callback3533 with new_file_path set3534 behaves like executing the default callback3535 executes the default callback3536 with object storage enabled3537 behaves like executing the default callback3538 executes the default callback3539 with new_file_path set3540 executes the move_in_object_storage callback3541 status scopes3542 .installable3543 does not include non-displayable packages3544 .with_status3545 is expected to contain exactly #<Packages::PackageFile id: 354, package_id: 185, created_at: "2023-07-27 04:36:08.368509271 +0000", ...ification_state: 0, verification_started_at: nil, status: "pending_destruction", new_file_path: nil>3546Namespace::RootStorageStatistics3547 is expected to belong to namespace required: false3548 is expected to have one route through namespace3549 is expected to delegate #all_projects_except_soft_deleted to the #namespace object3550 scopes3551 .for_namespace_ids3552 returns only requested namespaces3553 #recalculate!3554 with project statistics3555 behaves like project data refresh3556 aggregates eligible project statistics3557 aggregates container_repositories_size and storage_size3558 works when there are no projects3559 behaves like does not include personal snippets3560 is expected not to receive from_personal_snippets(*(any args)) 0 times3561 with subgroups3562 behaves like project data refresh3563 aggregates eligible project statistics3564 aggregates container_repositories_size and storage_size3565 works when there are no projects3566 behaves like does not include personal snippets3567 is expected not to receive from_personal_snippets(*(any args)) 0 times3568 with a group namespace3569 aggregates namespace statistics3570 works when there are no namespace statistics3571 with a personal namespace3572 does not aggregate namespace statistics3573 behaves like project data refresh3574 aggregates eligible project statistics3575 aggregates container_repositories_size and storage_size3576 works when there are no projects3577 when user has personal snippets3578 aggregates personal and project snippets size3579 when personal snippets do not have statistics3580 does not raise any error3581 with forks of projects3582 aggregates total private forks size3583 aggregates total public forks size3584 aggregates total internal forks size3585 aggregates multiple forks3586 aggregates only forks in the namespace3587 aggregates forks in subgroups3588 aggregates forks along with total storage size3589 sets the public forks storage size back to zero3590 sets the private forks storage size back to zero3591 sets the internal forks storage size back to zero3592GroupProjectsFinder3593 with a group member current user3594 only shared3595 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, and #<Project id:666 namespace552/3>>3596 with ancestor groups projects3597 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, and #<Project id:666 namespace552/3>>3598 with subgroups projects3599 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, and #<Project id:666 namespace552/3>>3600 when shared projects are excluded3601 with subgroups projects3602 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:669 group78/group79/group80/6>>, and #<Project id:670 group78/group79/group80/7>>3603 with ancestor group projects3604 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:671 group78/8>>, #<Project id:672 group78/9>>, and #<Project id:673 group78/10>>3605 with ancestor groups and subgroups projects3606 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:671 group78/8>>, #<Project id:672 group78/9>>, #<Project id:673 group78/10>>, #<Project id:670 group78/group79/group80/7>>, and #<Project id:669 group78/group79/group80/6>>3607 without subgroups and ancestor group projects3608 is expected to contain exactly #<Project id:665 group78/group79/2>> and #<Project id:664 group78/group79/1>>3609 when user is member only of a subgroup3610 with ancestor groups and subgroups projects3611 does not return parent group projects3612 owned3613 is expected to contain exactly #<Project id:665 group78/group79/2>> and #<Project id:664 group78/group79/1>>3614 all3615 with subgroups projects3616 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:669 group78/group79/group80/6>>, and #<Project id:670 group78/group79/group80/7>>3617 without subgroups projects3618 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, #<Project id:665 group78/group79/2>>, and #<Project id:664 group78/group79/1>>3619 with min access level3620 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, #<Project id:665 group78/group79/2>>, and #<Project id:664 group78/group79/1>>3621 without group member current_user3622 only shared3623 without external user3624 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, and #<Project id:666 namespace552/3>>3625 with external user3626 is expected to contain exactly #<Project id:667 namespace553/4>> and #<Project id:666 namespace552/3>>3627 when shared projects are excluded3628 without external user3629 with subgroups projects3630 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:669 group78/group79/group80/6>>, and #<Project id:670 group78/group79/group80/7>>3631 with ancestor groups projects3632 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:671 group78/8>>, and #<Project id:672 group78/9>>3633 with ancestor groups and subgroups projects3634 is expected to contain exactly #<Project id:665 group78/group79/2>>, #<Project id:664 group78/group79/1>>, #<Project id:672 group78/9>>, #<Project id:671 group78/8>>, #<Project id:670 group78/group79/group80/7>>, and #<Project id:669 group78/group79/group80/6>>3635 without subgroups projects3636 is expected to contain exactly #<Project id:665 group78/group79/2>> and #<Project id:664 group78/group79/1>>3637 with external user3638 with subgroups projects3639 is expected to contain exactly #<Project id:664 group78/group79/1>> and #<Project id:669 group78/group79/group80/6>>3640 with ancestor groups projects3641 is expected to contain exactly #<Project id:664 group78/group79/1>> and #<Project id:671 group78/8>>3642 with ancestor groups and subgroups projects3643 is expected to contain exactly #<Project id:664 group78/group79/1>>, #<Project id:671 group78/8>>, and #<Project id:669 group78/group79/group80/6>>3644 without subgroups projects3645 is expected to eq [#<Project id:664 group78/group79/1>>]3646 all3647 with subgroups projects3648 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, #<Project id:664 group78/group79/1>>, and #<Project id:669 group78/group79/group80/6>>3649 without subgroups projects3650 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, and #<Project id:664 group78/group79/1>>3651 with an admin current user3652 when admin mode is enabled3653 only shared3654 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, and #<Project id:666 namespace552/3>>3655 when shared projects are excluded3656 is expected to contain exactly #<Project id:665 group78/group79/2>> and #<Project id:664 group78/group79/1>>3657 all3658 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:667 namespace553/4>>, #<Project id:666 namespace552/3>>, #<Project id:665 group78/group79/2>>, and #<Project id:664 group78/group79/1>>3659 when admin mode is disabled3660 only shared3661 is expected to contain exactly #<Project id:668 namespace554/5>> and #<Project id:666 namespace552/3>>3662 when shared projects are excluded3663 is expected to contain exactly #<Project id:664 group78/group79/1>>3664 all3665 is expected to contain exactly #<Project id:668 namespace554/5>>, #<Project id:666 namespace552/3>>, and #<Project id:664 group78/group79/1>>3666 no user3667 only shared3668 is expected to contain exactly #<Project id:668 namespace554/5>> and #<Project id:666 namespace552/3>>3669 when shared projects are excluded3670 with subgroups projects3671 is expected to contain exactly #<Project id:664 group78/group79/1>> and #<Project id:669 group78/group79/group80/6>>3672 without subgroups projects3673 is expected to eq [#<Project id:664 group78/group79/1>>]3674 feature availability3675 without issues and merge request enabled3676 is expected to contain exactly #<Project id:664 group78/group79/1>>, #<Project id:666 namespace552/3>>, #<Project id:668 namespace554/5>>, #<Project id:675 namespace561/9>>, and #<Project id:676 namespace562/10>>3677 with issues enabled3678 is expected to contain exactly #<Project id:664 group78/group79/1>>, #<Project id:666 namespace552/3>>, #<Project id:668 namespace554/5>>, and #<Project id:678 namespace564/10>>3679 with merge request enabled3680 is expected to contain exactly #<Project id:664 group78/group79/1>>, #<Project id:666 namespace552/3>>, #<Project id:668 namespace554/5>>, and #<Project id:679 namespace565/9>>3681 with issues and merge request enabled3682 is expected to contain exactly #<Project id:664 group78/group79/1>>, #<Project id:666 namespace552/3>>, and #<Project id:668 namespace554/5>>3683 limiting3684 without limiting3685 returns all projects3686 with limiting3687 returns only the number of projects specified by the limit3688MarkupHelper3689 #markdown3690 referencing multiple objects3691 links to the merge request3692 links to the commit3693 links to the issue3694 override default project3695 links to the issue3696 uploads3697 inside a project3698 renders uploads relative to project3699 inside a group3700 renders uploads relative to the group3701 with a group in the context3702 renders uploads relative to project3703 when text contains a relative link to an image in the repository3704 when requested_path is provided, but ref isn't3705 returns the correct HTML for the image3706 when requested_path and ref parameters are both provided3707 returns the correct HTML for the image3708 when ref is provided, but requested_path isn't3709 returns the correct HTML for the image3710 when neither requested_path, nor ref parameter is provided3711 returns the correct HTML for the image3712 #markdown_field3713 with already redacted attribute3714 returns the redacted attribute3715 without redacted attribute3716 renders the markdown value3717 when post_process is false3718 does not run Markdown post processing3719 #link_to_markdown_field3720 handles references nested in links with all the text3721 #link_to_markdown3722 handles references nested in links with all the text3723 forwards HTML options3724 escapes HTML passed in as the body3725 ignores reference links when they are the entire body3726 replaces commit message with emoji to link3727 #link_to_html3728 wraps the rendered content in a link3729 escapes HTML passed as an emoji3730 #render_wiki_content3731 when file is Markdown3732 renders using CommonMark method3733 when context has labels3734 renders label3735 when content has uploads3736 renders uploads relative to project3737 when file is Asciidoc3738 renders using Gitlab::Asciidoc3739 when file is R Markdown3740 renders using CommonMark method3741 any other format3742 renders all other formats using Gitlab::OtherMarkup3743 #markup3744 sets the :text_source to :blob in the context3745 preserves encoding3746 uses passed in rendered content3747 defaults to CommonMark3748 sets additional context for Asciidoc3749 #first_line_in_markdown3750 when the asked attribute can be redacted3751 displays inline code3752 truncates the text with multiple paragraphs3753 displays the first line of a code block3754 truncates a single long line of text3755 preserves code color scheme3756 removes any images3757 keeps whitelisted tags3758 does not post-process truncated text3759 strips non-user links3760 styles the current user link3761 labels formatting3762 preserves style attribute for a label that can be accessed by current_user3763 does not style a label that can not be accessed by current_user3764 when current_user is nil3765 renders the link with no styling when current_user is nil3766 when the asked attribute can not be redacted3767 displays inline code3768 truncates the text with multiple paragraphs3769 displays the first line of a code block3770 truncates a single long line of text3771 preserves code color scheme3772 removes any images3773 keeps whitelisted tags3774 does not post-process truncated text3775 strips non-user links3776 styles the current user link3777 labels formatting3778 preserves style attribute for a label that can be accessed by current_user3779 does not style a label that can not be accessed by current_user3780 when current_user is nil3781 renders the link with no styling when current_user is nil3782 #cross_project_reference3783 shows the full MR reference3784 shows the full issue reference3785AuthorizedProjectUpdate::FindRecordsDueForRefreshService3786 #execute3787 callbacks3788 incorrect_auth_found_callback callback3789 is called3790 missing_auth_found_callback callback3791 is called3792 finding project authorizations due for refresh3793 when there are changes to be made3794 finds projects authorizations that needs to be refreshed3795 finds entries with wrong access levels3796 when there are no changes to be made3797 returns empty arrays3798 #needs_refresh?3799 when there are records due for either removal or addition3800 when there are both removals and additions to be made3801 is expected to eq true3802 when there are no removals, but there are additions to be made3803 is expected to eq true3804 when there are no additions, but there are removals to be made3805 is expected to eq true3806 when there are no additions or removals to be made3807 is expected to eq false3808 #fresh_access_levels_per_project3809 returns a Hash3810 sets the keys to the project IDs3811 sets the values to the access levels3812 personal projects3813 includes the project with the right access level3814 projects the user is a member of3815 includes the project with the right access level3816 projects of groups the user is a member of3817 includes the project with the right access level3818 projects of subgroups of groups the user is a member of3819 includes the project with the right access level3820 projects shared with groups the user is a member of3821 includes the project with the right access level3822 projects shared with subgroups of groups the user is a member of3823 includes the project with the right access level3824 #current_authorizations_per_project3825 returns a Hash3826 sets the keys to the project IDs3827 sets the values to the project authorization rows3828 #current_authorizations3829 without authorizations3830 returns an empty list3831 with an authorization3832 returns the currently authorized projects3833 includes the project ID for every row3834 includes the access level for every row3835 #fresh_authorizations3836 returns the new authorized projects3837 returns the highest access level3838 every returned row3839 includes the project ID3840 includes the access level3841IncidentManagement::IssuableEscalationStatus3842 # order random3843 is expected to be valid3844 behaves like a model including Escalatable3845 validations3846 is expected to validate that :status cannot be empty/falsy3847 when status is triggered3848 when resolved_at is blank3849 is expected to be valid3850 when resolved_at is present3851 is expected to be invalid3852 when status is acknowledged3853 when resolved_at is blank3854 is expected to be valid3855 when resolved_at is present3856 is expected to be invalid3857 when status is resolved3858 when resolved_at is blank3859 is expected to be invalid3860 when resolved_at is present3861 is expected to be valid3862 when status is ignored3863 when resolved_at is blank3864 is expected to be valid3865 when resolved_at is present3866 is expected to be invalid3867 scopes3868 .order_status3869 descending3870 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 1, created_at: "2023-07-27 04:38:03.393647000 +00...0 +0000", issue_id: 1545, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 3>]3871 ascending3872 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 4, created_at: "2023-07-27 04:38:04.333524000 +00...0 +0000", issue_id: 1542, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>]3873 .open3874 is expected to contain exactly #<IncidentManagement::IssuableEscalationStatus id: 2, created_at: "2023-07-27 04:38:03.684114000 +000...00 +0000", issue_id: 1543, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 1> and #<IncidentManagement::IssuableEscalationStatus id: 1, created_at: "2023-07-27 04:38:03.393647000 +000...00 +0000", issue_id: 1542, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>3875 .status_value3876 status: :triggered, status_value: 03877 returns status value by its name3878 status: :acknowledged, status_value: 13879 returns status value by its name3880 status: :resolved, status_value: 23881 returns status value by its name3882 status: :ignored, status_value: 33883 returns status value by its name3884 status: :unknown, status_value: nil3885 returns status value by its name3886 .status_name3887 raw_status: 0, status: :triggered3888 returns status name by its values3889 raw_status: 1, status: :acknowledged3890 returns status name by its values3891 raw_status: 2, status: :resolved3892 returns status name by its values3893 raw_status: 3, status: :ignored3894 returns status name by its values3895 raw_status: -1, status: nil3896 returns status name by its values3897 .open_status?3898 status: :triggered, is_open_status: true3899 returns true when the status is open status3900 status: :acknowledged, is_open_status: true3901 returns true when the status is open status3902 status: :resolved, is_open_status: false3903 returns true when the status is open status3904 status: :ignored, is_open_status: false3905 returns true when the status is open status3906 status: nil, is_open_status: false3907 returns true when the status is open status3908 #trigger3909 when escalatable is in triggered state3910 does not change the escalatable status3911 when escalatable is not in triggered state3912 changes the escalatable status to triggered3913 resets resolved at3914 #acknowledge3915 changes the escalatable status to acknowledged3916 resets ended at3917 #resolve3918 when escalatable is already resolved3919 does not change the escalatable status3920 when escalatable is not resolved3921 changes escalatable status to "resolved"3922 #ignore3923 changes the escalatable status to ignored3924 resets ended at3925 #status_event_for3926 for_status: :triggered, event: :trigger3927 returns event by status name3928 for_status: "triggered", event: :trigger3929 returns event by status name3930 for_status: :acknowledged, event: :acknowledge3931 returns event by status name3932 for_status: "acknowledged", event: :acknowledge3933 returns event by status name3934 for_status: :resolved, event: :resolve3935 returns event by status name3936 for_status: "resolved", event: :resolve3937 returns event by status name3938 for_status: :ignored, event: :ignore3939 returns event by status name3940 for_status: "ignored", event: :ignore3941 returns event by status name3942 for_status: :unknown, event: nil3943 returns event by status name3944 for_status: nil, event: nil3945 returns event by status name3946 for_status: "", event: nil3947 returns event by status name3948 for_status: 1, event: nil3949 returns event by status name3950 #open?3951 returns true when the status is open status3952 validatons3953 is expected to validate that :issue cannot be empty/falsy3954 is expected to validate that :issue is case-sensitively unique3955 associations3956 is expected to belong to issue required: false3957 is expected to have one project through issue inverse_of => incident_management_issuable_escalation_statuses3958MergeRequestsHelper3959 #format_mr_branch_names3960 within the same project3961 is expected to eq ["master", "feature"]3962 within different projects3963 is expected to eq ["group88/project-765:master", "namespace668/project-764:feature"]3964 #diffs_tab_pane_data3965 for endpoint_diff_for_path3966 when sub-group project namespace3967 returns expected values3968 #merge_path_description3969 forked with arrow3970 is expected to eq "Project:Branches: group91/project-768:master → namespace670/project-767:feature"3971 forked default3972 is expected to eq "Project:Branches: group92/project-770:master to namespace671/project-769:feature"3973 with arrow3974 is expected to eq "Branches: master → feature"3975 default3976 is expected to eq "Branches: master to feature"3977 #tab_link_for3978 supports the :force_link option3979 removes the data-toggle attributes3980 #user_merge_requests_counts3981 returns assigned, review requested and total merge request counts3982 #reviewers_label3983 when multiple reviewers exist3984 returns reviewer label with reviewer names3985 returns reviewer label only with include_value: false3986 when the name contains a URL3987 returns sanitized name3988 when one reviewer exists3989 returns reviewer label with no names3990 returns reviewer label only with include_value: false3991 when no reviewers exist3992 returns reviewer label with no names3993 returns reviewer label only with include_value: false3994 #merge_request_source_branch3995 when merge request is a fork3996 does show the fork icon3997 escapes properly3998 when merge request is not a fork3999 does not show the fork icon4000 #tab_count_display4001 when merge request is preparing4002 is expected to eq "-"4003 is expected to eq "-"4004 when merge request is prepared4005 is expected to eq 104006 is expected to eq "10"4007Integrations::Jenkins4008 sets the default values4009 behaves like Integrations::BaseCi4010 default values4011 is expected to eq :ci4012 behaves like Integrations::ResetSecretFields4013 #exposing_secrets_fields4014 returns an array of strings4015 #reset_secret_fields?4016 returns false if no exposing field has changed4017 returns true if any exposing field has changed4018 validation callback4019 when an exposing field has changed4020 clears all secret fields4021 when a secret field has been updated4022 does not clear this secret field4023 when a secret field has been updated with the same value4024 does not clear this secret field4025 when no exposing field has changed4026 does not clear any secret fields4027 accessors4028 is expected to respond to #enable_ssl_verification4029 is expected to respond to #enable_ssl_verification?4030 #initialize_properties4031 enables the setting by default4032 does not enable the setting if the record is already persisted4033 does not enable the setting if a custom value was set4034 #fields4035 inserts the checkbox field after the first URL field, or at the end4036 does not insert the field repeatedly4037 behaves like Integrations::HasWebHook4038 associations4039 is expected to have one service_hook inverse_of => integration4040 callbacks4041 calls #update_web_hook! when enabled4042 does not call #update_web_hook! when disabled4043 does not call #update_web_hook! when validation fails4044 #hook_url4045 returns a string4046 #url_variables4047 returns a hash4048 #hook_ssl_verification4049 returns a boolean4050 delegates to #enable_ssl_verification if the concern is included4051 #update_web_hook!4052 creates or updates a service hook4053 raises an error if the service hook could not be saved4054 does not attempt to save the service hook if there are no changes4055 #execute_web_hook!4056 creates the webhook if necessary and executes it4057 raises an error if the service hook could not be saved4058 Validations4059 when the integration is active4060 #username4061 when password was not touched4062 is expected not to validate that :username cannot be empty/falsy4063 when password was touched4064 is expected to validate that :username cannot be empty/falsy4065 when password is blank4066 does not validate the username4067 #password4068 does not validate the presence of password if username is nil4069 validates the presence of password if username is present4070 when the integration is inactive4071 is expected not to validate that :username cannot be empty/falsy4072 is expected not to validate that :password cannot be empty/falsy4073 #hook_url4074 when the jenkins_url has no relative path4075 is expected to eq "http://jenkins.example.com/project/my_project"4076 when the jenkins_url has relative path4077 is expected to eq "http://organization.example.com/jenkins/project/my_project"4078 userinfo is missing and username and password are set4079 is expected to eq "http://u%24ername:pas%24%20word@organization.example.com/jenkins/project/my_project"4080 userinfo is provided and username and password are set4081 is expected to eq "http://username:password@organization.example.com/jenkins/project/my_project"4082 userinfo is provided username and password are not set4083 is expected to eq "http://u:p@organization.example.com/jenkins/project/my_project"4084 #test4085 returns the right status4086 #execute4087 invokes the Jenkins API4088 adds default web hook headers to the request4089 request url contains properly serialized username and password4090ApplicationWorker4091 Sidekiq attributes4092 sets the queue name based on the output of the router4093 when a worker attribute is updated4094 updates the queue name afterward4095 when the worker is inherited4096 sets the queue name for the inherited worker4097 #logging_extras4098 returns extra data to be logged that was set from #log_extra_metadata_on_done4099 returns extra data to be logged that was set from #log_hash_metadata_on_done4100 when nothing is set4101 returns {}4102 #structured_payload4103 adds worker related payload4104 adds labkit context4105 adds custom payload converting stringified keys4106 does not override predefined context keys with custom payload4107 .queue_namespace4108 updates the queue name from the router again4109 updates the queue_namespace options of the worker4110 .queue4111 returns the queue name4112 .data_consistency4113 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true4114 when workers data consistency is4115 not to raise an exception4116 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true4117 when workers data consistency is4118 not to raise an exception4119 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false4120 when workers data consistency is4121 not to raise an exception4122 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false4123 when workers data consistency is4124 not to raise an exception4125 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false4126 when workers data consistency is4127 not to raise an exception4128 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false4129 when workers data consistency is4130 not to raise an exception4131 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false4132 when workers data consistency is4133 not to raise an exception4134 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false4135 when workers data consistency is4136 not to raise an exception4137 data_consistency: :always, sidekiq_option_retry: false, expect_error: false4138 when workers data consistency is4139 not to raise an exception4140 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false4141 when workers data consistency is4142 not to raise an exception4143 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false4144 when workers data consistency is4145 not to raise an exception4146 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false4147 when workers data consistency is4148 not to raise an exception4149 .retry4150 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true4151 when retry sidekiq option is4152 not to raise an exception4153 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true4154 when retry sidekiq option is4155 not to raise an exception4156 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false4157 when retry sidekiq option is4158 not to raise an exception4159 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false4160 when retry sidekiq option is4161 not to raise an exception4162 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false4163 when retry sidekiq option is4164 not to raise an exception4165 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false4166 when retry sidekiq option is4167 not to raise an exception4168 data_consistency: :always, sidekiq_option_retry: false, expect_error: false4169 when retry sidekiq option is4170 not to raise an exception4171 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false4172 when retry sidekiq option is4173 not to raise an exception4174 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false4175 when retry sidekiq option is4176 not to raise an exception4177 different kinds of push_bulk4178 .bulk_perform_async4179 push_bulk in safe limit batches4180 when the number of jobs to be enqueued does not exceed the safe limit4181 behaves like enqueues jobs in one go4182 enqueues jobs in one go4183 behaves like logs bulk insertions4184 logs arguments and job IDs4185 behaves like returns job_id of all enqueued jobs4186 returns job_id of all enqueued jobs4187 behaves like does not schedule the jobs for any specific time4188 does not schedule the jobs for any specific time4189 when the number of jobs to be enqueued exceeds safe limit4190 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4191 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4192 behaves like returns job_id of all enqueued jobs4193 returns job_id of all enqueued jobs4194 behaves like does not schedule the jobs for any specific time4195 does not schedule the jobs for any specific time4196 .bulk_perform_in4197 without batches4198 when the scheduled time falls in the past4199 raises an ArgumentError exception4200 push_bulk in safe limit batches4201 when the number of jobs to be enqueued does not exceed the safe limit4202 behaves like enqueues jobs in one go4203 enqueues jobs in one go4204 behaves like returns job_id of all enqueued jobs4205 returns job_id of all enqueued jobs4206 behaves like schedules all the jobs at a specific time4207 schedules all the jobs at a specific time4208 when the number of jobs to be enqueued exceeds safe limit4209 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4210 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4211 behaves like returns job_id of all enqueued jobs4212 returns job_id of all enqueued jobs4213 behaves like schedules all the jobs at a specific time4214 schedules all the jobs at a specific time4215 with batches4216 when the `batch_size` is invalid4217 when `batch_size` is 04218 raises an ArgumentError exception4219 when `batch_size` is negative4220 raises an ArgumentError exception4221 when the `batch_delay` is invalid4222 when `batch_delay` is 04223 raises an ArgumentError exception4224 when `batch_delay` is negative4225 raises an ArgumentError exception4226 push_bulk in safe limit batches4227 when the number of jobs to be enqueued does not exceed the safe limit4228 behaves like enqueues jobs in one go4229 enqueues jobs in one go4230 behaves like returns job_id of all enqueued jobs4231 returns job_id of all enqueued jobs4232 behaves like schedules all the jobs at a specific time, per batch4233 schedules all the jobs at a specific time, per batch4234 when the number of jobs to be enqueued exceeds safe limit4235 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4236 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit4237 behaves like returns job_id of all enqueued jobs4238 returns job_id of all enqueued jobs4239 behaves like schedules all the jobs at a specific time, per batch4240 schedules all the jobs at a specific time, per batch4241 .with_status4242 when the worker does have status_expiration set4243 uses status_expiration from the worker4244 uses status_expiration from the worker without with_status4245 when the worker does not have status_expiration set4246 uses the default status_expiration4247 does not set status_expiration without with_status4248Gitlab::Database::PartitioningMigrationHelpers::TableManagementHelpers4249 list partitioning conversion helpers4250 #convert_table_to_first_list_partition4251 behaves like delegates to ConvertTable4252 throws an error if in a transaction4253 delegates to a method on List::ConvertTable4254 #revert_converting_table_to_first_list_partition4255 behaves like delegates to ConvertTable4256 throws an error if in a transaction4257 delegates to a method on List::ConvertTable4258 #prepare_constraint_for_list_partitioning4259 behaves like delegates to ConvertTable4260 throws an error if in a transaction4261 delegates to a method on List::ConvertTable4262 #revert_preparing_constraint_for_list_partitioning4263 behaves like delegates to ConvertTable4264 throws an error if in a transaction4265 delegates to a method on List::ConvertTable4266 #partition_table_by_date4267 when the table is not allowed4268 raises an error4269 when run inside a transaction block4270 raises an error4271 when the the max_date is less than the min_date4272 raises an error4273 when the max_date is equal to the min_date4274 raises an error4275 when the given table does not have a primary key4276 raises an error4277 when an invalid partition column is given4278 raises an error4279 constructing the partitioned table4280 creates a table partitioned by the proper column4281 requires the migration helper to be run in DDL mode4282 changes the primary key datatype to bigint4283 removes the default from the primary key column4284 creates the partitioned table with the same non-key columns4285 creates a partition spanning over each month in the range given4286 with a non-integer primary key datatype4287 does not change the primary key datatype4288 when min_date is not given4289 with records present already4290 creates a partition spanning over each month from the first record4291 without data4292 creates the catchall partition plus two actual partition4293 when max_date is not given4294 creates partitions including the next month from today4295 without min_date, max_date4296 creates partitions for the current and next month4297 keeping data in sync with the partitioned table4298 creates a trigger function on the original table4299 syncs inserts to the partitioned tables4300 syncs updates to the partitioned tables4301 syncs deletes to the partitioned tables4302 #drop_partitioned_table_for4303 drops the trigger syncing to the partitioned table4304 drops the partitioned copy and all partitions4305 when the table is not allowed4306 raises an error4307 #enqueue_partitioning_data_migration4308 when the table is not allowed4309 raises an error4310 when run inside a transaction block4311 raises an error4312 when records exist in the source table4313 enqueues jobs to copy each batch of data4314 #cleanup_partitioning_data_migration4315 when the table is not allowed4316 raises an error4317 when tracking records exist in the batched_background_migrations table4318 deletes those pertaining to the given table4319 #create_hash_partitions4320 creates partitions for the full hash space (8 partitions)4321 creates partitions for the full hash space (16 partitions)4322 #finalize_backfilling_partitioned_table4323 when the table is not allowed4324 raises an error4325 when the partitioned table does not exist4326 raises an error4327 finishing pending batched background migration jobs4328 ensures finishing of remaining jobs and vacuums the partitioned table4329 #replace_with_partitioned_table4330 replaces the original table with the partitioned table4331 moves the trigger from the original table to the new table4332 #rollback_replace_with_partitioned_table4333 replaces the partitioned table with the non-partitioned table4334 moves the trigger from the partitioned table to the non-partitioned table4335 #drop_nonpartitioned_archive_table4336 drops the archive table4337 drops the trigger on the source table4338 drops the sync function4339 #create_trigger_to_sync_tables4340 creates the sync function4341 installs the trigger4342WikiPage::Meta4343 Associations4344 is expected to belong to project required: false4345 is expected to have many slugs4346 is expected to have many events4347 can find slugs4348 Validations4349 is expected to validate that :project_id cannot be empty/falsy4350 is expected to validate that the length of :title is at most 2554351 is expected not to allow :title to be ‹nil›4352 is forbidden to have two records for the same project with the same canonical_slug4353 #canonical_slug4354 can be set on initialization4355 there are no slugs4356 is expected to have attributes {:canonical_slug => (be nil)}4357 we have some non-canonical slugs4358 is expected to have attributes {:canonical_slug => (be nil)}4359 issues at most one query4360 issues no queries if we already know the slug4361 we have a canonical slug4362 has the correct value4363 canonical_slug=4364 the slug is not known to us4365 changes it to the correct value4366 ensures the slug is in the db4367 issues at most N queries4368 issues fewer queries if we already know the current slug4369 the slug is already in the DB (but not canonical)4370 changes it to the correct value4371 ensures the slug is in the db4372 issues at most N queries4373 issues fewer queries if we already know the current slug4374 the slug is already in the DB (and canonical)4375 changes it to the correct value4376 ensures the slug is in the db4377 issues at most N queries4378 issues fewer queries if we already know the current slug4379 the slug is up to date and in the DB4380 changes it to the correct value4381 ensures the slug is in the db4382 issues at most N queries4383 issues fewer queries if we already know the current slug4384 .find_or_create4385 there are problems4386 the slug is too long4387 raises an error4388 a conflicting record exists4389 raises an error4390 the wiki page is not valid4391 raises an error4392 no existing record exists4393 establishes the correct state4394 makes a reasonable number of DB queries4395 the commit happened a day ago4396 establishes the correct state4397 makes a reasonable number of DB queries4398 the last_known_slug is the same as the current slug, as on creation4399 establishes the correct state4400 makes a reasonable number of DB queries4401 a record exists in the DB in the correct state4402 establishes the correct state4403 makes a reasonable number of DB queries4404 a record exists in the DB, but we need to update timestamps4405 establishes the correct state4406 makes a reasonable number of DB queries4407 we need to update the slug, but not the title4408 establishes the correct state4409 makes a reasonable number of DB queries4410 we need to update the title, but not the slug4411 establishes the correct state4412 makes a reasonable number of DB queries4413 we want to change the slug back to a previous version4414 establishes the correct state4415 makes a reasonable number of DB queries4416 we want to change the slug a bunch of times4417 establishes the correct state4418 makes a reasonable number of DB queries4419 we need to update the title and the slug4420 establishes the correct state4421 makes a reasonable number of DB queries4422Issues::ExportCsvService4423 renders csv to string4424 #email4425 emails csv4426 renders with a target filesize4427 includes4428 with export_csv_preload_in_batches feature flag disabled4429 behaves like exports CSVs for issues4430 includes the columns required for import4431 returns two issues4432 iid4433 url4434 title4435 state4436 description4437 author name4438 author username4439 assignee name4440 assignee username4441 confidential4442 milestone4443 labels4444 due_date4445 created_at4446 updated_at4447 closed_at4448 discussion_locked4449 weight4450 time estimate4451 time spent4452 with issues filtered by labels and project4453 returns only filtered objects4454 with label links4455 does not run a query for each label link4456 returns the labels in sorted order4457 with export_csv_preload_in_batches feature flag enabled4458 behaves like exports CSVs for issues4459 includes the columns required for import4460 returns two issues4461 iid4462 url4463 title4464 state4465 description4466 author name4467 author username4468 assignee name4469 assignee username4470 confidential4471 milestone4472 labels4473 due_date4474 created_at4475 updated_at4476 closed_at4477 discussion_locked4478 weight4479 time estimate4480 time spent4481 with issues filtered by labels and project4482 returns only filtered objects4483 with label links4484 does not run a query for each label link4485 returns the labels in sorted order4486 with minimal details4487 renders labels as nil4488Banzai::Filter::AudioLinkFilter4489 when the element src has an audio extension4490 behaves like an audio element4491 replaces the image tag with an audio tag4492 behaves like an audio element4493 replaces the image tag with an audio tag4494 behaves like an audio element4495 replaces the image tag with an audio tag4496 behaves like an audio element4497 replaces the image tag with an audio tag4498 behaves like an audio element4499 replaces the image tag with an audio tag4500 behaves like an audio element4501 replaces the image tag with an audio tag4502 behaves like an audio element4503 replaces the image tag with an audio tag4504 behaves like an audio element4505 replaces the image tag with an audio tag4506 behaves like an audio element4507 replaces the image tag with an audio tag4508 behaves like an audio element4509 replaces the image tag with an audio tag4510 when the element has no src attribute4511 behaves like an unchanged element4512 leaves the document unchanged4513 when the element src is an image4514 behaves like an unchanged element4515 leaves the document unchanged4516 when the element src has an invalid file extension4517 behaves like an unchanged element4518 leaves the document unchanged4519 when data-canonical-src is empty4520 and src is audio4521 behaves like an audio element4522 replaces the image tag with an audio tag4523 and src is an image4524 behaves like an unchanged element4525 leaves the document unchanged4526 when data-canonical-src is set4527 uses the correct src4528Gitlab::Ci::Status::Stage::Factory4529 when stage has a core status4530 when core status is created4531 fabricates a core status created4532 extends core status with common stage methods4533 when core status is waiting_for_resource4534 fabricates a core status waiting_for_resource4535 extends core status with common stage methods4536 when core status is preparing4537 fabricates a core status preparing4538 extends core status with common stage methods4539 when core status is pending4540 fabricates a core status pending4541 extends core status with common stage methods4542 when core status is running4543 fabricates a core status running4544 extends core status with common stage methods4545 when core status is success4546 fabricates a core status success4547 extends core status with common stage methods4548 when core status is failed4549 fabricates a core status failed4550 extends core status with common stage methods4551 when core status is canceled4552 fabricates a core status canceled4553 extends core status with common stage methods4554 when stage has warnings4555 fabricates extended "success with warnings" status4556 extends core status with common stage method4557 when stage has manual builds4558 when status is manual4559 fabricates a play manual status4560 when status is scheduled4561 fabricates a play manual status4562ReactiveCaching4563 #with_reactive_cache4564 when cache is empty4565 is expected to be nil4566 updates the cache lifespan4567 behaves like reactive worker call4568 performs caching with correct worker4569 behaves like reactive worker call4570 performs caching with correct worker4571 when the cache is full4572 behaves like a cacheable value4573 is expected to eq 44574 does not enqueue a background worker4575 updates the cache lifespan4576 and expired4577 is expected to be nil4578 behaves like reactive worker call4579 performs caching with correct worker4580 behaves like reactive worker call4581 performs caching with correct worker4582 when the cache contains non-nil but blank value4583 behaves like a cacheable value4584 is expected to eq false4585 does not enqueue a background worker4586 updates the cache lifespan4587 and expired4588 is expected to be nil4589 behaves like reactive worker call4590 performs caching with correct worker4591 behaves like reactive worker call4592 performs caching with correct worker4593 when the cache contains nil value4594 behaves like a cacheable value4595 is expected to eq nil4596 does not enqueue a background worker4597 updates the cache lifespan4598 and expired4599 is expected to be nil4600 behaves like reactive worker call4601 performs caching with correct worker4602 behaves like reactive worker call4603 performs caching with correct worker4604 #with_reactive_cache_set4605 calls with_reactive_cache4606 data returned4607 saves keys in set4608 returns the data4609 .reactive_cache_worker_finder4610 with default reactive_cache_worker_finder4611 calls the activerecord find_by method4612 with custom reactive_cache_worker_finder4613 overrides the default reactive_cache_worker_finder4614 #clear_reactive_cache!4615 is expected to be nil4616 is expected to be falsy4617 #exclusively_update_reactive_cache!4618 when the lease is free and lifetime is not exceeded4619 takes and releases the lease4620 enqueues a repeat worker4621 calls a reactive_cache_updated only once if content did not change on subsequent update4622 does not delete the value key4623 behaves like successful cache4624 caches the result of #calculate_reactive_cache4625 does not raise the exception4626 when :external_dependency cache4627 enqueues a repeat worker4628 when reactive_cache_hard_limit is set4629 when cache size is over the overridden limit4630 raises ExceededReactiveCacheLimit exception and does not cache new data4631 when reactive_cache_limit_enabled? is overridden to return false4632 behaves like successful cache4633 caches the result of #calculate_reactive_cache4634 does not raise the exception4635 when cache size is within the overridden limit4636 behaves like successful cache4637 caches the result of #calculate_reactive_cache4638 does not raise the exception4639 and #calculate_reactive_cache raises an exception4640 leaves the cache untouched4641 does not enqueue a repeat worker4642 when lifetime is exceeded4643 skips the calculation4644 deletes the value key4645 when the lease is already taken4646 skips the calculation4647 default options4648 is expected to be a kind of ActiveSupport::Duration4649 is expected to be a kind of ActiveSupport::Duration4650 is expected to be a kind of ActiveSupport::Duration4651 is expected to respond to #call4652 is expected to be nil4653 is expected to respond to #call4654 classes including this concern4655 sets reactive_cache_work_type4656Mutations::DependencyProxy::ImageTtlGroupPolicy::Update4657 is expected to require graphql authorizations :admin_dependency_proxy4658 #resolve4659 with existing dependency proxy image ttl policy4660 user_role: :owner, shared_examples_name: "updating the dependency proxy image ttl policy"4661 behaves like updating the dependency proxy image ttl policy4662 behaves like updating the dependency proxy image ttl policy attributes4663 updates the dependency proxy image ttl policy4664 behaves like not creating the dependency proxy image ttl policy4665 doesn't create the dependency proxy image ttl policy4666 behaves like returning a success4667 returns the dependency proxy image ttl group policy with no errors4668 with invalid params4669 doesn't create the dependency proxy image ttl policy4670 does not update4671 returns an error4672 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4673 behaves like denying access to dependency proxy image ttl policy4674 raises Gitlab::Graphql::Errors::ResourceNotAvailable4675 behaves like disabling admin_package feature flag4676 behaves like updating the dependency proxy image ttl policy4677 behaves like updating the dependency proxy image ttl policy attributes4678 updates the dependency proxy image ttl policy4679 behaves like not creating the dependency proxy image ttl policy4680 doesn't create the dependency proxy image ttl policy4681 behaves like returning a success4682 returns the dependency proxy image ttl group policy with no errors4683 with invalid params4684 doesn't create the dependency proxy image ttl policy4685 does not update4686 returns an error4687 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4688 behaves like denying access to dependency proxy image ttl policy4689 raises Gitlab::Graphql::Errors::ResourceNotAvailable4690 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4691 behaves like denying access to dependency proxy image ttl policy4692 raises Gitlab::Graphql::Errors::ResourceNotAvailable4693 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4694 behaves like denying access to dependency proxy image ttl policy4695 raises Gitlab::Graphql::Errors::ResourceNotAvailable4696 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4697 behaves like denying access to dependency proxy image ttl policy4698 raises Gitlab::Graphql::Errors::ResourceNotAvailable4699 without existing dependency proxy image ttl policy4700 user_role: :owner, shared_examples_name: "creating the dependency proxy image ttl policy"4701 behaves like creating the dependency proxy image ttl policy4702 creates a new package setting4703 saves the settings4704 behaves like returning a success4705 returns the dependency proxy image ttl group policy with no errors4706 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4707 behaves like denying access to dependency proxy image ttl policy4708 raises Gitlab::Graphql::Errors::ResourceNotAvailable4709 behaves like disabling admin_package feature flag4710 behaves like creating the dependency proxy image ttl policy4711 creates a new package setting4712 saves the settings4713 behaves like returning a success4714 returns the dependency proxy image ttl group policy with no errors4715 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4716 behaves like denying access to dependency proxy image ttl policy4717 raises Gitlab::Graphql::Errors::ResourceNotAvailable4718 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4719 behaves like denying access to dependency proxy image ttl policy4720 raises Gitlab::Graphql::Errors::ResourceNotAvailable4721 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4722 behaves like denying access to dependency proxy image ttl policy4723 raises Gitlab::Graphql::Errors::ResourceNotAvailable4724 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4725 behaves like denying access to dependency proxy image ttl policy4726 raises Gitlab::Graphql::Errors::ResourceNotAvailable4727ActiveHookFilter4728 #matches?4729 for various types of branch_filter4730 branch_filter_strategy: "all_branches", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true4731 is expected to equal true4732 is expected to equal true4733 branch_filter_strategy: "all_branches", branch_filter: "", ref: "refs/heads/master", expected_matches?: true4734 is expected to equal true4735 is expected to equal true4736 branch_filter_strategy: "all_branches", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true4737 is expected to equal true4738 is expected to equal true4739 branch_filter_strategy: "all_branches", branch_filter: ".*", ref: "refs/heads/master", expected_matches?: true4740 is expected to equal true4741 is expected to equal true4742 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true4743 is expected to equal true4744 is expected to equal true4745 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false4746 is expected to equal false4747 is expected to equal true4748 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch", expected_matches?: true4749 is expected to equal true4750 is expected to equal true4751 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch/something", expected_matches?: true4752 is expected to equal true4753 is expected to equal true4754 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/master", expected_matches?: false4755 is expected to equal false4756 is expected to equal true4757 branch_filter_strategy: "wildcard", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true4758 is expected to equal true4759 is expected to equal true4760 branch_filter_strategy: "wildcard", branch_filter: "", ref: "refs/heads/master", expected_matches?: true4761 is expected to equal true4762 is expected to equal true4763 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true4764 is expected to equal true4765 is expected to equal true4766 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false4767 is expected to equal false4768 is expected to equal true4769 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/xxxx/features/my-branch", expected_matches?: true4770 is expected to equal true4771 is expected to equal true4772 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features/", expected_matches?: true4773 is expected to equal true4774 is expected to equal true4775 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features", expected_matches?: true4776 is expected to equal true4777 is expected to equal true4778 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch", expected_matches?: true4779 is expected to equal true4780 is expected to equal true4781 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch/something", expected_matches?: true4782 is expected to equal true4783 is expected to equal true4784 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/master", expected_matches?: false4785 is expected to equal false4786 is expected to equal true4787 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/feature", expected_matches?: true4788 is expected to equal true4789 is expected to equal true4790 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/dev", expected_matches?: true4791 is expected to equal true4792 is expected to equal true4793 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/master", expected_matches?: false4794 is expected to equal false4795 is expected to equal true4796 branch_filter_strategy: "regex", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true4797 is expected to equal true4798 is expected to equal true4799 branch_filter_strategy: "regex", branch_filter: "", ref: "refs/heads/master", expected_matches?: true4800 is expected to equal true4801 is expected to equal true4802 when the branch filter is a invalid regex4803 is expected to equal false4804 when the branch filter is not properly set to nil4805 is expected to equal true4806Gitlab::Observability4807 # order random4808 .tracing_url4809 is expected to eq "https://observe.gitlab.com/query/1891/795/v1/traces"4810 .oauth_url4811 is expected to eq "https://observe.gitlab.com/v1/auth/start"4812 .provisioning_url4813 is expected to eq "https://observe.gitlab.com"4814 .build_full_url4815 returns the full observability url for the given params4816 handles missing / from observability_path4817 sanitises observability_path4818 when observability_path is missing4819 builds the url with the fallback_path4820 defaults to / if fallback_path is also missing4821 .observability_url4822 is expected to eq "https://observe.gitlab.com"4823 when on staging.gitlab.com4824 is expected to eq "https://observe.staging.gitlab.com"4825 when overriden via ENV4826 is expected to eq "https://example.net"4827 .embeddable_url4828 when URL is valid4829 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=%2Fexplore%3FgroupId%3D14485840%26left%3D%255B%2522now-1h%2522,%2522now%2522,%2522new-sentry.gitlab.net%2522,%257B%257D%255D", expected: "https://observe.gitlab.com/-/123/explore?groupId=14485840&left=%5B%22now-1h%22,%22now%22,%22new-sentry.gitlab.net%22,%7B%7D%5D"4830 returns an embeddable observability url4831 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/goto/foo", expected: "https://observe.gitlab.com/-/123/goto/foo"4832 returns an embeddable observability url4833 when URL is invalid4834 returns nil if the path detection throws an error4835 returns nil if parsing observaboility path throws an error4837 returns nil4839 returns nil4840 input: "not a link"4841 returns nil4843 returns nil4844 input: "http://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/explore"4845 returns nil4846 input: "https://www.gitlab.com:123/groups/test-path/-/observability/explore?observability_path=/explore"4847 returns nil4848 input: "https://www.gitlab.com@example.com/groups/test-path/-/observability/explore?observability_path=/explore"4849 returns nil4850 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=@example.com"4851 returns nil4852 input: "https://www.gitlab.com/groups/INVALID_GROUP/-/observability/explore?observability_path=/explore"4853 returns nil4854 input: "https://www.gitlab.com/groups/test-path/-/INVALID_CONTROLLER/explore?observability_path=/explore"4855 returns nil4856 input: "https://www.gitlab.com/groups/test-path/-/observability/INVALID_ACTION?observability_path=/explore"4857 returns nil4859 returns nil4860 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?missing_observability_path=/explore"4861 returns nil4862 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/not_embeddable"4863 returns nil4864 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=/datasources"4865 returns nil4866 input: "https://www.gitlab.com/groups/test-path/-/observability/explore?observability_path=not a valid path"4867 returns nil4868 .allowed_for_action?4869 returns false if action is nil4870 allowed? calls4871 action: :foo, permission: :admin_observability4872 calls allowed? with admin_observability when actions is foo4873 action: :explore, permission: :read_observability4874 calls allowed? with read_observability when actions is explore4875 action: :datasources, permission: :admin_observability4876 calls allowed? with admin_observability when actions is datasources4877 action: :manage, permission: :admin_observability4878 calls allowed? with admin_observability when actions is manage4879 action: :dashboards, permission: :read_observability4880 calls allowed? with read_observability when actions is dashboards4881 .tracing_enabled?4882 returns true if feature is enabled globally4883 returns true if feature is enabled for the project4884 returns false if feature is disabled globally4885 .allowed?4886 checks if ability is allowed for the given user and group4887 checks for admin_observability if permission is missing4888 returns true if the ability is allowed4889 returns false if the ability is not allowed4890 returns false if observability url is missing4891 returns false if group is missing4892 returns false if user is missing4893MergeRequests::MarkReviewerReviewedService4894 #execute4895 invalid permissions4896 behaves like failed service execution4897 returns an error4898 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4899 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4900 reviewer does not exist4901 behaves like failed service execution4902 returns an error4903 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4904 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4905 reviewer exists4906 returns success4907 updates reviewers state4908 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4909 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:101 namespace789/project-891!1>) 1 time4910BulkImports::Common::Pipelines::MembersPipeline4911 when importing to group4912 #run4913 creates memberships for existing users4914 #load4915 creates new membership4916 when user_id is current user id4917 does not create new membership4918 when data is nil4919 does not create new membership4920 when user membership already exists with the same access level4921 does not create new membership4922 when portable is in a parent group4923 when the same membership exists in parent group4924 does not create new membership4925 when membership with higher access level exists in parent group4926 creates new direct membership4927 when membership with lower access level exists in parent group4928 does not create new membership4929 when importing to project4930 #run4931 creates memberships for existing users4932 #load4933 creates new membership4934 when user_id is current user id4935 does not create new membership4936 when data is nil4937 does not create new membership4938 when user membership already exists with the same access level4939 does not create new membership4940 when portable is in a parent group4941 when the same membership exists in parent group4942 does not create new membership4943 when membership with higher access level exists in parent group4944 creates new direct membership4945 when membership with lower access level exists in parent group4946 does not create new membership4947AwardEmojis::DestroyService4948 #execute4949 when user is not authorized4950 behaves like a service that does not authorize the user4951 does not remove the emoji4952 returns an error state4953 returns a nil award4954 returns the error4955 when the user is authorized4956 when user has not awarded an emoji to the awardable4957 behaves like a service that does not authorize the user4958 does not remove the emoji4959 returns an error state4960 returns a nil award4961 returns the error4962 when user has awarded an emoji to the awardable4963 removes the emoji4964 returns a success status4965 returns no errors4966 returns the destroyed award4967 executes hooks4968Security::WeakPasswords4969 # order random4970 #weak_for_user?4971 password: "d2262d56", too_weak: false4972 is expected to eq false4973 password: "password", too_weak: true4974 is expected to eq true4975 password: "pAssWord", too_weak: true4976 is expected to eq true4977 password: "princeofdarkness", too_weak: true4978 is expected to eq true4979 password: "A1B2gitlabC3", too_weak: true4980 is expected to eq true4981 password: "gitlab123", too_weak: true4982 is expected to eq true4983 password: "theonedevopsplatform", too_weak: true4984 is expected to eq true4985 password: "A1gitlib", too_weak: false4986 is expected to eq false4987 password: "Aweakést", too_weak: true4988 is expected to eq true4989 password: "!@mCwEaKy", too_weak: true4990 is expected to eq true4991 password: "A1B2pass", too_weak: true4992 is expected to eq true4993 password: "A1B2C3jr", too_weak: false4994 is expected to eq false4995 password: "3e18a7f60a908e329958396d68131d39e1b66a03ea420725e2a0fce7cb17pass", too_weak: false4996 is expected to eq false4997 password: "56d4ab689a", too_weak: true4998 is expected to eq true4999 password: "56d4ab689a_win", too_weak: true5000 is expected to eq true5001 password: "56d4ab68", too_weak: false5002 is expected to eq false5003 password: "A1B2Cwin", too_weak: false5004 is expected to eq false5005 password: "predictāble.ZZZ+seventeen@examplecorp.com", too_weak: true5006 is expected to eq true5007 password: "predictable.ZZZ+seventeen@examplecorp.com", too_weak: true5008 is expected to eq true5009 password: "predictāble.ZZZ+seventeen", too_weak: true5010 is expected to eq true5011 password: "examplecorp.com", too_weak: true5012 is expected to eq true5013 password: "!@exAmplecorp", too_weak: true5014 is expected to eq true5015 password: "predictāble123", too_weak: true5016 is expected to eq true5017 password: "seventeen", too_weak: true5018 is expected to eq true5019 password: "predictable", too_weak: false5020 is expected to eq false5021 password: "A1B2CZzZ", too_weak: false5022 is expected to eq false5023 password: "fortunate@acme.com", too_weak: false5024 is expected to eq false5025 password: "A1B2acme", too_weak: false5026 is expected to eq false5027 password: "fortunate", too_weak: false5028 is expected to eq false5029 password: "1", too_weak: false5030 is expected to eq false5031 password: "1234567", too_weak: false5032 is expected to eq false5033 password: "gitlab", too_weak: true5034 is expected to eq true5035 password: "pass", too_weak: true5036 is expected to eq true5037 with a user who has short email parts5038 password: "11111111", too_weak: true5039 is expected to eq true5040 password: "1.ioABCD", too_weak: true5041 is expected to eq true5042 password: "sid@1.io", too_weak: true5043 is expected to eq true5044 password: "sid@1.ioAB", too_weak: true5045 is expected to eq true5046 password: "sid1ioAB", too_weak: false5047 is expected to eq false5048 password: "sidsidsi", too_weak: false5049 is expected to eq false5050 password: "ioioioio", too_weak: false5051 is expected to eq false5052 with a user who is missing attributes5053 password: "d2262d56", too_weak: false5054 is expected to eq false5055 password: "password", too_weak: true5056 is expected to eq true5057 password: "gitlab123", too_weak: true5058 is expected to eq true5059Gitlab::DataBuilder::Pipeline5060 .build5061 has correct attributes5062 pipeline with metadata5063 has pipeline name5064 build with runner5065 has runner attributes5066 pipeline without variables5067 has empty variables hash5068 pipeline with variables5069 is expected to be a kind of Array5070 is expected to contain exactly {:key=>"TRIGGER_KEY_1", :value=>"TRIGGER_VALUE_1"}5071 when pipeline is a detached merge request pipeline5072 returns a source ref5073 returns merge request5074 when pipeline has retried builds5075 does not contain retried builds in payload5076 contains retried builds if requested5077 build with environment5078 has environment attributes5079 when the pipeline has an upstream5080 in same project5081 behaves like source pipeline attributes5082 has source pipeline attributes5083 in different project5084 is expected not to eq 8205085 behaves like source pipeline attributes5086 has source pipeline attributes5087 avoids N+1 database queries5088 with multiple builds5089 with multiple retried builds5090 .build failed5091 has failure_reason5092Gitlab::Popen5093 .popen_with_detail5094 is expected to eq ["/usr/local/bin/ruby", "-e", "$stdout.puts(1);$stderr.puts(2);exit(3)"]5095 is expected to eq "1\n"5096 is expected to eq "2\n"5097 is expected to eq 35098 is expected to be a kind of Numeric5099 zero status5100 is expected to be zero5101 is expected to include "tests"5102 non-zero status5103 is expected to eq 15104 is expected to include "No such file or directory"5105 non-zero status with a kill5106 is expected to eq 95107 is expected to be empty5108 unsafe string command5109 raises an error when it gets called with a string argument5110 with custom options5111 calls popen3 with the provided environment variables5112 with a process that writes a lot of data to stderr5113 returns zero5114 without a directory argument5115 is expected to be zero5116 is expected to include "spec"5117 use stdin5118 is expected to be zero5119 is expected to eq "hello"5120 when binary is absent5121 raises error5122StarredProjectsFinder5123 #execute5124 user has a public profile5125 as same user5126 is expected to contain exactly #<Project id:825 namespace808/project-913>>, #<Project id:826 namespace809/project-914>>, and #<Project id:827 namespace810/project-915>>5127 as other user5128 is expected to contain exactly #<Project id:828 namespace811/project-916>> and #<Project id:829 namespace812/project-917>>5129 as no user5130 is expected to contain exactly #<Project id:831 namespace814/project-919>> and #<Project id:832 namespace815/project-920>>5131 user has a private profile5132 as same user5133 is expected to contain exactly #<Project id:834 namespace817/project-922>>, #<Project id:835 namespace818/project-923>>, and #<Project id:836 namespace819/project-924>>5134 as other user5135 user does not have access to view the private profile5136 is expected to be empty5137 user has access to view the private profile5138 is expected to contain exactly #<Project id:840 namespace823/project-928>>, #<Project id:841 namespace824/project-929>>, and #<Project id:842 namespace825/project-930>>5139 as no user5140 is expected to be empty5141GenericCommitStatus5142 validations5143 is expected to validate that the length of :target_url is at most 2555144 is expected to allow :target_url to be ‹nil›5145 is expected to allow :target_url to be ‹"http://gitlab.com/s"›5146 is expected not to allow :target_url to be ‹"javascript:alert(1)"›5147 #name_uniqueness_across_types5148 without attributes5149 behaves like it does not have uniqueness errors5150 does not return errors5151 with only a pipeline5152 without name5153 behaves like it does not have uniqueness errors5154 does not return errors5155 with only a name5156 without pipeline5157 behaves like it does not have uniqueness errors5158 does not return errors5159 with pipeline and name5160 without other statuses5161 behaves like it does not have uniqueness errors5162 does not return errors5163 with generic statuses5164 behaves like it does not have uniqueness errors5165 does not return errors5166 with ci_build statuses5167 returns name error5168 #context5169 is expected to eq "my_context"5170 #tags5171 is expected to eq [:external]5172 #detailed_status5173 returns detailed status object5174 when user has ability to see datails5175 details path points to an external URL5176 when user should not see details5177 does not have details5178 #present5179 is expected to be a kind of GenericCommitStatusPresenter5180Gitlab::Sanitizers::Exif5181 #batch_clean5182 filters only jpg/tiff images by filename5183 with image uploads5184 processes all uploads if range ID is not set5185 processes only uploads in the selected range5186 processes only uploads for the selected uploader5187 processes only uploads created since specified date5188 pauses if sleep_time is set5189 #clean5190 no dry run5191 removes exif from the image5192 ignores image without exif5193 raises an error if the exiftool fails with an error5194 for files that do not have the correct MIME type5195 cleans only jpg/tiff images with the correct mime types5196 dry run5197 doesn't change the image5198 #clean_existing_path5199 no dry run5200 removes exif from the image5201 ignores image without exif5202 raises an error if the exiftool fails with an error5203 for files that do not have the correct MIME type from file5204 cleans only jpg/tiff images with the correct mime types5205 skip_unallowed_types is false5206 for files that do not have the correct MIME type from input content5207 raises an error if not jpg/tiff images with the correct mime types5208 for files that do not have the correct MIME type from input content5209 raises an error if not jpg/tiff images with the correct mime types5210 skip_unallowed_types is true5211 for files that do not have the correct MIME type from input content5212 cleans only jpg/tiff images with the correct mime types5213 for files that do not have the correct MIME type from input content5214 cleans only jpg/tiff images with the correct mime types5215 dry run5216 doesn't change the image5217 #extra_tags5218 returns a list of keys for exif file5219 returns an empty list for file with only whitelisted and ignored tags5220Projects::ParticipantsService5221 #execute5222 includes `All Project and Group Members`5223 does not return duplicate author5224 N+1 checks5225 avoids N+1 UserDetail queries5226 avoids N+1 groups queries5227 group items5228 group user counts5229 returns correct user counts for groups5230 avatar_url5231 returns an url for the avatar5232 returns an url for the avatar with relative url5233 when `disable_all_mention` FF is enabled5234 does not include `All Project and Group Members`5235 #project_members5236 when there is a project in group namespace5237 returns members of a group5238 when there is a private group and a public project5239 when the private group is invited to the public project5240 does not return the private group5241 returns private group members5242 returns the project maintainer5243 returns project members from an invited public group5244 returns members of the ancestral groups of the private group5245 returns invited group members of the private group5246Ci::TriggerEntity5247 #as_json5248 contains required fields5249 contains user fields5250 when current user can manage triggers5251 returns short_token as token5252 contains project_trigger_path5253 does not contain edit_project_trigger_path5254 returns has_token_exposed5255 when current user is the owner of the trigger5256 returns token as token5257 contains project_trigger_path5258 contains edit_project_trigger_path5259 returns has_token_exposed5260Gitlab::Pagination::Keyset::Paginator5261 pagination5262 when per_page is greater than the record count5263 is expected to eq [#<Project id:883 namespace864/project-971>>, #<Project id:886 namespace867/project-974>>, #<Project ...ect-973>>, #<Project id:884 namespace865/project-972>>, #<Project id:887 namespace868/project-975>>]5264 is expected not to have next page5265 is expected not to have previous page5266 has no next and previous cursor values5267 when 0 records are returned5268 is expected to be empty5269 is expected not to have next page5270 is expected not to have previous page5271 when page size is smaller than the record count5272 is expected to eq [#<Project id:883 namespace864/project-971>>, #<Project id:886 namespace867/project-974>>]5273 is expected to have next page5274 is expected not to have previous page5275 has next page cursor5276 does not have previous page cursor5277 when on the second page5278 is expected to eq [#<Project id:885 namespace866/project-973>>, #<Project id:884 namespace865/project-972>>]5279 is expected to have next page5280 is expected to have previous page5281 and then going back to the first page5282 is expected to eq [#<Project id:883 namespace864/project-971>>, #<Project id:886 namespace867/project-974>>]5283 is expected to have next page5284 is expected not to have previous page5285 when jumping to the last page5286 is expected to eq [#<Project id:884 namespace865/project-972>>, #<Project id:887 namespace868/project-975>>]5287 is expected not to have next page5288 is expected to have previous page5289 when paginating backwards5290 is expected to eq [#<Project id:886 namespace867/project-974>>, #<Project id:885 namespace866/project-973>>]5291 is expected to have next page5292 is expected to have previous page5293 when jumping to the first page5294 is expected to eq [#<Project id:883 namespace864/project-971>>, #<Project id:886 namespace867/project-974>>]5295 is expected to have next page5296 is expected not to have previous page5297 default keyset direction parameter5298 exposes the direction parameter in the cursor5299 when unsupported order is given5300 raises error5301 when use_union_optimization option is true and ordering by two columns5302 uses UNION queries5303ProtectedBranch::PushAccessLevel5304 is expected to belong to protected_branch required: false5305 validations5306 when role?5307 is expected to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›5308 is expected to validate that :access_level cannot be empty/falsy5309 is expected to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id5310 when not role?5311 is expected not to validate that :access_level cannot be empty/falsy5312 is expected not to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›5313 is expected not to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id5314 ::human_access_levels5315 is expected to eq {30=>"Developers + Maintainers", 40=>"Maintainers", 60=>"Instance admins", 0=>"No one"}5316 #check_access5317 when current_user is nil5318 is expected to eq false5319 when access_level is NO_ACCESS5320 is expected to eq false5321 when instance admin access is configured5322 when current_user is a maintainer5323 is expected to eq false5324 when current_user is admin5325 is expected to eq true5326 when current_user can push_code to project5327 and member access is high enough5328 is expected to eq true5329 when external authorization denies access5330 is expected to be falsey5331 and member access is too low5332 is expected to eq false5333 when current_user cannot push_code to project5334 is expected to eq false5335 #project5336 delegates project to protected_branch association5337 associations5338 is expected to belong to deploy_key required: false5339 validations5340 when deploy_key?5341 when deploy key enabled for the project5342 is valid5343 when a deploy key already added for this access level5344 is not valid5345 when deploy key is not enabled for the project5346 is not valid5347 when deploy key is not active for the project5348 is not valid5349 #check_access5350 when this protected_branch_push_access_level is tied to a deploy key5351 when the deploy key is among the active keys for this project5352 is expected to be truthy5353 when user is missing5354 is expected to be falsey5355 when deploy key does not belong to the user5356 is expected to be falsey5357 when user cannot access the project5358 is expected to be falsey5359 when the deploy key is not among the active keys of this project5360 is expected to be falsey5361 #type5362 when deploy_key?5363 returns :deploy_key5364 ::allowed_access_levels5365 when running on Gitlab.com?5366 is expected to contain exactly 30, 40, and 05367 when self hosted?5368 is expected to contain exactly 30, 40, 60, and 05369MergeWorker5370 remove source branch5371 clears cache of source repo after removing source branch5372 behaves like an idempotent worker5373 is labeled as idempotent5374 performs multiple times sequentially without raising an exception5375 the merge request is still shown as merged5376Mutations::MergeRequests::Create5377 #resolve5378 when user is not a project member5379 behaves like resource not available5380 raises an error5381 when user is a direct project member5382 and user is a guest5383 behaves like resource not available5384 raises an error5385 and user is a developer5386 creates a new merge request5387 returns a new merge request5388 when optional description field is set5389 returns a new merge request with a description5390 when optional labels field is set5391 returns a new merge request with labels5392 when service cannot create a merge request5393 does not create a new merge request5394 returns errors5395 when user is an inherited member from the group5396 when project is public with private merge requests5397 and user is a guest5398 behaves like resource not available5399 raises an error5400 when project is private5401 and user is a guest5402 behaves like resource not available5403 raises an error5404ForkNamespaceEntity5405 renders json5406 includes id5407 includes name5408 includes description5409 includes markdown_description5410 includes visibility5411 includes full_name5412 includes created_at5413 includes updated_at5414 includes avatar_url5415 exposes path for forking project to the namespace5416 exposes forked_project_path when fork exists in namespace5417 exposes relative path to the namespace5418 exposes human readable permission level5419Gitlab::Ci::JwtV25420 is expected to be a kind of Gitlab::Ci::Jwt5421 #payload5422 has correct values for the standard JWT attributes5423 includes user identities when enabled5424 does not include user identities when disabled5425 when given an aud5426 uses that aud in the payload5427 custom claims5428 runner_id5429 is the ID of the runner executing the job5430 when build is not associated with a runner5431 is nil5432 runner_environment5433 when runner is gitlab-hosted5434 is gitlab-hosted5435 when runner is self-hosted5436 is self-hosted5437 when build is not associated with a runner5438 is nil5439 sha5440 is the commit revision the project is built for5441 ci_config_ref_uri5442 joins project_config.url and pipeline.source_ref_path with @5443 when project config is nil5444 is nil5445 when ProjectConfig#url raises an error5446 raises the same error5447 in production5448 is nil5449 when config source is not repository5450 is nil5451 ci_config_sha5452 is the SHA of the pipeline5453 when project config is nil5454 is nil5455 when config source is not repository5456 is nil5457 project_visibility5458 visibility_level: 20, visibility_level_string: "public"5459 is a string representation of the project visibility_level5460 visibility_level: 10, visibility_level_string: "internal"5461 is a string representation of the project visibility_level5462 visibility_level: 0, visibility_level_string: "private"5463 is a string representation of the project visibility_level5464Gitlab::Checks::SnippetCheck5465 #validate!5466 does not raise any error5467 trying to delete the branch5468 behaves like raises and logs error5469 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."5470 trying to create the branch5471 behaves like raises and logs error5472 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."5473 when branch is the same as the default branch5474 allows the operation5475 when snippet has an empty repo5476 allows the operation5477 when default_branch is nil5478 behaves like raises and logs error5479 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can not create or delete branches."5480Ci::PipelineArtifacts::CoverageReportService5481 #execute5482 when pipeline has coverage report5483 artifact has pipeline's locked status5484 behaves like creating or updating a pipeline coverage report5485 when pipeline is finished5486 creates or updates a pipeline artifact5487 persists the default file name5488 sets expire_at to 1 week from now5489 logs relevant information5490 when pipeline has coverage report from child pipeline5491 behaves like creating or updating a pipeline coverage report5492 when pipeline is finished5493 creates or updates a pipeline artifact5494 persists the default file name5495 sets expire_at to 1 week from now5496 logs relevant information5497 when pipeline has existing pipeline artifact for coverage report5498 behaves like creating or updating a pipeline coverage report5499 when pipeline is finished5500 creates or updates a pipeline artifact5501 persists the default file name5502 sets expire_at to 1 week from now5503 logs relevant information5504 when pipeline is running and coverage report does not exist5505 does not persist data5506Gitlab::ImportExport::Base::RelationObjectSaver5507 #save5508 saves relation object5509 when subrelation is present5510 saves relation object with subrelations5511 when subrelation is not a collection5512 saves subrelation as part of the relation object itself5513 when subrelation collection count is small5514 saves subrelation as part of the relation object itself5515 when some subrelations are invalid5516 saves valid subrelations and logs invalid subrelation5517 when invalid subrelation can still be persisted5518 saves the subrelation5519 when importable is group5520 saves relation without invalid subrelations5521Gitlab::Ci::Status::Build::Stop5522 #label5523 is expected to eq "manual stop action"5524 action details5525 #has_action?5526 when user is allowed to update build5527 is expected to have action5528 when user is not allowed to update build5529 is expected not to have action5530 #action_path5531 is expected to include "97/play"5532 #action_icon5533 is expected to eq "stop"5534 #action_title5535 is expected to eq "Stop"5536 #action_button_title5537 is expected to eq "Stop this environment"5538 .matches?5539 when build is playable5540 when build stops an environment5541 is a correct match5542 when build does not stop an environment5543 does not match5544 when build is not playable5545 does not match5546 #status_tooltip5547 does not override status status_tooltip5548 #badge_tooltip5549 does not override status badge_tooltip5550Mutations::Releases::Delete5551 #resolve5552 when the current user has access to create releases5553 deletes the release5554 returns the deleted release5555 does not remove the Git tag associated with the deleted release5556 returns no errors5557 with protected tag5558 when user has access to the protected tag5559 does not have errors5560 when user does not have access to the protected tag5561 has an access error5562 validation5563 when the release does not exist5564 returns the release as nil5565 returns an errors-at-data message5566 when the project does not exist5567 behaves like unauthorized or not found error5568 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error5569 when the current user doesn't have access to update releases5570 when the user is a reporter5571 behaves like unauthorized or not found error5572 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error5573 when the user is a non-project member5574 behaves like unauthorized or not found error5575 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error5576Ci::JobsFinder#execute5577 no project5578 with admin5579 when admin mode setting is disabled5580 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 105, stage_id: 85, partition_id: 100, tag_list: nil>, #<Ci::Build status: "running", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 106, stage_id: 86, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "success", finished_at: "2023-07-27 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 107, stage_id: 87, partition_id: 100, tag_list: nil>5581 when admin mode setting is enabled5582 when in admin mode5583 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 105, stage_id: 85, partition_id: 100, tag_list: nil>, #<Ci::Build status: "running", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 106, stage_id: 86, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "success", finished_at: "2023-07-27 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 107, stage_id: 87, partition_id: 100, tag_list: nil>5584 when not in admin mode5585 is expected to be empty5586 with normal user5587 is expected to be empty5588 without user5589 is expected to be empty5590 with scope5591 scope: "pending", expected_jobs: lazy { [pending_job] }5592 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 105, stage_id: 85, partition_id: 100, tag_list: nil>5593 scope: "running", expected_jobs: lazy { [running_job] }5594 is expected to contain exactly #<Ci::Build status: "running", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 106, stage_id: 86, partition_id: 100, tag_list: nil>5595 scope: "finished", expected_jobs: lazy { [successful_job] }5596 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-07-27 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 107, stage_id: 87, partition_id: 100, tag_list: nil>5597 scope: ["running", "success"], expected_jobs: lazy { [running_job, successful_job] }5598 is expected to contain exactly #<Ci::Build status: "running", finished_at: nil, created_at: "2023-07-27 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 106, stage_id: 86, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-07-27 08:53:29.000000000 +0000", created_at: "2023-...processed: false, scheduling_type: "stage", id: 107, stage_id: 87, partition_id: 100, tag_list: nil>5599 a project is present5600 user has access to the project5601 returns jobs for the specified project5602 user has no access to project builds5603 returns no jobs5604 without user5605 returns no jobs5606 when artifacts are present for some jobs5607 when with_artifacts is true5608 returns only jobs with artifacts5609 when with_artifacts is false5610 returns all jobs5611 when pipeline is present5612 does not return retried jobs by default5613 when include_retried is false5614 does not return retried jobs5615 when include_retried is true5616 returns retried jobs5617 a runner is present5618 user has access to the runner5619 returns jobs for the specified project5620 user has no access to project builds5621 returns no jobs5622 without user5623 returns no jobs5624MergeRequests::UpdateAssigneesService5625 execute5626 when the parameters are valid5627 does not update the assignees if they do not have access5628 is more efficient than using the full update-service5629 when using sentinel values5630 when using assignee_ids5631 behaves like removing all assignees5632 removes all assignees5633 enqueues the correct background work5634 when using assignee_id5635 behaves like removing all assignees5636 removes all assignees5637 enqueues the correct background work5638 when the assignee_ids parameter is the empty list5639 behaves like removing all assignees5640 removes all assignees5641 enqueues the correct background work5642 behaves like it updates and enqueues the job5643 correctly updates the MR and enqueues the job5644layouts/devise5645 behaves like a layout which reflects the application theme setting5646 as a themed layout5647 when no theme is explicitly selected5648 renders with the default theme5649 when user is authenticated & has selected a specific theme5650 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">5651 renders with the Indigo theme5652 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">5653 renders with the Light Indigo theme5654 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">5655 renders with the Blue theme5656 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">5657 renders with the Light Blue theme5658 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">5659 renders with the Green theme5660 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">5661 renders with the Light Green theme5662 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">5663 renders with the Red theme5664 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">5665 renders with the Light Red theme5666 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">5667 renders with the Gray theme5668 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">5669 renders with the Light Gray theme5670 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">5671 renders with the Dark Mode (alpha) theme5672 behaves like a layout which reflects the preferred language5673 when changing the a preferred language5674 renders the correct `lang` attribute in the html element5675 logo5676 renders GitLab logo5677 with custom logo5678 renders custom logo5679 without broadcast messaging5680 does not render the broadcast layout5681Gitlab::Database::Count5682 .approximate_counts5683 fallbacks5684 gets results from first strategy5685 gets more results from second strategy if some counts are missing5686 does not get more results as soon as all counts are present5687 default strategies5688 with a read-only database5689 only uses the ExactCountStrategy5690 with a read-write database5691 uses the available strategies5692Gitlab::Metrics::Dashboard::Validator::Errors5693 Gitlab::Metrics::Dashboard::Validator::Errors::SchemaValidationError5694 empty error hash5695 uses default error message5696 formatted message5697 for root object5698 when required keys are missing5699 is expected to eq "root is missing required keys: one"5700 when there is type mismatch5701 on type: null5702 is expected to eq "'property_name' at root is not of type: null"5703 on type: string5704 is expected to eq "'property_name' at root is not of type: string"5705 on type: boolean5706 is expected to eq "'property_name' at root is not of type: boolean"5707 on type: integer5708 is expected to eq "'property_name' at root is not of type: integer"5709 on type: number5710 is expected to eq "'property_name' at root is not of type: number"5711 on type: array5712 is expected to eq "'property_name' at root is not of type: array"5713 on type: object5714 is expected to eq "'property_name' at root is not of type: object"5715 for nested object5716 when required keys are missing5717 is expected to eq "/nested_objects/0 is missing required keys: two"5718 when there is type mismatch5719 on type: null5720 is expected to eq "'property_name' at /nested_objects/0 is not of type: null"5721 on type: string5722 is expected to eq "'property_name' at /nested_objects/0 is not of type: string"5723 on type: boolean5724 is expected to eq "'property_name' at /nested_objects/0 is not of type: boolean"5725 on type: integer5726 is expected to eq "'property_name' at /nested_objects/0 is not of type: integer"5727 on type: number5728 is expected to eq "'property_name' at /nested_objects/0 is not of type: number"5729 on type: array5730 is expected to eq "'property_name' at /nested_objects/0 is not of type: array"5731 on type: object5732 is expected to eq "'property_name' at /nested_objects/0 is not of type: object"5733 when data does not match pattern5734 is expected to eq "'property_name' at /nested_objects/0 does not match pattern: aa.*"5735 when data does not match format5736 is expected to eq "'property_name' at /nested_objects/0 does not match format: date-time"5737 when data is not const5738 is expected to eq "'property_name' at /nested_objects/0 is not: \"one\""5739 when data is not included in enum5740 is expected to eq "'property_name' at /nested_objects/0 is not one of: [\"one\", \"two\"]"5741 when data is not included in enum5742 is expected to eq "'property_name' at /nested_objects/0 is invalid: error_type=unknown"5743 Gitlab::Metrics::Dashboard::Validator::Errors::DuplicateMetricIds5744 has custom error message5745Projects::GroupsFinder5746 #execute5747 Public project5748 behaves like finding related groups5749 returns ancestor groups for this project5750 when the project does not belong to any group5751 is expected to eq []5752 when shared groups option is on5753 returns ancestor and all shared groups5754 when shared_min_access_level is developer5755 returns ancestor and shared groups with at least developer access5756 when shared_visible_only is on5757 returns ancestor and public shared groups5758 when user has access to the private shared group5759 returns ancestor and shared groups user has access to5760 when skip group option is on5761 excludes provided groups5762 when user is not authorized5763 returns ancestor groups for this project5764 when visible shared groups are requested5765 returns ancestor groups and public shared groups for this project5766 Private project5767 behaves like finding related groups5768 returns ancestor groups for this project5769 when the project does not belong to any group5770 is expected to eq []5771 when shared groups option is on5772 returns ancestor and all shared groups5773 when shared_min_access_level is developer5774 returns ancestor and shared groups with at least developer access5775 when shared_visible_only is on5776 returns ancestor and public shared groups5777 when user has access to the private shared group5778 returns ancestor and shared groups user has access to5779 when skip group option is on5780 excludes provided groups5781 when user is not authorized5782 is expected to eq []5783 Missing project5784 is expected to eq []5785projects/commits/_commit.html.haml5786 with different committer5787 renders committed by user5788 with a signed commit5789 does not display a loading spinner for GPG status5790 with ci status5791 when pipelines are disabled5792 does not display a ci status icon5793 when pipelines are enabled5794 when user has access5795 displays a ci status icon5796 when user does not have access5797 does not display a ci status icon5798Gitlab::Spamcheck::Client5799 url scheme5800 is tls5801 uses secure connection5802 is grpc5803 uses insecure connection5804 #spam?5805 issue5806 behaves like check for spam5807 includes interceptors5808 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.015809 returns expected spam result5810 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.55811 returns expected spam result5812 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.755813 returns expected spam result5814 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.995815 returns expected spam result5816 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.05817 returns expected spam result5818 snippet5819 behaves like check for spam5820 includes interceptors5821 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.015822 returns expected spam result5823 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.55824 returns expected spam result5825 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.755826 returns expected spam result5827 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.995828 returns expected spam result5829 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.05830 returns expected spam result5831 #build_protobuf5832 builds the expected issue protobuf object5833 builds the expected snippet protobuf object5834 builds the expected generic protobuf object5835 #build_user_protobuf5836 builds the expected protobuf object5837 when user has multiple email addresses5838 adds emails to the user pb object5839 #build_project_protobuf5840 builds the expected protobuf object5841 #get_spammable_mappings5842 is a defined spammable5843 is a generic spammable5844Gitlab::Ci::Config::Entry::Rules::Rule::Changes5845 .new5846 when using a string array5847 is expected to be valid5848 when using an integer array5849 is expected not to be valid5850 returns errors5851 when using a string5852 is expected not to be valid5853 reports an error about invalid policy5854 when using a long array5855 is expected not to be valid5856 returns errors5857 when clause is empty5858 is expected to be valid5859 when policy strategy does not match5860 is expected not to be valid5861 returns information about errors5862 with paths5863 when paths is an array of strings5864 is expected to be valid5865 when paths is not an array5866 is expected not to be valid5867 returns information about errors5868 when paths is an array of integers5869 is expected not to be valid5870 returns information about errors5871 when paths is an array of long strings5872 is expected not to be valid5873 returns information about errors5874 when paths is nil5875 is expected not to be valid5876 returns information about errors5877 with paths and compare_to5878 is expected to be valid5879 when compare_to is not a string5880 is expected not to be valid5881 returns information about errors5882 #value5883 when using a string array5884 is expected to eq {:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}5885 with paths5886 is expected to eq {:paths=>["app/", "lib/"]}5887 with paths and compare_to5888 is expected to eq {:compare_to=>"branch1", :paths=>["app/", "lib/"]}5889Resolvers::LastCommitResolver5890 #resolve5891 last commit is a merge commit5892 resolves to the merge commit5893 last commit for a different branch and path5894 resolves commit5895 last commit for a wildcard pathspec5896 returns nil5897 last commit with pathspec characters5898 resolves commit5899 last commit does not exist5900 returns nil5901 when the ref is ambiguous5902 when tree is for a tag5903 resolves commit5904 when tree is for a branch5905 resolves commit5906Gitlab::Usage::Metrics::Aggregates::Aggregate5907 .calculate_count_for_aggregation5908 with valid configuration5909 number_of_days: 28, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections5910 returns the number of unique events for aggregation5911 number_of_days: 7, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections5912 returns the number of unique events for aggregation5913 number_of_days: 28, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections5914 returns the number of unique events for aggregation5915 number_of_days: 7, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections5916 returns the number of unique events for aggregation5917 number_of_days: 28, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union5918 returns the number of unique events for aggregation5919 number_of_days: 7, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union5920 returns the number of unique events for aggregation5921 number_of_days: 28, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union5922 returns the number of unique events for aggregation5923 number_of_days: 7, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union5924 returns the number of unique events for aggregation5925 number_of_days: 28, operator: "AND", datasource: "internal_events", expected_method: :calculate_metrics_intersections5926 returns the number of unique events for aggregation5927 number_of_days: 7, operator: "AND", datasource: "internal_events", expected_method: :calculate_metrics_intersections5928 returns the number of unique events for aggregation5929 number_of_days: 28, operator: "OR", datasource: "internal_events", expected_method: :calculate_metrics_union5930 returns the number of unique events for aggregation5931 number_of_days: 7, operator: "OR", datasource: "internal_events", expected_method: :calculate_metrics_union5932 returns the number of unique events for aggregation5933 with invalid configuration5934 time_frame: "28d", operator: "SUM", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationOperator5935 with non prod environment5936 raises error5937 with prod environment5938 returns fallback value5939 time_frame: "7d", operator: "AND", datasource: "mongodb", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationSource5940 with non prod environment5941 raises error5942 with prod environment5943 returns fallback value5944 time_frame: "all", operator: "AND", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame5945 with non prod environment5946 raises error5947 with prod environment5948 returns fallback value5949 when union data is not available5950 time_frame: "28d", operator: "OR", datasource: "redis_hll"5951 with non prod environment5952 raises error5953 with prod environment5954 returns fallback value5955 time_frame: "7d", operator: "OR", datasource: "database"5956 with non prod environment5957 raises error5958 with prod environment5959 returns fallback value5960 time_frame: "28d", operator: "OR", datasource: "internal_events"5961 with non prod environment5962 raises error5963 with prod environment5964 returns fallback value5965DiffFileMetadataEntity5966 as json5967 exposes the expected fields5968 behaves like diff file with conflict_type5969 #conflict_type5970 returns nil by default5971 when there is matching conflict file5972 returns false5973Gitlab::Usage::Metrics::NamesSuggestions::Generator5974 #generate5975 #add_metric5976 computes the suggested name for given metric5977 for count with default column metrics5978 behaves like name suggestion5979 return correct name5980 for count distinct with column defined metrics5981 behaves like name suggestion5982 return correct name5983 joined relations5984 counted attribute comes from source relation5985 behaves like name suggestion5986 return correct name5987 strips off time period constraint5988 behaves like name suggestion5989 return correct name5990 for sum metrics5991 behaves like name suggestion5992 return correct name5993 for add metrics5994 behaves like name suggestion5995 return correct name (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/414887)5996 for alt_usage_data metrics5997 behaves like name suggestion5998 return correct name5999Gitlab::Ci::Config::Entry::Policy6000 when using simplified policy6001 validations6002 when entry config value is valid6003 when config is a branch or tag name6004 #valid?6005 is valid6006 #value6007 returns refs hash6008 when config is a regexp6009 #valid?6010 is valid6011 when config is an empty regexp6012 #valid?6013 is valid6014 when using unsafe regexp6015 is not valid6016 when config is a special keyword6017 #valid?6018 is valid6019 when entry value is not valid6020 #errors6021 saves errors6022 when using complex policy6023 when specifying refs policy6024 is a correct configuraton6025 when using unsafe regexp6026 is not valid6027 when specifying kubernetes policy6028 is a correct configuraton6029 when specifying invalid kubernetes policy6030 reports an error about invalid policy6031 when specifying valid variables expressions policy6032 is a correct configuraton6033 when specifying variables expressions in invalid format6034 reports an error about invalid format6035 when specifying invalid variables expressions statement6036 reports an error about invalid statement6037 when specifying invalid variables expressions token6038 reports an error about invalid expression6039 when using invalid variables expressions regexp6040 reports an error about invalid expression6041 when specifying a valid changes policy6042 is a correct configuraton6043 when changes policy is invalid6044 returns errors6045 when changes policy is invalid6046 returns errors6047 when specifying unknown policy6048 returns error about invalid key6049 when policy is empty6050 is not a valid configuration6051 when policy strategy does not match6052 returns information about errors6053 #value6054 when default value has been provided6055 when user overrides default values6056 does not include default values6057 when default value has not been defined6058 includes default values6059 .default6060 does not have default policy6061WikiPages::CreateService6062 behaves like WikiPages::CreateService#execute6063 creates wiki page with valid attributes6064 executes webhooks6065 counts wiki page creation6066 the new page is at the top level6067 creates appropriate events6068 the new page is in a subsection6069 creates appropriate events6070 when the options are bad6071 does not count a creation event6072 does not record the activity6073 reports the error6074 #execute6075 when wiki create fails due to git error6076 catches the thrown error and returns a ServiceResponse error6077Banzai::Filter::CustomEmojiFilter6078 replaces supported name custom emoji6079 correctly uses the custom emoji URL6080 matches multiple same custom emoji6081 matches multiple custom emoji6082 does not match enclosed colons6083 does not do N+1 query6084 behaves like emoji filter6085 keeps whitespace intact6086 does not match emoji in a string6087 ignores non existent/unsupported emoji6088 matches with adjacent text6089 does not match emoji in a pre tag6090 does not match emoji in code tag6091 does not match emoji in tt tag6092Gitlab::Lfs::Client6093 #batch6094 server returns 200 OK6095 makes a successful batch request6096 server returns 400 error6097 raises an error6098 server returns 500 error6099 raises an error6100 server returns an exotic transfer method6101 raises an error6102 #upload6103 server returns 200 OK to an authenticated request6104 makes an HTTP PUT with expected parameters6105 server returns 200 OK with a chunked transfer request6106 makes an HTTP PUT with expected parameters6107 server returns 200 OK with a username and password in the URL6108 makes an HTTP PUT with expected parameters6109 no credentials in client6110 server returns 200 OK with credentials in URL6111 makes an HTTP PUT with expected parameters6112 server returns 200 OK to an unauthenticated request6113 makes an HTTP PUT with expected parameters6114 request is not marked as authenticated but includes an authorization header6115 prefers the provided authorization header6116 LFS object has no file6117 makes an HTTP PUT with expected parameters6118 server returns 400 error6119 raises an error6120 server returns 500 error6121 raises an error6122 #verify6123 server returns 200 OK to an authenticated request6124 makes an HTTP POST with expected parameters6125 server returns 200 OK with a username and password in the URL6126 makes an HTTP PUT with expected parameters6127 server returns 200 OK to an unauthenticated request6128 makes an HTTP POST with expected parameters6129 request is not marked as authenticated but includes an authorization header6130 prefers the provided authorization header6131 server returns 400 error6132 raises an error6133 server returns 500 error6134 raises an error6135CustomerRelations::Organization6136 associations6137 is expected to belong to group required: false6138 validations6139 is expected to validate that :group cannot be empty/falsy6140 is expected to validate that :name cannot be empty/falsy6141 is expected to validate that :name is case-insensitively unique within the scope of :group_id6142 is expected to validate that the length of :name is at most 2556143 is expected to validate that the length of :description is at most 10246144 #root_group6145 when root group6146 is expected to be valid6147 when subgroup6148 is expected to be invalid6149 #name6150 strips name6151 #find_by_name6152 strips name6153 #self.move_to_root_group6154 moves organizations with unique names and deletes the rest6155 updates contact.organization_id for dupes and leaves the rest untouched6156 .search6157 when search term is empty6158 returns all group crm_organizations6159 when search term is not empty6160 when searching for name6161 is expected to contain exactly #<CustomerRelations::Organization id: 17, group_id: 2480, created_at: "2023-07-27 04:49:18.575558394 ...49:18.575558394 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>6162 when searching for description6163 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 2480, created_at: "2023-07-27 04:49:18.570394334 ...:49:18.570394334 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]>6164 when searching for name and description6165 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 2480, created_at: "2023-07-27 04:49:18.570394334 ...:49:18.570394334 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]> and #<CustomerRelations::Organization id: 17, group_id: 2480, created_at: "2023-07-27 04:49:18.575558394 ...49:18.575558394 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>6166 .search_by_state6167 when searching for crm_organizations state6168 returns only inactive crm_organizations6169 returns only active crm_organizations6170 .counts_by_state6171 returns correct crm_organization counts6172 returns 0 with no results6173 sorting6174 .sort_by_name6175 sorts them by name in ascendent order6176 .sort_by_field6177 sorts them by description in descending order6178Gitlab::SidekiqMiddleware::SizeLimiter::Compressor6179 .compressed?6180 job: {}, result: false6181 returns whether the job payload is compressed6182 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>[123, "hello", ["world"]]}, result: false6183 returns whether the job payload is compressed6184 job: {"class"=>"ARandomWorker", "queue"=>"a_worker", "retry"=>true, "jid"=>"d774900367dc8b2962b2479c", "created_at"=>1234567890, "enqueued_at"=>1234567890, "args"=>["eJzLSM3JyQcABiwCFQ=="], "compressed"=>true}, result: true6185 returns whether the job payload is compressed6186 .compress6187 args: nil6188 injects compressed data6189 can decompress the payload6190 args: []6191 injects compressed data6192 can decompress the payload6193 args: ["hello"]6194 injects compressed data6195 can decompress the payload6196 args: [{"job_class"=>"SomeWorker", "job_id"=>"b4a577edbccf1d805744efa9", "provider_job_id"=>nil, "queue_name"=>"default", "arguments"=>["some", ["argument"]], "executions"=>0, "locale"=>"en", "attempt_number"=>1}, nil, "hello", 12345678901234567890, ["nice"]]6197 injects compressed data6198 can decompress the payload6199 args: ["2021-05-13_09:59:37.57483 \e[35mrails-background-jobs : \e[0m{\"severity\":\"ERROR\",\"time\":\"2021-05-13T09:59:37.574Z\"", "bonne journée - ขอให้มีความสุขในวันนี้ - một ngày mới tốt lành - 좋은 하루 되세요 - ごきげんよう", "🤝 - 🦊"]6200 injects compressed data6201 can decompress the payload6202 .decompress6203 job payload is not compressed6204 preserves the payload after decompression6205 job payload is compressed with a default level6206 decompresses and clean up the job payload6207 job payload is compressed with a different level6208 decompresses and clean up the job payload6209 job payload argument list is malformed6210 tracks the conflicting exception6211 job payload is not a valid base64 string6212 raises an exception6213 job payload compression does not contain a valid Gzip header6214 raises an exception6215 job payload compression does not contain a valid Gzip body6216 raises an exception6217Gitlab::Daemon6218 .instance6219 provides instance of Daemon6220 subsequent invocations provide the same instance6221 creates at_exit hook when instance is created6222 .initialize_instance6223 provides instance of Daemon6224 when instance has already been created6225 and recreate flag is false6226 raises an error6227 and recreate flag is true6228 calls stop on existing instance and returns new instance6229 when Daemon is enabled6230 when Daemon is stopped6231 #start6232 starts the Daemon6233 @synchronous6234 when @synchronous is set to true6235 calls join on the thread6236 when @synchronous is not set to a truthy value6237 does not call join on the thread6238 #stop6239 doesn't shutdown stopped Daemon6240 #start_working6241 when start_working fails6242 does not start thread6243 when Daemon is running6244 #start6245 doesn't start running Daemon6246 #stop6247 shutdowns Daemon6248 when stop_working raises exception6249#<Thread:0x00007b3ed37101f0 /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:56 run> terminated with exception (report_on_exception is true):6250Interrupt (Interrupt)6251 shutdowns Daemon6252 when Daemon is disabled6253 #start6254 doesn't start working6255 #stop6256 doesn't stop working6257ObjectStorage::CDN::GoogleCDN6258 # order random6259 #use_cdn?6260 ip_address: "34.80.0.1", expected: false6261 is expected to eq false6262 ip_address: "18.245.0.42", expected: true6263 is expected to eq true6264 ip_address: "2500:1900:4180:0000:0000:0000:0000:0000", expected: true6265 is expected to eq true6266 ip_address: "2600:1900:4180:0000:0000:0000:0000:0000", expected: false6267 is expected to eq false6268 ip_address: "10.10.1.5", expected: false6269 is expected to eq false6270 ip_address: "fc00:0000:0000:0000:0000:0000:0000:0000", expected: false6271 is expected to eq false6272 ip_address: "127.0.0.1", expected: false6273 is expected to eq false6274 ip_address: "169.254.0.0", expected: false6275 is expected to eq false6276 when the key name is missing6277 returns false6278 when the key is missing6279 returns false6280 when the key is invalid6281 returns false6282 when the URL is missing6283 returns false6284 when URL is a domain6285 returns false6286 when URL uses HTTP6287 returns false6288 #signed_url6289 with UTF-8 characters in path6290 returns a valid signed URL6291 with default query parameters6292 returns a valid signed URL6293 with nil query parameters6294 returns a valid signed URL6295 with extra query parameters6296 returns a valid signed URL6297Gitlab::FileDetector6298 .types_in_paths6299 returns the file types for the given paths6300 does not include unrecognized file paths6301 .type_of6302 returns the type of a README without extension6303 returns the type of a README file with a recognized extension6304 returns nil for a README with unrecognized extension6305 is case insensitive6306 returns nil for a README file in a directory6307 returns the type of a changelog file6308 returns the type of a license file6309 returns nil for an UNCOPYING file6310 returns the type of a version file6311 returns the type of a .gitignore file6312 returns the type of a GitLab CI config file6313 returns the type of an avatar6314 returns the type of an issue template6315 returns the type of a merge request template6316 returns nil for an unknown file6317 returns the type of an OpenAPI spec if file name is correct6318BulkImports::Projects::Pipelines::SnippetsPipeline6319 #run6320 imports snippet into destination project6321 with award_emoji6322 restores the award_emoji6323 with notes6324 restores the notes6325GroupChildSerializer6326 #represent6327 for groups6328 can render a single group6329 can render a collection of groups6330 with a hierarchy6331 expands the subgroups6332 can render a nested tree6333 without a specified parent6334 can render a tree6335 for projects6336 can render a single project6337 can render a collection of projects6338 with a hierarchy6339 can render a nested tree6340 returns an array when an array of a single instance was given6341Gitlab::Auth::Ldap::Adapter6342 #users6343 searches with the proper options when searching by uid6344 searches with the proper options when searching by dn6345 searches with the proper options when searching with a limit6346 returns an LDAP::Person if search returns a result6347 returns empty array if search entry does not respond to uid6348 uses the right uid attribute when non-default6349 #dn_matches_filter?6350 when the search result is non-empty6351 is expected to be truthy6352 when the search result is empty6353 is expected to be falsey6354 #ldap_search6355 when the search is successful6356 and the result is non-empty6357 is expected to eq [:foo]6358 and the result is empty6359 is expected to eq []6360 when returned with expected code6361 behaves like connection retry6362 retries the operation6363 as many times as MAX_SEARCH_RETRIES6364 when no more retries6365 raises the exception6366 logs the error6367 when the search encounters an error6368 is expected to eq []6369 when the search raises an LDAP exception6370 retries the operation6371 behaves like connection retry6372 retries the operation6373 as many times as MAX_SEARCH_RETRIES6374 when no more retries6375 raises the exception6376 logs the error6377Packages::SemVer6378 #parse6379 behaves like #parse with a valid semver6380 with 1.0.06381 returns v1.0.0 with prefix6382 returns 1.0.0 without prefix6383 behaves like #parse with a valid semver6384 with 1.0.0-pre6385 returns v1.0.0-pre with prefix6386 returns 1.0.0-pre without prefix6387 behaves like #parse with a valid semver6388 with 1.0.0+build6389 returns v1.0.0+build with prefix6390 returns 1.0.0+build without prefix6391 behaves like #parse with a valid semver6392 with 1.0.0-pre+build6393 returns v1.0.0-pre+build with prefix6394 returns 1.0.0-pre+build without prefix6395 behaves like #parse with an invalid semver6396 with 01.0.06397 returns nil with prefix6398 returns nil without prefix6399 behaves like #parse with an invalid semver6400 with 0.01.06401 returns nil with prefix6402 returns nil without prefix6403 behaves like #parse with an invalid semver6404 with 0.0.016405 returns nil with prefix6406 returns nil without prefix6407 behaves like #parse with an invalid semver6408 with 1.0.0asdf6409 returns nil with prefix6410 returns nil without prefix6411ProjectFeaturesCompatibility6412 converts fields from 'true' to ProjectFeature::ENABLED6413 converts fields from 'false' to ProjectFeature::DISABLED6414 converts fields from true to ProjectFeature::ENABLED6415 converts fields from false to ProjectFeature::DISABLED6416 access levels6417 access_level: "disabled", expected_result: 06418 accepts access level6419 access_level: "private", expected_result: 106420 accepts access level6421 access_level: "enabled", expected_result: 206422 accepts access level6423 access_level: "public", expected_result: 306424 accepts access level6425Gitlab::WebHooks::RecursionDetection6426 .set_from_headers6427 when the detection header is present6428 sets the request UUID value from the headers6429 when detection header is not present6430 does not set the request UUID6431 .set_request_uuid6432 sets the request UUID value6433 .register!6434 stores IDs in the same cache when a request UUID is set, until the request UUID changes6435 stores IDs in unique caches when no request UUID is present6436 touches the storage ttl each time it is called6437 block?6438 returns false if webhook should not be blocked6439 when the webhook has previously fired6440 returns true6441 when the request UUID changes again6442 returns false6443 when the count limit has been reached6444 returns true6445 when the request UUID changes again6446 returns false6447 .header6448 returns a header with the UUID value6449 .to_log6450 returns the UUID value and all registered webhook IDs in a Hash6451ErrorTracking::IssueLatestEventService6452 # order random6453 #execute6454 with authorized user6455 when issue_latest_event returns an error event6456 returns the error event6457 when issue_latest_event returns nil6458 result is not ready6459 when issue_latest_event returns error6460 returns the error6461 when issue_latest_event returns error with http_status6462 returns the error with correct http_status6463 with integrated error tracking6464 when error is found6465 returns the latest event in expected format6466 when error does not exist6467 returns the error in detailed format6468 with unauthorized user6469 returns error6470 with error tracking disabled6471 raises error6472Gitlab::GithubImport::StageMethods6473 #perform6474 returns if no project could be found6475 returns if the import state is no longer in progress6476 imports the data when the project exists6477 when abort_on_failure is false6478 logs error when import fails6479 when abort_on_failure is true6480 logs, captures and re-raises the exception and also marks the import as failed6481 #try_import6482 imports the project6483 reschedules the worker if RateLimitError was raised6484 #find_project6485 returns a Project for an existing ID6486 returns nil for a project that failed importing6487 returns nil for a non-existing project ID6488Subquery6489 # order random6490 when relation is not loaded6491 behaves like subquery as relation6492 is expected to be a kind of ActiveRecord::Relation6493 is expected to make queries6494 when array size exceeds max_limit6495 behaves like subquery as relation6496 is expected to be a kind of ActiveRecord::Relation6497 is expected to make queries6498 when relation is loaded6499 behaves like subquery as array values6500 is expected to contain exactly 1001, 1002, and 10036501 is expected not to make queries6502 when array size exceeds max_limit6503 behaves like subquery as relation6504 is expected to be a kind of ActiveRecord::Relation6505 is expected to make queries6506 with a select6507 behaves like subquery as array values6508 is expected to contain exactly 1001, 1002, and 10036509 is expected not to make queries6510 and querying with an unloaded column6511 is expected to raise ActiveModel::MissingAttributeError6512Jobs/Build.gitlab-ci.yml6513 AUTO_BUILD_IMAGE_VERSION6514 corresponds to a published image in the registry6515 the created pipeline6516 on master6517 creates the build job6518 on another branch6519 creates the build job6520 on tag6521 creates the build job6522 on merge request6523 has no jobs6524PropagateIntegrationInheritWorker6525 #perform6526 behaves like an idempotent worker6527 is labeled as idempotent6528 performs multiple times sequentially without raising an exception6529 calls to BulkUpdateIntegrationService6530 with an invalid integration id6531 returns without failure6532Gitlab::Ci::Pipeline::Expression::Parser6533 #tree6534 validates simple operators6535 expression: "$VAR1 == \"123\"", result_tree: "equals($VAR1, \"123\")"6536 is expected to eq "equals($VAR1, \"123\")"6537 expression: "$VAR1 == \"123\" == $VAR2", result_tree: "equals(equals($VAR1, \"123\"), $VAR2)"6538 is expected to eq "equals(equals($VAR1, \"123\"), $VAR2)"6539 expression: "$VAR", result_tree: "$VAR"6540 is expected to eq "$VAR"6541 expression: "\"some value\"", result_tree: "\"some value\""6542 is expected to eq "\"some value\""6543 expression: "null", result_tree: "null"6544 is expected to eq "null"6545 expression: "$VAR1 || $VAR2 && $VAR3", result_tree: "or($VAR1, and($VAR2, $VAR3))"6546 is expected to eq "or($VAR1, and($VAR2, $VAR3))"6547 expression: "$VAR1 && $VAR2 || $VAR3", result_tree: "or(and($VAR1, $VAR2), $VAR3)"6548 is expected to eq "or(and($VAR1, $VAR2), $VAR3)"6549 expression: "$VAR1 && $VAR2 || $VAR3 && $VAR4", result_tree: "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"6550 is expected to eq "or(and($VAR1, $VAR2), and($VAR3, $VAR4))"6551 expression: "$VAR1 && ($VAR2 || $VAR3) && $VAR4", result_tree: "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"6552 is expected to eq "and(and($VAR1, or($VAR2, $VAR3)), $VAR4)"6553 when combining && and OR operators6554 returns operations in a correct order6555 when using parenthesis6556 returns operations in a correct order6557 when expression is empty6558 raises a parsing error6559 when two value tokens have no operator6560 raises a parsing error6561 when an operator has no left side6562 raises an OperatorError6563 when an operator has no right side6564 raises an OperatorError6565 when parenthesis are unmatched6566 expression: "$VAR == ("6567 raises a ParseError6568 expression: "$VAR2 == (\"aa\""6569 raises a ParseError6570 expression: "$VAR2 == (\"aa\"))"6571 raises a ParseError6572 expression: "$VAR2 == \"aa\")"6573 raises a ParseError6574 expression: "(($VAR2 == \"aa\")"6575 raises a ParseError6576 expression: "($VAR2 == \"aa\"))"6577 raises a ParseError6578projects/pages/show6579 validation warning6580 doesn't show auto ssl error warning6581 when domain is not verified6582 shows auto ssl error warning6583 warning about failed Let's Encrypt6584 doesn't show auto ssl error warning6585 when we failed to obtain Let's Encrypt's certificate6586 shows auto ssl error warning6587Projects::DownloadService6588 File service6589 for a URL that is not on allowlist6590 is expected to eq nil6591 for URLs that are on the allowlist6592 an image file6593 is expected to have key :alt6594 is expected to have key :url6595 is expected to match "rails_sample.jpg"6596 is expected to eq "rails_sample"6597 a txt file6598 is expected to have key :alt6599 is expected to have key :url6600 is expected to match "doc_sample.txt"6601 is expected to eq "doc_sample.txt"6602Ci::Catalog::ValidateResourceService6603 # order random6604 #execute6605 with a project that has a README and a description6606 is valid6607 with a project that has neither a description nor a README6608 is not valid6609 with a project that has a description but not a README6610 is not valid6611 with a project that has a README and not a description6612 is not valid6613Issuable::DestroyLabelLinksService6614 #execute6615 when target is an Issue6616 behaves like service deleting label links of an issuable6617 deletes label links for specified target ID and type6618 when target is a MergeRequest6619 behaves like service deleting label links of an issuable6620 deletes label links for specified target ID and type6621Ci::JobVariable6622 behaves like CI variable6623 is expected to includes the Ci::HasVariable module6624 strips whitespaces when assigning key6625 can convert to runner variable6626 variable type6627 defines variable types6628 defaults variable type to env_var6629 supports variable type file6630 associations6631 is expected to belong to job class_name => Ci::Build required: false inverse_of => job_variables6632 is expected to validate that :key is case-sensitively unique within the scope of :job_id6633 partitioning6634 with build6635 copies the partition_id from build6636 when it is already set6637 does not change the partition_id value6638 without build6639 is expected to validate that :partition_id cannot be empty/falsy6640 does not change the partition_id value6641 when using bulk_insert6642 creates job variables successfully (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6643Gitlab::Auth::TwoFactorAuthVerifier6644 #two_factor_authentication_enforced?6645 instance_level_enabled: false, group_level_enabled: false, grace_period_expired: true, should_be_enforced: false6646 is expected to eq false6647 instance_level_enabled: true, group_level_enabled: false, grace_period_expired: false, should_be_enforced: false6648 is expected to eq false6649 instance_level_enabled: true, group_level_enabled: false, grace_period_expired: true, should_be_enforced: true6650 is expected to eq true6651 instance_level_enabled: false, group_level_enabled: true, grace_period_expired: false, should_be_enforced: false6652 is expected to eq false6653 instance_level_enabled: false, group_level_enabled: true, grace_period_expired: true, should_be_enforced: true6654 is expected to eq true6655 #two_factor_authentication_required?6656 instance_level_enabled: true, group_level_enabled: false, should_be_required: true6657 is expected to eq true6658 instance_level_enabled: false, group_level_enabled: true, should_be_required: true6659 is expected to eq true6660 instance_level_enabled: false, group_level_enabled: false, should_be_required: false6661 is expected to eq false6662 #current_user_needs_to_setup_two_factor?6663 returns false when current_user is nil6664 returns false when current_user does not have temp email6665 returns false when current_user has 2fa disabled6666 returns true when user requires 2fa authentication6667 #two_factor_grace_period6668 returns grace period from settings if there is no period from groups6669 returns grace period from groups if there is no period from settings6670 returns minimal grace period if there is grace period from settings and from group6671 #two_factor_grace_period_expired?6672 returns true if the grace period has expired6673 returns false if the grace period has not expired6674 when otp_grace_period_started_at is nil6675 returns false6676Gitlab::GitalyClient::Diff6677 is expected to respond to #from_path6678 is expected to respond to #to_path6679 is expected to respond to #old_mode6680 is expected to respond to #new_mode6681 is expected to respond to #from_id6682 is expected to respond to #to_id6683 is expected to respond to #patch6684 is expected to respond to #collapsed6685 is expected to respond to #too_large6686 #==6687 is expected to eq #<Gitlab::GitalyClient::Diff:0x00007b3f15292528 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>6688 is expected not to eq #<Gitlab::GitalyClient::Diff:0x00007b3f09ce5f40 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>6689Gitlab::Pagination::Keyset::SimpleOrderBuilder6690 when no order present6691 orders by primary key6692 sets the column definition distinct and not nullable6693 when the order scope's model uses default_scope6694 orders by primary key6695 when primary key order present6696 orders by primary key without altering the direction6697 when ordered by other column6698 adds extra primary key order as tie-breaker6699 sets the column definition for created_at non-distinct and nullable6700 when ordered by two columns where the last one is the tie breaker6701 preserves the order6702 when non-nullable column is given6703 sets the column definition for namespace_id non-distinct and non-nullable6704 when ordering by a column with the lower named function6705 sets the column definition for name6706 adds extra primary key order as tie-breaker6707 NULLS order given as as an Arel node6708 when NULLS LAST order is given without a tie-breaker6709 sets the column definition for created_at appropriately6710 orders by primary key6711 when NULLS FIRST order is given with a tie-breaker6712 sets the column definition for created_at appropriately6713 orders by the given primary key6714 return :unable_to_order symbol when order cannot be built6715 when raw SQL order is given6716 is expected to eq false6717 when an invalid NULLS order is given6718 scope: lazy { Project.order(Arel.sql('projects.updated_at created_at Asc Nulls Last')) }6719 is expected to eq false6720 scope: lazy { Project.order(Arel.sql('projects.created_at ZZZ NULLS FIRST')) }6721 is expected to eq false6722 scope: lazy { Project.order(Arel.sql('projects.relative_position ASC NULLS LAST')) }6723 is expected to eq false6724 when more than 2 columns are given for the order6725 is expected to eq false6726Gitlab::Pages::CacheControl6727 fails with invalid type6728 .for_namespace6729 behaves like cache_control6730 is expected to match /pages_domain_for_namespace_1_*/6731 #clear_cache6732 clears the cache6733 .for_domain6734 behaves like cache_control6735 is expected to match /pages_domain_for_domain_1_*/6736 #clear_cache6737 clears the cache6738 #cache_key6739 does not change the pages config6740 is based on pages settings6741 is based on the force_pages_access_control settings6742 caches the application settings hash6743Gitlab::SlashCommands::Run6744 .match6745 returns true for a run command6746 returns true for a run command with arguments6747 returns true for a command containing newlines6748 returns false for an unrelated command6749 .available?6750 returns true when builds are enabled for the project6751 returns false when builds are disabled for the project6752 returns false when chatops is not available6753 .allowed?6754 returns true when the user can create a pipeline6755 returns false when the user can not create a pipeline6756 #execute6757 when a pipeline could not be scheduled6758 returns an error6759 when a pipeline could be created but the chat service was not supported6760 returns an error6761 using a valid pipeline6762 schedules the pipeline6763Atlassian::JiraConnect::Serializers::FeatureFlagEntity6764 when the feature flag does not belong to any Jira issue6765 #issue_keys6766 is empty6767 #to_json6768 can encode the object6769 is invalid, since it has no issue keys6770 when the feature flag does belong to a Jira issue6771 #issue_keys6772 is not empty6773 #to_json6774 is valid according to the feature flag info schema6775 it has a percentage strategy6776 is valid according to the feature flag info schema6777 has the correct summary6778 includes the correct environments6779Prometheus::ProxyVariableSubstitutionService6780 #execute6781 does not alter params passed to the service6782 is expected to eq #<ActionController::Parameters {"query"=>"up{environment=\"{{ci_environment_slug}}\"}"} permitted: true>6783 with predefined variables6784 with nil query6785 behaves like success6786 replaces variables with values6787 with liquid format6788 behaves like success6789 replaces variables with values6790 with custom variables6791 behaves like success6792 replaces variables with values6793 with predefined variables in variables parameter6794 behaves like success6795 replaces variables with values6796 with invalid variables parameter6797 behaves like error6798 returns error6799 with nil variables6800 behaves like success6801 replaces variables with values6802 gsub variable substitution tolerance for weirdness6803 with whitespace around variable6804 behaves like success6805 replaces variables with values6806 with empty variables6807 behaves like success6808 replaces variables with values6809 with multiple occurrences of variable in string6810 behaves like success6811 replaces variables with values6812 with multiple variables in string6813 behaves like success6814 replaces variables with values6815 with unknown variables in string6816 behaves like success6817 replaces variables with values6818 with unknown and known variables in string6819 behaves like success6820 replaces variables with values6821 __range6822 behaves like success6823 replaces variables with values6824Katalon.gitlab-ci.yml6825 # order random6826 the created pipeline6827 create katalon tests jobs6828PersonalProjectsFinder6829 without a current user6830 is expected to eq [#<Project id:1045 user485/pblc>>]6831 with a current user6832 normal user6833 is expected to contain exactly #<Project id:1049 user485/pblc>>, #<Project id:1051 user485/C>>, and #<Project id:1050 user485/mepmep>>6834 external6835 is expected to contain exactly #<Project id:1053 user485/pblc>> and #<Project id:1054 user485/mepmep>>6836 and searching with an admin user6837 is expected to contain exactly #<Project id:1057 user485/pblc>>, #<Project id:1059 user485/C>>, #<Project id:1060 user485/D>>, and #<Project id:1058 user485/mepmep>>6838projects/milestones/index.html.haml6839 behaves like milestone empty states6840 with no milestones6841 shows empty state6842 does not show tabs or searchbar6843 with no open milestones6844 shows tabs and searchbar6845 shows empty state6846 with no closed milestones6847 shows tabs and searchbar6848 shows empty state on closed milestones6849Projects::TopicsFinder6850 #execute6851 returns topics6852 filter by name6853 search: "topic", result: ["topicC", "topicA", "topicB"]6854 returns filtered topics6855 search: "pic", result: ["topicC", "topicA", "topicB"]6856 returns filtered topics6857 search: "B", result: []6858 returns filtered topics6859 search: "cB", result: []6860 returns filtered topics6861 search: "icB", result: ["topicB"]6862 returns filtered topics6863 search: "topicA", result: ["topicA"]6864 returns filtered topics6865 search: "topica", result: ["topicA"]6866 returns filtered topics6867 filter by without_projects6868 returns topics without assigned projects6869 returns topics without assigned projects6870dev rake tasks6871 setup6872 sets up the development environment6873 fixtures:load6874 by name6875 loads fixture6876 by empty name6877 does not load fixture6878 load6879 eager loads the application6880 terminate_all_connections6881 terminates all connections6882 when in the production environment6883 does not terminate connections6884 when a database is not found6885 continues to next connection6886 multiple databases6887 with a valid database6888 copy_db:ci6889 creates the database from main6890 when the database already exists6891 prints out a warning6892 with an invalid database6893 raises an error6894CompareService6895 #execute6896 compare with base, like feature...fix6897 is expected to eq 16898 straight compare, like feature..fix6899 is expected to eq 36900 compare with target branch that does not exist6901 is expected to be nil6902 compare with source branch that does not exist6903 is expected to be nil6904Boards::CreateService6905 #execute6906 when board parent is a project6907 behaves like boards create service6908 when parent does not have a board6909 creates a new board6910 creates the default lists6911 when parent has a board6912 does not create a new board6913 when board parent is a group6914 behaves like boards create service6915 when parent does not have a board6916 creates a new board6917 creates the default lists6918 when parent has a board6919 does not create a new board6920RuboCop::Cop::RSpec::FactoryBot::AvoidCreate6921 # order random6922 behaves like an offensive factory call6923 registers an offense for create(:user)6924 registers an offense for create_list(:user)6925 behaves like an offensive factory call6926 registers an offense for FactoryBot.create(:user)6927 registers an offense for FactoryBot.create_list(:user)6928Pajamas::CheckboxComponent6929 with default options6930 renders unchecked checkbox with value of `1`6931 does not render help text6932 renders hidden input with value of `0`6933 with custom options6934 renders help text6935 renders checked checkbox with value of `yes`6936 adds CSS class to label6937 renders hidden input with value of `no`6938 with `label` slot6939 renders unchecked checkbox with value of `1`6940 with `help_text` slot6941 renders unchecked checkbox with value of `1`6942 renders help text6943 with `label` and `help_text` slots6944 renders unchecked checkbox with value of `1`6945 renders help text6946ApplicationSettingPolicy6947 update_runners_registration_token6948 when anonymous6949 is expected not to be allowed :update_runners_registration_token6950 regular user6951 is expected not to be allowed :update_runners_registration_token6952 when external6953 is expected not to be allowed :update_runners_registration_token6954 admin6955 when admin mode is enabled6956 is expected to be allowed :update_runners_registration_token6957 when admin mode is disabled6958 is expected to be disallowed :update_runners_registration_token6959LooksAhead6960 preloads labels on issues6961 issues fewer queries than the naive approach6962 behaves like a working query on the test schema6963 has a good test setup6964Ci::CommitWithPipeline6965 #last_pipeline6966 returns last pipeline6967 #lazy_latest_pipeline6968 returns the correct pipelines with only 1 SQL query per project6969 #latest_pipeline6970 without ref argument6971 behaves like fetching latest pipeline6972 returns the latest pipeline for the project6973 returns the memoized pipeline for the key of6974 when a particular ref is specified6975 behaves like fetching latest pipeline6976 returns the latest pipeline for the project6977 returns the memoized pipeline for the key of master6978 #latest_pipeline_for_project6979 returns the latest pipeline of the commit for the given ref and project6980 #set_latest_pipeline_for_ref6981 sets the latest pipeline for a given reference6982 #status6983 returns the status of the latest pipeline for the given ref6984 returns nil when latest pipeline is not present for the given ref6985 returns the status of the latest pipeline when no ref is given6986Gitlab::Ci::Reports::CoverageReportGenerator6987 #report6988 when pipeline has multiple builds with coverage reports6989 behaves like having a coverage report6990 returns coverage reports with collected data6991 and it is a child pipeline6992 returns empty coverage report6993 when builds are retried6994 does not take retried builds into account6995 when pipeline does not have any builds with coverage reports6996 returns empty coverage reports6997 when pipeline has child pipeline with builds that have coverage reports6998 behaves like having a coverage report6999 returns coverage reports with collected data7000 when both parent and child pipeline have builds with coverage reports7001 behaves like having a coverage report7002 returns coverage reports with collected data7003Ci::CompareCodequalityReportsService7004 #execute7005 when head pipeline has a codequality report7006 returns status and data7007 when base and head pipelines have codequality reports7008 returns status and data7009Types::Users::AutocompletedUserType7010 # order random7011 is expected to require graphql authorizations :read_user7012 #merge_request_interaction7013 returns the correct type7014 has the correct arguments7015Resolvers::Ci::RunnerJobCountResolver7016 # order random7017 #resolve7018 with authorized user7019 with statuses argument filtering on successful builds7020 is expected to eq 27021 with statuses argument filtering on failed builds7022 is expected to eq 17023 without statuses argument7024 is expected to eq 37025 with unauthorized user7026 is expected to be nil7027Integrations::PropagateService7028 .propagate7029 with inherited integration7030 calls to PropagateIntegrationProjectWorker7031 with a project without integration7032 calls to PropagateIntegrationProjectWorker7033 with a group without integration7034 calls to PropagateIntegrationProjectWorker7035 for a group-level integration7036 with a project without integration7037 calls to PropagateIntegrationProjectWorker7038 with a subgroup without integration7039 calls to PropagateIntegrationGroupWorker7040 with a subgroup with integration7041 calls to PropagateIntegrationInheritDescendantWorker7042BulkImports::Common::Pipelines::WikiPipeline7043 #run7044 behaves like wiki pipeline imports a wiki for an entity7045 #run7046 when wiki exists7047 imports new wiki into destination project7048 when wiki does not exist7049 does not import wiki7050 when scheme is blocked7051 prevents import7052 when wiki is disabled7053 unsuccessful response7054 when response is forbidden7055 does not raise an error7056 when response is not found7057 does not raise an error7058 when response is not 4037059 marks tracker as failed7060Projects::ImportExport::ParallelExportService7061 # order random7062 #execute7063 creates a project export archive file7064 logs export progress7065 executes after export stragegy on export success7066 ensures files are cleaned up7067 when export fails7068 notifies the error to the user7069 when after export stragegy fails7070 notifies the error to the user7071Resolvers::Projects::ForkTargetsResolver7072 #resolve7073 returns forkable namespaces7074 when a user cannot fork the project7075 does not return results7076WorkItems::ImportWorkItemsCsvWorker7077 # order random7078 #perform7079 calls #execute on WorkItems::ImportCsvService and destroys upload7080 behaves like an idempotent worker7081 is labeled as idempotent7082 performs multiple times sequentially without raising an exception7083 .sidekiq_retries_exhausted7084 destroys upload7085gitlab:terraform_states7086 gitlab:terraform_states:migrate7087 invokes the migration helper to move files to object storage7088 an error is raised while migrating7089 logs the error7090DeviseEmailValidator7091 validations7092 by default7093 allows when email is valid7094 returns error when email is invalid7095 returns error when email is nil7096 returns error when email is blank7097 when regexp is set as Regexp7098 allows when value match7099 returns error when value does not match7100 when regexp is set as String7101 raise argument error7102 when allow_nil is set to true7103 allows when email is nil7104 when allow_blank is set to true7105 allows when email is blank7106Gitlab::Usage::Metrics::Instrumentations::CountSnippetsMetric7107 # order random7108 with a time_frame of 28 days7109 behaves like a correct instrumented metric value7110 has correct value7111 with a timeframe of all7112 behaves like a correct instrumented metric value7113 has correct value7114Gitlab::BackgroundTask7115 when stopped7116 is not running7117 #start7118 runs the given task on a background thread7119 returns self7120 when installing exit handler7121 stops a running background task7122 when task responds to start7123 calls start7124 when start returns true7125 runs the task7126 when start returns false7127 does not run the task7128 when synchronous is set to true7129 calls join on the thread7130 #stop7131 is a no-op7132 when running7133 #start7134 raises an error7135 #stop7136 stops running7137 when task responds to stop7138 calls stop7139 when task stop raises an error7140 stops gracefully7141 reports the error7142 when task run raises exception7143#<Thread:0x00007b3ee94c6258@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):7144/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)7145 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'7146 stops gracefully7147#<Thread:0x00007b3ed25505a0@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):7148/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)7149 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'7150 reports the error7151Packages::Composer::PackagesPresenter7152 #package_versions7153 returns the packages json7154 #provider7155 returns the provider json7156 #root7157 returns the provider json7158 with a client version 27159 returns the provider json7160Projects::ContainerRepository::ThirdParty::DeleteTagsService7161 #execute7162 with tags to delete7163 deletes the tags by name7164 succeeds when tag delete returns 4047165 with failures7166 when the dummy manifest generation fails7167 is expected to eq {:message=>"could not generate manifest", :status=>:error}7168 when updating tags fails7169 all tag updates fail7170 is expected to eq {:message=>"could not delete tags: A, Ba", :status=>:error}7171 when a large list of tag updates fails7172 truncates the log message7173 a single tag update fails7174 is expected to eq {:deleted=>["A"], :status=>:success}7175 with empty tags7176 does not remove anything7177QualifiedDomainArrayValidator7178 validations7179 returns error when attribute is nil7180 allows when domain is valid7181 returns error when domain contains unicode7182 returns error when entry is larger than 255 chars7183 returns error when entry contains HTML tags7184 behaves like can be blank7185 allows when attribute is blank7186 when allow_nil is set to true7187 behaves like can be nil7188 allows when attribute is nil7189 behaves like can be blank7190 allows when attribute is blank7191 when allow_blank is set to true7192 behaves like can be nil7193 allows when attribute is nil7194 behaves like can be blank7195 allows when attribute is blank7196Tooling::FindTests7197 # order random7198 #execute7199 does not modify the content of the input file7200 does not overwrite the output file7201 loads the tests.yml file with a pattern matching mapping7202 when the predictive_tests_pathname file does not exist7203 creates the file7204 when the predictive_tests_pathname file already exists7205 does not create an empty file7206 when RSPEC_TESTS_MAPPING_ENABLED env variable is set7207 loads the direct matching pattern file7208 when RSPEC_TESTS_MAPPING_ENABLED env variable is not set7209 when RSPEC_TESTS_MAPPING_PATH is set7210 does not load the direct matching pattern file7211 when RSPEC_TESTS_MAPPING_PATH is not set7212 does not load the direct matching pattern file7213 when the same spec is matching multiple times7214 writes uniquely matching specs to the output7215Ci::TrackEnvironmentUsage7216 # order random7217 deployment_name?7218 does detect deployment names7219 does detect partial deployment names7220 does not detect non-deployment names7221 is case insensitive7222 #verifies_environment?7223 when build is the verify action for the environment7224 is expected to be truthy7225 when build is not the verify action for the environment7226 is expected to be falsey7227Tasks::Gitlab::AuditEventTypes::CheckDocsTask7228 # order random7229 #run7230 when audit_event_types.md is up to date7231Documentation compiled.7232 outputs success message after checking the documentation7233 when audit_event_types.md is updated manually7234Documentation compiled.7235 raises an error7236 when an existing audit event type is removed7237Documentation compiled.7238 raises an error7239 when an existing audit event type is updated7240Documentation compiled.7241 raises an error7242Gitlab::ExceptionLogFormatter7243 .format!7244 adds exception data to log7245 cleans the exception message7246 when exception is ActiveRecord::StatementInvalid7247 adds the normalized SQL query to payload7248 when the ActiveRecord::StatementInvalid is wrapped in another exception7249 adds the cause_class to payload7250 adds the normalized SQL query to payload7251 when the ActiveRecord::StatementInvalid is a bad query7252 adds the query as-is to payload7253 when exception is a gRPC bad status7254 when the gRPC error is wrapped by ::Gitlab::Git::BaseError7255 adds gitaly metadata to payload7256 when the gRPC error is wrapped by another error7257 adds gitaly metadata to payload7258 when the gRPC error is not wrapped7259 adds gitaly metadata to payload7260Types::CommitSignatures::GpgSignatureType7261 # order random7262 contains attributes related to GPG signatures7263 is expected to require graphql authorizations :download_code7264 is expected to eq "GpgSignature"7265 is expected to include Types::CommitSignatureInterface7266Gitlab::Analytics::CycleAnalytics::Median7267 retruns nil when no results7268 returns median duration seconds as float7269Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd7270 behaves like value stream analytics event7271 is expected to be a kind of String7272 is expected to be a kind of Symbol7273 is expected to include ApplicationRecord(abstract)7274 is expected to respond to #timestamp_projection7275 is expected to respond to #html_description7276 is expected to be a kind of Array7277 #apply_query_customization7278 expects an ActiveRecord::Relation object as argument and returns a modified version of it7279 #hash_code7280 returns a hash that uniquely identifies an event7281 does not differ when the same object is built with the same params7282 behaves like LEFT JOIN-able value stream analytics event7283 can use the event as LEFT JOIN7284 when looking at the record with data7285 contains the timestamp expression7286 when looking at the record without data7287 returns nil for the timestamp expression7288API::Helpers::MembersHelpers7289 # order random7290 #source_members7291 for a group7292 behaves like returns all direct members7293 is expected to contain exactly #<GroupMember id: 1407, access_level: 50, source_id: 2816, source_type: "Namespace", user_id: 1534, n...invite_email_success: true, member_namespace_id: 2816, member_role_id: nil, expiry_notified_at: nil> and #<GroupMember id: 1408, access_level: 50, source_id: 2816, source_type: "Namespace", user_id: 1535, n...invite_email_success: true, member_namespace_id: 2816, member_role_id: nil, expiry_notified_at: nil>7294 behaves like query with source filters7295 is expected to include "source_id" and "source_type"7296 for a project7297 behaves like returns all direct members7298 is expected to contain exactly #<ProjectMember id: 1410, access_level: 40, source_id: 1111, source_type: "Project", user_id: 1538, n...invite_email_success: true, member_namespace_id: 2824, member_role_id: nil, expiry_notified_at: nil> and #<ProjectMember id: 1412, access_level: 40, source_id: 1111, source_type: "Project", user_id: 1540, n...invite_email_success: true, member_namespace_id: 2824, member_role_id: nil, expiry_notified_at: nil>7299 behaves like query without source filters7300 is expected not to include "source_id" and "source_type"7301Gitlab::GithubImport::Importer::ProtectedBranchesImporter7302 # order random7303 #object_type7304 is expected to eq :protected_branch7305 #sidekiq_worker_class7306 is expected to eq Gitlab::GithubImport::ImportProtectedBranchWorker7307 #importer_class7308 is expected to eq Gitlab::GithubImport::Importer::ProtectedBranchImporter7309 #sequential_import7310 imports each protected branch in sequence7311 #representation_class7312 is expected to eq Gitlab::GithubImport::Representation::ProtectedBranch7313 #collection_options7314 returns an empty Hash7315 #id_for_already_imported_cache7316 returns the ID of the given protected branch7317 #execute7318 when running in parallel mode7319 imports protected branches in parallel7320 when running in sequential mode7321 imports protected branches in sequence7322 #collection_method7323 is expected to eq :protected_branches7324 #each_object_to_import7325 imports each protected branch page by page7326 when protected branch is already processed7327 doesn't process this branch7328 #parallel?7329 when running in parallel mode7330 is expected to be parallel7331 when running in sequential mode7332 is expected not to be parallel7333 #parallel_import7334 imports each protected branch in parallel7335Todos::Destroy::DestroyedIssuableService7336 #execute7337 when target is merge request7338 deletes todos for specified target ID and type7339 invalidates todos cache counts of todo users7340 when target is an work item7341 deletes todos7342ComponentsHelper7343 #gitlab_workhorse_version7344 without a Gitlab-Workhorse header7345 shows the version from Gitlab::Workhorse.version7346 with a Gitlab-Workhorse header7347 shows the actual GitLab Workhorse version currently in use7348Ci::SecureFilesHelper7349 #show_secure_files_setting7350 when disabled at the instance level7351 is expected to equal false7352 authenticated user with admin permissions7353 is expected to equal true7354 authenticated user with read permissions7355 is expected to equal true7356 authenticated user with guest permissions7357 is expected to equal false7358 authenticated user with no permissions7359 is expected to equal false7360 unconfirmed user7361 is expected to equal false7362 unauthenticated user7363 is expected to equal false7364Gitlab::Usage::Metrics::Instrumentations::DistinctCountProjectsWithExpirationPolicyMetric7365 # order random7366 behaves like a correct instrumented metric value7367 has correct value7368 behaves like a correct instrumented metric value7369 has correct value7370 behaves like a correct instrumented metric value7371 has correct value7372 behaves like a correct instrumented metric value7373 has correct value7374JSONWebToken::Token7375 custom parameters7376 is expected to eq "value"7377 is expected to include {:key => "value"}7378 embeds default payload7379 is expected to include {:jti => "68ff45ac-33ed-43a6-9929-c0692b9ee02e", :iat => 1690433671, :nbf => 1690433666, :exp => 1690433731}7380Gitlab::ExclusiveLeaseHelpers7381 #in_lock7382 when unique key is not set7383 raises an error7384 when the lease is not obtained yet7385 calls the given block7386 calls the given block continuously7387 cancels the exclusive lease after the block7388 when the lease is obtained already7389 retries to obtain a lease and raises an error7390 when ttl is specified7391 receives the specified argument7392 when retry count is specified7393 retries for the specified times7394 when lease is granted after retry7395 yields block with true7396 when we specify no retries7397 never sleeps7398 when sleep second is specified7399 receives the specified argument7400 when sleep second is specified as a lambda7401 receives the specified argument7402Resolvers::Ci::JobTokenScopeResolver7403 is expected to have nullable GraphQL type CiJobTokenScopeType7404 #resolve7405 with access to scope7406 returns the same project in the allow list of projects for the Ci Job Token when scope is not enabled7407 returns the same project in the allow list of projects for the Ci Job Token7408 when another projects gets added to the allow list7409 returns both projects7410 when job token scope is disabled7411 resolves projects7412 without access to scope7413 generates an error7414EnvironmentHelper7415 #render_deployment_status7416 when using a manual deployment7417 renders a span tag7418 when using a deployment from a build7419 renders a link tag7420 for a blocked deployment7421 indicates the status7422 #environments_detail_data_json7423 returns the correct data7424PagesDomains::CreateAcmeOrderService7425 saves order to database before requesting validation7426 generates and saves private key7427 properly saves order attributes7428 properly saves challenge attributes7429Gitlab::PipelineScopeCounts7430 has policy class7431 has expected attributes7432 with large amount of pipelines7433 sets the PIPELINES_COUNT_LIMIT constant to a value of 1_0007434 when there are more records than the limit7435 limits the found items7436Pajamas::RadioComponent7437 with default options7438 renders unchecked radio7439 does not render help text7440 with custom options7441 renders help text7442 renders checked radio7443 adds CSS class to label7444 with `label` slot7445 renders unchecked radio7446 with `help_text` slot7447 renders unchecked radio7448 renders help text7449 with `label` and `help_text` slots7450 renders unchecked radio7451 renders help text7452FutureDateValidator7453 past date7454 is expected not to be valid7455 current date7456 is expected to be valid7457 future date7458 is expected to be valid7459Types::TimeTracking::TimelogCategoryType7460 is expected to eq "TimeTrackingTimelogCategory"7461 is expected to have graphql fields "id", "name", "description", "color", "billable", "billing_rate", "created_at", and "updated_at"7462 is expected to require graphql authorizations :read_timelog_category7463Gitlab::Email::Message::InProductMarketing::Verify7464 public methods7465 with series 07466 returns value for series7467 with series 17468 returns value for series7469 with series 27470 returns value for series7471Gitlab::ImportExport::Json::NdjsonReader7472 #exist?7473 given valid dir_path7474 is expected to equal true7475 given invalid dir_path7476 is expected to equal false7477 #consume_attributes7478 returns the whole root tree from parsed JSON7479 when project.json is symlink7480 raises error an error7481 #consume_relation7482 given any key7483 returns an Enumerator7484 key has been consumed7485 yields nothing to the Enumerator7486 with mark_as_consumed: false7487 yields every relation value to the Enumerator7488 key has not been consumed7489 relation file does not exist7490 yields nothing to the Enumerator7491 when relation file is a symlink7492 yields nothing to the Enumerator7493 relation file is empty7494 yields nothing to the Enumerator7495 relation file contains multiple lines7496 yields every relation value to the Enumerator7497Mutations::Clusters::Agents::Delete7498 is expected to require graphql authorizations :admin_cluster7499 #resolve7500 without user permissions7501 fails to delete the cluster agent7502 with user permissions7503 deletes a cluster agent7504Packages::Helm::PackageFilesFinder7505 #execute7506 with empty params7507 is expected to eq [#<Packages::PackageFile id: 356, package_id: 194, created_at: "2023-07-27 04:55:05.702604561 +0000",...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]7508 with another project7509 is expected to eq []7510 with another channel7511 is expected to eq []7512 with matching file_name7513 is expected to eq [#<Packages::PackageFile id: 356, package_id: 194, created_at: "2023-07-27 04:55:05.702604561 +0000",...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]7514 with another file_name7515 is expected to eq []7516 #most_recent!7517 is expected to eq #<Packages::PackageFile id: 356, package_id: 194, created_at: "2023-07-27 04:55:05.702604561 +0000", ...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7518Resolvers::Snippets::BlobsResolver7519 is expected to have nullable GraphQL type SnippetBlobConnection7520 #resolve7521 when user is not authorized7522 redacts the field7523 when using no filter7524 returns all snippet blobs7525 when using filters7526 when paths is a single string7527 returns an array of files7528 the argument does not match anything7529 returns an empty result7530 when paths is an array of string7531 returns an array of files7532Ci::PipelineArtifacts::ExpireArtifactsWorker7533 #perform7534 executes a service7535 is labeled as idempotent7536 performs multiple times sequentially without raising an exception7537 removes the artifact only once7538Ci::PipelineSchedules::CreateService7539 # order random7540 execute7541 when user does not have permission7542 returns ServiceResponse.error7543 when user has permission7544 saves values with passed params7545 returns ServiceResponse.success7546 when schedule save fails7547 returns ServiceResponse.error7548Issues::AfterCreateService7549 #execute7550 creates a pending todo for new assignee7551 with a regular issue7552 behaves like does not track incident management event7553 does not track the event7554 with an incident issue7555 behaves like an incident management tracked event7556 .track_event7557 tracks the event using redis7558RuboCop::Cop::Migration::UpdateColumnInBatches7559 # order random7560 for EE migrations7561 when in a migration7562 behaves like a migration file with no spec file7563 registers an offense when using update_column_in_batches7564 behaves like a migration file with a spec file7565 does not register any offenses7566 when in a post migration7567 behaves like a migration file with no spec file7568 registers an offense when using update_column_in_batches7569 behaves like a migration file with a spec file7570 does not register any offenses7571 when in a post migration7572 behaves like a migration file with no spec file7573 registers an offense when using update_column_in_batches7574 behaves like a migration file with a spec file7575 does not register any offenses7576 when in migration7577 behaves like a migration file with no spec file7578 registers an offense when using update_column_in_batches7579 behaves like a migration file with a spec file7580 does not register any offenses7581 #external_dependency_checksum7582 is expected to eq "833525c0d9c95d066dbfc8d973153b44a1f8a42694b54de3aaa854cb9f72a6bd"7583 when outside of a migration7584 does not register any offenses7585Banzai::Querying7586 .css7587 optimizes queries for elements with classes7588SlackMarkdownSanitizer7589 # order random7590 .sanitize7591 input: nil, output: nil7592 returns the expected output7593 input: "", output: ""7594 returns the expected output7595 input: "[label](url)", output: "label(url)"7596 returns the expected output7597 input: "<url|label>", output: "urllabel"7598 returns the expected output7599 input: "<a href=\"url\">label</a>", output: "a href=\"url\"label/a"7600 returns the expected output7601 .sanitize_slack_link7602 input: "", output: ""7603 returns the expected output7604 input: "[label](url)", output: "[label](url)"7605 returns the expected output7606 input: "<url|label>", output: "<url|label>"7607 returns the expected output7608 input: "<a href=\"url\">label</a>", output: "<a href=\"url\">label</a>"7609 returns the expected output7610Integrations::EventEntity7611 #as_json7612 with integration without fields7613 exposes correct attributes7614 with integration with fields7615 exposes correct attributes7616 with integration with fields when channels are masked7617 exposes correct attributes7618Mutations::AlertManagement::PrometheusIntegration::Update7619 is expected to require graphql authorizations :admin_project7620 #resolve7621 user has sufficient access to project7622 when ::Projects::Operations::UpdateService responds with success7623 returns the integration with no errors7624 when ::Projects::Operations::UpdateService responds with an error7625 returns errors7626 when resource is not accessible to the user7627 raises an error if the resource is not accessible to the user7628Resolvers::ProjectResolver7629 does not increase complexity depending on number of load limits7630 #resolve7631 batch-resolves projects by full path7632 resolves an unknown full_path to nil7633 treats project full path as case insensitive7634PropagateIntegrationGroupWorker7635 #perform7636 behaves like an idempotent worker7637 is labeled as idempotent7638 performs multiple times sequentially without raising an exception7639 calls to BulkCreateIntegrationService7640 with a group integration7641 calls to BulkCreateIntegrationService7642 with an invalid integration id7643 returns without failure7644Gitlab::SlashCommands::Presenters::IssueSearch7645 formats the message correct7646 shows a list of results7647Gitlab::Email::Message::InProductMarketing::Team7648 public methods7649 series: 07650 returns value for series7651 #progress7652 on gitlab.com7653 is expected to include "This is email 2 of 4 in the Team series"7654 not on gitlab.com7655 is expected to include "This is email 2 of 4 in the Team series" and "http://localhost/-/profile/notifications"7656 series: 17657 returns value for series7658 #progress7659 on gitlab.com7660 is expected to include "This is email 3 of 4 in the Team series"7661 not on gitlab.com7662 is expected to include "This is email 3 of 4 in the Team series" and "http://localhost/-/profile/notifications"7663 with series 27664 returns value for series7665 #progress7666 on gitlab.com7667 is expected to include "This is email 4 of 4 in the Team series"7668 not on gitlab.com7669 is expected to include "This is email 4 of 4 in the Team series" and "http://localhost/-/profile/notifications"7670Mutations::Environments::CanaryIngress::Update7671 #resolve7672 when service execution succeeded7673 returns no errors7674 with certificate_based_clusters disabled7675 returns notice about feature removal7676 when service encounters a problem7677 returns an error7678 when user is reporter who does not have permission to access the environment7679 raises an error7680Gitlab::Utils::LinkHeaderParser7681 # order random7682 #parse7683 with a valid header7684 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}}7685 with multiple links7686 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}, :previous=>{:uri=>#<URI::HTTP http://sandbox.org/previous>}}7687 with an incomplete uri7688 is expected to eq {}7689 with no rel7690 is expected to eq {}7691 with multiple rel elements7692 is expected to eq {:next=>{:uri=>#<URI::HTTP http://sandbox.org/next>}}7693 when the url is too long7694 is expected to eq {}7695 with nil header7696 is expected to eq {}7697 with empty header7698 is expected to eq {}7699IntegrationPolicy7700 when the integration is a prometheus_integration7701 rules7702 is expected to be disallowed :admin_project7703 when maintainer7704 is expected to be allowed :admin_project7705IssuableLink7706 .inverse_link_type7707 returns the inverse type of link7708 .issuable_type7709 when opposite relation already exists7710 raises NotImplementedError when performing validations7711 .available_link_types7712 is expected to contain exactly "relates_to", "blocks", and "is_blocked_by"7713ProtectedBranches::ApiService7714 # order random7715 with entity group7716 behaves like execute with entity7717 creates a protected branch with prefilled defaults7718 updates a protected branch without prefilled defaults7719 with entity project7720 behaves like execute with entity7721 creates a protected branch with prefilled defaults7722 updates a protected branch without prefilled defaults7723Gitlab::Timeless7724 # order random7725 disables record_timestamps temporarily7726 does not record created_at7727 does not record updated_at7728RawUsageData7729 scopes7730 .for_current_reporting_cycle7731 returns nil where no records match filter criteria7732 with records matching filtering criteria7733 return records within reporting cycle time range ordered by creation time7734 validations7735 is expected to validate that :payload cannot be empty/falsy7736 is expected to validate that :recorded_at cannot be empty/falsy7737 uniqueness validation7738 is expected to validate that :recorded_at is case-sensitively unique7739 #update_version_metadata!7740 updates sent_at7741 updates version_usage_data_id_value7742Import::ManifestProviderRepoEntity7743 behaves like exposes required fields for import entity7744 exposes required fields7745 correctly exposes id7746 correctly exposes full name7747 correctly exposes sanitized name7748 correctly exposes provider link7749Gitlab::Ci::Config::Entry::Inherit::Variables7750 validations7751 config: true, valid: true7752 is expected to eq true7753 config: false, valid: true7754 is expected to eq true7755 config: ["A"], valid: true7756 is expected to eq true7757 config: ["A", "B"], valid: true7758 is expected to eq true7759 config: [:image], valid: true7760 is expected to eq true7761 config: [true], valid: false7762 is expected to eq false7763 config: "string", valid: false7764 is expected to eq false7765Bitbucket::Representation::Comment7766 #author7767 is expected to eq "Ben"7768 is expected to be nil7769 #note7770 is expected to eq "Text"7771 is expected to be nil7772 #created_at7773 is expected to eq Thu, 27 Jul 20237774 #updated_at7775 is expected to eq Thu, 27 Jul 20237776 is expected to eq Thu, 27 Jul 20237777WorkItems::Widgets::LabelsService::UpdateService7778 # order random7779 #prepare_update_params7780 when params are set7781 sets params correctly7782 when widget does not exist in new type7783 sets correct params to remove work item labels7784Terraform/Base.gitlab-ci.yml7785 the created pipeline7786 does not create any jobs7787Issuables::ClearGroupsIssueCounterWorker7788 #perform7789 does not call count service or rise error when group_ids is empty7790 behaves like an idempotent worker7791 is labeled as idempotent7792 performs multiple times sequentially without raising an exception7793 clears the cached issue count in given groups and ancestors7794RuboCop::Cop::CodeReuse::ServiceClass7795 # order random7796 flags the use of a Service class in a model7797 flags the use of a Service class in a Finder7798 does not flag the use of a Service class in a regular class7799 flags the use of a Service class in a Serializer7800 flags the use of a Service class in a Presenter7801Mutations::WorkItems::UpdateTask7802 #resolve7803 when user has sufficient permissions7804 expires etag cache for parent work item7805Gitlab::GithubGistsImport::Status7806 # order random7807 #start!7808 expires the key7809 #fail!7810 sets failed status7811 #started?7812 checks if status is started7813 #finish!7814 sets finished status7815Integrations::SlackOptionService7816 # order random7817 #execute7818 when action_id is assignee7819 executes the user search handler7820 when action_id is labels7821 executes the label search handler7822 when action_id is unknown7823 raises an error and does not execute a service class7824Gitlab::Utils::Gzip7825 # order random7826 #gzip_decompress7827 decompresses encoded data7828 returns compressed data when encountering Zlib::GzipFile::Error7829 returns unmodified data when it is determined to be uncompressed7830 #gzip_compress7831 compresses data passed to it7832 returns uncompressed data when encountering Zlib::GzipFile::Error7833Security::CiConfiguration::SecretDetectionBuildAction7834 with existing .gitlab-ci.yml7835 secret_detection has not been included7836 template includes are an array7837 generates the correct YML7838 template include is not an array7839 generates the correct YML7840 secret_detection has been included7841 secret_detection template include are an array7842 generates the correct YML7843 secret_detection template include is not an array7844 generates the correct YML7845 with no .gitlab-ci.yml7846 autodevops disabled7847 generates the correct YML7848 with autodevops enabled7849 generates the correct YML7850RuboCop::Cop::Migration::ComplexIndexesRequireName7851 # order random7852 when outside migration7853 registers no offenses7854 when in migration7855 when creating complex indexes as part of create_table7856 when indexes are configured with an options hash, but no name7857 registers an offense7858 when indexes are configured with an options hash and name7859 registers no offense7860 when indexes are added to an existing table7861 when indexes are configured with an options hash, but no name7862 registers an offense7863 when indexes are configured with an options hash and a name7864 registers no offenses7865SnippetInputActionCollection7866 is expected to delegate #empty? to the #actions object7867 is expected to delegate #any? to the #actions object7868 is expected to delegate #[] to the #actions object7869 #to_commit_actions7870 translates all actions to commit actions7871 #valid?7872 returns true7873 when any of the actions is invalid7874 returns false7875 when allowed_actions param is passed7876 builds SnippetInputAction with that param7877Admin::AbuseReportsHelper7878 # order random7879 #abuse_report_data7880 has the expected attributes7881 #abuse_reports_list_data7882 has expected attributes7883Types::Ci::JobTraceType7884 # order random7885 shows the correct trace contents7886 has the correct fields7887Gitlab::Kubernetes::RolloutInstances7888 #pod_instances7889 returns an instance for a deployment with one pod7890 returns a pending pod for a missing replica7891 returns instances when there are two stable deployments7892 returns instances for two deployments with different tracks7893 sorts stable tracks after canary tracks7894Banzai::Filter::PlantumlFilter7895 replaces plantuml pre tag with img tag7896 allows the lang attribute on the code tag to support RST files processed by gitlab-markup gem7897 does not replace plantuml pre tag with img tag if disabled7898 does not replace plantuml pre tag with img tag if url is invalid7899AbuseReportPolicy7900 # order random7901 when the user is an admin7902 can read_abuse_report7903 when the user is not an admin7904 cannot read_abuse_report7905Ci::DownloadableArtifactSerializer7906 #as_json7907 matches schema7908Gitlab::Database::PostgresqlAdapter::TypeMapCache7909 #initialize_type_map7910 caches loading of types in memory7911 only reuses the cache if the connection parameters are exactly the same7912 #reload_type_map7913 clears the cache and executes the type map query again7914Gitlab::Bullet7915 with bullet installed7916 #enabled?7917 with env enabled7918 is enabled7919 with env disabled7920 is not enabled7921 #configure_bullet?7922 with config enabled7923 is configurable7924 with config disabled7925 is not configurable7926Resolvers::Achievements::AchievementsResolver7927 # order random7928 is expected to have nullable GraphQL type AchievementConnection7929 #resolve7930 returns all achievements7931 with ids argument7932 returns the specified achievement7933 when `achievements` feature flag is diabled7934 is empty7935Types::MergeRequests::AssigneeType7936 behaves like a user type with merge request interaction type7937 is expected to require graphql authorizations :read_user7938 has the expected fields7939 #merge_request_interaction7940 returns the correct type7941 has the correct arguments7942ServiceDeskEmailReceiverWorker7943 #perform7944 when service_desk_email config is enabled7945 does not ignore the email7946 when service desk receiver raises an exception7947 sends a rejection email7948 when service_desk_email config is disabled7949 ignores the email7950Gitlab::BitbucketServerImport::Importers::LfsObjectImporter7951 # order random7952 #execute7953 calls the LfsDownloadService with the lfs object attributes7954 logs its progress7955mail_room.yml7956 when incoming email is disabled7957 contains no configuration7958 when both incoming email and service desk email are enabled7959 contains the intended configuration7960 when both incoming email and service desk email are enabled for Microsoft Graph7961 contains the intended configuration7962Gitlab::EventStore::Event7963 when schema is not defined7964 raises an error on initialization7965 when schema is defined7966 schema validation7967 when data matches the schema7968 initializes the event correctly7969 when required properties are present as well as unknown properties7970 initializes the event correctly7971 when some properties are missing7972 expects all properties to be present7973 when data is not a Hash7974 raises an error7975Types::Ci::PipelineType7976 is expected to eq "Pipeline"7977 is expected to expose permissions using Types::PermissionTypes::Ci::Pipeline7978 contains attributes related to a pipeline7979Gitlab::Ci::Pipeline::Chain::Pipeline::Process7980 #perform!7981 schedules a job to process the pipeline7982 #break?7983 is expected to be falsey7984Releases::Links::Params7985 # order random7986 #allowed_params7987 returns only allowed params7988 when deprecated filepath is used7989 uses filepath value7990 when both direct_asset_path and filepath are provided7991 uses direct_asset_path value7992Gitlab::I18n::MetadataEntry7993 #expected_forms7994 returns the number of plurals7995 returns 0 for the POT-metadata7996Gitlab::UsageDataCounters::BaseCounter7997 .fetch_supported_event7998 returns the matching event7999 when event is unknown8000 is expected to be nil8001 when prefix does not match the event name8002 is expected to be nil8003Types::Tree::TreeEntryType8004 is expected to eq "TreeEntry"8005 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :web_path8006Gitlab::GithubImport::Stage::FinishImportWorker8007 #perform8008 marks the import as finished and reports import statistics8009Types::ContainerRepositorySortEnum8010 is expected to eq "ContainerRepositorySort"8011 exposes all the existing issue sort values8012 behaves like common sort values8013 exposes all the existing common sort values8014Types::WorkItems::Widgets::HierarchyUpdateInputType8015 is expected to eq "WorkItemWidgetHierarchyUpdateInput"8016 accepts documented arguments8017 sets the type of relative_position argument to RelativePositionTypeEnum8018projects/pages/_pages_settings8019 # order random8020 for pages unique domain8021 shows the unique domain toggle8022 when pages_unique_domain feature flag is disabled8023 does not show the unique domain toggle8024VulnerabilityFindingSignatureHelpers8025 #priority8026 returns numeric values of the priority string8027 #self.priority8028 returns the numeric value of the provided string8029API::Entities::Nuget::DependencyGroup8030 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...y", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}], :targetFramework=>"fwk test"}8031 dependency group without target framework8032 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...ndbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}]}8033Gitlab::CiAccess8034 #can_do_action?8035 when action is :build_download_code8036 is expected to be truthy8037 when action is not :build_download_code8038 is expected to be falsey8039Types::Ci::InstanceVariableType8040 is expected to contain exactly Types::Ci::VariableInterface8041 is expected to have graphql fields :environment_scope, :masked, and :protected8042Database::BatchedBackgroundMigrationsFinder8043 #execute8044 returns migrations order by created_at (DESC)8045 limits the number of returned migrations8046API::Entities::PublicGroupDetails8047 #as_json8048 includes public group fields8049Types::WorkItems::Widgets::NotificationsUpdateInputType8050 # order random8051 is expected to contain exactly "subscribed"8052 is expected to eq "WorkItemWidgetNotificationsUpdateInput"8053Types::Tree::BlobType8054 is expected to eq "Blob"8055 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, :web_path, :lfs_oid, and :mode8056Types::CommitEncodingEnum8057 is expected to eq "CommitEncoding"8058 exposes all the existing encoding option8059Types::CiConfiguration::Sast::AnalyzersEntityInputType8060 is expected to eq "SastCiConfigurationAnalyzersEntityInput"8061 is expected to contain exactly "enabled", "name", and "variables"8062Types::JiraImportType8063 is expected to eq "JiraImport"8064 has the expected fields8065Atlassian::JiraConnect::Serializers::AuthorEntity8066 when object is a User model8067 exposes all fields8068 when object is a CommitAuthor struct from a commit8069 exposes name and email only8070Types::Packages::Helm::MetadataType8071 is expected to eq "PackageHelmMetadataType"8072 includes helm json fields8073Types::Ci::TestSuiteSummaryType8074 is expected to eq "TestSuiteSummary"8075 contains attributes related to a pipeline test report summary8076Types::DeploymentTierEnum8077 includes a value for each supported environment tier8078Integrations::HarborSerializers::TagSerializer8079 represents Integrations::HarborSerializers::TagEntity entities8080Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersMetric8081 # order random8082 behaves like a correct instrumented metric value8083 has correct value8084Types::Notes::DeletedNoteType8085 # order random8086 exposes the expected fields8087Gitlab::InsecureKeyFingerprint8088 #fingerprint_sha2568089 generates the key's fingerprint8090GravatarService8091 #execute8092 replaces the placeholders8093Types::Packages::Conan::FileMetadatumType8094 includes conan file metadatum fields8095Types::Packages::PackageTypeEnum8096 exposes all package types8097Admin::DeployKeyHelper8098 #admin_deploy_keys_data8099 returns correct hash8100Types::WorkItems::Widgets::HierarchyType8101 exposes the expected fields8102Gitlab::Usage::Metrics::NamesSuggestions::RelationParsers::HavingConstraints8103 # order random8104 #accept8105 builds correct constraints description8106Knapsack report was generated. Preview:8107{8108 "spec/models/application_setting_spec.rb": 399.432143313,8109 "spec/services/todos/destroy/entity_leave_service_spec.rb": 175.32349943500014,8110 "spec/lib/gitlab/git/tree_spec.rb": 96.81238116600002,8111 "spec/services/boards/issues/list_service_spec.rb": 99.53846710399989,8112 "spec/services/issues/relative_position_rebalancing_service_spec.rb": 67.42080144600004,8113 "spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb": 60.72450658699995,8114 "spec/tooling/danger/project_helper_spec.rb": 55.36571354900002,8115 "spec/models/integrations/slack_spec.rb": 59.574772006999865,8116 "spec/lib/gitlab/url_sanitizer_spec.rb": 37.535821995000106,8117 "spec/workers/packages/maven/metadata/sync_worker_spec.rb": 45.369311071000084,8118 "spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb": 37.272374465999974,8119 "spec/services/merge_requests/cleanup_refs_service_spec.rb": 38.98411664300011,8120 "spec/models/integrations/microsoft_teams_spec.rb": 33.612229009999965,8121 "spec/lib/gitlab/ci/status/bridge/factory_spec.rb": 39.113864147000186,8122 "spec/models/packages/package_file_spec.rb": 30.838545078000152,8123 "spec/models/namespace/root_storage_statistics_spec.rb": 30.045123604000082,8124 "spec/finders/group_projects_finder_spec.rb": 27.850222504000158,8125 "spec/helpers/markup_helper_spec.rb": 28.411885853000058,8126 "spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb": 25.890273809999826,8127 "spec/models/incident_management/issuable_escalation_status_spec.rb": 17.77156571499995,8128 "spec/helpers/merge_requests_helper_spec.rb": 25.80080483200004,8129 "spec/models/integrations/jenkins_spec.rb": 21.227919397999813,8130 "spec/workers/concerns/application_worker_spec.rb": 19.587444344999767,8131 "spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb": 21.26849628500031,8132 "spec/models/wiki_page/meta_spec.rb": 23.869346354999834,8133 "spec/services/issues/export_csv_service_spec.rb": 23.20792480199998,8134 "spec/lib/banzai/filter/audio_link_filter_spec.rb": 20.410465712000132,8135 "spec/lib/gitlab/ci/status/stage/factory_spec.rb": 20.298406489999707,8136 "spec/models/concerns/reactive_caching_spec.rb": 15.451554279999982,8137 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 16.560527126000125,8138 "spec/models/hooks/active_hook_filter_spec.rb": 16.158800682999754,8139 "spec/lib/gitlab/observability_spec.rb": 17.170116176000192,8140 "spec/services/merge_requests/mark_reviewer_reviewed_service_spec.rb": 16.19909854100024,8141 "spec/lib/bulk_imports/common/pipelines/members_pipeline_spec.rb": 16.325538842000242,8142 "spec/services/award_emojis/destroy_service_spec.rb": 14.138515467000161,8143 "spec/lib/security/weak_passwords_spec.rb": 13.387760486999923,8144 "spec/lib/gitlab/data_builder/pipeline_spec.rb": 13.337685319999764,8145 "spec/lib/gitlab/popen_spec.rb": 14.180625223999868,8146 "spec/finders/starred_projects_finder_spec.rb": 16.48692991100006,8147 "spec/models/generic_commit_status_spec.rb": 8.528917336999712,8148 "spec/lib/gitlab/sanitizers/exif_spec.rb": 10.080651754999963,8149 "spec/services/projects/participants_service_spec.rb": 13.400232366000182,8150 "spec/serializers/ci/trigger_entity_spec.rb": 10.447942690000218,8151 "spec/lib/gitlab/pagination/keyset/paginator_spec.rb": 10.77097687200012,8152 "spec/models/protected_branch/push_access_level_spec.rb": 10.980534823000198,8153 "spec/workers/merge_worker_spec.rb": 13.155749145999835,8154 "spec/graphql/mutations/merge_requests/create_spec.rb": 11.881745832000433,8155 "spec/serializers/fork_namespace_entity_spec.rb": 10.324420666999686,8156 "spec/lib/gitlab/ci/jwt_v2_spec.rb": 5.72160678299997,8157 "spec/lib/gitlab/checks/snippet_check_spec.rb": 11.57854928200004,8158 "spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb": 12.643526214000303,8159 "spec/lib/gitlab/import_export/base/relation_object_saver_spec.rb": 8.124728087000221,8160 "spec/lib/gitlab/ci/status/build/stop_spec.rb": 9.533884206000039,8161 "spec/graphql/mutations/releases/delete_spec.rb": 11.515772063999975,8162 "spec/finders/ci/jobs_finder_spec.rb": 7.677713442999902,8163 "spec/services/merge_requests/update_assignees_service_spec.rb": 13.811454452999897,8164 "spec/views/layouts/devise.html.haml_spec.rb": 6.381918789999872,8165 "spec/lib/gitlab/database/count_spec.rb": 8.290801331000239,8166 "spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb": 8.344777949000218,8167 "spec/finders/projects/groups_finder_spec.rb": 11.696000357999765,8168 "spec/views/projects/commits/_commit.html.haml_spec.rb": 7.244625409000037,8169 "spec/lib/gitlab/spamcheck/client_spec.rb": 8.813599072000216,8170 "spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb": 11.638876580000215,8171 "spec/graphql/resolvers/last_commit_resolver_spec.rb": 8.443283975000213,8172 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 9.218916457999967,8173 "spec/serializers/diff_file_metadata_entity_spec.rb": 6.744865656000002,8174 "spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb": 7.515806558999884,8175 "spec/lib/gitlab/ci/config/entry/policy_spec.rb": 9.726173488999848,8176 "spec/services/wiki_pages/create_service_spec.rb": 10.532128800999999,8177 "spec/lib/banzai/filter/custom_emoji_filter_spec.rb": 7.188291049999862,8178 "spec/lib/gitlab/lfs/client_spec.rb": 7.572307973000079,8179 "spec/models/customer_relations/organization_spec.rb": 9.299709243000052,8180 "spec/lib/gitlab/sidekiq_middleware/size_limiter/compressor_spec.rb": 6.874943772000279,8181 "spec/lib/gitlab/daemon_spec.rb": 6.263859910000065,8182 "spec/uploaders/object_storage/cdn/google_cdn_spec.rb": 7.702700609000203,8183 "spec/lib/gitlab/file_detector_spec.rb": 4.888325908999832,8184 "spec/lib/bulk_imports/projects/pipelines/snippets_pipeline_spec.rb": 4.501614171000256,8185 "spec/serializers/group_child_serializer_spec.rb": 7.505783964000329,8186 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 6.743435066000075,8187 "spec/models/packages/sem_ver_spec.rb": 6.327643038000133,8188 "spec/models/concerns/project_features_compatibility_spec.rb": 9.432663488999879,8189 "spec/lib/gitlab/web_hooks/recursion_detection_spec.rb": 8.341703130000042,8190 "spec/services/error_tracking/issue_latest_event_service_spec.rb": 4.284412167000028,8191 "spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb": 6.1972736419998,8192 "spec/models/concerns/subquery_spec.rb": 5.080668533999869,8193 "spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb": 6.100810354999794,8194 "spec/workers/propagate_integration_inherit_worker_spec.rb": 2.841484598000079,8195 "spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb": 7.309895640000377,8196 "spec/views/projects/pages/show.html.haml_spec.rb": 7.1831542950003495,8197 "spec/services/projects/download_service_spec.rb": 7.752327609000076,8198 "spec/services/ci/catalog/validate_resource_service_spec.rb": 3.9667200979997688,8199 "spec/services/issuable/destroy_label_links_service_spec.rb": 6.6360853050000514,8200 "spec/models/ci/job_variable_spec.rb": 5.948501049999777,8201 "spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb": 3.740659821999998,8202 "spec/lib/gitlab/gitaly_client/diff_spec.rb": 5.411491514999852,8203 "spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb": 6.6225882590001675,8204 "spec/lib/gitlab/pages/cache_control_spec.rb": 1.8650799859997278,8205 "spec/lib/gitlab/slash_commands/run_spec.rb": 8.548620034000123,8206 "spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb": 2.555302297000253,8207 "spec/services/prometheus/proxy_variable_substitution_service_spec.rb": 6.882609991999743,8208 "spec/lib/gitlab/ci/templates/katalon_gitlab_ci_yaml_spec.rb": 1.7407482000003256,8209 "spec/finders/personal_projects_finder_spec.rb": 8.262302422000175,8210 "spec/views/projects/milestones/index.html.haml_spec.rb": 3.3515316539997,8211 "spec/finders/projects/topics_finder_spec.rb": 3.4004175820000455,8212 "spec/tasks/dev_rake_spec.rb": 4.092938572000094,8213 "spec/services/compare_service_spec.rb": 6.488386324000203,8214 "spec/services/boards/create_service_spec.rb": 5.047790814000109,8215 "spec/rubocop/cop/rspec/factory_bot/avoid_create_spec.rb": 1.203891965999901,8216 "spec/components/pajamas/checkbox_component_spec.rb": 2.537610176000271,8217 "spec/policies/application_setting_policy_spec.rb": 2.381327731000056,8218 "spec/graphql/resolvers/concerns/looks_ahead_spec.rb": 3.0054923129996496,8219 "spec/models/ci/commit_with_pipeline_spec.rb": 5.902695271000084,8220 "spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb": 4.294191166000019,8221 "spec/services/ci/compare_codequality_reports_service_spec.rb": 3.2991631849999976,8222 "spec/graphql/types/users/autocompleted_user_type_spec.rb": 0.9443904129998373,8223 "spec/graphql/resolvers/ci/runner_job_count_resolver_spec.rb": 4.458754841999962,8224 "spec/services/integrations/propagate_service_spec.rb": 5.018284624999978,8225 "spec/lib/bulk_imports/common/pipelines/wiki_pipeline_spec.rb": 2.600826655000219,8226 "spec/services/projects/import_export/parallel_export_service_spec.rb": 4.776386882999759,8227 "spec/graphql/resolvers/projects/fork_targets_resolver_spec.rb": 2.1101889689998643,8228 "spec/workers/work_items/import_work_items_csv_worker_spec.rb": 3.215575958000045,8229 "spec/tasks/gitlab/terraform/migrate_rake_spec.rb": 3.236032936999891,8230 "spec/validators/devise_email_validator_spec.rb": 2.221035825999934,8231 "spec/lib/gitlab/usage/metrics/instrumentations/count_snippets_metric_spec.rb": 2.010134411999843,8232 "spec/lib/gitlab/background_task_spec.rb": 3.4687769900001513,8233 "spec/presenters/packages/composer/packages_presenter_spec.rb": 3.5424322379999467,8234 "spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb": 2.4540306789999704,8235 "spec/validators/qualified_domain_array_validator_spec.rb": 3.8629288689999157,8236 "spec/tooling/lib/tooling/find_tests_spec.rb": 1.7537655000000996,8237 "spec/models/concerns/ci/track_environment_usage_spec.rb": 5.383947015000103,8238 "spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb": 2.9250659149997773,8239 "spec/lib/gitlab/exception_log_formatter_spec.rb": 3.828917079000348,8240 "spec/graphql/types/commit_signatures/gpg_signature_type_spec.rb": 1.1645234770003299,8241 "spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb": 2.244820025000081,8242 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb": 3.237232967000182,8243 "spec/lib/api/helpers/members_helpers_spec.rb": 4.812724981999963,8244 "spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb": 4.545032608999918,8245 "spec/services/todos/destroy/destroyed_issuable_service_spec.rb": 2.914908726000249,8246 "spec/helpers/components_helper_spec.rb": 0.7480306190000192,8247 "spec/helpers/ci/secure_files_helper_spec.rb": 2.336298161999821,8248 "spec/lib/gitlab/usage/metrics/instrumentations/distinct_count_projects_with_expiration_policy_metric_spec.rb": 4.690596445999745,8249 "spec/lib/json_web_token/token_spec.rb": 0.8095080859998234,8250 "spec/lib/gitlab/exclusive_lease_helpers_spec.rb": 4.074827542999628,8251 "spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb": 4.251437897999949,8252 "spec/helpers/environment_helper_spec.rb": 4.516980290999982,8253 "spec/services/pages_domains/create_acme_order_service_spec.rb": 3.0070484130001205,8254 "spec/lib/gitlab/pipeline_scope_counts_spec.rb": 2.5598336160001054,8255 "spec/components/pajamas/radio_component_spec.rb": 4.830153501000041,8256 "spec/validators/future_date_validator_spec.rb": 0.906512684000063,8257 "spec/graphql/types/time_tracking/timelog_category_type_spec.rb": 0.79412002700019,8258 "spec/lib/gitlab/email/message/in_product_marketing/verify_spec.rb": 0.8228279159998237,8259 "spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb": 4.9880346469999495,8260 "spec/graphql/mutations/clusters/agents/delete_spec.rb": 2.310545923999598,8261 "spec/finders/packages/helm/package_files_finder_spec.rb": 2.18094606700015,8262 "spec/graphql/resolvers/snippets/blobs_resolver_spec.rb": 3.6150554060000104,8263 "spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb": 2.9739769950001573,8264 "spec/services/ci/pipeline_schedules/create_service_spec.rb": 2.2139223760000277,8265 "spec/services/issues/after_create_service_spec.rb": 1.669360021999637,8266 "spec/rubocop/cop/migration/update_column_in_batches_spec.rb": 5.057811604000108,8267 "spec/lib/banzai/querying_spec.rb": 0.5134498850002274,8268 "spec/lib/slack_markdown_sanitizer_spec.rb": 1.7362260009999773,8269 "spec/serializers/integrations/event_entity_spec.rb": 3.638725675999922,8270 "spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb": 3.3009416449999662,8271 "spec/graphql/resolvers/project_resolver_spec.rb": 1.900322535000214,8272 "spec/workers/propagate_integration_group_worker_spec.rb": 1.859161505999964,8273 "spec/lib/gitlab/slash_commands/presenters/issue_search_spec.rb": 3.3000605249999353,8274 "spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb": 3.0435292920001302,8275 "spec/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.6409266930004378,8276 "spec/lib/gitlab/utils/link_header_parser_spec.rb": 2.9501356649998343,8277 "spec/policies/integration_policy_spec.rb": 2.878248416999668,8278 "spec/models/concerns/issuable_link_spec.rb": 1.5063808770000833,8279 "spec/services/protected_branches/api_service_spec.rb": 1.7104706400000396,8280 "spec/lib/gitlab/timeless_spec.rb": 1.0136386610001864,8281 "spec/models/raw_usage_data_spec.rb": 3.9883225150001635,8282 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 1.223085445000379,8283 "spec/lib/gitlab/ci/config/entry/inherit/variables_spec.rb": 1.296783022999989,8284 "spec/lib/bitbucket/representation/comment_spec.rb": 2.5954470050000964,8285 "spec/services/work_items/widgets/labels_service/update_service_spec.rb": 2.6377037130000645,8286 "spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb": 1.2727823630002604,8287 "spec/workers/issuables/clear_groups_issue_counter_worker_spec.rb": 1.1219721680004113,8288 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.9853865710001628,8289 "spec/graphql/mutations/work_items/update_task_spec.rb": 1.1907924360002653,8290 "spec/lib/gitlab/github_gists_import/status_spec.rb": 2.2013274660002935,8291 "spec/services/integrations/slack_option_service_spec.rb": 2.23892340600014,8292 "spec/lib/gitlab/utils/gzip_spec.rb": 0.9949867119998999,8293 "spec/lib/security/ci_configuration/secret_detection_build_action_spec.rb": 1.1492251469999246,8294 "spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb": 2.2357721160001347,8295 "spec/models/snippet_input_action_collection_spec.rb": 2.527085096999599,8296 "spec/helpers/admin/abuse_reports_helper_spec.rb": 0.8918249050002487,8297 "spec/graphql/types/ci/job_trace_type_spec.rb": 0.968372642000304,8298 "spec/lib/gitlab/kubernetes/rollout_instances_spec.rb": 0.9261832429997412,8299 "spec/lib/banzai/filter/plantuml_filter_spec.rb": 2.111520720000044,8300 "spec/policies/abuse_report_policy_spec.rb": 1.9806916229999842,8301 "spec/serializers/ci/downloadable_artifact_serializer_spec.rb": 0.9058880939996925,8302 "spec/lib/gitlab/database/postgresql_adapter/type_map_cache_spec.rb": 1.1230145180002182,8303 "spec/lib/gitlab/bullet_spec.rb": 0.8753981350000686,8304 "spec/graphql/resolvers/achievements/achievements_resolver_spec.rb": 0.9257925140000225,8305 "spec/graphql/types/merge_requests/assignee_type_spec.rb": 0.8099396170000546,8306 "spec/workers/service_desk_email_receiver_worker_spec.rb": 3.4607871299999715,8307 "spec/lib/gitlab/bitbucket_server_import/importers/lfs_object_importer_spec.rb": 0.7728833680002936,8308 "spec/config/mail_room_spec.rb": 0.7783357680000336,8309 "spec/lib/gitlab/event_store/event_spec.rb": 0.9980747719996543,8310 "spec/graphql/types/ci/pipeline_type_spec.rb": 0.6775643400001172,8311 "spec/lib/gitlab/ci/pipeline/chain/pipeline/process_spec.rb": 0.6999436800001604,8312 "spec/services/releases/links/params_spec.rb": 1.9854607629999919,8313 "spec/lib/gitlab/i18n/metadata_entry_spec.rb": 0.5626819340000111,8314 "spec/lib/gitlab/usage_data_counters/base_counter_spec.rb": 1.9817271030001393,8315 "spec/graphql/types/tree/tree_entry_type_spec.rb": 0.5504793439999958,8316 "spec/workers/gitlab/github_import/stage/finish_import_worker_spec.rb": 0.6855509399997572,8317 "spec/graphql/types/container_repository_sort_enum_spec.rb": 0.7287650189996384,8318 "spec/graphql/types/work_items/widgets/hierarchy_update_input_type_spec.rb": 0.6651979210000718,8319 "spec/views/projects/pages/_pages_settings.html.haml_spec.rb": 0.5960752729997694,8320 "spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb": 1.8186912579999444,8321 "spec/lib/api/entities/nuget/dependency_group_spec.rb": 1.7893250289998832,8322 "spec/lib/gitlab/ci_access_spec.rb": 0.5458876039997449,8323 "spec/graphql/types/ci/instance_variable_type_spec.rb": 0.6286077519998798,8324 "spec/finders/database/batched_background_migrations_finder_spec.rb": 0.5948808130001453,8325 "spec/lib/api/entities/public_group_details_spec.rb": 0.503735955999673,8326 "spec/graphql/types/work_items/widgets/notifications_update_input_type_spec.rb": 0.5810402329998396,8327 "spec/graphql/types/tree/blob_type_spec.rb": 0.5471605839998119,8328 "spec/graphql/types/commit_encoding_enum_spec.rb": 0.5328769950001515,8329 "spec/graphql/types/ci_configuration/sast/analyzers_entity_input_type_spec.rb": 0.5268238549997477,8330 "spec/graphql/types/jira_import_type_spec.rb": 0.5566610539999601,8331 "spec/lib/atlassian/jira_connect/serializers/author_entity_spec.rb": 1.8669768760000807,8332 "spec/graphql/types/packages/helm/metadata_type_spec.rb": 1.8346281969998017,8333 "spec/graphql/types/ci/test_suite_summary_type_spec.rb": 0.6255913320001127,8334 "spec/graphql/types/deployment_tier_enum_spec.rb": 0.4455792769999789,8335 "spec/serializers/integrations/harbor_serializers/tag_serializer_spec.rb": 0.4244849480000994,8336 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_metric_spec.rb": 0.46748384700003953,8337 "spec/graphql/types/notes/deleted_note_type_spec.rb": 0.419019138999829,8338 "spec/lib/gitlab/insecure_key_fingerprint_spec.rb": 0.5804748430000473,8339 "spec/services/gravatar_service_spec.rb": 0.479747935999967,8340 "spec/graphql/types/packages/conan/file_metadatum_type_spec.rb": 0.4259925480000675,8341 "spec/graphql/types/packages/package_type_enum_spec.rb": 0.4224358679998659,8342 "spec/helpers/admin/deploy_key_helper_spec.rb": 0.4177406570001949,8343 "spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb": 0.4085493690004114,8344 "spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/having_constraints_spec.rb": 0.41730916799997438345}8346Knapsack global time execution for tests: 42m 12s8347Pending: (Failures listed here are expected and do not affect your suite's status)8348 1) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when single database does not lock any newly created tables8349 # Skipping because database ci exists8350 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:1028351 2) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when executing create_table migrations when multiple databases for creating a gitlab_geo table behaves like does not lock writes on table allows deleting records from the table8352 # No reason given8353 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:438354 3) Gitlab::Database::MigrationHelpers::AutomaticLockWritesOnTables when reversing drop_table migrations when single database does not lock any newly created tables8355 # Skipping because database ci exists8356 # ./spec/lib/gitlab/database/migration_helpers/automatic_lock_writes_on_tables_spec.rb:3198357 4) Gitlab::Usage::Metrics::NamesSuggestions::Generator#generate for add metrics behaves like name suggestion return correct name8359 Failure/Error: expect(described_class.generate(key_path)).to match name_suggestion8360 expected nil to match /add_count_<adjective describing: '\(snippets\.type = 'PersonalSnippet'\)'>_snippets_and_count_<adjective describing: '\(snippets\.type = 'ProjectSnippet'\)'>_snippets/8361 Shared Example Group: "name suggestion" called from ./spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb:758362 # ./spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb:15:in `block (4 levels) in <top (required)>'8363 # ./spec/spec_helper.rb:442:in `block (3 levels) in <top (required)>'8364 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8365 # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'8366 # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'8367 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8368 # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'8369 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'8370 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8371 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8372 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8373 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8374 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8375 5) Ci::JobVariable partitioning when using bulk_insert creates job variables successfully8376 # Skipping partitioning tests until `ci_builds` is partitioned8377 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8378 RSpec::Core::Pending::SkipDeclaredInExample8379 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8380 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8381 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8382 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8383 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8384Failures:8385 1) Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=main while restrict_gitlab_migration=gitlab_schema_gitlab_shared does run migrate :up and :down8386 Failure/Error: expect { migration_class.migrate(:up) }.to raise_error(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError)8387 expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError but nothing was raised8388 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:580:in `block (8 levels) in <top (required)>'8389 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:540:in `block (7 levels) in <top (required)>'8390 # ./spec/support/helpers/database/multiple_databases_helpers.rb:107:in `with_reestablished_active_record_base'8391 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:537:in `block (6 levels) in <top (required)>'8392 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:12:in `block (3 levels) in <top (required)>'8393 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8394 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:11:in `block (2 levels) in <top (required)>'8395 # ./spec/spec_helper.rb:442:in `block (3 levels) in <top (required)>'8396 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8397 # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'8398 # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'8399 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8400 # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'8401 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'8402 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8403 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8404 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8405 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8406 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8407 # ./spec/support/database/gitlab_schemas_validate_connection.rb:6:in `block in with_gitlab_schemas_validate_connection_prevented'8408 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8409 # ./spec/support/database/gitlab_schemas_validate_connection.rb:5:in `with_gitlab_schemas_validate_connection_prevented'8410 # ./spec/support/database/gitlab_schemas_validate_connection.rb:15:in `block (2 levels) in <top (required)>'8411 2) Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=ci while restrict_gitlab_migration=no_gitlab_schema does run migrate :up and :down8412 Failure/Error: expect { migration_class.migrate(:up) }.to raise_error(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLNotAllowedError)8413 expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLNotAllowedError but nothing was raised8414 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:576:in `block (8 levels) in <top (required)>'8415 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:540:in `block (7 levels) in <top (required)>'8416 # ./spec/support/helpers/database/multiple_databases_helpers.rb:107:in `with_reestablished_active_record_base'8417 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:537:in `block (6 levels) in <top (required)>'8418 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:12:in `block (3 levels) in <top (required)>'8419 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8420 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:11:in `block (2 levels) in <top (required)>'8421 # ./spec/spec_helper.rb:442:in `block (3 levels) in <top (required)>'8422 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8423 # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'8424 # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'8425 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8426 # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'8427 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'8428 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8429 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8430 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8431 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8432 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8433 # ./spec/support/database/gitlab_schemas_validate_connection.rb:6:in `block in with_gitlab_schemas_validate_connection_prevented'8434 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8435 # ./spec/support/database/gitlab_schemas_validate_connection.rb:5:in `with_gitlab_schemas_validate_connection_prevented'8436 # ./spec/support/database/gitlab_schemas_validate_connection.rb:15:in `block (2 levels) in <top (required)>'8437 3) Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=ci while restrict_gitlab_migration=gitlab_schema_gitlab_shared does run migrate :up and :down8438 Failure/Error: expect { migration_class.migrate(:up) }.to raise_error(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError)8439 expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError but nothing was raised8440 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:580:in `block (8 levels) in <top (required)>'8441 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:540:in `block (7 levels) in <top (required)>'8442 # ./spec/support/helpers/database/multiple_databases_helpers.rb:107:in `with_reestablished_active_record_base'8443 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:537:in `block (6 levels) in <top (required)>'8444 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:12:in `block (3 levels) in <top (required)>'8445 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8446 # ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:11:in `block (2 levels) in <top (required)>'8447 # ./spec/spec_helper.rb:442:in `block (3 levels) in <top (required)>'8448 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8449 # ./spec/spec_helper.rb:433:in `block (2 levels) in <top (required)>'8450 # ./spec/spec_helper.rb:429:in `block (3 levels) in <top (required)>'8451 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8452 # ./spec/spec_helper.rb:429:in `block (2 levels) in <top (required)>'8453 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'8454 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8455 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8456 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8457 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8458 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8459 # ./spec/support/database/gitlab_schemas_validate_connection.rb:6:in `block in with_gitlab_schemas_validate_connection_prevented'8460 # ./lib/gitlab/database/query_analyzers/base.rb:39:in `with_suppressed'8461 # ./spec/support/database/gitlab_schemas_validate_connection.rb:5:in `with_gitlab_schemas_validate_connection_prevented'8462 # ./spec/support/database/gitlab_schemas_validate_connection.rb:15:in `block (2 levels) in <top (required)>'8463Finished in 42 minutes 22 seconds (files took 1 minute 28.56 seconds to load)84643905 examples, 3 failures, 5 pending8465Failed examples:8466rspec './spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb[1:2:17:1:3:1]' # Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=main while restrict_gitlab_migration=gitlab_schema_gitlab_shared does run migrate :up and :down8467rspec './spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb[1:2:17:2:1:1]' # Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=ci while restrict_gitlab_migration=no_gitlab_schema does run migrate :up and :down8468rspec './spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb[1:2:17:2:3:1]' # Gitlab::Database::MigrationHelpers::RestrictGitlabSchema when executing migrations does raise exception when accessing feature flags for db_config_name=ci while restrict_gitlab_migration=gitlab_schema_gitlab_shared does run migrate :up and :down8469Randomized with seed 33488470[TEST PROF INFO] Time spent in factories: 14:08.348 (32.84% of total time)8471Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected8472RSpec exited with 1.8473RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg14_8_28_report.txt8474Retrying the failing examples in a new RSpec process...8475$ gem install junit_merge --no-document --version 0.1.28476Successfully installed nokogiri-1.15.3-x86_64-linux8477Successfully installed junit_merge-0.1.284782 gems installed8479==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.8480Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-4749214618.json --format RspecJunitFormatter --out rspec/rspec-retry-4749214618.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"8481/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!8482/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!8483/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!8484/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!8485/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!8486/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!8487/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!8488/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!8489/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!8490/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!8491/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!8492/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!8493/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!8494/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!8495/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!8496/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!8497/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!8498/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!8499/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!8500/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!8501/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!8502/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!8503/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!8504/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!8505/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!8506/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!8507/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!8508/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!8509/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!8510/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!8511/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!8512/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!8513/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!8514/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!8515/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!8516/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!8517/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!8518/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!8519Run options: include {:last_run_status=>"failed"}8520Test environment set up in 0.492374082 seconds8521Gitlab::Database::MigrationHelpers::RestrictGitlabSchema8522 when executing migrations8523 does raise exception when accessing feature flags8524 for db_config_name=main8525 while restrict_gitlab_migration=gitlab_schema_gitlab_shared8526 does run migrate :up and :down85281st Try error in ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:554:8529expected Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError but nothing was raised8531RSpec::Retry: 2nd try ./spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb:5548532 for db_config_name=ci8533 while restrict_gitlab_migration=no_gitlab_schema8534 does run migrate :up and :down8535 while restrict_gitlab_migration=gitlab_schema_gitlab_shared8536 does run migrate :up and :down8537Finished in 3.23 seconds (files took 46.84 seconds to load)85383 examples, 0 failures8539[TEST PROF INFO] Time spent in factories: 00:00.025 (0.45% of total time)8540Loading rspec/rspec-4749214618.json...8541Merged rspec/rspec-retry-4749214618.json adding 4 results.8542Saved rspec/rspec-4749214618.json.8543A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8544Flaky test was not part of this MR.8546Running after script...8547$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8559Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8561Uploading artifacts...8562WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8563coverage/: found 4 matching artifact files and directories 8564crystalball/: found 2 matching artifact files and directories 8565WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8566knapsack/: found 4 matching artifact files and directories 8567rspec/: found 13 matching artifact files and directories 8568WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8569log/*.log: found 17 matching artifact files and directories 8570WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214618/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8571WARNING: Retrying... context=artifacts-uploader error=request redirected8572Uploading artifacts as "archive" to coordinator... 201 Created id=4749214618 responseStatus=201 Created token=64_yzKyQ8573Uploading artifacts...8574rspec/rspec-*.xml: found 2 matching artifact files and directories 8575WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214618/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8576WARNING: Retrying... context=artifacts-uploader error=request redirected8577Uploading artifacts as "junit" to coordinator... 201 Created id=4749214618 responseStatus=201 Created token=64_yzKyQ8579Job succeeded