rspec unit pg13-as-if-foss single-db-ci-connection 20/28
Passed Started
by
@fabiopitino
Fabio Pitino
1Running with gitlab-runner 16.1.0~beta.5.gf131a6a2 (f131a6a2)2 on blue-5.private.runners-manager.gitlab.com/gitlab.com/gitlab-org PYwgZLQB, system ID: s_4bff81aff7f73 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13: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-13-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 ...10Using docker image sha256:73740c557807c4bc5d692f263c0e35454270600da4b22bbe952331411426c8b5 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-13-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:3174001f839c42e299ac06a42f8ded446edfcb33b0eb820874749a3f53eb799c ...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:85fd7bd884b6493c8eb6f4dffbe5406d97cce56aff84f1580a5eb5b9d841f158 for redis:6.2-alpine with digest redis@sha256:87c44d5d9f472e767c8737f4130c765d77bdc95c7472d6427cfc9d4632f12da6 ...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.19-rust-1.65-node-18.16-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13: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.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...25Running on runner-pywgzlqb-project-278964-concurrent-0 via runner-pywgzlqb-private-1685686536-42e975a6...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 139970, done. 31remote: Counting objects: 100% (139970/139970), done. 32remote: Compressing objects: 100% (94736/94736), done. 33remote: Total 139970 (delta 61223), reused 92025 (delta 39894), pack-reused 0 34Receiving objects: 100% (139970/139970), 123.36 MiB | 30.67 MiB/s, done.35Resolving deltas: 100% (61223/61223), done.37 * [new ref] refs/pipelines/887306308 -> refs/pipelines/88730630838Checking out 95754c79 as detached HEAD (ref is refs/merge-requests/122015/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets as-if-foss (4400964017)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964017 responseStatus=200 OK token=64_ArScM48Downloading artifacts for detect-tests (4400964025)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964025 responseStatus=200 OK token=64_ArScM50Downloading artifacts for retrieve-tests-metadata (4400964028)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964028 responseStatus=200 OK token=64_ArScM52Downloading artifacts for setup-test-env (4400964019)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4400964019 responseStatus=200 OK token=64_ArScM55Using docker image sha256:61b59025d0d646cd177f654d8f81df859675be528f37dcc2ce6f39a49c7a5dd9 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-18.16-postgresql-13: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.19-rust-1.65-node-18.16-postgresql-13@sha256:25367d41b1034f1ecacfc9cb8eebc70cb30c6fdade3781cf295488255bf61614 ...56$ echo $FOSS_ONLY57158$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb59$ export GOPATH=$CI_PROJECT_DIR/.go60$ mkdir -p $GOPATH61$ source scripts/utils.sh62$ source scripts/prepare_build.sh720Using decomposed database config (config/database.yml.postgresql)721Geo DB won't be set up.722Embedding DB won't be set up.734$ source ./scripts/rspec_helpers.sh735$ run_timed_command "gem install knapsack --no-document"736$ gem install knapsack --no-document737Successfully installed knapsack-4.0.07381 gem installed739==> 'gem install knapsack --no-document' succeeded in 1 seconds.740$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"742$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"747$ echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K"748$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"749SKIP_FLAKY_TESTS_AUTOMATICALLY: 750RETRY_FAILED_TESTS_IN_NEW_PROCESS: true751KNAPSACK_GENERATE_REPORT: 752FLAKY_RSPEC_GENERATE_REPORT: 753KNAPSACK_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.rb754KNAPSACK_LOG_LEVEL: debug755KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13-as-if-foss_single-db-ci-connection_20_28_report.json756FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json757FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db-ci-connection_20_28_report.json758NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db-ci-connection_20_28_report.json759SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_20_28.txt760CRYSTALBALL: 761RSPEC_TESTS_MAPPING_ENABLED: 762RSPEC_TESTS_FILTER_FILE: 763Running 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-4400964684.json --format RspecJunitFormatter --out rspec/rspec-4400964684.xml --tag ~quarantine --tag ~level:background_migration -- spec/tasks/gitlab/backup_rake_spec.rb spec/models/issue_spec.rb spec/services/ci/create_pipeline_service_spec.rb spec/services/merge_requests/create_service_spec.rb spec/models/clusters/platforms/kubernetes_spec.rb spec/lib/gitlab/import_export/project/relation_factory_spec.rb spec/services/issuable/bulk_update_service_spec.rb spec/services/members/invitation_reminder_email_service_spec.rb spec/lib/gitlab/database/lock_writes_manager_spec.rb spec/services/resource_access_tokens/create_service_spec.rb spec/models/namespace_setting_spec.rb spec/lib/gitlab/background_migration/merge_topics_with_same_name_spec.rb spec/services/deployments/update_environment_service_spec.rb spec/lib/gitlab/background_migration/destroy_invalid_members_spec.rb spec/routing/routing_spec.rb spec/models/hooks/web_hook_spec.rb spec/lib/gitlab/diff/file_collection/merge_request_diff_batch_spec.rb spec/helpers/blob_helper_spec.rb spec/graphql/mutations/merge_requests/set_labels_spec.rb spec/routing/group_routing_spec.rb spec/services/labels/promote_service_spec.rb spec/models/notification_recipient_spec.rb spec/finders/ci/pipelines_finder_spec.rb spec/helpers/merge_requests_helper_spec.rb spec/models/application_record_spec.rb spec/services/merge_requests/create_pipeline_service_spec.rb spec/uploaders/namespace_file_uploader_spec.rb spec/lib/gitlab/ci/pipeline/chain/command_spec.rb spec/lib/gitlab/ci/cron_parser_spec.rb spec/lib/gitlab/workhorse_spec.rb spec/lib/container_registry/path_spec.rb spec/models/ci/pending_build_spec.rb spec/lib/gitlab/sidekiq_config/worker_matcher_spec.rb spec/services/issuable/destroy_service_spec.rb spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb spec/lib/gitlab/alert_management/payload/generic_spec.rb spec/serializers/commit_entity_spec.rb spec/models/project_group_link_spec.rb spec/helpers/nav/top_nav_helper_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata/entry_spec.rb spec/lib/banzai/reference_parser/issue_parser_spec.rb spec/views/layouts/application.html.haml_spec.rb spec/models/ci/runner_project_spec.rb spec/finders/context_commits_finder_spec.rb spec/services/incident_management/timeline_events/destroy_service_spec.rb spec/models/zoom_meeting_spec.rb spec/lib/gitlab/data_builder/build_spec.rb spec/services/projects/forks/sync_service_spec.rb spec/models/label_note_spec.rb spec/models/ci/namespace_mirror_spec.rb spec/services/protected_branches/cache_service_spec.rb spec/models/commit_signatures/ssh_signature_spec.rb spec/lib/object_storage/config_spec.rb spec/models/clusters/providers/gcp_spec.rb spec/policies/personal_snippet_policy_spec.rb spec/services/packages/npm/create_tag_service_spec.rb spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb spec/graphql/mutations/timelogs/delete_spec.rb spec/lib/gitlab/utils/email_spec.rb spec/services/ci/stuck_builds/drop_pending_service_spec.rb spec/policies/deploy_keys_project_policy_spec.rb spec/tasks/config_lint_rake_spec.rb spec/models/packages/debian/project_component_file_spec.rb spec/lib/system_check/simple_executor_spec.rb spec/models/sentry_issue_spec.rb spec/lib/banzai/filter/references/reference_cache_spec.rb spec/helpers/time_zone_helper_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb spec/workers/projects/process_sync_events_worker_spec.rb spec/lib/gitlab/import_export/group/tree_saver_spec.rb spec/models/clusters/agents/authorizations/user_access/project_authorization_spec.rb spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb spec/graphql/resolvers/design_management/design_resolver_spec.rb spec/services/ci/runners/assign_runner_service_spec.rb spec/finders/releases/evidence_pipeline_finder_spec.rb spec/services/import/github/cancel_project_import_service_spec.rb spec/lib/gitlab/auth/key_status_checker_spec.rb spec/serializers/profile/event_entity_spec.rb spec/workers/repository_check/batch_worker_spec.rb spec/workers/concerns/limited_capacity/worker_spec.rb spec/helpers/ci/pipeline_editor_helper_spec.rb spec/workers/namespaces/root_statistics_worker_spec.rb spec/tooling/danger/database_dictionary_spec.rb spec/lib/gitlab/database/load_balancing/transaction_leaking_spec.rb spec/graphql/types/base_argument_spec.rb spec/lib/gitlab/reactive_cache_set_cache_spec.rb spec/lib/gitlab/push_options_spec.rb spec/routing/user_routing_spec.rb spec/validators/public_url_validator_spec.rb spec/lib/gitlab/import/metrics_spec.rb spec/lib/gitlab/slash_commands/issue_show_spec.rb spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb spec/lib/gitlab/ci/config/entry/files_spec.rb spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb spec/lib/gitlab/database/reindexing/reindex_action_spec.rb spec/components/pajamas/card_component_spec.rb spec/graphql/resolvers/paginated_tree_resolver_spec.rb spec/policies/ci/pipeline_schedule_policy_spec.rb spec/finders/groups/projects_requiring_authorizations_refresh/on_direct_membership_finder_spec.rb spec/lib/gitlab/cache/import/caching_spec.rb spec/initializers/carrierwave_performance_patch_spec.rb spec/services/projects/hashed_storage/rollback_service_spec.rb spec/workers/migrate_external_diffs_worker_spec.rb spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb spec/finders/concerns/finder_methods_spec.rb spec/lib/gitlab/ci/status/build/pending_spec.rb spec/lib/gitlab/graphql/loaders/batch_commit_loader_spec.rb spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb spec/lib/gitlab/request_forgery_protection_spec.rb spec/workers/propagate_integration_inherit_worker_spec.rb spec/lib/gitlab/ci/config/entry/rules/rule/changes_spec.rb spec/lib/banzai/reference_parser/work_item_parser_spec.rb spec/lib/gitlab/usage/metric_spec.rb spec/lib/gitlab/github_import/importer/attachments/notes_importer_spec.rb spec/services/branches/create_service_spec.rb spec/workers/propagate_integration_inherit_descendant_worker_spec.rb spec/lib/gitlab/github_import/representation/note_spec.rb spec/models/instance_metadata/kas_spec.rb spec/views/shared/wikis/_sidebar.html.haml_spec.rb spec/channels/application_cable/connection_spec.rb spec/workers/merge_requests/set_reviewer_reviewed_worker_spec.rb spec/workers/mail_scheduler/notification_service_worker_spec.rb spec/graphql/resolvers/ci/group_runners_resolver_spec.rb spec/helpers/nav/new_dropdown_helper_spec.rb spec/presenters/web_hook_log_presenter_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_inactive_public_projects_spec.rb spec/services/projects/count_service_spec.rb spec/lib/gitlab/pages/cache_control_spec.rb spec/workers/web_hooks/log_destroy_worker_spec.rb spec/services/projects/all_issues_count_service_spec.rb spec/services/packages/nuget/sync_metadatum_service_spec.rb spec/helpers/environment_helper_spec.rb spec/lib/gitlab/database/migration_helpers/wraparound_vacuum_helpers_spec.rb spec/models/namespaces/sync_event_spec.rb spec/rubocop/cop/code_reuse/worker_spec.rb spec/lib/gitlab/ci/ansi2json/state_spec.rb spec/lib/gitlab/color_schemes_spec.rb spec/lib/gitlab/import_export/project/exported_relations_merger_spec.rb spec/presenters/issue_email_participant_presenter_spec.rb spec/serializers/analytics_issue_serializer_spec.rb spec/lib/gitlab/ci/parsers/sbom/cyclonedx_properties_spec.rb spec/models/user_mentions/commit_user_mention_spec.rb spec/models/resource_events/merge_request_assignment_event_spec.rb spec/workers/releases/create_evidence_worker_spec.rb spec/lib/gitlab/crypto_helper_spec.rb spec/lib/sidebars/concerns/link_with_html_options_spec.rb spec/helpers/projects/security/configuration_helper_spec.rb spec/lib/gitlab/ci/processable_object_hierarchy_spec.rb spec/models/concerns/strip_attribute_spec.rb spec/uploaders/object_storage/cdn/google_ip_cache_spec.rb spec/models/blob_viewer/markup_spec.rb spec/views/search/show.html.haml_spec.rb spec/serializers/issue_board_entity_spec.rb spec/models/error_tracking/error_event_spec.rb spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb spec/lib/gitlab/database/schema_validation/validators/extra_triggers_spec.rb spec/lib/gitlab/utils/error_message_spec.rb spec/services/ci/generate_kubeconfig_service_spec.rb spec/presenters/ml/candidate_details_presenter_spec.rb spec/lib/banzai/filter/markdown_engines/base_spec.rb spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb spec/workers/ci/stuck_builds/drop_running_worker_spec.rb spec/services/users/update_highest_member_role_service_spec.rb spec/lib/gitlab/checks/project_created_spec.rb spec/models/concerns/signature_type_spec.rb spec/services/clusters/kubernetes/fetch_kubernetes_token_service_spec.rb spec/lib/gitlab/code_navigation_path_spec.rb spec/services/environments/reset_auto_stop_service_spec.rb spec/lib/sidebars/admin/menus/labels_menu_spec.rb spec/policies/project_hook_policy_spec.rb spec/graphql/types/work_item_id_type_spec.rb spec/graphql/resolvers/project_pipeline_schedules_resolver_spec.rb spec/lib/gitlab/ci/input/inputs_spec.rb spec/lib/gitlab/middleware/multipart/handler_spec.rb spec/lib/api/entities/deployment_extended_spec.rb spec/models/performance_monitoring/prometheus_panel_spec.rb spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb spec/lib/gitlab/git/wraps_gitaly_errors_spec.rb spec/serializers/build_artifact_entity_spec.rb spec/lib/gitlab/database/type/json_pg_safe_spec.rb spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb spec/lib/generators/batched_background_migration/batched_background_migration_generator_spec.rb spec/services/concerns/merge_requests/assigns_merge_params_spec.rb spec/lib/gitlab/git_access_design_spec.rb spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb spec/rubocop/cop/filename_length_spec.rb spec/lib/gitlab/import_export/project/sample/date_calculator_spec.rb spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb spec/serializers/personal_access_token_serializer_spec.rb spec/workers/disallow_two_factor_for_group_worker_spec.rb spec/graphql/resolvers/clusters/agents/authorizations/user_access_resolver_spec.rb spec/graphql/resolvers/group_resolver_spec.rb spec/presenters/packages/npm/package_presenter_spec.rb spec/services/mattermost/create_team_service_spec.rb spec/uploaders/content_type_whitelist_spec.rb spec/serializers/ci/daily_build_group_report_result_entity_spec.rb spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb spec/views/shared/_milestones_sort_dropdown.html.haml_spec.rb spec/workers/gitlab/import/stuck_import_job_spec.rb spec/finders/packages/group_or_project_package_finder_spec.rb spec/workers/database/monitor_locked_tables_worker_spec.rb spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb spec/rubocop/cop/migration/remove_concurrent_index_spec.rb spec/lib/gitlab/chat_name_token_spec.rb spec/graphql/types/customer_relations/organization_sort_enum_spec.rb spec/initializers/google_api_client_spec.rb spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb spec/lib/gitlab/audit/null_target_spec.rb spec/workers/repository_check/clear_worker_spec.rb spec/lib/gitlab/database/postgres_hll/buckets_spec.rb spec/initializers/rack_multipart_patch_spec.rb spec/models/ci/trigger_request_spec.rb spec/graphql/types/ci/group_variable_type_spec.rb spec/lib/gitlab/database/migrations/observers/query_log_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/server_spec.rb spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb spec/scripts/generate_failed_package_and_test_mr_message_spec.rb spec/models/group/crm_settings_spec.rb spec/graphql/types/branch_rules/branch_protection_type_spec.rb spec/lib/gitlab/utils/merge_hash_spec.rb spec/lib/gitlab/database/grant_spec.rb spec/lib/api/entities/projects/repository_storage_move_spec.rb spec/models/namespaces/user_namespace_spec.rb spec/graphql/types/issue_state_enum_spec.rb spec/services/bulk_imports/get_importable_data_service_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb spec/initializers/rack_VULNDB-255039_patch_spec.rb spec/workers/system_hook_push_worker_spec.rb spec/rubocop/cop/rspec/modify_sidekiq_middleware_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb spec/models/namespace_ci_cd_setting_spec.rb spec/helpers/admin/components_helper_spec.rb spec/graphql/types/packages/conan/metadatum_type_spec.rbwarning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.765/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN766/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here767/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION768/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here769/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE770/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here771/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS772/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here773Run options: exclude {:quarantine=>true, :level=>"background_migration"}774Test environment set up in 0.480839431 seconds775gitlab:backup namespace rake tasks776 lock parallel backups777 when a process is running in parallel778 exits the new process779 when no process is running in parallel but a PID file exists780 rewrites, locks and deletes the PID file while logging a message781 when no process is running in parallel782 task_name: "db", rake_task: "gitlab:backup:db:restore"783 locks and deletes the PID file while logging a message784 task_name: "repositories", rake_task: "gitlab:backup:repo:restore"785 locks and deletes the PID file while logging a message786 task_name: "builds", rake_task: "gitlab:backup:builds:restore"787 locks and deletes the PID file while logging a message788 task_name: "uploads", rake_task: "gitlab:backup:uploads:restore"789 locks and deletes the PID file while logging a message790 task_name: "artifacts", rake_task: "gitlab:backup:artifacts:restore"791 locks and deletes the PID file while logging a message792 task_name: "pages", rake_task: "gitlab:backup:pages:restore"793 locks and deletes the PID file while logging a message794 task_name: "lfs", rake_task: "gitlab:backup:lfs:restore"795 locks and deletes the PID file while logging a message796 task_name: "terraform_state", rake_task: "gitlab:backup:terraform_state:restore"797 locks and deletes the PID file while logging a message798 task_name: "registry", rake_task: "gitlab:backup:registry:restore"799 locks and deletes the PID file while logging a message800 task_name: "packages", rake_task: "gitlab:backup:packages:restore"801 locks and deletes the PID file while logging a message802 backup_restore803 with gitlab version804 when restore matches gitlab version805 invokes restoration on match806 when the restore directory is not empty807 removes stale data808 when the backup is restored809 restores the data810 backup811 with specific backup tasks812 prints a progress message to stdout8132023-06-02 06:24:06 UTC -- Dumping database ... [SKIPPED]8142023-06-02 06:24:06 UTC -- Deleting backup and restore PID file ... done8152023-06-02 06:24:06 UTC -- Dumping repositories ... 816{"command":"create","gl_project_path":"namespace5/project-5","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.git","storage_name":"default","time":"2023-06-02T06:24:06.565Z"}817{"command":"create","gl_project_path":"namespace5/project-5.wiki","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.wiki.git","storage_name":"default","time":"2023-06-02T06:24:06.569Z"}818{"command":"create","error":"manager: repository empty: repository skipped","gl_project_path":"namespace5/project-5.wiki","level":"warning","msg":"skipped create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.wiki.git","storage_name":"default","time":"2023-06-02T06:24:06.570Z"}819{"command":"create","gl_project_path":"namespace5/project-5.design","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.design.git","storage_name":"default","time":"2023-06-02T06:24:06.587Z"}820{"command":"create","error":"manager: repository empty: repository skipped","gl_project_path":"namespace5/project-5.design","level":"warning","msg":"skipped create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.design.git","storage_name":"default","time":"2023-06-02T06:24:06.588Z"}821{"command":"create","gl_project_path":"namespace5/project-5","level":"info","msg":"completed create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.git","storage_name":"default","time":"2023-06-02T06:24:06.667Z"}8222023-06-02 06:24:06 UTC -- Dumping repositories ... done8232023-06-02 06:24:06 UTC -- Deleting backup and restore PID file ... done8242023-06-02 06:24:06 UTC -- Dumping uploads ... 8252023-06-02 06:24:06 UTC -- Dumping uploads ... done8262023-06-02 06:24:06 UTC -- Deleting backup and restore PID file ... done8272023-06-02 06:24:06 UTC -- Dumping builds ... 8282023-06-02 06:24:06 UTC -- Dumping builds ... done8292023-06-02 06:24:06 UTC -- Deleting backup and restore PID file ... done8302023-06-02 06:24:06 UTC -- Dumping artifacts ... 8312023-06-02 06:24:06 UTC -- Dumping artifacts ... done8322023-06-02 06:24:06 UTC -- Deleting backup and restore PID file ... done8332023-06-02 06:24:06 UTC -- Dumping pages ... 8342023-06-02 06:24:07 UTC -- Dumping pages ... done8352023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done8362023-06-02 06:24:07 UTC -- Dumping lfs objects ... 8372023-06-02 06:24:07 UTC -- Dumping lfs objects ... done8382023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done8392023-06-02 06:24:07 UTC -- Dumping terraform states ... 8402023-06-02 06:24:07 UTC -- Dumping terraform states ... done8412023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done8422023-06-02 06:24:07 UTC -- Dumping container registry images ... 8432023-06-02 06:24:07 UTC -- Dumping container registry images ... done8442023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done8452023-06-02 06:24:07 UTC -- Dumping packages ... 8462023-06-02 06:24:07 UTC -- Dumping packages ... done8472023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done8482023-06-02 06:24:07 UTC -- Dumping ci secure files ... 8492023-06-02 06:24:07 UTC -- Dumping ci secure files ... done8502023-06-02 06:24:07 UTC -- Deleting backup and restore PID file ... done851 logs the progress to log file852 backup create fails853 backup_class: Backup::Database, rake_task: "gitlab:backup:db:create", error: #<Backup::DatabaseBackupError: Backup::DatabaseBackupError>854 raises an error with message855 backup_class: Backup::Files, rake_task: "gitlab:backup:builds:create", error: #<Backup::FileBackupError: Backup::FileBackupError>856 raises an error with message857 backup_class: Backup::Files, rake_task: "gitlab:backup:uploads:create", error: #<Backup::FileBackupError: Backup::FileBackupError>858 raises an error with message859 backup_class: Backup::Files, rake_task: "gitlab:backup:artifacts:create", error: #<Backup::FileBackupError: Backup::FileBackupError>860 raises an error with message861 backup_class: Backup::Files, rake_task: "gitlab:backup:pages:create", error: #<Backup::FileBackupError: Backup::FileBackupError>862 raises an error with message863 backup_class: Backup::Files, rake_task: "gitlab:backup:lfs:create", error: #<Backup::FileBackupError: Backup::FileBackupError>864 raises an error with message865 backup_class: Backup::Files, rake_task: "gitlab:backup:registry:create", error: #<Backup::FileBackupError: Backup::FileBackupError>866 raises an error with message867 with tar creation868 sets correct permissions on the tar contents869 deletes temp directories870 with archive file permissions871 sets correct permissions on the tar file872 with custom archive_permissions873 uses the custom permissions874 when registry is disabled875 does not create registry.tar.gz876 with multiple repository storages877 with no concurrency878 behaves like includes repositories in all repository storages879 aggregate_failures880 with concurrency881 behaves like includes repositories in all repository storages882 aggregate_failures883 when REPOSITORIES_STORAGES is set884 includes repositories in default repository storage885 with concurrency settings886 passes through concurrency environment variables887 when CRON env is set888 does not output to stdout889 skipping items in a backup890 does not contain repositories and uploads891 does not invoke restore of repositories and uploads892 skipping tar archive creation893 created files with backup content and no tar archive894 those component files can be restored from895 Human Readable Backup Name896 name has human readable time897Issue898 Associations899 is expected to belong to milestone required: false900 is expected to belong to project required: false901 is expected to belong to work_item_type class_name => WorkItems::Type required: false902 is expected to belong to moved_to class_name => Issue required: false903 is expected to have one moved_from class_name => Issue904 is expected to belong to duplicated_to class_name => Issue required: false905 is expected to belong to closed_by class_name => User required: false906 is expected to have many assignees907 is expected to have many user_mentions class_name => IssueUserMention908 is expected to have many designs909 is expected to have many design_versions910 is expected to have one sentry_issue911 is expected to have one alert_management_alert912 is expected to have many alert_management_alerts913 is expected to have many resource_milestone_events914 is expected to have many resource_state_events915 is expected to have and belong to many prometheus_alert_events916 is expected to have and belong to many self_managed_prometheus_alert_events917 is expected to have many prometheus_alerts918 is expected to have many issue_email_participants919 is expected to have one email920 is expected to have many timelogs921 is expected to have one incident_management_issuable_escalation_status922 is expected to have many issue_customer_relations_contacts923 is expected to have many customer_relations_contacts924 is expected to have many incident_management_timeline_events925 is expected to have many assignment_events class_name => ResourceEvents::IssueAssignmentEvent inverse_of => issue926 versions.most_recent927 returns the most recent version928 modules929 is expected to includes the Issuable module930 is expected to includes the Referable module931 is expected to includes the Sortable module932 is expected to includes the Taskable module933 is expected to includes the MilestoneEventable module934 is expected to includes the StateEventable module935 behaves like AtomicInternalId936 .has_internal_id937 Module inclusion938 is expected to includes the AtomicInternalId module939 Validation940 when presence validation is required941 when creating an object942 raises an error if the internal id is blank943 when updating an object944 raises an error if the internal id is blank945 when presence validation is not required946 when creating an object947 does not raise an error if the internal id is blank (PENDING: No reason given)948 when updating an object949 does not raise an error if the internal id is blank (PENDING: No reason given)950 Creating an instance951 saves a new instance properly952 internal id generation953 calls InternalId.generate_next and sets internal id attribute954 does not overwrite an existing internal id955 when the instance has an internal ID set956 calls InternalId.update_last_value and sets the `last_value` to that of the instance957 unsetting the instance internal id on rollback958 when the internal id has been changed959 when the internal id is automatically set960 clears it on the instance961 when the internal id is manually set962 does not clear it on the instance963 when the internal id has not been changed964 preserves the value on the instance965 supply of internal ids966 provides a persistent supply of IID values, sensitive to the current state967 #reset_scope_internal_id_attribute968 rewinds the allocated IID969 allocates the same IID970 validations971 is expected not to allow :confidential to be ‹nil›972 is expected to allow :confidential to be ‹true› or ‹false›973 custom validations974 due_date_after_start_date975 when both values are not present976 is expected to be truthy977 when start date is present and due date is not978 is expected to be truthy979 when due date is present and start date is not980 is expected to be truthy981 when both date values are present982 when due date is greater than start date983 is expected to be truthy984 when due date is equal to start date985 is expected to be truthy986 when due date is before start date987 is expected to be falsey988 adds an error message989 issue_type990 when a valid type991 is expected to eq true992 empty type993 is expected to eq false994 #allowed_work_item_type_change995 old_type: :issue, new_type: :incident, is_valid: true996 is possible to change type only between selected types997 old_type: :incident, new_type: :issue, is_valid: true998 is possible to change type only between selected types999 old_type: :test_case, new_type: :issue, is_valid: true1000 is possible to change type only between selected types1001 old_type: :issue, new_type: :test_case, is_valid: true1002 is possible to change type only between selected types1003 old_type: :issue, new_type: :task, is_valid: false1004 is possible to change type only between selected types1005 old_type: :test_case, new_type: :task, is_valid: false1006 is possible to change type only between selected types1007 old_type: :incident, new_type: :task, is_valid: false1008 is possible to change type only between selected types1009 old_type: :task, new_type: :issue, is_valid: false1010 is possible to change type only between selected types1011 old_type: :task, new_type: :incident, is_valid: false1012 is possible to change type only between selected types1013 old_type: :task, new_type: :test_case, is_valid: false1014 is possible to change type only between selected types1015 confidentiality1016 when parent and child are confidential1017 does not allow to make child not-confidential1018 allows to make parent not-confidential1019 when parent and child are not-confidential1020 does not allow to make parent confidential1021 allows to make child confidential1022 callbacks1023 #ensure_metrics!1024 creates metrics after saving1025 does not create duplicate metrics for an issue1026 records current metrics1027 when metrics record is missing1028 creates the metrics record1029 #ensure_work_item_type1030 when a type was already set1031 does not fetch a work item type from the DB1032 does not fetch a work item type from the DB when updating the type1033 ensures a work item type if updated to nil1034 when no type was set1035 sets a work item type before validation1036 does not fetch type from DB if provided during update1037 #check_issue_type_in_sync1038 raises an error if issue_type is out of sync1039 uses attributes to compare both issue_type values1040 #record_create_action1041 records the creation action after saving1042 behaves like issue_edit snowplow tracking1043 behaves like Snowplow event tracking with RedisHLL context1044 behaves like Snowplow event tracking1045 is emitted1046 issue namespace1047 sets the namespace_id1048 when issue is created1049 sets the namespace_id1050 when existing issue is saved1051 sets the namespace id1052 order by upvotes1053 .order_upvotes_desc1054 orders on upvotes1055 .order_upvotes_asc1056 orders on upvotes1057 .with_alert_management_alerts1058 gets only issues with alerts1059 .simple_sorts1060 includes all keys1061 .with_issue_type1062 returns issues with the given issue type1063 returns issues with the given issue types1064 uses the work_item_types table for filtering1065 when the issue_type_uses_work_item_types_table feature flag is disabled1066 uses the issue_type column for filtering1067 .without_issue_type1068 returns issues without the given issue type1069 returns issues without the given issue types1070 uses the work_item_types table for filtering1071 when the issue_type_uses_work_item_types_table feature flag is disabled1072 uses the issue_type column for filtering1073 .order_severity1074 sorting ascending1075 is expected to eq [#<Issue id:81 namespace69/project-69#1>, #<Issue id:80 namespace68/project-68#1>, #<Issue id:79 namespace67/project-67#1>]1076 sorting descending1077 is expected to eq [#<Issue id:79 namespace67/project-67#1>, #<Issue id:80 namespace68/project-68#1>, #<Issue id:81 namespace69/project-69#1>]1078 .order_title1079 sorting ascending1080 is expected to eq [#<Issue id:83 namespace71/project-71#1>, #<Issue id:84 namespace72/project-72#1>, #<Issue id:85 namespace73/project-73#1>, #<Issue id:82 namespace70/project-70#1>]1081 sorting descending1082 is expected to eq [#<Issue id:82 namespace70/project-70#1>, #<Issue id:85 namespace73/project-73#1>, #<Issue id:84 namespace72/project-72#1>, #<Issue id:83 namespace71/project-71#1>]1083 #order_by_relative_position1084 returns ordered list1085 order by escalation status1086 .order_escalation_status_asc1087 is expected to eq [#<Issue id:90 namespace74/project-74#1>, #<Issue id:91 namespace75/project-75#1>, #<Issue id:92 namespace76/project-76#1>]1088 .order_escalation_status_desc1089 is expected to eq [#<Issue id:91 namespace75/project-75#1>, #<Issue id:90 namespace74/project-74#1>, #<Issue id:92 namespace76/project-76#1>]1090 #sort1091 by relative_position1092 sorts asc with nulls at the end1093 #card_attributes1094 includes the author name1095 includes the assignee name1096 #close1097 sets closed_at to Time.current when an issue is closed1098 changes the state to closed1099 when an argument is provided1100 and the argument is a User1101 changes closed_by to the given user1102 and the argument is a not a User1103 does not change closed_by1104 when an argument is not provided1105 does not change closed_by1106 #reopen1107 sets closed_at to nil when an issue is reopened1108 sets closed_by to nil when an issue is reopened1109 clears moved_to_id for moved issues1110 clears duplicated_to_id for duplicated issues1111 changes the state to opened1112 #to_reference1113 when nil argument1114 returns issue id1115 returns complete path to the issue with full: true1116 when argument is a project1117 when same project1118 returns issue id1119 returns full reference with full: true1120 when cross-project in same namespace1121 returns a cross-project reference1122 when cross-project in different namespace1123 returns complete path to the issue1124 when argument is a namespace1125 when same as issue1126 returns path to the issue with the project name1127 returns full reference with full: true1128 when different to issue namespace1129 returns full path to the issue with full: true1130 #to_reference with table syntax1131 issue: project_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }1132 returns correct reference1133 issue: project_issue, full: true, from: nil, result: project_issue_full_reference1134 returns correct reference1135 issue: project_issue, full: false, from: group, result: lazy { "#{project.path}##{issue.iid}" }1136 returns correct reference1137 issue: project_issue, full: true, from: group, result: project_issue_full_reference1138 returns correct reference1139 issue: project_issue, full: false, from: parent, result: project_issue_full_reference1140 returns correct reference1141 issue: project_issue, full: true, from: parent, result: project_issue_full_reference1142 returns correct reference1143 issue: project_issue, full: false, from: project, result: lazy { "##{issue.iid}" }1144 returns correct reference1145 issue: project_issue, full: true, from: project, result: project_issue_full_reference1146 returns correct reference1147 issue: project_issue, full: false, from: project_namespace, result: lazy { "##{issue.iid}" }1148 returns correct reference1149 issue: project_issue, full: true, from: project_namespace, result: project_issue_full_reference1150 returns correct reference1151 issue: project_issue, full: false, from: same_namespace_project, result: lazy { "#{project.path}##{issue.iid}" }1152 returns correct reference1153 issue: project_issue, full: true, from: same_namespace_project, result: project_issue_full_reference1154 returns correct reference1155 issue: project_issue, full: false, from: same_namespace_project_namespace, result: lazy { "#{project.path}##{issue.iid}" }1156 returns correct reference1157 issue: project_issue, full: true, from: same_namespace_project_namespace, result: project_issue_full_reference1158 returns correct reference1159 issue: project_issue, full: false, from: another_group, result: project_issue_full_reference1160 returns correct reference1161 issue: project_issue, full: true, from: another_group, result: project_issue_full_reference1162 returns correct reference1163 issue: project_issue, full: false, from: another_namespace_project, result: project_issue_full_reference1164 returns correct reference1165 issue: project_issue, full: true, from: another_namespace_project, result: project_issue_full_reference1166 returns correct reference1167 issue: project_issue, full: false, from: another_namespace_project_namespace, result: project_issue_full_reference1168 returns correct reference1169 issue: project_issue, full: true, from: another_namespace_project_namespace, result: project_issue_full_reference1170 returns correct reference1171 issue: project_issue, full: false, from: user_namespace, result: project_issue_full_reference1172 returns correct reference1173 issue: project_issue, full: true, from: user_namespace, result: project_issue_full_reference1174 returns correct reference1175 issue: group_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }1176 returns correct reference1177 issue: group_issue, full: true, from: nil, result: group_issue_full_reference1178 returns correct reference1179 issue: group_issue, full: false, from: user_namespace, result: group_issue_full_reference1180 returns correct reference1181 issue: group_issue, full: true, from: user_namespace, result: group_issue_full_reference1182 returns correct reference1183 issue: group_issue, full: false, from: group, result: lazy { "##{issue.iid}" }1184 returns correct reference1185 issue: group_issue, full: true, from: group, result: group_issue_full_reference1186 returns correct reference1187 issue: group_issue, full: false, from: parent, result: lazy { "#{group.path}##{issue.iid}" }1188 returns correct reference1189 issue: group_issue, full: true, from: parent, result: group_issue_full_reference1190 returns correct reference1191 issue: group_issue, full: false, from: project, result: lazy { "#{group.path}##{issue.iid}" }1192 returns correct reference1193 issue: group_issue, full: true, from: project, result: group_issue_full_reference1194 returns correct reference1195 issue: group_issue, full: false, from: project_namespace, result: lazy { "#{group.path}##{issue.iid}" }1196 returns correct reference1197 issue: group_issue, full: true, from: project_namespace, result: group_issue_full_reference1198 returns correct reference1199 issue: group_issue, full: false, from: another_group, result: group_issue_full_reference1200 returns correct reference1201 issue: group_issue, full: true, from: another_group, result: group_issue_full_reference1202 returns correct reference1203 issue: group_issue, full: false, from: another_namespace_project, result: group_issue_full_reference1204 returns correct reference1205 issue: group_issue, full: true, from: another_namespace_project, result: group_issue_full_reference1206 returns correct reference1207 issue: group_issue, full: false, from: another_namespace_project_namespace, result: group_issue_full_reference1208 returns correct reference1209 issue: group_issue, full: true, from: another_namespace_project_namespace, result: group_issue_full_reference1210 returns correct reference1211 issue: user_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }1212 returns correct reference1213 issue: user_issue, full: true, from: nil, result: user_issue_full_reference1214 returns correct reference1215 issue: user_issue, full: false, from: user_namespace, result: lazy { "##{issue.iid}" }1216 returns correct reference1217 issue: user_issue, full: true, from: user_namespace, result: user_issue_full_reference1218 returns correct reference1219 issue: user_issue, full: false, from: group, result: user_issue_full_reference1220 returns correct reference1221 issue: user_issue, full: true, from: group, result: user_issue_full_reference1222 returns correct reference1223 issue: user_issue, full: false, from: parent, result: user_issue_full_reference1224 returns correct reference1225 issue: user_issue, full: true, from: parent, result: user_issue_full_reference1226 returns correct reference1227 issue: user_issue, full: false, from: project, result: user_issue_full_reference1228 returns correct reference1229 issue: user_issue, full: true, from: project, result: user_issue_full_reference1230 returns correct reference1231 issue: user_issue, full: false, from: project_namespace, result: user_issue_full_reference1232 returns correct reference1233 issue: user_issue, full: true, from: project_namespace, result: user_issue_full_reference1234 returns correct reference1235 issue: user_issue, full: false, from: another_group, result: user_issue_full_reference1236 returns correct reference1237 issue: user_issue, full: true, from: another_group, result: user_issue_full_reference1238 returns correct reference1239 issue: user_issue, full: false, from: another_namespace_project, result: user_issue_full_reference1240 returns correct reference1241 issue: user_issue, full: true, from: another_namespace_project, result: user_issue_full_reference1242 returns correct reference1243 issue: user_issue, full: false, from: another_namespace_project_namespace, result: user_issue_full_reference1244 returns correct reference1245 issue: user_issue, full: true, from: another_namespace_project_namespace, result: user_issue_full_reference1246 returns correct reference1247 #assignee_or_author?1248 returns true for a user that is assigned to an issue1249 returns true for a user that is the author of an issue1250 returns false for a user that is not the assignee or author1251 #related_issues to relate incidents and issues1252 returns only authorized related issues for given user1253 returns issues with valid issue_link_type1254 returns issues including the link creation time1255 returns issues including the link update time1256 when a user cannot read cross project1257 only returns issues within the same project1258 #can_move?1259 user is not a member of project issue belongs to1260 is expected to eq false1261 user is reporter in project issue belongs to1262 is expected to eq true1263 issue not persisted1264 is expected to eq false1265 checking destination project also1266 destination project allowed1267 is expected to eq true1268 destination project not allowed1269 is expected to eq false1270 #moved?1271 when issue has not been moved1272 is expected not to be moved1273 when issue has already been moved1274 is expected to be moved1275 #duplicated?1276 issue not duplicated1277 is expected to eq false1278 issue already duplicated1279 is expected to eq true1280 #from_service_desk?1281 when issue author is support bot1282 is expected to be truthy1283 when issue author is not support bot1284 is expected to be falsey1285 #suggested_branch_name1286 #to_branch_name does not exists1287 returns #to_branch_name1288 #to_branch_name exists not ending with -index1289 returns #to_branch_name ending with -21290 #to_branch_name exists ending with -index1291 returns #to_branch_name ending with max index + 11292 when branch name still exists after 5 attempts1293 returns #to_branch_name ending with random characters1294 behaves like an editable mentionable1295 creates new cross-reference notes when the mentionable text is edited1296 behaves like a mentionable1297 generates a descriptive back-reference1298 extracts references from its reference property1299 creates cross-reference notes1300 when there are cached markdown fields1301 sends in cached markdown fields when appropriate1302 when there are cached markdown fields1303 refreshes markdown cache if necessary1304 when the markdown cache is stale1305 persists the refreshed cache so that it does not have to be refreshed every time1306 behaves like a Taskable1307 with multiple tasks1308 returns the correct task status1309 #tasks?1310 returns true when object has tasks1311 returns false when object has no tasks1312 with nested tasks1313 returns the correct task status1314 with an incomplete task1315 returns the correct task status1316 with tasks that are not formatted correctly1317 returns the correct task status1318 with a complete task1319 returns the correct task status1320 with tasks in blockquotes1321 returns the correct task status1322 .to_branch_name1323 parameterizes arguments and joins with dashes1324 preserves the case in the first argument1325 truncates branch name to at most 100 characters1326 truncates dangling parts of the branch name1327 takes issue branch template into account1328 #to_branch_name1329 returns a branch name with the issue title if not confidential1330 returns a generic branch name if confidential1331 #can_be_worked_on?1332 is expected to be can be worked on1333 is closed1334 is expected not to be can be worked on1335 project is forked1336 is expected not to be can be worked on1337 #participants1338 behaves like issuable participants1339 when resource parent is public1340 and users are referenced on notes1341 includes the issue author1342 includes the authors of the notes1343 and note is confidential1344 and mentions users1345 only includes users that can read the note as participants1346 using a private project1347 does not include mentioned users that do not have access to the project1348 cached counts1349 updates when assignees change1350 #visible_to_user?1351 with a project1352 returns false when feature is disabled1353 without a user1354 with issue available as public1355 returns true when the issue is publicly visible1356 returns false when the issue is not publicly visible1357 with issues available only to team members in a public project1358 returns false1359 with a user1360 with an admin user1361 when admin mode is enabled1362 behaves like issue readable by user1363 is expected to eq true1364 behaves like confidential issue readable by user1365 is expected to eq true1366 behaves like hidden issue readable by user1367 is expected to eq true1368 when admin mode is disabled1369 behaves like issue not readable by user1370 is expected to eq false1371 behaves like confidential issue not readable by user1372 is expected to eq false1373 behaves like hidden issue not readable by user1374 is expected to eq false1375 with an owner1376 behaves like issue readable by user1377 is expected to eq true1378 behaves like confidential issue readable by user1379 is expected to eq true1380 behaves like hidden issue not readable by user1381 is expected to eq false1382 with a reporter user1383 behaves like issue readable by user1384 is expected to eq true1385 behaves like confidential issue readable by user1386 is expected to eq true1387 behaves like hidden issue not readable by user1388 is expected to eq false1389 with a guest user1390 behaves like issue readable by user1391 is expected to eq true1392 behaves like confidential issue not readable by user1393 is expected to eq false1394 behaves like hidden issue not readable by user1395 is expected to eq false1396 when user is an assignee1397 behaves like issue readable by user1398 is expected to eq true1399 behaves like confidential issue readable by user1400 is expected to eq true1401 behaves like hidden issue not readable by user1402 is expected to eq false1403 when user is the author1404 behaves like issue readable by user1405 is expected to eq true1406 behaves like confidential issue readable by user1407 is expected to eq true1408 behaves like hidden issue not readable by user1409 is expected to eq false1410 with a user that is not a member1411 using a public project1412 behaves like issue readable by user1413 is expected to eq true1414 behaves like confidential issue not readable by user1415 is expected to eq false1416 behaves like hidden issue not readable by user1417 is expected to eq false1418 using an internal project1419 using an internal user1420 behaves like issue readable by user1421 is expected to eq true1422 behaves like confidential issue not readable by user1423 is expected to eq false1424 behaves like hidden issue not readable by user1425 is expected to eq false1426 using an external user1427 behaves like issue not readable by user1428 is expected to eq false1429 behaves like confidential issue not readable by user1430 is expected to eq false1431 behaves like hidden issue not readable by user1432 is expected to eq false1433 using an external user1434 behaves like issue not readable by user1435 is expected to eq false1436 behaves like confidential issue not readable by user1437 is expected to eq false1438 behaves like hidden issue not readable by user1439 is expected to eq false1440 with an external authentication service1441 is `false` when an external authorization service is enabled1442 checks the external service to determine if an issue is readable by a user1443 does not check the external service if a user does not have access to the project1444 with an admin1445 when admin mode is enabled1446 does not check the external webservice1447 when admin mode is disabled1448 checks the external service to determine if an issue is readable by the admin1449 when issue is moved to a private project1450 when user is the author of the original issue1451 behaves like issue visible if user has guest access1452 when user is not a member1453 behaves like issue not readable by user1454 is expected to eq false1455 behaves like confidential issue not readable by user1456 is expected to eq false1457 when user is a guest1458 behaves like issue readable by user1459 is expected to eq true1460 behaves like confidential issue readable by user1461 is expected to eq true1462 when user is an assignee in the original issue1463 behaves like issue visible if user has guest access1464 when user is not a member1465 behaves like issue not readable by user1466 is expected to eq false1467 behaves like confidential issue not readable by user1468 is expected to eq false1469 when user is a guest1470 behaves like issue readable by user1471 is expected to eq true1472 behaves like confidential issue readable by user1473 is expected to eq true1474 when user is not the author or an assignee in original issue1475 when user is a guest1476 behaves like issue readable by user1477 is expected to eq true1478 behaves like confidential issue not readable by user1479 is expected to eq false1480 when user is a reporter1481 behaves like issue readable by user1482 is expected to eq true1483 behaves like confidential issue readable by user1484 is expected to eq true1485 #publicly_visible?1486 using a public project1487 returns true for a regular issue1488 returns false for a confidential issue1489 using an internal project1490 returns false for a regular issue1491 returns false for a confidential issue1492 using a private project1493 returns false for a regular issue1494 returns false for a confidential issue1495 #check_for_spam?1496 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true1497 checks for spam when necessary1498 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:title=>"new"}, check_for_spam?: true1499 checks for spam when necessary1500 support_bot?: false, visibility_level: 20, confidential: true, new_attributes: {:confidential=>false}, check_for_spam?: true1501 checks for spam when necessary1502 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:confidential=>true}, check_for_spam?: false1503 checks for spam when necessary1504 support_bot?: false, visibility_level: 20, confidential: true, new_attributes: {:description=>"new"}, check_for_spam?: false1505 checks for spam when necessary1506 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:title=>"new", :confidential=>true}, check_for_spam?: false1507 checks for spam when necessary1508 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:description=>"original description"}, check_for_spam?: false1509 checks for spam when necessary1510 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:weight=>3}, check_for_spam?: false1511 checks for spam when necessary1512 support_bot?: false, visibility_level: 10, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: false1513 checks for spam when necessary1514 support_bot?: false, visibility_level: 0, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: false1515 checks for spam when necessary1516 support_bot?: true, visibility_level: 20, confidential: true, new_attributes: {:confidential=>false}, check_for_spam?: true1517 checks for spam when necessary1518 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:confidential=>true}, check_for_spam?: false1519 checks for spam when necessary1520 support_bot?: true, visibility_level: 20, confidential: true, new_attributes: {:description=>"new"}, check_for_spam?: true1521 checks for spam when necessary1522 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:title=>"new", :confidential=>true}, check_for_spam?: true1523 checks for spam when necessary1524 support_bot?: true, visibility_level: 10, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true1525 checks for spam when necessary1526 support_bot?: true, visibility_level: 0, confidential: false, new_attributes: {:title=>"new"}, check_for_spam?: true1527 checks for spam when necessary1528 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:description=>"original description"}, check_for_spam?: false1529 checks for spam when necessary1530 support_bot?: true, visibility_level: 0, confidential: true, new_attributes: {:weight=>3}, check_for_spam?: false1531 checks for spam when necessary1532 removing an issue1533 refreshes the number of open issues of the project1534 .public_only1535 only returns public issues1536 .confidential_only1537 only returns confidential_only issues1538 .without_hidden1539 only returns without_hidden issues1540 .by_project_id_and_iid1541 behaves like a where_composite scope1542 we pass an empty array1543 returns a null relation1544 we pass nil1545 returns a null relation1546 we pass a singleton composite id1547 finds the first result1548 we pass group of ids1549 finds all the results1550 performance1551 is not O(N)1552 .service_desk1553 returns the service desk issue1554 behaves like throttled touch1555 #touch1556 updates the updated_at timestamp1557 updates the object at most once per minute1558 relative positioning1559 is not blocked for repositioning by default1560 behaves like a class that supports relative positioning1561 #scoped_items1562 includes all items with the same scope1563 #relative_siblings1564 includes all items with the same scope, except self1565 .move_nulls_to_end1566 moves items with null relative_position to the end1567 preserves relative position1568 moves the item near the start position when there are no existing positions1569 does not perform any moves if all items have their relative_position set1570 manages to move nulls to the end even if there is a sequence at the end1571 manages to move nulls to the end even if there is not enough space1572 manages to move nulls to the end, stacking if we cannot create enough space1573 manages to move nulls found in the relative scope1574 can move many nulls1575 does not have an N+1 issue1576 .move_nulls_to_start1577 moves items with null relative_position to the start1578 moves the item near the start position when there are no existing positions1579 preserves relative position1580 does not perform any moves if all items have their relative_position set1581 manages to move nulls to the start even if there is not enough space1582 manages to move nulls to the end, stacking if we cannot create enough space1583 #move_before1584 moves item before1585 can move the item before an item at the start1586 can move the item before an item at MIN_POSITION1587 can move the item before an item bunched up at MIN_POSITION1588 when there is no space1589 moves items correctly1590 leap-frogging to the left1591 can leap-frog STEPS times before needing to rebalance1592 there is no space to the left after moving STEPS times1593 rebalances to the right1594 #move_after1595 moves item after1596 can move the item after an item bunched up at MAX_POSITION1597 when there is no space1598 can move the item after an item at MAX_POSITION1599 moves items correctly1600 leap-frogging1601 rebalances after STEPS jumps1602 #move_to_start1603 places items at most IDEAL_DISTANCE from the start when the range is open1604 moves item to the end1605 positions the item at MIN_POSITION when there is only one space left1606 rebalances when there is already an item at the MIN_POSITION1607 deals with a run of elements at the start1608 #move_to_end1609 places items at most IDEAL_DISTANCE from the start when the range is open1610 moves item to the end1611 positions the item at MAX_POSITION when there is only one space left1612 rebalances when there is already an item at the MAX_POSITION1613 deals with a run of elements at the end1614 #move_between1615 positions item between two other1616 positions item between on top1617 positions item between to end1618 positions items even when after and before positions are the same1619 positions item in the middle of other two if distance is big enough1620 positions item closer to the middle if we are at the very top1621 positions item closer to the middle if we are at the very bottom1622 positions item in the middle of other two1623 positions item right if we pass non-sequential parameters1624 avoids N+1 queries when rebalancing other items1625 the two items are next to each other1626 behaves like moves item between1627 moves the middle item to between left and right1628 there is no space1629 behaves like moves item between1630 moves the middle item to between left and right1631 there is a bunch of items1632 handles bunches correctly1633 behaves like moves item between1634 moves the middle item to between left and right1635 when block_issue_repositioning flag is enabled for group1636 is blocked for repositioning1637 does not move issues with null position1638 behaves like versioned description1639 associations1640 is expected to have many description_versions1641 save_description_version1642 when description was changed1643 saves the old and new description for the first update1644 only saves the new description for subsequent updates1645 sets the new description version to `saved_description_version`1646 clears `saved_description_version` after another save that does not change description1647 when description was not changed1648 does not save any description version1649 #previous_updated_at1650 returns updated_at value if updated_at did not change at all1651 returns updated_at value if `previous_changes` has nil value for `updated_at`1652 returns updated_at value if previous updated_at value is not present1653 returns previous updated_at when present1654 #design_collection1655 returns a design collection1656 current designs1657 an issue has no designs1658 is expected to be empty1659 an issue only has current designs1660 is expected to include #<DesignManagement::Design id:7 namespace34/project-34#1/designs[homescreen-7.jpg]>, #<DesignManagement::Design id:8 namespace34/project-34#1/designs[homescreen-8.jpg]>, and #<DesignManagement::Design id:9 namespace34/project-34#1/designs[homescreen-9.jpg]>1661 an issue only has deleted designs1662 is expected to be empty1663 an issue has a mixture of current and deleted designs1664 is expected to contain exactly #<DesignManagement::Design id:13 namespace34/project-34#1/designs[homescreen-13.jpg]> and #<DesignManagement::Design id:15 namespace34/project-34#1/designs[homescreen-15.jpg]>1665 banzai_render_context1666 sets the label_url_method in the context1667 scheduling rebalancing1668 when project in user namespace1669 behaves like schedules issues rebalancing1670 schedules rebalancing if there is no space left1671 when project in a group namespace1672 behaves like schedules issues rebalancing1673 schedules rebalancing if there is no space left1674 #allows_reviewers?1675 returns false as we do not support reviewers on issues yet1676 #issue_type1677 when the issue_type_uses_work_item_types_table feature flag is enabled1678 gets the type field from the work_item_types table1679 when the issue is not persisted1680 uses the default work item type1681 when the issue_type_uses_work_item_types_table feature flag is disabled1682 does not get the value from the work_item_types table1683 when the issue is not persisted1684 uses the default work item type1685 #issue_type_supports?1686 raises error when feature is invalid1687 #supports_assignee?1688 is expected to eq true1689 is expected to eq true1690 is expected to eq false1691 is expected to eq false1692 is expected to eq true1693 is expected to eq true1694 is expected to eq true1695 #supports_time_tracking?1696 issue_type: :issue, supports_time_tracking: true1697 is expected to eq true1698 issue_type: :incident, supports_time_tracking: true1699 is expected to eq true1700 #supports_move_and_clone?1701 issue_type: :issue, supports_move_and_clone: true1702 is expected to eq true1703 issue_type: :incident, supports_move_and_clone: true1704 is expected to eq true1705 #email_participants_emails1706 returns a list of emails1707 #email_participants_downcase1708 returns a list of emails with all uppercase letters replaced with their lowercase counterparts1709 #escalation_status1710 returns the incident_management_issuable_escalation_status association1711 #expire_etag_cache1712 touches the etag cache store1713 #link_reference_pattern1714 with issue url1715 matches with expected attributes1716 with incident url1717 matches with expected attributes1718 order by closed_at1719 .order_closed_at_asc1720 orders on closed at1721 .order_closed_at_desc1722 orders on closed at1723 #full_search1724 when searching non-english terms1725 adds extra where clause to match partial index1726 adds extra where clause to match partial index1727 adds extra where clause to match partial index1728 adds extra where clause to match partial index1729 #work_item_type_with_default1730 is expected to eq #<WorkItems::Type id: 1, base_type: "issue", cached_markdown_version: 2097152, name: "Issue", descrip...reated_at: "2023-06-02 06:23:22.541117000 +0000", updated_at: "2023-06-02 06:23:22.541117000 +0000">1731 #unsubscribe_email_participant1732 deletes email for issue11733 does not delete email for issue2 when issue1 is used1734 issue_type enum generated methods1735 issue_type: "issue"1736 raises an error if called1737 issue_type: "incident"1738 raises an error if called1739 issue_type: "test_case"1740 raises an error if called1741 issue_type: "requirement"1742 raises an error if called1743 issue_type: "task"1744 raises an error if called1745 issue_type: "objective"1746 raises an error if called1747 issue_type: "key_result"1748 raises an error if called1749Ci::CreatePipelineService1750 #execute1751 skips creating pipeline for refs without .gitlab-ci.yml1752 performance1753 behaves like pipelines are created without N+1 SQL queries1754 avoids N+1 queries1755 valid params1756 responds with success1757 creates a pipeline1758 increments the prometheus counter1759 records pipeline size in a prometheus histogram1760 tracks included template usage1761 when merge requests already exist for this source branch1762 when the head pipeline sha equals merge request sha1763 updates head pipeline of each merge request1764 auto-cancel enabled1765 does not cancel HEAD pipeline1766 auto cancel pending non-HEAD pipelines1767 cancels running outdated pipelines1768 cancel created outdated pipelines1769 does not cancel pipelines from the other branches1770 when the interruptible attribute is1771 not defined1772 is cancelable1773 set to true1774 is cancelable1775 set to false1776 is not cancelable1777 interruptible builds1778 properly configures interruptible status1779 when only interruptible builds are running1780 when build marked explicitly by interruptible is running1781 cancels running outdated pipelines1782 when build that is not marked as interruptible is running1783 cancels running outdated pipelines1784 when an uninterruptible build is running1785 does not cancel running outdated pipelines1786 when an build is waiting on an interruptible scheduled task1787 cancels running outdated pipelines1788 when a uninterruptible build has finished1789 does not cancel running outdated pipelines1790 auto-cancel disabled1791 does not auto cancel created non-HEAD pipelines1792 skip tag if there is no build for it1793 creates commit if there is appropriate job1794 creates commit if there is no appropriate job but deploy job has right ref setting1795 config evaluation1796 when config is in a file in repository1797 pull it from the repository1798 when config is from Auto-DevOps1799 pull it from Auto-DevOps1800 when config is not found1801 responds with error message1802 when an unexpected error is raised1803 saves error in pipeline1804 logs error1805 when yaml is invalid1806 increments the error metric1807 behaves like a failed pipeline1808 creates failed pipeline1809 when receive git commit1810 behaves like a failed pipeline1811 creates failed pipeline1812 when config has ports1813 in the main image1814 behaves like a failed pipeline1815 creates failed pipeline1816 in the job image1817 behaves like a failed pipeline1818 creates failed pipeline1819 in the service1820 behaves like a failed pipeline1821 creates failed pipeline1822 when an unexpected error is raised1823 saves error in pipeline1824 logs error1825 when commit contains a [ci skip] directive1826 when the commit message is some message[ci skip]1827 behaves like skipping a pipeline1828 skips pipeline creation1829 when the commit message is some message[skip ci]1830 behaves like skipping a pipeline1831 skips pipeline creation1832 when the commit message is some message[CI SKIP]1833 behaves like skipping a pipeline1834 skips pipeline creation1835 when the commit message is some message[SKIP CI]1836 behaves like skipping a pipeline1837 skips pipeline creation1838 when the commit message is some message[ci_skip]1839 behaves like skipping a pipeline1840 skips pipeline creation1841 when the commit message is some message[skip_ci]1842 behaves like skipping a pipeline1843 skips pipeline creation1844 when the commit message is some message[ci-skip]1845 behaves like skipping a pipeline1846 skips pipeline creation1847 when the commit message is some message[skip-ci]1848 behaves like skipping a pipeline1849 skips pipeline creation1850 when commit message does not contain [ci skip] nor [skip ci]1851 behaves like creating a pipeline1852 does not skip pipeline creation1853 when commit message is nil1854 behaves like creating a pipeline1855 does not skip pipeline creation1856 when there is [ci skip] tag in commit message and yaml is invalid1857 behaves like skipping a pipeline1858 skips pipeline creation1859 when push options contain ci.skip1860 creates a pipline in the skipped state1861 when there are no jobs for this pipeline1862 does not create a new pipeline1863 #iid1864 rewinds iid1865 when the configuration includes ID tokens1866 creates variables for the ID tokens1867 with manual actions1868 does not create a new pipeline1869 with environment1870 creates the environment with tags1871 with environment with auto_stop_in1872 creates the environment with auto stop in1873 with environment name including persisted variables1874 skips persisted variables in environment name1875 environment with Kubernetes configuration1876 stores the requested namespace1877 when environment with invalid name1878 does not create an environment1879 when environment with duplicate names1880 creates a pipeline with the environment1881 when builds with auto-retries are configured1882 as an integer1883 correctly creates builds with auto-retry value configured1884 as hash1885 correctly creates builds with auto-retry value configured1886 with resource group1887 when resource group is defined1888 persists the association correctly1889 when resource group key includes predefined variables1890 interpolates the variables into the key correctly1891 when resource group is defined for review app deployment1892 persists the association correctly1893 initializes scoped variables only once for each build1894 with timeout1895 when builds with custom timeouts are configured1896 correctly creates builds with custom timeout value configured1897 with release1898 simple example1899 behaves like a successful release pipeline1900 is valid config1901 example with all release metadata1902 behaves like a successful release pipeline1903 is valid config1904 when ref is a protected branch1905 behaves like when ref is protected1906 when user is developer1907 does not create a pipeline1908 when user is maintainer1909 creates a protected pipeline1910 when trigger belongs to no one1911 does not create a pipeline1912 when trigger belongs to a developer1913 does not create a pipeline1914 when trigger belongs to a maintainer1915 creates a pipeline1916 when ref is a protected tag1917 behaves like when ref is protected1918 when user is developer1919 does not create a pipeline1920 when user is maintainer1921 creates a protected pipeline1922 when trigger belongs to no one1923 does not create a pipeline1924 when trigger belongs to a developer1925 does not create a pipeline1926 when trigger belongs to a maintainer1927 creates a pipeline1928 when pipeline is running for a tag1929 creates a tagged pipeline1930 when pipeline is running for a nonexistant-branch1931 does not create the pipeline1932 when there is a tag with that nonexistant-branch1933 does not create the pipeline1934 when pipeline is running for a branch with the name of both a branch and a tag1935 creates the pipeline for the branch1936 when pipeline is running for a tag with the name of both a branch and a tag1937 creates the pipeline for the tag1938 when pipeline is running for an ambiguous ref1939 does not create the pipeline1940 when pipeline variables are specified1941 with valid pipeline variables1942 creates a pipeline with specified variables1943 with duplicate pipeline variables1944 fails to create the pipeline1945 with more than one duplicate pipeline variable1946 fails to create the pipeline1947 when pipeline has a job with environment1948 when environment name is valid1949 has a job with environment1950 when environment name is invalid1951 has a job without environment1952 Pipeline for external pull requests1953 when source is external pull request1954 when config has external_pull_requests keywords1955 when external pull request is specified1956 creates an external pull request pipeline1957 when ref is tag1958 does not create an extrnal pull request pipeline1959 when pull request is created from fork1960 does not create an external pull request pipeline (PENDING: Not yet implemented)1961 when there are no matched jobs1962 does not create a detached merge request pipeline1963 when external pull request is not specified1964 does not create an external pull request pipeline1965 when config does not have external_pull_requests keywords1966 when external pull request is specified1967 creates an external pull request pipeline1968 when external pull request is not specified1969 does not create an external pull request pipeline1970 Pipelines for merge requests1971 when source is merge request1972 when config has merge_requests keywords1973 when merge request is specified1974 creates a detached merge request pipeline1975 persists the specified source sha1976 does not persist target sha for detached merge request pipeline1977 schedules update for the head pipeline of the merge request1978 schedules a namespace onboarding create action worker1979 when target sha is specified1980 persists the target sha1981 when ref is tag1982 does not create a merge request pipeline1983 when merge request is created from a forked project1984 creates a legacy detached merge request pipeline in the forked project1985 when there are no matched jobs1986 does not create a detached merge request pipeline1987 when config does not have merge_requests keywords1988 when merge request is specified1989 does not create a detached merge request pipeline1990 when config uses regular expression for only keyword1991 when merge request is specified1992 does not create a detached merge request pipeline1993 when config uses variables for only keyword1994 when merge request is specified1995 does not create a detached merge request pipeline1996 when config has 'except: [tags]'1997 when merge request is specified1998 does not create a detached merge request pipeline1999 when source is web2000 when config has merge_requests keywords2001 creates a branch pipeline2002 when needs is used2003 when pipeline on master is created2004 creates a pipeline with build_a and test_a2005 bulk inserts all needs2006 when pipeline on feature is created2007 when save_on_errors is enabled2008 does create a pipeline as test_a depends on build_a2009 behaves like has errors2010 contains the expected errors2011 when save_on_errors is disabled2012 does not create a pipeline as test_a depends on build_a2013 behaves like has errors2014 contains the expected errors2015 when pipeline on v1.0.0 is created2016 does create a pipeline only with deploy2017 pipeline components2018 when there is no version with specified tag2019 does not create a pipeline2020 when there is a proper revision available2021 when component is valid2022 creates a pipeline using a pipeline component2023 when interpolation is invalid2024 does not create a pipeline2025 when there is a syntax error in the template2026 does not create a pipeline2027 pipeline components using include:with instead of include:inputs2028 when there is no version with specified tag2029 does not create a pipeline2030 when there is a proper revision available2031 when component is valid2032 creates a pipeline using a pipeline component2033 when interpolation is invalid2034 does not create a pipeline2035 when there is a syntax error in the template2036 does not create a pipeline2037MergeRequests::CreateService2038 #execute2039 valid params2040 creates an MR2041 does not execute hooks2042 refreshes the number of open merge requests2043 creates exactly 1 create MR event2044 sets the merge_status to preparing2045 when marked with /draft2046 in title and in description2047 sets MR to draft2048 in description only2049 sets MR to draft2050 when merge request is assigned to someone2051 is expected to eq [#<User id:210 @user54>]2052 when reviewer is assigned2053 is expected to eq [#<User id:213 @user56>]2054 invalidates counter cache for reviewers2055 when head pipelines already exist for merge request source branch2056 sets head pipeline2057 when the new pipeline is associated with an old sha2058 sets an old pipeline with associated with the latest sha as the head pipeline2059 when there are no pipelines with the diff head sha2060 does not set the head pipeline2061 Pipelines for merge requests2062 when .gitlab-ci.yml has merge_requests keywords2063 creates a detached merge request pipeline and sets it as a head pipeline2064 when merge request is submitted from forked project2065 create detached merge request pipeline for fork merge request2066 when there are no commits between source branch and target branch2067 does not create a detached merge request pipeline2068 when branch pipeline was created before a merge request pipline has been created2069 sets the latest detached merge request pipeline as the head pipeline2070 when .gitlab-ci.yml does not have merge_requests keywords2071 does not create a detached merge request pipeline2072 when .gitlab-ci.yml is invalid2073 persists a pipeline with config error2074 after_save callback to store_mentions2075 when mentionable attributes change2076 saves mentions2077 when mentionable attributes do not change2078 does not call store_mentions2079 when save fails2080 does not call store_mentions2081 with a milestone2082 deletes the cache key for milestone merge request counter2083 behaves like reviewer_ids filter2084 filter_reviewer2085 without reviewer_ids2086 contains no reviewer_ids2087 with reviewer_ids2088 when the current user can admin the merge_request2089 with a reviewer who can read the merge_request2090 contains reviewers who can read the merge_request2091 when the current_user cannot admin the merge_request2092 contains no reviewers2093 when called in a transaction2094 does not raise an error2095 behaves like issuable record that supports quick actions2096 with labels in command only2097 attaches labels to issuable2098 with labels in params and command2099 attaches all labels to issuable2100 with assignee and milestone in command only2101 assigns and sets milestone to issuable2102 Quick actions2103 with assignee and milestone in params and command2104 assigns and sets milestone to issuable from command2105 merge request create service2106 asssignee_id2107 removes assignee_id when user id is invalid2108 removes assignee_id when user id is 02109 saves assignee when user id is valid2110 when assignee is set2111 invalidates open merge request counter for assignees when merge request is assigned2112 records the assignee assignment event2113 when issuable feature is private2114 removes not authorized assignee when project is Internal2115 removes not authorized assignee when project is Public2116 behaves like when source and target projects are different2117 when user can not access source project2118 raises an error2119 when user can not access target project2120 raises an error2121 when the user has access to both projects2122 creates the merge request2123 does not create the merge request when the target project is archived2124 when user sets source project id2125 ignores source_project_id2126Clusters::Platforms::Kubernetes2127 is expected to belong to cluster required: false2128 is expected to be a kind of Gitlab::Kubernetes2129 is expected to respond to #ca_pem2130 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›2131 is expected to validate that :api_url cannot be empty/falsy2132 is expected to validate that :token cannot be empty/falsy2133 is expected to delegate #enabled? to the #cluster object2134 is expected to delegate #provided_by_user? to the #cluster object2135 is expected to nullify if blank :namespace2136 behaves like having unique enum values2137 has unique values in "authorization_type"2138 default values2139 is expected to eq "rbac"2140 before_validation2141 when namespace includes upper case2142 converts to lower case2143 validation2144 when validates namespace2145 when namespace is nil2146 is expected to be truthy2147 when namespace is longer than 632148 is expected to be falsey2149 when namespace includes invalid character2150 is expected to be falsey2151 when namespace is vaild2152 is expected to be truthy2153 for group cluster2154 is expected to be falsey2155 when validates api_url2156 when api_url is invalid url2157 is expected to be falsey2158 when api_url is nil2159 is expected to be falsey2160 when api_url is valid url2161 is expected to be truthy2162 when api_url is localhost2163 is expected to be falsey2164 Application settings allows local requests2165 is expected to be truthy2166 when validates token2167 when token is nil2168 is expected to be falsey2169 ca_cert2170 with a valid certificate2171 is expected to be truthy2172 with an invalid certificate2173 is expected to be falsey2174 but the certificate is not being updated2175 is expected to be truthy2176 with no certificate2177 is expected to be truthy2178 when using reserved namespaces2179 when no namespace is manually assigned2180 is expected to be valid2181 when no reserved namespace is assigned2182 is expected to be valid2183 when reserved namespace is assigned2184 is expected not to be valid2185 #kubeclient2186 is expected to be an instance of Gitlab::Kubernetes::KubeClient2187 ca_pem is a single certificate2188 adds it to cert_store2189 ca_pem is a chain2190 fixture_path: "spec/fixtures/clusters/root_certificate.pem"2191 includes chain of certificates2192 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"2193 includes chain of certificates2194 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"2195 includes chain of certificates2196 #rbac?2197 is expected to be truthy2198 #predefined_variables2199 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}2200 platform has a CA certificate2201 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}2202 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}2203 cluster is managed by project2204 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2205 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2206 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2207 kubernetes namespace exists2208 is expected to include {:key => :fake_key, :value => "fake_value"}2209 kubernetes namespace does not exist2210 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2211 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2212 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2213 cluster is unmanaged2214 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2215 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2216 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2217 custom namespace is provided2218 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2219 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}2220 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2221 cluster variables2222 is expected to include {:key => :fake_key, :value => "fake_value"}2223 #terminals2224 with invalid pods2225 returns no terminals2226 with valid pods2227 returns terminals2228 uses max session time from settings2229 #calculate_reactive_cache_for2230 when kubernetes responds with valid deployments2231 on a project level cluster2232 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2233 when reading ingress raises NoMethodError2234 when version request succeeds2235 when server min version is < 232236 does not raise error2237 returns empty array for the K8s component keys2238 when server min version is >= 232239 does raise error2240 when the version request fails2241 tracks error and returns empty arrays2242 on a group level cluster2243 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2244 on an instance level cluster2245 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2246 when the kubernetes integration is disabled2247 is expected to be nil2248 when there are ignored K8s connections errors2249 Gitlab::UrlBlocker::BlockedUrlError2250 does not raise error2251 returns empty array for the K8s component keys2252 logs the error2253 Kubeclient::HttpError2254 does not raise error2255 returns empty array for the K8s component keys2256 logs the error2257 Errno::ECONNREFUSED2258 does not raise error2259 returns empty array for the K8s component keys2260 logs the error2261 URI::InvalidURIError2262 does not raise error2263 returns empty array for the K8s component keys2264 logs the error2265 Errno::EHOSTUNREACH2266 does not raise error2267 returns empty array for the K8s component keys2268 logs the error2269 OpenSSL::X509::StoreError2270 does not raise error2271 returns empty array for the K8s component keys2272 logs the error2273 OpenSSL::SSL::SSLError2274 does not raise error2275 returns empty array for the K8s component keys2276 logs the error2277 when kubernetes responds with 500s2278 does not raise kubeclient http error2279 when kubernetes responds with 404s2280 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}2281 #rollout_status2282 legacy deployments based on app label2283 only legacy deployments2284 contains nothing2285 deployment with no pods2286 returns a valid status with matching deployments2287 new deployment based on annotations2288 contains only matching deployments2289 with no deployments but there are pods2290 returns an empty array2291 with valid deployments2292 creates a matching RolloutStatus2293 with canary ingress2294 has canary ingress2295 with empty list of deployments2296 creates a matching RolloutStatus2297 when the pod track does not match the deployment track2298 does not return the pod2299 when the pod track is not stable2300 the pod is not stable2301 when the pod track is stable2302 the pod is stable2303 when the pod track is not provided2304 the pod is stable2305 when the number of matching pods does not match the number of replicas2306 returns a pending pod for each missing replica2307 when pending pods are returned for missing replicas2308 returns the correct track for the pending pods2309 when two deployments with the same track are missing instances2310 returns the correct number of pending pods2311 with multiple matching deployments2312 returns each pod once2313 when cache keys are defaulted2314 does not raise error2315 #ingresses2316 when there is an ingress in the namespace2317 returns an ingress2318 when there are no ingresss in the namespace2319 returns nothing2320 #patch_ingress2321 when there is an ingress in the namespace2322 returns an ingress2323 when there are no ingresss in the namespace2324 raises an error2325 #authorization_type2326 behaves like having enum with nil value2327 has enum with nil value2328Gitlab::ImportExport::Project::RelationFactory2329 hook object2330 does not have the original ID2331 does not have the original integration_id2332 does not have the original project_id2333 has the new project_id2334 has a nil token2335 original service exists2336 does not have the original integration_id2337 excluded attributes2338 are removed from the imported object2339 merge_request object2340 has preloaded author2341 has preloaded updated_by2342 has preloaded source project2343 has preloaded target project2344 issue object2345 has preloaded project2346 computing relative position2347 when max relative position in the hierarchy is not cached2348 has computed new relative_position2349 when max relative position in the hierarchy is cached2350 has computed new relative_position2351 label object2352 has preloaded project2353 has preloaded group2354 pipeline_schedule2355 when relation_hash has active set to true2356 the created object is not active2357 when relation_hash has active set to false2358 the created object is not active2359 Potentially hazardous foreign keys2360 does not preserve any foreign key IDs2361 overrided model with pluralized name2362 does not raise errors2363 Project references2364 does not preserve any project foreign key IDs2365 behaves like Notes user references2366 when the importer is admin2367 and the note author is not mapped2368 is expected to eq #<User id:598 @user335>2369 is expected to include "*By Administrator"2370 and the note author is the importer user2371 is expected to eq #<User id:604 @user339>2372 is expected not to include "*By Administrator"2373 and the note author exists in the target instance2374 is expected to eq #<User id:613 @user345>2375 is expected not to include "*By Administrator"2376 when the importer is not admin2377 and the note author is not mapped2378 is expected to eq #<User id:618 @user349>2379 is expected to include "*By Administrator"2380 and the note author is the importer user2381 is expected to eq #<User id:624 @user353>2382 is expected to include "*By Administrator"2383 and the note author exists in the target instance2384 is expected to eq #<User id:630 @user357>2385 is expected to include "*By Administrator"2386 encrypted attributes2387 has no value for the encrypted attribute2388 event object2389 has preloaded project2390 protected branch access levels2391 merge access level2392 when access level is no one2393 keeps no one access level2394 when access level is below maintainer2395 sets access level to maintainer2396 when access level is above maintainer2397 sets access level to maintainer2398 root ancestor membership2399 when importer user is root group owner2400 keeps access level as is2401 when user membership in root group is missing2402 sets access level to maintainer2403 when root ancestor is not a group2404 sets access level to maintainer2405 push access level2406 when access level is no one2407 keeps no one access level2408 when access level is below maintainer2409 sets access level to maintainer2410 when access level is above maintainer2411 sets access level to maintainer2412 root ancestor membership2413 when importer user is root group owner2414 keeps access level as is2415 when user membership in root group is missing2416 sets access level to maintainer2417 when root ancestor is not a group2418 sets access level to maintainer2419Issuable::BulkUpdateService2420 with issuables at a project level2421 behaves like bulk update service2422 result count only includes authorized issuables2423 when issuable_ids are passed as an array2424 updates assignees2425 with unpermitted attributes2426 does not update the issues2427 when issuable update service raises an ArgumentError2428 returns an error response2429 close issues2430 succeeds and returns the correct number of issues updated2431 closes all the issues passed2432 behaves like scheduling cached group count clear2433 schedules worker2434 reopen issues2435 succeeds and returns the correct number of issues updated2436 reopens all the issues passed2437 behaves like scheduling cached group count clear2438 schedules worker2439 updating merge request assignee2440 when the new assignee ID is a valid user2441 succeeds2442 updates the assignee to the user ID passed2443 when the new assignee ID is 02444 unassigns the issues2445 when the new assignee IDs array is empty2446 removes all assignees2447 updating issue assignee2448 when the new assignee ID is a valid user2449 succeeds2450 updates the assignee to the user ID passed2451 when the new assignee ID is 02452 unassigns the issues2453 when the new assignee IDs array is empty2454 removes all assignees2455 updating milestones2456 behaves like updates milestones2457 succeeds2458 updates the issuables milestone2459 behaves like not scheduling cached group count clear2460 does not schedule worker2461 updating labels2462 behaves like updating labels2463 when add_label_ids are passed2464 adds those label IDs to all issues passed2465 does not update issues not passed in2466 when remove_label_ids are passed2467 removes those label IDs from all issues passed2468 does not update issues not passed in2469 when add_label_ids and remove_label_ids are passed2470 adds the label IDs to all issues passed2471 removes the label IDs from all issues passed2472 does not update issues not passed in2473 subscribe to issues2474 subscribes the given user2475 unsubscribe from issues2476 unsubscribes the given user2477 updating issues from external project2478 updates only issues that belong to the parent project2479 with issuables at a group level2480 behaves like bulk update service2481 result count only includes authorized issuables2482 when issuable_ids are passed as an array2483 updates assignees2484 updating milestones2485 when issues2486 behaves like updates milestones2487 succeeds2488 updates the issuables milestone2489 when merge requests2490 behaves like updates milestones2491 succeeds2492 updates the issuables milestone2493 updating labels2494 behaves like updating labels2495 when add_label_ids are passed2496 adds those label IDs to all issues passed2497 does not update issues not passed in2498 when remove_label_ids are passed2499 removes those label IDs from all issues passed2500 does not update issues not passed in2501 when add_label_ids and remove_label_ids are passed2502 adds the label IDs to all issues passed2503 removes the label IDs from all issues passed2504 does not update issues not passed in2505 with issues from external group2506 updates issues that belong to the parent group or descendants2507 when no parent is provided2508 returns an unscoped update error2509Members::InvitationReminderEmailService2510 sending invitation reminders2511 expires_at_days: 0, send_reminder_at_days: []2512 sends an invitation reminder only on the expected days2513 sends an invitation reminder only on the expected days2514 sends an invitation reminder only on the expected days2515 sends an invitation reminder only on the expected days2516 sends an invitation reminder only on the expected days2517 sends an invitation reminder only on the expected days2518 sends an invitation reminder only on the expected days2519 sends an invitation reminder only on the expected days2520 sends an invitation reminder only on the expected days2521 sends an invitation reminder only on the expected days2522 sends an invitation reminder only on the expected days2523 expires_at_days: 1, send_reminder_at_days: []2524 sends an invitation reminder only on the expected days2525 sends an invitation reminder only on the expected days2526 sends an invitation reminder only on the expected days2527 sends an invitation reminder only on the expected days2528 sends an invitation reminder only on the expected days2529 sends an invitation reminder only on the expected days2530 sends an invitation reminder only on the expected days2531 sends an invitation reminder only on the expected days2532 sends an invitation reminder only on the expected days2533 sends an invitation reminder only on the expected days2534 sends an invitation reminder only on the expected days2535 expires_at_days: 2, send_reminder_at_days: [1]2536 sends an invitation reminder only on the expected days2537 sends an invitation reminder only on the expected days2538 sends an invitation reminder only on the expected days2539 sends an invitation reminder only on the expected days2540 sends an invitation reminder only on the expected days2541 sends an invitation reminder only on the expected days2542 sends an invitation reminder only on the expected days2543 sends an invitation reminder only on the expected days2544 sends an invitation reminder only on the expected days2545 sends an invitation reminder only on the expected days2546 sends an invitation reminder only on the expected days2547 expires_at_days: 3, send_reminder_at_days: [1, 2]2548 sends an invitation reminder only on the expected days2549 sends an invitation reminder only on the expected days2550 sends an invitation reminder only on the expected days2551 sends an invitation reminder only on the expected days2552 sends an invitation reminder only on the expected days2553 sends an invitation reminder only on the expected days2554 sends an invitation reminder only on the expected days2555 sends an invitation reminder only on the expected days2556 sends an invitation reminder only on the expected days2557 sends an invitation reminder only on the expected days2558 sends an invitation reminder only on the expected days2559 expires_at_days: 4, send_reminder_at_days: [1, 2, 3]2560 sends an invitation reminder only on the expected days2561 sends an invitation reminder only on the expected days2562 sends an invitation reminder only on the expected days2563 sends an invitation reminder only on the expected days2564 sends an invitation reminder only on the expected days2565 sends an invitation reminder only on the expected days2566 sends an invitation reminder only on the expected days2567 sends an invitation reminder only on the expected days2568 sends an invitation reminder only on the expected days2569 sends an invitation reminder only on the expected days2570 sends an invitation reminder only on the expected days2571 expires_at_days: 5, send_reminder_at_days: [1, 2, 4]2572 sends an invitation reminder only on the expected days2573 sends an invitation reminder only on the expected days2574 sends an invitation reminder only on the expected days2575 sends an invitation reminder only on the expected days2576 sends an invitation reminder only on the expected days2577 sends an invitation reminder only on the expected days2578 sends an invitation reminder only on the expected days2579 sends an invitation reminder only on the expected days2580 sends an invitation reminder only on the expected days2581 sends an invitation reminder only on the expected days2582 sends an invitation reminder only on the expected days2583 expires_at_days: 6, send_reminder_at_days: [1, 3, 5]2584 sends an invitation reminder only on the expected days2585 sends an invitation reminder only on the expected days2586 sends an invitation reminder only on the expected days2587 sends an invitation reminder only on the expected days2588 sends an invitation reminder only on the expected days2589 sends an invitation reminder only on the expected days2590 sends an invitation reminder only on the expected days2591 sends an invitation reminder only on the expected days2592 sends an invitation reminder only on the expected days2593 sends an invitation reminder only on the expected days2594 sends an invitation reminder only on the expected days2595 expires_at_days: 7, send_reminder_at_days: [1, 3, 5]2596 sends an invitation reminder only on the expected days2597 sends an invitation reminder only on the expected days2598 sends an invitation reminder only on the expected days2599 sends an invitation reminder only on the expected days2600 sends an invitation reminder only on the expected days2601 sends an invitation reminder only on the expected days2602 sends an invitation reminder only on the expected days2603 sends an invitation reminder only on the expected days2604 sends an invitation reminder only on the expected days2605 sends an invitation reminder only on the expected days2606 sends an invitation reminder only on the expected days2607 expires_at_days: 8, send_reminder_at_days: [2, 3, 6]2608 sends an invitation reminder only on the expected days2609 sends an invitation reminder only on the expected days2610 sends an invitation reminder only on the expected days2611 sends an invitation reminder only on the expected days2612 sends an invitation reminder only on the expected days2613 sends an invitation reminder only on the expected days2614 sends an invitation reminder only on the expected days2615 sends an invitation reminder only on the expected days2616 sends an invitation reminder only on the expected days2617 sends an invitation reminder only on the expected days2618 sends an invitation reminder only on the expected days2619 expires_at_days: 9, send_reminder_at_days: [2, 4, 7]2620 sends an invitation reminder only on the expected days2621 sends an invitation reminder only on the expected days2622 sends an invitation reminder only on the expected days2623 sends an invitation reminder only on the expected days2624 sends an invitation reminder only on the expected days2625 sends an invitation reminder only on the expected days2626 sends an invitation reminder only on the expected days2627 sends an invitation reminder only on the expected days2628 sends an invitation reminder only on the expected days2629 sends an invitation reminder only on the expected days2630 sends an invitation reminder only on the expected days2631 expires_at_days: 10, send_reminder_at_days: [2, 4, 8]2632 sends an invitation reminder only on the expected days2633 sends an invitation reminder only on the expected days2634 sends an invitation reminder only on the expected days2635 sends an invitation reminder only on the expected days2636 sends an invitation reminder only on the expected days2637 sends an invitation reminder only on the expected days2638 sends an invitation reminder only on the expected days2639 sends an invitation reminder only on the expected days2640 sends an invitation reminder only on the expected days2641 sends an invitation reminder only on the expected days2642 sends an invitation reminder only on the expected days2643 expires_at_days: 11, send_reminder_at_days: [2, 4, 8]2644 sends an invitation reminder only on the expected days2645 sends an invitation reminder only on the expected days2646 sends an invitation reminder only on the expected days2647 sends an invitation reminder only on the expected days2648 sends an invitation reminder only on the expected days2649 sends an invitation reminder only on the expected days2650 sends an invitation reminder only on the expected days2651 sends an invitation reminder only on the expected days2652 sends an invitation reminder only on the expected days2653 sends an invitation reminder only on the expected days2654 sends an invitation reminder only on the expected days2655 expires_at_days: 12, send_reminder_at_days: [2, 5, 9]2656 sends an invitation reminder only on the expected days2657 sends an invitation reminder only on the expected days2658 sends an invitation reminder only on the expected days2659 sends an invitation reminder only on the expected days2660 sends an invitation reminder only on the expected days2661 sends an invitation reminder only on the expected days2662 sends an invitation reminder only on the expected days2663 sends an invitation reminder only on the expected days2664 sends an invitation reminder only on the expected days2665 sends an invitation reminder only on the expected days2666 sends an invitation reminder only on the expected days2667 expires_at_days: 13, send_reminder_at_days: [2, 5, 10]2668 sends an invitation reminder only on the expected days2669 sends an invitation reminder only on the expected days2670 sends an invitation reminder only on the expected days2671 sends an invitation reminder only on the expected days2672 sends an invitation reminder only on the expected days2673 sends an invitation reminder only on the expected days2674 sends an invitation reminder only on the expected days2675 sends an invitation reminder only on the expected days2676 sends an invitation reminder only on the expected days2677 sends an invitation reminder only on the expected days2678 sends an invitation reminder only on the expected days2679 expires_at_days: 14, send_reminder_at_days: [2, 5, 10]2680 sends an invitation reminder only on the expected days2681 sends an invitation reminder only on the expected days2682 sends an invitation reminder only on the expected days2683 sends an invitation reminder only on the expected days2684 sends an invitation reminder only on the expected days2685 sends an invitation reminder only on the expected days2686 sends an invitation reminder only on the expected days2687 sends an invitation reminder only on the expected days2688 sends an invitation reminder only on the expected days2689 sends an invitation reminder only on the expected days2690 sends an invitation reminder only on the expected days2691 expires_at_days: 15, send_reminder_at_days: [2, 5, 10]2692 sends an invitation reminder only on the expected days2693 sends an invitation reminder only on the expected days2694 sends an invitation reminder only on the expected days2695 sends an invitation reminder only on the expected days2696 sends an invitation reminder only on the expected days2697 sends an invitation reminder only on the expected days2698 sends an invitation reminder only on the expected days2699 sends an invitation reminder only on the expected days2700 sends an invitation reminder only on the expected days2701 sends an invitation reminder only on the expected days2702 sends an invitation reminder only on the expected days2703 expires_at_days: nil, send_reminder_at_days: [2, 5, 10]2704 sends an invitation reminder only on the expected days2705 sends an invitation reminder only on the expected days2706 sends an invitation reminder only on the expected days2707 sends an invitation reminder only on the expected days2708 sends an invitation reminder only on the expected days2709 sends an invitation reminder only on the expected days2710 sends an invitation reminder only on the expected days2711 sends an invitation reminder only on the expected days2712 sends an invitation reminder only on the expected days2713 sends an invitation reminder only on the expected days2714 sends an invitation reminder only on the expected days2715Gitlab::Database::LockWritesManager2716 #table_locked_for_writes?2717 returns false for a table that is not locked for writes2718 returns true for a table that is locked for writes2719 for detached partition tables in another schema2720 returns true for a table that is locked for writes2721 #lock_writes2722 prevents any writes on the table2723 prevents truncating the table2724 adds 3 triggers to the ci schema tables on the main database2725 logs the write locking2726 retries again if it receives a statement_timeout a few number of times2727 raises the exception if it happened many times2728 skips the operation if the table is already locked for writes2729 when running in dry_run mode2730 prints the sql statement to the logger2731 does not lock the tables for writes2732 returns result hash with action needs_lock2733 #unlock_writes2734 allows writing on the table again2735 skips unlocking the table if the table was already unlocked for writes2736 removes the write protection triggers from the gitlab_main tables on the ci database2737 logs the write unlocking2738 when running in dry_run mode2739 prints the sql statement to the logger2740 does not unlock the tables for writes2741 returns result hash with dry_run true2742ResourceAccessTokens::CreateService2743 #execute2744 when resource is a project2745 behaves like when user does not have permission to create a resource bot2746 behaves like token creation fails2747 does not add the project bot as a member2748 immediately destroys the bot user if one was created2749 behaves like correct error message2750 returns correct error message2751 user with valid permission2752 behaves like allows creation of bot with valid params2753 is expected to change `User.count` by 12754 creates resource bot user2755 logs the event2756 email confirmation status2757 when created by an admin2758 when admin mode is enabled2759 behaves like creates a user that has their email confirmed2760 creates a user that has their email confirmed2761 when admin mode is disabled2762 returns error2763 when created by a non-admin2764 behaves like creates a user that has their email confirmed2765 creates a user that has their email confirmed2766 bot name2767 when no name is passed2768 uses default name2769 when user provides name2770 overrides the default name value2771 bot username and email2772 check email domain2773 contains SecureRandom part2774 email name is the same as username2775 when conflicts2776 when username is reserved2777 when username is reserved by user2778 uniquifies username and email2779 when it conflicts with top-level group namespace2780 uniquifies username and email2781 when it conflicts with top-level group namespace that includes upcased characters2782 uniquifies username and email2783 when email is reserved2784 when it conflicts with confirmed primary email2785 uniquifies username and email2786 when it conflicts with unconfirmed primary email2787 uniquifies username and email2788 when it conflicts with confirmed secondary email2789 uniquifies username and email2790 when email and username is reserved2791 uniquifies username and email2792 access level2793 when user does not specify an access level2794 adds the bot user as a maintainer in the resource2795 when user specifies an access level2796 behaves like bot with access level2797 adds the bot user with the specified access level in the resource2798 with DEVELOPER access_level, in string format2799 behaves like bot with access level2800 adds the bot user with the specified access level in the resource2801 when user is external2802 creates resource bot user with external status2803 personal access token2804 is expected to change `PersonalAccessToken.count` by 12805 when user does not provide scope2806 has default scopes2807 when user provides scope explicitly2808 overrides the default scope value2809 expires_at2810 when no expiration value is passed2811 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS2812 expiry of the project bot member2813 project bot membership does not expire2814 when user provides expiration value2815 overrides the default expiration value2816 expiry of the project bot member2817 sets the project bot to expire on the same day as the token2818 when invalid scope is passed2819 behaves like token creation fails2820 does not add the project bot as a member2821 immediately destroys the bot user if one was created2822 behaves like correct error message2823 returns correct error message2824 when access provisioning fails2825 with MAINTAINER access_level, in integer format2826 behaves like token creation fails2827 does not add the project bot as a member2828 immediately destroys the bot user if one was created2829 behaves like correct error message2830 returns correct error message2831 with MAINTAINER access_level, in string format2832 behaves like token creation fails2833 does not add the project bot as a member2834 immediately destroys the bot user if one was created2835 behaves like correct error message2836 returns correct error message2837 when user specifies an access level of OWNER for the bot2838 when the executor is a MAINTAINER2839 with OWNER access_level, in integer format2840 behaves like token creation fails2841 does not add the project bot as a member2842 immediately destroys the bot user if one was created2843 behaves like correct error message2844 returns correct error message2845 with OWNER access_level, in string format2846 behaves like token creation fails2847 does not add the project bot as a member2848 immediately destroys the bot user if one was created2849 behaves like correct error message2850 returns correct error message2851 when the executor is an OWNER2852 adds the bot user with the specified access level in the resource2853 when resource is a group2854 behaves like when user does not have permission to create a resource bot2855 behaves like token creation fails2856 does not add the project bot as a member2857 immediately destroys the bot user if one was created2858 behaves like correct error message2859 returns correct error message2860 user with valid permission2861 behaves like allows creation of bot with valid params2862 is expected to change `User.count` by 12863 creates resource bot user2864 logs the event2865 email confirmation status2866 when created by an admin2867 when admin mode is enabled2868 behaves like creates a user that has their email confirmed2869 creates a user that has their email confirmed2870 when admin mode is disabled2871 returns error2872 when created by a non-admin2873 behaves like creates a user that has their email confirmed2874 creates a user that has their email confirmed2875 bot name2876 when no name is passed2877 uses default name2878 when user provides name2879 overrides the default name value2880 bot username and email2881 check email domain2882 contains SecureRandom part2883 email name is the same as username2884 when conflicts2885 when username is reserved2886 when username is reserved by user2887 uniquifies username and email2888 when it conflicts with top-level group namespace2889 uniquifies username and email2890 when it conflicts with top-level group namespace that includes upcased characters2891 uniquifies username and email2892 when email is reserved2893 when it conflicts with confirmed primary email2894 uniquifies username and email2895 when it conflicts with unconfirmed primary email2896 uniquifies username and email2897 when it conflicts with confirmed secondary email2898 uniquifies username and email2899 when email and username is reserved2900 uniquifies username and email2901 access level2902 when user does not specify an access level2903 adds the bot user as a maintainer in the resource2904 when user specifies an access level2905 behaves like bot with access level2906 adds the bot user with the specified access level in the resource2907 with DEVELOPER access_level, in string format2908 behaves like bot with access level2909 adds the bot user with the specified access level in the resource2910 when user is external2911 creates resource bot user with external status2912 personal access token2913 is expected to change `PersonalAccessToken.count` by 12914 when user does not provide scope2915 has default scopes2916 when user provides scope explicitly2917 overrides the default scope value2918 expires_at2919 when no expiration value is passed2920 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS2921 expiry of the project bot member2922 project bot membership does not expire2923 when user provides expiration value2924 overrides the default expiration value2925 expiry of the project bot member2926 sets the project bot to expire on the same day as the token2927 when invalid scope is passed2928 behaves like token creation fails2929 does not add the project bot as a member2930 immediately destroys the bot user if one was created2931 behaves like correct error message2932 returns correct error message2933 when access provisioning fails2934 with MAINTAINER access_level, in integer format2935 behaves like token creation fails2936 does not add the project bot as a member2937 immediately destroys the bot user if one was created2938 behaves like correct error message2939 returns correct error message2940 with MAINTAINER access_level, in string format2941 behaves like token creation fails2942 does not add the project bot as a member2943 immediately destroys the bot user if one was created2944 behaves like correct error message2945 returns correct error message2946 when user specifies an access level of OWNER for the bot2947 adds the bot user with the specified access level in the resource2948NamespaceSetting2949 is expected to define :jobs_to_be_done as an enum backed by an integer with values ‹[:basics, :move_repository, :code_storage, :exploring, :ci, :other]›, suffix: true2950 is expected to define :enabled_git_access_protocol as an enum backed by an integer with values ‹[:all, :ssh, :http]›, suffix: true2951 behaves like sanitizable2952 includes Sanitizable2953 #default_branch_name2954 when input includes javascript tags2955 gets sanitized2956 #default_branch_name validation2957 when input contains pre-escaped html entities2958 is not valid2959 when it contains a path component2960 is not valid2961 Associations2962 is expected to belong to namespace required: false2963 validations2964************************************************************************2965Warning from shoulda-matchers:2966You are using `validate_inclusion_of` to assert that a boolean column2967allows boolean values and disallows non-boolean ones. Be aware that it2968is not possible to fully test this, as boolean columns will2969automatically convert non-boolean values to boolean ones. Hence, you2970should consider removing this test.2971************************************************************************2972 is expected to validate that :code_suggestions is either ‹true› or ‹false›2973 #default_branch_name_content2974 when not set2975 behaves like doesn't return an error2976 doesn't return an error2977 when set2978 behaves like doesn't return an error2979 doesn't return an error2980 when an empty string2981 behaves like doesn't return an error2982 doesn't return an error2983 #code_suggestions2984 when group namespaces2985 when group is created2986 sets default code_suggestions value to true2987 when setting is updated2988 persists the code suggestions setting2989 when user namespace2990 defaults to false2991 #allow_mfa_for_group2992 group is top-level group2993 is valid2994 group is a subgroup2995 is invalid2996 #allow_resource_access_token_creation_for_group2997 group is top-level group2998 is valid2999 group is a subgroup3000 is invalid when resource access token creation is not enabled3001 is valid when resource access tokens are enabled3002 #prevent_sharing_groups_outside_hierarchy3003 when this namespace is a root ancestor3004 returns the actual stored value3005 when this namespace is a descendant3006 returns the value stored for the parent settings3007 #show_diff_preview_in_email?3008 when not a subgroup3009 does not query the db when there is no parent group3010 when :show_diff_preview_in_email is false3011 returns false3012 when :show_diff_preview_in_email is true3013 returns true3014 #emails_enabled?3015 when the groups setting is changed3016 returns false when the attribute is false3017 when a group has a parent3018 returns true when no parent has disabled emails3019 when ancestor emails are disabled3020 returns false3021 when a group has parent groups3022 when a parent group has disabled diff previews3023 returns false3024 when all parent groups have enabled diff previews3025 returns true3026 runner registration settings3027 #runner_registration_enabled?3028 when runner registration is enabled3029 is expected to be truthy3030 behaves like with runner registration settings changing in hierarchy3031 when there are no parents3032 is expected to be truthy3033 when no group can register runners3034 is expected to be falsey3035 when there are parents3036 when a parent group has runner registration disabled3037 is expected to be falsey3038 when all parent groups have runner registration enabled3039 is expected to be truthy3040 when runner registration is disabled3041 is expected to be falsey3042 does not query the db3043 when group runner registration is disallowed3044 is expected to be falsey3045 #all_ancestors_have_runner_registration_enabled?3046 behaves like with runner registration settings changing in hierarchy3047 when there are no parents3048 is expected to be truthy3049 when no group can register runners3050 is expected to be falsey3051 when there are parents3052 when a parent group has runner registration disabled3053 is expected to be falsey3054 when all parent groups have runner registration enabled3055 is expected to be truthy3056 #allow_runner_registration_token?3057 when a top-level group3058 when :allow_runner_registration_token is false3059 returns false3060 does not query the db3061 when :allow_runner_registration_token is true3062 returns true3063 when disallowed by application setting3064 is expected to be falsey3065 when a group has parent groups3066 when a parent group has runner registration disabled3067 is expected to be falsey3068 when all parent groups have runner registration enabled3069 is expected to be truthy3070 when disallowed by application setting3071 is expected to be falsey3072 #delayed_project_removal3073 behaves like a cascading namespace setting boolean attribute3074 #delayed_project_removal3075 when there is no parent3076 and the value is not nil3077 returns the local value3078 and the value is nil3079 returns the application settings value3080 when parent does not lock the attribute3081 and value is not nil3082 returns local setting when present3083 returns the parent value when local value is nil3084 returns the correct dirty value3085 does not return the application setting value when parent value is false3086 and the value is nil3087 cascades to the application settings value3088 when multiple ancestors set a value3089 returns the closest ancestor value3090 when parent locks the attribute3091 returns the parent value3092 does not allow the local value to be saved3093 when the application settings locks the attribute3094 returns the application setting value3095 does not allow the local value to be saved3096 when parent locked the attribute then the application settings locks it3097 returns the application setting value3098 #delayed_project_removal?3099 aliases the method when the attribute is a boolean3100 #delayed_project_removal=3101 parent_value: true, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: nil3102 validates starting values from before block3103 does not save the value locally when it matches cascaded value3104 when mass assigned3105 does not save the value locally when it matches cascaded value3106 parent_value: true, current_subgroup_value: nil, new_subgroup_value: "true", expected_subgroup_value_after_update: nil3107 validates starting values from before block3108 does not save the value locally when it matches cascaded value3109 when mass assigned3110 does not save the value locally when it matches cascaded value3111 parent_value: true, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3112 validates starting values from before block3113 does not save the value locally when it matches cascaded value3114 when mass assigned3115 does not save the value locally when it matches cascaded value3116 parent_value: true, current_subgroup_value: false, new_subgroup_value: "true", expected_subgroup_value_after_update: true3117 validates starting values from before block3118 does not save the value locally when it matches cascaded value3119 when mass assigned3120 does not save the value locally when it matches cascaded value3121 parent_value: true, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3122 validates starting values from before block3123 does not save the value locally when it matches cascaded value3124 when mass assigned3125 does not save the value locally when it matches cascaded value3126 parent_value: true, current_subgroup_value: true, new_subgroup_value: "false", expected_subgroup_value_after_update: false3127 validates starting values from before block3128 does not save the value locally when it matches cascaded value3129 when mass assigned3130 does not save the value locally when it matches cascaded value3131 parent_value: false, current_subgroup_value: nil, new_subgroup_value: false, expected_subgroup_value_after_update: nil3132 validates starting values from before block3133 does not save the value locally when it matches cascaded value3134 when mass assigned3135 does not save the value locally when it matches cascaded value3136 parent_value: false, current_subgroup_value: nil, new_subgroup_value: true, expected_subgroup_value_after_update: true3137 validates starting values from before block3138 does not save the value locally when it matches cascaded value3139 when mass assigned3140 does not save the value locally when it matches cascaded value3141 parent_value: false, current_subgroup_value: true, new_subgroup_value: false, expected_subgroup_value_after_update: false3142 validates starting values from before block3143 does not save the value locally when it matches cascaded value3144 when mass assigned3145 does not save the value locally when it matches cascaded value3146 parent_value: false, current_subgroup_value: false, new_subgroup_value: true, expected_subgroup_value_after_update: true3147 validates starting values from before block3148 does not save the value locally when it matches cascaded value3149 when mass assigned3150 does not save the value locally when it matches cascaded value3151 #delayed_project_removal_locked?3152 when attribute is locked by self3153 is not locked by default3154 is locked when including self3155 when parent does not lock the attribute3156 behaves like not locked3157 is not locked by an ancestor3158 is not locked by application setting3159 does not return a locked namespace3160 when parent locks the attribute3161 is locked by an ancestor3162 is not locked by application setting3163 returns a locked namespace settings object3164 when not locked by application settings3165 behaves like not locked3166 is not locked by an ancestor3167 is not locked by application setting3168 does not return a locked namespace3169 when locked by application settings3170 is not locked by an ancestor3171 is locked by application setting3172 does not return a locked namespace3173 #lock_delayed_project_removal=3174 when parent locks the attribute3175 does not allow the attribute to be saved3176 when parent does not lock the attribute3177 allows the lock to be set when the attribute is not nil3178 does not allow the lock to be saved when the attribute is nil3179 copies the cascaded value when locking the attribute if the local value is nil3180 when application settings locks the attribute3181 does not allow the attribute to be saved3182 when application_settings does not lock the attribute3183 allows the attribute to be saved3184 after update callback3185 clears descendant locks3186Deployments::UpdateEnvironmentService3187 #execute3188 invalidates the environment etag cache3189 creates ref3190 updates merge request metrics3191 returns the deployment3192 returns the deployment when could not save the environment3193 returns the deployment when environment is stopped3194 when start action is defined3195 and environment is stopped3196 makes environment available3197 when external URL is specified and the tier is unset3198 when external URL is valid3199 succeeds to update the tier automatically3200 when external URL is invalid3201 fails to update the tier due to validation error3202 tracks an exception3203 when variables are used3204 does not create a new environment3205 updates external url3206 when auto_stop_in are used3207 renews auto stop at3208 when value is a variable3209 renews auto stop at with expanded variable value3210 when deployment tier is specified3211 when tier has already been set3212 overwrites the guessed tier by the specified deployment tier3213 when tier has not been set3214 sets the specified deployment tier3215 when deployment was created by an external CD system3216 guesses the deployment tier3217 when deployment tier is not specified3218 guesses the deployment tier3219 #expanded_environment_url3220 when yaml environment uses $CI_COMMIT_REF_NAME3221 is expected to eq "http://review/master"3222 when yaml environment uses $CI_ENVIRONMENT_SLUG3223 is expected to eq "http://review/prod-slug"3224 when yaml environment uses yaml_variables containing symbol keys3225 is expected to eq "http://review/host"3226 when job variables are generated during runtime3227 expands the environment URL from the dynamic variable3228 when environment url uses a nested variable3229 is expected to eq "http://appname-master.example.com"3230 when yaml environment does not have url3231 returns the external_url from persisted environment3232 merge request metrics3233 while updating the 'first_deployed_to_production_at' time3234 for merge requests merged before the current deploy3235 sets the time if the deploy's environment is 'production'3236 does not raise errors if the merge request does not have a metrics record3237 when job deploys to staging3238 doesn't set the time if the deploy's environment is not 'production'3239 for merge requests merged before the previous deploy3240 if the 'first_deployed_to_production_at' time is already set3241 does not overwrite the older 'first_deployed_to_production_at' time3242 if the 'first_deployed_to_production_at' time is not already set3243 does not overwrite the older 'first_deployed_to_production_at' time3244UsersController routing3245 to #show3246 to #gpg_keys3247 to #groups3248 to #projects3249 to #contributed3250 to #snippets3251 to #ssh_keys3252 to #calendar3253 to #calendar_activities3254SearchController routing3255 to #show3256Mounted Apps routing3257 to API3258SnippetsController routing3259 to #raw3260 to #index3261 to #new3262 to #edit3263 to #show3264 to #raw from unscoped routing3265 behaves like redirecting a legacy path3266 redirects /snippets/1 to /-/snippets/13267HelpController routing3268 to #index3269 to #show3270ProfilesController routing3271 to #account3272 to #audit_log3273 to #reset_feed_token3274 to #show3275Profiles::PreferencesController routing3276 to #show3277 to #update3278Profiles::KeysController routing3279 to #index3280 to #create3281 to #show3282 to #destroy3283Profiles::GpgKeysController routing3284 to #index3285 to #create3286 to #destroy3287Profiles::EmailsController routing3288 to #index3289 to #create3290 to #destroy3291Profiles::AvatarsController routing3292 to #destroy3293DashboardController routing3294 to #index3295 to #issues3296 to #calendar_issues3297 to #merge_requests3298RootController routing3299 to #index3300Authentication routing3301 GET /users/sign_in3302 POST /users/sign_in3303 POST /users/sign_out3304 POST /users/password3305 GET /users/password/new3306 GET /users/password/edit3307 PUT /users/password3308 with LDAP configured3309 POST /users/auth/ldapmain/callback3310 with LDAP sign-in disabled3311 prevents POST /users/auth/ldapmain/callback3312 with multiple LDAP providers configured3313 POST /users/auth/ldapmain/callback3314 POST /users/auth/ldapsecondary/callback3315HealthCheckController routing3316 to #index3317 also supports passing checks in the url3318InvitesController routing3319 to #show3320AbuseReportsController routing3321 to #new3322SentNotificationsController routing3323 to #unsubscribe3324AutocompleteController routing3325 to #users3326 to #projects3327 to #award_emojis3328 to #merge_request_target_branches3329SandboxController routing3330 to #mermaid3331Snippets::BlobsController routing3332 to #raw3333RunnerSetupController routing3334 to #platforms3335JwksController routing3336 to #index3337WebHook3338 associations3339 is expected to have many web_hook_logs3340 validations3341 is expected to validate that :url cannot be empty/falsy3342 only consider these branch filter strategies are valid3343 url_variables3344 is expected to allow :url_variables to be ‹{}›3345 is expected to allow :url_variables to be ‹{"foo" => "bar"}›3346 is expected to allow :url_variables to be ‹{"FOO" => "bar"}›3347 is expected to allow :url_variables to be ‹{"MY_TOKEN" => "bar"}›3348 is expected to allow :url_variables to be ‹{"foo2" => "bar"}›3349 is expected to allow :url_variables to be ‹{"x" => "y"}›3350 is expected to allow :url_variables to be ‹{"x" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›3351 is expected to allow :url_variables to be ‹{"foo" => "bar", "bar" => "baz"}›3352 is expected to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value"}›3353 is expected to allow :url_variables to be ‹{"MY-TOKEN" => "bar"}›3354 is expected to allow :url_variables to be ‹{"my_secr3t-token" => "bar"}›3355 is expected to allow :url_variables to be ‹{"x-y-z" => "bar"}›3356 is expected to allow :url_variables to be ‹{"x_y_z" => "bar"}›3357 is expected to allow :url_variables to be ‹{"f.o.o" => "bar"}›3358 is expected not to allow :url_variables to be ‹[]›3359 is expected not to allow :url_variables to be ‹{"foo" => 1}›3360 is expected not to allow :url_variables to be ‹{"bar" => :baz}›3361 is expected not to allow :url_variables to be ‹{"bar" => nil}›3362 is expected not to allow :url_variables to be ‹{"foo" => ""}›3363 is expected not to allow :url_variables to be ‹{"foo" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›3364 is expected not to allow :url_variables to be ‹{"has spaces" => "foo"}›3365 is expected not to allow :url_variables to be ‹{"" => "foo"}›3366 is expected not to allow :url_variables to be ‹{"1foo" => "foo"}›3367 is expected not to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value", "k21" => "value"}›3368 is expected not to allow :url_variables to be ‹{"MY--TOKEN" => "foo"}›3369 is expected not to allow :url_variables to be ‹{"MY__SECRET" => "foo"}›3370 is expected not to allow :url_variables to be ‹{"x-_y" => "foo"}›3371 is expected not to allow :url_variables to be ‹{"x..y" => "foo"}›3372 url3373 is expected to allow :url to be ‹"http://example.com"›3374 is expected to allow :url to be ‹"https://example.com"›3375 is expected to allow :url to be ‹" https://example.com "›3376 is expected to allow :url to be ‹"http://test.com/api"›3377 is expected to allow :url to be ‹"http://test.com/api?key=abc"›3378 is expected to allow :url to be ‹"http://test.com/api?key=abc&type=def"›3379 is expected not to allow :url to be ‹"example.com"›3380 is expected not to allow :url to be ‹"ftp://example.com"›3381 is expected not to allow :url to be ‹"herp-and-derp"›3382 strips :url before saving it3383 when url is local3384 is expected not to allow :url to be ‹"http://localhost:9000"›3385 is valid if application settings allow local requests from web hooks3386 when there are URL variables3387 is expected to allow :url to be ‹"http://example.com"›3388 is expected to allow :url to be ‹"http://example.com/{one}/{two}"›3389 is expected to allow :url to be ‹"http://example.com/{one}"›3390 is expected to allow :url to be ‹"http://example.com/{two}"›3391 is expected to allow :url to be ‹"http://user:s3cret@example.com/{two}"›3392 is expected to allow :url to be ‹"http://{one}:{two}@example.com"›3393 is expected to allow :url to be ‹"http://{one}"›3394 is expected to allow :url to be ‹"{url}"›3395 is expected not to allow :url to be ‹"http://example.com/{one}/{two}/{three}"›3396 is expected not to allow :url to be ‹"http://example.com/{foo}"›3397 is expected not to allow :url to be ‹"http:{user}:{pwd}//example.com/{foo}"›3398 mentions all missing variable names3399 token3400 is expected to allow :token to be ‹"foobar"›3401 is expected not to allow :token to be ‹"foo\nbar"› or ‹"foo\r\nbar"›3402 push_events_branch_filter3403 with "all branches" strategy3404 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branchname"›, ‹"good_branchname("›, ‹"good_branchname["›, or ‹""›3405 with "wildcard" strategy3406 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good_branch_name("›, or ‹""›3407 is expected not to allow :push_events_branch_filter to be ‹"bad branch name"›, ‹"bad~branchname"›, or ‹"bad_branch_name["›3408 gets rid of whitespace3409 stores whitespace only as empty3410 with "regex" strategy3411 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branch~name"›, or ‹""›3412 is expected not to allow :push_events_branch_filter to be ‹"bad_branch_name("› or ‹"bad_branch_name["›3413 before_validation :reset_token3414 resets token if url changed3415 does not reset token if new url is set together with the same token3416 does not reset token if new url is set together with a new token3417 before_validation :reset_url_variables3418 resets url variables if url changed3419 resets url variables if url is changed but url variables stayed the same3420 resets url variables if url is changed and url variables are appended3421 resets url variables if url is changed and url variables are removed3422 does not reset url variables if both url and url variables are changed3423 without url variables3424 does not reset url variables3425 encrypted attributes3426 is expected to contain exactly :token, :url, and :url_variables3427 execute3428 #execute3429 passes force: false to the web hook service by default3430 passes force: true to the web hook service if required3431 #async_execute3432 does not async execute non-executable hooks3433 #destroy3434 does not cascade to web_hook_logs3435 #next_backoff3436 when there was no last backoff3437 is 10 minutes3438 when we have backed off once3439 is twice the initial value3440 when we have backed off 3 times3441 grows exponentially3442 when the previous backoff was large3443 does not exceed the max backoff value3444 #rate_limited?3445 is false when hook has not been rate limited3446 is true when hook has been rate limited3447 #rate_limit3448 returns the hook rate limit3449 #to_json3450 does not error3451 does not contain binary attributes3452 #interpolated_url3453 is not vulnerable to malicious input3454 when the hook URL does not contain variables3455 is expected to have attributes {:interpolated_url => "http://example.com"}3456 when the hook URL contains variables3457 is expected to have attributes {:interpolated_url => "http://example.com/abc/resource?token=xyz"}3458 when a variable is missing3459 raises an error3460 when the URL appears to include percent formatting3461 succeeds, interpolates correctly3462 #update_last_failure3463 is a method of this class3464 #masked_token3465 is expected to be nil3466 with a token3467 is expected to eq "************"3468 #backoff!3469 when we have not backed off before3470 increments the recent_failures count3471 when the recent failure value is the max value of a smallint3472 reduces to MAX_FAILURES3473 when the recent failure value is MAX_FAILURES3474 does not change recent_failures3475 when we have exhausted the grace period3476 sets disabled_until to the next backoff3477 increments the backoff count3478 when we have backed off MAX_FAILURES times3479 does not let the backoff count exceed the maximum failure count3480 does not change disabled_until3481 changes disabled_until when it has elapsed3482 #failed!3483 increments the failure count3484 does not update the hook if the the failure count exceeds the maximum value3485 when the recent failure value is the max value of a smallint3486 does not change recent_failures3487Gitlab::Diff::FileCollection::MergeRequestDiffBatch3488 initialize3489 memoizes pagination_data3490 #diff_files3491 returns paginated diff files3492 returns a valid instance of a DiffCollection3493 first page3494 returns correct diff files3495 another page3496 returns correct diff files3497 nil batch_page3498 returns correct diff files3499 nil batch_size3500 returns correct diff files3501 invalid page3502 returns correct diff files3503 last page3504 returns correct diff files3505 behaves like unfoldable diff3506 calls Gitlab::Diff::File#unfold_diff_lines with correct position3507 behaves like diff statistics3508 when include_stats is true3509 Repository#diff_stats is called3510 Gitlab::Diff::File is initialized with diff stats3511 when should not request diff stats3512 Repository#diff_stats is not called3513 behaves like cacheable diff collection3514 #write_cache3515 calls Gitlab::Diff::HighlightCache#write_if_empty3516 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats3517 #clear_cache3518 calls Gitlab::Diff::HighlightCache#clear3519 calls Gitlab::Diff::StatsCache#clear3520 #diff_files3521 calls Gitlab::Diff::HighlightCache#decorate3522 when there are stats cached3523 does not make a diff stats rpc call3524 when there are no stats cached3525 makes a diff stats rpc call3526 behaves like unsortable diff files3527 #raw_diff_files3528 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true3529BlobHelper3530 #sanitize_svg_data3531 retains essential elements3532 #edit_blob_button3533 does not render edit button when blob is not text3534 uses the passed blob instead retrieve from repository3535 returns a link with the proper route3536 returns a link with the passed link_opts on the expected route3537 #relative_raw_path3538 pointing from '/file.md' to '/-/raw/main/'3539 pointing from '/test/file.md' to '/-/raw/main/test/'3540 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'3541 viewer related3542 #blob_render_error_reason3543 for error :too_large3544 when the blob size is larger than the absolute size limit3545 returns an error message3546 when the blob size is larger than the size limit3547 returns an error message3548 for error :server_side_but_stored_externally3549 returns an error message3550 #blob_render_error_options3551 for error :collapsed3552 includes a "load it anyway" link3553 for error :too_large3554 does not include a "load it anyway" link3555 includes a "download it" link3556 when the viewer is rich3557 the blob is rendered as text3558 includes a "view the source" link3559 the blob is not rendered as text3560 does not include a "view the source" link3561 when the viewer is not rich3562 does not include a "view the source" link3563 for error :server_side_but_stored_externally3564 does not include a "load it anyway" link3565 does not include a "view the source" link3566 includes a "download it" link3567 #show_suggest_pipeline_creation_celebration?3568 when file is a pipeline config file3569 is true3570 file is invalid format3571 is false3572 does not use the default ci config3573 is false3574 does not have the needed cookie3575 is false3576 blob does not have auxiliary view3577 is false3578 when file is not a pipeline config file3579 is false3580 suggest_pipeline_commit_cookie_name3581 uses project id to make up the cookie name3582 #ide_edit_path3583 returns full IDE path3584 returns full IDE path with second -3585 returns IDE path without relative_url_root3586 escapes special characters3587 does not escape "/" character3588 when user is not logged in3589 returns IDE path inside the project3590 when user cannot push to the project3591 returns IDE path with the user's fork3592 #ide_merge_request_path3593 returns IDE path for the given MR if MR is not merged3594 when the MR comes from a fork3595 returns IDE path for MR in the forked repo with target project included as param3596 when the MR is merged3597 returns default IDE url with master branch3598 includes file path passed3599 when target branch exists3600 returns IDE edit url with the target branch3601 #ide_fork_and_edit_path3602 returns path to fork the repo with a redirect param to the full IDE path3603 does not include notice params with_notice: false3604 when user is not logged in3605 returns nil3606 #fork_and_edit_path3607 returns path to fork the repo with a redirect param to the full edit path3608 when user is not logged in3609 returns nil3610 #editing_ci_config?3611 when path is nil3612 is expected to be falsey3613 when path is not a ci file3614 is expected to be falsey3615 when path ends is gitlab-ci.yml3616 is expected to be truthy3617 when path ends with gitlab-ci.yml3618 is expected to be truthy3619 with custom ci paths3620 is expected to be truthy3621 with custom ci config and path3622 is expected to be truthy3623 #vue_blob_app_data3624 returns data related to blob app3625Mutations::MergeRequests::SetLabels3626 is expected to require graphql authorizations :update_merge_request3627 #resolve3628 behaves like permission level for merge request mutation is correctly verified3629 when the user is not a project member3630 behaves like when the user does not have access to the resource3631 raises an error3632 even if assigned to the merge request3633 does not modify merge request3634 even if reviewer of the merge request3635 raises an error3636 even if author of the merge request3637 raises an error3638 when the user is a project member3639 with guest role3640 behaves like when the user does not have access to the resource3641 raises an error3642 even if assigned to the merge request3643 does not modify merge request3644 even if reviewer of the merge request3645 raises an error3646 even if author of the merge request3647 raises an error3648 with reporter role3649 behaves like when the user does not have access to the resource3650 raises an error3651 even if assigned to the merge request3652 does not modify merge request3653 even if reviewer of the merge request3654 raises an error3655 even if author of the merge request3656 raises an error3657 when the user can update the merge request3658 sets the labels, removing all others3659 returns errors merge request could not be updated3660 when passing an empty array3661 removes all labels3662 when passing operation_mode as APPEND3663 sets the labels, without removing others3664 when passing operation_mode as REMOVE3665 removes the labels, without removing others3666Groups routing3667 complex group path with dot3668 to #show3669 also supports nested groups3670 also display group#show on the short path3671 to #details3672 to #activity3673 to #issues3674 to #members3675 to #labels3676 to #milestones3677 to #runner_setup_scripts3678 routes to the avatars controller3679 routes to the boards controller3680 routes to the harbor repositories controller3681 routes to the harbor artifacts controller3682 routes to the harbor tags controller3683 routes to the observability controller explore method3684 routes to the observability controller datasources method3685 routes to the usage quotas controller3686 group path starting with help3687 to #show3688 also supports nested groups3689 also display group#show on the short path3690 to #details3691 to #activity3692 to #issues3693 to #members3694 to #labels3695 to #milestones3696 to #runner_setup_scripts3697 routes to the avatars controller3698 routes to the boards controller3699 routes to the harbor repositories controller3700 routes to the harbor artifacts controller3701 routes to the harbor tags controller3702 routes to the observability controller explore method3703 routes to the observability controller datasources method3704 routes to the usage quotas controller3705 group path starting with projects3706 to #show3707 also supports nested groups3708 also display group#show on the short path3709 to #details3710 to #activity3711 to #issues3712 to #members3713 to #labels3714 to #milestones3715 to #runner_setup_scripts3716 routes to the avatars controller3717 routes to the boards controller3718 routes to the harbor repositories controller3719 routes to the harbor artifacts controller3720 routes to the harbor tags controller3721 routes to the observability controller explore method3722 routes to the observability controller datasources method3723 routes to the usage quotas controller3724 dependency proxy for containers3725 routes to #authenticate3726 routes to #upload_manifest3727 routes to #upload_blob3728 routes to #upload_manifest_authorize3729 routes to #upload_blob_authorize3730 image name without namespace3731 routes to #manifest3732 routes to #blob3733 does not route to #blob with an invalid sha3734 does not route to #blob with an invalid image3735 image name with namespace3736 routes to #manifest3737 routes to #blob3738Labels::PromoteService3739 #execute3740 without a group3741 fails on project without group3742 with a group3743 fails on group label3744 when there is an existing identical group label3745 uses the existing group label3746 does not create a new group label clone3747 behaves like promoting a project label to a group label3748 is truthy on success3749 removes all project labels with that title within the group3750 keeps users' subscriptions3751 recreates priorities3752 does not touch project out of promoted group3753 does not touch out of group priority3754 relinks issue with the promoted label3755 does not remove untouched labels from issue3756 does not relink untouched label in issue3757 relinks issues with merged labels3758 does not relink issues from other group3759 updates merge request3760 updates board lists3761 relinks all relations3762 when there is no existing identical group label3763 recreates the label as a group label3764 copies title, description and color to cloned group label3765 behaves like promoting a project label to a group label3766 is truthy on success3767 removes all project labels with that title within the group3768 keeps users' subscriptions3769 recreates priorities3770 does not touch project out of promoted group3771 does not touch out of group priority3772 relinks issue with the promoted label3773 does not remove untouched labels from issue3774 does not relink untouched label in issue3775 relinks issues with merged labels3776 does not relink issues from other group3777 updates merge request3778 updates board lists3779 relinks all relations3780NotificationRecipient3781 #notifiable?3782 when emails are disabled3783 returns false if group disabled3784 returns false if project disabled3785 when emails are enabled3786 returns true if group enabled3787 returns true if project enabled3788 when recipient email is blocked3789 with permanent failures3790 returns false3791 with temporary failures3792 returns false3793 #has_access?3794 user cannot read cross project3795 returns false3796 user cannot read build3797 returns false3798 user cannot read commit3799 returns false3800 target has no policy3801 returns true3802 #notification_setting3803 for child groups3804 when notification setting is global3805 considers notification setting from the first parent without global setting3806 when notification setting is not global3807 considers notification setting from lowest group member in hierarchy3808 #suitable_notification_level?3809 when notification level is mention3810 when type is mention3811 returns true3812 when type is not mention3813 returns false3814 when notification level is participating3815 when type is participating3816 returns true3817 when type is mention3818 returns true3819 with custom action3820 when action is failed_pipeline3821 returns true3822 when action is fixed_pipeline3823 returns true3824 when action is not fixed_pipeline or failed_pipeline3825 returns false3826 when notification level is custom3827 when type is participating3828 with custom event enabled3829 returns true3830 without custom event enabled3831 returns true3832 when type is mention3833 with custom event enabled3834 returns true3835 without custom event enabled3836 returns true3837 when type is watch3838 with custom event enabled3839 returns true3840 without custom event enabled3841 returns false3842 when custom_action is fixed_pipeline and success_pipeline event is enabled3843 returns true3844 with merge_when_pipeline_succeeds3845 custom event enabled3846 returns true3847 custom event disabled3848 returns false3849 when notification level is watch3850 when type is watch3851 without excluded watcher events3852 returns true3853 with excluded watcher events3854 returns false3855 when type is not watch3856 without excluded watcher events3857 returns true3858 with excluded watcher events3859 returns true3860Ci::PipelinesFinder3861 #execute3862 when params is empty3863 returns all pipelines3864 when scope is running3865 returns matched pipelines3866 when scope is pending3867 returns matched pipelines3868 when scope is finished3869 returns matched pipelines3870 when scope is branches or tags3871 when scope is branches3872 returns matched pipelines3873 when scope is tags3874 returns matched pipelines3875 when project has child pipelines3876 filters out child pipelines and shows only the parents by default3877 when status is created3878 returns matched pipelines3879 when status is waiting_for_resource3880 returns matched pipelines3881 when status is preparing3882 returns matched pipelines3883 when status is pending3884 returns matched pipelines3885 when status is running3886 returns matched pipelines3887 when status is success3888 returns matched pipelines3889 when status is failed3890 returns matched pipelines3891 when status is canceled3892 returns matched pipelines3893 when status is skipped3894 returns matched pipelines3895 when status is manual3896 returns matched pipelines3897 when status is scheduled3898 returns matched pipelines3899 when ref is specified3900 when ref exists3901 returns matched pipelines3902 when ref does not exist3903 returns empty3904 when username is specified3905 when username exists3906 returns matched pipelines3907 when username does not exist3908 returns empty3909 when yaml_errors is specified3910 when yaml_errors is true3911 returns matched pipelines3912 when yaml_errors is false3913 returns matched pipelines3914 when yaml_errors is invalid3915 returns all pipelines3916 when updated_at filters are specified3917 returns deployments with matched updated_at3918 when iids filter is specified3919 returns matches pipelines3920 does not fitler out child pipelines3921 when sha is specified3922 when sha exists3923 returns matched pipelines3924 when sha does not exist3925 returns empty3926 when the project has limited access to pipelines3927 when the user has access3928 is expected to return pipelines3929 the user is not allowed to read pipelines3930 returns empty3931 when source is specified3932 returns only the matched pipeline3933 when name is specified3934 performs exact compare3935 when name does not exist3936 returns empty3937 when pipeline_name_search feature flag is off3938 ignores name parameter3939 ordering3940 order_by: "id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3941 returns the pipelines ordered3942 order_by: "id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3943 returns the pipelines ordered3944 order_by: "ref", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]3945 returns the pipelines ordered3946 order_by: "ref", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]3947 returns the pipelines ordered3948 order_by: "status", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_1, :pipeline_3]3949 returns the pipelines ordered3950 order_by: "status", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_1, :pipeline_2]3951 returns the pipelines ordered3952 order_by: "updated_at", sort: "asc", ordered_pipelines: [:pipeline_2, :pipeline_3, :pipeline_1]3953 returns the pipelines ordered3954 order_by: "updated_at", sort: "desc", ordered_pipelines: [:pipeline_1, :pipeline_3, :pipeline_2]3955 returns the pipelines ordered3956 order_by: "user_id", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3957 returns the pipelines ordered3958 order_by: "user_id", sort: "desc", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3959 returns the pipelines ordered3960 order_by: "invalid", sort: "asc", ordered_pipelines: [:pipeline_1, :pipeline_2, :pipeline_3]3961 returns the pipelines ordered3962 order_by: "id", sort: "err", ordered_pipelines: [:pipeline_3, :pipeline_2, :pipeline_1]3963 returns the pipelines ordered3964MergeRequestsHelper3965 #format_mr_branch_names3966 within the same project3967 is expected to eq ["master", "feature"]3968 within different projects3969 is expected to eq ["group201/project-563:master", "namespace517/project-562:feature"]3970 #diffs_tab_pane_data3971 for endpoint_diff_for_path3972 when sub-group project namespace3973 returns expected values3974 #merge_path_description3975 forked with arrow3976 is expected to eq "Project:Branches: group204/project-566:master → namespace519/project-565:feature"3977 forked default3978 is expected to eq "Project:Branches: group205/project-568:master to namespace520/project-567:feature"3979 with arrow3980 is expected to eq "Branches: master → feature"3981 default3982 is expected to eq "Branches: master to feature"3983 #tab_link_for3984 supports the :force_link option3985 removes the data-toggle attributes3986 #user_merge_requests_counts3987 returns assigned, review requested and total merge request counts3988 #reviewers_label3989 when multiple reviewers exist3990 returns reviewer label with reviewer names3991 returns reviewer label only with include_value: false3992 when the name contains a URL3993 returns sanitized name3994 when one reviewer exists3995 returns reviewer label with no names3996 returns reviewer label only with include_value: false3997 when no reviewers exist3998 returns reviewer label with no names3999 returns reviewer label only with include_value: false4000 #merge_request_source_branch4001 when merge request is a fork4002 does show the fork icon4003 when merge request is not a fork4004 does not show the fork icon4005 #tab_count_display4006 when merge request is preparing4007 is expected to eq "-"4008 is expected to eq "-"4009 when merge request is prepared4010 is expected to eq 104011 is expected to eq "10"4012ApplicationRecord4013 #id_in4014 returns records of the ids4015 .safe_ensure_unique4016 returns false when ActiveRecord::RecordNotUnique is raised4017 retries based on retry count specified4018 safe find or create methods4019 .safe_find_or_create_by4020 creates the suggestion avoiding race conditions4021 passes a block to find_or_create_by4022 does not create a record when is not valid4023 .safe_find_or_create_by!4024 creates a record using safe_find_or_create_by4025 raises a validation error if the record was not persisted4026 passes a block to find_or_create_by4027 raises a record not found error in case of attributes mismatch4028 .underscore4029 returns the underscored value of the class as a string4030 .where_exists4031 produces a WHERE EXISTS query4032 .where_not_exists4033 produces a WHERE NOT EXISTS query4034 .transaction4035 opens a new transaction4036 does not increment a counter when a transaction is not nested4037 increments a counter when a nested transaction is created4038 increments a counter when a transaction is created in ActiveRecord4039 .with_fast_read_statement_timeout4040 when the query runs faster than configured timeout4041 executes the query without error4042 when the query runs longer than configured timeout4043 cancels the query and raises an exception4044 with database load balancing4045 yields control4046 when the query runs faster than configured timeout4047 executes the query without error4048 when the query runs longer than configured timeout4049 cancels the query and raiss an exception4050 .default_select_columns4051 without an ignored column4052 behaves like selects identically to the default4053 generates the same sql as the default4054 with an ignored column4055 behaves like selects identically to the default4056 generates the same sql as the default4057MergeRequests::CreatePipelineService4058 #execute4059 creates a detached merge request pipeline4060 defaults to merge_request_event4061 when push options contain ci.skip4062 creates a skipped pipeline4063 with fork merge request4064 when actor has permission to create pipelines in target project4065 creates a pipeline in the target project4066 when the feature is disabled in CI/CD settings4067 creates a pipeline in the source project4068 when source branch is protected4069 when actor does not have permission to update the protected branch in target project4070 creates a pipeline in the source project4071 when actor has permission to update the protected branch in target project4072 creates a pipeline in the target project4073 when actor has permission to create pipelines in forked project4074 creates a pipeline in the source project4075 when actor does not have permission to create pipelines4076 responds with error4077 when service is called multiple times4078 creates a pipeline once4079 when allow_duplicate option is true4080 creates pipelines multiple times4081 when .gitlab-ci.yml does not use workflow:rules4082 without only: [merge_requests] keyword4083 does not create a pipeline4084 with rules that specify creation on a tag4085 does not create a pipeline4086 when workflow:rules are specified4087 when rules request creation on merge request4088 creates a detached merge request pipeline4089 with rules do specify creation on a tag4090 does not create a pipeline4091 when merge request has no commits4092 does not create a pipeline4093 when merge request pipeline creates a dynamic environment4094 associates merge request with the environment4095NamespaceFileUploader4096 behaves like builds correct paths4097 #store_dir4098 behaves like matches the method pattern4099 is expected to match /uploads\/-\/system\/namespace\/\d+/4100 #cache_dir4101 behaves like matches the method pattern4102 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4103 #work_dir4104 behaves like matches the method pattern4105 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4106 #upload_path4107 behaves like matches the method pattern4108 is expected to match /\h+\/\S+/4109 #relative_path4110 is relative (PENDING: Path not set, skipping.)4111 .absolute_path4112 behaves like matches the method pattern4113 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/namespace\/\d+\/(?-mix:\h+\/\S+)/4114 .base_dir4115 behaves like matches the method pattern4116 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4117 path traversal exploits4118 throws an exception4119 object_store is REMOTE4120 behaves like builds correct paths4121 #store_dir4122 behaves like matches the method pattern4123 is expected to match /namespace\/\d+\/\h+/4124 #cache_dir4125 behaves like matches the method pattern4126 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4127 #work_dir4128 behaves like matches the method pattern4129 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4130 #upload_path4131 behaves like matches the method pattern4132 is expected to match /\h+\/\S+/4133 #relative_path4134 is relative (PENDING: Path not set, skipping.)4135 .absolute_path4136 behaves like matches the method pattern4137 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4138 .base_dir4139 behaves like matches the method pattern4140 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4141 path traversal exploits4142 throws an exception4143 .base_dir4144 returns local storage base_dir without store param4145 returns local storage base_dir when store param is Store::LOCAL4146 returns remote base_dir when store param is Store::REMOTE4147 #workhorse_local_upload_path4148 returns the correct path in uploads directory4149 #migrate!4150 behaves like migrates4151 returns corresponding file type4152 does nothing when migrating to the current store4153 migrate to the specified store4154 removes the original file after the migration4155 can access to the original file during migration4156 when migrate! is not occupied by another process4157 executes migrate!4158 executes use_file4159 when migrate! is occupied by another process4160 does not execute migrate!4161 does not execute use_file4162 migration is unsuccessful4163 when the store is not supported4164 does not update the object_store4165 does not delete the original file4166 upon a fog failure4167 does not update the object_store4168 does not delete the original file4169 upon a database failure4170 does not update the object_store4171 does not delete the original file4172 behaves like migrates4173 returns corresponding file type4174 does nothing when migrating to the current store4175 migrate to the specified store4176 removes the original file after the migration4177 can access to the original file during migration4178 when migrate! is not occupied by another process4179 executes migrate!4180 executes use_file4181 when migrate! is occupied by another process4182 does not execute migrate!4183 does not execute use_file4184 migration is unsuccessful4185 when the store is not supported4186 does not update the object_store4187 does not delete the original file4188 upon a fog failure4189 does not update the object_store4190 does not delete the original file4191 upon a database failure4192 does not update the object_store4193 does not delete the original file4194 copy_to4195 files are stored locally4196 generates a new secret4197 creates new upload correctly4198 copies the file4199 copies the file to the correct location4200 files are stored remotely4201 generates a new secret4202 creates new upload correctly4203 copies the file4204 copies the file to the correct location4205Gitlab::Ci::Pipeline::Chain::Command4206 #initialize4207 properly initialises object from hash4208 handling of origin_ref4209 #branch_exists?4210 for existing branch4211 is expected to eq true4212 for fully described tag ref4213 is expected to eq false4214 for fully described branch ref4215 is expected to eq true4216 for invalid branch4217 is expected to eq false4218 #tag_exists?4219 for existing ref4220 is expected to eq true4221 for fully described tag ref4222 is expected to eq true4223 for fully described branch ref4224 is expected to eq false4225 for invalid ref4226 is expected to eq false4227 #merge_request_ref_exists?4228 for existing merge request ref4229 is expected to eq true4230 for branch ref4231 is expected to eq false4232 #ref4233 for regular ref4234 is expected to eq "master"4235 for branch ref4236 is expected to eq "master"4237 for tag ref4238 is expected to eq "1.0.0"4239 for other refs4240 is expected to eq "refs/merge-requests/11/head"4241 #sha4242 when invalid checkout_sha is specified4243 returns empty value4244 when a valid checkout_sha is specified4245 returns checkout_sha4246 when a valid after_sha is specified4247 returns after_sha4248 when a valid origin_ref is specified4249 returns SHA for given ref4250 #origin_sha4251 when using checkout_sha and after_sha4252 uses checkout_sha4253 when using after_sha only4254 uses after_sha4255 #before_sha4256 when using checkout_sha and before_sha4257 uses before_sha4258 when using checkout_sha only4259 uses checkout_sha4260 when checkout_sha and before_sha are empty4261 uses BLANK_SHA4262 #source_sha4263 when source_sha is specified4264 returns the specified value4265 #target_sha4266 when target_sha is specified4267 returns the specified value4268 #protected_ref?4269 when a ref is protected4270 is expected to eq true4271 when a ref is unprotected4272 is expected to eq false4273 #ambiguous_ref4274 when ref is not ambiguous4275 is expected to eq false4276 when ref is ambiguous4277 is expected to eq true4278 #creates_child_pipeline?4279 when bridge is present4280 when bridge triggers a child pipeline4281 is expected to be truthy4282 when bridge triggers a multi-project pipeline4283 is expected to be falsey4284 when bridge is not present4285 is expected to be falsey4286 #parent_pipeline_partition_id4287 when bridge is present4288 when bridge triggers a child pipeline4289 is expected to eq 1234290 when bridge triggers a multi-project pipeline4291 is expected to be nil4292 when bridge is not present4293 is expected to be nil4294 #increment_pipeline_failure_reason_counter4295 increments the error metric4296 when the reason is nil4297 increments the error metric with unknown_failure4298 #observe_creation_duration4299 records the duration as histogram4300 when project is gitlab-org/gitlab4301 tracks the duration with the expected label4302 #observe_step_duration4303 when ci_pipeline_creation_step_duration_tracking is enabled4304 adds the duration to the step duration histogram4305 when ci_pipeline_creation_step_duration_tracking is disabled4306 does nothing4307 #observe_pipeline_size4308 logs the pipeline total size to histogram4309Gitlab::Ci::CronParser4310 #next_time_from4311 behaves like when cron and cron_timezone are valid4312 when specific time4313 returns exact time4314 behaves like returns time in the future4315 is expected to be > 2023-06-02 06:36:43 +00004316 when specific day of week4317 returns exact day of week4318 behaves like returns time in the future4319 is expected to be > 2023-06-02 06:36:43 +00004320 when */ used4321 returns specific time4322 behaves like returns time in the future4323 is expected to be > 2023-06-02 06:36:43 +00004324 when range used4325 returns specific time4326 behaves like returns time in the future4327 is expected to be > 2023-06-02 06:36:43 +00004328 when range and / are used4329 returns specific time4330 behaves like returns time in the future4331 is expected to be > 2023-06-02 06:36:43 +00004332 when / is used4333 returns specific time4334 behaves like returns time in the future4335 is expected to be > 2023-06-02 06:36:43 +00004336 when cron_timezone is TZInfo format4337 when cron_timezone is US/Pacific4338 behaves like returns time in the future4339 is expected to be > 2023-06-02 06:36:43 +00004340 when PST (Pacific Standard Time)4341 converts time in server time zone4342 when PDT (Pacific Daylight Time)4343 converts time in server time zone4344 when cron_timezone is ActiveSupport::TimeZone format4345 when cron_timezone is Berlin4346 behaves like returns time in the future4347 is expected to be > 2023-06-02 06:36:43 +00004348 when CET (Central European Time)4349 converts time in server time zone4350 when CEST (Central European Summer Time)4351 converts time in server time zone4352 behaves like when cron_timezone is Eastern Time (US & Canada)4353 behaves like returns time in the future4354 is expected to be > 2023-06-02 06:36:43 +00004355 when EST (Eastern Standard Time)4356 converts time in server time zone4357 when EDT (Eastern Daylight Time)4358 converts time in server time zone4359 when time crosses a Daylight Savings boundary4360 generates day without TZInfo::AmbiguousTime error4361 behaves like when cron and cron_timezone are invalid4362 is expected to be nil4363 behaves like when cron syntax is quoted4364 is expected to be nil4365 behaves like when cron syntax is rufus-scheduler syntax4366 is expected to be nil4367 behaves like when cron is scheduled to a non existent day4368 is expected to be nil4369 #previous_time_from4370 behaves like when cron and cron_timezone are valid4371 when specific time4372 returns exact time4373 behaves like returns time in the past4374 is expected to be < 2023-06-02 06:36:44 +00004375 when specific day of week4376 returns exact day of week4377 behaves like returns time in the past4378 is expected to be < 2023-06-02 06:36:44 +00004379 when */ used4380 returns specific time4381 behaves like returns time in the past4382 is expected to be < 2023-06-02 06:36:44 +00004383 when range used4384 returns specific time4385 behaves like returns time in the past4386 is expected to be < 2023-06-02 06:36:44 +00004387 when range and / are used4388 returns specific time4389 behaves like returns time in the past4390 is expected to be < 2023-06-02 06:36:44 +00004391 when / is used4392 returns specific time4393 behaves like returns time in the past4394 is expected to be < 2023-06-02 06:36:44 +00004395 when cron_timezone is TZInfo format4396 when cron_timezone is US/Pacific4397 behaves like returns time in the past4398 is expected to be < 2023-06-02 06:36:44 +00004399 when PST (Pacific Standard Time)4400 converts time in server time zone4401 when PDT (Pacific Daylight Time)4402 converts time in server time zone4403 when cron_timezone is ActiveSupport::TimeZone format4404 when cron_timezone is Berlin4405 behaves like returns time in the past4406 is expected to be < 2023-06-02 06:36:44 +00004407 when CET (Central European Time)4408 converts time in server time zone4409 when CEST (Central European Summer Time)4410 converts time in server time zone4411 behaves like when cron_timezone is Eastern Time (US & Canada)4412 behaves like returns time in the past4413 is expected to be < 2023-06-02 06:36:44 +00004414 when EST (Eastern Standard Time)4415 converts time in server time zone4416 when EDT (Eastern Daylight Time)4417 converts time in server time zone4418 when time crosses a Daylight Savings boundary4419 generates day without TZInfo::AmbiguousTime error4420 behaves like when cron and cron_timezone are invalid4421 is expected to be nil4422 behaves like when cron syntax is quoted4423 is expected to be nil4424 behaves like when cron syntax is rufus-scheduler syntax4425 is expected to be nil4426 behaves like when cron is scheduled to a non existent day4427 is expected to be nil4428 #cron_valid?4429 when cron is valid4430 is expected to eq true4431 when cron is invalid4432 is expected to eq false4433 when cron syntax is quoted4434 is expected to eq false4435 #cron_timezone_valid?4436 when cron is valid4437 is expected to eq true4438 when cron is invalid4439 is expected to eq false4440 when cron_timezone is ActiveSupport::TimeZone format4441 is expected to eq true4442 .parse_natural4443 when repeat cycle is day4444 generates daily cron expression4445 when repeat cycle is week4446 generates weekly cron expression4447 when repeat cycle is month4448 generates monthly cron expression4449 when an unsupported duration is specified4450 raises an exception4451 when repeat cycle is year4452 generates yearly cron expression4453 when the repeat cycle is not implemented4454 raises an exception4455 #match?4456 when cron matches up4457 is expected to eq true4458 when cron does not match4459 is expected to eq false4460Gitlab::Workhorse4461 .send_git_archive4462 sets the header correctly4463 when archive caching is disabled4464 tells workhorse not to use the cache4465 when the repository doesn't have an archive file path4466 raises an error4467 .send_git_patch4468 sets the header correctly4469 .channel_websocket4470 without ca_pem4471 is expected to eq {"Channel"=>{"Header"=>{"Authorization"=>["Token x"]}, "MaxSessionTime"=>600, "Subprotocols"=>["foo"], "Url"=>"wss://example.com/terminal.ws"}}4472 with ca_pem4473 is expected to eq {"Channel"=>{"CAPem"=>"foo", "Header"=>{"Authorization"=>["Token x"]}, "MaxSessionTime"=>600, "Subprotocols"=>["foo"], "Url"=>"wss://example.com/terminal.ws"}}4474 .send_git_diff4475 sets the header correctly4476 #verify_api_request!4477 accepts a correct header4478 raises an error when the header is not set4479 raises an error when the header is not signed4480 raises an error when the header is signed with the wrong key4481 raises an error when the issuer is incorrect4482 .git_http_ok4483 is expected to include {:GL_ID => "user-1089", :GL_USERNAME => "user583", :GL_REPOSITORY => "project-522", :ShowAllRefs => false}4484 includes a Repository param4485 when the repo_type is a wiki4486 is expected to include {:GL_ID => "user-1091", :GL_USERNAME => "user585", :GL_REPOSITORY => "wiki-522", :ShowAllRefs => false}4487 when git_upload_pack action is passed4488 is expected to include {:GitalyServer => {:call_metadata => {"gitaly-feature-enforce-requests-limits" => "true", "user_id" => "user-1092", "username" => "user586"}, :address => "unix:tmp/tests/gitaly/praefect.socket", :token => "secret"}}4489 show_all_refs enabled4490 is expected to include {:ShowAllRefs => true}4491 when a feature flag is set for a single project4492 sets the flag to true for that project4493 sets the flag to false for other projects4494 sets the flag to false when there is no project4495 when git_receive_pack action is passed4496 is expected to include {:GitalyServer => {:call_metadata => {"gitaly-feature-enforce-requests-limits" => "true", "user_id" => "user-1099", "username" => "user592"}, :address => "unix:tmp/tests/gitaly/praefect.socket", :token => "secret"}}4497 when info_refs action is passed4498 is expected to include {:GitalyServer => {:call_metadata => {"gitaly-feature-enforce-requests-limits" => "true", "user_id" => "user-1100", "username" => "user593"}, :address => "unix:tmp/tests/gitaly/praefect.socket", :token => "secret"}}4499 show_all_refs enabled4500 is expected to include {:ShowAllRefs => true}4501 when action passed is not supported by Gitaly4502 is expected to raise Exception with "Unsupported action: download"4503 when receive_max_input_size has been updated4504 returns custom git config4505 when receive_max_input_size is empty4506 returns an empty git config4507 when remote_ip is available in the application context4508 includes a RemoteIP params4509 when remote_ip is not available in the application context4510 does not include RemoteIP params4511 .set_key_and_notify4512 when we set a new key4513 behaves like set and notify4514 set and return the same value4515 set and notify4516 when we set an existing key4517 and overwrite4518 behaves like set and notify4519 set and return the same value4520 set and notify4521 and do not overwrite4522 try to set but return the previous value4523 does not notify4524 .detect_content_type4525 returns array setting detect content type in workhorse4526 .send_git_blob4527 sets the header correctly4528 .send_url4529 sets the header correctly4530 when body, headers and method are specified4531 sets the header correctly4532 .send_scaled_image4533 sets the header correctly4534 .send_dependency4535 sets the header correctly4536 .send_git_snapshot4537 sets the header correctly4538ContainerRegistry::Path4539 #components4540 splits components by a forward slash4541 #nodes4542 when repository path is valid4543 return all project path like node in reverse order4544 when repository path is invalid4545 rasises en error4546 #to_s4547 when path does not have uppercase characters4548 return a string with a repository path4549 when path has uppercase characters4550 return a string with a repository path4551 #valid?4552 when path has less than two components4553 is expected not to be valid4554 when path has more than allowed number of components4555 is expected not to be valid4556 when path has invalid characters4557 is expected not to be valid4558 when path has two or more components4559 is expected to be valid4560 when path is related to multi-level image4561 is expected to be valid4562 when path contains uppercase letters4563 is expected to be valid4564 when path contains double underscore4565 is expected to be valid4566 when path contains invalid separator with dot4567 is expected not to be valid4568 when path contains invalid separator with underscore4569 is expected not to be valid4570 #has_repository?4571 when project exists4572 when path already has matching repository4573 is expected to have repository4574 is expected to have project4575 when path does not have matching repository4576 is expected not to have repository4577 is expected to have project4578 when project does not exist4579 is expected not to have repository4580 is expected not to have project4581 #repository_project4582 when project for given path exists4583 returns a correct project4584 when project for given path does not exist4585 returns nil4586 when matching multi-level path4587 when using the zero-level path4588 supports zero-level path4589 when using first-level path4590 supports first-level path4591 when using second-level path4592 supports second-level path4593 when using too deep nesting in the path4594 does not support three-levels of nesting4595 #repository_name4596 when project does not exist4597 returns nil4598 when project exists4599 when project path equal repository path4600 returns an empty string4601 when repository path has one additional level4602 returns a correct repository name4603 when repository path has two additional levels4604 returns a correct repository name4605 #project_path4606 when project does not exist4607 returns nil4608 when project with uppercase characters in path exists4609 returns downcased project path4610Ci::PendingBuild4611 associations4612 is expected to belong to project required: false4613 is expected to belong to build required: false4614 is expected to belong to namespace required: false4615 scopes4616 .with_instance_runners4617 when pending builds cannot be picked up by runner4618 returns an empty collection of pending builds4619 when pending builds can be picked up by runner4620 returns matching pending builds4621 .for_tags4622 when tag_ids match pending builds4623 returns matching pending builds4624 when tag_ids does not match pending builds4625 returns matching pending builds without tags4626 when tag_ids is not provided4627 with a nil value4628 returns matching pending builds without tags4629 with an empty array4630 returns matching pending builds without tags4631 .upsert_from_build!4632 another pending entry does not exist4633 creates a new pending entry4634 when another queuing entry exists for given build4635 returns a build id as a result4636 when project does not have shared runners enabled4637 sets instance_runners_enabled to false4638 when project has shared runner4639 sets instance_runners_enabled to true4640 when project is about to be deleted4641 sets instance_runners_enabled to false4642 when builds are disabled4643 sets instance_runners_enabled to false4644 when build has tags4645 sets tag_ids4646 when a build project is nested in a subgroup4647 when build can be picked by a group runner4648 denormalizes namespace traversal ids4649 when build can not be picked by a group runner4650 creates an empty namespace traversal ids array4651 partitioning4652 assigns the same partition id as the one that build has (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)4653 behaves like cleanup by a loose foreign key4654 cleans up (delete or nullify) the model4655 behaves like cleanup by a loose foreign key4656 cleans up (delete or nullify) the model4657Gitlab::SidekiqConfig::WorkerMatcher4658 #match?4659 with valid input4660 query: "worker_name=WorkerA", expected_metadatas: ["WorkerA"]4661 is expected to contain exactly "WorkerA"4662 query: "worker_name=WorkerA2", expected_metadatas: ["WorkerA2"]4663 is expected to contain exactly "WorkerA2"4664 query: "worker_name=WorkerB|worker_name=WorkerD", expected_metadatas: ["WorkerB"]4665 is expected to contain exactly "WorkerB"4666 query: "worker_name!=WorkerA", expected_metadatas: ["WorkerA2", "WorkerB", "WorkerC"]4667 is expected to contain exactly "WorkerA2", "WorkerB", and "WorkerC"4668 query: "feature_category=category_a", expected_metadatas: ["WorkerA", "WorkerA2"]4669 is expected to contain exactly "WorkerA" and "WorkerA2"4670 query: "feature_category=category_a,category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]4671 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"4672 query: "feature_category=category_a|feature_category=category_c", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]4673 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"4674 query: "feature_category!=category_a", expected_metadatas: ["WorkerB", "WorkerC"]4675 is expected to contain exactly "WorkerB" and "WorkerC"4676 query: "has_external_dependencies=true", expected_metadatas: ["WorkerB"]4677 is expected to contain exactly "WorkerB"4678 query: "has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]4679 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"4680 query: "has_external_dependencies=true,false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]4681 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"4682 query: "has_external_dependencies=true|has_external_dependencies=false", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]4683 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"4684 query: "has_external_dependencies!=true", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerC"]4685 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerC"4686 query: "urgency=high", expected_metadatas: ["WorkerA2", "WorkerB"]4687 is expected to contain exactly "WorkerA2" and "WorkerB"4688 query: "urgency=low", expected_metadatas: ["WorkerA"]4689 is expected to contain exactly "WorkerA"4690 query: "urgency=high,low,throttled", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]4691 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"4692 query: "urgency=low|urgency=throttled", expected_metadatas: ["WorkerA", "WorkerC"]4693 is expected to contain exactly "WorkerA" and "WorkerC"4694 query: "urgency!=high", expected_metadatas: ["WorkerA", "WorkerC"]4695 is expected to contain exactly "WorkerA" and "WorkerC"4696 query: "name=a", expected_metadatas: ["WorkerA"]4697 is expected to contain exactly "WorkerA"4698 query: "name=a,b", expected_metadatas: ["WorkerA", "WorkerB"]4699 is expected to contain exactly "WorkerA" and "WorkerB"4700 query: "name=a,a:2|name=b", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]4701 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"4702 query: "name!=a,a:2", expected_metadatas: ["WorkerB", "WorkerC"]4703 is expected to contain exactly "WorkerB" and "WorkerC"4704 query: "resource_boundary=memory", expected_metadatas: ["WorkerB", "WorkerC"]4705 is expected to contain exactly "WorkerB" and "WorkerC"4706 query: "resource_boundary=memory,cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]4707 is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"4708 query: "resource_boundary=memory|resource_boundary=cpu", expected_metadatas: ["WorkerA", "WorkerB", "WorkerC"]4709 is expected to contain exactly "WorkerA", "WorkerB", and "WorkerC"4710 query: "resource_boundary!=memory,cpu", expected_metadatas: ["WorkerA2"]4711 is expected to contain exactly "WorkerA2"4712 query: "tags=no_disk_io", expected_metadatas: ["WorkerA", "WorkerB"]4713 is expected to contain exactly "WorkerA" and "WorkerB"4714 query: "tags=no_disk_io,git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]4715 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"4716 query: "tags=no_disk_io|tags=git_access", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB"]4717 is expected to contain exactly "WorkerA", "WorkerA2", and "WorkerB"4718 query: "tags=no_disk_io&tags=git_access", expected_metadatas: ["WorkerA"]4719 is expected to contain exactly "WorkerA"4720 query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]4721 is expected to contain exactly "WorkerA2" and "WorkerC"4722 query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]4723 is expected to contain exactly "WorkerC"4724 query: "tags=unknown_tag", expected_metadatas: []4725 is expected to contain exactly4726 query: "tags!=no_disk_io", expected_metadatas: ["WorkerA2", "WorkerC"]4727 is expected to contain exactly "WorkerA2" and "WorkerC"4728 query: "tags!=no_disk_io,git_access", expected_metadatas: ["WorkerC"]4729 is expected to contain exactly "WorkerC"4730 query: "tags!=unknown_tag", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]4731 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"4732 query: "feature_category=category_a&urgency=high", expected_metadatas: ["WorkerA2"]4733 is expected to contain exactly "WorkerA2"4734 query: "feature_category=category_a&urgency=high|feature_category=category_c", expected_metadatas: ["WorkerA2", "WorkerC"]4735 is expected to contain exactly "WorkerA2" and "WorkerC"4736 query: "*", expected_metadatas: ["WorkerA", "WorkerA2", "WorkerB", "WorkerC"]4737 is expected to contain exactly "WorkerA", "WorkerA2", "WorkerB", and "WorkerC"4738 with invalid input4739 query: "feature_category=\"category_a\"", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4740 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4741 query: "feature_category=", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4742 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4743 query: "feature_category~category_a", error: Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4744 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::InvalidTerm4745 query: "invalid_term=a", error: Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate4746 is expected to raise Gitlab::SidekiqConfig::WorkerMatcher::UnknownPredicate4747Issuable::DestroyService4748 #execute4749 when issuable is an issue4750 destroys the issue4751 updates open issues count cache4752 invalidates the issues count cache for the assignees4753 behaves like service deleting todos4754 behaves like service scheduling async deletes4755 destroys associated todos asynchronously4756 works inside a transaction4757 behaves like service deleting label links4758 behaves like service scheduling async deletes4759 destroys associated todos asynchronously4760 works inside a transaction4761 when issuable is a merge request4762 destroys the merge request4763 updates open merge requests count cache4764 invalidates the merge request caches for the MR assignee4765 behaves like service deleting todos4766 behaves like service scheduling async deletes4767 destroys associated todos asynchronously4768 works inside a transaction4769 behaves like service deleting label links4770 behaves like service scheduling async deletes4771 destroys associated todos asynchronously4772 works inside a transaction4773Packages::Maven::Metadata::CreatePluginsXmlService4774 #execute4775 with same plugins on both sides4776 behaves like returning no changes4777 returns no changes4778 with more plugins4779 in database4780 behaves like returning no changes4781 returns no changes4782 in xml4783 behaves like returning an xml with plugins from the database4784 returns an metadata versions xml with versions in the database4785 with no versions in the database4786 returns a success4787 with an incomplete metadata content4788 behaves like returning an error service response4789 returns an error service response4790 with an invalid metadata content4791 behaves like returning an error service response4792 returns an error service response4793 behaves like handling metadata content pointing to a file for the create xml service4794 with metadata content pointing to a file4795 with valid content4796 returns no changes4797 with invalid content4798 behaves like returning an error service response4799 returns an error service response4800 with no content4801 behaves like returning an error service response4802 returns an error service response4803 behaves like handling invalid parameters for create xml service4804 with no package4805 behaves like returning an error service response4806 returns an error service response4807 with no metadata content4808 behaves like returning an error service response4809 returns an error service response4810Gitlab::AlertManagement::Payload::Generic4811 behaves like subclass has expected api4812 defines all public methods in the base class4813 #title4814 behaves like parsable alert payload field with fallback4815 without payload4816 is expected to eq "New: Alert"4817 with title4818 is expected to eq "some value"4819 #severity4820 when set4821 payload_severity: "critical", expected_severity: :critical4822 is expected to eq :critical4823 payload_severity: "high", expected_severity: :high4824 is expected to eq :high4825 payload_severity: "medium", expected_severity: :medium4826 is expected to eq :medium4827 payload_severity: "low", expected_severity: :low4828 is expected to eq :low4829 payload_severity: "info", expected_severity: :info4830 is expected to eq :info4831 payload_severity: "CRITICAL", expected_severity: :critical4832 is expected to eq :critical4833 payload_severity: "cRiTiCaL", expected_severity: :critical4834 is expected to eq :critical4835 payload_severity: "unmapped", expected_severity: nil4836 is expected to eq nil4837 payload_severity: 1, expected_severity: nil4838 is expected to eq nil4839 payload_severity: nil, expected_severity: nil4840 is expected to eq nil4841 without key4842 is expected to be nil4843 #monitoring_tool4844 behaves like parsable alert payload field4845 behaves like parsable alert payload field with fallback4846 without payload4847 is expected to eq nil4848 with monitoring_tool4849 is expected to eq "some value"4850 #service4851 behaves like parsable alert payload field4852 behaves like parsable alert payload field with fallback4853 without payload4854 is expected to eq nil4855 with service4856 is expected to eq "some value"4857 #hosts4858 behaves like parsable alert payload field4859 behaves like parsable alert payload field with fallback4860 without payload4861 is expected to eq nil4862 with hosts4863 is expected to eq "some value"4864 #starts_at4865 without start_time4866 is expected to eq 2023-06-02 06:37:23.000000000 +00004867 with start_time4868 is expected to eq 2023-06-02 06:27:23.000000000 +00004869 #runbook4870 behaves like parsable alert payload field4871 behaves like parsable alert payload field with fallback4872 without payload4873 is expected to eq nil4874 with runbook4875 is expected to eq "some value"4876 #gitlab_fingerprint4877 returns a fingerprint4878 #environment_name4879 behaves like parsable alert payload field4880 behaves like parsable alert payload field with fallback4881 without payload4882 is expected to eq nil4883 with gitlab_environment_name4884 is expected to eq "some value"4885 #description4886 behaves like parsable alert payload field4887 behaves like parsable alert payload field with fallback4888 without payload4889 is expected to eq nil4890 with description4891 is expected to eq "some value"4892 #ends_at4893 without end_time4894 is expected to be nil4895 with end_time4896 is expected to eq 2023-06-02 06:27:23.000000000 +00004897 #resolved?4898 without end time4899 is expected to eq false4900 with end time4901 is expected to eq true4902 #source4903 is expected to eq "Generic Alert Endpoint"4904 with alerting integration provided4905 is expected to eq "INTEGRATION"4906 with monitoring tool defined in the raw payload4907 is expected to eq "TOOL"4908CommitEntity4909 contains path to commit4910 contains URL to commit4911 needs to receive project in the request4912 exposes gravatar url that belongs to author4913 when commit author is a user4914 contains information about user4915 when commit author is not a user4916 does not contain author details4917 when type is not set4918 does not expose extra properties4919 when type is "full"4920 exposes extra properties4921 when commit has signature4922 exposes "signature_html"4923 when commit has pipeline4924 exposes "pipeline_status_path"4925 when commit_url_params is set4926 adds commit_url_params to url and path4927ProjectGroupLink4928 Associations4929 is expected to belong to group required: false4930 is expected to belong to project required: false4931 Validation4932 is expected to validate that :project_id cannot be empty/falsy4933 is expected to validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure4934 is expected to validate that :group cannot be empty/falsy4935 is expected to validate that :group_access cannot be empty/falsy4936 doesn't allow a project to be shared with the group it is in4937 doesn't allow a project to be shared with an ancestor of the group it is in4938 does not allow a project to be shared with `OWNER` access level4939 scopes4940 .non_guests4941 returns all records which are greater than Guests access4942 search by group name4943 is expected to eq [#<ProjectGroupLink id: 12, project_id: 623, group_id: 2145, created_at: "2023-06-02 06:37:39.165303124 +0000", updated_at: "2023-06-02 06:37:39.165303124 +0000", group_access: 30, expires_at: nil>]4944 is expected to be empty4945Nav::TopNavHelper4946 #top_nav_view_model4947 has :menuTooltip4948 when current_user is nil (anonymous)4949 has expected :primary4950 has expected :shortcuts4951 with current nav as project4952 has expected :active4953 when current_user is non-admin4954 has no menu items or views by default4955 with projects4956 has expected :primary4957 has expected :shortcuts4958 projects4959 has expected :currentUserName4960 has expected :namespace4961 has expected :linksPrimary4962 does not have any :linksSecondary4963 with current nav as project4964 has expected :active4965 with persisted project4966 has project as :container4967 with groups4968 has expected :primary4969 has expected :shortcuts4970 groups4971 has expected :currentUserName4972 has expected :namespace4973 has expected :linksPrimary4974 does not have any :linksSecondary4975 with external user4976 does not have create group link4977 with current nav as group4978 has expected :active4979 with persisted group4980 has expected :container4981 with milestones4982 has expected :shortcuts4983 with snippets4984 has expected :shortcuts4985 with activity4986 has expected :shortcuts4987 when current_user is admin4988 has admin as first :secondary item4989 with header link admin_mode true4990 has leave_admin_mode as last :secondary item4991 with header link admin_mode false4992 has enter_admin_mode as last :secondary item4993 #top_nav_responsive_view_model4994 has nil new subview4995 has nil search subview4996 with search4997 has search subview4998 with new4999 has new subview5000 with new and no menu_sections5001 has new subview5002Gitlab::Ci::Build::Artifacts::Metadata::Entry5003 /file/with/absolute_path5004 is expected to be file5005 is expected to have parent5006 #basename5007 is expected to eq "absolute_path"5008 path/dir_1/5009 is expected to have parent5010 is expected to be directory5011 #basename5012 is expected to eq "dir_1/"5013 #name5014 is expected to eq "dir_1"5015 #parent5016 is expected to eq Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/5017 #children5018 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5019 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1, Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b, and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/5020 #files5021 is expected to all be file5022 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5023 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_1 and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/file_b5024 #directories5025 without options5026 is expected to all be directory5027 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5028 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/5029 with option parent: true5030 is expected to all be directory5031 is expected to all be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry5032 is expected to contain exactly Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/dir_1/subdir/ and Gitlab::Ci::Build::Artifacts::Metadata::Entry: path/5033 #nodes5034 is expected to eq 25035 #exists?5036 is expected to equal true5037 #empty?5038 is expected to equal false5039 #total_size5040 is expected to eq 305041 empty path5042 is expected not to have parent5043 #children5044 is expected to eq 35045 path/dir_1/subdir/subfile5046 #nodes5047 is expected to eq 45048 #blob5049 returns a blob representing the entry data5050 non-existent/5051 #empty?5052 is expected to equal true5053 #exists?5054 is expected to equal false5055 another_directory/5056 #empty?5057 is expected to equal true5058 #metadata5059 is expected to eq "/path/file1"5060Banzai::ReferenceParser::IssueParser5061 #nodes_visible_to_user5062 when the link has a data-issue attribute5063 returns the nodes when the user can read the issue5064 returns an empty Array when the user can not read the issue5065 behaves like referenced feature visibility5066 when feature is disabled5067 does not create reference5068 when feature is enabled only for team members5069 does not create reference for non member5070 creates reference for member5071 when feature is enabled5072 creates reference5073 when the user cannot read cross project5074 returns the nodes when the user can read the issue5075 returns an empty Array when the user can not read the issue5076 when the issue is not cross project5077 does not check `can_read_reference` if the issue is not cross project5078 when the link does not have a data-issue attribute5079 returns an empty Array5080 #referenced_by5081 when the link has a data-issue attribute5082 using an existing issue ID5083 returns an Array of issues5084 returns an empty Array when the list of nodes is empty5085 when issue with given ID does not exist5086 returns an empty Array5087 #records_for_nodes5088 returns a Hash containing the issues for a list of nodes5089 when checking multiple issues on another project5090 behaves like no N+1 queries5091 avoids N+1 queries in #records_for_nodes5092 behaves like no project N+1 queries5093 avoids N+1 queries in #nodes_visible_to_user5094layouts/application5095 behaves like a layout which reflects the application theme setting5096 as a themed layout5097 when no theme is explicitly selected5098 renders with the default theme5099 when user is authenticated & has selected a specific theme5100 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">5101 renders with the Indigo theme5102 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">5103 renders with the Light Indigo theme5104 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">5105 renders with the Blue theme5106 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">5107 renders with the Light Blue theme5108 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">5109 renders with the Green theme5110 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">5111 renders with the Light Green theme5112 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">5113 renders with the Red theme5114 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">5115 renders with the Light Red theme5116 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">5117 renders with the Gray theme5118 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">5119 renders with the Light Gray theme5120 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">5121 renders with the Dark Mode (alpha) theme5122 visual review toolbar5123 ENV['REVIEW_APPS_ENABLED'] is set to true5124 renders the visual review toolbar5125 ENV['REVIEW_APPS_ENABLED'] is set to false5126 does not render the visual review toolbar5127 body data elements for pageview context5128 includes the body element page5129 includes the body element page_type_id5130 includes the body element project_id5131 includes the body element namespace_id5132Ci::RunnerProject5133 behaves like includes Limitable concern5134 #exceeds_limits?5135 without plan limits configured5136 is expected to eq false5137 without plan limits configured5138 is expected to eq false5139 with an existing model5140 is expected to eq true5141 validations5142 is expected to be a kind of Limitable5143 without plan limits configured5144 can create new models5145 with plan limits configured5146 can create new models5147 with an existing model5148 cannot create new models exceeding the plan limits5149 loose foreign key on ci_runner_projects.project_id5150 behaves like cleanup by a loose foreign key5151 cleans up (delete or nullify) the model5152ContextCommitsFinder5153 #execute5154 filters commits by valid sha/commit message5155 returns nothing when searched by invalid sha/commit message5156 returns commits based in author filter5157 returns commits based in committed before and after filter5158 returns commits from target branch if no filter is applied5159IncidentManagement::TimelineEvents::DestroyService5160 # order random5161 #execute5162 when current user is anonymous5163 behaves like error response5164 has an informative message5165 behaves like does not track incident management event5166 does not track the event5167 when user does not have permissions to remove timeline events5168 behaves like error response5169 has an informative message5170 behaves like does not track incident management event5171 does not track the event5172 when an error occurs during removal5173 behaves like error response5174 has an informative message5175 behaves like does not track incident management event5176 does not track the event5177 with success response5178 successfully returns the timeline event5179 creates a system note5180 behaves like an incident management tracked event5181 .track_event5182 tracks the event using redis5183 behaves like Snowplow event tracking with RedisHLL context5184 behaves like Snowplow event tracking5185 is emitted5186ZoomMeeting5187 Factory5188 is expected to be valid5189 Associations5190 is expected to belong to project required: false5191 is expected to belong to issue required: false5192 scopes5193 .added_to_issue5194 gets only added meetings5195 .removed_from_issue5196 gets only removed meetings5197 Validations5198 is expected to validate that :project cannot be empty/falsy5199 is expected to validate that :issue cannot be empty/falsy5200 when importing5201 is expected not to validate that :project cannot be empty/falsy5202 is expected not to validate that :issue cannot be empty/falsy5203 url5204 is expected to validate that :url cannot be empty/falsy5205 is expected to validate that the length of :url is at most 2555206 with non-Zoom URL5207 is expected to contain exactly "must contain one valid Zoom URL"5208 with multiple Zoom-URLs5209 is expected to contain exactly "must contain one valid Zoom URL"5210 issue association5211 for the same project5212 is expected to be valid5213 for a different project5214 is expected to contain exactly "must associate the same project"5215 limit number of meetings per issue5216 without meetings5217 behaves like can add meetings5218 can add new Zoom meetings5219 when no other meeting is added5220 behaves like can add meetings5221 can add new Zoom meetings5222 when meeting is added5223 behaves like cannot add meetings5224 fails to add a new meeting5225 when meeting is added to another issue5226 behaves like can add meetings5227 can add new Zoom meetings5228 when second meeting is removed5229 behaves like can remove meetings5230 can remove Zoom meetings5231Gitlab::DataBuilder::Build5232 .build5233 is expected to be a kind of Hash5234 is expected to eq "master"5235 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"5236 is expected to eq false5237 is expected to eq 3015238 is expected to eq "running"5239 is expected to eq 2023-06-02 08:50:29.000000000 +00005240 is expected to eq 2023-06-02 08:51:29.000000000 +00005241 is expected to eq nil5242 is expected to eq -7994.05243 is expected to eq 60.05244 is expected to eq false5245 is expected to eq "unknown_failure"5246 is expected to eq 6755247 is expected to eq "Sidney Jones1392 / Project-745 Name"5248 is expected to eq 2825249 is expected to eq 05250 is expected to eq "Build pipeline"5251 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/c9327eaf60ccdb13e10bba6a335c3030?s=80&d=identicon", :email=>"user1391@example.org", :id=>1339, :name=>"Sidney Jones1391", :username=>"user686"}5252 is expected to eq 2825253 is expected to eq 105254 is expected to contain exactly "tag1" and "tag2"5255 is expected to eq "My runner17"5256 is expected to eq "instance_type"5257 is expected to eq true5258 is expected to be nil5259 does not exceed number of expected queries5260 when job_webhook_retries_count feature flag is disabled5261 is expected not to have key :retries_count5262 does not exceed number of expected queries5263 commit author_url5264 when no commit present5265 sets to mailing address of git_author_email5266 when commit present but has no author5267 sets to mailing address of git_author_email5268 when commit and author are present5269 sets to GitLab user url5270 with environment5271 is expected to eq "staging"5272 is expected to eq "stop"5273Projects::Forks::SyncService5274 # order random5275 #execute5276 when fork is up-to-date with the upstream5277 does not perform merge5278 when fork is behind the upstream5279 when fork is not ahead of the upstream5280 updates the fork using ff merge5281 when fork is ahead of the upstream5282 and has conflicts with the upstream5283 returns an error5284 and does not have conflicts with the upstream5285 updates the fork using merge5286 when a merge cannot happen due to another ongoing merge5287 does not merge5288 when upstream branch contains lfs reference5289 links fetched lfs objects to the fork project5290 and there are too many of them for a single sync5291 updates the fork successfully5292LabelNote5293 when resource is issue5294 includes a link to the list of issues filtered by the label5295 behaves like label note created from events5296 .from_events5297 returns system note with expected attributes5298 updates markdown cache if reference is not set yet5299 updates markdown cache if label was deleted5300 returns html note5301 returns text note for added labels5302 returns text note for removed labels5303 returns text note for added and removed labels5304 returns text note for cross-project label5305 returns text note for cross-group label5306 when resource is merge request5307 includes a link to the list of merge requests filtered by the label5308 behaves like label note created from events5309 .from_events5310 returns system note with expected attributes5311 updates markdown cache if reference is not set yet5312 updates markdown cache if label was deleted5313 returns html note5314 returns text note for added labels5315 returns text note for removed labels5316 returns text note for added and removed labels5317 returns text note for cross-project label5318 returns text note for cross-group label5319Ci::NamespaceMirror5320 scopes5321 .by_group_and_descendants5322 returns groups having group2.id in traversal_ids5323 .contains_any_of_namespaces5324 returns groups having group2.id in traversal_ids5325 .contains_traversal_ids5326 when passing a top-level group5327 returns only itself and children of that group5328 when passing many levels of groups5329 returns only the asked group5330 when passing invalid data5331 data is properly sanitised5332 .by_namespace_id5333 returns namespace mirrors of namespace id5334 .sync!5335 when namespace mirror does not exist in the first place5336 creates the mirror5337 when namespace mirror does already exist5338 updates the mirror5339ProtectedBranches::CacheService5340 with entity project5341 behaves like execute with entity5342 #fetch5343 caches the value5344 sets expiry on the key5345 does not set an expiry on the key after the hash is already created5346 when CACHE_LIMIT is exceeded5347 recreates cache5348 when dry_run is on5349 does not use cached value5350 when cache mismatch5351 logs an error5352 when cache matches5353 does not log an error5354 #refresh5355 clears cached values5356 metrics5357 records hit ratio metrics5358 with entity group5359 when feature flag enabled5360 behaves like execute with entity5361 #fetch5362 caches the value5363 sets expiry on the key5364 does not set an expiry on the key after the hash is already created5365 when CACHE_LIMIT is exceeded5366 recreates cache5367 when dry_run is on5368 does not use cached value5369 when cache mismatch5370 logs an error5371 when cache matches5372 does not log an error5373 #refresh5374 clears cached values5375 metrics5376 records hit ratio metrics5377 when feature flag disabled5378 behaves like execute with entity5379 #fetch5380 caches the value5381 sets expiry on the key5382 does not set an expiry on the key after the hash is already created5383 when CACHE_LIMIT is exceeded5384 recreates cache5385 when dry_run is on5386 does not use cached value5387 when cache mismatch5388 logs an error5389 when cache matches5390 does not log an error5391 #refresh5392 clears cached values5393 metrics5394 records hit ratio metrics5395CommitSignatures::SshSignature5396 behaves like having unique enum values5397 has unique values in "verification_status"5398 behaves like commit signature5399 associations5400 is expected to belong to project required: true5401 validation5402 is expected to validate that :commit_sha cannot be empty/falsy5403 is expected to validate that :project_id cannot be empty/falsy5404 .safe_create!5405 finds a signature by commit sha if it existed5406 creates a new signature if it was not found5407 assigns the correct attributes when creating5408 does not raise an error in case of a race condition5409 #commit5410 fetches the commit through the project5411 behaves like signature with type checking5412 signature type checkers5413 method: :gpg?, expected: false5414 is expected to eq false5415 method: :ssh?, expected: true5416 is expected to eq true5417 method: :x509?, expected: false5418 is expected to eq false5419 associations5420 is expected to belong to key optional: true5421 .by_commit_sha scope5422 returns all signatures by sha5423 #key_fingerprint_sha2565424 returns the fingerprint_sha256 associated with the SSH key5425 when the SSH key is no longer associated with the signature5426 returns the fingerprint_sha256 stored in signature5427 #signed_by_user5428 returns the user associated with the SSH key5429 when the SSH key is no longer associated with the signature5430 returns the user stored in signature5431ObjectStorage::Config5432 #credentials5433 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5434 #storage_options5435 is expected to eq {:server_side_encryption=>"AES256", :server_side_encryption_kms_key_id=>"arn:aws:12345"}5436 #enabled?5437 is expected to eq true5438 #bucket5439 is expected to eq "test-bucket"5440 #use_iam_profile5441 is expected to equal false5442 #use_path_style5443 is expected to equal false5444 with unconsolidated settings5445 consolidated_settings? returns false5446 is expected to equal false5447 with consolidated settings5448 consolidated_settings? returns true5449 is expected to equal true5450 with IAM profile configured5451 value: true, expected: true5452 coerces the value to a boolean5453 value: "true", expected: true5454 coerces the value to a boolean5455 value: "yes", expected: true5456 coerces the value to a boolean5457 value: false, expected: false5458 coerces the value to a boolean5459 value: "false", expected: false5460 coerces the value to a boolean5461 value: "no", expected: false5462 coerces the value to a boolean5463 value: nil, expected: false5464 coerces the value to a boolean5465 with path style configured5466 value: true, expected: true5467 coerces the value to a boolean5468 value: "true", expected: true5469 coerces the value to a boolean5470 value: "yes", expected: true5471 coerces the value to a boolean5472 value: false, expected: false5473 coerces the value to a boolean5474 value: "false", expected: false5475 coerces the value to a boolean5476 value: "no", expected: false5477 coerces the value to a boolean5478 value: nil, expected: false5479 coerces the value to a boolean5480 with hostname style access5481 #use_path_style? returns false5482 with AWS credentials5483 is expected to eq "AWS"5484 is expected to equal true5485 is expected to equal false5486 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :provider=>"AWS", :region=>"us-east-1"}5487 with FIPS enabled5488 is expected to eq {:aws_access_key_id=>"AWS_ACCESS_KEY_ID", :aws_secret_access_key=>"AWS_SECRET_ACCESS_KEY", :disable_content_md5_validation=>true, :provider=>"AWS", :region=>"us-east-1"}5489 with Google credentials5490 is expected to eq "Google"5491 is expected to equal false5492 is expected to equal true5493 is expected to eq {}5494 with SSE-KMS enabled5495 is expected to equal true5496 is expected to eq "AES256"5497 is expected to eq "arn:aws:12345"5498 is expected to contain exactly "x-amz-server-side-encryption" and "x-amz-server-side-encryption-aws-kms-key-id"5499 with only server side encryption enabled5500 is expected to equal true5501 is expected to eq "AES256"5502 is expected to be nil5503 is expected to eq {"x-amz-server-side-encryption"=>"AES256"}5504 without encryption enabled5505 is expected to equal false5506 is expected to be nil5507 is expected to be nil5508 is expected to eq {}5509 with object storage disabled5510 is expected to equal false5511Clusters::Providers::Gcp5512 is expected to belong to cluster required: false5513 is expected to validate that :zone cannot be empty/falsy5514 state_machine5515 when any => [:created]5516 nullifies API credentials5517 when any => [:creating]5518 calls #assign_operation_id on the provider5519 when any => [:errored]5520 calls #nullify_credentials on the provider5521 sets a status reason5522 when status_reason is nil5523 does not set status_reason5524 #on_creation?5525 status: :scheduled, result: true5526 is expected to eq true5527 status: :creating, result: true5528 is expected to eq true5529 status: :created, result: false5530 is expected to eq false5531 status: :errored, result: false5532 is expected to eq false5533 default values5534 has default value5535 validation5536 when validates gcp_project_id5537 when gcp_project_id is shorter than 15538 is expected to be falsey5539 when gcp_project_id is longer than 635540 is expected to be falsey5541 when gcp_project_id includes invalid character5542 is expected to be falsey5543 when gcp_project_id is valid5544 is expected to be truthy5545 when validates num_nodes5546 when num_nodes is string5547 is expected to be falsey5548 when num_nodes is nil5549 is expected to be falsey5550 when num_nodes is smaller than 15551 is expected to be falsey5552 when num_nodes is valid5553 is expected to be truthy5554 #has_rbac_enabled?5555 when cluster is legacy_abac5556 is expected to be falsey5557 when cluster is not legacy_abac5558 is expected to be truthy5559 #knative_pre_installed?5560 when cluster is cloud_run5561 is expected to be falsey5562 when cluster is not cloud_run5563 is expected to be truthy5564 #nullify_credentials5565 removes access_token and operation_id5566 #assign_operation_id5567 sets operation_id5568PersonalSnippetPolicy5569 public snippet5570 no user5571 is expected to be disallowed :update_snippet and :admin_snippet5572 regular user5573 is expected to be disallowed :update_snippet and :admin_snippet5574 author5575 is expected to be allowed :update_snippet and :admin_snippet5576 behaves like admin access with admin mode5577 admin user5578 is expected to be allowed :update_snippet and :admin_snippet5579 internal snippet5580 no user5581 is expected to be disallowed :update_snippet and :admin_snippet5582 regular user5583 is expected to be disallowed :update_snippet and :admin_snippet5584 external user5585 is expected to be disallowed :update_snippet and :admin_snippet5586 snippet author5587 is expected to be allowed :update_snippet and :admin_snippet5588 behaves like admin access with admin mode5589 admin user5590 is expected to be allowed :update_snippet and :admin_snippet5591 private snippet5592 no user5593 is expected to be disallowed :update_snippet and :admin_snippet5594 regular user5595 is expected to be disallowed :update_snippet and :admin_snippet5596 external user5597 is expected to be disallowed :update_snippet and :admin_snippet5598 snippet author5599 is expected to be allowed :update_snippet and :admin_snippet5600 behaves like admin access with admin mode5601 admin user5602 is expected to be allowed :update_snippet and :admin_snippet5603Packages::Npm::CreateTagService5604 #execute5605 with no existing tag name5606 behaves like it creates the tag5607 is expected to change `Packages::Tag.count` by 15608 is expected to eq "test-tag"5609 adds tag to the package5610 with exisiting tag name5611 on package with different name5612 behaves like it creates the tag5613 is expected to change `Packages::Tag.count` by 15614 is expected to eq "test-tag"5615 adds tag to the package5616 on different package type5617 behaves like it creates the tag5618 is expected to change `Packages::Tag.count` by 15619 is expected to eq "test-tag"5620 adds tag to the package5621 on same package with different version5622 is expected to not change `Packages::Tag.count`5623 is expected to eq "test-tag"5624 adds tag to the package5625PagesDomains::ObtainLetsEncryptCertificateService5626 when there is no acme order5627 creates acme order and schedules next step5628 when there is expired acme order5629 removes acme order and creates new one5630 there is an order in 'pending' status5631 does not raise errors5632 there is an order in 'processing' status5633 does not raise errors5634 when order is ready5635 request certificate and schedules next step5636 when order is valid5637 saves private_key and certificate for domain5638 marks certificate as gitlab_provided5639 removes order from database5640 when order is invalid5641 saves error to domain and deletes acme order5642 sends notification5643Mutations::Timelogs::Delete5644 #resolve5645 when the timelog id is not valid5646 raises Gitlab::Graphql::Errors::ResourceNotAvailable5647 when the current user is not the timelog's author, not a maintainer and not an admin5648 raises Gitlab::Graphql::Errors::ResourceNotAvailable5649 when the current user is the timelog's author5650 deletes the timelog5651 returns the deleted timelog5652 returns no errors5653 when the current user is not the timelog's author but a maintainer of the project5654 deletes the timelog5655 returns the deleted timelog5656 returns no errors5657 when the current user is not the timelog's author, not a maintainer but an admin5658 deletes the timelog5659 returns the deleted timelog5660 returns no errors5661Gitlab::Utils::Email5662 # order random5663 .obfuscated_email5664 input: "alex@gitlab.com", output: "al**@g*****.com"5665 is expected to eq "al**@g*****.com"5666 input: "alex@gl.co.uk", output: "al**@g****.uk"5667 is expected to eq "al**@g****.uk"5668 input: "a@b.c", output: "aa@b.c"5669 is expected to eq "aa@b.c"5670 input: "qqwweerrttyy@example.com", output: "qq**********@e******.com"5671 is expected to eq "qq**********@e******.com"5672 input: "getsuperfancysupport@paywhatyouwant.accounting", output: "ge******************@p*************.accounting"5673 is expected to eq "ge******************@p*************.accounting"5674 input: "q@example.com", output: "qq@e******.com"5675 is expected to eq "qq@e******.com"5676 input: "q@w.", output: "qq@w."5677 is expected to eq "qq@w."5678 input: "a@b", output: "aa@b"5679 is expected to eq "aa@b"5680 input: "trun\"@\"e@example.com", output: "tr******@e******.com"5681 is expected to eq "tr******@e******.com"5682 input: "@", output: "@"5683 is expected to eq "@"5684 input: "n", output: "n"5685 is expected to eq "n"5686 input: "no mail", output: "n******"5687 is expected to eq "n******"5688 input: "truncated@exa", output: "tr*******@exa"5689 is expected to eq "tr*******@exa"5690 input: "", output: ""5691 is expected to eq ""5692 when deform is active5693 input: "alex@gitlab.com", output: "al*****@g*****.c**"5694 is expected to eq "al*****@g*****.c**"5695 input: "alex@gl.co.uk", output: "al*****@g*****.u**"5696 is expected to eq "al*****@g*****.u**"5697 input: "a@b.c", output: "aa*****@b*****.c**"5698 is expected to eq "aa*****@b*****.c**"5699 input: "qqwweerrttyy@example.com", output: "qq*****@e*****.c**"5700 is expected to eq "qq*****@e*****.c**"5701 input: "getsuperfancysupport@paywhatyouwant.accounting", output: "ge*****@p*****.a**"5702 is expected to eq "ge*****@p*****.a**"5703 input: "q@example.com", output: "qq*****@e*****.c**"5704 is expected to eq "qq*****@e*****.c**"5705 input: "q@w.", output: "qq*****@w*****."5706 is expected to eq "qq*****@w*****."5707 input: "a@b", output: "aa*****@b**"5708 is expected to eq "aa*****@b**"5709 input: "trun\"@\"e@example.com", output: "tr*****@e*****.c**"5710 is expected to eq "tr*****@e*****.c**"5711 input: "@", output: "@"5712 is expected to eq "@"5713 input: "no mail", output: "n**"5714 is expected to eq "n**"5715 input: "n", output: "n**"5716 is expected to eq "n**"5717 input: "truncated@exa", output: "tr*****@e**"5718 is expected to eq "tr*****@e**"5719 input: "", output: ""5720 is expected to eq ""5721Ci::StuckBuilds::DropPendingService5722 when job is pending5723 when job is not stuck5724 when job was updated_at more than 1 day ago5725 when created_at is the same as updated_at5726 behaves like job is dropped with failure reason5727 changes status5728 when job has data integrity problem5729 drops the job and logs the reason5730 when created_at is before updated_at5731 behaves like job is dropped with failure reason5732 changes status5733 when job has data integrity problem5734 drops the job and logs the reason5735 when job was updated less than 1 day ago5736 when created_at is the same as updated_at5737 behaves like job is unchanged5738 does not change status5739 when created_at is before updated_at5740 behaves like job is unchanged5741 does not change status5742 when job was updated more than 1 hour ago5743 when created_at is the same as updated_at5744 behaves like job is unchanged5745 does not change status5746 when created_at is before updated_at5747 behaves like job is unchanged5748 does not change status5749 when job is stuck5750 when job was updated_at more than 1 hour ago5751 when created_at is the same as updated_at5752 behaves like job is dropped with failure reason5753 changes status5754 when job has data integrity problem5755 drops the job and logs the reason5756 when created_at is before updated_at5757 behaves like job is dropped with failure reason5758 changes status5759 when job has data integrity problem5760 drops the job and logs the reason5761 when job was updated in less than 1 hour ago5762 when created_at is the same as updated_at5763 behaves like job is unchanged5764 does not change status5765 when created_at is before updated_at5766 behaves like job is unchanged5767 does not change status5768 when job is running5769 when job was updated_at more than an hour ago5770 behaves like job is unchanged5771 does not change status5772 when job was updated in less than 1 hour ago5773 behaves like job is unchanged5774 does not change status5775 when job is success5776 when created_at is the same as updated_at5777 behaves like job is unchanged5778 does not change status5779 when created_at is before updated_at5780 behaves like job is unchanged5781 does not change status5782 when job is skipped5783 when created_at is the same as updated_at5784 behaves like job is unchanged5785 does not change status5786 when created_at is before updated_at5787 behaves like job is unchanged5788 does not change status5789 when job is failed5790 when created_at is the same as updated_at5791 behaves like job is unchanged5792 does not change status5793 when created_at is before updated_at5794 behaves like job is unchanged5795 does not change status5796 when job is canceled5797 when created_at is the same as updated_at5798 behaves like job is unchanged5799 does not change status5800 when created_at is before updated_at5801 behaves like job is unchanged5802 does not change status5803 for deleted project5804 behaves like job is unchanged5805 does not change status5806DeployKeysProjectPolicy5807 updating a deploy_keys_project5808 when a project maintainer5809 tries to update private deploy key attached to project5810 is expected to be disallowed :update_deploy_keys_project5811 tries to update public deploy key attached to project5812 is expected to be allowed :update_deploy_keys_project5813 when a non-maintainer project member5814 tries to update private deploy key attached to project5815 is expected to be disallowed :update_deploy_keys_project5816 tries to update public deploy key attached to project5817 is expected to be disallowed :update_deploy_keys_project5818 when a user is not a project member5819 tries to update public deploy key attached to project5820 is expected to be disallowed :update_deploy_keys_project5821ConfigLint5822 # order random5823 errors out if any bash scripts have errors5824 passes if all scripts are fine5825config_lint rake task5826 # order random5827 runs lint on shell scripts5828Packages::Debian::ProjectComponentFile5829 behaves like Debian Component File5830 relationships5831 with stubbed uploader5832 is expected to belong to component class_name => Packages::Debian::ProjectComponent required: false inverse_of => files5833 with packages file_type5834 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture required: false inverse_of => files5835 with :sources file_type5836 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture inverse_of => files optional: true5837 validations5838 #component5839 is expected to validate that :component cannot be empty/falsy5840 #architecture5841 with packages file_type5842 is expected to validate that :architecture cannot be empty/falsy5843 with :sources file_type5844 is expected to validate that :architecture is empty/falsy5845 #file_type5846 is expected to validate that :file_type cannot be empty/falsy5847 is expected to allow :file_type to be ‹:packages›5848 #compression_type5849 is expected not to validate that :compression_type cannot be empty/falsy5850 is expected to allow :compression_type to be ‹nil›5851 is expected to allow :compression_type to be ‹:gz›5852 #file5853 the uploader api5854 is expected to respond to #store_dir5855 is expected to respond to #cache_dir5856 is expected to respond to #work_dir5857 #file_store5858 is expected to validate that :file_store cannot be empty/falsy5859 #file_sha2565860 is expected to validate that :file_sha256 cannot be empty/falsy5861 scopes5862 .with_container5863 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 6, created_at: "2023-06-02 06:39:06.093053747 +0000", updated_at: "2023-06-02 06:39:06.093053747 +0000", component_id: 3, architecture_id: 3, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5864 .with_codename_or_suite5865 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 6, created_at: "2023-06-02 06:39:06.093053747 +0000", updated_at: "2023-06-02 06:39:06.093053747 +0000", component_id: 3, architecture_id: 3, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5866 .with_component_name5867 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 3, created_at: "2023-06-02 06:39:06.076389329 +0000", updated_at: "2023-06-02 06:39:06.076389329 +0000", component_id: 2, architecture_id: 1, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5868 .with_file_type5869 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 7, created_at: "2023-06-02 06:39:06.098604000 +0000", updated_at: "2023-06-02 06:39:06.098604000 +0000", component_id: 1, architecture_id: nil, size: 73, file_type: "sources", compression_type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5870 .with_architecture5871 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2023-06-02 06:39:06.070156760 +0000", updated_at: "2023-06-02 06:39:06.070156760 +0000", component_id: 1, architecture_id: 2, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5872 .with_architecture_name5873 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2023-06-02 06:39:06.070156760 +0000", updated_at: "2023-06-02 06:39:06.070156760 +0000", component_id: 1, architecture_id: 2, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5874 .with_compression_type5875 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 4, created_at: "2023-06-02 06:39:06.082339398 +0000", updated_at: "2023-06-02 06:39:06.082339398 +0000", component_id: 1, architecture_id: 1, size: 74, file_type: "packages", compression_type: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5876 .with_file_sha2565877 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 5, created_at: "2023-06-02 06:39:06.087774328 +0000", updated_at: "2023-06-02 06:39:06.087774328 +0000", component_id: 1, architecture_id: 1, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">5878 .updated_before5879 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 9, created_at: "2023-06-02 06:39:07.123430615 +0000", updated_at: "2023-06-02 02:39:07.120524255 +0000", component_id: 1, architecture_id: 1, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::ProjectComponentFile id: 10, created_at: "2023-06-02 06:39:07.131705414 +0000", updated_at: "2023-06-02 03:39:07.129437754 +0000", component_id: 1, architecture_id: 1, size: 74, file_type: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">5880 callbacks5881 updates metadata columns5882 #relative_path5883 with a Packages file_type5884 is expected to eq "numquam1/binary-repellendus1/Packages"5885 with a Source file_type5886 is expected to eq "numquam1/source/Sources"5887 with a DI Packages file_type5888 is expected to eq "numquam1/debian-installer/binary-repellendus1/Packages"5889 with an xz compression_type5890 is expected to eq "numquam1/binary-repellendus1/Packages.xz"5891 #empty?5892 with a non-empty component5893 is expected to be falsey5894 with an empty component5895 is expected to be truthy5896SystemCheck::SimpleExecutor5897 #component5898 returns stored component name5899 #checks5900 returns a set of classes5901 #<<5902 appends a new check to the Set5903 inserts unique itens only5904 errors out when passing multiple items5905 #execute5906 runs included checks5907 #run_check5908 prints check name5909 when check pass5910 prints yes5911 when check fails5912 prints no5913 displays error message from #show_error5914 when check implements #repair!5915 executes #repair!5916 when repair succeeds5917 does not execute #show_error5918 when repair fails5919 does not execute #show_error5920 when check implements skip?5921 executes #skip? method5922 displays .skip_reason5923 displays #skip_reason5924 does not execute #check when #skip? is true5925 when implements a #multi_check5926 executes #multi_check method5927 does not execute #check method5928 when check implements #skip?5929 executes #skip? method5930 when there is an exception5931 rescues the exception5932SentryIssue5933 associations5934 is expected to belong to issue required: false5935 validations5936 is expected to validate that :issue cannot be empty/falsy5937 is expected to validate that :issue is case-sensitively unique5938 is expected to validate that :sentry_issue_identifier cannot be empty/falsy5939 allows duplicated sentry_issue_identifier5940 validates uniqueness of sentry_issue_identifier per project5941 when importing5942 is expected not to validate that :issue cannot be empty/falsy5943 callbacks5944 after create commit do5945 updates Sentry with a reciprocal link on creation5946 .for_project_and_identifier5947 finds the most recent per project and sentry_issue_identifier5948Banzai::Filter::References::ReferenceCache5949 #load_references_per_parent5950 loads references grouped per parent paths5951 when rendered_html is memoized5952 reuses memoized rendered HTML when available5953 when result is not available5954 is expected not to raise Exception5955 #load_parent_per_reference5956 returns a Hash containing projects grouped per parent paths5957 #load_records_per_parent5958 returns a Hash containing projects grouped per parent paths5959 #initialize_reference_cache5960 does not have an N+1 query problem with cross projects5961 #find_for_paths5962 with RequestStore disabled5963 returns a list of Projects for a list of paths5964 return an empty array for paths that do not exist5965 with RequestStore enabled5966 returns a list of Projects for a list of paths5967 when no project with that path exists5968 returns no value5969 adds the ref to the project refs cache5970 #current_parent_path5971 returns the path of the current parent5972 #current_project_namespace_path5973 returns the path of the current project namespace5974 #full_project_path5975 returns current parent path when no ref specified5976 returns combined namespace and project ref5977 returns uses default namespace and project ref when namespace nil5978 #full_group_path5979 returns current parent path when no group ref specified5980 returns group ref5981TimeZoneHelper5982 #timezone_data5983 with short format5984 matches schema5985 formats for display5986 with abbr format5987 matches schema5988 formats for display5989 with full format5990 matches schema5991 formats for display5992 with unknown format5993 raises an exception5994 #local_time5995 when timezone is `nil`5996 returns `nil`5997 when timezone is blank5998 returns `nil`5999 when a valid timezone is passed6000 returns local time6001 when an invalid timezone is passed6002 returns local time using the configured default timezone (UTC in this case)6003 #local_timezone_instance6004 when timezone is `nil`6005 returns the system timezone instance6006 when timezone is blank6007 returns the system timezone instance6008 when a valid timezone is passed6009 returns the local time instance6010 when an invalid timezone is passed6011 returns the system timezone instance6012Gitlab::Ci::Pipeline::Expression::Lexer6013 #tokens6014 returns single value6015 does ignore whitespace characters6016 returns multiple values of the same token6017 returns multiple values with different tokens6018 returns tokens and operators6019 limits statement to specified amount of tokens6020 raises syntax error in case of finding unknown tokens6021 with complex expressions6022 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]6023 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]6024 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]6025 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]6026 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]6027 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]6028 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]6029 is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]6030 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]6031 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]6032 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]6033 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]6034 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]6035 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]6036 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]6037 is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]6038 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]6039 is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]6040 with parentheses are used6041 expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]6042 is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]6043 expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]6044 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]6045 expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]6046 is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]6047 #lexemes6048 returns an array of syntax lexemes6049Projects::ProcessSyncEventsWorker6050 is labeled as idempotent6051 performs multiple times sequentially without raising an exception6052 has the `until_executed` deduplicate strategy6053 has the option to reschedule once if deduplicated and a TTL of 1 minute6054 #perform6055 consumes all sync events6056 syncs project namespace id6057 logs the service result6058Gitlab::ImportExport::Group::TreeSaver6059 saves the group tree into a json object6060 saves the group successfully6061 fails to export a group6062 exported files6063 has one group per line6064 has a file per group6065 has a file for each group association6066 group attributes file6067 has a file for each group with its attributes6068 does not contain excluded attribute6069 does not contain excluded attribute6070 does not contain excluded attribute6071 does not contain excluded attribute6072 does not contain excluded attribute6073 does not contain excluded attribute6074Clusters::Agents::Authorizations::UserAccess::ProjectAuthorization6075 # order random6076 is expected to belong to project class_name => Project required: true6077 is expected to belong to agent class_name => Clusters::Agent required: true6078 is expected to validate jsonb schema "config"6079 #config_project6080 is expected to eq #<Project id:750 namespace780/project-822>>6081 .for_user6082 user_role: :guest, expected_access_level: nil6083 returns the expected result6084 user_role: :reporter, expected_access_level: nil6085 returns the expected result6086 user_role: :developer, expected_access_level: 306087 returns the expected result6088 user_role: :maintainer, expected_access_level: 406089 returns the expected result6090 user_role: :owner, expected_access_level: 506091 returns the expected result6092Gitlab::WikiPages::FrontMatterParser6093 #parse6094 there is front matter6095 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}6096 there is no content6097 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}6098 there is no front_matter6099 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}6100 is expected to have attributes {:reason => :no_match}6101 the feature flag is disabled6102 is expected to have attributes {:content => "---\na: 1\nb: 2\nc:\n - foo\n - bar\ndate: I am safe. Not actually a date\n---\nThis is the content\n", :front_matter => (be empty)}6103 the feature flag is enabled for the gated object6104 is expected to have attributes {:content => "This is the content\n", :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]}), :reason => (be nil)}6105 the end divider is ...6106 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}6107 the front-matter is not a mapping6108 is expected to have attributes {:reason => :not_mapping}6109 there is nothing in the front-matter block6110 is expected to have attributes {:reason => :no_match}6111 there is a string in the YAML block6112 is expected to have attributes {:reason => :not_mapping}6113 there is dangerous YAML in the block6114 is expected to have attributes {:error => (be present), :reason => :parse_error}6115 there is acceptably long YAML in the front-matter block6116 is expected to have attributes {:front_matter => (include {:title => (be present)})}6117 there is suspiciously long YAML in the front-matter block6118 is expected to have attributes {:reason => :too_long}6119 TOML front matter6120 is expected to have attributes {:reason => :not_yaml}6121 TOML style fences, advertised as YAML6122 is expected to have attributes {:front_matter => (include {:title => "My title"})}6123 YAML, advertised as something else6124 is expected to have attributes {:reason => :not_yaml}6125 there is text content in the YAML block, in comments6126 is expected to have attributes {:front_matter => (include {:foo => 1})}6127 there is text content in the YAML block6128 is expected to have attributes {:reason => :not_mapping}6129Resolvers::DesignManagement::DesignResolver6130 is expected to have nullable GraphQL type Design6131 #resolve6132 when the user cannot see designs6133 returns nothing6134 when no argument has been passed6135 generates an error6136 when both arguments have been passed6137 generates an error6138 by ID6139 returns the specified design6140 the ID belongs to a design on another issue6141 returns nothing6142 by filename6143 returns the specified design6144 the filename belongs to a design on another issue6145 returns nothing6146Ci::Runners::AssignRunnerService#execute6147 without user6148 does not call assign_to on runner and returns error response6149 with unauthorized user6150 does not call assign_to on runner and returns error message6151 with authorized user6152 with user owning runner and being maintainer of new project6153 calls assign_to on runner and returns success response6154 with user owning runner6155 does not call assign_to on runner and returns error message6156 with user being maintainer of new project6157 does not call assign_to on runner and returns error message6158 with admin user6159 calls assign_to on runner and returns success response6160Releases::EvidencePipelineFinder#execute6161 when the tag is passed6162 returns the evidence pipeline6163 when the ref is passed6164 returns the evidence pipeline6165 empty params6166 returns nil6167 params[:evidence_pipeline] is present6168 returns the passed evidence pipeline6169Import::Github::CancelProjectImportService6170 # order random6171 .execute6172 when user is an owner6173 when import is in progress6174 update import state to be canceled6175 tracks canceled imports6176 when import is finished6177 returns error6178 when user is not allowed to read project6179 returns 4046180 when user is not allowed to cancel project6181 returns 4036182Gitlab::Auth::KeyStatusChecker6183 #show_console_message?6184 for an expired key6185 is expected to eq true6186 for a key expiring in the next 7 days6187 is expected to eq true6188 for a key expiring after the next 7 days6189 is expected to eq false6190 for a key that never expires6191 is expected to eq false6192 #console_message6193 for an expired key6194 is expected to eq "INFO: Your SSH key has expired. Please generate a new key."6195 for a key expiring in the next 7 days6196 is expected to eq "INFO: Your SSH key is expiring soon. Please generate a new key."6197 for a key expiring after the next 7 days6198 is expected to be nil6199 for a key that never expires6200 is expected to be nil6201Profile::EventEntity6202 # order random6203 exposes fields6204 with target6205 when target does not responds to :reference_link_text6206 exposes target fields6207 when target responds to :reference_link_text6208 exposes reference_link_text6209 with resource parent6210 exposes resource parent fields6211 for private events6212 when include_private_contributions? is true6213 exposes only created_at, action, and author6214 when include_private_contributions? is false6215 is expected to be empty6216 for push events6217 exposes ref fields6218 exposes commit fields6219 exposes create_mr_path6220 with tag6221 behaves like returns ref path6222 is expected to be present6223 with branch6224 behaves like returns ref path6225 is expected to be present6226RepositoryCheck::BatchWorker6227 prefers projects that have never been checked6228 sorts projects by last_repository_check_at6229 excludes projects that were checked recently6230 excludes projects on another shard6231 does nothing when repository checks are disabled6232 does nothing when shard is unhealthy6233 skips projects created less than 24 hours ago6234 does not run if the exclusive lease is taken6235LimitedCapacity::Worker6236 required methods6237 is expected to raise NotImplementedError6238 is expected to raise NotImplementedError6239 is expected to raise NotImplementedError6240 Sidekiq options6241 does not retry failed jobs6242 does not deduplicate jobs6243 .perform_with_capacity6244 enqueues jobs6245 #perform6246 with capacity6247 calls perform_work6248 re-enqueues itself6249 reports prometheus metrics6250 updates the running set6251 with capacity and without work6252 does not re-enqueue itself6253 without capacity6254 does not call perform_work6255 does not re-enqueue itself6256 when perform_work fails6257 does not re-enqueue itself6258 removes itself from the running set6259 reports prometheus metrics6260 #remove_failed_jobs6261 removes failed jobs6262 #report_prometheus_metrics6263 reports number of running jobs6264Ci::PipelineEditorHelper6265 can_view_pipeline_editor?6266 user can view editor if they can collaborate6267 user can not view editor if they cannot collaborate6268 #js_pipeline_editor_data6269 with a project with commits6270 returns pipeline editor data6271 with an empty project6272 returns pipeline editor data6273 with a project with no repository6274 returns pipeline editor data6275 with a remote CI config6276 returns true for uses-external-config in pipeline editor data6277 with a CI config from an external project6278 returns true for uses-external-config in pipeline editor data6279 with a non-default branch name6280 returns correct values6281Namespaces::RootStatisticsWorker#perform6282 has the `until_executed` deduplicate strategy6283 has an option to reschedule once if deduplicated6284 with a namespace6285 executes refresher service6286 deletes namespace aggregated schedule row6287 when something goes wrong when updating6288 does not delete the aggregation schedule6289 logs the error6290 with no namespace6291 does not execute the refresher service6292 with a namespace with no aggregation scheduled6293 does not execute the refresher service6294 behaves like an idempotent worker6295 is labeled as idempotent6296 performs multiple times sequentially without raising an exception6297 deletes one aggregation schedule6298 behaves like worker with data consistency6299 .get_data_consistency_feature_flag_enabled?6300 returns true6301 .get_data_consistency6302 returns correct data consistency6303Tooling::Danger::DatabaseDictionary6304 # order random6305 #database_dictionary_files6306 retrieves added database dictionary files6307 with added added database dictionary files6308 returns an array of Found objects6309 without added added database dictionary files6310 returns an array of Found objects6311 retrieves modified database dictionary files6312 with modified modified database dictionary files6313 returns an array of Found objects6314 without modified modified database dictionary files6315 returns an array of Found objects6316 retrieves deleted database dictionary files6317 with deleted deleted database dictionary files6318 returns an array of Found objects6319 without deleted deleted database dictionary files6320 returns an array of Found objects6321 Tooling::Danger::DatabaseDictionary::Found6322 #table_name6323 returns value from the YAML6324 #classes6325 returns value from the YAML6326 #feature_categories6327 returns value from the YAML6328 #description6329 returns value from the YAML6330 #introduced_by_url6331 returns value from the YAML6332 #milestone6333 returns value from the YAML6334 #gitlab_schema6335 returns value from the YAML6336 #raw6337 returns the raw YAML6338 #ci_schema?6339 is expected to be truthy6340 with main schema6341 is expected to be falsey6342 #main_schema?6343 is expected to be falsey6344 with main schema6345 is expected to be truthy6346Load balancer behavior with errors inside a transaction6347 in a transaction6348 raises an exception when a retry would occur6349 without a transaction6350 retries6351Types::BaseArgument6352 adds a formatted `deprecated_reason` to the subject6353 appends to the description if given6354 does not append to the description if it is absent6355 adds information about the replacement if provided6356 supports named reasons: renamed6357 supports named reasons: alpha6358 supports :alpha6359 does not allow :alpha and :deprecated together6360 validations6361 raises an informative error if `deprecation_reason` is used6362 raises an error if a required property is missing6363 raises an error if milestone is not a String6364 visible?6365 defaults to true6366 when subject is deprecated6367 defaults to true6368 returns false if `remove_deprecated` is true in context6369 required argument declarations6370 accepts nullable, required arguments6371 accepts required, non-nullable arguments6372 accepts non-required arguments6373 accepts no required argument declaration6374Gitlab::ReactiveCacheSetCache6375 #cache_key6376 includes the suffix6377 #read6378 is expected to be empty6379 after item added6380 is expected to contain exactly "test_item"6381 #write6382 writes the value to the cache6383 sets the expiry of the set6384 #clear_cache!6385 when featuer flag disabled6386 behaves like clears cache6387 deletes the cached items6388 when key size is large6389 sends multiple pipelines of 1000 unlinks6390 behaves like clears cache6391 deletes the cached items6392 #include?6393 is expected to equal false6394 item added6395 is expected to equal true6396 count6397 is expected to equal 06398 item added6399 is expected to equal 16400Gitlab::PushOptions6401 can parse multiple push options6402 stores options internally as a HashWithIndifferentAccess6403 selects the last option when options contain duplicate namespace and key pairs6404 defaults values to true6405 expands aliases6406 forgives broken push options6407 namespace and key validation6408 ignores unrecognised namespaces6409 ignores unrecognised keys6410 ignores blank keys6411 parses recognised namespace and key pairs6412 #get6413 can emulate Hash#dig6414 #as_json6415 returns all options6416user routing6417 # order random6418 when GitHub OAuth on project import is cancelled6419 behaves like redirecting a legacy path6420 redirects /users/auth?error=access_denied&state=xyz to /users/sign_in6421 when GitHub OAuth on sign in is cancelled6422 when all required parameters are present6423 behaves like redirecting a legacy path6424 redirects /users/auth?error=access_denied&state=xyz to /projects/new#import_project6425 when one of the required parameters is missing6426 behaves like redirecting a legacy path6427 redirects /users/auth?error=access_denied&state= to /auth6428PublicUrlValidator6429 #validate6430 with no options6431 allows http,https schemes by default6432 checks that the url structure is valid6433 with schemes6434 allows urls with the defined schemes6435 add error if the url scheme does not match the selected ones6436 by default6437 blocks urls pointing to localhost6438 blocks urls pointing to the local network6439 when local requests are allowed6440 does not block urls pointing to localhost6441 does not block urls pointing to the local network6442Gitlab::Import::Metrics6443 #track_start_import6444 when project is not a github import6445 does not emit importer metrics6446 when project is a github import6447 emits importer metrics6448 #track_failed_import6449 when project is not a github import6450 does not emit importer metrics6451 when project is a github import6452 emits importer metrics6453 #track_finished_import6454 when project is a github import6455 emits importer metrics6456 when import is partially completed6457 emits snowplow metrics6458 when project is not a github import6459 does not emit importer metrics6460 #track_cancelled_import6461 when project is not a github import6462 does not emit importer metrics6463 when project is a github import6464 emits importer metrics6465 #issues_counter6466 creates a counter for issues6467 #merge_requests_counter6468 creates a counter for issues6469Gitlab::SlashCommands::IssueShow6470 #execute6471 the issue exists6472 returns the issue6473 when its reference is given6474 shows the issue6475 the issue does not exist6476 returns not found6477 .match6478 matches the iid6479 accepts a reference6480Gitlab::Ci::Pipeline::Quota::Deployments6481 #enabled?6482 when limit is enabled in plan6483 is enabled6484 when limit is not enabled6485 is not enabled6486 when limit does not exist6487 is enabled by default6488 #exceeded?6489 when limit is exceeded6490 is exceeded6491 when limit is not exceeded6492 is not exceeded6493 #message6494 when limit is exceeded6495 returns info about pipeline deployment limit exceeded6496Gitlab::Ci::Config::Entry::Files6497 validations6498 when entry config value is valid6499 #value6500 returns key value6501 #valid?6502 is valid6503 #errors6504 when entry value is not an array6505 saves errors6506 when entry value is not an array of strings6507 saves errors6508 when entry value contains more than two values6509 saves errors6510Resolvers::ErrorTracking::SentryErrorsResolver6511 is expected to have nullable GraphQL type SentryErrorConnection6512 #resolve6513 with insufficient user permission6514 returns nil6515 with sufficient permission6516 when after arg given6517 gives the cursor arg6518 when no issues fetched6519 returns nil6520 when issues returned6521 sets the issues6522 sets the pagination variables6523 returns an externally paginated array6524Gitlab::Database::Reindexing::ReindexAction6525 is expected to be a kind of Gitlab::Database::SharedModel(abstract)6526 .create_for6527 creates a new record for the given index6528 #finish6529 sets #action_end6530 sets #ondisk_size_bytes_end after reloading the index record6531 saves the record6532 setting #state6533 sets #state to finished if not given6534 sets #state to finished if not set to started6535 does not change state if set to failed6536Pajamas::CardComponent6537 slots6538 renders card header6539 renders card body6540 renders footer6541 with defaults6542 does not have a header or footer6543 renders the card and body6544 with custom options6545 renders card options6546 renders header options6547 renders body options6548 renders footer options6549Resolvers::PaginatedTreeResolver6550 is expected to have nullable GraphQL type TreeConnection6551 #resolve6552 resolves to a collection with a tree object6553 with recursive option6554 resolve to a recursive tree6555 with limited max_page_size6556 resolves to a pagination collection with a tree object6557 when repository does not exist6558 returns nil6559 when repository is empty6560 returns nil6561 Cursor pagination6562 returns all tree entries during cursor pagination6563 when cursor is invalid6564 generates an error6565 Custom error handling6566 when gitaly is not available6567 generates an unavailable error6568Ci::PipelineSchedulePolicy6569 rules6570 rules for protected ref6571 when no one can push or merge to the branch6572 does not include ability to play pipeline schedule6573 when developers can push to the branch6574 includes ability to update pipeline6575 when no one can create the tag6576 does not include ability to play pipeline schedule6577 when no one can create the tag but it is not a tag6578 includes ability to play pipeline schedule6579 rules for owner of schedule6580 includes abilities to do all operations on pipeline schedule6581 rules for a maintainer6582 allows for playing and destroying a pipeline schedule6583 does not allow for updating of an existing schedule6584 rules for non-owner of schedule6585 includes abilities to take ownership6586Groups::ProjectsRequiringAuthorizationsRefresh::OnDirectMembershipFinder6587 #execute6588 projects affected when a new member is added to a specific group (here, `Group B`)6589 returns all projects IDs where authorizations need to be created for the userdue to their new membership being created in `Group B`6590 includes only the expected projects6591Gitlab::Cache::Import::Caching6592 .read6593 reads a value from the cache6594 returns nil if the cache key does not exist6595 refreshes the cache key if a value is present6596 does not refresh the cache key if a value is empty6597 .read_integer6598 returns an Integer6599 returns nil if no value was found6600 .write6601 writes a value to the cache and returns the written value6602 behaves like validated redis value6603 raise error if value.to_s does not return a String6604 .increment_by6605 behaves like validated redis value6606 raise error if value.to_s does not return a String6607 .increment6608 increment a key and returns the current value6609 .set_add6610 adds a value to a set6611 behaves like validated redis value6612 raise error if value.to_s does not return a String6613 .set_includes?6614 returns false when the key does not exist6615 returns false when the value is not present in the set6616 returns true when the set includes the given value6617 behaves like validated redis value6618 raise error if value.to_s does not return a String6619 .values_from_set6620 returns empty list when the set is empty6621 returns the set list of values6622 .hash_add6623 adds a value to a hash6624 behaves like validated redis value6625 raise error if value.to_s does not return a String6626 .values_from_hash6627 returns empty hash when the hash is empty6628 returns the set list of values6629 .write_multiple6630 sets multiple keys when key_prefix not set6631 sets multiple keys with correct prefix6632 behaves like validated redis value6633 raise error if value.to_s does not return a String6634 .expire6635 sets the expiration time of a key6636 .write_if_greater6637 behaves like validated redis value6638 raise error if value.to_s does not return a String6639CarrierWave::Uploader::Url6640 # order random6641 #url6642 when file responds to url6643 returns nil when the file.url is empty6644 returns the given file url6645 passes any given options to the file url method6646 when file responds to path6647 when the asset host is a string6648 prefix the path with the asset host6649 when the asset host responds to call6650 prefix the path with the asset host6651 when asset_host is empty6652 when base_path is empty6653 returns the file path6654 when base_path is not empty6655 returns the file path prefixed with the base_path6656 when file does not respond to either url nor path6657 returns nil6658Projects::HashedStorage::RollbackService6659 #execute6660 attachments rollback6661 delegates rollback to Projects::HashedStorage::RollbackAttachmentsService6662 does not delegate rollback if repository is in legacy storage already6663 rollbacks to legacy storage6664 repository rollback6665 delegates rollback to RollbackRepositoryService6666 does not delegate rollback if repository is in legacy storage already6667 rollbacks to legacy storage6668MigrateExternalDiffsWorker6669 #perform6670 migrates the listed diff6671 does nothing if the diff is missing6672AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker6673 behaves like worker with data consistency6674 .get_data_consistency_feature_flag_enabled?6675 returns true6676 .get_data_consistency6677 returns correct data consistency6678 #perform6679 checks if project authorization update is required6680 checks if a project_authorization refresh is needed for each of the users6681 when there are project authorization records due for either removal or addition for a specific user6682 enqueues a new project authorization update job for the user6683 when there are no additions or removals to be made to project authorizations for a specific user6684 does not enqueue a new project authorization update job for the user6685FinderMethods6686 #find_by!6687 returns the project if the user has access6688 raises not found when the project is not found by id6689 raises not found when the project is not found by filter6690 raises not found the user does not have access6691 ignores ordering6692 #find6693 returns the project if the user has access6694 raises not found when the project is not found by id6695 raises not found when the project is not found by filter6696 raises not found the user does not have access6697 ignores ordering6698 #find_by6699 returns the project if the user has access6700 returns nil when the project is not found by id6701 returns nil when the project is not found by filter6702 returns nil when the user does not have access6703 ignores ordering6704Gitlab::Ci::Status::Build::Pending6705 #illustration6706 is expected to include :image, :size, :title, and :content6707 .matches?6708 when build is pending6709 is a correct match6710 when build is not pending6711 does not match6712Gitlab::Graphql::Loaders::BatchCommitLoader6713 #find6714 finds a commit by id6715 only queries once6716Gitlab::DependencyLinker::GemfileLinker6717 .support?6718 supports Gemfile6719 supports gems.rb6720 does not support other files6721 #link6722 links sources6723 links dependencies6724 links to external dependencies6725 links GitHub repos6726 links Git repos6727Gitlab::Ci::Reports::Security::Locations::SecretDetection6728 behaves like vulnerability location6729 #initialize6730 when all params are given6731 initializes an instance6732 param: :file_path6733 when param file_path is missing6734 raises an error6735 param: :start_line6736 when param start_line is missing6737 raises an error6738 #fingerprint6739 generates expected fingerprint6740 #fingerprint_path6741 generates expected fingerprint6742 #==6743 returns true when fingerprints are equal6744 returns false when fingerprints are different6745Gitlab::RequestForgeryProtection6746 logs to /dev/null6747 .call6748 when the request method is GET6749 does not raise an exception6750 when the request method is POST6751 when the CSRF token is valid6752 does not raise an exception6753 when the CSRF token is invalid6754 raises an ActionController::InvalidAuthenticityToken exception6755 .verified?6756 does not modify the env6757 when the request method is GET6758 returns true6759 when the request method is POST6760 when the CSRF token is valid6761 returns true6762 when the CSRF token is invalid6763 returns false6764PropagateIntegrationInheritWorker6765 #perform6766 behaves like an idempotent worker6767 is labeled as idempotent6768 performs multiple times sequentially without raising an exception6769 calls to BulkUpdateIntegrationService6770 with an invalid integration id6771 returns without failure6772Gitlab::Ci::Config::Entry::Rules::Rule::Changes6773 .new6774 when using a string array6775 is expected to be valid6776 when using an integer array6777 is expected not to be valid6778 returns errors6779 when using a string6780 is expected not to be valid6781 reports an error about invalid policy6782 when using a long array6783 is expected not to be valid6784 returns errors6785 when clause is empty6786 is expected to be valid6787 when policy strategy does not match6788 is expected not to be valid6789 returns information about errors6790 with paths6791 when paths is an array of strings6792 is expected to be valid6793 when paths is not an array6794 is expected not to be valid6795 returns information about errors6796 when paths is an array of integers6797 is expected not to be valid6798 returns information about errors6799 when paths is an array of long strings6800 is expected not to be valid6801 returns information about errors6802 when paths is nil6803 is expected not to be valid6804 returns information about errors6805 with paths and compare_to6806 is expected to be valid6807 when compare_to is not a string6808 is expected not to be valid6809 returns information about errors6810 #value6811 when using a string array6812 is expected to eq {:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}6813 with paths6814 is expected to eq {:paths=>["app/", "lib/"]}6815 with paths and compare_to6816 is expected to eq {:compare_to=>"branch1", :paths=>["app/", "lib/"]}6817Banzai::ReferenceParser::WorkItemParser6818 # order random6819 when checking multiple work items on another project6820 behaves like no N+1 queries6821 avoids N+1 queries in #records_for_nodes6822 behaves like no project N+1 queries6823 avoids N+1 queries in #nodes_visible_to_user6824 #records_for_nodes6825 returns a Hash containing the work items for a list of nodes6826Gitlab::Usage::Metric6827 #with_value6828 returns key_path metric with the corresponding value6829 #with_instrumentation6830 returns key_path metric with the corresponding generated query6831 #with_suggested_name6832 returns key_path metric with the corresponding generated query6833 unavailable metric6834 #with_value6835 returns an empty hash6836 #with_instrumentation6837 returns an empty hash6838 #with_suggested_name6839 returns an empty hash6840Gitlab::GithubImport::Importer::Attachments::NotesImporter6841 # order random6842 #id_for_already_imported_cache6843 is expected to eq 11606844 #sidekiq_worker_class6845 is expected to eq Gitlab::GithubImport::Attachments::ImportNoteWorker6846 #object_type6847 is expected to eq :note_attachment6848 #collection_method6849 is expected to eq :note_attachments6850 #sequential_import6851 imports each project user note6852 when note is already processed6853 doesn't import this note6854Branches::CreateService6855 #bulk_create6856 creates two branches6857 when branches are empty6858 is successful6859 when incorrect reference is provided6860 returns an error with a reference name6861 when branch already exists6862 returns an error6863 when PreReceiveError exception6864 logs and returns an error if there is a PreReceiveError exception6865 when multiple errors occur6866 returns all errors6867 without N+1 for Redis cache6868 does not trigger Redis recreation6869 without N+1 branch cache expiration6870 triggers branch cache expiration only once6871 when branches were not added6872 does not trigger branch expiration6873 #execute6874 logs and returns an error if there is a PreReceiveError exception6875 when repository is empty6876 creates master branch6877 creates another-feature branch6878 when branch already exists6879 returns an error6880 when incorrect reference is provided6881 returns an error with a reference name6882PropagateIntegrationInheritDescendantWorker6883 behaves like an idempotent worker6884 is labeled as idempotent6885 performs multiple times sequentially without raising an exception6886 calls to BulkUpdateIntegrationService6887 with an invalid integration id6888 returns without failure6889Gitlab::GithubImport::Representation::Note6890 .from_api_response6891 does not set the user if the response did not include a user6892 behaves like a Note6893 returns an instance of Note6894 the returned Note6895 includes the noteable ID6896 includes the noteable type6897 includes the author details6898 includes the note body6899 includes the created timestamp6900 includes the updated timestamp6901 includes the note ID6902 #github_identifiers6903 returns a hash with needed identifiers6904 .from_json_hash6905 does not convert the author if it was not specified6906 behaves like a Note6907 returns an instance of Note6908 the returned Note6909 includes the noteable ID6910 includes the noteable type6911 includes the author details6912 includes the note body6913 includes the created timestamp6914 includes the updated timestamp6915 includes the note ID6916 #github_identifiers6917 returns a hash with needed identifiers6918InstanceMetadata::Kas6919 has InstanceMetadataPolicy as declarative policy6920 when KAS is enabled6921 has the correct properties6922 when KAS is disabled6923 has the correct properties6924shared/wikis/_sidebar.html.haml6925 includes a link to clone the repository6926 the sidebar failed to load6927 reports this to the user6928 The sidebar comes from a custom page6929 does not show an alert6930 renders the wiki content6931 The sidebar comes a list of wiki pages6932 does not show an alert6933 renders the wiki content6934 there is no more to see6935 does not invite the user to view more6936 link to edit the sidebar6937 when the user has edit permission6938 renders the link6939 when the user does not have edit permission6940 does not render the link6941ApplicationCable::Connection6942 when session cookie is set6943 when user is logged in6944 sets current_user6945 with a stale password6946 sets current_user to nil6947 when user is not logged in6948 sets current_user to nil6949 when session cookie is not set6950 sets current_user to nil6951 when session cookie is an empty string6952 sets current_user to nil6953MergeRequests::SetReviewerReviewedWorker6954 # order random6955 calls MergeRequests::MarkReviewerReviewedService6956 behaves like subscribes to event6957 consumes the published event6958 behaves like an idempotent worker6959 is labeled as idempotent6960 performs multiple times sequentially without raising an exception6961 when the merge request does not exist6962 behaves like when object does not exist6963 logs and does not call MergeRequests::MarkReviewerReviewedService6964 when the user does not exist6965 behaves like when object does not exist6966 logs and does not call MergeRequests::MarkReviewerReviewedService6967MailScheduler::NotificationServiceWorker6968 #perform6969 deserializes arguments from global IDs6970 when the arguments cannot be deserialized6971 when the arguments are not deserializeable6972 raises exception6973 when the arguments are deserializeable6974 does nothing6975 when the method is allowed6976 calls the method on NotificationService6977 when the method is not allowed6978 raises ArgumentError6979 .perform_async6980 serializes arguments as global IDs when scheduling6981 with ActiveController::Parameters6982 when permitted6983 serializes as a serializable Hash6984 when not permitted6985 fails to serialize6986Resolvers::Ci::GroupRunnersResolver6987 #resolve6988 when user cannot see runners6989 returns no runners6990 with user as group owner6991 returns all the runners6992 with membership direct6993 returns only direct runners6994 with obj set to nil6995 raises an error6996 with obj not set to group6997 raises an error6998 Allowed query arguments6999 calls RunnersFinder with expected arguments7000Nav::NewDropdownHelper7001 #new_dropdown_view_model7002 has title7003 when current_user is nil (anonymous)7004 is expected to be nil7005 when group and project are nil7006 has base results7007 when can create project7008 has project menu item7009 when can create group7010 has group menu item7011 when can create snippet7012 has new snippet menu item7013 with persisted group7014 has base results7015 when can create projects in group7016 has new project menu item7017 when can create subgroup7018 has new subgroup menu item7019 when can invite members7020 behaves like invite member item7021 shows invite member link with emoji7022 with persisted project7023 has base results7024 with show_new_issue_link?7025 shows new issue menu item7026 with merge project7027 shows merge project7028 when can create snippet7029 shows new snippet7030 when invite members experiment7031 behaves like invite member item7032 shows invite member link with emoji7033 with persisted group and project7034 gives precedence to project over group7035WebHookLogPresenter7036 #details_path7037 project hook7038 is expected to eq "/namespace887/project-929/-/hooks/15/hook_logs/4"7039 service hook7040 is expected to eq "/namespace888/project-930/-/settings/integrations/drone_ci/hook_logs/5"7041 #retry_path7042 project hook7043 is expected to eq "/namespace889/project-931/-/hooks/18/hook_logs/6/retry"7044 service hook7045 is expected to eq "/namespace890/project-932/-/settings/integrations/drone_ci/hook_logs/7/retry"7046Projects::CountService7047 .query7048 raises NotImplementedError7049 #relation_for_count7050 calls the class method query with the project id7051 #count7052 returns the number of rows7053 caches the number of rows7054 #refresh_cache7055 refreshes the cache7056 #delete_cache7057 removes the cache7058 #cache_key_name7059 raises NotImplementedError7060 #cache_key7061 returns the cache key as an Array7062Gitlab::Pages::CacheControl7063 fails with invalid type7064 .for_namespace7065 behaves like cache_control7066 is expected to match /pages_domain_for_namespace_1_*/7067 #clear_cache7068 clears the cache7069 .for_domain7070 behaves like cache_control7071 is expected to match /pages_domain_for_domain_1_*/7072 #clear_cache7073 clears the cache7074 #cache_key7075 does not change the pages config7076 is based on pages settings7077 is based on the force_pages_access_control settings7078 caches the application settings hash7079WebHooks::LogDestroyWorker7080 #perform7081 with a Web hook7082 deletes the relevant logs7083 is idempotent7084 raises and tracks an error if destroy failed7085 with extra arguments7086 does not raise an error7087 with no arguments7088 does not raise an error7089 with empty arguments7090 does not raise an error7091 with unknown hook7092 does not raise an error7093Projects::AllIssuesCountService7094 behaves like a counter caching service7095 #count7096 caches the count7097 #refresh_cache7098 refreshes the cache7099 #delete_cache7100 removes the cache7101 #uncached_count7102 does not cache the count7103 #count7104 returns the number of all issues7105Packages::Nuget::SyncMetadatumService7106 #execute7107 creates a nuget metadatum7108 behaves like saving metadatum attributes7109 saves nuget metadatum7110 with exisiting nuget metadatum7111 does not create a nuget metadatum7112 behaves like saving metadatum attributes7113 saves nuget metadatum7114 with empty metadata7115 destroys the nuget metadatum7116 with metadata containing only authors and description7117 updates the nuget metadatum7118 with too long metadata7119 truncates authors and description to the maximum length and logs its info7120EnvironmentHelper7121 #render_deployment_status7122 when using a manual deployment7123 renders a span tag7124 when using a deployment from a build7125 renders a link tag7126 for a blocked deployment7127 indicates the status7128 #environments_detail_data_json7129 returns the correct data7130 when metrics dashboard feature is available7131 includes metrics path7132Gitlab::Database::MigrationHelpers::WraparoundVacuumHelpers7133 # order random7134 Gitlab::Database::MigrationHelpers::WraparoundVacuumHelpers::WraparoundCheck7135 #execute7136 with wraparound vacuuum running7137 outputs a message related to autovacuum7138 is expected to output /autovacuum: VACUUM public.ci_builds \(to prevent wraparound\)/ to stdout7139 is expected to output /Current duration: 2 hours, 30 minutes/ to stdout7140 when GITLAB_MIGRATIONS_DISABLE_WRAPAROUND_CHECK is set7141 is expected not to output /autovacuum/i to stdout7142 is disabled on .com7143 when executed by self-managed7144 is expected not to output /autovacuum/i to stdout7145 with wraparound vacuuum not running7146 is expected not to output /autovacuum/i to stdout7147 when the table does not exist7148 is expected to raise Gitlab::Database::MigrationHelpers::WraparoundVacuumHelpers::WraparoundCheck::WraparoundError with message matching /no_table/7149 #check_if_wraparound_in_progress7150 delegates to the wraparound class7151Namespaces::SyncEvent7152 # order random7153 .enqueue_worker7154 schedules Namespaces::ProcessSyncEventsWorker job7155 .upper_bound_count7156 returns 0 when there are no records in the table7157 returns an estimated number of the records in the database7158RuboCop::Cop::CodeReuse::Worker7159 # order random7160 flags the use of a worker in a Presenter7161 flags the use of a worker in a Serializer7162 flags the use of a worker in an API7163 flags the use of a worker in GraphQL7164 flags the use of a worker in a Finder7165 flags the use of a worker in a controller7166 flags the use of a worker in a model class method7167Gitlab::Ci::Ansi2json::State7168 # order random7169 #encode7170 deterministically signs the state7171 #initialize7172 restores valid prior state7173 ignores unsigned prior state7174 ignores bad input7175Gitlab::ColorSchemes7176 .body_classes7177 returns a space-separated list of class names7178 .by_id7179 returns a scheme by its ID7180 .default7181 use config default7182 .each7183 passes the block to the SCHEMES Array7184 .for_user7185 returns default when user is nil7186 returns user's preferred color scheme7187Gitlab::ImportExport::Project::ExportedRelationsMerger7188 # order random7189 #save7190 downloads, extracts, and merges all files into export_path7191 when exception occurs7192 registers the exception messages and returns false7193IssueEmailParticipantPresenter7194 # order random7195 #email7196 when anonymous7197 is expected to eq "an*****@e*****.c**"7198 with signed in user7199 when user has no role in project7200 is expected to eq "an*****@e*****.c**"7201 when user has guest role in project7202 is expected to eq "an*****@e*****.c**"7203 when user has reporter role in project7204 is expected to eq "any@example.com"7205 when user has developer role in project7206 is expected to eq "any@example.com"7207AnalyticsIssueSerializer7208 when there is a single object provided7209 contains important elements of the issue7210Gitlab::Ci::Parsers::Sbom::CyclonedxProperties7211 when properties are nil7212 is expected to be nil7213 when report does not have gitlab properties7214 is expected to be nil7215 when schema_version is missing7216 is expected to be nil7217 when schema version is unsupported7218 is expected to be nil7219 when no dependency_scanning properties are present7220 does not call dependency_scanning parser7221 when dependency_scanning properties are present7222 passes only supported properties to the dependency scanning parser7223CommitUserMention7224 associations7225 is expected to belong to note required: false7226 behaves like has user mentions7227 #has_mentions?7228 when no mentions7229 returns false7230 when mentioned_users_ids not null7231 returns true7232 when mentioned projects7233 returns true7234 when mentioned groups7235 returns true7236ResourceEvents::MergeRequestAssignmentEvent7237 # order random7238 validations7239 is expected to be valid7240 is expected to validate that :merge_request cannot be empty/falsy7241 associations7242 is expected to belong to user required: false7243 is expected to belong to merge_request required: false7244Releases::CreateEvidenceWorker7245 creates a new Evidence record7246 creates a new Evidence record with pipeline7247Gitlab::CryptoHelper7248 .sha2567249 generates SHA256 digest Base46 encoded7250 .aes256_gcm_encrypt7251 is Base64 encoded string without new line character7252 encrypts using static iv7253 with provided iv7254 encrypts using provided iv7255 .aes256_gcm_decrypt7256 when token was encrypted using static nonce7257 correctly decrypts encrypted string7258 decrypts a value when it ends with a new line character7259 when token was encrypted using random nonce7260 correctly decrypts encrypted string7261Sidebars::Concerns::LinkWithHtmlOptions7262 #link_html_options7263 with existing classes7264 includes class and default aria-label attribute7265 without existing classes7266 includes gl-link class7267Projects::Security::ConfigurationHelper7268 security_upgrade_path7269 is expected to eq "https://about.gitlab.com/pricing/"7270 vulnerability_training_docs_path7271 is expected to eq "/help/user/application_security/vulnerabilities/index#enable-security-training-for-vulnerabilities"7272Gitlab::Ci::ProcessableObjectHierarchy7273 # order random7274 #base_and_descendants7275 includes the base and its descendants7276 when with_depth is true7277 includes depth in the results7278 #base_and_ancestors7279 includes the base and its ancestors7280 can find ancestors upto a certain level7281 hierarchy_order option7282 for :asc7283 orders by child to ancestor7284 for :desc7285 orders by ancestor to child7286StripAttribute7287 .strip_attributes!7288 is expected to respond to #strip_attributes!7289 is expected to include :title7290 #strip_attributes!7291 is expected to eq "8.3"7292ObjectStorage::CDN::GoogleIpCache7293 # order random7294 .async_refresh7295 schedules the worker7296 .google_ip?7297 uses the L2 cache and updates the L1 cache when L1 is missing7298 avoids populating L1 cache if L2 is missing7299 ip_address: "34.80.0.1", expected: true7300 is expected to eq true7301 ip_address: "18.245.0.42", expected: false7302 is expected to eq false7303 ip_address: "2500:1900:4180:0000:0000:0000:0000:0000", expected: false7304 is expected to eq false7305 ip_address: "2600:1900:4180:0000:0000:0000:0000:0000", expected: true7306 is expected to eq true7307 ip_address: "10.10.1.5", expected: false7308 is expected to eq false7309 ip_address: "fc00:0000:0000:0000:0000:0000:0000:0000", expected: false7310 is expected to eq false7311 .update!7312 caches to both L1 and L2 caches7313 .ready?7314 returns false7315 returns true7316BlobViewer::Markup7317 #banzai_render_context7318 returns context needed for banzai rendering7319 when blob does respond to rendered_markup7320 does sets rendered key7321search/show7322 when search term is supplied7323 renders the results partial7324 when the search page is opened7325 displays the title7326 does not render the results partial7327 does render the sidebar7328 unfurling support7329 search with full count7330 renders meta tags for a group7331 renders meta tags for both group and project7332 search without full count7333 renders meta tags for a group7334 renders meta tags for both group and project7335IssueBoardEntity7336 has basic attributes7337 has path and endpoints7338 has milestone attributes7339 has assignee attributes7340 has label attributes7341 type7342 has an issue type7343 real_path7344 has an issue path7345 when issue is of type task7346 has a work item path with iid7347ErrorTracking::ErrorEvent7348 relationships7349 is expected to belong to error required: false7350 validations7351 is expected to validate that :description cannot be empty/falsy7352 is expected to validate that the length of :description is at most 10247353 is expected to validate that :occurred_at cannot be empty/falsy7354 is expected to validate that the length of :level is at most 2557355 is expected to validate that the length of :environment is at most 2557356 #stacktrace7357 builds a stacktrace7358 #to_sentry_error_event7359 is expected to be a kind of Gitlab::ErrorTracking::ErrorEvent7360projects/issues/service_desk/_service_desk_info_content7361 when service desk is disabled7362 when the logged user is at least maintainer7363 shows the info including the project settings link7364 when the logged user is at only a developer7365 shows the info without the project settings link7366 when service desk is enabled7367 when the logged user is at least reporter7368 shows the info including the email address7369 when the logged user is at only a guest7370 shows the info without the email address7371 when user is not logged in7372 shows the info without the email address7373Gitlab::Database::SchemaValidation::Validators::ExtraTriggers7374 # order random7375 returns trigger inconsistencies7376Gitlab::Utils::ErrorMessage7377 # order random7378 #to_user_facing7379 returns a user-facing error message with the UF prefix7380 #prefixed_error_message7381 returns a message with the given prefix7382Ci::GenerateKubeconfigService7383 #execute7384 returns a Kubeconfig Template7385 adds a cluster7386 filters the pipeline's agents by `nil` environment7387 adds user and context for all eligible agents7388 when environment is specified7389 filters the pipeline's agents by the specified environment7390Ml::CandidateDetailsPresenter7391 # order random7392 #execute7393 when candidate has metrics, params and artifacts7394 generates the correct params7395 generates the correct metrics7396 generates the correct info7397 when candidate has job7398 generates the correct ci7399 when build user is nil7400 does not include build user info7401 and job is from MR7402 generates the correct ci7403Banzai::Filter::MarkdownEngines::Base7404 # order random7405 turns off sourcepos7406 raise error if render not implemented7407Gitlab::JiraImport::Stage::ImportNotesWorker7408 modules7409 behaves like include import workers modules7410 is expected to includes the ApplicationWorker module7411 is expected to includes the Gitlab::JiraImport::QueueOptions module7412 is expected to includes the Gitlab::JiraImport::ImportWorker module7413 #perform7414 when import did not start7415 behaves like cannot do Jira import7416 does not advance to next stage7417 behaves like does not advance to next stage7418 does not advance to next stage7419 when import started7420 behaves like advance to next stage7421 advances to finish stage7422Packages::Rpm::RepositoryMetadata::BuildOtherXmlService7423 # order random7424 #execute7425 adds all changelog nodes7426 set required date attribute7427Ci::StuckBuilds::DropRunningWorker7428 #perform7429 executes an instance of Ci::StuckBuilds::DropRunningService7430 behaves like an idempotent worker7431 is labeled as idempotent7432 performs multiple times sequentially without raising an exception7433Users::UpdateHighestMemberRoleService7434 #execute7435 when user_highest_role already exists7436 when the current highest access level equals the already stored highest access level7437 does not update the highest access level7438 when the current highest access level does not equal the already stored highest access level7439 updates the highest access level7440 when user_highest_role does not exist7441 creates an user_highest_role object to store the highest access level7442Gitlab::Checks::ProjectCreated7443 .fetch_message7444 with a project created message queue7445 returns project created message7446 deletes the project created message from redis7447 with a message in the legacy key7448 returns and deletes the legacy message7449 with no project created message queue7450 returns nil7451 #add_message7452 queues a project created message7453 when user is nil7454 handles anonymous push7455SignatureType7456 # order random7457 #type7458 when class does not define a type method7459 raises a NoMethodError with custom message7460Clusters::Kubernetes::FetchKubernetesTokenService7461 #execute7462 when params correct7463 when the secret exists7464 is expected to eq "xxx.token.xxx"7465 when there is a 500 error7466 is expected to raise Kubeclient::HttpError7467 when the secret does not exist on the first try7468 retries and finds the token7469 when the secret permanently does not exist7470 is expected to be nil7471 when the secret is missing a token on the first try7472 retries and finds the token7473 when the secret is permanently missing a token7474 is expected to be nil7475Gitlab::CodeNavigationPath7476 when there is an artifact with code navigation data7477 when a pipeline exist for a sha7478 returns path to a file in the artifact7479 when passed commit sha is nil7480 returns path to a file in the artifact7481 when a pipeline exist for the latest commits7482 returns path to a file in the artifact7483Environments::ResetAutoStopService7484 #execute7485 when environment will be stopped automatically7486 resets auto stop7487 when failed to reset auto stop7488 returns error7489 when user is reporter7490 returns error7491 when environment will not be stopped automatically7492 returns error7493Sidebars::Admin::Menus::LabelsMenu7494 # order random7495 behaves like Admin menu without sub menus7496 does not contain any sub menu(s)7497 defines correct active route7498 behaves like Admin menu7499 renders the correct link7500 renders the correct title7501 renders the correct icon7502 renders the separator if needed7503 #render?7504 when user is admin7505 renders7506 when user is not admin7507 does not render7508 when user is not logged in7509 does not render7510ProjectHookPolicy7511 when the user is not a maintainer7512 cannot read and destroy web-hooks7513 when the user is a maintainer7514 can read and destroy web-hooks7515Types::WorkItemIdType7516 .coerce_input7517 can coerce valid issue input7518 can coerce valid work item input7519 fails for other input types7520 .coerce_result7521 can coerce issue results and return a WorkItem global ID7522 can coerce work item results7523 fails for other input types7524Resolvers::ProjectPipelineSchedulesResolver7525 # order random7526 With filters7527 shows active pipeline schedules7528 shows the inactive pipeline schedules7529Gitlab::Ci::Input::Inputs7530 # order random7531 when proper specification has been provided7532 fabricates desired input arguments7533 when unknown arguments are being passed by a user7534 returns an error with a list of unknown arguments7535 when inputs and args are empty7536 is a valid use-case7537 when there are arguments recoincilation errors present7538 when required argument is missing7539 returns an error7540 when argument is not present but configured as allowlist7541 returns an error7542 when unknown specification argument has been used7543 fabricates an unknown argument entry and returns an error7544 when composite specification is being used7545 returns an error describing an unknown specification7546 #valid?7547 describes user-provided inputs7548Gitlab::Middleware::Multipart::Handler7549 #allowed_paths7550 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_allowed_paths7551 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]7552 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_allowed_paths7553 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]7554 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths7555 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]7556 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_allowed_paths7557 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]7558 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_with_packages_path7559 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]7560 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_with_packages_path7561 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]7562 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths7563 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]7564 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_with_packages_path7565 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/public", "/builds/gitlab-org/gitlab/tmp/tests/artifacts/tmp/uploads", "/builds/gitlab-org/gitlab/shared/lfs-objects/tmp/uploads", "/builds/gitlab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]7566API::Entities::DeploymentExtended7567 #as_json7568 includes fields from deployment entity7569PerformanceMonitoring::PrometheusPanel7570 #new7571 accepts old schema format7572 accepts new schema format7573 .from_json7574 creates a PrometheusPanelGroup object7575 validations7576 json_content is not a hash7577 is expected to raise ActiveModel::ValidationError7578 when title is missing7579 is expected to raise ActiveModel::ValidationError7580 when metrics are missing7581 is expected to raise ActiveModel::ValidationError7582 .id7583 returns hexdigest of group_title, type and title as the panel id7584Gitlab::GithubImport::Stage::ImportCollaboratorsWorker7585 # order random7586 #import7587 raises an error7588 when user has push access for this repo7589 imports all collaborators7590 when user do not have push access for this repo7591 skips stage7592 when stage is disabled7593 skips collaborators import and calls next stage7594Gitlab::Git::WrapsGitalyErrors7595 #wrapped_gitaly_errors7596 does not swallow other errors7597 original_error: GRPC::NotFound, wrapped_error: Gitlab::Git::Repository::NoRepository7598 wraps GRPC::NotFound in a Gitlab::Git::Repository::NoRepository7599 original_error: GRPC::InvalidArgument, wrapped_error: ArgumentError7600 wraps GRPC::InvalidArgument in a ArgumentError7601 original_error: GRPC::DeadlineExceeded, wrapped_error: Gitlab::Git::CommandTimedOut7602 wraps GRPC::DeadlineExceeded in a Gitlab::Git::CommandTimedOut7603 original_error: GRPC::BadStatus, wrapped_error: Gitlab::Git::CommandError7604 wraps GRPC::BadStatus in a Gitlab::Git::CommandError7605 when wrap GRPC::ResourceExhausted7606 with Gitaly::LimitError detail7607 wraps in a Gitlab::Git::ResourceExhaustedError with error message7608 with Gitaly::LimitError detail without retry after7609 wraps in a Gitlab::Git::ResourceExhaustedError with error message7610 without Gitaly::LimitError detail7611 wraps in a Gitlab::Git::ResourceExhaustedError with default message7612BuildArtifactEntity7613 #as_json7614 contains job name7615 exposes information about expiration of artifacts7616 exposes the artifact download path7617 when project is specified in options7618 doesnt get a project from the artifact7619Gitlab::Database::Type::JsonPgSafe7620 #serialize7621 value: nil, json: nil7622 is expected to eq nil7623 value: 1, json: "1"7624 is expected to eq "1"7625 value: 1.0, json: "1.0"7626 is expected to eq "1.0"7627 value: "str\u0000ing\u0000", json: "\"string\""7628 is expected to eq "\"string\""7629 value: ["\u0000arr", "a\u0000y"], json: "[\"arr\",\"ay\"]"7630 is expected to eq "[\"arr\",\"ay\"]"7631 value: {"key\u0000"=>"value\u0000\u0000"}, json: "{\"key\":\"value\"}"7632 is expected to eq "{\"key\":\"value\"}"7633Pajamas::Concerns::CheckboxRadioLabelWithHelpText7634 #render_label_with_help_text7635 calls `#format_options` with correct arguments7636 when `help_text` argument is passed7637 calls `form.label` with `label` and `help_text` arguments used in the block7638 when `help_text` argument is not passed7639 calls `form.label` with `label` argument used in the block7640 #render_label_tag_with_help_text7641 calls `#format_options` with correct arguments7642 when `help_text` argument is passed7643 calls `label_tag` with `label` and `help_text` arguments used in the block7644 when `help_text` argument is not passed7645 calls `label_tag` with `label` argument used in the block7646Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs7647 #perform!7648 removes unwanted jobs for chat pipelines7649 does not remove any jobs for non chat-pipelines7650BatchedBackgroundMigration::BatchedBackgroundMigrationGenerator7651 # order random7652 with valid arguments7653 generates expected files7654 without required arguments7655 throws table_name is required error7656 throws column_name is required error7657 throws feature_category is required error7658MergeRequests::AssignsMergeParams7659 raises an error when used from an instance that does not respond to #current_user7660 #assign_allowed_merge_params7661 only assigns known parameters to the merge request7662 returns a hash without the known merge params7663 the force_remove_source_branch param7664 assigns the param if the user is allowed to do that7665 only removes the param if the user is not allowed to do that7666Gitlab::GitAccessDesign7667 #check7668 when the user is allowed to manage designs7669 is expected to be a kind of Gitlab::GitAccessResult::Success7670 when the user is not allowed to manage designs7671 raises an error7672 when the protocol is not web7673 raises an error7674Sidebars::UserSettings::Menus::ProfileMenu7675 # order random7676 behaves like User settings menu #render? method7677 #render?7678 when user is logged in7679 renders7680 when user is not logged in7681 does not render7682 behaves like User settings menu7683 does not contain any sub menu7684 renders the correct link7685 renders the correct title7686 renders the correct icon7687 defines correct active route7688Mutations::Security::CiConfiguration::BaseSecurityAnalyzer7689 raises a NotImplementedError error if the resolve method is called on the base class7690RuboCop::Cop::FilenameLength7691 # order random7692 does not flag files with names 100 characters long7693 tags files with names 101 characters long7694 tags files with names 256 characters long7695 tags files with filepath 257 characters long7696 tags files with filepath 256 characters long7697Gitlab::ImportExport::Project::Sample::DateCalculator7698 #closest date to average7699 when dates are empty7700 is expected to be nil7701 when dates are not empty7702 is expected to eq 2021-01-01 00:00:00.000000000 +00007703 #calculate_by_closest_date_to_average7704 when average date is nil7705 is expected to eq 2023-06-02 06:41:23.354173675 +00007706 when average date is in the past7707 is expected to eq 2024-06-01 06:41:23.381115909 +00007708 when average date is in the future7709 is expected to eq 2023-06-02 06:41:23.408749682 +00007710Gitlab::Analytics::CycleAnalytics::Sorting7711 when invalid sorting params are given7712 falls back to end_event DESC sorting7713 sorting end_event7714 direction desc7715 is expected to eq [#<Arel::Nodes::Descending:0x00007f5033057f00 @expr=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f501728bcc0 @name="merge_request_metrics", @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f501728bae0 @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]7716 direction asc7717 is expected to eq [#<Arel::Nodes::Ascending:0x00007f502cc24100 @expr=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f501728bcc0 @name="merge_request_metrics", @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f501728bae0 @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]7718 sorting duration7719 direction desc7720 is expected to eq [#<Arel::Nodes::Descending:0x00007f5025aacdd8 @expr=#<Arel::Nodes::Subtraction:0x00007f5025aace78 @left=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f501728bcc0 @name="merge_request_metrics", @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f501728bae0 @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">, @right=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f500a4bc4e8 @name="merge_requests", @klass=MergeRequest(id: integer, target_branch: string, source_branch: string, source_project_id: integer, author_id: integer, assignee_id: integer, title: string, created_at: datetime, updated_at: datetime, milestone_id: integer, merge_status: string, target_project_id: integer, iid: integer, description: text, updated_by_id: integer, merge_error: text, merge_params: text, merge_when_pipeline_succeeds: boolean, merge_user_id: integer, merge_commit_sha: string, approvals_before_merge: integer, rebase_commit_sha: string, in_progress_merge_commit_sha: string, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, squash: boolean, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, head_pipeline_id: integer, merge_jid: string, discussion_locked: boolean, latest_merge_request_diff_id: integer, allow_maintainer_to_push: boolean, state_id: integer, rebase_jid: string, squash_commit_sha: binary, sprint_id: integer, merge_ref_sha: binary, draft: boolean, prepared_at: datetime_with_timezone), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f500a4bc3f8 @klass=MergeRequest(id: integer, target_branch: string, source_branch: string, source_project_id: integer, author_id: integer, assignee_id: integer, title: string, created_at: datetime, updated_at: datetime, milestone_id: integer, merge_status: string, target_project_id: integer, iid: integer, description: text, updated_by_id: integer, merge_error: text, merge_params: text, merge_when_pipeline_succeeds: boolean, merge_user_id: integer, merge_commit_sha: string, approvals_before_merge: integer, rebase_commit_sha: string, in_progress_merge_commit_sha: string, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, squash: boolean, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, head_pipeline_id: integer, merge_jid: string, discussion_locked: boolean, latest_merge_request_diff_id: integer, allow_maintainer_to_push: boolean, state_id: integer, rebase_jid: string, squash_commit_sha: binary, sprint_id: integer, merge_ref_sha: binary, draft: boolean, prepared_at: datetime_with_timezone)>, @table_alias=nil>, name="created_at">, @operator=:->>]7721 direction asc7722 is expected to eq [#<Arel::Nodes::Ascending:0x00007f5026edde10 @expr=#<Arel::Nodes::Subtraction:0x00007f5026edde60 @left=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f501728bcc0 @name="merge_request_metrics", @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f501728bae0 @klass=MergeRequest::Metrics(merge_request_id: integer, latest_build_started_at: datetime, latest_build_finished_at: datetime, first_deployed_to_production_at: datetime, merged_at: datetime, created_at: datetime, updated_at: datetime, pipeline_id: integer, merged_by_id: integer, latest_closed_by_id: integer, latest_closed_at: datetime_with_timezone, first_comment_at: datetime_with_timezone, first_commit_at: datetime_with_timezone, last_commit_at: datetime_with_timezone, diff_size: integer, modified_paths_size: integer, commits_count: integer, first_approved_at: datetime_with_timezone, first_reassigned_at: datetime_with_timezone, added_lines: integer, removed_lines: integer, target_project_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">, @right=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f500a4bc4e8 @name="merge_requests", @klass=MergeRequest(id: integer, target_branch: string, source_branch: string, source_project_id: integer, author_id: integer, assignee_id: integer, title: string, created_at: datetime, updated_at: datetime, milestone_id: integer, merge_status: string, target_project_id: integer, iid: integer, description: text, updated_by_id: integer, merge_error: text, merge_params: text, merge_when_pipeline_succeeds: boolean, merge_user_id: integer, merge_commit_sha: string, approvals_before_merge: integer, rebase_commit_sha: string, in_progress_merge_commit_sha: string, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, squash: boolean, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, head_pipeline_id: integer, merge_jid: string, discussion_locked: boolean, latest_merge_request_diff_id: integer, allow_maintainer_to_push: boolean, state_id: integer, rebase_jid: string, squash_commit_sha: binary, sprint_id: integer, merge_ref_sha: binary, draft: boolean, prepared_at: datetime_with_timezone), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f500a4bc3f8 @klass=MergeRequest(id: integer, target_branch: string, source_branch: string, source_project_id: integer, author_id: integer, assignee_id: integer, title: string, created_at: datetime, updated_at: datetime, milestone_id: integer, merge_status: string, target_project_id: integer, iid: integer, description: text, updated_by_id: integer, merge_error: text, merge_params: text, merge_when_pipeline_succeeds: boolean, merge_user_id: integer, merge_commit_sha: string, approvals_before_merge: integer, rebase_commit_sha: string, in_progress_merge_commit_sha: string, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, squash: boolean, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, head_pipeline_id: integer, merge_jid: string, discussion_locked: boolean, latest_merge_request_diff_id: integer, allow_maintainer_to_push: boolean, state_id: integer, rebase_jid: string, squash_commit_sha: binary, sprint_id: integer, merge_ref_sha: binary, draft: boolean, prepared_at: datetime_with_timezone)>, @table_alias=nil>, name="created_at">, @operator=:->>]7723PersonalAccessTokenSerializer7724 #represent7725 can render a single token7726 can render a collection of tokens7727DisallowTwoFactorForGroupWorker7728 updates group7729 updates group members7730Resolvers::Clusters::Agents::Authorizations::UserAccessResolver7731 # order random7732 is expected to be truthy7733 is expected to eq Types::Clusters::Agents::Authorizations::UserAccessType7734 #resolve7735 calls the finder7736Resolvers::GroupResolver7737 #resolve7738 batch-resolves groups by full path7739 resolves an unknown full_path to nil7740 treats group full path as case insensitive7741Packages::Npm::PackagePresenter7742 #name7743 returns the name7744 #versions7745 returns the versions7746 #dist_tags7747 returns the dist_tags7748Mattermost::CreateTeamService7749 # order random7750 adds an error if a team could not be created7751 creates a team7752ContentTypeWhitelist7753 upload whitelisted file content type7754 behaves like accepted carrierwave upload7755 will accept upload7756 will cache uploaded file7757 behaves like upload with content type7758 will not change upload file content type7759 upload non-whitelisted file content type7760 behaves like denied carrierwave upload7761 will deny upload7762 upload misnamed non-whitelisted file content type7763 behaves like denied carrierwave upload7764 will deny upload7765Ci::DailyBuildGroupReportResultEntity7766 #as_json7767 is expected to include :date7768 is expected not to include :group_name7769 is expected to include :coverage7770 when given param_type is not allowed7771 is expected not to include :coverage7772 is expected not to include :something_else7773Packages::CleanupArtifactWorker7774 #model7775 is expected to raise NotImplementedError7776 #log_metadata7777 is expected to raise NotImplementedError7778 #log_cleanup_item7779 is expected to raise NotImplementedError7780shared/_milestones_sort_dropdown.html.haml7781 render7782 when a sort option is not selected7783 renders a default sort option7784 when a sort option is selected7785 renders the selected sort option7786Gitlab::Import::StuckImportJob7787 marks the stuck import project as failed and track the error on import_failures7788Packages::GroupOrProjectPackageFinder7789 execute7790 is expected to raise NotImplementedError7791 execute!7792 is expected to raise NotImplementedError7793Database::MonitorLockedTablesWorker7794 # order random7795 #perform7796 when running with single database7797 skips executing the job7798 when running in decomposed database7799 when the feature flag is disabled7800 skips executing the job7801 when the feature flag is enabled7802 calls TablesLocker with dry_run enabled (PENDING: Skipping because ci is shared or doesn't not exist)7803 reports the tables that need to be locked on both databases main and ci (PENDING: Skipping because ci is shared or doesn't not exist)7804Gitlab::GithubImport::Attachments::ImportMergeRequestWorker7805 # order random7806 #import7807 imports an merge request attachments7808RuboCop::Cop::Migration::RemoveConcurrentIndex7809 # order random7810 outside of migration7811 registers no offense7812 in migration7813 registers an offense when remove_concurrent_index is used inside a change method7814 registers no offense when remove_concurrent_index is used inside an up method7815Gitlab::ChatNameToken7816 when using unknown token7817 returns empty data7818 when storing data7819 returns stored data7820 and after deleting them7821 data are removed7822Types::CustomerRelations::OrganizationSortEnum7823 is expected to eq "OrganizationSort"7824 exposes all the contact sort values7825 behaves like common sort values7826 exposes all the existing common sort values7827Google::Apis::Core::HttpCommand7828 with a successful response7829 returns the response body if block not present7830 calls block if present7831 retries with max elapsed_time and retries7832Gitlab::Tracking::Helpers::WeakPasswordErrorEvent7833 # order random7834 when user does not have any errors7835 does not track the event7836 when user does not have a weak password error7837 does not track the event7838 when user has a weak password error7839 tracks the event7840Gitlab::Audit::NullTarget7841 #id7842 returns nil7843 #type7844 returns nil7845 #details7846 returns nil7847RepositoryCheck::ClearWorker7848 clears repository check columns7849Gitlab::Database::PostgresHll::Buckets7850 #estimated_distinct_count7851 provides estimated cardinality7852 #merge_hash!7853 merges two hashes together into union of two sets7854 #to_json7855 serialize HyperLogLog buckets as hash7856Rack::Multipart7857 with Content-Length under the limit7858 extracts multipart message7859 with Content-Length over the limit7860 from environment7861 behaves like logs multipart message7862 extracts multipart message7863 default limit7864 behaves like logs multipart message7865 extracts multipart message7866Ci::TriggerRequest7867 validation7868 be invalid if saving a variable7869 be valid if not saving a variable7870Types::Ci::GroupVariableType7871 is expected to contain exactly Types::Ci::VariableInterface7872 is expected to have graphql fields :environment_scope, :masked, and :protected7873Gitlab::Database::Migrations::Observers::QueryLog7874 writes a file with the query log7875 does not change the default logger7876Gitlab::SidekiqMiddleware::DuplicateJobs::Server7877 with until_executing strategy7878 #call7879 removes the stored job from redis before execution7880 with until_executed strategy7881 removes the stored job from redis after execution7882Gitlab::GrapeLogging::Formatters::LogrageWithTimestamp7883 turns the log entry to valid JSON7884 re-formats the params hash7885GenerateFailedPackageAndTestMrMessage7886 # order random7887 #execute7888 when package-and-test fails7889 successfully creates a discussion7890 when package-and-test is did not fail7891 does not add a discussion7892Group::CrmSettings7893 associations7894 is expected to belong to group required: false7895 validations7896 is expected to validate that :group cannot be empty/falsy7897Types::BranchRules::BranchProtectionType7898 # order random7899 is expected to require graphql authorizations :read_protected_branch7900 is expected to have graphql fields :merge_access_levels, :push_access_levels, and :allow_force_push7901Gitlab::Utils::MergeHash7902 # order random7903 .crush7904 can flatten a hash to each element7905 .elements7906 deep merges an array of elements7907Gitlab::Database::Grant7908 .create_and_execute_trigger7909 returns true when the user can create and execute a trigger7910 returns false when the user can not create and/or execute a trigger7911API::Entities::Projects::RepositoryStorageMove7912 #as_json7913 includes basic fields7914Namespaces::UserNamespace7915 validations7916 is expected to validate that :owner cannot be empty/falsy7917 #owners7918 is expected to contain exactly #<User id: @user877>7919Types::IssueStateEnum7920 is expected to eq "IssueState"7921 behaves like issuable state7922 exposes all the existing issuable states7923BulkImports::GetImportableDataService7924 #execute7925 returns version_validation and a response7926Gitlab::Database::SchemaValidation::Validators::MissingIndexes7927 # order random7928 returns index inconsistencies7929Gitlab::ErrorTracking::Processor::ContextPayloadProcessor7930 .call7931 merges the context payload into event payload7932Rack VULNDB-2550397933 # order random7934 when handling query params in GET requests7935 does not treat semicolons as query delimiters7936SystemHookPushWorker7937 #perform7938 executes SystemHooksService with expected values7939RuboCop::Cop::RSpec::ModifySidekiqMiddleware7940 # order random7941 registers an offense and corrects7942Gitlab::Usage::Metrics::Instrumentations::HostnameMetric7943 behaves like a correct instrumented metric value7944 has correct value7945NamespaceCiCdSetting7946 associations7947 is expected to belong to namespace required: false inverse_of => ci_cd_settings7948Admin::ComponentsHelper7949 # order random7950 #database_versions7951 returns expected database data7952Types::Packages::Conan::MetadatumType7953 includes conan metadatum fields7954Pending: (Failures listed here are expected and do not affect your suite's status)7955 1) Issue modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank7956 # No reason given7957 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497958 2) Issue modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank7959 # No reason given7960 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577961 3) Ci::CreatePipelineService#execute Pipeline for external pull requests when source is external pull request when config has external_pull_requests keywords when external pull request is specified when pull request is created from fork does not create an external pull request pipeline7962 # Not yet implemented7963 # ./spec/services/ci/create_pipeline_service_spec.rb:14167964 4) NamespaceFileUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 7965 # No pattern provided, skipping.7966 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87967 5) NamespaceFileUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 7968 # No pattern provided, skipping.7969 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87970 6) NamespaceFileUploader behaves like builds correct paths #relative_path is relative7971 # Path not set, skipping.7972 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407973 7) NamespaceFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7974 # No pattern provided, skipping.7975 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87976 8) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7977 # No pattern provided, skipping.7978 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87979 9) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7980 # No pattern provided, skipping.7981 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87982 10) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative7983 # Path not set, skipping.7984 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407985 11) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7986 # No pattern provided, skipping.7987 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87988 12) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7989 # No pattern provided, skipping.7990 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87991 13) Ci::PendingBuild partitioning assigns the same partition id as the one that build has7992 # Skipping partitioning tests until `ci_builds` is partitioned7993 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'7994 RSpec::Core::Pending::SkipDeclaredInExample7995 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'7996 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'7997 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'7998 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'7999 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8000 14) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled calls TablesLocker with dry_run enabled8001 # Skipping because ci is shared or doesn't not exist8002 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:408003 15) Database::MonitorLockedTablesWorker#perform when running in decomposed database when the feature flag is enabled reports the tables that need to be locked on both databases main and ci8004 # Skipping because ci is shared or doesn't not exist8005 # ./spec/workers/database/monitor_locked_tables_worker_spec.rb:478006Finished in 18 minutes 19 seconds (files took 1 minute 9.97 seconds to load)80073659 examples, 0 failures, 15 pending8008Randomized with seed 628288009[TEST PROF INFO] Time spent in factories: 08:30.743 (45.26% of total time)8010RSpec exited with 0.8011No examples to retry, congrats!8013Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8015Uploading artifacts...8016coverage/: found 5 matching artifact files and directories 8017crystalball/: found 2 matching artifact files and directories 8018WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8019knapsack/: found 4 matching artifact files and directories 8020WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8021rspec/: found 14 matching artifact files and directories 8022WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8023log/*.log: found 16 matching artifact files and directories 8024WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964684/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8025WARNING: Retrying... context=artifacts-uploader error=request redirected8026Uploading artifacts as "archive" to coordinator... 201 Created id=4400964684 responseStatus=201 Created token=64_ArScM8027Uploading artifacts...8028rspec/rspec-*.xml: found 1 matching artifact files and directories 8029WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4400964684/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8030WARNING: Retrying... context=artifacts-uploader error=request redirected8031Uploading artifacts as "junit" to coordinator... 201 Created id=4400964684 responseStatus=201 Created token=64_ArScM8033Job succeeded