rspec unit pg12 22/22
Passed Started
by
@dbalexandre

Douglas Barbosa Alexandre
1spec/workers/expire_pipeline_cache_worker_spec.rb2spec/lib/gitlab/ci/tags/bulk_insert_spec.rb3spec/services/base_count_service_spec.rb4spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb5spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb6spec/lib/gitlab/time_tracking_formatter_spec.rb7spec/workers/jira_connect/forward_event_worker_spec.rb8spec/rubocop/cop/default_scope_spec.rb9spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb10spec/lib/prometheus/pid_provider_spec.rb11spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb12spec/serializers/request_aware_entity_spec.rb13spec/serializers/import/provider_repo_serializer_spec.rb14spec/views/projects/commits/show.html.haml_spec.rb15spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb16spec/lib/gitlab/import/database_helpers_spec.rb17spec/lib/gitlab/audit/null_author_spec.rb18spec/graphql/resolvers/user_resolver_spec.rb19spec/lib/gitlab/auth/activity_spec.rb20spec/services/packages/debian/find_or_create_incoming_service_spec.rb21spec/models/term_agreement_spec.rb22spec/lib/gitlab/git/wiki_page_version_spec.rb23spec/serializers/ci/daily_build_group_report_result_entity_spec.rb24spec/lib/gitlab/empty_search_results_spec.rb25spec/graphql/resolvers/group_resolver_spec.rb26spec/db/production/import_common_metrics_spec.rb27spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb28spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb29spec/lib/gitlab/graphql/generic_tracing_spec.rb30spec/lib/gitlab/import_formatter_spec.rb31spec/graphql/types/range_input_type_spec.rb32spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb33spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb34spec/lib/gitlab/rugged_instrumentation_spec.rb35spec/lib/gitlab/string_regex_marker_spec.rb36spec/lib/gitlab/ci/ansi2json/parser_spec.rb37spec/validators/future_date_validator_spec.rb38spec/workers/repository_check/clear_worker_spec.rb39spec/graphql/types/packages/tag_type_spec.rb40spec/graphql/types/issuable_state_enum_spec.rb41spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy_spec.rb42spec/graphql/types/ci/test_report_total_type_spec.rb43spec/policies/instance_metadata_policy_spec.rb44spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb45spec/graphql/types/commit_action_mode_enum_spec.rb46spec/graphql/types/customer_relations/organization_type_spec.rb47spec/serializers/evidences/release_serializer_spec.rb48spec/graphql/types/branch_type_spec.rb49spec/graphql/types/ci/pipeline_message_type_spec.rb50spec/lib/sidebars/menu_item_spec.rb51spec/workers/todos_destroyer/private_features_worker_spec.rb52spec/graphql/types/ci/test_suite_summary_type_spec.rb53spec/graphql/types/ci/test_report_summary_type_spec.rb54spec/graphql/types/ci/pipeline_status_enum_spec.rb55spec/serializers/codequality_reports_comparer_entity_spec.rb56spec/lib/gitlab/database/background_migration/batch_metrics_spec.rb57spec/lib/gitlab/redis/wrapper_spec.rb58spec/graphql/types/ci/pipeline_scope_enum_spec.rb59spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb60spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb61spec/workers/trending_projects_worker_spec.rb62Filter specs:63Running specs:64Running all node tests without filter65spec/models/application_setting_spec.rb66spec/services/auth/container_registry_authentication_service_spec.rb67spec/lib/gitlab/regex_spec.rb68spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb69spec/services/projects/fork_service_spec.rb70spec/models/integrations/slack_spec.rb71spec/finders/deployments_finder_spec.rb72spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb73spec/lib/gitlab/ci/status/build/factory_spec.rb74spec/services/issues/create_service_spec.rb75spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb76spec/lib/gitlab/import_export/members_mapper_spec.rb77spec/lib/gitlab/ci/config/entry/job_spec.rb78spec/lib/gitlab/background_migration/backfill_jira_tracker_deployment_type2_spec.rb79spec/lib/release_highlights/validator_spec.rb80spec/helpers/groups_helper_spec.rb81spec/services/ci/process_sync_events_service_spec.rb82spec/models/ability_spec.rb83spec/graphql/mutations/merge_requests/set_labels_spec.rb84spec/lib/gitlab/background_migration/backfill_namespace_traversal_ids_children_spec.rb85spec/services/web_hook_service_spec.rb86spec/models/merge_request/cleanup_schedule_spec.rb87spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb88spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb89spec/presenters/clusters/cluster_presenter_spec.rb90spec/services/submodules/update_service_spec.rb91spec/lib/gitlab/ci/runner/backoff_spec.rb92spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb93spec/services/projects/operations/update_service_spec.rb94spec/lib/gitlab/search/abuse_detection_spec.rb95spec/lib/gitlab/ci/trace/stream_spec.rb96spec/services/issuable/clone/attributes_rewriter_spec.rb97spec/models/prometheus_metric_spec.rb98spec/services/git/tag_hooks_service_spec.rb99spec/lib/gitlab/usage_data_counters/package_event_counter_spec.rb100spec/lib/banzai/reference_parser/commit_range_parser_spec.rb101spec/helpers/notes_helper_spec.rb102spec/workers/packages/nuget/extraction_worker_spec.rb103spec/lib/gitlab/ci/config/entry/environment_spec.rb104spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb105spec/models/packages/conan/metadatum_spec.rb106spec/views/groups/show.html.haml_spec.rb107spec/lib/gitlab/multi_collection_paginator_spec.rb108spec/graphql/mutations/namespace/package_settings/update_spec.rb109spec/helpers/todos_helper_spec.rb110spec/lib/api/helpers/caching_spec.rb111spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb112spec/lib/gitlab/utils/sanitize_node_link_spec.rb113spec/lib/gitlab/ci/status/build/cancelable_spec.rb114spec/policies/issuable_policy_spec.rb115spec/lib/gitlab/alert_management/payload/generic_spec.rb116spec/views/projects/merge_requests/_commits.html.haml_spec.rb117spec/lib/gitlab/ci/build/rules_spec.rb118spec/services/authorized_project_update/project_create_service_spec.rb119spec/lib/gitlab/ci/config/entry/release_spec.rb120spec/lib/gitlab/ci/status/external/common_spec.rb121spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb122spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb123spec/services/users/refresh_authorized_projects_service_spec.rb124spec/lib/gitlab/diff/diff_refs_spec.rb125spec/models/performance_monitoring/prometheus_dashboard_spec.rb126spec/services/merge_requests/resolved_discussion_notification_service_spec.rb127spec/services/system_notes/commit_service_spec.rb128spec/services/releases/destroy_service_spec.rb129spec/views/notify/pipeline_fixed_email.text.erb_spec.rb130spec/lib/kramdown/parser/atlassian_document_format_spec.rb131spec/lib/gitlab/web_hooks/recursion_detection_spec.rb132spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb133spec/lib/gitlab/background_migration/backfill_incident_issue_escalation_statuses_spec.rb134spec/lib/gitlab/database/load_balancing/setup_spec.rb135spec/models/board_project_recent_visit_spec.rb136spec/lib/gitlab/database/background_migration/batched_job_spec.rb137spec/models/integrations/youtrack_spec.rb138spec/models/ci/unit_test_spec.rb139spec/services/error_tracking/issue_details_service_spec.rb140spec/lib/gitlab/ci/config/entry/default_spec.rb141spec/lib/gitlab/ci/artifact_file_reader_spec.rb142spec/lib/gitlab/import_export/shared_spec.rb143spec/services/groups/deploy_tokens/create_service_spec.rb144spec/models/users_statistics_spec.rb145spec/models/bulk_imports/file_transfer/project_config_spec.rb146spec/services/deployments/update_service_spec.rb147spec/services/jira_import/cloud_users_mapper_service_spec.rb148spec/graphql/mutations/alert_management/create_alert_issue_spec.rb149spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb150spec/lib/gitlab/api_authentication/token_locator_spec.rb151spec/lib/event_filter_spec.rb152spec/lib/csv_builder_spec.rb153spec/lib/sidebars/groups/menus/settings_menu_spec.rb154spec/services/work_items/delete_service_spec.rb155spec/policies/terraform/state_version_policy_spec.rb156spec/serializers/merge_request_user_entity_spec.rb157spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb158spec/serializers/release_serializer_spec.rb159spec/views/projects/hooks/edit.html.haml_spec.rb160spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb161spec/workers/clusters/cleanup/project_namespace_worker_spec.rb162spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb163spec/lib/gitlab/import_export/group/object_builder_spec.rb164spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb165spec/rubocop/cop/code_reuse/worker_spec.rb166spec/workers/concerns/worker_attributes_spec.rb167spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb168spec/lib/gitlab/graphql/known_operations_spec.rb169spec/lib/gitlab/global_id_spec.rb170spec/views/profiles/keys/_form.html.haml_spec.rb171spec/services/ci/after_requeue_job_service_spec.rb172spec/workers/concerns/limited_capacity/job_tracker_spec.rb173spec/graphql/types/query_type_spec.rb174spec/services/users/reject_service_spec.rb175spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb176spec/models/packages/debian/group_architecture_spec.rb177spec/services/packages/maven/create_package_service_spec.rb178spec/lib/bulk_imports/ndjson_pipeline_spec.rb179spec/workers/ci/merge_requests/add_todo_when_build_fails_worker_spec.rb180spec/db/production/settings_spec.rb181spec/graphql/resolvers/terraform/states_resolver_spec.rb182spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb183spec/services/ci/prepare_build_service_spec.rb184spec/serializers/cluster_error_entity_spec.rb185spec/lib/gitlab/email/attachment_uploader_spec.rb186spec/routing/environments_spec.rb187spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb188spec/lib/gitlab/prometheus/adapter_spec.rb189spec/models/project_custom_attribute_spec.rb190spec/lib/banzai/reference_parser/mentioned_user_parser_spec.rb191spec/lib/gitlab/ci/config/entry/jobs_spec.rb192spec/finders/merge_requests/by_approvals_finder_spec.rb193spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb194spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb195spec/lib/banzai/filter/wiki_link_filter_spec.rb196spec/views/admin/application_settings/general.html.haml_spec.rb197spec/models/note_diff_file_spec.rb198spec/models/performance_monitoring/prometheus_panel_spec.rb199spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb200spec/serializers/jira_connect/app_data_serializer_spec.rb201spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb202spec/lib/gitlab/static_site_editor/config/file_config/entry/mounts_spec.rb203spec/lib/mattermost/team_spec.rb204spec/lib/gitlab/hook_data/merge_request_builder_spec.rb205spec/views/admin/sessions/new.html.haml_spec.rb206spec/config/application_spec.rb207spec/lib/gitlab/health_checks/redis/rate_limiting_check_spec.rb208spec/lib/gitlab/ci/pipeline/chain/create_spec.rb209spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb210spec/lib/gitlab/feature_categories_spec.rb211spec/workers/authorized_projects_worker_spec.rb212spec/workers/jira_connect/sync_feature_flags_worker_spec.rb213spec/graphql/mutations/todos/restore_spec.rb214spec/lib/gitlab/middleware/compressed_json_spec.rb215spec/workers/irker_worker_spec.rb216spec/rubocop/cop/scalability/file_uploads_spec.rb217spec/lib/grafana/validator_spec.rb218spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb219spec/helpers/sourcegraph_helper_spec.rb220spec/lib/gitlab/import_export/json/legacy_reader/file_spec.rb221spec/lib/gitlab/hook_data/project_member_builder_spec.rb222spec/rubocop/cop/graphql/resolver_type_spec.rb223spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb224spec/models/concerns/nullify_if_blank_spec.rb225spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb226spec/support_specs/graphql/field_selection_spec.rb227spec/tasks/gitlab/terraform/migrate_rake_spec.rb228spec/rubocop/cop/gitlab/json_spec.rb229spec/lib/gitlab/tracking_spec.rb230spec/views/devise/shared/_signin_box.html.haml_spec.rb231spec/models/uploads/local_spec.rb232spec/services/ci/pipeline_bridge_status_service_spec.rb233spec/lib/gitlab/middleware/query_analyzer_spec.rb234spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb235spec/presenters/ci/trigger_presenter_spec.rb236spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb237spec/models/namespace/aggregation_schedule_spec.rb238spec/lib/gitlab/gitaly_client/diff_spec.rb239spec/lib/constraints/admin_constrainer_spec.rb240spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb241spec/lib/error_tracking/collector/payload_validator_spec.rb242spec/graphql/types/clusters/agent_token_type_spec.rb243spec/lib/gitlab/sample_data_template_spec.rb244spec/rubocop/cop/user_admin_spec.rb245spec/workers/concerns/waitable_worker_spec.rb246spec/graphql/resolvers/design_management/version_resolver_spec.rb247spec/workers/gitlab/github_import/import_pull_request_worker_spec.rb248spec/workers/expire_pipeline_cache_worker_spec.rb249spec/lib/gitlab/ci/tags/bulk_insert_spec.rb250spec/services/base_count_service_spec.rb251spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb252spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb253spec/lib/gitlab/time_tracking_formatter_spec.rb254spec/workers/jira_connect/forward_event_worker_spec.rb255spec/rubocop/cop/default_scope_spec.rb256spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb257spec/lib/prometheus/pid_provider_spec.rb258spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb259spec/serializers/request_aware_entity_spec.rb260spec/serializers/import/provider_repo_serializer_spec.rb261spec/views/projects/commits/show.html.haml_spec.rb262spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb263spec/lib/gitlab/import/database_helpers_spec.rb264spec/lib/gitlab/audit/null_author_spec.rb265spec/graphql/resolvers/user_resolver_spec.rb266spec/lib/gitlab/auth/activity_spec.rb267spec/services/packages/debian/find_or_create_incoming_service_spec.rb268spec/models/term_agreement_spec.rb269spec/lib/gitlab/git/wiki_page_version_spec.rb270spec/serializers/ci/daily_build_group_report_result_entity_spec.rb271spec/lib/gitlab/empty_search_results_spec.rb272spec/graphql/resolvers/group_resolver_spec.rb273spec/db/production/import_common_metrics_spec.rb274spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb275spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb276spec/lib/gitlab/graphql/generic_tracing_spec.rb277spec/lib/gitlab/import_formatter_spec.rb278spec/graphql/types/range_input_type_spec.rb279spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb280spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb281spec/lib/gitlab/rugged_instrumentation_spec.rb282spec/lib/gitlab/string_regex_marker_spec.rb283spec/lib/gitlab/ci/ansi2json/parser_spec.rb284spec/validators/future_date_validator_spec.rb285spec/workers/repository_check/clear_worker_spec.rb286spec/graphql/types/packages/tag_type_spec.rb287spec/graphql/types/issuable_state_enum_spec.rb288spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy_spec.rb289spec/graphql/types/ci/test_report_total_type_spec.rb290spec/policies/instance_metadata_policy_spec.rb291spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb292spec/graphql/types/commit_action_mode_enum_spec.rb293spec/graphql/types/customer_relations/organization_type_spec.rb294spec/serializers/evidences/release_serializer_spec.rb295spec/graphql/types/branch_type_spec.rb296spec/graphql/types/ci/pipeline_message_type_spec.rb297spec/lib/sidebars/menu_item_spec.rb298spec/workers/todos_destroyer/private_features_worker_spec.rb299spec/graphql/types/ci/test_suite_summary_type_spec.rb300spec/graphql/types/ci/test_report_summary_type_spec.rb301spec/graphql/types/ci/pipeline_status_enum_spec.rb302spec/serializers/codequality_reports_comparer_entity_spec.rb303spec/lib/gitlab/database/background_migration/batch_metrics_spec.rb304spec/lib/gitlab/redis/wrapper_spec.rb305spec/graphql/types/ci/pipeline_scope_enum_spec.rb306spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb307spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb308spec/workers/trending_projects_worker_spec.rb309Running all node tests without filter310Running all node tests without filter311Knapsack report generator started!312Run options: exclude {:quarantine=>true, :geo=>true, :level=>"migration"}313==> /builds/gitlab-org/gitlab/tmp/tests/gitlab-test_bare set up in 0.080076808 seconds...314Test environment set up in 2.350923048 seconds315ApplicationSetting316 example at ./spec/models/application_setting_spec.rb:12317 example at ./spec/models/application_setting_spec.rb:13318 is expected to eq nil319 is expected to be valid320 is expected to be present321 is expected to have db column named auto_devops_enabled322 behaves like sanitizable323 includes Sanitizable324 #default_branch_name325 when input includes javascript tags326 gets sanitized327 #default_branch_name validation328 when input contains pre-escaped html entities329 is not valid330 validations331 is expected to allow :home_page_url to be ‹nil›332 is expected to allow :home_page_url to be ‹"http://example.com"›333 is expected to allow :home_page_url to be ‹"https://example.com"›334 is expected not to allow :home_page_url to be ‹"ftp://example.com"›335 is expected to allow :after_sign_out_path to be ‹nil›336 is expected to allow :after_sign_out_path to be ‹"http://example.com"›337 is expected to allow :after_sign_out_path to be ‹"https://example.com"›338 is expected not to allow :after_sign_out_path to be ‹"ftp://example.com"›339 is expected to allow :commit_email_hostname to be ‹"dev.gitlab.com"›340 is expected not to allow :commit_email_hostname to be ‹"@dev.gitlab"›341 is expected to allow :container_expiration_policies_enable_historic_entries to be ‹true›342 is expected to allow :container_expiration_policies_enable_historic_entries to be ‹false›343 is expected not to allow :container_expiration_policies_enable_historic_entries to be ‹nil›344 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@gitlab.com"›345 is expected to allow :lets_encrypt_notification_email to be ‹nil›346 is expected not to allow :lets_encrypt_notification_email to be ‹"notanemail"›347 is expected not to allow :lets_encrypt_notification_email to be ‹"myemail@example.com"›348 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@test.example.com"›349 is expected to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1"]›350 is expected not to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1"]›351 is expected to allow :outbound_local_requests_whitelist to be ‹["111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›352 is expected not to allow :outbound_local_requests_whitelist to be ‹["1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›353 is expected not to allow :outbound_local_requests_whitelist to be ‹["ğitlab.com"]›354 is expected to allow :outbound_local_requests_whitelist to be ‹["xn--itlab-j1a.com"]›355 is expected not to allow :outbound_local_requests_whitelist to be ‹["<h1></h1>"]›356 is expected to allow :outbound_local_requests_whitelist to be ‹["gitlab.com"]›357 is expected not to allow :outbound_local_requests_whitelist to be ‹nil›358 is expected to allow :outbound_local_requests_whitelist to be ‹[]›359 is expected to allow :static_objects_external_storage_url to be ‹nil›360 is expected to allow :static_objects_external_storage_url to be ‹"http://example.com"›361 is expected to allow :static_objects_external_storage_url to be ‹"https://example.com"›362 is expected to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example"]›363 is expected not to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example"]›364 is expected not to allow :protected_paths to be ‹nil›365 is expected to allow :protected_paths to be ‹[]›366 is expected to allow :push_event_hooks_limit to be ‹3›367 is expected not to allow :push_event_hooks_limit to be ‹"three"›368 is expected not to allow :push_event_hooks_limit to be ‹nil›369 is expected to allow :push_event_activities_limit to be ‹3›370 is expected not to allow :push_event_activities_limit to be ‹"three"›371 is expected not to allow :push_event_activities_limit to be ‹nil›372 is expected to validate that :container_registry_delete_tags_service_timeout looks like an integer greater than or equal to 0373 is expected to validate that :container_registry_cleanup_tags_service_max_list_size looks like an integer greater than or equal to 0374 is expected to validate that :container_registry_expiration_policies_worker_capacity looks like an integer greater than or equal to 0375 is expected to validate that :container_registry_import_max_tags_count looks like an integer greater than or equal to 0376 is expected to validate that :container_registry_import_max_retries looks like an integer greater than or equal to 0377 is expected to validate that :container_registry_import_start_max_retries looks like an integer greater than or equal to 0378 is expected to validate that :container_registry_import_max_step_duration looks like an integer greater than or equal to 0379 is expected not to allow :container_registry_import_max_tags_count to be ‹nil›380 is expected not to allow :container_registry_import_max_retries to be ‹nil›381 is expected not to allow :container_registry_import_start_max_retries to be ‹nil›382 is expected not to allow :container_registry_import_max_step_duration to be ‹nil›383 is expected to validate that :container_registry_import_target_plan cannot be empty/falsy384 is expected to validate that :container_registry_import_created_before cannot be empty/falsy385 is expected to validate that :dependency_proxy_ttl_group_policy_worker_capacity looks like an integer greater than or equal to 0386 is expected not to allow :dependency_proxy_ttl_group_policy_worker_capacity to be ‹nil›387 is expected to validate that :packages_cleanup_package_file_worker_capacity looks like an integer greater than or equal to 0388 is expected not to allow :packages_cleanup_package_file_worker_capacity to be ‹nil›389 is expected to validate that :snippet_size_limit looks like an integer greater than 0390 is expected to validate that :wiki_page_max_content_bytes looks like an integer greater than or equal to 1024391 is expected to validate that :max_artifacts_size cannot be empty/falsy392 is expected to validate that :max_artifacts_size looks like an integer greater than 0393 is expected to validate that :max_yaml_size_bytes cannot be empty/falsy394 is expected to validate that :max_yaml_size_bytes looks like an integer greater than 0395 is expected to validate that :max_yaml_depth cannot be empty/falsy396 is expected to validate that :max_yaml_depth looks like an integer greater than 0397 is expected to validate that :max_pages_size cannot be empty/falsy398 ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)399 is expected to validate that :jobs_per_stage_page_size cannot be empty/falsy400 is expected to validate that :jobs_per_stage_page_size looks like an integer greater than or equal to 0401 is expected not to allow :minimum_password_length to be ‹7›402 is expected not to allow :minimum_password_length to be ‹129›403 is expected not to allow :minimum_password_length to be ‹nil›404 is expected not to allow :minimum_password_length to be ‹"abc"›405 is expected to allow :minimum_password_length to be ‹10›406 is expected to allow :issues_create_limit to be ‹300›407 is expected not to allow :issues_create_limit to be ‹"three"›408 is expected not to allow :issues_create_limit to be ‹nil›409 is expected not to allow :issues_create_limit to be ‹10.5›410 is expected not to allow :issues_create_limit to be ‹-1›411 is expected to allow :raw_blob_request_limit to be ‹0›412 is expected not to allow :raw_blob_request_limit to be ‹"abc"›413 is expected not to allow :raw_blob_request_limit to be ‹nil›414 is expected not to allow :raw_blob_request_limit to be ‹10.5›415 is expected not to allow :raw_blob_request_limit to be ‹-1›416 is expected not to allow :hashed_storage_enabled to be ‹false›417 is expected to allow :repository_storages_weighted to be ‹{"default" => 0}›418 is expected to allow :repository_storages_weighted to be ‹{"default" => 50}›419 is expected to allow :repository_storages_weighted to be ‹{"default" => 100}›420 is expected to allow :repository_storages_weighted to be ‹{"default" => "90"}›421 is expected to allow :repository_storages_weighted to be ‹{"default" => nil}›422 is expected not to allow :repository_storages_weighted to be ‹{"default" => -1}›, producing a custom validation error on failure423 is expected not to allow :repository_storages_weighted to be ‹{"default" => 101}›, producing a custom validation error on failure424 is expected not to allow :repository_storages_weighted to be ‹{"default" => 100, shouldntexist: 50}›, producing a custom validation error on failure425 is expected to allow :notes_create_limit to be ‹400›426 is expected not to allow :notes_create_limit to be ‹"two"›427 is expected not to allow :notes_create_limit to be ‹nil›428 is expected not to allow :notes_create_limit to be ‹5.5›429 is expected not to allow :notes_create_limit to be ‹-2›430 is expected to allow :user_email_lookup_limit to be ‹400›431 is expected not to allow :user_email_lookup_limit to be ‹"two"›432 is expected not to allow :user_email_lookup_limit to be ‹nil›433 is expected not to allow :user_email_lookup_limit to be ‹5.5›434 is expected not to allow :user_email_lookup_limit to be ‹-2›435 is expected to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "username36", "username37", "username38", "username39", "username40", "username41", "username42", "username43", "username44", "username45", "username46", "username47", "username48", "username49", "username50", "username51", "username52", "username53", "username54", "username55", "username56", "username57", "username58", "username59", "username60", "username61", "username62", "username63", "username64", "username65", "username66", "username67", "username68", "username69", "username70", "username71", "username72", "username73", "username74", "username75", "username76", "username77", "username78", "username79", "username80", "username81", "username82", "username83", "username84", "username85", "username86", "username87", "username88", "username89", "username90", "username91", "username92", "username93", "username94", "username95", "username96", "username97", "username98", "username99"]›436 is expected not to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "username36", "username37", "username38", "username39", "username40", "username41", "username42", "username43", "username44", "username45", "username46", "username47", "username48", "username49", "username50", "username51", "username52", "username53", "username54", "username55", "username56", "username57", "username58", "username59", "username60", "username61", "username62", "username63", "username64", "username65", "username66", "username67", "username68", "username69", "username70", "username71", "username72", "username73", "username74", "username75", "username76", "username77", "username78", "username79", "username80", "username81", "username82", "username83", "username84", "username85", "username86", "username87", "username88", "username89", "username90", "username91", "username92", "username93", "username94", "username95", "username96", "username97", "username98", "username99", "username100"]›437 is expected not to allow :notes_create_limit_allowlist to be ‹nil›438 is expected to allow :notes_create_limit_allowlist to be ‹[]›439 is expected to allow :whats_new_variant to be ‹"all_tiers"›440 is expected to allow :whats_new_variant to be ‹"current_tier"›441 is expected to allow :whats_new_variant to be ‹"disabled"›442 is expected not to allow :whats_new_variant to be ‹nil›443 is expected not to allow :valid_runner_registrars to be ‹[""]›444 is expected not to allow :valid_runner_registrars to be ‹["OBVIOUSLY_WRONG"]›445 is expected not to allow :valid_runner_registrars to be ‹["project", "project"]›446 is expected not to allow :valid_runner_registrars to be ‹[nil]›447 is expected not to allow :valid_runner_registrars to be ‹nil›448 is expected to allow :valid_runner_registrars to be ‹[]›449 is expected to allow :valid_runner_registrars to be ‹["project", "group"]›450 is expected to validate that :max_attachment_size cannot be empty/falsy451 is expected to validate that :max_attachment_size looks like an integer greater than 0452 is expected to validate that :max_import_size cannot be empty/falsy453 is expected to validate that :max_import_size looks like an integer greater than or equal to 0454 is expected to validate that :local_markdown_version looks like an integer greater than or equal to 0 and less than 65536455 help_page_documentation_base_url validations456 is expected to allow :help_page_documentation_base_url to be ‹nil›457 is expected to allow :help_page_documentation_base_url to be ‹"https://docs.gitlab.com"›458 is expected to allow :help_page_documentation_base_url to be ‹"http://127.0.0.1"›459 is expected not to allow :help_page_documentation_base_url to be ‹"docs.gitlab.com"›460 when url length validation461 when value string length is 255 characters462 allows the value463 when value string length exceeds 255 characters464 does not allow the value465 grafana_url validations466 is expected to allow :grafana_url to be ‹"http://example.com"›467 is expected to allow :grafana_url to be ‹"https://example.com"›468 is expected not to allow :grafana_url to be ‹"ftp://example.com"›469 is expected not to allow :grafana_url to be ‹"javascript:alert(window.opener.document.location)"›470 is expected to allow :grafana_url to be ‹"/-/grafana"›471 is expected to allow :grafana_url to be ‹"http://localhost:9000"›472 when local URLs are not allowed in system hooks473 is expected not to allow :grafana_url to be ‹"http://localhost:9000"›474 with invalid grafana URL475 adds an error476 with blocked grafana URL477 adds an error478 default_branch_name validaitions479 when javascript tags get sanitized properly480 gets sanitized properly481 spam_check_endpoint482 when spam_check_endpoint is enabled483 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›484 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›485 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›486 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›487 is expected not to allow :spam_check_endpoint_url to be ‹nil›488 is expected not to allow :spam_check_endpoint_url to be ‹""›489 when spam_check_endpoint is NOT enabled490 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›491 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›492 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›493 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›494 is expected to allow :spam_check_endpoint_url to be ‹nil›495 is expected to allow :spam_check_endpoint_url to be ‹""›496 when snowplow is enabled497 is expected not to allow :snowplow_collector_hostname to be ‹nil›498 is expected to allow :snowplow_collector_hostname to be ‹"snowplow.gitlab.com"›499 is expected not to allow :snowplow_collector_hostname to be ‹"/example"›500 when snowplow is not enabled501 is expected to allow :snowplow_collector_hostname to be ‹nil›502 when mailgun_events_enabled is enabled503 is expected to validate that :mailgun_signing_key cannot be empty/falsy504 is expected to validate that the length of :mailgun_signing_key is at most 255505 when mailgun_events_enabled is not enabled506 is expected not to validate that :mailgun_signing_key cannot be empty/falsy507 when user accepted let's encrypt terms of service508 is expected not to allow :lets_encrypt_notification_email to be ‹nil›509 EKS integration510 integration is disabled511 is expected to allow :eks_account_id to be ‹nil›512 is expected to allow :eks_access_key_id to be ‹nil›513 is expected to allow :eks_secret_access_key to be ‹nil›514 integration is enabled515 is expected to allow :eks_account_id to be ‹"123456789012"›516 is expected not to allow :eks_account_id to be ‹nil›517 is expected not to allow :eks_account_id to be ‹"123"›518 is expected not to allow :eks_account_id to be ‹"12345678901a"›519 is expected to allow :eks_access_key_id to be ‹"access-key-id-12"›520 is expected not to allow :eks_access_key_id to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›521 is expected not to allow :eks_access_key_id to be ‹"short-key"›522 is expected to allow :eks_access_key_id to be ‹nil›523 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›524 is expected to allow :eks_secret_access_key to be ‹nil›525 access key is specified526 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›527 is expected not to allow :eks_secret_access_key to be ‹nil›528 default_artifacts_expire_in529 sets an error if it cannot parse530 sets an error if it is blank531 sets the value if it is valid532 sets the value if it is 0533 usage_ping_enabled setting534 when setting is in database535 with usage_ping_enabled disabled536 behaves like usage ping disabled537 is expected to eq false538 with usage_ping_enabled enabled539 behaves like usage ping enabled540 is expected to eq true541 when setting is in GitLab config542 with usage_ping_enabled disabled543 behaves like usage ping disabled544 is expected to eq false545 with usage_ping_enabled enabled546 behaves like usage ping enabled547 is expected to eq true548 when setting in database false and setting in GitLab config true549 behaves like usage ping disabled550 is expected to eq false551 when setting database true and setting in GitLab config false552 behaves like usage ping disabled553 is expected to eq false554 when setting database true and setting in GitLab config true555 behaves like usage ping enabled556 is expected to eq true557 key restrictions558 supports all key types559 does not allow all key types to be disabled560 type: :rsa561 is expected to validate that :rsa_key_restriction cannot be empty/falsy562 is expected to allow :rsa_key_restriction to be ‹0›, ‹1024›, ‹2048›, ‹3072›, ‹4096›, or ‹-1›563 is expected not to allow :rsa_key_restriction to be ‹128›564 type: :dsa565 is expected to validate that :dsa_key_restriction cannot be empty/falsy566 is expected to allow :dsa_key_restriction to be ‹0›, ‹1024›, ‹2048›, ‹3072›, or ‹-1›567 is expected not to allow :dsa_key_restriction to be ‹128›568 type: :ecdsa569 is expected to validate that :ecdsa_key_restriction cannot be empty/falsy570 is expected to allow :ecdsa_key_restriction to be ‹0›, ‹256›, ‹384›, ‹521›, or ‹-1›571 is expected not to allow :ecdsa_key_restriction to be ‹128›572 type: :ed25519573 is expected to validate that :ed25519_key_restriction cannot be empty/falsy574 is expected to allow :ed25519_key_restriction to be ‹0›, ‹256›, or ‹-1›575 is expected not to allow :ed25519_key_restriction to be ‹128›576 type: :ecdsa_sk577 is expected to validate that :ecdsa_sk_key_restriction cannot be empty/falsy578 is expected to allow :ecdsa_sk_key_restriction to be ‹0›, ‹256›, or ‹-1›579 is expected not to allow :ecdsa_sk_key_restriction to be ‹128›580 type: :ed25519_sk581 is expected to validate that :ed25519_sk_key_restriction cannot be empty/falsy582 is expected to allow :ed25519_sk_key_restriction to be ‹0›, ‹256›, or ‹-1›583 is expected not to allow :ed25519_sk_key_restriction to be ‹128›584 behaves like an object with email-formatted attributes585 specifically its :abuse_notification_email attribute586 with a value of 'info@example.com'587 is valid588 with a value of 'info+test@example.com'589 is valid590 with a value of 'o'reilly@example.com'591 is valid592 with a value of 'mailto:test@example.com'593 is valid594 with a value of 'lol!'+=?><#$%^&*()@gmail.com'595 is valid596 with a value of 'foobar'597 is invalid598 with a value of 'test@test@example.com'599 is invalid600 repository_storages is a String, not an Array601 is expected to eq ["default"]602 auto_devops_domain setting603 when auto_devops_enabled? is true604 can be blank605 with a valid value606 is valid607 with an invalid value608 is invalid609 repository storages610 inclusion611 is expected to allow :repository_storages to be ‹"custom1"›612 is expected to allow :repository_storages to be ‹["custom2", "custom3"]›613 is expected not to allow :repository_storages to be ‹"alternative"›614 is expected not to allow :repository_storages to be ‹["alternative", "custom1"]›615 presence616 is expected not to allow :repository_storages to be ‹[]›617 is expected not to allow :repository_storages to be ‹""›618 is expected not to allow :repository_storages to be ‹nil›619 housekeeping settings620 is expected not to allow :housekeeping_incremental_repack_period to be ‹0›621 wants the full repack period to be at least the incremental repack period622 wants the gc period to be at least the full repack period623 allows the same period for incremental repack and full repack, effectively skipping incremental repack624 allows the same period for full repack and gc, effectively skipping full repack625 gitaly timeouts626 validates that the default_timeout is lower than the max_request_duration627 is expected to validate that :gitaly_timeout_default looks like an integer greater than or equal to 0628 is expected to validate that :gitaly_timeout_medium looks like an integer greater than or equal to 0629 is expected to validate that :gitaly_timeout_fast looks like an integer greater than or equal to 0630 validates that gitaly_timeout_medium is lower than timeout_default631 validates that gitaly_timeout_fast is lower than timeout_default632 accepts all timeouts equal633 accepts timeouts in descending order634 rejects timeouts in ascending order635 rejects medium timeout larger than default636 rejects medium timeout smaller than fast637 does not prevent from saving when gitaly timeouts were previously invalid638 enforcing terms639 requires the terms to present when enforcing users to accept640 is valid when terms are created641 when external authorization service is enabled642 is expected not to allow :external_authorization_service_url to be ‹"not a URL"›643 is expected to allow :external_authorization_service_url to be ‹"https://example.com"›644 is expected to allow :external_authorization_service_url to be ‹""›645 is expected not to allow :external_authorization_service_default_label to be ‹nil›646 is expected not to allow :external_authorization_service_timeout to be ‹11›647 is expected not to allow :external_authorization_service_timeout to be ‹0›648 is expected not to allow :external_auth_client_cert to be ‹"not a certificate"›649 is expected to allow :external_auth_client_cert to be ‹""›650 is expected to allow :external_auth_client_key to be ‹""›651 when setting a valid client certificate for external authorization652 requires a valid client key when a certificate is set653 requires a matching certificate654 the credentials are valid when the private key can be read and matches the certificate655 asset proxy settings656 #asset_proxy_url657 is expected not to allow :asset_proxy_url to be ‹""›658 is expected to allow :asset_proxy_url to be ‹"http://example.com"›659 is expected to allow :asset_proxy_url to be ‹"https://example.com"›660 is expected not to allow :asset_proxy_url to be ‹"ftp://example.com"›661 is not required when asset proxy is disabled662 #asset_proxy_secret_key663 is expected not to allow :asset_proxy_secret_key to be ‹""›664 is expected to allow :asset_proxy_secret_key to be ‹"anything"›665 is not required when asset proxy is disabled666 is encrypted667 #asset_proxy_whitelist668 when given an Array669 sets the domains and adds current running host670 when given a String671 sets multiple domains with spaces672 sets multiple domains with newlines and a space673 sets multiple domains with commas674 #asset_proxy_allowlist675 when given an Array676 sets the domains and adds current running host677 when given a String678 sets multiple domains with spaces679 sets multiple domains with newlines and a space680 sets multiple domains with commas681 #ci_jwt_signing_key682 is expected not to allow :ci_jwt_signing_key to be ‹""›683 is expected not to allow :ci_jwt_signing_key to be ‹"invalid RSA key"›684 is expected to allow :ci_jwt_signing_key to be ‹nil›685 is expected to allow :ci_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC20Vinpfv0VoGhBHYI7GcrH9wE5U8E2BzO43esxfrqioYh10Qx\nJhSWvhQE6RqnnKHT1cdwyHd8QD2b+E1dG4gCelBsQ0ZpHKxMcWAyvBTIqpXfGrri\nykA/QvXVoO1dywsOj6PQh23KC9ASFf+yXwOgIFgyODR1247mq/6qGCra3QIDAQAB\nAoGBAJxdVkyeJXAJBXqpDCP5vwwdhdwSHZHxHkK+P7/g3gn5TVxoeITpIzcDgK/q\niMfPqoI7GQiYDcqST5+1ssXuJFc3apJgJ1FaQ9mwLuuyOs9DV3wS7hFdz2B+QhDO\nxSprfAUX8A7MjkPgCRygBzrsHqg8ujEO0CAD8ZaEN4ZFr77pAkEA5inPCUlTdq/Y\nyk3So7PgAeL7eOEKxZWhRRJx3Jzon7DsHrBGTudzyxvMgL3FdGvBuLCzeRo7AOIm\np3NAtPOgdwJBAMtW+ISdfWdpk5Ny9ZiZmy7rk+iJ6RAbqKTKy8W/msDDzcAhD4eJ\n3q1zHZkc3UEj6Q7Z4SbzgcLyRGhVeQ5Z6EsCQCIkrZvZDtKaf3RzWv4B3wcontlt\nuOVarxPKCq4JcNDPtBdRWvy1hQ3qT8oBXNtKaPB29gjPBVW6NrW8eSrewT0CQC5f\nXTnROOI2n6NG2l+82DkxHIAxw2cbB7DdVu94LPC9NtUUNRhyBsiDskJS5NqQN/xd\nEA30BqnQ2mz44Sy2sFUCQBKi+F7c/AYTiHlGPUm/ZKJ3MUqu21pUQLBDd9gexgkH\nPyI/E4B4HgPyS1AuJxK/4cFWI0Oya0XdwX2uPOmp6HA=\n-----END RSA PRIVATE KEY-----\n"›686 is encrypted687 #customers_dot_jwt_signing_key688 is expected not to allow :customers_dot_jwt_signing_key to be ‹""›689 is expected not to allow :customers_dot_jwt_signing_key to be ‹"invalid RSA key"›690 is expected to allow :customers_dot_jwt_signing_key to be ‹nil›691 is expected to allow :customers_dot_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQDTlKiDWe2ZeJFaGmCsvukbD0ea72lgQjdV6+w9MJoCjwB/05VE\nnPeWr4cej9mN3Mly11maD6lc44SgRfbcpi8GFUsY/Oas9yisQl/IYoyoULRQ0PsU\nCLPJQ83toHiGPaLx02AjeRRocax2axVFKbrewVfQYHmeswNmOsZpr5ojRQIDAQAB\nAoGBAIo/SlR5QBzVgPQE5EI7hAjgVQNRh+MToSCNRRE+XoNpeQQM9i2c+tIE4x7/\nE0H0j9RwDeXycdF2AETRMlo+Y94/FfCrCsZnQoaZjV70AuhURtOVND2Sk+6LdV6/\nOwpYOXA+oWMpwXILUKZnd3zHHFFNNpVFcvWkaaePj/3qIQvBAkEA9eBSzb5Acn5B\n0deo/yqevEBzs+3P7Qg3+DdAvB2iVXT+fgwsbO2ELJ2v+mOiWyd7i5g9iC5NuJ64\nCbPkoAk3LQJBANxK1wNXPJ7SJeF19SxxnVrT08NqS3HInXVprpMENVjMfZLYoqDB\nWLijA16j6JHCMdUg99dM6XZ1NFYFQE90q3kCQCFVgURdd7VOArRlTYcSiySwhD8v\njZHwHE5thzw5tElrrBkAo4E9Dj9SPYpvuZIsHybExArTZDwUYJUIK4W62h0CQQCy\nRoq89GNlsHHhhSF15zhN4fGVSrdljNIIzA7wgU5e35acOV9bMz2Gpr26YHF9TCgh\n7/1CqsahC/bfyn4iDywZAkAax5fxOHE2GgMxemksDbY9BXOXprOzdmI4jw2DZmXS\ngW/OrNin/FTxvDQpWnZtlDQVlKTHEwmBjDR3xvDsz2hI\n-----END RSA PRIVATE KEY-----\n"›692 is encrypted693 #cloud_license_auth_token694 is expected to allow :cloud_license_auth_token to be ‹nil›695 is encrypted696 static objects external storage697 when URL is set698 is expected not to allow :static_objects_external_storage_auth_token to be ‹nil›699 sourcegraph settings700 is invalid if sourcegraph is enabled and no url is provided701 gitpod settings702 is invalid if gitpod is enabled and no url is provided703 is invalid if gitpod is enabled and an empty url is provided704 is invalid if gitpod is enabled and an invalid url is provided705 throttle_* settings706 throttle_setting: :throttle_unauthenticated_api_requests_per_period707 is expected to allow :throttle_unauthenticated_api_requests_per_period to be ‹3›708 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹-3›709 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹0›710 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹"three"›711 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹nil›712 throttle_setting: :throttle_unauthenticated_api_period_in_seconds713 is expected to allow :throttle_unauthenticated_api_period_in_seconds to be ‹3›714 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹-3›715 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹0›716 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹"three"›717 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹nil›718 throttle_setting: :throttle_unauthenticated_requests_per_period719 is expected to allow :throttle_unauthenticated_requests_per_period to be ‹3›720 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹-3›721 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹0›722 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹"three"›723 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹nil›724 throttle_setting: :throttle_unauthenticated_period_in_seconds725 is expected to allow :throttle_unauthenticated_period_in_seconds to be ‹3›726 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹-3›727 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹0›728 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹"three"›729 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹nil›730 throttle_setting: :throttle_authenticated_api_requests_per_period731 is expected to allow :throttle_authenticated_api_requests_per_period to be ‹3›732 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹-3›733 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹0›734 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹"three"›735 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹nil›736 throttle_setting: :throttle_authenticated_api_period_in_seconds737 is expected to allow :throttle_authenticated_api_period_in_seconds to be ‹3›738 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹-3›739 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹0›740 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹"three"›741 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹nil›742 throttle_setting: :throttle_authenticated_web_requests_per_period743 is expected to allow :throttle_authenticated_web_requests_per_period to be ‹3›744 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹-3›745 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹0›746 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹"three"›747 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹nil›748 throttle_setting: :throttle_authenticated_web_period_in_seconds749 is expected to allow :throttle_authenticated_web_period_in_seconds to be ‹3›750 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹-3›751 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹0›752 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹"three"›753 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹nil›754 throttle_setting: :throttle_unauthenticated_packages_api_requests_per_period755 is expected to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹3›756 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹-3›757 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹0›758 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹"three"›759 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹nil›760 throttle_setting: :throttle_unauthenticated_packages_api_period_in_seconds761 is expected to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹3›762 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹-3›763 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹0›764 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹"three"›765 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹nil›766 throttle_setting: :throttle_authenticated_packages_api_requests_per_period767 is expected to allow :throttle_authenticated_packages_api_requests_per_period to be ‹3›768 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹-3›769 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹0›770 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹"three"›771 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹nil›772 throttle_setting: :throttle_authenticated_packages_api_period_in_seconds773 is expected to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹3›774 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹-3›775 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹0›776 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹"three"›777 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹nil›778 throttle_setting: :throttle_unauthenticated_files_api_requests_per_period779 is expected to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹3›780 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹-3›781 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹0›782 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹"three"›783 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹nil›784 throttle_setting: :throttle_unauthenticated_files_api_period_in_seconds785 is expected to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹3›786 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹-3›787 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹0›788 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹"three"›789 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹nil›790 throttle_setting: :throttle_authenticated_files_api_requests_per_period791 is expected to allow :throttle_authenticated_files_api_requests_per_period to be ‹3›792 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹-3›793 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹0›794 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹"three"›795 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹nil›796 throttle_setting: :throttle_authenticated_files_api_period_in_seconds797 is expected to allow :throttle_authenticated_files_api_period_in_seconds to be ‹3›798 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹-3›799 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹0›800 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹"three"›801 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹nil›802 throttle_setting: :throttle_unauthenticated_deprecated_api_requests_per_period803 is expected to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹3›804 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹-3›805 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹0›806 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹"three"›807 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹nil›808 throttle_setting: :throttle_unauthenticated_deprecated_api_period_in_seconds809 is expected to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹3›810 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹-3›811 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹0›812 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹"three"›813 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹nil›814 throttle_setting: :throttle_authenticated_deprecated_api_requests_per_period815 is expected to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹3›816 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹-3›817 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹0›818 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹"three"›819 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹nil›820 throttle_setting: :throttle_authenticated_deprecated_api_period_in_seconds821 is expected to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹3›822 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹-3›823 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹0›824 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹"three"›825 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹nil›826 throttle_setting: :throttle_authenticated_git_lfs_requests_per_period827 is expected to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹3›828 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹-3›829 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹0›830 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹"three"›831 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹nil›832 throttle_setting: :throttle_authenticated_git_lfs_period_in_seconds833 is expected to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹3›834 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹-3›835 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹0›836 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹"three"›837 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹nil›838 sidekiq job limiter settings839 has the right defaults840 is expected to allow :sidekiq_job_limiter_mode to be ‹"track"›841 is expected to validate that :sidekiq_job_limiter_compression_threshold_bytes looks like an integer greater than or equal to 0842 is expected to validate that :sidekiq_job_limiter_limit_bytes looks like an integer greater than or equal to 0843 restrict creating duplicates844 returns the current settings845 when ApplicationSettings does not have a primary key846 raises an exception847 #disabled_oauth_sign_in_sources=848 removes unknown sources (as strings) from the array849 removes unknown sources (as symbols) from the array850 ignores nil851 performance bar settings852 performance_bar_allowed_group853 with no performance_bar_allowed_group_id saved854 returns nil855 with a performance_bar_allowed_group_id saved856 returns the group857 performance_bar_enabled858 with the Performance Bar is enabled859 returns true860 diff limit settings861 #diff_max_patch_bytes862 validations863 is expected to validate that :diff_max_patch_bytes cannot be empty/falsy864 is expected to validate that :diff_max_patch_bytes looks like an integer greater than or equal to 204800 and less than or equal to 512000865 #diff_max_files866 validations867 is expected to validate that :diff_max_files cannot be empty/falsy868 is expected to validate that :diff_max_files looks like an integer greater than or equal to 1000 and less than or equal to 3000869 #diff_max_lines870 validations871 is expected to validate that :diff_max_lines cannot be empty/falsy872 is expected to validate that :diff_max_lines looks like an integer greater than or equal to 50000 and less than or equal to 100000873 #sourcegraph_url_is_com?874 url: "https://sourcegraph.com", is_com: true875 matches the url with sourcegraph.com876 url: "https://sourcegraph.com/", is_com: true877 matches the url with sourcegraph.com878 url: "https://www.sourcegraph.com", is_com: true879 matches the url with sourcegraph.com880 url: "shttps://www.sourcegraph.com", is_com: false881 matches the url with sourcegraph.com882 url: "https://sourcegraph.example.com/", is_com: false883 matches the url with sourcegraph.com884 url: "https://sourcegraph.org/", is_com: false885 matches the url with sourcegraph.com886 #instance_review_permitted?887 users_over_minimum: -1888 is expected to equal false889 users_over_minimum: 0890 is expected to equal true891 users_over_minimum: 1892 is expected to equal true893 email_restrictions894 when email restrictions are enabled895 allows empty email restrictions896 accepts valid email restrictions regex897 does not accept invalid email restrictions regex898 sets an error when regex is not valid899 when email restrictions are disabled900 allows empty email restrictions901 invalid regex is not valid902 behaves like application settings examples903 predicate method changes when value is updated904 restricted signup domains905 behaves like string of domains906 sets single domain907 sets multiple domains with spaces908 sets multiple domains with newlines and a space909 sets multiple domains with commas910 sets multiple domains with semicolon911 sets multiple domains with mixture of everything912 removes duplicates913 does not fail with garbage values914 does not raise error with nil915 denied signup domains916 sets multiple domain with file917 behaves like string of domains918 sets single domain919 sets multiple domains with spaces920 sets multiple domains with newlines and a space921 sets multiple domains with commas922 sets multiple domains with semicolon923 sets multiple domains with mixture of everything924 removes duplicates925 does not fail with garbage values926 does not raise error with nil927 outbound_local_requests_whitelist928 clears outbound_local_requests_allowlist_arrays memoization929 behaves like string of domains930 sets single domain931 sets multiple domains with spaces932 sets multiple domains with newlines and a space933 sets multiple domains with commas934 sets multiple domains with semicolon935 sets multiple domains with mixture of everything936 removes duplicates937 does not fail with garbage values938 does not raise error with nil939 outbound_local_requests_allowlist_arrays940 separates the IPs and domains941 add_to_outbound_local_requests_whitelist942 adds entry to outbound_local_requests_whitelist943 clears outbound_local_requests_allowlist_arrays memoization944 does not raise error with nil945 does not raise error with nil946 usage ping settings947 when the usage ping is disabled in gitlab.yml948 does not allow the usage ping to be configured949 when the usage ping is disabled in the DB950 returns false for usage_ping_enabled951 when the usage ping is enabled in the DB952 returns false for usage_ping_enabled953 when the usage ping is enabled in gitlab.yml954 allows the usage ping to be configured955 when the usage ping is disabled in the DB956 returns false for usage_ping_enabled957 when the usage ping is enabled in the DB958 returns true for usage_ping_enabled959 #allowed_key_types960 includes all key types by default961 excludes disabled key types962 #key_restriction_for963 returns the restriction value for recognised types964 allows types to be passed as a string965 returns forbidden for unrecognised type966 #allow_signup?967 returns true968 returns false if signup is disabled969 returns false if password authentication is disabled for the web interface970 #pick_repository_storage971 chooses repository based on weight972 #normalized_repository_storage_weights973 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}974 normalizes storage weights975 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}976 normalizes storage weights977 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}978 normalizes storage weights979 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}980 normalizes storage weights981 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}982 normalizes storage weights983 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}984 normalizes storage weights985 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}986 normalizes storage weights987 #user_default_internal_regex_enabled?988 user_default_external: false, user_default_internal_regex: nil, result: false989 is expected to eq false990 user_default_external: false, user_default_internal_regex: "", result: false991 is expected to eq false992 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false993 is expected to eq false994 user_default_external: true, user_default_internal_regex: "", result: false995 is expected to eq false996 user_default_external: true, user_default_internal_regex: nil, result: false997 is expected to eq false998 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true999 is expected to eq true1000 #archive_builds_older_than1001 when the archive_builds_in_seconds is set1002 is expected to be within 60 of 2022-02-04 16:04:04.237700297 +00001003 when the archive_builds_in_seconds is set1004 is expected to be nil1005 #commit_email_hostname1006 when the value is provided1007 returns the provided value1008 when the value is not provided1009 returns the default from the class1010 kroki_format_supported?1011 returns true when Excalidraw is enabled1012 returns true when BlockDiag is enabled1013 returns false when BlockDiag is disabled1014 returns false when the diagram type is optional and not enabled1015 returns true when the diagram type is enabled by default1016 returns false when the diagram type is unknown1017 kroki_formats1018 returns the value for kroki_formats1019 #static_objects_external_storage_auth_token=1020 stores an encrypted version of the token1021 when token is empty1022 removes an encrypted version of the token1023 with plaintext token only1024 ignores the plaintext token1025Auth::ContainerRegistryAuthenticationService1026 behaves like a container registry auth service1027 .full_access_token1028 behaves like an accessible1029 has the correct scope1030 behaves like a valid token1031 is expected to include :token1032 is expected to include "access"1033 a expirable1034 for default configuration1035 is expected not to be within 2 of 2022-02-04 17:14:09.374027107 +00001036 for changed configuration1037 is expected to be within 2 of 2022-02-04 17:14:09.432186052 +00001038 behaves like not a container repository factory1039 does not create a new container repository resource1040 .import_access_token1041 has the correct scope1042 behaves like a valid token1043 is expected to include :token1044 is expected to include "access"1045 a expirable1046 for default configuration1047 is expected not to be within 2 of 2022-02-04 17:14:09.649297372 +00001048 for changed configuration1049 is expected to be within 2 of 2022-02-04 17:14:09.704245087 +00001050 behaves like not a container repository factory1051 does not create a new container repository resource1052 .pull_access_token1053 behaves like an accessible1054 has the correct scope1055 behaves like a valid token1056 is expected to include :token1057 is expected to include "access"1058 a expirable1059 for default configuration1060 is expected not to be within 2 of 2022-02-04 17:14:10.141184848 +00001061 for changed configuration1062 is expected to be within 2 of 2022-02-04 17:14:10.190958353 +00001063 behaves like not a container repository factory1064 does not create a new container repository resource1065 user authorization1066 for registry catalog1067 disallow browsing for users without GitLab admin rights1068 behaves like an inaccessible1069 is expected to include {"access" => []}1070 behaves like a valid token1071 is expected to include :token1072 is expected to include "access"1073 a expirable1074 for default configuration1075 is expected not to be within 2 of 2022-02-04 17:14:10.454662369 +00001076 for changed configuration1077 is expected to be within 2 of 2022-02-04 17:14:10.494176195 +00001078 behaves like not a container repository factory1079 does not create a new container repository resource1080 for private project1081 behaves like private project1082 allow to use scope-less authentication1083 behaves like a valid token1084 is expected to include :token1085 is expected to include "access"1086 a expirable1087 for default configuration1088 is expected not to be within 2 of 2022-02-04 17:14:10.885464340 +00001089 for changed configuration1090 is expected to be within 2 of 2022-02-04 17:14:10.921338206 +00001091 allow developer to push images1092 behaves like a pushable1093 behaves like an accessible1094 has the correct scope1095 behaves like a valid token1096 is expected to include :token1097 is expected to include "access"1098 a expirable1099 for default configuration1100 is expected not to be within 2 of 2022-02-04 17:14:11.522937771 +00001101 for changed configuration1102 is expected to be within 2 of 2022-02-04 17:14:11.741808951 +00001103 behaves like container repository factory1104 creates a new container repository resource1105 disallow developer to delete images1106 behaves like an inaccessible1107 is expected to include {"access" => []}1108 behaves like a valid token1109 is expected to include :token1110 is expected to include "access"1111 a expirable1112 for default configuration1113 is expected not to be within 2 of 2022-02-04 17:14:12.353160035 +00001114 for changed configuration1115 is expected to be within 2 of 2022-02-04 17:14:12.443744547 +00001116 behaves like not a container repository factory1117 does not create a new container repository resource1118 behaves like logs an auth warning1119 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace3/project3", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time1120 disallow developer to delete images since registry 2.71121 behaves like an inaccessible1122 is expected to include {"access" => []}1123 behaves like a valid token1124 is expected to include :token1125 is expected to include "access"1126 a expirable1127 for default configuration1128 is expected not to be within 2 of 2022-02-04 17:14:13.109777066 +00001129 for changed configuration1130 is expected to be within 2 of 2022-02-04 17:14:13.207318568 +00001131 behaves like not a container repository factory1132 does not create a new container repository resource1133 allow reporter to pull images1134 when pulling from root level repository1135 behaves like a pullable1136 behaves like an accessible1137 has the correct scope1138 behaves like a valid token1139 is expected to include :token1140 is expected to include "access"1141 a expirable1142 for default configuration1143 is expected not to be within 2 of 2022-02-04 17:14:13.876325286 +00001144 for changed configuration1145 is expected to be within 2 of 2022-02-04 17:14:14.006807084 +00001146 behaves like not a container repository factory1147 does not create a new container repository resource1148 disallow reporter to delete images1149 behaves like an inaccessible1150 is expected to include {"access" => []}1151 behaves like a valid token1152 is expected to include :token1153 is expected to include "access"1154 a expirable1155 for default configuration1156 is expected not to be within 2 of 2022-02-04 17:14:14.707794471 +00001157 for changed configuration1158 is expected to be within 2 of 2022-02-04 17:14:14.836403899 +00001159 behaves like not a container repository factory1160 does not create a new container repository resource1161 disallow reporter to delete images since registry 2.71162 behaves like an inaccessible1163 is expected to include {"access" => []}1164 behaves like a valid token1165 is expected to include :token1166 is expected to include "access"1167 a expirable1168 for default configuration1169 is expected not to be within 2 of 2022-02-04 17:14:15.496238448 +00001170 for changed configuration1171 is expected to be within 2 of 2022-02-04 17:14:15.583331851 +00001172 behaves like not a container repository factory1173 does not create a new container repository resource1174 return a least of privileges1175 behaves like a pullable1176 behaves like an accessible1177 has the correct scope1178 behaves like a valid token1179 is expected to include :token1180 is expected to include "access"1181 a expirable1182 for default configuration1183 is expected not to be within 2 of 2022-02-04 17:14:16.207126994 +00001184 for changed configuration1185 is expected to be within 2 of 2022-02-04 17:14:16.362493719 +00001186 behaves like not a container repository factory1187 does not create a new container repository resource1188 disallow guest to pull or push images1189 behaves like an inaccessible1190 is expected to include {"access" => []}1191 behaves like a valid token1192 is expected to include :token1193 is expected to include "access"1194 a expirable1195 for default configuration1196 is expected not to be within 2 of 2022-02-04 17:14:17.167232646 +00001197 for changed configuration1198 is expected to be within 2 of 2022-02-04 17:14:17.311355603 +00001199 behaves like not a container repository factory1200 does not create a new container repository resource1201 disallow guest to delete images1202 behaves like an inaccessible1203 is expected to include {"access" => []}1204 behaves like a valid token1205 is expected to include :token1206 is expected to include "access"1207 a expirable1208 for default configuration1209 is expected not to be within 2 of 2022-02-04 17:14:18.084450992 +00001210 for changed configuration1211 is expected to be within 2 of 2022-02-04 17:14:18.215417670 +00001212 behaves like not a container repository factory1213 does not create a new container repository resource1214 disallow guest to delete images since registry 2.71215 behaves like an inaccessible1216 is expected to include {"access" => []}1217 behaves like a valid token1218 is expected to include :token1219 is expected to include "access"1220 a expirable1221 for default configuration1222 is expected not to be within 2 of 2022-02-04 17:14:19.062708903 +00001223 for changed configuration1224 is expected to be within 2 of 2022-02-04 17:14:19.192798791 +00001225 behaves like not a container repository factory1226 does not create a new container repository resource1227 for public project with private container registry1228 behaves like private project1229 allow to use scope-less authentication1230 behaves like a valid token1231 is expected to include :token1232 is expected to include "access"1233 a expirable1234 for default configuration1235 is expected not to be within 2 of 2022-02-04 17:14:19.669740987 +00001236 for changed configuration1237 is expected to be within 2 of 2022-02-04 17:14:19.706164134 +00001238 allow developer to push images1239 behaves like a pushable1240 behaves like an accessible1241 has the correct scope1242 behaves like a valid token1243 is expected to include :token1244 is expected to include "access"1245 a expirable1246 for default configuration1247 is expected not to be within 2 of 2022-02-04 17:14:20.172754612 +00001248 for changed configuration1249 is expected to be within 2 of 2022-02-04 17:14:20.286621321 +00001250 behaves like container repository factory1251 creates a new container repository resource1252 disallow developer to delete images1253 behaves like an inaccessible1254 is expected to include {"access" => []}1255 behaves like a valid token1256 is expected to include :token1257 is expected to include "access"1258 a expirable1259 for default configuration1260 is expected not to be within 2 of 2022-02-04 17:14:21.062899960 +00001261 for changed configuration1262 is expected to be within 2 of 2022-02-04 17:14:21.206456207 +00001263 behaves like not a container repository factory1264 does not create a new container repository resource1265 behaves like logs an auth warning1266 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace4/project4", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time1267 disallow developer to delete images since registry 2.71268 behaves like an inaccessible1269 is expected to include {"access" => []}1270 behaves like a valid token1271 is expected to include :token1272 is expected to include "access"1273 a expirable1274 for default configuration1275 is expected not to be within 2 of 2022-02-04 17:14:22.073918178 +00001276 for changed configuration1277 is expected to be within 2 of 2022-02-04 17:14:22.212289735 +00001278 behaves like not a container repository factory1279 does not create a new container repository resource1280 allow reporter to pull images1281 when pulling from root level repository1282 behaves like a pullable1283 behaves like an accessible1284 has the correct scope1285 behaves like a valid token1286 is expected to include :token1287 is expected to include "access"1288 a expirable1289 for default configuration1290 is expected not to be within 2 of 2022-02-04 17:14:22.902891102 +00001291 for changed configuration1292 is expected to be within 2 of 2022-02-04 17:14:23.022504141 +00001293 behaves like not a container repository factory1294 does not create a new container repository resource1295 disallow reporter to delete images1296 behaves like an inaccessible1297 is expected to include {"access" => []}1298 behaves like a valid token1299 is expected to include :token1300 is expected to include "access"1301 a expirable1302 for default configuration1303 is expected not to be within 2 of 2022-02-04 17:14:23.739746906 +00001304 for changed configuration1305 is expected to be within 2 of 2022-02-04 17:14:23.881565993 +00001306 behaves like not a container repository factory1307 does not create a new container repository resource1308 disallow reporter to delete images since registry 2.71309 behaves like an inaccessible1310 is expected to include {"access" => []}1311 behaves like a valid token1312 is expected to include :token1313 is expected to include "access"1314 a expirable1315 for default configuration1316 is expected not to be within 2 of 2022-02-04 17:14:24.622521755 +00001317 for changed configuration1318 is expected to be within 2 of 2022-02-04 17:14:24.762476002 +00001319 behaves like not a container repository factory1320 does not create a new container repository resource1321 return a least of privileges1322 behaves like a pullable1323 behaves like an accessible1324 has the correct scope1325 behaves like a valid token1326 is expected to include :token1327 is expected to include "access"1328 a expirable1329 for default configuration1330 is expected not to be within 2 of 2022-02-04 17:14:25.578582558 +00001331 for changed configuration1332 is expected to be within 2 of 2022-02-04 17:14:25.730453844 +00001333 behaves like not a container repository factory1334 does not create a new container repository resource1335 disallow guest to pull or push images1336 behaves like an inaccessible1337 is expected to include {"access" => []}1338 behaves like a valid token1339 is expected to include :token1340 is expected to include "access"1341 a expirable1342 for default configuration1343 is expected not to be within 2 of 2022-02-04 17:14:26.555028239 +00001344 for changed configuration1345 is expected to be within 2 of 2022-02-04 17:14:26.672559238 +00001346 behaves like not a container repository factory1347 does not create a new container repository resource1348 disallow guest to delete images1349 behaves like an inaccessible1350 is expected to include {"access" => []}1351 behaves like a valid token1352 is expected to include :token1353 is expected to include "access"1354 a expirable1355 for default configuration1356 is expected not to be within 2 of 2022-02-04 17:14:27.294228071 +00001357 for changed configuration1358 is expected to be within 2 of 2022-02-04 17:14:27.374134384 +00001359 behaves like not a container repository factory1360 does not create a new container repository resource1361 disallow guest to delete images since registry 2.71362 behaves like an inaccessible1363 is expected to include {"access" => []}1364 behaves like a valid token1365 is expected to include :token1366 is expected to include "access"1367 a expirable1368 for default configuration1369 is expected not to be within 2 of 2022-02-04 17:14:27.968812880 +00001370 for changed configuration1371 is expected to be within 2 of 2022-02-04 17:14:28.083630109 +00001372 behaves like not a container repository factory1373 does not create a new container repository resource1374 for public project with container_registry `enabled`1375 allow anyone to pull images1376 behaves like a pullable1377 behaves like an accessible1378 has the correct scope1379 behaves like a valid token1380 is expected to include :token1381 is expected to include "access"1382 a expirable1383 for default configuration1384 is expected not to be within 2 of 2022-02-04 17:14:28.929080272 +00001385 for changed configuration1386 is expected to be within 2 of 2022-02-04 17:14:29.026875963 +00001387 behaves like not a container repository factory1388 does not create a new container repository resource1389 disallow anyone to push images1390 behaves like an inaccessible1391 is expected to include {"access" => []}1392 behaves like a valid token1393 is expected to include :token1394 is expected to include "access"1395 a expirable1396 for default configuration1397 is expected not to be within 2 of 2022-02-04 17:14:29.545660186 +00001398 for changed configuration1399 is expected to be within 2 of 2022-02-04 17:14:29.653890336 +00001400 behaves like not a container repository factory1401 does not create a new container repository resource1402 disallow anyone to delete images1403 behaves like an inaccessible1404 is expected to include {"access" => []}1405 behaves like a valid token1406 is expected to include :token1407 is expected to include "access"1408 a expirable1409 for default configuration1410 is expected not to be within 2 of 2022-02-04 17:14:30.195530966 +00001411 for changed configuration1412 is expected to be within 2 of 2022-02-04 17:14:30.314242866 +00001413 behaves like not a container repository factory1414 does not create a new container repository resource1415 disallow anyone to delete images since registry 2.71416 behaves like an inaccessible1417 is expected to include {"access" => []}1418 behaves like a valid token1419 is expected to include :token1420 is expected to include "access"1421 a expirable1422 for default configuration1423 is expected not to be within 2 of 2022-02-04 17:14:30.814925020 +00001424 for changed configuration1425 is expected to be within 2 of 2022-02-04 17:14:30.890419303 +00001426 behaves like not a container repository factory1427 does not create a new container repository resource1428 when repository name is invalid1429 behaves like an inaccessible1430 is expected to include {"access" => []}1431 behaves like a valid token1432 is expected to include :token1433 is expected to include "access"1434 a expirable1435 for default configuration1436 is expected not to be within 2 of 2022-02-04 17:14:31.180483967 +00001437 for changed configuration1438 is expected to be within 2 of 2022-02-04 17:14:31.235863091 +00001439 behaves like not a container repository factory1440 does not create a new container repository resource1441 for internal project with container_registry `enabled`1442 for internal user1443 allow anyone to pull images1444 behaves like a pullable1445 behaves like an accessible1446 has the correct scope1447 behaves like a valid token1448 is expected to include :token1449 is expected to include "access"1450 a expirable1451 for default configuration1452 is expected not to be within 2 of 2022-02-04 17:14:32.042529288 +00001453 for changed configuration1454 is expected to be within 2 of 2022-02-04 17:14:32.141018399 +00001455 behaves like not a container repository factory1456 does not create a new container repository resource1457 disallow anyone to push images1458 behaves like an inaccessible1459 is expected to include {"access" => []}1460 behaves like a valid token1461 is expected to include :token1462 is expected to include "access"1463 a expirable1464 for default configuration1465 is expected not to be within 2 of 2022-02-04 17:14:32.666842721 +00001466 for changed configuration1467 is expected to be within 2 of 2022-02-04 17:14:32.758796293 +00001468 behaves like not a container repository factory1469 does not create a new container repository resource1470 disallow anyone to delete images1471 behaves like an inaccessible1472 is expected to include {"access" => []}1473 behaves like a valid token1474 is expected to include :token1475 is expected to include "access"1476 a expirable1477 for default configuration1478 is expected not to be within 2 of 2022-02-04 17:14:33.389686685 +00001479 for changed configuration1480 is expected to be within 2 of 2022-02-04 17:14:33.514974823 +00001481 behaves like not a container repository factory1482 does not create a new container repository resource1483 disallow anyone to delete images since registry 2.71484 behaves like an inaccessible1485 is expected to include {"access" => []}1486 behaves like a valid token1487 is expected to include :token1488 is expected to include "access"1489 a expirable1490 for default configuration1491 is expected not to be within 2 of 2022-02-04 17:14:34.059009894 +00001492 for changed configuration1493 is expected to be within 2 of 2022-02-04 17:14:34.174866173 +00001494 behaves like not a container repository factory1495 does not create a new container repository resource1496 for external user1497 disallow anyone to pull or push images1498 behaves like an inaccessible1499 is expected to include {"access" => []}1500 behaves like a valid token1501 is expected to include :token1502 is expected to include "access"1503 a expirable1504 for default configuration1505 is expected not to be within 2 of 2022-02-04 17:14:34.843351182 +00001506 for changed configuration1507 is expected to be within 2 of 2022-02-04 17:14:34.930252265 +00001508 behaves like not a container repository factory1509 does not create a new container repository resource1510 disallow anyone to delete images1511 behaves like an inaccessible1512 is expected to include {"access" => []}1513 behaves like a valid token1514 is expected to include :token1515 is expected to include "access"1516 a expirable1517 for default configuration1518 is expected not to be within 2 of 2022-02-04 17:14:35.396344362 +00001519 for changed configuration1520 is expected to be within 2 of 2022-02-04 17:14:35.472866965 +00001521 behaves like not a container repository factory1522 does not create a new container repository resource1523 disallow anyone to delete images since registry 2.71524 behaves like an inaccessible1525 is expected to include {"access" => []}1526 behaves like a valid token1527 is expected to include :token1528 is expected to include "access"1529 a expirable1530 for default configuration1531 is expected not to be within 2 of 2022-02-04 17:14:36.030409534 +00001532 for changed configuration1533 is expected to be within 2 of 2022-02-04 17:14:36.146299143 +00001534 behaves like not a container repository factory1535 does not create a new container repository resource1536 for internal project with private container registry1537 behaves like private project1538 allow to use scope-less authentication1539 behaves like a valid token1540 is expected to include :token1541 is expected to include "access"1542 a expirable1543 for default configuration1544 is expected not to be within 2 of 2022-02-04 17:14:36.704150942 +00001545 for changed configuration1546 is expected to be within 2 of 2022-02-04 17:14:36.754914018 +00001547 allow developer to push images1548 behaves like a pushable1549 behaves like an accessible1550 has the correct scope1551 behaves like a valid token1552 is expected to include :token1553 is expected to include "access"1554 a expirable1555 for default configuration1556 is expected not to be within 2 of 2022-02-04 17:14:37.394135119 +00001557 for changed configuration1558 is expected to be within 2 of 2022-02-04 17:14:37.501837430 +00001559 behaves like container repository factory1560 creates a new container repository resource1561 disallow developer to delete images1562 behaves like an inaccessible1563 is expected to include {"access" => []}1564 behaves like a valid token1565 is expected to include :token1566 is expected to include "access"1567 a expirable1568 for default configuration1569 is expected not to be within 2 of 2022-02-04 17:14:38.024132912 +00001570 for changed configuration1571 is expected to be within 2 of 2022-02-04 17:14:38.155459220 +00001572 behaves like not a container repository factory1573 does not create a new container repository resource1574 behaves like logs an auth warning1575 is expected to receive warn({:authorized_actions=>[], :message=>"Denied container registry permissions", :requested_actions=>["*"...ted_project_path=>"namespace7/project7", :scope_type=>"repository", :user_id=>3, :username=>"user1"}) 1 time1576 disallow developer to delete images since registry 2.71577 behaves like an inaccessible1578 is expected to include {"access" => []}1579 behaves like a valid token1580 is expected to include :token1581 is expected to include "access"1582 a expirable1583 for default configuration1584 is expected not to be within 2 of 2022-02-04 17:14:38.766708294 +00001585 for changed configuration1586 is expected to be within 2 of 2022-02-04 17:14:38.861979715 +00001587 behaves like not a container repository factory1588 does not create a new container repository resource1589 allow reporter to pull images1590 when pulling from root level repository1591 behaves like a pullable1592 behaves like an accessible1593 has the correct scope1594 behaves like a valid token1595 is expected to include :token1596 is expected to include "access"1597 a expirable1598 for default configuration1599 is expected not to be within 2 of 2022-02-04 17:14:39.367013539 +00001600 for changed configuration1601 is expected to be within 2 of 2022-02-04 17:14:39.459522571 +00001602 behaves like not a container repository factory1603 does not create a new container repository resource1604 disallow reporter to delete images1605 behaves like an inaccessible1606 is expected to include {"access" => []}1607 behaves like a valid token1608 is expected to include :token1609 is expected to include "access"1610 a expirable1611 for default configuration1612 is expected not to be within 2 of 2022-02-04 17:14:40.071186475 +00001613 for changed configuration1614 is expected to be within 2 of 2022-02-04 17:14:40.159168937 +00001615 behaves like not a container repository factory1616 does not create a new container repository resource1617 disallow reporter to delete images since registry 2.71618 behaves like an inaccessible1619 is expected to include {"access" => []}1620 behaves like a valid token1621 is expected to include :token1622 is expected to include "access"1623 a expirable1624 for default configuration1625 is expected not to be within 2 of 2022-02-04 17:14:40.726854015 +00001626 for changed configuration1627 is expected to be within 2 of 2022-02-04 17:14:40.866142343 +00001628 behaves like not a container repository factory1629 does not create a new container repository resource1630 return a least of privileges1631 behaves like a pullable1632 behaves like an accessible1633 has the correct scope1634 behaves like a valid token1635 is expected to include :token1636 is expected to include "access"1637 a expirable1638 for default configuration1639 is expected not to be within 2 of 2022-02-04 17:14:41.477336647 +00001640 for changed configuration1641 is expected to be within 2 of 2022-02-04 17:14:41.582355377 +00001642 behaves like not a container repository factory1643 does not create a new container repository resource1644 disallow guest to pull or push images1645 behaves like an inaccessible1646 is expected to include {"access" => []}1647 behaves like a valid token1648 is expected to include :token1649 is expected to include "access"1650 a expirable1651 for default configuration1652 is expected not to be within 2 of 2022-02-04 17:14:42.110866889 +00001653 for changed configuration1654 is expected to be within 2 of 2022-02-04 17:14:42.196130331 +00001655 behaves like not a container repository factory1656 does not create a new container repository resource1657 disallow guest to delete images1658 behaves like an inaccessible1659 is expected to include {"access" => []}1660 behaves like a valid token1661 is expected to include :token1662 is expected to include "access"1663 a expirable1664 for default configuration1665 is expected not to be within 2 of 2022-02-04 17:14:42.690839786 +00001666 for changed configuration1667 is expected to be within 2 of 2022-02-04 17:14:42.770046218 +00001668 behaves like not a container repository factory1669 does not create a new container repository resource1670 disallow guest to delete images since registry 2.71671 behaves like an inaccessible1672 is expected to include {"access" => []}1673 behaves like a valid token1674 is expected to include :token1675 is expected to include "access"1676 a expirable1677 for default configuration1678 is expected not to be within 2 of 2022-02-04 17:14:43.397994711 +00001679 for changed configuration1680 is expected to be within 2 of 2022-02-04 17:14:43.520585380 +00001681 behaves like not a container repository factory1682 does not create a new container repository resource1683 delete authorized as maintainer1684 behaves like a valid token1685 is expected to include :token1686 is expected to include "access"1687 a expirable1688 for default configuration1689 is expected not to be within 2 of 2022-02-04 17:14:44.256324143 +00001690 for changed configuration1691 is expected to be within 2 of 2022-02-04 17:14:44.290212780 +00001692 allow to delete images1693 behaves like a deletable1694 behaves like an accessible1695 has the correct scope1696 behaves like a valid token1697 is expected to include :token1698 is expected to include "access"1699 a expirable1700 for default configuration1701 is expected not to be within 2 of 2022-02-04 17:14:44.654896997 +00001702 for changed configuration1703 is expected to be within 2 of 2022-02-04 17:14:44.779954915 +00001704 allow to delete images since registry 2.71705 behaves like a deletable since registry 2.71706 behaves like an accessible1707 has the correct scope1708 behaves like a valid token1709 is expected to include :token1710 is expected to include "access"1711 a expirable1712 for default configuration1713 is expected not to be within 2 of 2022-02-04 17:14:45.162599490 +00001714 for changed configuration1715 is expected to be within 2 of 2022-02-04 17:14:45.243981733 +00001716 build authorized as user1717 allow to use offline_token1718 behaves like an authenticated1719 is expected to include :token1720 is expected to include "access"1721 behaves like a valid token1722 is expected to include :token1723 is expected to include "access"1724 a expirable1725 for default configuration1726 is expected not to be within 2 of 2022-02-04 17:14:45.790760073 +00001727 for changed configuration1728 is expected to be within 2 of 2022-02-04 17:14:45.831161659 +00001729 allow to pull and push images1730 behaves like a pullable and pushable1731 behaves like an accessible1732 has the correct scope1733 behaves like a valid token1734 is expected to include :token1735 is expected to include "access"1736 a expirable1737 for default configuration1738 is expected not to be within 2 of 2022-02-04 17:14:46.160359239 +00001739 for changed configuration1740 is expected to be within 2 of 2022-02-04 17:14:46.234531053 +00001741 behaves like container repository factory1742 creates a new container repository resource1743 allow to delete images since registry 2.71744 behaves like a deletable since registry 2.71745 behaves like an accessible1746 has the correct scope1747 behaves like a valid token1748 is expected to include :token1749 is expected to include "access"1750 a expirable1751 for default configuration1752 is expected not to be within 2 of 2022-02-04 17:14:46.542951704 +00001753 for changed configuration1754 is expected to be within 2 of 2022-02-04 17:14:46.606153439 +00001755 disallow to delete images1756 behaves like an inaccessible1757 is expected to include {"access" => []}1758 behaves like a valid token1759 is expected to include :token1760 is expected to include "access"1761 a expirable1762 for default configuration1763 is expected not to be within 2 of 2022-02-04 17:14:46.819388939 +00001764 for changed configuration1765 is expected to be within 2 of 2022-02-04 17:14:46.876928724 +00001766 for other projects1767 when pulling1768 allow for public1769 behaves like a pullable1770 behaves like an accessible1771 has the correct scope1772 behaves like a valid token1773 is expected to include :token1774 is expected to include "access"1775 a expirable1776 for default configuration1777 is expected not to be within 2 of 2022-02-04 17:14:47.378757648 +00001778 for changed configuration1779 is expected to be within 2 of 2022-02-04 17:14:47.436182603 +00001780 behaves like not a container repository factory1781 does not create a new container repository resource1782 for private1783 behaves like pullable for being team member1784 when you are not member1785 behaves like an inaccessible1786 is expected to include {"access" => []}1787 behaves like a valid token1788 is expected to include :token1789 is expected to include "access"1790 a expirable1791 for default configuration1792 is expected not to be within 2 of 2022-02-04 17:14:48.138316988 +00001793 for changed configuration1794 is expected to be within 2 of 2022-02-04 17:14:48.240888519 +00001795 behaves like not a container repository factory1796 does not create a new container repository resource1797 when you are member1798 behaves like a pullable1799 behaves like an accessible1800 has the correct scope1801 behaves like a valid token1802 is expected to include :token1803 is expected to include "access"1804 a expirable1805 for default configuration1806 is expected not to be within 2 of 2022-02-04 17:14:48.855569103 +00001807 for changed configuration1808 is expected to be within 2 of 2022-02-04 17:14:48.974671552 +00001809 behaves like not a container repository factory1810 does not create a new container repository resource1811 when you are owner1812 behaves like a pullable1813 behaves like an accessible1814 has the correct scope1815 behaves like a valid token1816 is expected to include :token1817 is expected to include "access"1818 a expirable1819 for default configuration1820 is expected not to be within 2 of 2022-02-04 17:14:49.761669390 +00001821 for changed configuration1822 is expected to be within 2 of 2022-02-04 17:14:49.876429670 +00001823 behaves like not a container repository factory1824 does not create a new container repository resource1825 when you are admin1826 when you are not member1827 behaves like an inaccessible1828 is expected to include {"access" => []}1829 behaves like a valid token1830 is expected to include :token1831 is expected to include "access"1832 a expirable1833 for default configuration1834 is expected not to be within 2 of 2022-02-04 17:14:50.472488305 +00001835 for changed configuration1836 is expected to be within 2 of 2022-02-04 17:14:50.571459646 +00001837 behaves like not a container repository factory1838 does not create a new container repository resource1839 when you are member1840 behaves like a pullable1841 behaves like an accessible1842 has the correct scope1843 behaves like a valid token1844 is expected to include :token1845 is expected to include "access"1846 a expirable1847 for default configuration1848 is expected not to be within 2 of 2022-02-04 17:14:51.167361242 +00001849 for changed configuration1850 is expected to be within 2 of 2022-02-04 17:14:51.278841162 +00001851 behaves like not a container repository factory1852 does not create a new container repository resource1853 when you are owner1854 behaves like a pullable1855 behaves like an accessible1856 has the correct scope1857 behaves like a valid token1858 is expected to include :token1859 is expected to include "access"1860 a expirable1861 for default configuration1862 is expected not to be within 2 of 2022-02-04 17:14:52.063560890 +00001863 for changed configuration1864 is expected to be within 2 of 2022-02-04 17:14:52.173325560 +00001865 behaves like not a container repository factory1866 does not create a new container repository resource1867 for public project with private container registry1868 behaves like pullable for being team member1869 when you are not member1870 behaves like an inaccessible1871 is expected to include {"access" => []}1872 behaves like a valid token1873 is expected to include :token1874 is expected to include "access"1875 a expirable1876 for default configuration1877 is expected not to be within 2 of 2022-02-04 17:14:53.054581260 +00001878 for changed configuration1879 is expected to be within 2 of 2022-02-04 17:14:53.189413887 +00001880 behaves like not a container repository factory1881 does not create a new container repository resource1882 when you are member1883 behaves like a pullable1884 behaves like an accessible1885 has the correct scope1886 behaves like a valid token1887 is expected to include :token1888 is expected to include "access"1889 a expirable1890 for default configuration1891 is expected not to be within 2 of 2022-02-04 17:14:53.777400234 +00001892 for changed configuration1893 is expected to be within 2 of 2022-02-04 17:14:53.904263092 +00001894 behaves like not a container repository factory1895 does not create a new container repository resource1896 when you are owner1897 behaves like a pullable1898 behaves like an accessible1899 has the correct scope1900 behaves like a valid token1901 is expected to include :token1902 is expected to include "access"1903 a expirable1904 for default configuration1905 is expected not to be within 2 of 2022-02-04 17:14:54.706493009 +00001906 for changed configuration1907 is expected to be within 2 of 2022-02-04 17:14:54.828208168 +00001908 behaves like not a container repository factory1909 does not create a new container repository resource1910 when you are admin1911 behaves like pullable for being team member1912 when you are not member1913 behaves like an inaccessible1914 is expected to include {"access" => []}1915 behaves like a valid token1916 is expected to include :token1917 is expected to include "access"1918 a expirable1919 for default configuration1920 is expected not to be within 2 of 2022-02-04 17:14:55.467313089 +00001921 for changed configuration1922 is expected to be within 2 of 2022-02-04 17:14:55.582603889 +00001923 behaves like not a container repository factory1924 does not create a new container repository resource1925 when you are member1926 behaves like a pullable1927 behaves like an accessible1928 has the correct scope1929 behaves like a valid token1930 is expected to include :token1931 is expected to include "access"1932 a expirable1933 for default configuration1934 is expected not to be within 2 of 2022-02-04 17:14:56.267820086 +00001935 for changed configuration1936 is expected to be within 2 of 2022-02-04 17:14:56.406144044 +00001937 behaves like not a container repository factory1938 does not create a new container repository resource1939 when you are owner1940 behaves like a pullable1941 behaves like an accessible1942 has the correct scope1943 behaves like a valid token1944 is expected to include :token1945 is expected to include "access"1946 a expirable1947 for default configuration1948 is expected not to be within 2 of 2022-02-04 17:14:57.063016534 +00001949 for changed configuration1950 is expected to be within 2 of 2022-02-04 17:14:57.177075423 +00001951 behaves like not a container repository factory1952 does not create a new container repository resource1953 when pushing1954 disallow for all1955 when you are member1956 behaves like an inaccessible1957 is expected to include {"access" => []}1958 behaves like a valid token1959 is expected to include :token1960 is expected to include "access"1961 a expirable1962 for default configuration1963 is expected not to be within 2 of 2022-02-04 17:14:58.046203224 +00001964 for changed configuration1965 is expected to be within 2 of 2022-02-04 17:14:58.128844027 +00001966 behaves like not a container repository factory1967 does not create a new container repository resource1968 when you are owner1969 behaves like an inaccessible1970 is expected to include {"access" => []}1971 behaves like a valid token1972 is expected to include :token1973 is expected to include "access"1974 a expirable1975 for default configuration1976 is expected not to be within 2 of 2022-02-04 17:14:58.759213839 +00001977 for changed configuration1978 is expected to be within 2 of 2022-02-04 17:14:58.840176231 +00001979 behaves like not a container repository factory1980 does not create a new container repository resource1981 for project without container registry1982 disallow when pulling1983 behaves like an inaccessible1984 is expected to include {"access" => []}1985 behaves like a valid token1986 is expected to include :token1987 is expected to include "access"1988 a expirable1989 for default configuration1990 is expected not to be within 2 of 2022-02-04 17:14:59.530588808 +00001991 for changed configuration1992 is expected to be within 2 of 2022-02-04 17:14:59.589167163 +00001993 behaves like not a container repository factory1994 does not create a new container repository resource1995 for project that disables repository1996 disallow when pulling1997 behaves like an inaccessible1998 is expected to include {"access" => []}1999 behaves like a valid token2000 is expected to include :token2001 is expected to include "access"2002 a expirable2003 for default configuration2004 is expected not to be within 2 of 2022-02-04 17:15:00.199130178 +00002005 for changed configuration2006 is expected to be within 2 of 2022-02-04 17:15:00.283055800 +00002007 behaves like not a container repository factory2008 does not create a new container repository resource2009 registry catalog browsing authorized as admin2010 behaves like a browsable2011 has the correct scope2012 behaves like a valid token2013 is expected to include :token2014 is expected to include "access"2015 a expirable2016 for default configuration2017 is expected not to be within 2 of 2022-02-04 17:15:00.987347975 +00002018 for changed configuration2019 is expected to be within 2 of 2022-02-04 17:15:01.046499760 +00002020 behaves like not a container repository factory2021 does not create a new container repository resource2022 support for multiple scopes2023 user has access to all projects2024 behaves like a browsable2025 has the correct scope2026 behaves like a valid token2027 is expected to include :token2028 is expected to include "access"2029 a expirable2030 for default configuration2031 is expected not to be within 2 of 2022-02-04 17:15:03.173239546 +00002032 for changed configuration2033 is expected to be within 2 of 2022-02-04 17:15:03.373619668 +00002034 behaves like not a container repository factory2035 does not create a new container repository resource2036 user only has access to internal and public projects2037 behaves like a browsable2038 has the correct scope2039 behaves like a valid token2040 is expected to include :token2041 is expected to include "access"2042 a expirable2043 for default configuration2044 is expected not to be within 2 of 2022-02-04 17:15:04.321593791 +00002045 for changed configuration2046 is expected to be within 2 of 2022-02-04 17:15:04.556775990 +00002047 behaves like not a container repository factory2048 does not create a new container repository resource2049 anonymous user has access only to public project2050 behaves like a browsable2051 has the correct scope2052 behaves like a valid token2053 is expected to include :token2054 is expected to include "access"2055 a expirable2056 for default configuration2057 is expected not to be within 2 of 2022-02-04 17:15:05.443866479 +00002058 for changed configuration2059 is expected to be within 2 of 2022-02-04 17:15:05.623341592 +00002060 behaves like not a container repository factory2061 does not create a new container repository resource2062 with no public container registry2063 behaves like a forbidden2064 is expected to include {:http_status => 403}2065 is expected not to include :token2066 unauthorized2067 disallow to use scope-less authentication2068 behaves like a forbidden2069 is expected to include {:http_status => 403}2070 is expected not to include :token2071 behaves like not a container repository factory2072 does not create a new container repository resource2073 for invalid scope2074 behaves like a forbidden2075 is expected to include {:http_status => 403}2076 is expected not to include :token2077 behaves like not a container repository factory2078 does not create a new container repository resource2079 for private project2080 behaves like a forbidden2081 is expected to include {:http_status => 403}2082 is expected not to include :token2083 for public project with container registry `enabled`2084 when pulling and pushing2085 behaves like a pullable2086 behaves like an accessible2087 has the correct scope2088 behaves like a valid token2089 is expected to include :token2090 is expected to include "access"2091 a expirable2092 for default configuration2093 is expected not to be within 2 of 2022-02-04 17:15:07.485076782 +00002094 for changed configuration2095 is expected to be within 2 of 2022-02-04 17:15:07.618588870 +00002096 behaves like not a container repository factory2097 does not create a new container repository resource2098 when pushing2099 behaves like a forbidden2100 is expected to include {:http_status => 403}2101 is expected not to include :token2102 behaves like not a container repository factory2103 does not create a new container repository resource2104 for public project with container registry `private`2105 when pulling and pushing2106 behaves like a forbidden2107 is expected to include {:http_status => 403}2108 is expected not to include :token2109 behaves like not a container repository factory2110 does not create a new container repository resource2111 for registry catalog2112 behaves like a forbidden2113 is expected to include {:http_status => 403}2114 is expected not to include :token2115 behaves like not a container repository factory2116 does not create a new container repository resource2117 for deploy tokens2118 when deploy token has read and write registry as scopes2119 for public project2120 when pulling2121 behaves like a pullable2122 behaves like an accessible2123 has the correct scope2124 behaves like a valid token2125 is expected to include :token2126 is expected to include "access"2127 a expirable2128 for default configuration2129 is expected not to be within 2 of 2022-02-04 17:15:09.704792750 +00002130 for changed configuration2131 is expected to be within 2 of 2022-02-04 17:15:09.858394276 +00002132 when pushing2133 behaves like a pushable2134 behaves like an accessible2135 has the correct scope2136 behaves like a valid token2137 is expected to include :token2138 is expected to include "access"2139 a expirable2140 for default configuration2141 is expected not to be within 2 of 2022-02-04 17:15:10.536728244 +00002142 for changed configuration2143 is expected to be within 2 of 2022-02-04 17:15:10.737872425 +00002144 behaves like able to login2145 registry provides read_container_image authentication_abilities2146 behaves like an authenticated2147 is expected to include :token2148 is expected to include "access"2149 for internal project2150 when pulling2151 behaves like a pullable2152 behaves like an accessible2153 has the correct scope2154 behaves like a valid token2155 is expected to include :token2156 is expected to include "access"2157 a expirable2158 for default configuration2159 is expected not to be within 2 of 2022-02-04 17:15:11.855422843 +00002160 for changed configuration2161 is expected to be within 2 of 2022-02-04 17:15:12.019800548 +00002162 when pushing2163 behaves like a pushable2164 behaves like an accessible2165 has the correct scope2166 behaves like a valid token2167 is expected to include :token2168 is expected to include "access"2169 a expirable2170 for default configuration2171 is expected not to be within 2 of 2022-02-04 17:15:12.493681825 +00002172 for changed configuration2173 is expected to be within 2 of 2022-02-04 17:15:12.607861745 +00002174 behaves like able to login2175 registry provides read_container_image authentication_abilities2176 behaves like an authenticated2177 is expected to include :token2178 is expected to include "access"2179 for private project2180 when pulling2181 behaves like a pullable2182 behaves like an accessible2183 has the correct scope2184 behaves like a valid token2185 is expected to include :token2186 is expected to include "access"2187 a expirable2188 for default configuration2189 is expected not to be within 2 of 2022-02-04 17:15:13.559575698 +00002190 for changed configuration2191 is expected to be within 2 of 2022-02-04 17:15:13.714546913 +00002192 when pushing2193 behaves like a pushable2194 behaves like an accessible2195 has the correct scope2196 behaves like a valid token2197 is expected to include :token2198 is expected to include "access"2199 a expirable2200 for default configuration2201 is expected not to be within 2 of 2022-02-04 17:15:14.389340042 +00002202 for changed configuration2203 is expected to be within 2 of 2022-02-04 17:15:14.582316264 +00002204 behaves like able to login2205 registry provides read_container_image authentication_abilities2206 behaves like an authenticated2207 is expected to include :token2208 is expected to include "access"2209 for public project with private container registry2210 when pulling2211 behaves like a pullable2212 behaves like an accessible2213 has the correct scope2214 behaves like a valid token2215 is expected to include :token2216 is expected to include "access"2217 a expirable2218 for default configuration2219 is expected not to be within 2 of 2022-02-04 17:15:15.916987332 +00002220 for changed configuration2221 is expected to be within 2 of 2022-02-04 17:15:16.121728774 +00002222 when pushing2223 behaves like a pushable2224 behaves like an accessible2225 has the correct scope2226 behaves like a valid token2227 is expected to include :token2228 is expected to include "access"2229 a expirable2230 for default configuration2231 is expected not to be within 2 of 2022-02-04 17:15:16.979856535 +00002232 for changed configuration2233 is expected to be within 2 of 2022-02-04 17:15:17.193961636 +00002234 behaves like able to login2235 registry provides read_container_image authentication_abilities2236 behaves like an authenticated2237 is expected to include :token2238 is expected to include "access"2239 when deploy token does not have read_registry scope2240 for public project with container registry `enabled`2241 when pulling2242 behaves like a pullable2243 behaves like an accessible2244 has the correct scope2245 behaves like a valid token2246 is expected to include :token2247 is expected to include "access"2248 a expirable2249 for default configuration2250 is expected not to be within 2 of 2022-02-04 17:15:18.568504610 +00002251 for changed configuration2252 is expected to be within 2 of 2022-02-04 17:15:18.758337193 +00002253 behaves like unable to login2254 registry provides no container authentication_abilities2255 behaves like a forbidden2256 is expected to include {:http_status => 403}2257 is expected not to include :token2258 registry provides inapplicable container authentication_abilities2259 behaves like a forbidden2260 is expected to include {:http_status => 403}2261 is expected not to include :token2262 for public project with container registry `private`2263 when pulling2264 behaves like an inaccessible2265 is expected to include {"access" => []}2266 behaves like a valid token2267 is expected to include :token2268 is expected to include "access"2269 a expirable2270 for default configuration2271 is expected not to be within 2 of 2022-02-04 17:15:20.398949463 +00002272 for changed configuration2273 is expected to be within 2 of 2022-02-04 17:15:20.609982124 +00002274 behaves like unable to login2275 registry provides no container authentication_abilities2276 behaves like a forbidden2277 is expected to include {:http_status => 403}2278 is expected not to include :token2279 registry provides inapplicable container authentication_abilities2280 behaves like a forbidden2281 is expected to include {:http_status => 403}2282 is expected not to include :token2283 for internal project2284 when pulling2285 behaves like an inaccessible2286 is expected to include {"access" => []}2287 behaves like a valid token2288 is expected to include :token2289 is expected to include "access"2290 a expirable2291 for default configuration2292 is expected not to be within 2 of 2022-02-04 17:15:22.170430202 +00002293 for changed configuration2294 is expected to be within 2 of 2022-02-04 17:15:22.328307997 +00002295 behaves like unable to login2296 registry provides no container authentication_abilities2297 behaves like a forbidden2298 is expected to include {:http_status => 403}2299 is expected not to include :token2300 registry provides inapplicable container authentication_abilities2301 behaves like a forbidden2302 is expected to include {:http_status => 403}2303 is expected not to include :token2304 for private project2305 when pulling2306 behaves like an inaccessible2307 is expected to include {"access" => []}2308 behaves like a valid token2309 is expected to include :token2310 is expected to include "access"2311 a expirable2312 for default configuration2313 is expected not to be within 2 of 2022-02-04 17:15:23.444696135 +00002314 for changed configuration2315 is expected to be within 2 of 2022-02-04 17:15:23.554511185 +00002316 when logging in2317 behaves like a forbidden2318 is expected to include {:http_status => 403}2319 is expected not to include :token2320 behaves like unable to login2321 registry provides no container authentication_abilities2322 behaves like a forbidden2323 is expected to include {:http_status => 403}2324 is expected not to include :token2325 registry provides inapplicable container authentication_abilities2326 behaves like a forbidden2327 is expected to include {:http_status => 403}2328 is expected not to include :token2329 when deploy token is not related to the project2330 for public project with container registry `enabled`2331 when pulling2332 behaves like a pullable2333 behaves like an accessible2334 has the correct scope2335 behaves like a valid token2336 is expected to include :token2337 is expected to include "access"2338 a expirable2339 for default configuration2340 is expected not to be within 2 of 2022-02-04 17:15:24.567939973 +00002341 for changed configuration2342 is expected to be within 2 of 2022-02-04 17:15:24.677632663 +00002343 for public project with container registry `private`2344 when pulling2345 behaves like an inaccessible2346 is expected to include {"access" => []}2347 behaves like a valid token2348 is expected to include :token2349 is expected to include "access"2350 a expirable2351 for default configuration2352 is expected not to be within 2 of 2022-02-04 17:15:25.398229637 +00002353 for changed configuration2354 is expected to be within 2 of 2022-02-04 17:15:25.497448218 +00002355 for internal project2356 when pulling2357 behaves like an inaccessible2358 is expected to include {"access" => []}2359 behaves like a valid token2360 is expected to include :token2361 is expected to include "access"2362 a expirable2363 for default configuration2364 is expected not to be within 2 of 2022-02-04 17:15:26.133399470 +00002365 for changed configuration2366 is expected to be within 2 of 2022-02-04 17:15:26.213542003 +00002367 for private project2368 when pulling2369 behaves like an inaccessible2370 is expected to include {"access" => []}2371 behaves like a valid token2372 is expected to include :token2373 is expected to include "access"2374 a expirable2375 for default configuration2376 is expected not to be within 2 of 2022-02-04 17:15:26.843795795 +00002377 for changed configuration2378 is expected to be within 2 of 2022-02-04 17:15:26.924298248 +00002379 when deploy token has been revoked2380 for public project with container registry `enabled`2381 behaves like a pullable2382 behaves like an accessible2383 has the correct scope2384 behaves like a valid token2385 is expected to include :token2386 is expected to include "access"2387 a expirable2388 for default configuration2389 is expected not to be within 2 of 2022-02-04 17:15:27.861246492 +00002390 for changed configuration2391 is expected to be within 2 of 2022-02-04 17:15:28.005794179 +00002392 for public project with container registry `private`2393 behaves like an inaccessible2394 is expected to include {"access" => []}2395 behaves like a valid token2396 is expected to include :token2397 is expected to include "access"2398 a expirable2399 for default configuration2400 is expected not to be within 2 of 2022-02-04 17:15:28.648929860 +00002401 for changed configuration2402 is expected to be within 2 of 2022-02-04 17:15:28.743869181 +00002403 for internal project2404 behaves like an inaccessible2405 is expected to include {"access" => []}2406 behaves like a valid token2407 is expected to include :token2408 is expected to include "access"2409 a expirable2410 for default configuration2411 is expected not to be within 2 of 2022-02-04 17:15:29.605467333 +00002412 for changed configuration2413 is expected to be within 2 of 2022-02-04 17:15:29.734321521 +00002414 for private project2415 behaves like an inaccessible2416 is expected to include {"access" => []}2417 behaves like a valid token2418 is expected to include :token2419 is expected to include "access"2420 a expirable2421 for default configuration2422 is expected not to be within 2 of 2022-02-04 17:15:30.573104125 +00002423 for changed configuration2424 is expected to be within 2 of 2022-02-04 17:15:30.658707407 +00002425 user authorization2426 with multiple scopes2427 allow developer to push images2428 behaves like a pushable2429 behaves like an accessible2430 has the correct scope2431 behaves like a valid token2432 is expected to include :token2433 is expected to include "access"2434 a expirable2435 for default configuration2436 is expected not to be within 2 of 2022-02-04 17:15:31.368190992 +00002437 for changed configuration2438 is expected to be within 2 of 2022-02-04 17:15:31.465533283 +00002439 behaves like container repository factory2440 creates a new container repository resource2441 when importing2442 push request2443 behaves like a forbidden2444 is expected to include {:http_status => 403}2445 is expected not to include :token2446 behaves like containing the import error2447 includes a helpful error message2448 delete request2449 behaves like a forbidden2450 is expected to include {:http_status => 403}2451 is expected not to include :token2452 behaves like containing the import error2453 includes a helpful error message2454 * request2455 behaves like a forbidden2456 is expected to include {:http_status => 403}2457 is expected not to include :token2458 behaves like containing the import error2459 includes a helpful error message2460 pull request2461 behaves like a pullable2462 behaves like an accessible2463 has the correct scope2464 behaves like a valid token2465 is expected to include :token2466 is expected to include "access"2467 a expirable2468 for default configuration2469 is expected not to be within 2 of 2022-02-04 17:15:34.615927156 +00002470 for changed configuration2471 is expected to be within 2 of 2022-02-04 17:15:34.814982467 +00002472 mixed request2473 behaves like a forbidden2474 is expected to include {:http_status => 403}2475 is expected not to include :token2476 behaves like containing the import error2477 includes a helpful error message2478 when in migration mode2479 with pull action2480 behaves like a modified token2481 with a non eligible root ancestor and project2482 behaves like a modified token with migration eligibility2483 is expected to include (include {"migration_eligible" => false})2484 behaves like a valid token2485 is expected to include :token2486 is expected to include "access"2487 a expirable2488 for default configuration2489 is expected not to be within 2 of 2022-02-04 17:15:36.344466088 +00002490 for changed configuration2491 is expected to be within 2 of 2022-02-04 17:15:36.508070333 +00002492 with a non eligible root ancestor and eligible project2493 behaves like a modified token with migration eligibility2494 is expected to include (include {"migration_eligible" => false})2495 behaves like a valid token2496 is expected to include :token2497 is expected to include "access"2498 a expirable2499 for default configuration2500 is expected not to be within 2 of 2022-02-04 17:15:37.163790383 +00002501 for changed configuration2502 is expected to be within 2 of 2022-02-04 17:15:37.318960849 +00002503 with an eligible root ancestor and non eligible project2504 behaves like a modified token with migration eligibility2505 is expected to include (include {"migration_eligible" => false})2506 behaves like a valid token2507 is expected to include :token2508 is expected to include "access"2509 a expirable2510 for default configuration2511 is expected not to be within 2 of 2022-02-04 17:15:38.156973212 +00002512 for changed configuration2513 is expected to be within 2 of 2022-02-04 17:15:38.313295768 +00002514 with an eligible root ancestor and project2515 behaves like a modified token with migration eligibility2516 is expected to include (include {"migration_eligible" => true})2517 behaves like a valid token2518 is expected to include :token2519 is expected to include "access"2520 a expirable2521 for default configuration2522 is expected not to be within 2 of 2022-02-04 17:15:38.970589238 +00002523 for changed configuration2524 is expected to be within 2 of 2022-02-04 17:15:39.209780176 +00002525 with push action2526 behaves like a modified token2527 with a non eligible root ancestor and project2528 behaves like a modified token with migration eligibility2529 is expected to include (include {"migration_eligible" => false})2530 behaves like a valid token2531 is expected to include :token2532 is expected to include "access"2533 a expirable2534 for default configuration2535 is expected not to be within 2 of 2022-02-04 17:15:40.117775753 +00002536 for changed configuration2537 is expected to be within 2 of 2022-02-04 17:15:40.393803398 +00002538 with a non eligible root ancestor and eligible project2539 behaves like a modified token with migration eligibility2540 is expected to include (include {"migration_eligible" => false})2541 behaves like a valid token2542 is expected to include :token2543 is expected to include "access"2544 a expirable2545 for default configuration2546 is expected not to be within 2 of 2022-02-04 17:15:41.412984845 +00002547 for changed configuration2548 is expected to be within 2 of 2022-02-04 17:15:41.677198241 +00002549 with an eligible root ancestor and non eligible project2550 behaves like a modified token with migration eligibility2551 is expected to include (include {"migration_eligible" => false})2552 behaves like a valid token2553 is expected to include :token2554 is expected to include "access"2555 a expirable2556 for default configuration2557 is expected not to be within 2 of 2022-02-04 17:15:42.634973204 +00002558 for changed configuration2559 is expected to be within 2 of 2022-02-04 17:15:42.823006666 +00002560 with an eligible root ancestor and project2561 behaves like a modified token with migration eligibility2562 is expected to include (include {"migration_eligible" => true})2563 behaves like a valid token2564 is expected to include :token2565 is expected to include "access"2566 a expirable2567 for default configuration2568 is expected not to be within 2 of 2022-02-04 17:15:43.746495492 +00002569 for changed configuration2570 is expected to be within 2 of 2022-02-04 17:15:43.999813159 +00002571 with multiple actions2572 behaves like a modified token2573 with a non eligible root ancestor and project2574 behaves like a modified token with migration eligibility2575 is expected to include (include {"migration_eligible" => false})2576 behaves like a valid token2577 is expected to include :token2578 is expected to include "access"2579 a expirable2580 for default configuration2581 is expected not to be within 2 of 2022-02-04 17:15:44.859346820 +00002582 for changed configuration2583 is expected to be within 2 of 2022-02-04 17:15:45.140820475 +00002584 with a non eligible root ancestor and eligible project2585 behaves like a modified token with migration eligibility2586 is expected to include (include {"migration_eligible" => false})2587 behaves like a valid token2588 is expected to include :token2589 is expected to include "access"2590 a expirable2591 for default configuration2592 is expected not to be within 2 of 2022-02-04 17:15:46.234242035 +00002593 for changed configuration2594 is expected to be within 2 of 2022-02-04 17:15:46.521248719 +00002595 with an eligible root ancestor and non eligible project2596 behaves like a modified token with migration eligibility2597 is expected to include (include {"migration_eligible" => false})2598 behaves like a valid token2599 is expected to include :token2600 is expected to include "access"2601 a expirable2602 for default configuration2603 is expected not to be within 2 of 2022-02-04 17:15:47.648979556 +00002604 for changed configuration2605 is expected to be within 2 of 2022-02-04 17:15:47.942008659 +00002606 with an eligible root ancestor and project2607 behaves like a modified token with migration eligibility2608 is expected to include (include {"migration_eligible" => true})2609 behaves like a valid token2610 is expected to include :token2611 is expected to include "access"2612 a expirable2613 for default configuration2614 is expected not to be within 2 of 2022-02-04 17:15:49.169216597 +00002615 for changed configuration2616 is expected to be within 2 of 2022-02-04 17:15:49.454391441 +00002617 #access_token2618 behaves like a modified token2619 with a non eligible root ancestor and project2620 behaves like a modified token with migration eligibility2621 is expected to include (include {"migration_eligible" => false})2622 behaves like a valid token2623 is expected to include :token2624 is expected to include "access"2625 a expirable2626 for default configuration2627 is expected not to be within 2 of 2022-02-04 17:15:50.267221396 +00002628 for changed configuration2629 is expected to be within 2 of 2022-02-04 17:15:50.465865538 +00002630 with a non eligible root ancestor and eligible project2631 behaves like a modified token with migration eligibility2632 is expected to include (include {"migration_eligible" => false})2633 behaves like a valid token2634 is expected to include :token2635 is expected to include "access"2636 a expirable2637 for default configuration2638 is expected not to be within 2 of 2022-02-04 17:15:51.295946793 +00002639 for changed configuration2640 is expected to be within 2 of 2022-02-04 17:15:51.513382883 +00002641 with an eligible root ancestor and non eligible project2642 behaves like a modified token with migration eligibility2643 is expected to include (include {"migration_eligible" => false})2644 behaves like a valid token2645 is expected to include :token2646 is expected to include "access"2647 a expirable2648 for default configuration2649 is expected not to be within 2 of 2022-02-04 17:15:52.365931355 +00002650 for changed configuration2651 is expected to be within 2 of 2022-02-04 17:15:52.583547955 +00002652 with an eligible root ancestor and project2653 behaves like a modified token with migration eligibility2654 is expected to include (include {"migration_eligible" => true})2655 behaves like a valid token2656 is expected to include :token2657 is expected to include "access"2658 a expirable2659 for default configuration2660 is expected not to be within 2 of 2022-02-04 17:15:53.370130243 +00002661 for changed configuration2662 is expected to be within 2 of 2022-02-04 17:15:53.576694854 +00002663 with a project with a path with trailing underscore2664 #full_access_token2665 logs an exception and returns a valid access token2666 when not in migration mode2667 #access_token2668 behaves like an unmodified token2669 is expected not to include (have key "migration_eligible")2670 behaves like a valid token2671 is expected to include :token2672 is expected to include "access"2673 a expirable2674 for default configuration2675 is expected not to be within 2 of 2022-02-04 17:15:54.815597381 +00002676 for changed configuration2677 is expected to be within 2 of 2022-02-04 17:15:54.861149757 +00002678 CDN redirection2679 is expected to include (include {"cdn_redirect" => true})2680 behaves like a valid token2681 is expected to include :token2682 is expected to include "access"2683 a expirable2684 for default configuration2685 is expected not to be within 2 of 2022-02-04 17:15:56.231168032 +00002686 for changed configuration2687 is expected to be within 2 of 2022-02-04 17:15:56.470413430 +00002688 when the feature flag is disabled2689 is expected not to include (have key "cdn_redirect")2690 behaves like a valid token2691 is expected to include :token2692 is expected to include "access"2693 a expirable2694 for default configuration2695 is expected not to be within 2 of 2022-02-04 17:15:57.411580555 +00002696 for changed configuration2697 is expected to be within 2 of 2022-02-04 17:15:57.660346772 +00002698Gitlab::Regex2699 .project_name_regex2700 behaves like project name regex2701 is expected to match "Gitlab++"2702 is expected not to match "?gitlab"2703 is expected not to match "Users's something"2704 behaves like project/group name chars regex2705 is expected to match "gitlab-ce"2706 is expected to match "GitLab CE"2707 is expected to match "100 lines"2708 is expected to match "gitlab.git"2709 is expected to match "Český název"2710 is expected to match "Dash – is this"2711 .group_name_regex2712 allows parenthesis2713 does not start with parenthesis2714 behaves like group name regex2715 is expected not to match "?gitlab"2716 is expected not to match "Users's something"2717 behaves like project/group name chars regex2718 is expected to match "gitlab-ce"2719 is expected to match "GitLab CE"2720 is expected to match "100 lines"2721 is expected to match "gitlab.git"2722 is expected to match "Český název"2723 is expected to match "Dash – is this"2724 .group_name_regex_chars2725 allows partial matches2726 behaves like project/group name chars regex2727 is expected to match "gitlab-ce"2728 is expected to match "GitLab CE"2729 is expected to match "100 lines"2730 is expected to match "gitlab.git"2731 is expected to match "Český název"2732 is expected to match "Dash – is this"2733 .project_name_regex_message2734 is expected to eq "can contain only letters, digits, emojis, '_', '.', '+', dashes, or spaces. It must start with a letter, digit, emoji, or '_'."2735 .group_name_regex_message2736 is expected to eq "can contain only letters, digits, emojis, '_', '.', dash, space, parenthesis. It must start with letter, digit, emoji or '_'."2737 .environment_name_regex2738 is expected to match "foo"2739 is expected to match "a"2740 is expected to match "foo-1"2741 is expected to match "FOO"2742 is expected to match "foo/1"2743 is expected to match "foo.1"2744 is expected not to match "9&foo"2745 is expected not to match "foo-^"2746 is expected not to match "!!()()"2747 is expected not to match "/foo"2748 is expected not to match "foo/"2749 is expected not to match "/foo/"2750 is expected not to match "/"2751 .environment_scope_regex2752 is expected to match "foo"2753 is expected to match "foo*Z"2754 is expected not to match "!!()()"2755 .environment_slug_regex2756 is expected to match "foo"2757 is expected to match "foo-1"2758 is expected not to match "FOO"2759 is expected not to match "foo/1"2760 is expected not to match "foo.1"2761 is expected not to match "foo*1"2762 is expected not to match "9foo"2763 is expected not to match "foo-"2764 .build_trace_section_regex2765 without options2766 is expected to match "section_start:1600445393032:NAME\r\e[0K"2767 is expected to match "section_end:12345678:aBcDeFg1234\r\e[0K"2768 is expected to match "section_start:0:sect_for_alpha-v1.0\r\e[0K"2769 is expected not to match "section_start:section:0\r\e[0K"2770 is expected not to match "section_:1600445393032:NAME\r\e[0K"2771 is expected not to match "SECTION_START:1600445393032:NAME\r\e[0K"2772 with options2773 is expected to match "section_start:1600445393032:NAME[collapsed=true]\r\e[0K"2774 is expected to match "section_start:1600445393032:NAME[collapsed=true, example_option=false]\r\e[0K"2775 is expected to match "section_start:1600445393032:NAME[collapsed=true,example_option=false]\r\e[0K"2776 is expected to match "section_start:1600445393032:NAME[numeric_option=1234567]\r\e[0K"2777 is expected to match "section_end:1600445393032:NAME[collapsed=true]\r\e[0K"2778 is expected not to match "section_start:1600445393032:NAME[collapsed=[]]]\r\e[0K"2779 is expected not to match "section_start:1600445393032:NAME[collapsed = true]\r\e[0K"2780 is expected not to match "section_start:1600445393032:NAME[collapsed = true, example_option=false]\r\e[0K"2781 is expected not to match "section_start:1600445393032:NAME[collapsed=true, example_option=false]\r\e[0K"2782 is expected not to match "section_start:1600445393032:NAME[]\r\e[0K"2783 .container_repository_name_regex2784 is expected to match "image"2785 is expected to match "my/image"2786 is expected to match "my/awesome/image-1"2787 is expected to match "my/awesome/image.test"2788 is expected to match "my/awesome/image--test"2789 is expected to match "my/image__test"2790 is expected to match "user1/project/a_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb------------x"2791 is expected not to match "user1/project/a_bbbbb-------------"2792 is expected not to match "my/image-.test"2793 is expected not to match "my/image___test"2794 is expected not to match "my/image_.test"2795 is expected not to match "my/image_-test"2796 is expected not to match "my/image..test"2797 is expected not to match "my/image\\ntest"2798 is expected not to match ".my/image"2799 is expected not to match "my/image."2800 .aws_account_id_regex2801 is expected to match "123456789012"2802 is expected not to match "12345678901"2803 is expected not to match "1234567890123"2804 is expected not to match "12345678901a"2805 .aws_arn_regex2806 is expected to match "arn:aws:iam::123456789012:role/role-name"2807 is expected to match "arn:aws:s3:::bucket/key"2808 is expected to match "arn:aws:ec2:us-east-1:123456789012:volume/vol-1"2809 is expected to match "arn:aws:rds:us-east-1:123456789012:pg:prod"2810 is expected not to match "123456789012"2811 is expected not to match "role/role-name"2812 .utc_date_regex2813 is expected to match "2019-10-20"2814 is expected to match "1990-01-01"2815 is expected not to match "11-1234-90"2816 is expected not to match "aa-1234-cc"2817 is expected not to match "9/9/2018"2818 .cluster_agent_name_regex2819 is expected to match "foo"2820 is expected to match "foo-bar"2821 is expected to match "1foo-bar"2822 is expected to match "foo-bar2"2823 is expected to match "foo-1bar"2824 is expected not to match "foo.bar"2825 is expected not to match "Foo"2826 is expected not to match "FoO"2827 is expected not to match "FoO-"2828 is expected not to match "-foo-"2829 is expected not to match "foo/bar"2830 .kubernetes_namespace_regex2831 is expected to match "foo"2832 is expected to match "foo-bar"2833 is expected to match "1foo-bar"2834 is expected to match "foo-bar2"2835 is expected to match "foo-1bar"2836 is expected not to match "foo.bar"2837 is expected not to match "Foo"2838 is expected not to match "FoO"2839 is expected not to match "FoO-"2840 is expected not to match "-foo-"2841 is expected not to match "foo/bar"2842 .kubernetes_dns_subdomain_regex2843 is expected to match "foo"2844 is expected to match "foo-bar"2845 is expected to match "foo.bar"2846 is expected to match "foo1.bar"2847 is expected to match "foo1.2bar"2848 is expected to match "foo.bar1"2849 is expected to match "1foo.bar1"2850 is expected not to match "Foo"2851 is expected not to match "FoO"2852 is expected not to match "FoO-"2853 is expected not to match "-foo-"2854 is expected not to match "foo/bar"2855 .conan_package_reference_regex2856 is expected to match "123456789"2857 is expected to match "asdf1234"2858 is expected not to match "@foo"2859 is expected not to match "0/pack+age/1@1/0"2860 is expected not to match "!!()()"2861 .conan_revision_regex2862 is expected to match "0"2863 is expected not to match "foo"2864 is expected not to match "!!()()"2865 .composer_dev_version_regex2866 is expected to match "dev-master"2867 is expected to match "1.x-dev"2868 is expected not to match "foobar"2869 is expected not to match "1.2.3"2870 conan recipe components2871 .conan_recipe_component_regex2872 is expected not to match "_"2873 behaves like accepting valid recipe components values2874 is expected to match "foobar"2875 is expected to match "foo_bar"2876 is expected to match "foo+bar"2877 is expected to match "_foo+bar-baz+1.0"2878 is expected to match "1.0.0"2879 is expected not to match "-foo_bar"2880 is expected not to match "+foo_bar"2881 is expected not to match ".foo_bar"2882 is expected not to match "foo@bar"2883 is expected not to match "foo/bar"2884 is expected not to match "!!()()"2885 is expected not to match "f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"2886 .conan_recipe_user_channel_regex2887 is expected to match "_"2888 behaves like accepting valid recipe components values2889 is expected to match "foobar"2890 is expected to match "foo_bar"2891 is expected to match "foo+bar"2892 is expected to match "_foo+bar-baz+1.0"2893 is expected to match "1.0.0"2894 is expected not to match "-foo_bar"2895 is expected not to match "+foo_bar"2896 is expected not to match ".foo_bar"2897 is expected not to match "foo@bar"2898 is expected not to match "foo/bar"2899 is expected not to match "!!()()"2900 is expected not to match "f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"2901 .package_name_regex2902 is expected to match "123"2903 is expected to match "foo"2904 is expected to match "foo/bar"2905 is expected to match "@foo/bar"2906 is expected to match "com/mycompany/app/my-app"2907 is expected to match "my-package/1.0.0@my+project+path/beta"2908 is expected not to match "my-package/1.0.0@@@@@my+project+path/beta"2909 is expected not to match "$foo/bar"2910 is expected not to match "@foo/@/bar"2911 is expected not to match "@@foo/bar"2912 is expected not to match "my package name"2913 is expected not to match "!!()()"2914 is expected not to match "..\n..\foo"2915 has no backtracking issue2916 .maven_file_name_regex2917 is expected to match "123"2918 is expected to match "foo"2919 is expected to match "foo+bar-2_0.pom"2920 is expected to match "foo.bar.baz-2.0-20190901.47283-1.jar"2921 is expected to match "maven-metadata.xml"2922 is expected to match "1.0-SNAPSHOT"2923 is expected not to match "../../foo"2924 is expected not to match "..\\..\\foo"2925 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"2926 is expected not to match "$foo/bar"2927 is expected not to match "my file name"2928 is expected not to match "!!()()"2929 .maven_path_regex2930 is expected to match "123"2931 is expected to match "foo"2932 is expected to match "foo/bar"2933 is expected to match "@foo/bar"2934 is expected to match "com/mycompany/app/my-app"2935 is expected to match "com/mycompany/app/my-app/1.0-SNAPSHOT"2936 is expected to match "com/mycompany/app/my-app/1.0-SNAPSHOT+debian64"2937 is expected not to match "com/mycompany/app/my+app/1.0-SNAPSHOT"2938 is expected not to match "$foo/bar"2939 is expected not to match "@foo/@/bar"2940 is expected not to match "my package name"2941 is expected not to match "!!()()"2942 .maven_version_regex2943 has no ReDoS issues with long strings2944 has no ReDos issues with long strings ending with an exclamation mark2945 is expected to match "0"2946 is expected to match "1"2947 is expected to match "03"2948 is expected to match "2.0"2949 is expected to match "01.2"2950 is expected to match "10.2.3-beta"2951 is expected to match "1.2-SNAPSHOT"2952 is expected to match "20"2953 is expected to match "20.3"2954 is expected to match "1.2.1"2955 is expected to match "1.4.2-12"2956 is expected to match "1.2-beta-2"2957 is expected to match "12.1.2-2-1"2958 is expected to match "1.1-beta-2"2959 is expected to match "1.3.350.v20200505-1744"2960 is expected to match "2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq"2961 is expected to match "1.2-alpha-1-20050205.060708-1"2962 is expected to match "703220b4e2cea9592caeb9f3013f6b1e5335c293"2963 is expected to match "RELEASE"2964 is expected not to match "..1.2.3"2965 is expected not to match "1.2.3..beta"2966 is expected not to match " 1.2.3"2967 is expected not to match "1.2.3 \r\t"2968 is expected not to match "\r\t 1.2.3"2969 is expected not to match "1./2.3"2970 is expected not to match "1.2.3-4/../../"2971 is expected not to match "1.2.3-4%2e%2e%"2972 is expected not to match "../../../../../1.2.3"2973 is expected not to match "%2e%2e%2f1.2.3"2974 .npm_package_name_regex2975 is expected to match "@scope/package"2976 is expected to match "unscoped-package"2977 is expected not to match "@first-scope@second-scope/package"2978 is expected not to match "scope-without-at-symbol/package"2979 is expected not to match "@not-a-scoped-package"2980 is expected not to match "@scope/sub/package"2981 is expected not to match "@scope/../../package"2982 is expected not to match "@scope%2e%2e%2fpackage"2983 is expected not to match "@%2e%2e%2f/package"2984 capturing group2985 extracts the scope name for @scope/package2986 extracts the scope name for unscoped-package2987 extracts the scope name for @not-a-scoped-package2988 extracts the scope name for @scope/sub/package2989 extracts the scope name for @inv@lid-scope/package2990 .nuget_version_regex2991 is expected to match "1.2"2992 is expected to match "1.2.3"2993 is expected to match "1.2.3.4"2994 is expected to match "1.2.3.4-stable.1"2995 is expected to match "1.2.3-beta"2996 is expected to match "1.2.3-alpha.3"2997 is expected to match "1.0.7+r3456"2998 is expected not to match "1"2999 is expected not to match "1./2.3"3000 is expected not to match "../../../../../1.2.3"3001 is expected not to match "%2e%2e%2f1.2.3"3002 .nuget_package_name_regex3003 is expected to match "My.Package"3004 is expected to match "My.Package.Mvc"3005 is expected to match "MyPackage"3006 is expected to match "My.23.Package"3007 is expected to match "My23Package"3008 is expected to match "runtime.my-test64.runtime.package.Mvc"3009 is expected to match "my_package"3010 is expected not to match "My/package"3011 is expected not to match "../../../my_package"3012 is expected not to match "%2e%2e%2fmy_package"3013 .terraform_module_package_name_regex3014 is expected to match "my-module/my-system"3015 is expected to match "my/module"3016 is expected not to match "my-module"3017 is expected not to match "My-Module"3018 is expected not to match "my_module"3019 is expected not to match "my.module"3020 is expected not to match "../../../my-module"3021 is expected not to match "%2e%2e%2fmy-module"3022 .pypi_version_regex3023 is expected to match "0.1"3024 is expected to match "2.0"3025 is expected to match "1.2.0"3026 is expected to match "0100!0.0"3027 is expected to match "00!1.2"3028 is expected to match "1.0a"3029 is expected to match "1.0-a"3030 is expected to match "1.0.a1"3031 is expected to match "1.0a1"3032 is expected to match "1.0-a1"3033 is expected to match "1.0alpha1"3034 is expected to match "1.0b1"3035 is expected to match "1.0beta1"3036 is expected to match "1.0rc1"3037 is expected to match "1.0pre1"3038 is expected to match "1.0preview1"3039 is expected to match "1.0.dev1"3040 is expected to match "1.0.DEV1"3041 is expected to match "1.0.post1"3042 is expected to match "1.0.rev1"3043 is expected to match "1.0.r1"3044 is expected to match "1.0c2"3045 is expected to match "2012.15"3046 is expected to match "1.0+5"3047 is expected to match "1.0+abc.5"3048 is expected to match "1!1.1"3049 is expected to match "1.0c3"3050 is expected to match "1.0rc2"3051 is expected to match "1.0c1"3052 is expected to match "1.0b2-346"3053 is expected to match "1.0b2.post345"3054 is expected to match "1.0b2.post345.dev456"3055 is expected to match "1.2.rev33+123456"3056 is expected to match "1.1.dev1"3057 is expected to match "1.0b1.dev456"3058 is expected to match "1.0a12.dev456"3059 is expected to match "1.0b2"3060 is expected to match "1.0.dev456"3061 is expected to match "1.0c1.dev456"3062 is expected to match "1.0.post456"3063 is expected to match "1.0.post456.dev34"3064 is expected to match "1.2+123abc"3065 is expected to match "1.2+abc"3066 is expected to match "1.2+abc123"3067 is expected to match "1.2+abc123def"3068 is expected to match "1.2+1234.abc"3069 is expected to match "1.2+123456"3070 is expected to match "1.2.r32+123456"3071 is expected to match "1!1.2.rev33+123456"3072 is expected to match "1.0a12"3073 is expected to match "1.2.3-45+abcdefgh"3074 is expected to match "v1.2.3"3075 is expected not to match "1.2.3-45-abcdefgh"3076 is expected not to match "..1.2.3"3077 is expected not to match " 1.2.3"3078 is expected not to match "1.2.3 \r\t"3079 is expected not to match "\r\t 1.2.3"3080 is expected not to match "1./2.3"3081 is expected not to match "1.2.3-4/../../"3082 is expected not to match "1.2.3-4%2e%2e%"3083 is expected not to match "../../../../../1.2.3"3084 is expected not to match "%2e%2e%2f1.2.3"3085 .debian_package_name_regex3086 is expected to match "0ad"3087 is expected to match "g++"3088 is expected to match "lua5.1"3089 is expected to match "samba"3090 is expected not to match ""3091 is expected not to match "-a"3092 is expected not to match "+a"3093 is expected not to match ".a"3094 is expected not to match "_a"3095 is expected not to match "a~"3096 is expected not to match "aé"3097 is expected not to match "a"3098 is expected not to match "Aa"3099 is expected not to match "aA"3100 is expected not to match "a_b"3101 .debian_version_regex3102 valid versions3103 is expected to match "1.0"3104 is expected to match "1.0~alpha1"3105 is expected to match "2:4.9.5+dfsg-5+deb10u1"3106 dpkg errors3107 is expected not to match ""3108 is expected not to match "1 0"3109 is expected not to match ":1.0"3110 is expected not to match "a:1.0"3111 is expected not to match "-1:1.0"3112 is expected not to match "9999999999:1.0"3113 is expected not to match "2:"3114 is expected not to match "-1"3115 is expected not to match "2:-1"3116 dpkg warnings3117 is expected not to match "a"3118 is expected not to match "a1.0"3119 is expected not to match "1_0"3120 is expected not to match "1.0-1_0"3121 dpkg accepts3122 is expected not to match " 1.0"3123 is expected not to match "1.0 "3124 is expected not to match "1:2:3"3125 .debian_architecture_regex3126 is expected to match "amd64"3127 is expected to match "kfreebsd-i386"3128 is expected not to match ""3129 is expected not to match "-a"3130 is expected not to match "+a"3131 is expected not to match ".a"3132 is expected not to match "_a"3133 is expected not to match "a+b"3134 is expected not to match "a.b"3135 is expected not to match "a_b"3136 is expected not to match "a~"3137 is expected not to match "aé"3138 is expected not to match "AMD64"3139 is expected not to match "Amd64"3140 is expected not to match "aMD64"3141 .debian_distribution_regex3142 is expected to match "buster"3143 is expected to match "buster-updates"3144 is expected to match "Debian10.5"3145 is expected not to match "jessie/updates"3146 is expected not to match "hé"3147 .debian_component_regex3148 is expected to match "main"3149 is expected to match "non-free"3150 is expected not to match "non/free"3151 is expected not to match "hé"3152 .helm_channel_regex3153 is expected to match "release"3154 is expected to match "my-repo"3155 is expected to match "My-Re_po"3156 is expected to match "my_repo42"3157 is expected to match "1.2.3"3158 is expected to match "v1.2.3-beta-12"3159 is expected to match "renovate_https-github.com-operator-framework-operator-lifecycle-manager.git-0.x"3160 is expected not to match ""3161 is expected not to match "hé"3162 is expected not to match ".1.23"3163 is expected not to match "1..23"3164 is expected not to match "1.2.3."3165 is expected not to match "1..2.3."3166 is expected not to match "1/../2.3."3167 is expected not to match "1/..%2F2.3."3168 .helm_package_regex3169 is expected to match "release"3170 is expected to match "my-repo"3171 is expected to match "my-repo42"3172 is expected not to match ""3173 is expected not to match "hé"3174 is expected not to match "my/../repo"3175 is expected not to match "me%2f%2e%2e%2f"3176 .helm_version_regex3177 is expected to match "1.2.3"3178 is expected to match "1.2.3-beta"3179 is expected to match "1.2.3-alpha.3"3180 is expected to match "v1.2.3"3181 is expected to match "v1.2.3-beta"3182 is expected to match "v1.2.3-alpha.3"3183 is expected not to match "1"3184 is expected not to match "1.2"3185 is expected not to match "1./2.3"3186 is expected not to match "../../../../../1.2.3"3187 is expected not to match "%2e%2e%2f1.2.3"3188 is expected not to match "v1"3189 is expected not to match "v1.2"3190 is expected not to match "v1./2.3"3191 is expected not to match "v../../../../../1.2.3"3192 is expected not to match "v%2e%2e%2f1.2.3"3193 .semver_regex3194 is expected to match "1.2.3"3195 is expected to match "1.2.3-beta"3196 is expected to match "1.2.3-alpha.3"3197 is expected not to match "1"3198 is expected not to match "1.2"3199 is expected not to match "1./2.3"3200 is expected not to match "../../../../../1.2.3"3201 is expected not to match "%2e%2e%2f1.2.3"3202 .go_package_regex3203 is expected to match "example.com"3204 is expected to match "example.com/foo"3205 is expected to match "example.com/foo/bar"3206 is expected to match "example.com/foo/bar/baz"3207 is expected to match "tl.dr.foo.bar.baz"3208 .unbounded_semver_regex3209 is expected to match "1.2.3"3210 is expected to match "1.2.3-beta"3211 is expected to match "1.2.3-alpha.3"3212 is expected not to match "1"3213 is expected not to match "1.2"3214 is expected not to match "1./2.3"3215 .generic_package_version_regex3216 is expected to match "1.2.3"3217 is expected to match "1.3.350"3218 is expected to match "1.3.350-20201230123456"3219 is expected to match "1.2.3-rc1"3220 is expected to match "1.2.3g"3221 is expected to match "1.2"3222 is expected to match "1.2.bananas"3223 is expected to match "v1.2.4-build"3224 is expected to match "d50d836eb3de6177ce6c7a5482f27f9c2c84b672"3225 is expected to match "this_is_a_string_only"3226 is expected not to match "..1.2.3"3227 is expected not to match " 1.2.3"3228 is expected not to match "1.2.3 \r\t"3229 is expected not to match "\r\t 1.2.3"3230 is expected not to match "1.2.3-4/../../"3231 is expected not to match "1.2.3-4%2e%2e%"3232 is expected not to match "../../../../../1.2.3"3233 is expected not to match "%2e%2e%2f1.2.3"3234 is expected not to match ""3235 .generic_package_name_regex3236 is expected to match "123"3237 is expected to match "foo"3238 is expected to match "foo.bar.baz-2.0-20190901.47283-1"3239 is expected not to match "../../foo"3240 is expected not to match "..\\..\\foo"3241 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"3242 is expected not to match "$foo/bar"3243 is expected not to match "my file name"3244 is expected not to match "!!()()"3245 .generic_package_file_name_regex3246 is expected to match "123"3247 is expected to match "foo"3248 is expected to match "foo.bar.baz-2.0-20190901.47283-1.jar"3249 is expected not to match "../../foo"3250 is expected not to match "..\\..\\foo"3251 is expected not to match "%2f%2e%2e%2f%2essh%2fauthorized_keys"3252 is expected not to match "$foo/bar"3253 is expected not to match "my file name"3254 is expected not to match "!!()()"3255 .prefixed_semver_regex3256 is expected to match "v1.2.3"3257 is expected to match "v1.2.3-beta"3258 is expected to match "v1.2.3-alpha.3"3259 is expected not to match "v1"3260 is expected not to match "v1.2"3261 is expected not to match "v1./2.3"3262 is expected not to match "v../../../../../1.2.3"3263 is expected not to match "v%2e%2e%2f1.2.3"3264 Packages::API_PATH_REGEX3265 is expected to match "/api/v4/group/12345/-/packages/composer/p/123456789"3266 is expected to match "/api/v4/group/12345/-/packages/composer/p2/pkg_name"3267 is expected to match "/api/v4/group/12345/-/packages/composer/packages"3268 is expected to match "/api/v4/group/12345/-/packages/composer/pkg_name"3269 is expected to match "/api/v4/groups/1234/-/packages/maven/a/path/file.jar"3270 is expected to match "/api/v4/groups/1234/-/packages/nuget/index"3271 is expected to match "/api/v4/groups/1234/-/packages/nuget/metadata/pkg_name/1.3.4"3272 is expected to match "/api/v4/groups/1234/-/packages/nuget/metadata/pkg_name/index"3273 is expected to match "/api/v4/groups/1234/-/packages/nuget/query"3274 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable"3275 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/digest"3276 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/download_urls"3277 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref"3278 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/digest"3279 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/download_urls"3280 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/upload_urls"3281 is expected to match "/api/v4/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/upload_urls"3282 is expected to match "/api/v4/packages/conan/v1/conans/search"3283 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name"3284 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name/authorize"3285 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name"3286 is expected to match "/api/v4/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name/authorize"3287 is expected to match "/api/v4/packages/conan/v1/ping"3288 is expected to match "/api/v4/packages/conan/v1/users/authenticate"3289 is expected to match "/api/v4/packages/conan/v1/users/check_credentials"3290 is expected to match "/api/v4/packages/maven/a/path/file.jar"3291 is expected to match "/api/v4/packages/npm/-/package/pkg_name/dist-tags"3292 is expected to match "/api/v4/packages/npm/-/package/pkg_name/dist-tags/tag"3293 is expected to match "/api/v4/packages/npm/pkg_name"3294 is expected to match "/api/v4/projects/1234/packages/composer"3295 is expected to match "/api/v4/projects/1234/packages/composer/archives/pkg_name"3296 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable"3297 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/digest"3298 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/download_urls"3299 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref"3300 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/digest"3301 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/download_urls"3302 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/packages/pkg_ref/upload_urls"3303 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/pkg_name/1.2.3/username/stable/upload_urls"3304 is expected to match "/api/v4/projects/1234/packages/conan/v1/conans/search"3305 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name"3306 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/export/file.name/authorize"3307 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name"3308 is expected to match "/api/v4/projects/1234/packages/conan/v1/files/pkg_name/1.2.3/username/stable/2.3/package/pkg_ref/pkg_revision/file.name/authorize"3309 is expected to match "/api/v4/projects/1234/packages/conan/v1/ping"3310 is expected to match "/api/v4/projects/1234/packages/conan/v1/users/authenticate"3311 is expected to match "/api/v4/projects/1234/packages/conan/v1/users/check_credentials"3312 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/compon/binary-x64/Packages"3313 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/InRelease"3314 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/Release"3315 is expected to match "/api/v4/projects/1234/packages/debian/dists/stable/Release.gpg"3316 is expected to match "/api/v4/projects/1234/packages/debian/file.name"3317 is expected to match "/api/v4/projects/1234/packages/debian/file.name/authorize"3318 is expected to match "/api/v4/projects/1234/packages/debian/pool/compon/e/pkg/file.name"3319 is expected to match "/api/v4/projects/1234/packages/generic/pkg_name/1.3.4/myfile.txt"3320 is expected to match "/api/v4/projects/1234/packages/generic/pkg_name/1.3.4/myfile.txt/authorize"3321 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.info"3322 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.mod"3323 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/11.2.3.zip"3324 is expected to match "/api/v4/projects/1234/packages/go/my_module/@v/list"3325 is expected to match "/api/v4/projects/1234/packages/maven/a/path/file.jar"3326 is expected to match "/api/v4/projects/1234/packages/maven/a/path/file.jar/authorize"3327 is expected to match "/api/v4/projects/1234/packages/npm/-/package/pkg_name/dist-tags"3328 is expected to match "/api/v4/projects/1234/packages/npm/-/package/pkg_name/dist-tags/tag"3329 is expected to match "/api/v4/projects/1234/packages/npm/pkg_name"3330 is expected to match "/api/v4/projects/1234/packages/npm/pkg_name/-/tarball.tgz"3331 is expected to match "/api/v4/projects/1234/packages/nuget"3332 is expected to match "/api/v4/projects/1234/packages/nuget/authorize"3333 is expected to match "/api/v4/projects/1234/packages/nuget/download/pkg_name/1.3.4/pkg.npkg"3334 is expected to match "/api/v4/projects/1234/packages/nuget/download/pkg_name/index"3335 is expected to match "/api/v4/projects/1234/packages/nuget/index"3336 is expected to match "/api/v4/projects/1234/packages/nuget/metadata/pkg_name/1.3.4"3337 is expected to match "/api/v4/projects/1234/packages/nuget/metadata/pkg_name/index"3338 is expected to match "/api/v4/projects/1234/packages/nuget/query"3339 is expected to match "/api/v4/projects/1234/packages/pypi"3340 is expected to match "/api/v4/projects/1234/packages/pypi/authorize"3341 is expected to match "/api/v4/projects/1234/packages/pypi/files/1234567890/file.identifier"3342 is expected to match "/api/v4/projects/1234/packages/pypi/simple/pkg_name"3343 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/dependencies"3344 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/gems"3345 is expected to match "/api/v4/projects/1234/packages/rubygems/api/v1/gems/authorize"3346 is expected to match "/api/v4/projects/1234/packages/rubygems/gems/pkg"3347 is expected to match "/api/v4/projects/1234/packages/rubygems/pkg"3348 is expected to match "/api/v4/projects/1234/packages/rubygems/quick/Marshal.4.8/pkg"3349 is expected not to match ""3350 is expected not to match "foo"3351 is expected not to match "/api/v4"3352 is expected not to match "/api/v4/version"3353 is expected not to match "/api/v4/packages"3354 is expected not to match "/api/v4/packages/"3355 is expected not to match "/api/v4/group"3356 is expected not to match "/api/v4/group/12345"3357 is expected not to match "/api/v4/group/12345/-"3358 is expected not to match "/api/v4/group/12345/-/packages"3359 is expected not to match "/api/v4/group/12345/-/packages/"3360 is expected not to match "/api/v4/group/12345/-/packages/50"3361 is expected not to match "/api/v4/groups"3362 is expected not to match "/api/v4/groups/12345"3363 is expected not to match "/api/v4/groups/12345/-"3364 is expected not to match "/api/v4/groups/12345/-/packages"3365 is expected not to match "/api/v4/groups/12345/-/packages/"3366 is expected not to match "/api/v4/groups/12345/-/packages/50"3367 is expected not to match "/api/v4/groups/12345/packages"3368 is expected not to match "/api/v4/groups/12345/packages/"3369 is expected not to match "/api/v4/groups/12345/badges"3370 is expected not to match "/api/v4/groups/12345/issues"3371 is expected not to match "/api/v4/projects"3372 is expected not to match "/api/v4/projects/1234"3373 is expected not to match "/api/v4/projects/1234/packages"3374 is expected not to match "/api/v4/projects/1234/packages/"3375 is expected not to match "/api/v4/projects/1234/packages/50"3376 is expected not to match "/api/v4/projects/1234/packages/50/package_files"3377 is expected not to match "/api/v4/projects/1234/merge_requests"3378 is expected not to match "/api/v4/projects/1234/registry/repositories"3379 is expected not to match "/api/v4/projects/1234/issues"3380 is expected not to match "/api/v4/projects/1234/members"3381 is expected not to match "/api/v4/projects/1234/milestones"3382 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/compon/binary-compo/Packages"3383 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/InRelease"3384 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/Release"3385 is expected not to match "/api/v4/groups/1234/packages/debian/dists/stable/Release.gpg"3386 is expected not to match "/api/v4/groups/1234/packages/debian/pool/compon/a/pkg/file.name"3387 .composer_package_version_regex3388 is expected to match "v1.2.3"3389 is expected to match "v1.2.x"3390 is expected to match "v1.2.X"3391 is expected to match "1.2.3"3392 is expected to match "1"3393 is expected to match "v1"3394 is expected to match "1.2"3395 is expected to match "v1.2"3396 is expected not to match "1.2.3-beta"3397 is expected not to match "1.2.x-beta"3398 is expected not to match "1.2.X-beta"3399 is expected not to match "1.2.3-alpha.3"3400 is expected not to match "1./2.3"3401 is expected not to match "v1./2.3"3402 is expected not to match "../../../../../1.2.3"3403 is expected not to match "%2e%2e%2f1.2.3"3404layouts/nav/sidebar/_project3405 behaves like has nav sidebar3406 has collapsed nav sidebar on mobile3407 Project context3408 has a link to the project path3409 Project information3410 has a link to the project activity path3411 Activity3412 has a link to the project activity path3413 Labels3414 has a link to the labels path3415 Members3416 has a link to the members page3417 Learn GitLab3418 has a link to the learn GitLab3419 Repository3420 has a link to the project tree path3421 Files3422 has a link to the project tree path3423 Commits3424 has a link to the project commits path3425 Branches3426 has a link to the project branches path3427 Tags3428 has a link to the project tags path3429 Contributors3430 has a link to the project contributors path3431 Graph3432 has a link to the project graph path3433 Compare3434 has a link to the project compare path3435 Issues3436 has a link to the issue list path3437 shows pill with the number of open issues3438 Issue List3439 has a link to the issue list path3440 Issue Boards3441 has a link to the issue boards path3442 Service Desk3443 has a link to the service desk path3444 Milestones3445 has a link to the milestones path3446 External Issue Tracker3447 with custom external issue tracker3448 when external issue tracker is configured and active3449 has a link to the external issue tracker3450 when external issue tracker is not configured and active3451 does not have a link to the external issue tracker3452 with Jira issue tracker3453 has a link to the Jira issue tracker3454 Merge Requests3455 has a link to the merge request list path3456 shows pill with the number of merge requests3457 CI/CD3458 has a link to pipelines page3459 Artifacts3460 has a link to the artifacts page3461 Jobs3462 has a link to the jobs page3463 Pipeline Schedules3464 has a link to the pipeline schedules page3465 Pipelines3466 has a link to the pipelines page3467 Pipeline Editor3468 with a current_ref3469 has a link to the pipeline editor3470 with the default_branch3471 has a link to the pipeline editor3472 when user cannot access pipeline editor3473 does not has a link to the pipeline editor3474 Security and Compliance3475 when user does not have permissions3476 top level navigation link is not visible3477 when user has permissions3478 top level navigation link is visible3479 security configuration link is visible3480 Deployments3481 Feature Flags3482 has a link to the feature flags page3483 when the user does not have access3484 does not have a link to the feature flags page3485 Environments3486 has a link to the environments page3487 when the user does not have access3488 does not have a link to the environments page3489 Releases3490 has a link to the project releases path3491 Monitor3492 top level navigation link is visible for user with permissions3493 Metrics Dashboard3494 has a link to the metrics dashboard page3495 when the user does not have access3496 does not have a link to the metrics page3497 Logs3498 has a link to the pod logs page3499 when the user does not have access3500 does not have a link to the pod logs page3501 Tracing3502 has a link to the tracing page3503 without project.tracing_external_url3504 has a link to the tracing page3505 when the user does not have access3506 does not have a link to the tracing page3507 Error Tracking3508 has a link to the error tracking page3509 when the user does not have access3510 does not have a link to the error tracking page3511 Alert Management3512 has a link to the alert management page3513 when the user does not have access3514 does not have a link to the alert management page3515 Incidents3516 has a link to the incidents page3517 when the user does not have access3518 does not have a link to the incidents page3519 Product Analytics3520 has a link to the product analytics page3521 when feature flag :product_analytics is disabled3522 does not have a link to the feature flags page3523 Infrastructure3524 Serverless platform3525 has a link to the serverless page3526 when the user does not have access3527 does not have a link to the serverless page3528 Terraform3529 has a link to the terraform page3530 when the user does not have access3531 does not have a link to the terraform page3532 Kubernetes clusters3533 has a link to the kubernetes page3534 when the user does not have access3535 does not have a link to the kubernetes page3536 Google Cloud3537 has a link to the google cloud page3538 when the user does not have access3539 does not have a link to the google cloud page3540 Packages and Registries3541 top level navigation link is visible and points to package registry page3542 Packages Registry3543 shows link to package registry page3544 when packages config setting is not enabled3545 does not show link to package registry page3546 Container Registry3547 shows link to container registry page3548 when container config setting is not enabled3549 does not show link to package registry page3550 Infrastructure Registry3551 shows link to infrastructure registry page3552 when package registry config is disabled3553 does not show link to package registry page3554 Analytics3555 top level navigation link is visible points to the value stream page3556 CI/CD3557 has a link to the CI/CD analytics page3558 when user does not have access3559 does not have a link to the CI/CD analytics page3560 Repository3561 has a link to the repository analytics page3562 when user does not have access3563 does not have a link to the repository analytics page3564 Value stream3565 has a link to the value stream page3566 when user does not have access3567 does not have a link to the value stream page3568 Confluence3569 when the Confluence integration is active3570 shows the Confluence link3571 does not show the GitLab wiki link3572 when it is disabled3573 does not show the Confluence link3574 shows the GitLab wiki link3575 Wiki3576 when wiki is enabled3577 shows the wiki tab with the wiki internal link3578 when wiki is disabled3579 does not show the wiki link3580 External Wiki3581 when it is active3582 shows the external wiki tab with the external wiki service link3583 when it is disabled3584 does not show the external wiki link3585 Snippets3586 when user can access snippets3587 shows Snippets link3588 when user cannot access snippets3589 does not show Snippets link3590 Settings3591 General3592 has a link to the General settings3593 Integrations3594 has a link to the Integrations settings3595 WebHooks3596 has a link to the WebHooks settings3597 Access Tokens3598 self-managed instance3599 has a link to the Access Tokens settings3600 gitlab.com3601 has a link to the Access Tokens settings3602 Repository3603 has a link to the Repository settings3604 CI/CD3605 when project is archived3606 does not have a link to the CI/CD settings3607 when project is not archived3608 has a link to the CI/CD settings3609 Monitor3610 when project is archived3611 does not have a link to the Monitor settings3612 when project is not archived active3613 has a link to the Monitor settings3614 Pages3615 when pages are enabled3616 has a link to the Pages settings3617 when pages are not enabled3618 does not have a link to the Pages settings3619 Packages & Registries3620 when registry is enabled3621 has a link to the Packages & Registries settings3622 when registry is not enabled3623 does not have a link to the Packages & Registries settings3624 Usage Quotas3625 has a link to Usage Quotas3626 Hidden menus3627 has a link to the Activity page3628 has a link to the Graph page3629 has a link to the New Issue page3630 has a link to the Jobs page3631 has a link to the Commits page3632 has a link to the Issue Boards page3633 behaves like sidebar includes snowplow attributes3634 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"3635 Collapsed menu items3636 does not render the collapsed top menu as a link3637Projects::ForkService3638 when forking a new project3639 fork by user3640 fork project3641 when forker is a guest3642 is expected not to be persisted3643 is expected to eq ["is forbidden"]3644 does not create a fork network3645 behaves like forks count cache refresh3646 flushes the forks count cache of the source project3647 successfully creates project in the user namespace3648 is expected to be persisted3649 is expected to be empty3650 is expected to eq #<User id:79 @user32>3651 is expected to eq #<Namespaces::UserNamespace id: 151, name: "Sidney Jones86", path: "user34", owner_id: 81, created_at...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>3652 is expected to be zero3653 is expected to eq "wow such project"3654 is expected to be exists3655 is expected to eq nil3656 is expected to eq "classification-label"3657 after forking the from-project still has its avatar3658 creates a fork network with the new project and the root project set3659 imports the repository of the forked project3660 behaves like forks count cache refresh3661 flushes the forks count cache of the source project3662 creating a fork of a fork3663 sets the root of the network to the root project3664 sets the forked_from_project on the membership3665 when the forked project has higher visibility than the root project3666 successfully creates a fork of the fork with correct visibility3667 behaves like forks count cache refresh3668 flushes the forks count cache of the source project3669 project already exists3670 fails due to validation, not transaction failure3671 repository in legacy storage already exists3672 does not allow creation3673 when repository disk validation is explicitly skipped3674 allows fork project creation3675 CI/CD settings3676 when origin has git depth specified3677 inherits default_git_depth from the origin project3678 when origin does not define git depth3679 the fork has git depth set to 03680 when project has restricted visibility level3681 and only one visibility level is restricted3682 creates fork with lowest level3683 and all visibility levels are restricted3684 creates fork with private visibility levels3685 when forking is disabled3686 fails3687 fork to namespace3688 fork project for group3689 group owner successfully forks project into the group3690 fork project for group when user not owner3691 group developer fails to fork project into the group3692 project already exists in group3693 fails due to validation, not transaction failure3694 when the namespace has a lower visibility level than the project3695 creates the project with the lower visibility level3696 fork with optional attributes3697 sets optional attributes to specified values3698 sets visibility level to private if an unknown visibility is requested3699 sets visibility level to project visibility level if requested visibility is greater3700 sets visibility level to target namespace visibility level if requested visibility is greater3701 copies project features visibility settings to the fork3702 when a project is already forked3703 creates a new poolresository after the project is moved to a new shard3704 when forking with object pools3705 when no pool exists3706 creates a new object pool3707 when a pool already exists3708 joins the object pool3709 when linking fork to an existing project3710 if project is already forked3711 does not create fork relation3712 if project is not forked3713 creates fork relation3714 flushes the forks count cache of the source project3715 if the fork is not allowed3716 does not delete the LFS objects3717 #valid_fork_targets3718 returns whatever finder returns3719 #valid_fork_target?3720 when target is not passed3721 when current user is an admin3722 is expected to be truthy3723 when current_user is not an admin3724 when target namespace is in valid fork targets3725 is expected to be truthy3726 when target namespace is not in valid fork targets3727 is expected to be falsey3728 when target is passed3729 when current user is an admin3730 is expected to be truthy3731 when current user is not an admin3732 when target namespace is in valid fork targets3733 is expected to be truthy3734 when target namespace is not in valid fork targets3735 is expected to be falsey3736Integrations::Slack3737 behaves like Integrations::SlackMattermostNotifier3738 Associations3739 is expected to belong to project required: false3740 is expected to have one service_hook3741 Validations3742 when integration is active3743 is expected to validate that :webhook cannot be empty/falsy3744 behaves like issue tracker integration URL attribute3745 is expected to allow :webhook to be ‹"https://example.com"›3746 is expected not to allow :webhook to be ‹"example.com"›3747 is expected not to allow :webhook to be ‹"ftp://example.com"›3748 is expected not to allow :webhook to be ‹"herp-and-derp"›3749 when integration is inactive3750 is expected not to validate that :webhook cannot be empty/falsy3751 #execute3752 with username for slack configured3753 uses the username as an option3754 push events3755 behaves like calls the integration API with the event message3756 is expected to request POST https://8.8.8.9/ 1 time3757 with event channel3758 uses the right channel for push event3759 tag_push events3760 behaves like calls the integration API with the event message3761 is expected to request POST https://8.8.8.9/ 1 time3762 issue events3763 behaves like calls the integration API with the event message3764 is expected to request POST https://8.8.8.9/ 1 time3765 whith event channel3766 uses the right channel for issue event3767 for confidential issues3768 falls back to issue channel3769 and confidential_issue_channel is defined3770 uses the confidential issue channel when it is defined3771 merge request events3772 behaves like calls the integration API with the event message3773 is expected to request POST https://8.8.8.9/ 1 time3774 with event channel3775 uses the right channel for merge request event3776 wiki page events3777 behaves like calls the integration API with the event message3778 is expected to request POST https://8.8.8.9/ 1 time3779 with event channel3780 uses the right channel for wiki event3781 deployment events3782 behaves like calls the integration API with the event message3783 is expected to request POST https://8.8.8.9/ 1 time3784 note event3785 behaves like calls the integration API with the event message3786 is expected to request POST https://8.8.8.9/ 1 time3787 with event channel3788 uses the right channel3789 for confidential notes3790 falls back to note channel3791 and confidential_note_channel is defined3792 uses confidential channel3793 Push events3794 on default branch3795 pushing tags3796 behaves like triggered Slack integration3797 notifies about push events3798 notification enabled only for default branch3799 behaves like triggered Slack integration3800 notifies about push events3801 notification enabled only for protected branches3802 behaves like untriggered Slack integration3803 notifies about push events3804 notification enabled only for default and protected branches3805 behaves like triggered Slack integration3806 notifies about push events3807 notification enabled for all branches3808 behaves like triggered Slack integration3809 notifies about push events3810 on a protected branch3811 pushing tags3812 behaves like triggered Slack integration3813 notifies about push events3814 notification enabled only for default branch3815 behaves like untriggered Slack integration3816 notifies about push events3817 notification enabled only for protected branches3818 behaves like triggered Slack integration3819 notifies about push events3820 notification enabled only for default and protected branches3821 behaves like triggered Slack integration3822 notifies about push events3823 notification enabled for all branches3824 behaves like triggered Slack integration3825 notifies about push events3826 on a protected branch with protected branches defined using wildcards3827 pushing tags3828 behaves like triggered Slack integration3829 notifies about push events3830 notification enabled only for default branch3831 behaves like untriggered Slack integration3832 notifies about push events3833 notification enabled only for protected branches3834 behaves like triggered Slack integration3835 notifies about push events3836 notification enabled only for default and protected branches3837 behaves like triggered Slack integration3838 notifies about push events3839 notification enabled for all branches3840 behaves like triggered Slack integration3841 notifies about push events3842 on a neither protected nor default branch3843 pushing tags3844 behaves like triggered Slack integration3845 notifies about push events3846 notification enabled only for default branch3847 behaves like untriggered Slack integration3848 notifies about push events3849 notification enabled only for protected branches3850 behaves like untriggered Slack integration3851 notifies about push events3852 notification enabled only for default and protected branches3853 behaves like untriggered Slack integration3854 notifies about push events3855 notification enabled for all branches3856 behaves like triggered Slack integration3857 notifies about push events3858 Note events3859 when commit comment event executed3860 behaves like triggered Slack integration3861 notifies about commit comment events3862 when merge request comment event executed3863 behaves like triggered Slack integration3864 notifies about merge request comment events3865 when issue comment event executed3866 behaves like triggered Slack integration3867 notifies about issue comment events3868 when snippet comment event executed3869 behaves like triggered Slack integration3870 notifies about snippet comment events3871 Pipeline events3872 with succeeded pipeline3873 with default to notify_only_broken_pipelines3874 behaves like untriggered Slack integration3875 notifies about pipeline events3876 with setting notify_only_broken_pipelines to false3877 behaves like triggered Slack integration3878 notifies about pipeline events3879 with failed pipeline3880 on default branch3881 notification enabled only for default branch3882 behaves like triggered Slack integration3883 notifies about pipeline events3884 notification enabled only for protected branches3885 behaves like untriggered Slack integration3886 notifies about pipeline events3887 notification enabled only for default and protected branches3888 behaves like triggered Slack integration3889 notifies about pipeline events3890 notification enabled for all branches3891 behaves like triggered Slack integration3892 notifies about pipeline events3893 on a protected branch3894 notification enabled only for default branch3895 behaves like untriggered Slack integration3896 notifies about pipeline events3897 notification enabled only for protected branches3898 behaves like triggered Slack integration3899 notifies about pipeline events3900 notification enabled only for default and protected branches3901 behaves like triggered Slack integration3902 notifies about pipeline events3903 notification enabled for all branches3904 behaves like triggered Slack integration3905 notifies about pipeline events3906 on a protected branch with protected branches defined usin wildcards3907 notification enabled only for default branch3908 behaves like untriggered Slack integration3909 notifies about pipeline events3910 notification enabled only for protected branches3911 behaves like triggered Slack integration3912 notifies about pipeline events3913 notification enabled only for default and protected branches3914 behaves like triggered Slack integration3915 notifies about pipeline events3916 notification enabled for all branches3917 behaves like triggered Slack integration3918 notifies about pipeline events3919 on a neither protected nor default branch3920 notification enabled only for default branch3921 behaves like untriggered Slack integration3922 notifies about pipeline events3923 notification enabled only for protected branches3924 behaves like untriggered Slack integration3925 notifies about pipeline events3926 notification enabled only for default and protected branches3927 behaves like untriggered Slack integration3928 notifies about pipeline events3929 notification enabled for all branches3930 behaves like triggered Slack integration3931 notifies about pipeline events3932 Deployment events3933 behaves like triggered Slack integration3934 notifies about deployment events3935 on a protected branch3936 notification enabled only for default branch3937 behaves like untriggered Slack integration3938 notifies about pipeline events3939 notification enabled only for protected branches3940 behaves like triggered Slack integration3941 notifies about pipeline events3942 notification enabled only for default and protected branches3943 behaves like triggered Slack integration3944 notifies about pipeline events3945 notification enabled for all branches3946 behaves like triggered Slack integration3947 notifies about pipeline events3948 when chat_notification_deployment_protected_branch_filter is disabled3949 notification enabled only for default branch3950 behaves like triggered Slack integration3951 notifies about pipeline events3952 #execute3953 uses only known events3954 hook data includes a user object3955 event is not supported for usage log3956 does not increase the usage data counter3957 issue notification3958 behaves like increases the usage data counter3959 increases the usage data counter3960 push notification3961 behaves like increases the usage data counter3962 increases the usage data counter3963 deployment notification3964 behaves like increases the usage data counter3965 increases the usage data counter3966 wiki_page notification3967 behaves like increases the usage data counter3968 increases the usage data counter3969 merge_request notification3970 behaves like increases the usage data counter3971 increases the usage data counter3972 note notification3973 behaves like increases the usage data counter3974 increases the usage data counter3975 tag_push notification3976 behaves like increases the usage data counter3977 increases the usage data counter3978 confidential note notification3979 behaves like increases the usage data counter3980 increases the usage data counter3981 confidential issue notification3982 behaves like increases the usage data counter3983 increases the usage data counter3984 hook data does not include a user3985 does not increase the usage data counter3986DeploymentsFinder3987 validation3988 when both updated_at and finished_at filters are specified3989 raises an error3990 when updated_at filter and id sorting3991 raises an error3992 when finished_at filter and id sorting3993 raises an error3994 when finished_at filter with failed status filter3995 raises an error3996 when environment filter with non-project scope3997 raises an error3998 #execute3999 when project or group is missing4000 returns nothing4001 at project scope4002 filtering4003 when updated_at filters are specified4004 returns deployments with matched updated_at4005 when the environment name is specified4006 returns deployments for the given environment4007 when the deployment status is specified4008 returns deployments for the given environment4009 when using an invalid deployment status4010 raises ArgumentError4011 ordering4012 order_by: "created_at", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]4013 returns the deployments ordered4014 order_by: "created_at", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]4015 returns the deployments ordered4016 order_by: "id", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]4017 returns the deployments ordered4018 order_by: "id", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]4019 returns the deployments ordered4020 order_by: "iid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]4021 returns the deployments ordered4022 order_by: "iid", sort: "desc", ordered_deployments: [:deployment_3, :deployment_2, :deployment_1]4023 returns the deployments ordered4024 order_by: "ref", sort: "asc", ordered_deployments: [:deployment_2, :deployment_1, :deployment_3]4025 returns the deployments ordered4026 order_by: "ref", sort: "desc", ordered_deployments: [:deployment_3, :deployment_1, :deployment_2]4027 returns the deployments ordered4028 order_by: "updated_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError4029 returns the deployments ordered4030 order_by: "updated_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError4031 returns the deployments ordered4032 order_by: "finished_at", sort: "asc", ordered_deployments: DeploymentsFinder::InefficientQueryError4033 returns the deployments ordered4034 order_by: "finished_at", sort: "desc", ordered_deployments: DeploymentsFinder::InefficientQueryError4035 returns the deployments ordered4036 order_by: "invalid", sort: "asc", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]4037 returns the deployments ordered4038 order_by: "iid", sort: "err", ordered_deployments: [:deployment_1, :deployment_2, :deployment_3]4039 returns the deployments ordered4040 transform `created_at` sorting to `id` sorting4041 sorts by only one column4042 sorts by `id`4043 transform `iid` sorting to `id` sorting4044 sorts by only one column4045 sorts by `id`4046 tie-breaker for `updated_at` sorting4047 sorts by two columns4048 adds `id` sorting as the second order column4049 uses the `id ASC` as tie-breaker when ordering4050 when sort direction is desc4051 uses the `id DESC` as tie-breaker when ordering4052 enforce sorting to `updated_at` sorting4053 sorts by only one column4054 sorts by `updated_at`4055 when filtering by finished time4056 when filtering by finished_after and finished_before4057 is expected to contain exactly #<Deployment id: 65, iid: 1, project_id: 206, environment_id: 65, ref: "master", tag: false, sha: "b8...shed_at: "2022-02-02 17:10:45.282370321 +0000", cluster_id: nil, deployable_id: 65, archived: false>4058 when the finished_before parameter is missing4059 is expected to contain exactly #<Deployment id: 68, iid: 1, project_id: 206, environment_id: 68, ref: "master", tag: false, sha: "b8...shed_at: "2022-02-02 17:10:47.532430179 +0000", cluster_id: nil, deployable_id: 68, archived: false> and #<Deployment id: 70, iid: 3, project_id: 206, environment_id: 70, ref: "master", tag: false, sha: "b8...shed_at: "2022-02-04 12:10:48.828109679 +0000", cluster_id: nil, deployable_id: 70, archived: false>4060 when finished_after is missing4061 is expected to contain exactly #<Deployment id: 72, iid: 2, project_id: 206, environment_id: 72, ref: "master", tag: false, sha: "b8...shed_at: "2022-01-31 17:10:50.220760831 +0000", cluster_id: nil, deployable_id: 72, archived: false>4062 at group scope4063 avoids N+1 queries4064 ordering4065 order_by: "created_at", sort: "asc"4066 returns the deployments unordered4067 order_by: "created_at", sort: "desc"4068 returns the deployments unordered4069 order_by: "id", sort: "asc"4070 returns the deployments unordered4071 order_by: "id", sort: "desc"4072 returns the deployments unordered4073 order_by: "iid", sort: "asc"4074 returns the deployments unordered4075 order_by: "iid", sort: "desc"4076 returns the deployments unordered4077 order_by: "ref", sort: "asc"4078 returns the deployments unordered4079 order_by: "ref", sort: "desc"4080 returns the deployments unordered4081 order_by: "invalid", sort: "asc"4082 returns the deployments unordered4083 order_by: "iid", sort: "err"4084 returns the deployments unordered4085Gitlab::Ci::Status::Build::Factory4086 when build is successful4087 matches correct core status4088 matches correct extended statuses4089 fabricates a retryable build status4090 fabricates status with correct details4091 when build is erased4092 matches correct core status4093 matches correct extended statuses4094 fabricates a retryable build status4095 fabricates status with correct details4096 when build is failed4097 when build is not allowed to fail4098 matches correct core status4099 matches correct extended statuses4100 fabricates a failed build status4101 fabricates status with correct details4102 when build is allowed to fail4103 matches correct core status4104 matches correct extended statuses4105 fabricates a failed but allowed build status4106 fabricates status with correct details4107 when build has unmet prerequisites4108 matches correct core status4109 matches correct extended statuses4110 fabricates a failed with unmet prerequisites build status4111 fabricates status with correct details4112 when build is a canceled4113 matches correct core status4114 matches correct extended statuses4115 fabricates a retryable build status4116 fabricates status with correct details4117 when build is running4118 matches correct core status4119 matches correct extended statuses4120 fabricates a canceable build status4121 fabricates status with correct details4122 when build is pending4123 matches correct core status4124 matches correct extended statuses4125 fabricates a cancelable build status4126 fabricates status with correct details4127 when build is skipped4128 matches correct core status4129 matches correct extended statuses4130 fabricates a skipped build status4131 fabricates status with correct details4132 when build is a manual action4133 when build is a play action4134 matches correct core status4135 matches correct extended statuses4136 fabricates action detailed status4137 fabricates status with correct details4138 when user has ability to play action4139 fabricates status that has action4140 when user does not have ability to play action4141 fabricates status that has no action4142 when build is an environment stop action4143 matches correct core status4144 matches correct extended statuses4145 fabricates action detailed status4146 when user is not allowed to execute manual action4147 fabricates status with correct details4148 when build is a delayed action4149 matches correct core status4150 matches correct extended statuses4151 fabricates action detailed status4152 fabricates status with correct details4153 when user has ability to play action4154 fabricates status that has action4155 when user does not have ability to play action4156 fabricates status that has no action4157Issues::CreateService4158 .rate_limiter_scoped_and_keyed4159 is set via the rate_limit call4160 #rate_limiter_bypassed4161 is nil by default4162 #execute4163 when params are valid4164 creates the issue with the given params4165 refreshes the number of open issues4166 moves the issue to the end, in an asynchronous worker4167 executes issue hooks when issue is not confidential4168 executes confidential issue hooks when issue is confidential4169 schedules a namespace onboarding create action worker4170 when a build_service is provided4171 uses the provided service to build the issue4172 when skip_system_notes is true4173 does not call Issuable::CommonSystemNotesService4174 behaves like not an incident issue4175 has not incident as issue type4176 when issue is incident type4177 as reporter4178 calls IncidentManagement::Incidents::CreateEscalationStatusService4179 behaves like incident issue4180 has incident as issue type4181 when invalid4182 does not apply an incident label prematurely4183 as guest4184 behaves like not an incident issue4185 has not incident as issue type4186 when current user cannot set issue metadata in the project4187 filters out params that cannot be set without the :set_issue_metadata permission4188 can create confidential issues4189 when label belongs to project group4190 assigns group labels4191 when label belongs to different project4192 does not assign label4193 when labels is nil4194 does not assign label4195 when labels is nil and label_ids is present4196 assigns group labels4197 when milestone belongs to different project4198 does not assign milestone4199 when assignee is set4200 invalidates open issues counter for assignees when issue is assigned4201 when duplicate label titles are given4202 assigns the label once4203 when sentry identifier is given4204 does not assign the sentry error4205 user is reporter or above4206 assigns the sentry error4207 when rate limiting is in effect4208 when too many requests are sent by one user4209 raises an error4210 creates 1 issue4211 when limit is higher than count of issues being created4212 creates 2 issues4213 after_save callback to store_mentions4214 when mentionable attributes change4215 saves mentions4216 when save fails4217 does not call store_mentions4218 issue create service4219 assignees4220 removes assignee when user id is invalid4221 removes assignee when user id is 04222 saves assignee when user id is valid4223 when issuable feature is private4224 removes not authorized assignee when project is Internal4225 removes not authorized assignee when project is Public4226 behaves like issuable record that supports quick actions4227 with labels in command only4228 attaches labels to issuable4229 with labels in params and command4230 attaches all labels to issuable4231 with assignee and milestone in command only4232 assigns and sets milestone to issuable4233 Quick actions4234 with assignee, milestone, and contact in params and command4235 assigns, sets milestone, and sets contact to issuable from command4236 resolving discussions4237 for a single discussion4238 resolves the discussion4239 added a system note to the discussion4240 assigns the title and description for the issue4241 can set nil explicitly to the title and description4242 for a merge request4243 resolves the discussion4244 added a system note to the discussion4245 assigns the title and description for the issue4246 can set nil explicitly to the title and description4247 checking spam4248 executes SpamActionService4249Gitlab::UsageMetricDefinition::RedisHllGenerator4250 creates metric definition files4251 with ee option4252 creates metric definition files4253Gitlab::ImportExport::MembersMapper4254 map members4255 when importable is Project4256 includes the exported user ID in the map4257 maps a member4258 defaults to importer member if it does not exist4259 has invited members with no user4260 removes old user_id from member_hash to avoid conflict with user key4261 adds users to project members4262 maps an owner as a maintainer4263 logging4264 logs member addition4265 when exporter member is invalid4266 logs member addition failure4267 user is not an admin4268 does not map a member4269 defaults to importer member if it does not exist4270 chooses the one with an email4271 maps the member that has a matching email4272 when user has email exported4273 maps a member4274 importer same as group member4275 maps the project member4276 maps the project member if it already exists4277 importing group members4278 maps the importer4279 maps the group member4280 when importer mapping fails4281 includes importer specific error message4282 when importer is not an admin4283 and the imported project is part of a group4284 behaves like it fetches the access level from parent group4285 and resolves it correctly4286 behaves like it fetches the access level from parent group4287 and resolves it correctly4288 behaves like it fetches the access level from parent group4289 and resolves it correctly4290 and the imported group is part of another group4291 behaves like it fetches the access level from parent group4292 and resolves it correctly4293 behaves like it fetches the access level from parent group4294 and resolves it correctly4295 behaves like it fetches the access level from parent group4296 and resolves it correctly4297 when importable is Group4298 includes the exported user ID in the map4299 maps a member4300 defaults to importer member if it does not exist4301 has invited members with no user4302 removes old user_id from member_hash to avoid conflict with user key4303 does not lower owner access level4304 logging4305 logs member addition4306 when exporter member is invalid4307 logs member addition failure4308 user is not an admin4309 does not map a member4310 defaults to importer member if it does not exist4311 chooses the one with an email4312 maps the member that has a matching email4313 when user has email exported4314 maps a member4315Gitlab::Ci::Config::Entry::Job4316 behaves like with inheritable CI config4317 does prepend an Inheritable mixin4318 all inheritable entries are covered4319 all entries do have inherit flag4320 for non-inheritable entries4321 entry_key: :stage4322 inheritable_class does not define entry4323 entry_key: :only4324 inheritable_class does not define entry4325 entry_key: :except4326 inheritable_class does not define entry4327 entry_key: :rules4328 inheritable_class does not define entry4329 entry_key: :variables4330 inheritable_class does not define entry4331 entry_key: :inherit4332 inheritable_class does not define entry4333 entry_key: :script4334 inheritable_class does not define entry4335 entry_key: :type4336 inheritable_class does not define entry4337 entry_key: :needs4338 inheritable_class does not define entry4339 entry_key: :environment4340 inheritable_class does not define entry4341 entry_key: :coverage4342 inheritable_class does not define entry4343 entry_key: :release4344 inheritable_class does not define entry4345 entry_key: :parallel4346 inheritable_class does not define entry4347 entry_key: :allow_failure4348 inheritable_class does not define entry4349 entry_key: :dast_configuration4350 inheritable_class does not define entry4351 entry_key: :secrets4352 inheritable_class does not define entry4353 for inheritable entries4354 entry_key: :before_script, entry_class: Gitlab::Ci::Config::Entry::Commands4355 inheritable_class does define entry4356 when is specified4357 does inherit value4358 when entry is specified4359 does not inherit value4360 when inheritable does not specify4361 does not inherit value4362 entry_key: :after_script, entry_class: Gitlab::Ci::Config::Entry::Commands4363 inheritable_class does define entry4364 when is specified4365 does inherit value4366 when entry is specified4367 does not inherit value4368 when inheritable does not specify4369 does not inherit value4370 entry_key: :cache, entry_class: Gitlab::Ci::Config::Entry::Caches4371 inheritable_class does define entry4372 when is specified4373 does inherit value4374 when entry is specified4375 does not inherit value4376 when inheritable does not specify4377 does not inherit value4378 entry_key: :image, entry_class: Gitlab::Ci::Config::Entry::Image4379 inheritable_class does define entry4380 when is specified4381 does inherit value4382 when entry is specified4383 does not inherit value4384 when inheritable does not specify4385 does not inherit value4386 entry_key: :services, entry_class: Gitlab::Ci::Config::Entry::Services4387 inheritable_class does define entry4388 when is specified4389 does inherit value4390 when entry is specified4391 does not inherit value4392 when inheritable does not specify4393 does not inherit value4394 entry_key: :interruptible, entry_class: Gitlab::Config::Entry::Boolean4395 inheritable_class does define entry4396 when is specified4397 does inherit value4398 when entry is specified4399 does not inherit value4400 when inheritable does not specify4401 does not inherit value4402 entry_key: :timeout, entry_class: Gitlab::Ci::Config::Entry::Timeout4403 inheritable_class does define entry4404 when is specified4405 does inherit value4406 when entry is specified4407 does not inherit value4408 when inheritable does not specify4409 does not inherit value4410 entry_key: :retry, entry_class: Gitlab::Ci::Config::Entry::Retry4411 inheritable_class does define entry4412 when is specified4413 does inherit value4414 when entry is specified4415 does not inherit value4416 when inheritable does not specify4417 does not inherit value4418 entry_key: :tags, entry_class: Gitlab::Ci::Config::Entry::Tags4419 inheritable_class does define entry4420 when is specified4421 does inherit value4422 when entry is specified4423 does not inherit value4424 when inheritable does not specify4425 does not inherit value4426 entry_key: :artifacts, entry_class: Gitlab::Ci::Config::Entry::Artifacts4427 inheritable_class does define entry4428 when is specified4429 does inherit value4430 when entry is specified4431 does not inherit value4432 when inheritable does not specify4433 does not inherit value4434 .nodes4435 when filtering all the entry/node names4436 is expected to include :before_script, :script, :stage, :type, :after_script, :cache, :image, :services, :only, :except, :rules, :needs, :variables, :artifacts, :environment, :coverage, :retry, :interruptible, :timeout, :release, :tags, :inherit, and :parallel4437 .matching?4438 when config is not a hash4439 is expected to be falsey4440 when config is a regular job4441 is expected to be truthy4442 when config is a bridge job4443 is expected to be falsey4444 when config is a hidden job4445 is expected to be falsey4446 when using the default job without script4447 is expected to be falsey4448 when using the default job with script4449 is expected to be truthy4450 validations4451 when entry config value is correct4452 #valid?4453 is valid4454 when job name is empty4455 reports error4456 when config uses both "when:" and "rules:"4457 is valid4458 when delayed job4459 when start_in is specified4460 is expected to be valid4461 when has needs4462 is expected to be valid4463 returns scheduling_type as :dag4464 when has dependencies4465 is expected to be valid4466 when it is a release4467 is expected to be valid4468 when rules are used4469 is expected to be valid4470 when entry value is not correct4471 incorrect config value type4472 #errors4473 reports error about a config type4474 when config is empty4475 #valid4476 is invalid4477 when unknown keys detected4478 #valid4479 is not valid4480 when script is not provided4481 returns error about missing script entry4482 when extends key is not a string4483 returns error about wrong value type4484 when parallel value is not correct4485 when it is not a numeric value4486 returns error about invalid type4487 when it is lower than two4488 returns error about value too low4489 when it is an empty hash4490 returns error about missing matrix4491 when delayed job4492 when start_in is specified4493 is expected to be valid4494 when start_in is empty4495 returns error about invalid type4496 when start_in is not formatted as a duration4497 returns error about invalid type4498 when start_in is longer than one week4499 returns error about exceeding the limit4500 when only: is used with rules:4501 returns error about mixing only: with rules:4502 and only: is blank4503 returns error about mixing only: with rules:4504 and rules: is blank4505 returns error about mixing only: with rules:4506 when except: is used with rules:4507 returns error about mixing except: with rules:4508 and except: is blank4509 returns error about mixing except: with rules:4510 and rules: is blank4511 returns error about mixing except: with rules:4512 when only: and except: are both used with rules:4513 returns errors about mixing both only: and except: with rules:4514 when only: and except: as both blank4515 returns errors about mixing both only: and except: with rules:4516 when rules: is blank4517 returns errors about mixing both only: and except: with rules:4518 when start_in specified without delayed specification4519 returns error about invalid type4520 when has dependencies4521 that are not a array of strings4522 returns error about invalid type4523 when has needs4524 when have dependencies that are not subset of needs4525 returns error about invalid data4526 when timeout value is not correct4527 when it is higher than instance wide timeout4528 returns error about value too high4529 when it is not a duration4530 returns error about wrong value4531 when timeout value is correct4532 returns correct timeout4533 when it is a release4534 when `release:description` is missing4535 returns error4536 when invalid rules are used4537 with rules nested more than max allowed levels4538 is expected not to be valid4539 with rules with invalid keys4540 is expected not to be valid4541 #relevant?4542 is a relevant entry4543 #compose!4544 when job config overrides default config4545 overrides default config4546 when job config does not override default config4547 uses config from default entry4548 with workflow rules4549 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}4550 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags4551 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4552 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches4553 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil4554 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil4555 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil4556 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil4557 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}4558 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches4559 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil4560 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil4561 when workflow rules is used4562 when rules are used4563 does not define only4564 when rules are not used4565 does not define only4566 when composed4567 #value4568 when entry is correct4569 returns correct value4570 when job is using tags4571 when limit is reached4572 returns error4573 when limit is not reached4574 returns a valid entry4575 #manual_action?4576 when job is a manual action4577 is a manual action4578 when job is not a manual action4579 is not a manual action4580 #delayed?4581 when job is a delayed4582 is a delayed4583 when job is not a delayed4584 is not a delayed4585 #ignored?4586 when job is a manual action4587 when it is not specified if job is allowed to fail4588 is an ignored job4589 when job is allowed to fail4590 is an ignored job4591 when job is not allowed to fail4592 is not an ignored job4593 when job is dynamically allowed to fail4594 is not an ignored job4595 when job is not a manual action4596 when it is not specified if job is allowed to fail4597 is not an ignored job4598 does not return allow_failure4599 when job is allowed to fail4600 is an ignored job4601 does not return allow_failure_criteria4602 when job is not allowed to fail4603 is not an ignored job4604 does not return allow_failure_criteria4605 when job is dynamically allowed to fail4606 is not an ignored job4607 returns allow_failure_criteria4608ReleaseHighlights::Validator4609 #valid?4610 with a valid file4611 passes entries to entry validator and returns true4612 with invalid file4613 returns false and has errors4614 .validate_all!4615 with valid files4616 is expected to equal true4617 with an invalid file4618 is expected to equal false4619 .error_message4620 with a valid file4621 is expected to be empty4622 with an invalid file4623 returns a nice error message4624 when validating all files4625 they should have no errors4626GroupsHelper4627 #group_icon_url4628 returns an url for the avatar4629 gives default avatar_icon when no avatar is present4630 #group_lfs_status4631 only one project in group4632 returns all projects as enabled4633 returns all projects as disabled4634 more than one project in group4635 LFS enabled in group4636 returns both projects as enabled4637 returns only one as enabled4638 LFS disabled in group4639 returns both projects as disabled4640 returns only one as disabled4641 #group_title4642 enqueues the elements in the breadcrumb schema list4643 avoids N+1 queries4644 traversal queries4645 recursive4646 outputs the groups in the correct order4647 linear4648 outputs the groups in the correct order4649 #share_with_group_lock_help_text4650 traversal queries4651 recursive4652 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4653 has the correct help text with correct ancestor links4654 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4655 has the correct help text with correct ancestor links4656 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4657 has the correct help text with correct ancestor links4658 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4659 has the correct help text with correct ancestor links4660 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4661 has the correct help text with correct ancestor links4662 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4663 has the correct help text with correct ancestor links4664 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4665 has the correct help text with correct ancestor links4666 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4667 has the correct help text with correct ancestor links4668 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4669 has the correct help text with correct ancestor links4670 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4671 has the correct help text with correct ancestor links4672 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4673 has the correct help text with correct ancestor links4674 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4675 has the correct help text with correct ancestor links4676 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4677 has the correct help text with correct ancestor links4678 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4679 has the correct help text with correct ancestor links4680 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4681 has the correct help text with correct ancestor links4682 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4683 has the correct help text with correct ancestor links4684 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4685 has the correct help text with correct ancestor links4686 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4687 has the correct help text with correct ancestor links4688 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4689 has the correct help text with correct ancestor links4690 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4691 has the correct help text with correct ancestor links4692 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4693 has the correct help text with correct ancestor links4694 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4695 has the correct help text with correct ancestor links4696 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4697 has the correct help text with correct ancestor links4698 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4699 has the correct help text with correct ancestor links4700 linear4701 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4702 has the correct help text with correct ancestor links4703 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4704 has the correct help text with correct ancestor links4705 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4706 has the correct help text with correct ancestor links4707 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4708 has the correct help text with correct ancestor links4709 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4710 has the correct help text with correct ancestor links4711 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4712 has the correct help text with correct ancestor links4713 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4714 has the correct help text with correct ancestor links4715 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4716 has the correct help text with correct ancestor links4717 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup4718 has the correct help text with correct ancestor links4719 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4720 has the correct help text with correct ancestor links4721 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup4722 has the correct help text with correct ancestor links4723 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup4724 has the correct help text with correct ancestor links4725 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4726 has the correct help text with correct ancestor links4727 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4728 has the correct help text with correct ancestor links4729 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4730 has the correct help text with correct ancestor links4731 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil4732 has the correct help text with correct ancestor links4733 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil4734 has the correct help text with correct ancestor links4735 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil4736 has the correct help text with correct ancestor links4737 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4738 has the correct help text with correct ancestor links4739 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4740 has the correct help text with correct ancestor links4741 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group4742 has the correct help text with correct ancestor links4743 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group4744 has the correct help text with correct ancestor links4745 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4746 has the correct help text with correct ancestor links4747 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group4748 has the correct help text with correct ancestor links4749 #parent_group_options4750 includes explicitly owned groups except self4751 excludes parent group4752 includes subgroups with inherited ownership4753 excludes own subgroups4754 #can_disable_group_emails?4755 returns true for the group owner4756 returns false for anyone else4757 when subgroups4758 returns false if parent group is disabling emails4759 returns true if parent group is not disabling emails4760 #can_update_default_branch_protection?4761 for users who can update default branch protection of the group4762 is expected to be truthy4763 for users who cannot update default branch protection of the group4764 is expected to be falsey4765 #show_thanks_for_purchase_banner?4766 returns true with purchased_quantity present in params4767 returns false with purchased_quantity not present in params4768 returns false with purchased_quantity is empty in params4769 #render_setting_to_allow_project_access_token_creation?4770 returns true if group is root4771 returns false if group is subgroup4772 #can_admin_group_member?4773 returns true when current_user can admin members4774 returns false when current_user can not admin members4775 #localized_jobs_to_be_done_choices4776 has a translation for all `jobs_to_be_done` values4777Ci::ProcessSyncEventsService4778 #perform4779 for Projects::SyncEvent4780 is expected to eq {:consumable_events=>2, :estimated_total_events=>2, :processed_events=>2}4781 consumes events4782 when any event left after processing4783 is expected to eq {:consumable_events=>1, :estimated_total_events=>2, :processed_events=>1}4784 enqueues Projects::ProcessSyncEventsWorker4785 when no event left after processing4786 is expected to eq {:consumable_events=>2, :estimated_total_events=>2, :processed_events=>2}4787 does not enqueue Projects::ProcessSyncEventsWorker4788 when there is no event4789 is expected to eq {:consumable_events=>0, :estimated_total_events=>0}4790 does nothing4791 when there is non-executed events4792 is expected to eq {:consumable_events=>2, :estimated_total_events=>3, :processed_events=>2}4793 does not delete non-executed events4794 for Namespaces::SyncEvent4795 enqueues Namespaces::ProcessSyncEventsWorker if any left4796 does not enqueue Namespaces::ProcessSyncEventsWorker if no left4797 when the FFs sync_traversal_ids, use_traversal_ids and use_traversal_ids_for_ancestors are disabled4798 behaves like event consuming4799 consumes events4800 behaves like event consuming4801 consumes events4802Ability4803 using a nil subject4804 has no permissions4805 .users_that_can_read_project4806 using a public project4807 returns all the users4808 using an internal project4809 returns users that are administrators4810 returns internal users while skipping external users4811 returns external users if they are the project owner4812 returns external users if they are project members4813 returns an empty Array if all users are external users without access4814 using a private project4815 returns users that are administrators when admin mode is enabled4816 does not return users that are administrators when admin mode is disabled4817 returns external users if they are the project owner4818 returns external users if they are project members4819 returns an empty Array if all users are internal users without access4820 returns an empty Array if all users are external users without access4821 .users_that_can_read_personal_snippet4822 private snippet is readable only by its author4823 public snippet is readable by all users4824 .merge_requests_readable_by_user4825 with an admin when admin mode is enabled4826 returns all merge requests4827 with an admin when admin mode is disabled4828 returns merge_requests that are publicly visible4829 without a user4830 returns merge_requests that are publicly visible4831 with a user4832 returns projects visible to the user4833 when a user cannot read cross project and a filter is passed4834 returns only MRs of the specified project without checking access on others4835 .issues_readable_by_user4836 with an admin when admin mode is enabled4837 returns all given issues4838 with an admin when admin mode is disabled4839 returns the issues readable by the admin4840 returns no issues when not given access4841 with a regular user4842 returns the issues readable by the user4843 returns an empty Array when no issues are readable4844 without a regular user4845 returns issues that are publicly visible4846 when the user cannot read cross project4847 excludes issues from other projects whithout checking separatly when passing a scope4848 .feature_flags_readable_by_user4849 without a user4850 returns no feature flags4851 with a user4852 returns feature flags visible to the user4853 when a user cannot read cross project and a filter is passed4854 returns only feature flags of the specified project without checking access on others4855 .project_disabled_features_rules4856 wiki named abilities4857 disables wiki abilities if the project has no wiki4858 forgetting4859 allows us to discard specific values from the DeclarativePolicy cache4860 when bypassing the session4861 allows us to have re-entrant evaluation of admin-only permissions4862Mutations::MergeRequests::SetLabels4863 is expected to require graphql authorizations :update_merge_request4864 #resolve4865 behaves like permission level for merge request mutation is correctly verified4866 when the user is not a project member4867 behaves like when the user does not have access to the resource4868 raises an error4869 even if assigned to the merge request4870 does not modify merge request4871 even if reviewer of the merge request4872 raises an error4873 even if author of the merge request4874 raises an error4875 when the user is a project member4876 with guest role4877 behaves like when the user does not have access to the resource4878 raises an error4879 even if assigned to the merge request4880 does not modify merge request4881 even if reviewer of the merge request4882 raises an error4883 even if author of the merge request4884 raises an error4885 with reporter role4886 behaves like when the user does not have access to the resource4887 raises an error4888 even if assigned to the merge request4889 does not modify merge request4890 even if reviewer of the merge request4891 raises an error4892 even if author of the merge request4893 raises an error4894 when the user can update the merge request4895 sets the labels, removing all others4896 returns errors merge request could not be updated4897 when passing an empty array4898 removes all labels4899 when passing operation_mode as APPEND4900 sets the labels, without removing others4901 when passing operation_mode as REMOVE4902 removes the labels, without removing others4903WebHookService4904 #initialize4905 when SystemHook4906 when local requests are allowed4907 is expected to be truthy4908 when local requests are not allowed4909 is expected to be falsey4910 when ProjectHook4911 when local requests are allowed4912 is expected to be truthy4913 when local requests are not allowed4914 is expected to be falsey4915 #execute4916 POSTs the data as JSON4917 catches exceptions4918 does not execute disabled hooks4919 executes and registers the hook with the recursion detection4920 blocks and logs if a recursive web hook is detected4921 blocks and logs if the recursion count limit would be exceeded4922 handles exceptions4923 handles 200 status code4924 handles 2xx status codes4925 when token is defined4926 POSTs to the webhook URL4927 when auth credentials are present4928 uses the credentials4929 when auth credentials are partial present4930 uses the credentials anyways4931 when url is not encoded4932 handles exceptions4933 when request body size is too big4934 does not perform the request4935 execution logging4936 with success4937 log successful execution4938 does not log in the service itself4939 does not increment the failure count4940 does not change the disabled_until attribute4941 when the hook had previously failed4942 resets the failure count4943 with bad request4944 logs failed execution4945 increments the failure count4946 does not change the disabled_until attribute4947 does not allow the failure count to overflow4948 when the web_hooks_disable_failed FF is disabled4949 does not allow the failure count to overflow4950 with exception4951 log failed execution4952 does not increment the failure count4953 backs off4954 increases the backoff count4955 when the previous cool-off was near the maximum4956 sets the disabled_until attribute4957 when we have backed-off many many times4958 sets the disabled_until attribute4959 with unsafe response body4960 log successful execution4961 #async_execute4962 when rate limiting is not configured4963 queues a worker without tracking the call4964 when rate limiting is configured4965 queues a worker and tracks the call4966 when the hook is throttled (via mock)4967 does not queue a worker and logs an error4968 when the hook is throttled (via Redis)4969 stops queueing workers and logs errors4970 still queues workers for other hooks4971 recursion detection4972 does not queue a worker and logs an error if the call chain limit would be exceeded4973 does not queue a worker and logs an error if a recursive call chain is detected4974 when hook has custom context attributes4975 includes the attributes in the worker context4976MergeRequest::CleanupSchedule4977 associations4978 is expected to belong to merge_request required: false4979 validations4980 is expected to validate that :scheduled_at cannot be empty/falsy4981 state machine transitions4982 sets status to unstarted by default4983 #run4984 sets the status to running4985 when previous status is not unstarted4986 does not change status4987 #retry4988 sets the status to unstarted4989 increments failed_count4990 when previous status is not running4991 does not change status4992 #complete4993 sets the status to completed4994 sets the completed_at4995 when previous status is not running4996 does not change status4997 #mark_as_failed4998 sets the status to failed4999 increments failed_count5000 when previous status is not running5001 does not change status5002 .scheduled_and_unstarted5003 returns records that are scheduled before or on current time and unstarted (ordered by scheduled first)5004 .start_next5005 finds the next scheduled and unstarted then marked it as running5006Gitlab::LegacyGithubImport::IssueFormatter5007 when importing a GitHub project5008 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes5009 when issue is open5010 returns formatted attributes5011 when issue is closed5012 returns formatted attributes5013 when it is assigned to someone5014 returns nil as assignee_id when is not a GitLab user5015 returns GitLab user id associated with GitHub id as assignee_id5016 returns GitLab user id associated with GitHub email as assignee_id5017 when it has a milestone5018 returns nil when milestone does not exist5019 returns milestone when it exists5020 when author is a GitLab user5021 returns project creator_id as author_id when is not a GitLab user5022 returns GitLab user id associated with GitHub id as author_id5023 returns GitLab user id associated with GitHub email as author_id5024 returns description without created at tag line5025 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number5026 returns issue number5027 when importing a Gitea project5028 behaves like Gitlab::LegacyGithubImport::IssueFormatter#attributes5029 when issue is open5030 returns formatted attributes5031 when issue is closed5032 returns formatted attributes5033 when it is assigned to someone5034 returns nil as assignee_id when is not a GitLab user5035 returns GitLab user id associated with GitHub id as assignee_id5036 returns GitLab user id associated with GitHub email as assignee_id5037 when it has a milestone5038 returns nil when milestone does not exist5039 returns milestone when it exists5040 when author is a GitLab user5041 returns project creator_id as author_id when is not a GitLab user5042 returns GitLab user id associated with GitHub id as author_id5043 returns GitLab user id associated with GitHub email as author_id5044 returns description without created at tag line5045 behaves like Gitlab::LegacyGithubImport::IssueFormatter#number5046 returns issue number5047 #has_comments?5048 when number of comments is greater than zero5049 returns true5050 when number of comments is equal to zero5051 returns false5052 #pull_request?5053 when mention a pull request5054 returns true5055 when does not mention a pull request5056 returns false5057Packages::Debian::DistributionReleaseFileUploader5058 Packages::Debian::ProjectDistribution5059 behaves like builds correct paths5060 #store_dir5061 behaves like matches the method pattern5062 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_distribution\/\d+$/5063 #cache_dir5064 behaves like matches the method pattern5065 is expected to match /\/packages\/tmp\/cache$/5066 #work_dir5067 behaves like matches the method pattern5068 is expected to match /\/packages\/tmp\/work$/5069 #upload_path5070 behaves like matches the method pattern5071 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5072 #relative_path5073 is relative (PENDING: Path not set, skipping.)5074 .absolute_path5075 behaves like matches the method pattern5076 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5077 .base_dir5078 behaves like matches the method pattern5079 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5080 path traversal exploits5081 throws an exception5082 object store is remote5083 behaves like builds correct paths5084 #store_dir5085 behaves like matches the method pattern5086 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_project_distribution\/\d+$/5087 #cache_dir5088 behaves like matches the method pattern5089 is expected to match /\/packages\/tmp\/cache$/5090 #work_dir5091 behaves like matches the method pattern5092 is expected to match /\/packages\/tmp\/work$/5093 #upload_path5094 behaves like matches the method pattern5095 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5096 #relative_path5097 is relative (PENDING: Path not set, skipping.)5098 .absolute_path5099 behaves like matches the method pattern5100 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5101 .base_dir5102 behaves like matches the method pattern5103 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5104 path traversal exploits5105 throws an exception5106 remote file5107 with object storage enabled5108 can store file remotely5109 #filename5110 is expected to eq "Release"5111 with signed_file5112 is expected to eq "InRelease"5113 Packages::Debian::GroupDistribution5114 behaves like builds correct paths5115 #store_dir5116 behaves like matches the method pattern5117 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_distribution\/\d+$/5118 #cache_dir5119 behaves like matches the method pattern5120 is expected to match /\/packages\/tmp\/cache$/5121 #work_dir5122 behaves like matches the method pattern5123 is expected to match /\/packages\/tmp\/work$/5124 #upload_path5125 behaves like matches the method pattern5126 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5127 #relative_path5128 is relative (PENDING: Path not set, skipping.)5129 .absolute_path5130 behaves like matches the method pattern5131 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5132 .base_dir5133 behaves like matches the method pattern5134 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5135 path traversal exploits5136 throws an exception5137 object store is remote5138 behaves like builds correct paths5139 #store_dir5140 behaves like matches the method pattern5141 is expected to match /^\h{2}\/\h{2}\/\h{64}\/debian_group_distribution\/\d+$/5142 #cache_dir5143 behaves like matches the method pattern5144 is expected to match /\/packages\/tmp\/cache$/5145 #work_dir5146 behaves like matches the method pattern5147 is expected to match /\/packages\/tmp\/work$/5148 #upload_path5149 behaves like matches the method pattern5150 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5151 #relative_path5152 is relative (PENDING: Path not set, skipping.)5153 .absolute_path5154 behaves like matches the method pattern5155 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5156 .base_dir5157 behaves like matches the method pattern5158 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5159 path traversal exploits5160 throws an exception5161 remote file5162 with object storage enabled5163 can store file remotely5164 #filename5165 is expected to eq "Release"5166 with signed_file5167 is expected to eq "InRelease"5168Clusters::ClusterPresenter5169 inherits from Gitlab::View::Presenter::Delegated5170 #initialize5171 takes a cluster and optional params5172 exposes cluster5173 forwards missing methods to cluster5174 #provider_label5175 AWS provider5176 is expected to eq "Elastic Kubernetes Service"5177 GCP provider5178 is expected to eq "Google Kubernetes Engine"5179 #provider_management_url5180 AWS provider5181 is expected to include "us-east-1"5182 is expected to include "test-cluster"5183 GCP provider5184 is expected to include "us-central1-a"5185 is expected to include "test-cluster"5186 #show_path5187 project_type cluster5188 is expected to eq "/namespace481/project506/-/clusters/18"5189 group_type cluster5190 is expected to eq "/groups/group145/-/clusters/21"5191 instance_type cluster5192 is expected to eq "/admin/clusters/24"5193 #read_only_kubernetes_platform_fields?5194 with a user-provided cluster5195 is expected to be falsy5196 with a GCP-provided cluster5197 is expected to be truthy5198 #health_data5199 with project cluster5200 behaves like cluster health data5201 is expected to include {:"clusters-path" => "/namespace482/project507/-/clusters", :"dashboard-endpoint" => "/namespace482/project507/-/clusters/27/metrics_dashboard", :"documentation-path" => "/help/user/project/clusters/index#monitoring-your-kubernetes-cluster", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}5202 with group cluster5203 behaves like cluster health data5204 is expected to include {:"clusters-path" => "/groups/group146/-/clusters", :"dashboard-endpoint" => "/groups/group146/-/clusters/30/metrics_dashboard", :"documentation-path" => "/help/user/project/clusters/index#monitoring-your-kubernetes-cluster", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}5205 #gitlab_managed_apps_logs_path5206 user can read logs5207 returns path to logs5208 cluster has elastic stack integration enabled5209 returns path to logs5210 group cluster5211 user can read logs5212 there are projects within group5213 returns path to logs5214 there are no projects within group5215 returns nil5216 instance cluster5217 user can read logs5218 returns path to logs5219 user can NOT read logs5220 returns nil5221Submodules::UpdateService5222 #execute5223 when the user is not authorized5224 behaves like returns error result5225 is expected to eq "You are not allowed to push into this branch"5226 when the user is authorized5227 updates the submodule reference5228 when the branch is protected5229 behaves like returns error result5230 is expected to eq "You are not allowed to push into this branch"5231 validations5232 when submodule5233 is empty5234 behaves like returns error result5235 is expected to eq "Invalid parameters"5236 is not present5237 behaves like returns error result5238 is expected to eq "Invalid parameters"5239 is invalid5240 behaves like returns error result5241 is expected to eq "Invalid submodule path"5242 does not exist5243 behaves like returns error result5244 is expected to eq "Invalid submodule path"5245 has traversal path5246 behaves like returns error result5247 is expected to eq "Invalid submodule path"5248 commit_sha5249 is empty5250 behaves like returns error result5251 is expected to eq "Invalid parameters"5252 is not present5253 behaves like returns error result5254 is expected to eq "Invalid parameters"5255 is invalid5256 behaves like returns error result5257 is expected to eq "Invalid parameters"5258 is the same as the current ref5259 behaves like returns error result5260 is expected to eq "The submodule six is already at 409f37c4f05865e4fb208c771485f211a22c4c2d"5261 branch_name5262 is empty5263 behaves like returns error result5264 is expected to eq "You can only create or edit files when you are on a branch"5265 is not present5266 behaves like returns error result5267 is expected to eq "Invalid parameters"5268 does not exist5269 behaves like returns error result5270 is expected to eq "You can only create or edit files when you are on a branch"5271 when commit message is empty5272 a default commit message is set5273 when there is an unexpected error5274 behaves like returns error result5275 is expected to eq "error message"5276 when submodule is inside a directory5277 updates the submodule reference5278 when repository is empty5279 behaves like returns error result5280 is expected to eq "The repository is empty"5281Gitlab::Ci::Runner::Backoff5282 #duration5283 returns backoff duration from start5284 returns an integer value5285 returns the smallest number greater than or equal to duration5286 #slot5287 started: 0, slot: 05288 falls into an appropaite backoff slot5289 started: 0.1, slot: 05290 falls into an appropaite backoff slot5291 started: 0.9, slot: 05292 falls into an appropaite backoff slot5293 started: 1, slot: 05294 falls into an appropaite backoff slot5295 started: 1.1, slot: 05296 falls into an appropaite backoff slot5297 started: 1.9, slot: 05298 falls into an appropaite backoff slot5299 started: 2, slot: 05300 falls into an appropaite backoff slot5301 started: 2.9, slot: 05302 falls into an appropaite backoff slot5303 started: 3, slot: 05304 falls into an appropaite backoff slot5305 started: 4, slot: 15306 falls into an appropaite backoff slot5307 started: 5, slot: 15308 falls into an appropaite backoff slot5309 started: 6, slot: 15310 falls into an appropaite backoff slot5311 started: 7, slot: 15312 falls into an appropaite backoff slot5313 started: 8, slot: 25314 falls into an appropaite backoff slot5315 started: 9, slot: 25316 falls into an appropaite backoff slot5317 started: 9.9, slot: 25318 falls into an appropaite backoff slot5319 started: 10, slot: 25320 falls into an appropaite backoff slot5321 started: 15, slot: 25322 falls into an appropaite backoff slot5323 started: 16, slot: 35324 falls into an appropaite backoff slot5325 started: 31, slot: 35326 falls into an appropaite backoff slot5327 started: 32, slot: 45328 falls into an appropaite backoff slot5329 started: 63, slot: 45330 falls into an appropaite backoff slot5331 started: 64, slot: 55332 falls into an appropaite backoff slot5333 started: 127, slot: 55334 falls into an appropaite backoff slot5335 started: 128, slot: 65336 falls into an appropaite backoff slot5337 started: 250, slot: 65338 falls into an appropaite backoff slot5339 started: 310, slot: 75340 falls into an appropaite backoff slot5341 started: 520, slot: 85342 falls into an appropaite backoff slot5343 started: 999, slot: 85344 falls into an appropaite backoff slot5345 #to_seconds5346 started: 0, backoff: 15347 calculates backoff based on an appropriate slot5348 started: 0.1, backoff: 15349 calculates backoff based on an appropriate slot5350 started: 0.9, backoff: 15351 calculates backoff based on an appropriate slot5352 started: 1, backoff: 15353 calculates backoff based on an appropriate slot5354 started: 1.1, backoff: 15355 calculates backoff based on an appropriate slot5356 started: 1.9, backoff: 15357 calculates backoff based on an appropriate slot5358 started: 2, backoff: 15359 calculates backoff based on an appropriate slot5360 started: 3, backoff: 15361 calculates backoff based on an appropriate slot5362 started: 4, backoff: 25363 calculates backoff based on an appropriate slot5364 started: 5, backoff: 25365 calculates backoff based on an appropriate slot5366 started: 6, backoff: 25367 calculates backoff based on an appropriate slot5368 started: 6.5, backoff: 25369 calculates backoff based on an appropriate slot5370 started: 7, backoff: 25371 calculates backoff based on an appropriate slot5372 started: 8, backoff: 45373 calculates backoff based on an appropriate slot5374 started: 9, backoff: 45375 calculates backoff based on an appropriate slot5376 started: 9.9, backoff: 45377 calculates backoff based on an appropriate slot5378 started: 10, backoff: 45379 calculates backoff based on an appropriate slot5380 started: 15, backoff: 45381 calculates backoff based on an appropriate slot5382 started: 16, backoff: 85383 calculates backoff based on an appropriate slot5384 started: 31, backoff: 85385 calculates backoff based on an appropriate slot5386 started: 32, backoff: 165387 calculates backoff based on an appropriate slot5388 started: 63, backoff: 165389 calculates backoff based on an appropriate slot5390 started: 64, backoff: 325391 calculates backoff based on an appropriate slot5392 started: 127, backoff: 325393 calculates backoff based on an appropriate slot5394 started: 128, backoff: 645395 calculates backoff based on an appropriate slot5396 started: 250, backoff: 645397 calculates backoff based on an appropriate slot5398 started: 310, backoff: 645399 calculates backoff based on an appropriate slot5400 started: 520, backoff: 645401 calculates backoff based on an appropriate slot5402 started: 999, backoff: 645403 calculates backoff based on an appropriate slot5404Packages::Maven::Metadata::CreatePluginsXmlService5405 #execute5406 with same plugins on both sides5407 behaves like returning no changes5408 returns no changes5409 with more plugins5410 in database5411 behaves like returning no changes5412 returns no changes5413 in xml5414 behaves like returning an xml with plugins from the database5415 returns an metadata versions xml with versions in the database5416 with no versions in the database5417 returns a success5418 with an incomplete metadata content5419 behaves like returning an error service response5420 returns an error service response5421 with an invalid metadata content5422 behaves like returning an error service response5423 returns an error service response5424 behaves like handling metadata content pointing to a file for the create xml service5425 with metadata content pointing to a file5426 with valid content5427 returns no changes5428 with invalid content5429 behaves like returning an error service response5430 returns an error service response5431 with no content5432 behaves like returning an error service response5433 returns an error service response5434 behaves like handling invalid parameters for create xml service5435 with no package5436 behaves like returning an error service response5437 returns an error service response5438 with no metadata content5439 behaves like returning an error service response5440 returns an error service response5441Projects::Operations::UpdateService5442 #execute5443 alerting setting5444 with valid params5445 when regenerate_token is not set5446 with an existing setting5447 ignores provided token5448 without an existing setting5449 behaves like setting creation5450 creates a setting5451 when regenerate_token is set5452 with an existing setting5453 regenerates token5454 without an existing setting5455 behaves like setting creation5456 creates a setting5457 with insufficient permissions5458 behaves like no operation5459 does nothing5460 with empty params5461 behaves like no operation5462 does nothing5463 metrics dashboard setting5464 without existing metrics dashboard setting5465 creates a setting5466 with existing metrics dashboard setting5467 updates the settings5468 with blank external_dashboard_url5469 updates dashboard_timezone5470 error tracking5471 with existing error tracking setting5472 updates the settings5473 disable error tracking5474 can set api_url to nil5475 without an existing error tracking setting5476 creates a setting5477 partial_update5478 with setting5479 service succeeds5480 updates attributes5481 only updates enabled attribute5482 with integrated attribute5483 updates integrated attribute5484 only updates enabled and integrated attributes5485 without setting5486 creates setting with default values5487 with masked param token5488 does not update token5489 with invalid parameters5490 does nothing5491 with inappropriate params5492 ignores params5493 grafana integration5494 without existing grafana integration5495 creates an integration5496 with an existing grafana integration5497 updates the settings5498 with all grafana attributes blank in params5499 destroys the metrics_setting entry in DB5500 prometheus integration5501 prometheus params were passed into service5502 uses Project#find_or_initialize_integration to include instance defined defaults and pass them to Projects::UpdateService5503 when prometheus params are not passed into service5504 does not pass any prometheus params into Projects::UpdateService5505 tracing setting5506 with valid params5507 with an existing setting5508 updates the setting5509 with missing external_url5510 behaves like setting deletion5511 deletes the setting5512 does not modify original params5513 with empty external_url5514 behaves like setting deletion5515 deletes the setting5516 does not modify original params5517 with blank external_url5518 behaves like setting deletion5519 deletes the setting5520 does not modify original params5521 without an existing setting5522 creates a setting5523 with empty params5524 does nothing5525Gitlab::Search::AbuseDetection5526 abusive scopes validation5527 allows only approved scopes5528 disallows anything not approved5529 abusive character matching5530 does match refs permitted by git refname: main5531 does NOT match refs with special characters: main5532 does match refs permitted by git refname: тест5533 does NOT match refs with special characters: тест5534 does match refs permitted by git refname: maiñ5535 does NOT match refs with special characters: maiñ5536 does match refs permitted by git refname: main1235537 does NOT match refs with special characters: main1235538 does match refs permitted by git refname: main-v1235539 does NOT match refs with special characters: main-v1235540 does match refs permitted by git refname: main-v12.35541 does NOT match refs with special characters: main-v12.35542 does match refs permitted by git refname: feature/it_works5543 does NOT match refs with special characters: feature/it_works5544 does match refs permitted by git refname: really_important!5545 does NOT match refs with special characters: really_important!5546 does match refs permitted by git refname: 测试5547 does NOT match refs with special characters: 测试5548 numericality validation5549 considers non Integers to be invalid5550 considers Integers to be valid5551 query_string validation5552 search: "a", errors: {:query_string=>["stopword only abusive search detected"]}5553 validates query string for pointless search5554 search: "an", errors: {:query_string=>["stopword only abusive search detected"]}5555 validates query string for pointless search5556 search: "and", errors: {:query_string=>["stopword only abusive search detected"]}5557 validates query string for pointless search5558 search: "are", errors: {:query_string=>["stopword only abusive search detected"]}5559 validates query string for pointless search5560 search: "as", errors: {:query_string=>["stopword only abusive search detected"]}5561 validates query string for pointless search5562 search: "at", errors: {:query_string=>["stopword only abusive search detected"]}5563 validates query string for pointless search5564 search: "be", errors: {:query_string=>["stopword only abusive search detected"]}5565 validates query string for pointless search5566 search: "but", errors: {:query_string=>["stopword only abusive search detected"]}5567 validates query string for pointless search5568 search: "by", errors: {:query_string=>["stopword only abusive search detected"]}5569 validates query string for pointless search5570 search: "for", errors: {:query_string=>["stopword only abusive search detected"]}5571 validates query string for pointless search5572 search: "if", errors: {:query_string=>["stopword only abusive search detected"]}5573 validates query string for pointless search5574 search: "in", errors: {:query_string=>["stopword only abusive search detected"]}5575 validates query string for pointless search5576 search: "into", errors: {:query_string=>["stopword only abusive search detected"]}5577 validates query string for pointless search5578 search: "is", errors: {:query_string=>["stopword only abusive search detected"]}5579 validates query string for pointless search5580 search: "it", errors: {:query_string=>["stopword only abusive search detected"]}5581 validates query string for pointless search5582 search: "no", errors: {:query_string=>["stopword only abusive search detected"]}5583 validates query string for pointless search5584 search: "not", errors: {:query_string=>["stopword only abusive search detected"]}5585 validates query string for pointless search5586 search: "of", errors: {:query_string=>["stopword only abusive search detected"]}5587 validates query string for pointless search5588 search: "on", errors: {:query_string=>["stopword only abusive search detected"]}5589 validates query string for pointless search5590 search: "or", errors: {:query_string=>["stopword only abusive search detected"]}5591 validates query string for pointless search5592 search: "such", errors: {:query_string=>["stopword only abusive search detected"]}5593 validates query string for pointless search5594 search: "that", errors: {:query_string=>["stopword only abusive search detected"]}5595 validates query string for pointless search5596 search: "the", errors: {:query_string=>["stopword only abusive search detected"]}5597 validates query string for pointless search5598 search: "their", errors: {:query_string=>["stopword only abusive search detected"]}5599 validates query string for pointless search5600 search: "then", errors: {:query_string=>["stopword only abusive search detected"]}5601 validates query string for pointless search5602 search: "there", errors: {:query_string=>["stopword only abusive search detected"]}5603 validates query string for pointless search5604 search: "these", errors: {:query_string=>["stopword only abusive search detected"]}5605 validates query string for pointless search5606 search: "they", errors: {:query_string=>["stopword only abusive search detected"]}5607 validates query string for pointless search5608 search: "this", errors: {:query_string=>["stopword only abusive search detected"]}5609 validates query string for pointless search5610 search: "to", errors: {:query_string=>["stopword only abusive search detected"]}5611 validates query string for pointless search5612 search: "was", errors: {:query_string=>["stopword only abusive search detected"]}5613 validates query string for pointless search5614 search: "will", errors: {:query_string=>["stopword only abusive search detected"]}5615 validates query string for pointless search5616 search: "with", errors: {:query_string=>["stopword only abusive search detected"]}5617 validates query string for pointless search5618 search: "x", errors: {:query_string=>["abusive tiny search detected"]}5619 validates query string for pointless search5620 search: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", errors: {:query_string=>["abusive term length detected"]}5621 validates query string for pointless search5622 search: "", errors: {}5623 validates query string for pointless search5624 search: "*", errors: {}5625 validates query string for pointless search5626 search: "ruby", errors: {}5627 validates query string for pointless search5628 abusive type coercion from string validation5629 considers anything not a String invalid5630 considers Strings to be valid5631Gitlab::Ci::Trace::Stream5632 delegates5633 is expected to delegate #close to the #stream object5634 is expected to delegate #tell to the #stream object5635 is expected to delegate #seek to the #stream object5636 is expected to delegate #size to the #stream object5637 is expected to delegate #path to the #stream object5638 is expected to delegate #truncate to the #stream object5639 is expected to delegate #valid? to the #stream object as #present?5640 #limit5641 when stream is StringIO5642 behaves like limits5643 if size is larger we start from beginning5644 if size is smaller we start from the end5645 when the trace contains ANSI sequence and Unicode5646 forwards to the next linefeed, case 15647 forwards to the next linefeed, case 25648 reads in binary, output as Encoding.default_external5649 when stream is ChunkedIO5650 behaves like limits5651 if size is larger we start from beginning5652 if size is smaller we start from the end5653 when the trace contains ANSI sequence and Unicode5654 forwards to the next linefeed, case 15655 forwards to the next linefeed, case 25656 reads in binary, output as Encoding.default_external5657 #append5658 when stream is Tempfile5659 behaves like appends5660 truncates and appends content5661 appends in binary mode5662 when stream is ChunkedIO5663 behaves like appends5664 truncates and appends content5665 appends in binary mode5666 metrics5667 increments trace streamed operation5668 increments trace bytes counter5669 #set5670 when stream is StringIO5671 behaves like sets5672 overwrite content5673 when stream is ChunkedIO5674 behaves like sets5675 overwrite content5676 #raw5677 when stream is File5678 behaves like sets5679 returns all contents if last_lines is not specified5680 limit max lines5681 returns last few lines5682 returns everything if trying to get too many lines5683 when stream is ChunkedIO5684 behaves like sets5685 returns all contents if last_lines is not specified5686 limit max lines5687 returns last few lines5688 returns everything if trying to get too many lines5689 #html5690 when stream is StringIO5691 behaves like htmls5692 returns html5693 returns html for last line only5694 when stream is ChunkedIO5695 behaves like htmls5696 returns html5697 returns html for last line only5698 #extract_coverage5699 when stream is StringIO5700 behaves like extract_coverages5701 valid content & regex5702 is expected to eq "98.29"5703 valid content & bad regex5704 is expected to be nil5705 no coverage content & regex5706 is expected to be nil5707 multiple results in content & regex5708 returns the last matched coverage5709 when BUFFER_SIZE is smaller than stream.size5710 is expected to eq "98.29"5711 when regex is multi-byte char5712 is expected to eq "95.0"5713 when BUFFER_SIZE is equal to stream.size5714 is expected to eq "98.29"5715 using a regex capture5716 is expected to eq "65"5717 malicious regexp5718 takes under a second5719 multi-line data with rooted regexp5720 is expected to eq "65"5721 long line5722 is expected to eq "100"5723 many lines5724 is expected to eq "100"5725 empty regex5726 skips processing5727 nil regex5728 skips processing5729 when stream is ChunkedIO5730 behaves like extract_coverages5731 valid content & regex5732 is expected to eq "98.29"5733 valid content & bad regex5734 is expected to be nil5735 no coverage content & regex5736 is expected to be nil5737 multiple results in content & regex5738 returns the last matched coverage5739 when BUFFER_SIZE is smaller than stream.size5740 is expected to eq "98.29"5741 when regex is multi-byte char5742 is expected to eq "95.0"5743 when BUFFER_SIZE is equal to stream.size5744 is expected to eq "98.29"5745 using a regex capture5746 is expected to eq "65"5747 malicious regexp5748 takes under a second5749 multi-line data with rooted regexp5750 is expected to eq "65"5751 long line5752 is expected to eq "100"5753 many lines5754 is expected to eq "100"5755 empty regex5756 skips processing5757 nil regex5758 skips processing5759Issuable::Clone::AttributesRewriter5760 setting labels5761 sets labels present in the new project and group labels5762 does not set any labels when not used on the original issue5763 copies the resource label events5764 setting milestones5765 sets milestone to nil when old issue milestone is not in the new project5766 copies the milestone when old issue milestone title is in the new project5767 copies the milestone when old issue milestone is a group milestone5768 with existing milestone events5769 copies existing resource milestone events5770 with existing state events5771 copies existing state events as expected5772PrometheusMetric5773 is expected to belong to project required: false5774 is expected to validate that :title cannot be empty/falsy5775 is expected to validate that :query cannot be empty/falsy5776 is expected to validate that :group cannot be empty/falsy5777 is expected to validate that :identifier is case-sensitively unique within the scope of :project_id as long as it is not nil5778 behaves like having unique enum values5779 has unique values in "group"5780 common metrics5781 common: false, with_project: true, result: true5782 is expected to eq true5783 common: false, with_project: false, result: false5784 is expected to eq false5785 common: true, with_project: true, result: false5786 is expected to eq false5787 common: true, with_project: false, result: true5788 is expected to eq true5789 #query_series5790 legend: "Some other legend", type: NilClass5791 is expected to be a kind of NilClass5792 legend: "Status Code", type: Array5793 is expected to be a kind of Array5794 #group_title5795 behaves like group_title5796 returns text Response metrics (NGINX Ingress VTS) for group nginx_ingress_vts5797 behaves like group_title5798 returns text Response metrics (NGINX Ingress) for group nginx_ingress5799 behaves like group_title5800 returns text Response metrics (HA Proxy) for group ha_proxy5801 behaves like group_title5802 returns text Response metrics (AWS ELB) for group aws_elb5803 behaves like group_title5804 returns text Response metrics (NGINX) for group nginx5805 behaves like group_title5806 returns text System metrics (Kubernetes) for group kubernetes5807 behaves like group_title5808 returns text Business metrics (Custom) for group business5809 behaves like group_title5810 returns text Response metrics (Custom) for group response5811 behaves like group_title5812 returns text System metrics (Custom) for group system5813 behaves like group_title5814 returns text Cluster Health for group cluster_health5815 #priority5816 group: :nginx_ingress_vts, priority: 105817 is expected to eq 105818 group: :nginx_ingress, priority: 105819 is expected to eq 105820 group: :ha_proxy, priority: 105821 is expected to eq 105822 group: :aws_elb, priority: 105823 is expected to eq 105824 group: :nginx, priority: 105825 is expected to eq 105826 group: :kubernetes, priority: 55827 is expected to eq 55828 group: :business, priority: 05829 is expected to eq 05830 group: :response, priority: -55831 is expected to eq -55832 group: :system, priority: -105833 is expected to eq -105834 group: :cluster_health, priority: 105835 is expected to eq 105836 #required_metrics5837 group: :nginx_ingress_vts, required_metrics: ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]5838 is expected to eq ["nginx_upstream_responses_total", "nginx_upstream_response_msecs_avg"]5839 group: :nginx_ingress, required_metrics: ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]5840 is expected to eq ["nginx_ingress_controller_requests", "nginx_ingress_controller_ingress_upstream_latency_seconds_sum"]5841 group: :ha_proxy, required_metrics: ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]5842 is expected to eq ["haproxy_frontend_http_requests_total", "haproxy_frontend_http_responses_total"]5843 group: :aws_elb, required_metrics: ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]5844 is expected to eq ["aws_elb_request_count_sum", "aws_elb_latency_average", "aws_elb_httpcode_backend_5_xx_sum"]5845 group: :nginx, required_metrics: ["nginx_server_requests", "nginx_server_requestMsec"]5846 is expected to eq ["nginx_server_requests", "nginx_server_requestMsec"]5847 group: :kubernetes, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]5848 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]5849 group: :business, required_metrics: []5850 is expected to eq []5851 group: :response, required_metrics: []5852 is expected to eq []5853 group: :system, required_metrics: []5854 is expected to eq []5855 group: :cluster_health, required_metrics: ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]5856 is expected to eq ["container_memory_usage_bytes", "container_cpu_usage_seconds_total"]5857 #to_query_metric5858 converts to queryable metric object5859 queryable metric object has title5860 queryable metric object has y_label5861 queryable metric has no required_metric5862 queryable metrics has query description5863 #to_metric_hash5864 returns a hash suitable for inclusion on a metrics dashboard5865Git::TagHooksService5866 System hooks5867 executes system hooks5868 Webhooks5869 executes hooks on the project5870 Pipelines5871 creates a new pipeline5872 Push data5873 annotated tag5874 has expected push data attributes5875 with repository data5876 has expected repository attributes5877 with commits5878 is expected to be a kind of Array5879 has 1 element5880 the commit5881 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}5882 has expected commit attributes5883 with an author5884 has expected author attributes5885 lightweight tag5886 has expected push data attributes5887 with repository data5888 has expected repository attributes5889 with commits5890 is expected to be a kind of Array5891 has 1 element5892 the commit5893 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}5894 has expected commit attributes5895 with an author5896 has expected author attributes5897Gitlab::UsageDataCounters::PackageEventCounter5898 behaves like usage counter with totals5899 increments counter and returns total count5900 behaves like usage counter with totals5901 increments counter and returns total count5902 behaves like usage counter with totals5903 increments counter and returns total count5904 behaves like usage counter with totals5905 increments counter and returns total count5906 behaves like usage counter with totals5907 increments counter and returns total count5908 behaves like usage counter with totals5909 increments counter and returns total count5910 behaves like usage counter with totals5911 increments counter and returns total count5912 behaves like usage counter with totals5913 increments counter and returns total count5914 behaves like usage counter with totals5915 increments counter and returns total count5916 behaves like usage counter with totals5917 increments counter and returns total count5918 behaves like usage counter with totals5919 increments counter and returns total count5920 behaves like usage counter with totals5921 increments counter and returns total count5922 behaves like usage counter with totals5923 increments counter and returns total count5924 behaves like usage counter with totals5925 increments counter and returns total count5926 behaves like usage counter with totals5927 increments counter and returns total count5928 behaves like usage counter with totals5929 increments counter and returns total count5930 behaves like usage counter with totals5931 increments counter and returns total count5932 behaves like usage counter with totals5933 increments counter and returns total count5934 behaves like usage counter with totals5935 increments counter and returns total count5936 behaves like usage counter with totals5937 increments counter and returns total count5938 behaves like usage counter with totals5939 increments counter and returns total count5940 behaves like usage counter with totals5941 increments counter and returns total count5942 behaves like usage counter with totals5943 increments counter and returns total count5944 behaves like usage counter with totals5945 increments counter and returns total count5946 behaves like usage counter with totals5947 increments counter and returns total count5948 behaves like usage counter with totals5949 increments counter and returns total count5950 behaves like usage counter with totals5951 increments counter and returns total count5952 behaves like usage counter with totals5953 increments counter and returns total count5954 behaves like usage counter with totals5955 increments counter and returns total count5956 behaves like usage counter with totals5957 increments counter and returns total count5958 behaves like usage counter with totals5959 increments counter and returns total count5960 behaves like usage counter with totals5961 increments counter and returns total count5962 behaves like usage counter with totals5963 increments counter and returns total count5964 behaves like usage counter with totals5965 increments counter and returns total count5966 behaves like usage counter with totals5967 increments counter and returns total count5968 behaves like usage counter with totals5969 increments counter and returns total count5970 behaves like usage counter with totals5971 increments counter and returns total count5972 behaves like usage counter with totals5973 increments counter and returns total count5974 behaves like usage counter with totals5975 increments counter and returns total count5976 behaves like usage counter with totals5977 increments counter and returns total count5978 behaves like usage counter with totals5979 increments counter and returns total count5980 behaves like usage counter with totals5981 increments counter and returns total count5982 behaves like usage counter with totals5983 increments counter and returns total count5984 behaves like usage counter with totals5985 increments counter and returns total count5986 behaves like usage counter with totals5987 increments counter and returns total count5988 behaves like usage counter with totals5989 increments counter and returns total count5990 behaves like usage counter with totals5991 increments counter and returns total count5992 behaves like usage counter with totals5993 increments counter and returns total count5994 behaves like usage counter with totals5995 increments counter and returns total count5996 behaves like usage counter with totals5997 increments counter and returns total count5998 behaves like usage counter with totals5999 increments counter and returns total count6000 behaves like usage counter with totals6001 increments counter and returns total count6002 behaves like usage counter with totals6003 increments counter and returns total count6004 behaves like usage counter with totals6005 increments counter and returns total count6006 behaves like usage counter with totals6007 increments counter and returns total count6008 behaves like usage counter with totals6009 increments counter and returns total count6010 .fetch_supported_event6011 is expected to eq "i_package_conan_push_package"6012Banzai::ReferenceParser::CommitRangeParser6013 #nodes_visible_to_user6014 when the link has a data-issue attribute6015 behaves like referenced feature visibility6016 when feature is disabled6017 does not create reference6018 when feature is enabled only for team members6019 does not create reference for non member6020 creates reference for member6021 when feature is enabled6022 creates reference6023 #referenced_by6024 when the link has a data-project attribute6025 when the link as a data-commit-range attribute6026 returns an Array of commit ranges6027 returns an empty Array when the commit range could not be found6028 when the link does not have a data-commit-range attribute6029 returns an empty Array6030 when the link does not have a data-project attribute6031 returns an empty Array6032 #commit_range_ids_per_project6033 returns a Hash containing range IDs per project6034 does not add a project when the data-commit-range attribute is empty6035 #find_ranges6036 returns an Array of range objects6037 skips ranges that could not be found6038 #find_object6039 when the range has valid commits6040 returns the commit range6041 when the range does not have any valid commits6042 returns nil6043 group context6044 returns nil6045NotesHelper6046 #note_target_title6047 note does not exist6048 returns nil6049 target does not exist6050 returns nil6051 when given a design target6052 returns nil6053 when given a non-design target6054 returns the issue title6055 #notes_max_access_for_users6056 returns access levels6057 handles access in different projects6058 #discussion_path6059 for a merge request discusion6060 for a diff discussion6061 when the discussion is active6062 returns the diff path with the line code6063 when the discussion is on an older merge request version6064 returns the diff version path with the line code6065 when the discussion is on a comparison between merge request versions6066 returns the diff version comparison path with the line code6067 when the discussion does not have a merge request version6068 returns nil6069 for a legacy diff discussion6070 when the discussion is active6071 returns the diff path with the line code6072 when the discussion is outdated6073 returns nil6074 for a non-diff discussion6075 returns nil6076 for a contextual commit discussion6077 returns the merge request diff discussion scoped in the commit6078 for a commit discussion6079 for a diff discussion6080 returns the commit path with the line code6081 for a legacy diff discussion6082 returns the commit path with the line code6083 for a non-diff discussion6084 returns the commit path with the note anchor6085 #notes_url6086 return snippet notes path for personal snippet6087 return project notes path for project snippet6088 return project notes path for other noteables6089 #note_url6090 return snippet notes path for personal snippet6091 return project notes path for project snippet6092 return project notes path for other noteables6093 #form_resources6094 returns note for personal snippet6095 returns namespace, project and note for project snippet6096 returns namespace, project and note path for other noteables6097 #noteable_note_url6098 returns the noteable url with an anchor to the note6099 #discussion_resolved_intro6100 when the discussion was resolved by a push6101 returns "Automatically resolved"6102 when the discussion was not resolved by a push6103 returns "Resolved"6104 #notes_data6105 sets last_fetched_at to 0 when start_at_zero is true6106 includes the current notes filter for the user6107Packages::Nuget::ExtractionWorker6108 #perform6109 with valid package file6110 updates package and package file6111 with exisiting package6112 reuses existing package and updates package file6113 with invalid package file id6114 doesn't update package and package file6115 with package file not containing a nuspec file6116 behaves like handling the metadata error6117 updates package status to error6118 with package with an invalid package name6119 behaves like handling the metadata error6120 updates package status to error6121 behaves like handling the metadata error6122 updates package status to error6123 behaves like handling the metadata error6124 updates package status to error6125 behaves like handling the metadata error6126 updates package status to error6127 with package with an invalid package version6128 behaves like handling the metadata error6129 updates package status to error6130 behaves like handling the metadata error6131 updates package status to error6132 behaves like handling the metadata error6133 updates package status to error6134 behaves like handling the metadata error6135 updates package status to error6136 behaves like handling the metadata error6137 updates package status to error6138 behaves like handling the metadata error6139 updates package status to error6140 handles a processing an unaccounted for error6141 behaves like handling the metadata error6142 updates package status to error6143Gitlab::Ci::Config::Entry::Environment6144 when configuration is a string6145 #string?6146 is string configuration6147 #hash?6148 is not hash configuration6149 #valid?6150 is valid6151 #value6152 returns valid hash6153 #name6154 returns environment name6155 #url6156 returns environment url6157 when configuration is a hash6158 #string?6159 is not string configuration6160 #hash?6161 is hash configuration6162 #valid?6163 is valid6164 #value6165 returns valid hash6166 #name6167 returns environment name6168 #url6169 returns environment url6170 when valid action is used6171 is valid6172 when prepare action is used6173 is valid6174 when wrong action type is used6175 #valid?6176 is not valid6177 #errors6178 contains error about wrong action type6179 when invalid action is used6180 #valid?6181 is not valid6182 #errors6183 contains error about invalid action6184 when on_stop is used6185 is valid6186 when invalid on_stop is used6187 #valid?6188 is not valid6189 #errors6190 contains error about invalid action6191 when wrong url type is used6192 #valid?6193 is not valid6194 #errors6195 contains error about wrong url type6196 when variables are used for environment6197 #valid?6198 is valid6199 when auto_stop_in is specified6200 when auto_stop_in is correct format6201 becomes valid6202 when auto_stop_in is invalid format6203 becomes invalid6204 when configuration is invalid6205 when configuration is an array6206 #valid?6207 is not valid6208 #errors6209 contains error about invalid type6210 when environment name is not present6211 #valid?6212 is not valid6213 #errors?6214 contains error about missing environment name6215 kubernetes6216 is a string6217 is expected not to be valid6218 is a hash6219 is expected to be valid6220 is nil6221 is expected to be valid6222 deployment_tier6223 is a string6224 is expected to be valid6225 is a hash6226 is expected not to be valid6227 is nil6228 is expected to be valid6229 is unknown value6230 is invalid and adds an error6231Gitlab::UsageDataCounters::IssueActivityUniqueCounter6232 can return the count of actions per user deduplicated6233 for Issue title edit actions6234 behaves like a daily tracked issuable event6235 is expected to be truthy6236 does not track edit actions if author is not present6237 for Issue description edit actions6238 behaves like a daily tracked issuable event6239 is expected to be truthy6240 does not track edit actions if author is not present6241 for Issue assignee edit actions6242 behaves like a daily tracked issuable event6243 is expected to be truthy6244 does not track edit actions if author is not present6245 for Issue make confidential actions6246 behaves like a daily tracked issuable event6247 is expected to be truthy6248 does not track edit actions if author is not present6249 for Issue make visible actions6250 behaves like a daily tracked issuable event6251 is expected to be truthy6252 does not track edit actions if author is not present6253 for Issue created actions6254 behaves like a daily tracked issuable event6255 is expected to be truthy6256 does not track edit actions if author is not present6257 for Issue closed actions6258 behaves like a daily tracked issuable event6259 is expected to be truthy6260 does not track edit actions if author is not present6261 for Issue reopened actions6262 behaves like a daily tracked issuable event6263 is expected to be truthy6264 does not track edit actions if author is not present6265 for Issue label changed actions6266 behaves like a daily tracked issuable event6267 is expected to be truthy6268 does not track edit actions if author is not present6269 for Issue cross-referenced actions6270 behaves like a daily tracked issuable event6271 is expected to be truthy6272 does not track edit actions if author is not present6273 for Issue moved actions6274 behaves like a daily tracked issuable event6275 is expected to be truthy6276 does not track edit actions if author is not present6277 for Issue cloned actions6278 behaves like a daily tracked issuable event6279 is expected to be truthy6280 does not track edit actions if author is not present6281 for Issue relate actions6282 behaves like a daily tracked issuable event6283 is expected to be truthy6284 does not track edit actions if author is not present6285 for Issue unrelate actions6286 behaves like a daily tracked issuable event6287 is expected to be truthy6288 does not track edit actions if author is not present6289 for Issue marked as duplicate actions6290 behaves like a daily tracked issuable event6291 is expected to be truthy6292 does not track edit actions if author is not present6293 for Issue locked actions6294 behaves like a daily tracked issuable event6295 is expected to be truthy6296 does not track edit actions if author is not present6297 for Issue unlocked actions6298 behaves like a daily tracked issuable event6299 is expected to be truthy6300 does not track edit actions if author is not present6301 for Issue designs added actions6302 behaves like a daily tracked issuable event6303 is expected to be truthy6304 does not track edit actions if author is not present6305 for Issue designs modified actions6306 behaves like a daily tracked issuable event6307 is expected to be truthy6308 does not track edit actions if author is not present6309 for Issue designs removed actions6310 behaves like a daily tracked issuable event6311 is expected to be truthy6312 does not track edit actions if author is not present6313 for Issue due date changed actions6314 behaves like a daily tracked issuable event6315 is expected to be truthy6316 does not track edit actions if author is not present6317 for Issue time estimate changed actions6318 behaves like a daily tracked issuable event6319 is expected to be truthy6320 does not track edit actions if author is not present6321 for Issue time spent changed actions6322 behaves like a daily tracked issuable event6323 is expected to be truthy6324 does not track edit actions if author is not present6325 for Issue comment added actions6326 behaves like a daily tracked issuable event6327 is expected to be truthy6328 does not track edit actions if author is not present6329 for Issue comment edited actions6330 behaves like a daily tracked issuable event6331 is expected to be truthy6332 does not track edit actions if author is not present6333 for Issue comment removed actions6334 behaves like a daily tracked issuable event6335 is expected to be truthy6336 does not track edit actions if author is not present6337Packages::Conan::Metadatum6338 relationships6339 is expected to belong to package required: false6340 validations6341 is expected to validate that :package cannot be empty/falsy6342 is expected to validate that :package_username cannot be empty/falsy6343 is expected to validate that :package_channel cannot be empty/falsy6344 #package_username6345 is expected to allow :package_username to be ‹"my-package+username"›6346 is expected to allow :package_username to be ‹"my_package.username"›6347 is expected to allow :package_username to be ‹"_my-package.username123"›6348 is expected to allow :package_username to be ‹"my"›6349 is expected not to allow :package_username to be ‹"+my_package"›6350 is expected not to allow :package_username to be ‹".my_package"›6351 is expected not to allow :package_username to be ‹"-my_package"›6352 is expected not to allow :package_username to be ‹"m"›6353 is expected not to allow :package_username to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›6354 is expected not to allow :package_username to be ‹"my/package"›6355 is expected not to allow :package_username to be ‹"my(package)"›6356 is expected not to allow :package_username to be ‹"my@package"›6357 #package_channel6358 is expected to allow :package_channel to be ‹"beta"›6359 is expected to allow :package_channel to be ‹"stable+1.0"›6360 is expected to allow :package_channel to be ‹"my"›6361 is expected to allow :package_channel to be ‹"my_channel.beta"›6362 is expected to allow :package_channel to be ‹"_my-channel.beta123"›6363 is expected not to allow :package_channel to be ‹"+my_channel"›6364 is expected not to allow :package_channel to be ‹".my_channel"›6365 is expected not to allow :package_channel to be ‹"-my_channel"›6366 is expected not to allow :package_channel to be ‹"m"›6367 is expected not to allow :package_channel to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›6368 is expected not to allow :package_channel to be ‹"my/channel"›6369 is expected not to allow :package_channel to be ‹"my(channel)"›6370 is expected not to allow :package_channel to be ‹"my@channel"›6371 #username_channel_none_values6372 username: "username", channel: "channel", valid: true6373 is expected to eq true6374 username: "username", channel: "_", valid: false6375 is expected to eq false6376 username: "_", channel: "channel", valid: false6377 is expected to eq false6378 username: "_", channel: "_", valid: true6379 is expected to eq true6380 #conan_package_type6381 will not allow a package with a different package_type6382 #recipe6383 returns the recipe6384 #recipe_url6385 returns the recipe url6386 .package_username_from6387 returns the username formatted package path6388 .full_path_from6389 returns the username formatted package path6390 .validate_username_and_channel6391 username: "username", channel: "channel", error_field: nil6392 does not yield the block when there is no error6393 username: "username", channel: "_", error_field: :channel6394 yields the block when there is an error6395 username: "_", channel: "channel", error_field: :username6396 yields the block when there is an error6397 username: "_", channel: "_", error_field: nil6398 does not yield the block when there is no error6399groups/edit.html.haml6400 "Share with group lock" setting6401 for a root group6402 behaves like "Share with group lock" setting6403 has the correct label, help text, and checkbox options6404 for a subgroup6405 when the root_group has "Share with group lock" disabled6406 when the subgroup has "Share with group lock" disabled6407 as the root_owner6408 behaves like "Share with group lock" setting6409 has the correct label, help text, and checkbox options6410 as the sub_owner6411 behaves like "Share with group lock" setting6412 has the correct label, help text, and checkbox options6413 when the subgroup has "Share with group lock" enabled6414 as the root_owner6415 behaves like "Share with group lock" setting6416 has the correct label, help text, and checkbox options6417 as the sub_owner6418 behaves like "Share with group lock" setting6419 has the correct label, help text, and checkbox options6420 when the root_group has "Share with group lock" enabled6421 when the subgroup has "Share with group lock" disabled (parent overridden)6422 as the root_owner6423 behaves like "Share with group lock" setting6424 has the correct label, help text, and checkbox options6425 as the sub_owner6426 behaves like "Share with group lock" setting6427 has the correct label, help text, and checkbox options6428 when the subgroup has "Share with group lock" enabled (same as parent)6429 as the root_owner6430 behaves like "Share with group lock" setting6431 has the correct label, help text, and checkbox options6432 as the sub_owner6433 behaves like "Share with group lock" setting6434 has the correct label, help text, and checkbox options6435Gitlab::MultiCollectionPaginator6436 combines both collections6437 includes elements second collection if first collection is empty6438 with a full first page6439 knows the total count of the collection6440 fills the first page with elements of the first collection6441 fils the second page with a mixture of the first & second collection6442 fils the last page with elements from the second collection6443Mutations::Namespace::PackageSettings::Update6444 is expected to require graphql authorizations :create_package_settings6445 #resolve6446 with existing namespace package setting6447 user_role: :maintainer, shared_examples_name: "updating the namespace package setting"6448 behaves like updating the namespace package setting6449 behaves like updating the namespace package setting attributes6450 updates the namespace package setting6451 behaves like not creating the namespace package setting6452 doesn't create the namespace package setting6453 behaves like returning a success6454 returns the namespace package setting with no errors6455 with invalid params6456 doesn't update the maven_duplicates_allowed6457 returns an error6458 behaves like not creating the namespace package setting6459 doesn't create the namespace package setting6460 user_role: :developer, shared_examples_name: "updating the namespace package setting"6461 behaves like updating the namespace package setting6462 behaves like updating the namespace package setting attributes6463 updates the namespace package setting6464 behaves like not creating the namespace package setting6465 doesn't create the namespace package setting6466 behaves like returning a success6467 returns the namespace package setting with no errors6468 with invalid params6469 doesn't update the maven_duplicates_allowed6470 returns an error6471 behaves like not creating the namespace package setting6472 doesn't create the namespace package setting6473 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6474 behaves like denying access to namespace package setting6475 raises Gitlab::Graphql::Errors::ResourceNotAvailable6476 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6477 behaves like denying access to namespace package setting6478 raises Gitlab::Graphql::Errors::ResourceNotAvailable6479 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6480 behaves like denying access to namespace package setting6481 raises Gitlab::Graphql::Errors::ResourceNotAvailable6482 without existing namespace package setting6483 user_role: :maintainer, shared_examples_name: "creating the namespace package setting"6484 behaves like creating the namespace package setting6485 creates a new package setting6486 saves the settings6487 behaves like returning a success6488 returns the namespace package setting with no errors6489 user_role: :developer, shared_examples_name: "creating the namespace package setting"6490 behaves like creating the namespace package setting6491 creates a new package setting6492 saves the settings6493 behaves like returning a success6494 returns the namespace package setting with no errors6495 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"6496 behaves like denying access to namespace package setting6497 raises Gitlab::Graphql::Errors::ResourceNotAvailable6498 user_role: :guest, shared_examples_name: "denying access to namespace package setting"6499 behaves like denying access to namespace package setting6500 raises Gitlab::Graphql::Errors::ResourceNotAvailable6501 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"6502 behaves like denying access to namespace package setting6503 raises Gitlab::Graphql::Errors::ResourceNotAvailable6504TodosHelper6505 #todos_count_format6506 shows fuzzy count for 100 or more items6507 shows exact count for 99 or fewer items6508 #todo_target_link6509 when given a design6510 produces a good link6511 #todo_target_title6512 when the target does not exist6513 returns an empty string6514 when given a design todo6515 returns an empty string6516 when given a non-design todo6517 returns the title6518 #todo_target_path6519 when given a design6520 responds with an appropriate path6521 when given an alert6522 responds with an appropriate path6523 #todo_target_type_name6524 when given a design todo6525 responds with an appropriate target type name6526 when given an alert todo6527 responds with an appropriate target type name6528 #todo_types_options6529 includes a match for a design todo6530 #todo_target_state_pill6531 merge request todo6532 behaves like no state pill6533 is expected to eq nil6534 merged MR6535 behaves like a rendered state pill6536 returns expected html6537 issue todo6538 behaves like no state pill6539 is expected to eq nil6540 closed issue6541 behaves like a rendered state pill6542 returns expected html6543 alert todo6544 behaves like no state pill6545 is expected to eq nil6546 resolved alert6547 behaves like a rendered state pill6548 returns expected html6549 #todo_author_display?6550 action: 3, result: false6551 is expected to eq false6552 action: 6, result: false6553 is expected to eq false6554 action: 1, result: true6555 is expected to eq true6556API::Helpers::Caching6557 #present_cached6558 single object6559 behaves like object cache helper6560 is expected to be a kind of Gitlab::Json::PrecompiledJson6561 uses the presenter6562 is valid JSON6563 fetches from the cache6564 when a cache context is supplied6565 uses the context to augment the cache key6566 when expires_in is supplied6567 sets the expiry when accessing the cache6568 collection of objects6569 behaves like collection cache helper6570 is expected to be a kind of Gitlab::Json::PrecompiledJson6571 uses the presenter6572 is valid JSON6573 fetches from the cache6574 when a cache context is supplied6575 uses the context to augment the cache key6576 expires_in is supplied6577 sets the expiry when accessing the cache6578 #cache_action6579 is expected to be a kind of Gitlab::Json::PrecompiledJson6580 represents the correct data6581 only calls the expensive action once6582 handles nested cache calls6583 Cache versioning6584 returns cache based on version parameter6585 Cache for pagination headers6586 X-Per-Page6587 stores and recovers pagination headers from cache6588 prefers headers from request than from cache6589 X-Page6590 stores and recovers pagination headers from cache6591 prefers headers from request than from cache6592 X-Next-Page6593 stores and recovers pagination headers from cache6594 prefers headers from request than from cache6595 X-Prev-Page6596 stores and recovers pagination headers from cache6597 prefers headers from request than from cache6598 Link6599 stores and recovers pagination headers from cache6600 prefers headers from request than from cache6601 X-Total6602 stores and recovers pagination headers from cache6603 prefers headers from request than from cache6604 X-Total-Pages6605 stores and recovers pagination headers from cache6606 prefers headers from request than from cache6607 #cache_action_if6608 conditional is truthy6609 is expected to be a kind of Gitlab::Json::PrecompiledJson6610 caches the block6611 conditional is falsey6612 is expected to eq {:foo=>"bar"}6613 doesn't cache the block6614 #cache_action_unless6615 conditional is truthy6616 is expected to eq {:foo=>"bar"}6617 doesn't cache the block6618 conditional is falsey6619 is expected to be a kind of Gitlab::Json::PrecompiledJson6620 caches the block6621Gitlab::Database::LoadBalancing::ConnectionProxy6622 #select6623 performs a read6624 #select_all6625 method signatures match6626 using a SELECT query6627 runs the query on a secondary6628 using a SELECT FOR UPDATE query6629 runs the query on the primary and sticks to it6630 sanitize_limit6631 runs the query on the replica6632 select6633 runs the query on the replica6634 select_one6635 runs the query on the replica6636 select_rows6637 runs the query on the replica6638 quote_column_name6639 runs the query on the replica6640 delete6641 runs the query on the primary and sticks to it6642 delete_all6643 runs the query on the primary and sticks to it6644 insert6645 runs the query on the primary and sticks to it6646 update6647 runs the query on the primary and sticks to it6648 update_all6649 runs the query on the primary and sticks to it6650 .insert_all!6651-- create_table(:_test_connection_proxy_bulk_insert, {:force=>true})6652 -> 0.0069s6653-- drop_table(:_test_connection_proxy_bulk_insert, {:force=>true})6654 -> 0.0031s6655 inserts data in bulk6656 #transaction6657 session fallbacks ambiguous queries to replicas6658 with a read query6659 runs the transaction and any nested queries on the replica6660 with a write query6661 raises an exception6662 session does not fallback to replicas for ambiguous queries6663 with a read query6664 runs the transaction and any nested queries on the primary and stick to it6665 with a write query6666 runs the transaction and any nested queries on the primary and stick to it6667 #method_missing6668 runs the query on the primary without sticking to it6669 properly forwards keyword arguments6670 current session prefers to fallback ambiguous queries to replicas6671 runs the query on the replica6672 properly forwards keyword arguments6673 #read_using_load_balancer6674 with a regular session6675 uses a secondary6676 with a regular session and forcing all reads to replicas6677 uses a secondary6678 with a session using the primary but forcing all reads to replicas6679 uses a secondary6680 with a session using the primary6681 uses the primary6682 #write_using_load_balancer6683 uses but does not stick to the primary6684Gitlab::Utils::SanitizeNodeLink6685 with the scheme: javascript:6686 #remove_unsafe_links6687 <a> tags6688 removes the unsafe link6689 <img> tags6690 removes the unsafe link6691 <video> tags6692 removes the unsafe link6693 <audio> tags6694 removes the unsafe link6695 #safe_protocol?6696 returns false6697 with the scheme: JaVaScRiPt:6698 #remove_unsafe_links6699 <a> tags6700 removes the unsafe link6701 <img> tags6702 removes the unsafe link6703 <video> tags6704 removes the unsafe link6705 <audio> tags6706 removes the unsafe link6707 #safe_protocol?6708 returns false6709 with the scheme: javascript:6710 #remove_unsafe_links6711 <a> tags6712 removes the unsafe link6713 <img> tags6714 removes the unsafe link6715 <video> tags6716 removes the unsafe link6717 <audio> tags6718 removes the unsafe link6719 #safe_protocol?6720 returns false6721 with the scheme: javascript :6722 #remove_unsafe_links6723 <a> tags6724 removes the unsafe link6725 <img> tags6726 removes the unsafe link6727 <video> tags6728 removes the unsafe link6729 <audio> tags6730 removes the unsafe link6731 #safe_protocol?6732 returns false6733 with the scheme: javascript:6734 #remove_unsafe_links6735 <a> tags6736 removes the unsafe link6737 <img> tags6738 removes the unsafe link6739 <video> tags6740 removes the unsafe link6741 <audio> tags6742 removes the unsafe link6743 #safe_protocol?6744 returns false6745 with the scheme: javascript :6746 #remove_unsafe_links6747 <a> tags6748 removes the unsafe link6749 <img> tags6750 removes the unsafe link6751 <video> tags6752 removes the unsafe link6753 <audio> tags6754 removes the unsafe link6755 #safe_protocol?6756 returns false6757 with the scheme: :javascript:6758 #remove_unsafe_links6759 <a> tags6760 removes the unsafe link6761 <img> tags6762 removes the unsafe link6763 <video> tags6764 removes the unsafe link6765 <audio> tags6766 removes the unsafe link6767 #safe_protocol?6768 returns false6769 with the scheme: javascript:6770 #remove_unsafe_links6771 <a> tags6772 removes the unsafe link6773 <img> tags6774 removes the unsafe link6775 <video> tags6776 removes the unsafe link6777 <audio> tags6778 removes the unsafe link6779 #safe_protocol?6780 returns false6781 with the scheme: javascript:6782 #remove_unsafe_links6783 <a> tags6784 removes the unsafe link6785 <img> tags6786 removes the unsafe link6787 <video> tags6788 removes the unsafe link6789 <audio> tags6790 removes the unsafe link6791 #safe_protocol?6792 returns false6793 with the scheme:  javascript:6794 #remove_unsafe_links6795 <a> tags6796 removes the unsafe link6797 <img> tags6798 removes the unsafe link6799 <video> tags6800 removes the unsafe link6801 <audio> tags6802 removes the unsafe link6803 #safe_protocol?6804 returns false6805Gitlab::Ci::Status::Build::Cancelable6806 #text6807 does not override status text6808 #icon6809 does not override status icon6810 #label6811 does not override status label6812 #group6813 does not override status group6814 #status_tooltip6815 does not override status status_tooltip6816 #badge_tooltip6817 returns the status6818 action details6819 #has_action?6820 when user is allowed to update build6821 is expected to have action6822 when user is not allowed to update build6823 is expected not to have action6824 #action_path6825 is expected to include "163/cancel"6826 #action_icon6827 is expected to eq "cancel"6828 #action_title6829 is expected to eq "Cancel"6830 #action_button_title6831 is expected to eq "Cancel this job"6832 .matches?6833 when build is cancelable6834 is a correct match6835 when build is not cancelable6836 does not match6837IssuablePolicy6838 #rules6839 when user is author of issuable6840 allows resolving notes6841 when user is able to read project6842 enables user to read and update issuables6843 when project is private6844 disallows user from reading and updating issuables from that project6845 when user belongs to the projects team6846 enables user to read and update issuables6847 when discussion is locked for the issuable6848 when the user is not a project member6849 can not create a note nor award emojis6850 does not allow resolving note6851 when the user is a project member6852 can create a note and award emojis6853 allows resolving notes6854Gitlab::AlertManagement::Payload::Generic6855 behaves like subclass has expected api6856 defines all public methods in the base class6857 #title6858 behaves like parsable alert payload field with fallback6859 without payload6860 is expected to eq "New: Alert"6861 with title6862 is expected to eq "some value"6863 #severity6864 when set6865 payload_severity: "critical", expected_severity: :critical6866 is expected to eq :critical6867 payload_severity: "high", expected_severity: :high6868 is expected to eq :high6869 payload_severity: "medium", expected_severity: :medium6870 is expected to eq :medium6871 payload_severity: "low", expected_severity: :low6872 is expected to eq :low6873 payload_severity: "info", expected_severity: :info6874 is expected to eq :info6875 payload_severity: "CRITICAL", expected_severity: :critical6876 is expected to eq :critical6877 payload_severity: "cRiTiCaL", expected_severity: :critical6878 is expected to eq :critical6879 payload_severity: "unmapped", expected_severity: nil6880 is expected to eq nil6881 payload_severity: 1, expected_severity: nil6882 is expected to eq nil6883 payload_severity: nil, expected_severity: nil6884 is expected to eq nil6885 without key6886 is expected to be nil6887 #monitoring_tool6888 behaves like parsable alert payload field6889 behaves like parsable alert payload field with fallback6890 without payload6891 is expected to eq nil6892 with monitoring_tool6893 is expected to eq "some value"6894 #service6895 behaves like parsable alert payload field6896 behaves like parsable alert payload field with fallback6897 without payload6898 is expected to eq nil6899 with service6900 is expected to eq "some value"6901 #hosts6902 behaves like parsable alert payload field6903 behaves like parsable alert payload field with fallback6904 without payload6905 is expected to eq nil6906 with hosts6907 is expected to eq "some value"6908 #starts_at6909 without start_time6910 is expected to eq 2022-02-04 17:20:53.000000000 +00006911 with start_time6912 is expected to eq 2022-02-04 17:10:53.000000000 +00006913 #runbook6914 behaves like parsable alert payload field6915 behaves like parsable alert payload field with fallback6916 without payload6917 is expected to eq nil6918 with runbook6919 is expected to eq "some value"6920 #gitlab_fingerprint6921 returns a fingerprint6922 #environment_name6923 behaves like parsable alert payload field6924 behaves like parsable alert payload field with fallback6925 without payload6926 is expected to eq nil6927 with gitlab_environment_name6928 is expected to eq "some value"6929 #description6930 behaves like parsable alert payload field6931 behaves like parsable alert payload field with fallback6932 without payload6933 is expected to eq nil6934 with description6935 is expected to eq "some value"6936 #ends_at6937 without end_time6938 is expected to be nil6939 with end_time6940 is expected to eq 2022-02-04 17:10:53.000000000 +00006941projects/merge_requests/_commits.html.haml6942 shows commits from source project6943 shows signature verification badge6944 when there are hidden commits6945 shows notice about omitted commits6946Gitlab::Ci::Build::Rules6947 .new6948 with no rules6949 sets @rule_list to an empty array6950 sets @default_when to "on_success"6951 with one rule6952 sets @rule_list to an array of a single rule6953 sets @default_when to "on_success"6954 with multiple rules6955 sets @rule_list to an array of a single rule6956 sets @default_when to "on_success"6957 with a specified default when:6958 sets @rule_list to an array of a single rule6959 sets @default_when to "manual"6960 #evaluate6961 with nil rules6962 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil>6963 and when:manual set as the default6964 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=nil, variables=nil>6965 with no rules6966 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>6967 and when:manual set as the default6968 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>6969 with one rule without any clauses6970 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=true, variables=nil>6971 with one matching rule6972 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil>6973 with two matching rules6974 returns the value of the first matched rule in the list6975 with a non-matching and matching rule6976 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil>6977 with a matching and non-matching rule6978 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="delayed", start_in="1 day", allow_failure=nil, variables=nil>6979 with non-matching rules6980 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>6981 and when:manual set as the default6982 does not return the default when:6983 with only allow_failure6984 with matching rule6985 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=true, variables=nil>6986 with non-matching rule6987 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>6988 with variables6989 with matching rule6990 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables={:MY_VAR=>"my var"}>6991 Gitlab::Ci::Build::Rules::Result6992 #build_attributes6993 compacts nil values6994 #pass?6995 'when' is 'never'6996 returns false6997 'when' is 'on_success'6998 returns true6999AuthorizedProjectUpdate::ProjectCreateService7000 #perform7001 direct group members7002 creates project authorization7003 inherited group members7004 creates project authorization7005 membership overrides7006 group hierarchy7007 creates project authorization7008 group sharing7009 creates project authorization7010 does not create project authorization for user with minimal access7011 no group member7012 does not create project authorization7013 unapproved access requests7014 does not create project authorization7015 member with minimal access7016 does not create project authorization7017 project has more user than BATCH_SIZE7018 bulk creates project authorizations in batches7019 ignores existing project authorizations7020 does not create project authorization7021Gitlab::Ci::Config::Entry::Release7022 validation7023 when entry config value is correct7024 behaves like a valid entry7025 #value7026 returns release configuration7027 #valid?7028 is valid7029 when value includes 'assets' keyword7030 behaves like a valid entry7031 #value7032 returns release configuration7033 #valid?7034 is valid7035 when value includes 'name' keyword7036 behaves like a valid entry7037 #value7038 returns release configuration7039 #valid?7040 is valid7041 when value includes 'ref' keyword7042 behaves like a valid entry7043 #value7044 returns release configuration7045 #valid?7046 is valid7047 when value includes 'released_at' keyword7048 behaves like a valid entry7049 #value7050 returns release configuration7051 #valid?7052 is valid7053 when value includes 'milestones' keyword7054 for an array of milestones7055 behaves like a valid entry7056 #value7057 returns release configuration7058 #valid?7059 is valid7060 for a single milestone7061 behaves like a valid entry7062 #value7063 returns release configuration7064 #valid?7065 is valid7066 when value includes 'ref' keyword7067 when 'ref' is a full commit SHA7068 behaves like a valid entry7069 #value7070 returns release configuration7071 #valid?7072 is valid7073 when 'ref' is a short commit SHA7074 behaves like a valid entry7075 #value7076 returns release configuration7077 #valid?7078 is valid7079 when 'ref' is a branch name7080 behaves like a valid entry7081 #value7082 returns release configuration7083 #valid?7084 is valid7085 when 'ref' is a semantic versioning tag7086 behaves like a valid entry7087 #value7088 returns release configuration7089 #valid?7090 is valid7091 when 'ref' is a semantic versioning tag rc7092 behaves like a valid entry7093 #value7094 returns release configuration7095 #valid?7096 is valid7097 when value includes 'released_at' keyword7098 behaves like a valid entry7099 #value7100 returns release configuration7101 #valid?7102 is valid7103 when value includes 'milestones' keyword7104 for an array of milestones7105 behaves like a valid entry7106 #value7107 returns release configuration7108 #valid?7109 is valid7110 for a single milestone7111 behaves like a valid entry7112 #value7113 returns release configuration7114 #valid?7115 is valid7116 when entry value is not correct7117 #errors7118 when value of attribute is invalid7119 behaves like reports error7120 reports error7121 when release description is missing7122 behaves like reports error7123 reports error7124 when release tag_name is missing7125 behaves like reports error7126 reports error7127 when there is an unknown key present7128 behaves like reports error7129 reports error7130 when `released_at` is not a valid date7131 behaves like reports error7132 reports error7133 when `ref` is not valid7134 behaves like reports error7135 reports error7136 when `milestones` is not an array of strings7137 behaves like reports error7138 reports error7139Gitlab::Ci::Status::External::Common7140 #label7141 returns description7142 when description is nil7143 uses core status label7144 when description is empty string7145 uses core status label7146 #has_action?7147 is expected not to have action7148 #has_details?7149 when user has access to read commit status7150 is expected to have details7151 when user does not have access to read commit status7152 is expected not to have details7153 #details_path7154 links to the external target URL7155Gitlab::Ci::Pipeline::Chain::EnsureResourceGroups7156 #perform!7157 when a pipeline contains a job that requires a resource group7158 ensures the resource group existence7159 when a resource group has already been existed7160 ensures the resource group existence7161 when a resource group key contains an invalid character7162 does not create any resource groups7163 when a pipeline does not contain a job that requires a resource group7164 does not create any resource groups7165Gitlab::GithubImport::Importer::MilestonesImporter7166 #execute7167 imports the milestones in bulk7168 #build_milestones7169 returns an Array containnig milestone rows7170 does not create milestones that already exist7171 #build_milestones_cache7172 builds the milestones cache7173 #build7174 returns the attributes of the milestone as a Hash7175 the returned Hash7176 includes the milestone number7177 includes the milestone title7178 includes the milestone description7179 includes the project ID7180 includes the milestone state7181 includes the due date7182 responds correctly to no due date value7183 includes the created timestamp7184 includes the updated timestamp7185 #each_milestone7186 returns the milestones7187Users::RefreshAuthorizedProjectsService7188 #execute7189 refreshes the authorizations using a lease7190 callbacks7191 incorrect_auth_found_callback callback7192 is called7193 missing_auth_found_callback callback7194 is called7195 #execute_without_lease7196 updates the authorized projects of the user7197 removes duplicate entries7198 sets the access level of a project to the highest available level7199 returns a User7200 #update_authorizations7201 removes authorizations that should be removed7202 inserts authorizations that should be added7203 logs the details of the refresh7204 when there are no rows to add and remove7205 does not change authorizations7206Gitlab::Diff::DiffRefs7207 #==7208 when shas are missing7209 returns false7210 when shas are equal7211 returns true7212 when shas are unequal7213 returns false7214 when shas are truncated7215 when sha prefixes are too short7216 returns false7217 when sha prefixes are equal7218 returns true7219 when sha prefixes are unequal7220 returns false7221 #compare_in7222 with diff refs for the initial commit7223 returns an appropriate comparison7224 with diff refs for a commit7225 returns an appropriate comparison7226 with diff refs for a comparison through the base7227 returns an appropriate comparison7228 with diff refs for a straight comparison7229 returns an appropriate comparison7230PerformanceMonitoring::PrometheusDashboard7231 .from_json7232 creates a PrometheusDashboard object7233 validations7234 dashboard content is missing7235 behaves like validation failed7236 raises error with corresponding messages7237 dashboard content is NOT a hash7238 behaves like validation failed7239 raises error with corresponding messages7240 content is an array7241 behaves like validation failed7242 raises error with corresponding messages7243 dashboard definition is missing panels_groups and dashboard keys7244 behaves like validation failed7245 raises error with corresponding messages7246 group definition is missing panels and group keys7247 behaves like validation failed7248 raises error with corresponding messages7249 panel definition is missing metrics and title keys7250 behaves like validation failed7251 raises error with corresponding messages7252 metrics definition is missing unit, query and query_range keys7253 behaves like validation failed7254 raises error with corresponding messages7255 multiple offences on different levels7256 behaves like validation failed7257 raises error with corresponding messages7258 .find_for7259 dashboard has been found7260 uses dashboard finder to find and load dashboard data and returns dashboard instance7261 dashboard has NOT been found7262 returns nil7263 dashboard has invalid schema7264 still returns dashboard object7265 #schema_validation_warnings7266 metrics_dashboard_exhaustive_validations is on7267 when schema is valid7268 returns empty array7269 when schema is invalid7270 returns array with errors messages7271 when YAML has wrong syntax7272 returns array with errors messages7273 metrics_dashboard_exhaustive_validations is off7274 when schema is valid7275 returns empty array7276 when schema is invalid7277DEPRECATION WARNING: Enumerating ActiveModel::Errors as a hash has been deprecated.7278In Rails 6.1, `errors` is an array of Error objects,7279therefore it should be accessed by a block with a single block7280parameter like this:7281person.errors.each do |error|7282 attribute = error.attribute7283 message = error.message7284end7285You are passing a block expecting two parameters,7286so the old hash behavior is simulated. As this is deprecated,7287this will result in an ArgumentError in Rails 6.2.7288 (called from map at /builds/gitlab-org/gitlab/app/models/performance_monitoring/prometheus_dashboard.rb:63)7289 returns array with errors messages7290 when YAML has wrong syntax7291 returns array with errors messages7292 #to_yaml7293 is expected to eq "---\npanel_groups:\n- panels:\n - metrics:\n - id: metric_of_ages\n unit: count\n labe... y_label: Y-Axis\n weight: \n group: Group Title\n priority: \ndashboard: Dashboard Title\n"7294MergeRequests::ResolvedDiscussionNotificationService7295 #execute7296 when not all discussions are resolved7297 doesn't add a system note7298 doesn't send a notification email7299 doesn't send a webhook7300 when all discussions are resolved7301 adds a system note7302 sends a notification email7303 sends a webhook7304SystemNotes::CommitService7305 #add_commits7306 behaves like a system note7307 has the correct attributes7308 note body7309 comparison diff link line7310 adds the comparison text7311 without existing commits7312 adds a message header7313 adds a message for each commit7314 summary line for existing commits7315 with one existing commit7316 includes the existing commit7317 with multiple existing commits7318 with oldrev7319 includes a commit range and count7320 without oldrev7321 includes a commit range and count7322 on a fork7323 includes the project namespace7324 #tag_commit7325 sets the note text7326 behaves like a system note7327 has the correct attributes7328 #new_commit_summary7329 escapes HTML titles7330Releases::DestroyService7331 #execute7332 when there is a release7333 removes the release7334 returns the destroyed object7335 when tag does not exist in the repository7336 removes the orphaned release7337 when release is not found7338 returns an error7339 when user does not have permission7340 returns an error7341 when a milestone is tied to the release7342 destroys the release but leave the milestone intact7343notify/pipeline_fixed_email.text.erb7344 behaves like pipeline status changes email7345 when the pipeline contains a failed job7346 behaves like renders the pipeline status changes email correctly7347 pipeline with user7348 renders the email correctly7349 behaves like correct pipeline information for pipelines for merge requests7350 when pipeline for merge request7351 renders a source ref of the pipeline7352 pipeline without user7353 renders the email correctly7354 when the latest failed job is a bridge job7355 behaves like renders the pipeline status changes email correctly7356 pipeline with user7357 renders the email correctly7358 behaves like correct pipeline information for pipelines for merge requests7359 when pipeline for merge request7360 renders a source ref of the pipeline7361 pipeline without user7362 renders the email correctly7363Kramdown::Parser::AtlassianDocumentFormat7364 markdown render7365 renders header id to html7366 logs an error with invalid json7367 logs an error if no valid document node7368 invalid node gets ignored7369 behaves like render elements to markdown7370 renders blockquote7371 behaves like render elements to markdown7372 renders bullet_list7373 behaves like render elements to markdown7374 renders code_block7375 behaves like render elements to markdown7376 renders emoji7377 behaves like render elements to markdown7378 renders hard_break7379 behaves like render elements to markdown7380 renders heading7381 behaves like render elements to markdown7382 renders inline_card7383 behaves like render elements to markdown7384 renders media_group7385 behaves like render elements to markdown7386 renders media_single7387 behaves like render elements to markdown7388 renders mention7389 behaves like render elements to markdown7390 renders ordered_list7391 behaves like render elements to markdown7392 renders panel7393 behaves like render elements to markdown7394 renders paragraph7395 behaves like render elements to markdown7396 renders rule7397 behaves like render elements to markdown7398 renders table7399 behaves like render elements to markdown7400 renders strong_em_mark7401 behaves like render elements to markdown7402 renders code_mark7403 behaves like render elements to markdown7404 renders link_mark7405 behaves like render elements to markdown7406 renders strike_sup_sub_mark7407 behaves like render elements to markdown7408 renders underline_text_color_mark7409 behaves like render elements to markdown7410 renders complex_document7411Gitlab::WebHooks::RecursionDetection7412 .set_from_headers7413 when the detection header is present7414 sets the request UUID value from the headers7415 when detection header is not present7416 does not set the request UUID7417 .set_request_uuid7418 sets the request UUID value7419 .register!7420 stores IDs in the same cache when a request UUID is set, until the request UUID changes7421 stores IDs in unique caches when no request UUID is present7422 touches the storage ttl each time it is called7423 block?7424 returns false if webhook should not be blocked7425 when the webhook has previously fired7426 returns true7427 when the request UUID changes again7428 returns false7429 when the count limit has been reached7430 returns true7431 when the request UUID changes again7432 returns false7433 .header7434 returns a header with the UUID value7435 .to_log7436 returns the UUID value and all registered webhook IDs in a Hash7437Gitlab::Git::RuggedImpl::UseRugged7438 #execute_rugged_call7439 instruments Rugged call7440 when feature flag is not persisted7441 when running puma with multiple threads7442 returns false7443 when not running puma with multiple threads7444 returns true when gitaly matches disk7445 returns false when disk access fails7446 returns false when gitaly doesn't match disk7447 doesn't lead to a second rpc call because gitaly client should use the cached value7448 when feature flag is persisted7449 returns false when the feature flag is off7450 returns true when feature flag is on7451 #running_puma_with_multiple_threads?7452 when using Puma7453 returns false when Puma doesn't support the cli_config method7454 returns false for single thread Puma7455 returns true for multi-threaded Puma7456 when not using Puma7457 returns false7458 #rugged_enabled_through_feature_flag?7459 no feature keys given7460 is expected to be falsey7461 all features are enabled7462 is expected to be truthy7463 all features are not enabled7464 is expected to be falsey7465 some feature is enabled7466 is expected to be truthy7467Gitlab::Database::LoadBalancing::Setup7468 #setup7469 sets up the load balancer7470 #configure_connection7471 configures pool, prepared statements and reconnects to the database7472 #setup_connection_proxy7473 sets up the load balancer7474 #setup_service_discovery7475 when service discovery is disabled7476 does nothing7477 when service discovery is enabled7478 immediately performs service discovery7479 starts service discovery if needed7480 #setup_feature_flag_to_model_load_balancing7481 with model LB enabled it picks a dedicated CI connection7482 results match expectations7483 does return load_balancer assigned to a given connection7484 with model LB enabled and re-use of primary connection it uses CI connection for reads7485 results match expectations7486 does return load_balancer assigned to a given connection7487 with model LB disabled it fallbacks to use main7488 results match expectations7489 does return load_balancer assigned to a given connection7490 with model LB disabled, but re-use configured it fallbacks to use main7491 results match expectations7492 does return load_balancer assigned to a given connection7493 with FF disabled without RequestStore it uses main7494 results match expectations7495 does return load_balancer assigned to a given connection7496 with FF enabled without RequestStore sticking of FF does not work, so it fallbacks to use main7497 results match expectations7498 does return load_balancer assigned to a given connection7499 with FF disabled with RequestStore it uses main7500 results match expectations7501 does return load_balancer assigned to a given connection7502 with FF enabled with RequestStore it sticks FF and uses CI connection7503 results match expectations7504 does return load_balancer assigned to a given connection7505 with re-use and FF enabled with RequestStore it sticks FF and uses CI connection for reads7506 results match expectations7507 does return load_balancer assigned to a given connection7508BoardProjectRecentVisit7509 relationships7510 is expected to belong to user required: false7511 is expected to belong to project required: false7512 is expected to belong to board required: false7513 validations7514 is expected to validate that :user cannot be empty/falsy7515 is expected to validate that :project cannot be empty/falsy7516 is expected to validate that :board cannot be empty/falsy7517 behaves like boards recent visit7518 #visited7519 creates a visit if one does not exists7520 behaves like was visited previously7521 updates the timestamp7522 when we try to create a visit that is not unique7523 behaves like was visited previously7524 updates the timestamp7525 #latest7526 returns the most recent visited7527 returns last 3 visited boards7528Gitlab::Database::BackgroundMigration::BatchedJob7529 associations7530 is expected to belong to batched_migration required: false7531 is expected to have many batched_job_transition_logs7532 state machine7533 when a job is running7534 logs the transition7535 when a job succeed7536 logs the transition7537 updates the finished_at7538 creates a new transition log7539 when a job fails7540 logs the transition7541 tracks the exception7542 updates the finished_at7543 creates a new transition log7544 scopes7545 .except_succeeded7546 returns not succeeded jobs7547 .active7548 returns active jobs7549 .stuck7550 returns stuck jobs7551 .retriable7552 returns retriable jobs7553 delegated batched_migration attributes7554 #migration_job_class7555 returns the migration job_class7556 #migration_table_name7557 returns the migration table_name7558 #migration_column_name7559 returns the migration column_name7560 #migration_job_arguments7561 returns the migration job_arguments7562 #time_efficiency7563 when job has not yet succeeded7564 returns nil7565 when finished_at is not set7566 returns nil7567 when started_at is not set7568 returns nil7569 when job has finished7570 returns ratio of duration to interval, here: 0.57571 returns ratio of duration to interval, here: 17572 #split_and_retry!7573 when job can be split7574 sets the correct attributes7575 splits the jobs into retriable jobs7576 when job is not failed7577 raises an exception7578 when batch size is already 17579 raises an exception7580 when computed midpoint is larger than the max value of the batch7581 lowers the batch size and resets the number of attempts7582Integrations::Youtrack7583 Validations7584 when integration is active7585 is expected to validate that :project_url cannot be empty/falsy7586 is expected to validate that :issues_url cannot be empty/falsy7587 behaves like issue tracker integration URL attribute7588 is expected to allow :project_url to be ‹"https://example.com"›7589 is expected not to allow :project_url to be ‹"example.com"›7590 is expected not to allow :project_url to be ‹"ftp://example.com"›7591 is expected not to allow :project_url to be ‹"herp-and-derp"›7592 behaves like issue tracker integration URL attribute7593 is expected to allow :issues_url to be ‹"https://example.com"›7594 is expected not to allow :issues_url to be ‹"example.com"›7595 is expected not to allow :issues_url to be ‹"ftp://example.com"›7596 is expected not to allow :issues_url to be ‹"herp-and-derp"›7597 when integration is inactive7598 is expected not to validate that :project_url cannot be empty/falsy7599 is expected not to validate that :issues_url cannot be empty/falsy7600 .reference_pattern7601 does allow project prefix on the reference7602 allows lowercase project key on the reference7603 behaves like allows project key on reference pattern7604 allows underscores in the project name7605 allows numbers in the project name7606 requires the project name to begin with A-Z7607 does not allow issue number to finish with a letter7608Ci::UnitTest7609 behaves like cleanup by a loose foreign key7610 cleans up (delete or nullify) the model7611 relationships7612 is expected to belong to project required: false7613 is expected to have many unit_test_failures7614 validations7615 is expected to validate that :project cannot be empty/falsy7616 is expected to validate that :key_hash cannot be empty/falsy7617 is expected to validate that :name cannot be empty/falsy7618 is expected to validate that :suite_name cannot be empty/falsy7619 .find_or_create_by_batch7620 finds or creates records for the given unit test keys7621 when a given name or suite_name exceeds the string size limit7622 truncates the values before storing the information7623ErrorTracking::IssueDetailsService7624 #execute7625 with authorized user7626 when issue_details returns a detailed error7627 returns the detailed error7628 returns the gitlab_issue when the error has a sentry_issue7629 returns the gitlab_issue path from sentry when the error has no sentry_issue7630 when issue_details returns nil7631 result is not ready7632 when issue_details returns error7633 returns the error7634 when issue_details returns error with http_status7635 returns the error with correct http_status7636 integrated error tracking7637 returns the error in detailed format7638 with unauthorized user7639 returns error7640 with error tracking disabled7641 raises error7642Gitlab::Ci::Config::Entry::Default7643 behaves like with inheritable CI config7644 does prepend an Inheritable mixin7645 all inheritable entries are covered7646 all entries do have inherit flag7647 for non-inheritable entries7648 entry_key: :interruptible7649 inheritable_class does not define entry7650 entry_key: :timeout7651 inheritable_class does not define entry7652 entry_key: :retry7653 inheritable_class does not define entry7654 entry_key: :tags7655 inheritable_class does not define entry7656 entry_key: :artifacts7657 inheritable_class does not define entry7658 for inheritable entries7659 entry_key: :before_script, entry_class: Gitlab::Ci::Config::Entry::Commands7660 inheritable_class does define entry7661 when is specified7662 does inherit value7663 when entry is specified7664 does not inherit value7665 when inheritable does not specify7666 does not inherit value7667 entry_key: :image, entry_class: Gitlab::Ci::Config::Entry::Image7668 inheritable_class does define entry7669 when is specified7670 does inherit value7671 when entry is specified7672 does not inherit value7673 when inheritable does not specify7674 does not inherit value7675 entry_key: :services, entry_class: Gitlab::Ci::Config::Entry::Services7676 inheritable_class does define entry7677 when is specified7678 does inherit value7679 when entry is specified7680 does not inherit value7681 when inheritable does not specify7682 does not inherit value7683 entry_key: :after_script, entry_class: Gitlab::Ci::Config::Entry::Commands7684 inheritable_class does define entry7685 when is specified7686 does inherit value7687 when entry is specified7688 does not inherit value7689 when inheritable does not specify7690 does not inherit value7691 entry_key: :cache, entry_class: Gitlab::Ci::Config::Entry::Caches7692 inheritable_class does define entry7693 when is specified7694 does inherit value7695 when entry is specified7696 does not inherit value7697 when inheritable does not specify7698 does not inherit value7699 .nodes7700 returns a hash7701 when filtering all the entry/node names7702 contains the expected node names7703 validations7704 when default entry value is correct7705 #valid?7706 is valid7707 when default entry is empty7708 #valid7709 is valid7710 when default entry is not correct7711 incorrect config value type7712 #errors7713 reports error about a config type7714 when unknown keys detected7715 #valid7716 is not valid7717 #compose!7718 when default entry inherits configuration from root7719 raises error7720 when default entry inherits a non-defined configuration from root7721 inherits non-defined configuration entries7722Gitlab::Ci::ArtifactFileReader7723 #read7724 when job has artifacts and metadata7725 returns the content at the path7726 when path does not exist7727 raises an error7728 when path points to a directory7729 raises an error7730 when path is nested7731 returns the content at the nested path7732 when artifact archive size is greater than the limit7733 raises an error7734 when metadata entry shows size greater than the limit7735 raises an error7736 when job does not have metadata artifacts7737 raises an error7738 when job does not have artifacts7739 raises ArgumentError7740Gitlab::ImportExport::Shared7741 with a repository on disk7742 #archive_path7743 uses a random hash to avoid conflicts7744 memoizes the path7745 #export_path7746 uses a random hash relative to project path7747 memoizes the path7748 with a group on disk7749 #base_path7750 uses hashed storage path7751 when exportable type is unsupported7752 #base_path7753 raises7754 #error7755 filters any full paths7756 updates the import JID7757Groups::DeployTokens::CreateService7758 behaves like a deploy token creation service7759 #execute7760 when the deploy token is valid7761 creates a new DeployToken7762 creates a new ProjectDeployToken7763 returns a DeployToken7764 when expires at date is not passed7765 sets Forever.date7766 when username is empty string7767 converts it to nil7768 when username is provided7769 keeps the provided username7770 when the deploy token is invalid7771 does not create a new DeployToken7772 does not create a new ProjectDeployToken7773UsersStatistics7774 scopes7775 .order_created_at_desc7776 returns the entries ordered by created at descending7777 .latest7778 returns the latest entry7779 .create_current_stats!7780 when successful7781 creates an entry with the current statistics values7782 when unsuccessful7783 raises an ActiveRecord::RecordInvalid exception7784 #active7785 sums users statistics values without the value for blocked7786 #total7787 sums all users statistics values7788BulkImports::FileTransfer::ProjectConfig7789 portable_tree7790 returns portable tree7791 #export_path7792 returns tmpdir location7793 #portable_relations7794 returns a list of top level exportable relations7795 does not include skipped relations7796 #top_relation_tree7797 returns relation tree of a top level relation7798 #relation_excluded_keys7799 returns excluded keys for relation7800 #tree_relation?7801 when it is a tree relation7802 returns true7803 when it is not a tree relation7804 returns false7805 #file_relation?7806 when it is a file relation7807 returns true7808 when it is not a file relation7809 returns false7810 #tree_relation_definition_for7811 returns relation definition7812 when relation is not tree relation7813 returns7814 #file_relations7815 returns project file relations7816Deployments::UpdateService7817 #execute7818 can update the status to running7819 can update the status to success7820 can update the status to failed7821 can update the status to canceled7822 does not change the state if the status is invalid7823 links merge requests when changing the status to success7824JiraImport::CloudUsersMapperService7825 #execute7826 behaves like mapping jira users7827 jira_users is nil7828 returns an empty array7829 when jira_users is present7830 returns users mapped to Gitlab7831 runs only 4 queries7832Mutations::AlertManagement::CreateAlertIssue7833 is expected to require graphql authorizations :update_alert_management_alert7834 #resolve7835 user has access to project7836 when CreateAlertIssueService responds with success7837 returns the issue with no errors7838 behaves like an incident management tracked event7839 .track_event7840 tracks the event using redis7841 behaves like an incident management tracked event7842 .track_event7843 tracks the event using redis7844 when CreateAlertIssue responds with an error7845 returns errors7846 when resource is not accessible to the user7847 raises an error if the resource is not accessible to the user7848ResourceEvents::SyntheticMilestoneNotesBuilderService7849 #execute7850 builds milestone notes for resource milestone events7851 behaves like filters by paginated notes7852 only returns given notes7853 when paginated notes is empty7854 does not return any notes7855Gitlab::APIAuthentication::TokenLocator7856 .new7857 with a valid type7858 creates a new instance7859 with an invalid type7860 raises ActiveModel::ValidationError7861 #extract7862 with :http_basic_auth7863 without credentials7864 returns nil7865 with credentials7866 returns the credentials7867 with :http_token7868 without credentials7869 returns nil7870 with credentials7871 returns the credentials7872 with :http_bearer_token7873 without credentials7874 returns nil7875 with credentials7876 returns the credentials7877 with :http_deploy_token_header7878 without credentials7879 returns nil7880 with credentials7881 returns the credentials7882 with :http_job_token_header7883 without credentials7884 returns nil7885 with credentials7886 returns the credentials7887 with :http_private_token_header7888 without credentials7889 returns nil7890 with credentials7891 returns the credentials7892 with :token_param7893 without credentials7894 returns nil7895 with credentials7896 returns the credentials7897EventFilter7898 #filter7899 returns "all" if given filter is nil7900 returns "all" if given filter is ""7901 returns "all" if given filter is "foo"7902 #apply_filter7903 with the "push" filter7904 filters push events only7905 with the "merged" filter7906 filters merged events only7907 with the "issue" filter7908 filters issue events only7909 with the "comments" filter7910 filters comment events only7911 with the "team" filter7912 filters team events only7913 with the "all" filter7914 returns all events7915 with the "design" filter7916 returns only design events7917 with the "wiki" filter7918 returns only wiki page events7919 with an unknown filter7920 returns all events7921 with a nil filter7922 returns all events7923 #active?7924 returns false if filter does not include the given key7925 returns false if the given key is nil7926 returns true if filter does not include the given key7927CsvBuilder7928 generates a csv7929 uses a temporary file to reduce memory allocation7930 counts the number of rows7931 avoids loading all data in a single query7932 uses hash keys as headers7933 gets data by calling method provided as hash value7934 allows lamdas to look up more complicated data7935 rows_expected7936 uses rows_written if CSV rendered successfully7937 falls back to calling .count before rendering begins7938 truncation7939 occurs after given number of bytes7940 is ignored by default7941 causes rows_expected to fall back to .count7942 excel sanitization7943 sanitizes dangerous characters at the beginning of a column7944 does not sanitize safe symbols at the beginning of a column7945 when dangerous characters are after a line break7946 does not append single quote to description7947Sidebars::Groups::Menus::SettingsMenu7948 #render?7949 when user cannot admin group7950 returns false7951 Menu items7952 General menu7953 behaves like access rights checks7954 is expected not to be nil7955 when the user does not have access7956 is expected to be nil7957 Integrations menu7958 behaves like access rights checks7959 is expected not to be nil7960 when the user does not have access7961 is expected to be nil7962 Projects menu7963 behaves like access rights checks7964 is expected not to be nil7965 when the user does not have access7966 is expected to be nil7967 Access Tokens7968 behaves like access rights checks7969 is expected not to be nil7970 when the user does not have access7971 is expected to be nil7972 Repository menu7973 behaves like access rights checks7974 is expected not to be nil7975 when the user does not have access7976 is expected to be nil7977 CI/CD menu7978 behaves like access rights checks7979 is expected not to be nil7980 when the user does not have access7981 is expected to be nil7982 Applications menu7983 behaves like access rights checks7984 is expected not to be nil7985 when the user does not have access7986 is expected to be nil7987 Packages & Registries7988 when packages feature is disabled7989 is expected to be nil7990 when packages feature is enabled7991 behaves like access rights checks7992 is expected not to be nil7993 when the user does not have access7994 is expected to be nil7995WorkItems::DeleteService7996 #execute7997 when user can delete the work item7998 is expected to be success7999 when there are errors preventing to delete the work item8000 is expected to be error8001 returns error messages8002 when user cannot delete the work item8003 is expected to be error8004 returns error messages8005Terraform::StateVersionPolicy8006 rules8007 no access8008 is expected to be disallowed :read_terraform_state8009 is expected to be disallowed :admin_terraform_state8010 developer8011 is expected to be allowed :read_terraform_state8012 is expected to be disallowed :admin_terraform_state8013 maintainer8014 is expected to be allowed :read_terraform_state8015 is expected to be allowed :admin_terraform_state8016MergeRequestUserEntity8017 #as_json8018 exposes needed attributes8019 when `status` is not preloaded8020 does not expose the availability attribute8021 when the user has not approved the merge-request8022 exposes that the user has not approved the MR8023 when the user has approved the merge-request8024 exposes that the user has approved the MR8025 when `status` is preloaded8026 exposes the availibility attribute8027 attention_requested8028 is expected to include {:attention_requested => true}8029 performance8030 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)8031Gitlab::Kubernetes::Helm::V2::InstallCommand8032 behaves like helm command generator8033 #generate_script8034 returns appropriate command8035 when rbac is true8036 behaves like helm command generator8037 #generate_script8038 returns appropriate command8039 when there is a pre-install script8040 behaves like helm command generator8041 #generate_script8042 returns appropriate command8043 when there is a post-install script8044 behaves like helm command generator8045 #generate_script8046 returns appropriate command8047 when there is no version8048 behaves like helm command generator8049 #generate_script8050 returns appropriate command8051 behaves like helm command8052 HELM_VERSION8053 is expected to match /\d+\.\d+\.\d+/8054 #env8055 is expected to be a kind of Hash8056 #rbac?8057 rbac is enabled8058 is expected to be truthy8059 rbac is not enabled8060 is expected to be falsey8061 #pod_resource8062 rbac is enabled8063 is expected to be an instance of Kubeclient::Resource8064 generates a pod that uses the tiller serviceAccountName8065 rbac is not enabled8066 is expected to be an instance of Kubeclient::Resource8067 generates a pod that uses the default serviceAccountName8068 #config_map_resource8069 returns a KubeClient resource with config map content for the application8070 #service_account_resource8071 rbac is enabled8072 generates a Kubeclient resource for the tiller ServiceAccount8073 rbac is not enabled8074 generates nothing8075 #cluster_role_binding_resource8076 rbac is enabled8077 generates a Kubeclient resource for the ClusterRoleBinding for tiller8078 binds the account in #service_account_resource8079 rbac is not enabled8080 generates nothing8081ReleaseSerializer8082 #represent8083 when a single object is being serialized8084 serializes the label object8085 when multiple objects are being serialized8086 serializes the array of releases8087projects/hooks/edit8088 renders webhook page with "Recent events"8089 webhook is rate limited8090 renders alert8091 webhook is permanently disabled8092 renders alert8093 webhook is temporarily disabled8094 renders alert8095Ci::PipelineArtifacts::CoverageReportService8096 #execute8097 when pipeline has coverage reports8098 when pipeline is finished8099 creates a pipeline artifact8100 persists the default file name8101 sets expire_at to 1 week8102 when pipeline artifact has already been created8103WARNING: Using `expect { }.not_to raise_error(SpecificErrorClass)` risks false positives, since literally any other error would cause the expectation to pass, including those raised by Ruby (e.g. `NoMethodError`, `NameError` and `ArgumentError`), meaning the code you are intending to test may not even get reached. Instead consider using `expect { }.not_to raise_error` or `expect { }.to raise_error(DifferentSpecificErrorClass)`. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /builds/gitlab-org/gitlab/spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb:41:in `block (5 levels) in <top (required)>'.8104 do not raise an error and do not persist the same artifact twice8105 when pipeline is running and coverage report does not exist8106 does not persist data8107Clusters::Cleanup::ProjectNamespaceWorker8108 #perform8109 when cluster.cleanup_status is cleanup_removing_project_namespaces8110 calls Clusters::Cleanup::ProjectNamespaceService8111 behaves like cluster cleanup worker base specs8112 transitions to errored if sidekiq retries exhausted8113 when exceeded the execution limit8114 logs the error8115 when cluster.cleanup_status is not cleanup_removing_project_namespaces8116 does not call Clusters::Cleanup::ProjectNamespaceService8117Gitlab::HealthChecks::Redis::TraceChunksCheck8118 #metrics8119 Check is passing8120 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 1})8121 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})8122 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})8123 Check is misbehaving8124 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})8125 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})8126 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})8127 Check is timeouting8128 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})8129 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 1})8130 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})8131 #readiness8132 Check returns ok8133 is expected to have attributes {:success => true}8134 Check is misbehaving8135 is expected to have attributes {:message => "unexpected Trace_chunks check result: error!", :success => false}8136 Check is timeouting8137 is expected to have attributes {:message => "Trace_chunks check timed out", :success => false}8138 Check is raising an unhandled exception8139 is expected to have attributes {:message => "unexpected Trace_chunks check result: unexpected error", :success => false}8140Gitlab::ImportExport::Group::ObjectBuilder8141 labels8142 finds the existing group label8143 creates a new label8144 when description is an empty string8145 finds the existing group label8146 milestones8147 finds the existing group milestone8148 creates a new milestone8149 #initialize8150 when attributes contain description as empty string8151 converts empty string to nil8152Gitlab::WikiPages::FrontMatterParser8153 #parse8154 there is front matter8155 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}8156 there is no content8157 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}8158 there is no front_matter8159 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}8160 is expected to have attributes {:reason => :no_match}8161 the feature flag is disabled8162 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)}8163 the feature flag is enabled for the gated object8164 is expected to have attributes {:content => "This is the content\n", :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]}), :reason => (be nil)}8165 the end divider is ...8166 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}8167 the front-matter is not a mapping8168 is expected to have attributes {:reason => :not_mapping}8169 there is nothing in the front-matter block8170 is expected to have attributes {:reason => :no_match}8171 there is a string in the YAML block8172 is expected to have attributes {:reason => :not_mapping}8173 there is dangerous YAML in the block8174 is expected to have attributes {:error => (be present), :reason => :parse_error}8175 there is acceptably long YAML in the front-matter block8176 is expected to have attributes {:front_matter => (include {:title => (be present)})}8177 there is suspiciously long YAML in the front-matter block8178 is expected to have attributes {:reason => :too_long}8179 TOML front matter8180 is expected to have attributes {:reason => :not_yaml}8181 TOML style fences, advertised as YAML8182 is expected to have attributes {:front_matter => (include {:title => "My title"})}8183 YAML, advertised as something else8184 is expected to have attributes {:reason => :not_yaml}8185 there is text content in the YAML block, in comments8186 is expected to have attributes {:front_matter => (include {:foo => 1})}8187 there is text content in the YAML block8188 is expected to have attributes {:reason => :not_mapping}8189RuboCop::Cop::CodeReuse::Worker8190 flags the use of a worker in a controller8191 flags the use of a worker in an API8192 flags the use of a worker in a Finder8193 flags the use of a worker in a Presenter8194 flags the use of a worker in a Serializer8195 flags the use of a worker in a model class method8196WorkerAttributes8197 .data_consistency8198 with valid data_consistency8199 returns correct data_consistency8200 when data_consistency is not provided8201 defaults to :always8202 with invalid data_consistency8203 raise exception8204 when feature_flag is provided8205 returns correct feature flag value8206 .idempotent?8207 when the worker is idempotent8208 is expected to be truthy8209 when the worker is not idempotent8210 is expected to be falsey8211 .deduplicate8212 sets deduplication_strategy and deduplication_options8213 #deduplication_enabled?8214 when no feature flag is set8215 is expected to eq true8216 when feature flag is set8217 when the FF is enabled8218 is expected to eq true8219 when the FF is disabled8220 is expected to eq false8221Banzai::ReferenceParser::MentionedGroupParser8222 #gather_references8223 when the link has a data-group attribute8224 using an existing group ID where user does not have access8225 returns empty array8226 using an existing group ID8227 returns groups8228 using a non-existing group ID8229 returns an empty Array8230Gitlab::Graphql::KnownOperations8231 #from_query8232 query_string: "query { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="anonymous">8233 returns known operation name from GraphQL Query8234 query_string: "query fuzzyyy { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="unknown">8235 returns known operation name from GraphQL Query8236 query_string: "query foo { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="foo">8237 returns known operation name from GraphQL Query8238 #operations8239 returns array of known operations8240 Operation#to_caller_id8241 query_string: "query { helloWorld }", expected: "graphql:anonymous"8242 formats operation name for caller_id metric property8243 query_string: "query foo { helloWorld }", expected: "graphql:foo"8244 formats operation name for caller_id metric property8245 Opeartion#query_urgency8246 returns the associated query urgency8247 .default8248 returns a memoization of values from webpack8249Gitlab::GlobalId8250 .build8251 returns a standard GlobalId if only object is passed8252 returns a GlobalId from params8253 returns a GlobalId from object and `id` param8254 returns a GlobalId from object and `model_name` param8255 returns an error if model_name and id are not able to be determined8256 .as_global_id8257 is the identify function on GlobalID instances8258 wraps URI::GID in GlobalID8259 cannot coerce Integers without a model name8260 can coerce Integers with a model name8261 rejects any other value8262profiles/keys/_form.html.haml8263 when the form partial is used8264 renders the form with the correct action8265 has the key field8266 has the title field8267 has the expires at field8268 has the validation warning8269 has the submit button8270Ci::AfterRequeueJobService8271 behaves like processing subsequent skipped jobs8272 marks subsequent skipped jobs as processable8273 when there is a job need from the same stage8274 behaves like processing subsequent skipped jobs8275 marks subsequent skipped jobs as processable8276 behaves like processing the same stage job8277 marks subsequent skipped jobs as processable8278 when the pipeline is a downstream pipeline and the bridge is depended8279 marks source bridge as pending8280LimitedCapacity::JobTracker8281 #register8282 adds jid to the set8283 returns false if the jid was not added8284 #remove8285 removes jid from the set8286 #clean_up8287 with running jobs8288 does not remove the jid from the set8289 does only one Redis call to get the job ids8290 with completed jobs8291 removes the jid from the set8292 gets the job ids, removes them, and updates the counter with only two Redis calls8293Types::QueryType8294 is called Query8295 has the expected fields8296 namespace field8297 finds namespaces by full path8298 project field8299 finds projects by full path8300 metadata field8301 returns metadata8302 issue field8303 finds an issue by it's gid8304 merge_request field8305 finds a merge_request by it's gid8306 usage_trends_measurements field8307 returns usage trends measurements8308 runner field8309 is expected to have graphql type Types::Ci::RunnerType8310 runners field8311 is expected to have graphql type #<Class:0x00007f3e86a109e8>8312 runner_platforms field8313 returns runner platforms8314 runner_setup field8315 returns runner setup instructions8316 container_repository field8317 is expected to have graphql type Types::ContainerRepositoryDetailsType8318 package field8319 is expected to have graphql type Types::Packages::PackageDetailsType8320 timelogs field8321 returns timelogs8322 boardList field8323 finds a board list by its gid8324Users::RejectService8325 #execute8326 failures8327 when the executor user is not allowed to reject users8328 returns error result8329 when the executor user is an admin in admin mode8330 when user is not in pending approval state8331 returns error result8332 success8333 when the executor user is an admin in admin mode8334 deletes the user8335 emails the user on rejection8336 logs rejection in application logs8337 audit events8338 when not licensed8339 does not log any audit event8340Projects::ContainerRepository::ThirdParty::DeleteTagsService8341 #execute8342 with tags to delete8343 deletes the tags by name8344 succeeds when tag delete returns 4048345 with failures8346 when the dummy manifest generation fails8347 is expected to eq {:message=>"could not generate manifest", :status=>:error}8348 when updating tags fails8349 all tag updates fail8350 is expected to eq {:message=>"could not delete tags", :status=>:error}8351 a single tag update fails8352 is expected to eq {:deleted=>["A"], :status=>:success}8353 with empty tags8354 does not remove anything8355Packages::Debian::GroupArchitecture8356 behaves like Debian Distribution Architecture8357 relationships8358 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => architectures8359 is expected to have many files class_name => Packages::Debian::GroupComponentFile inverse_of => architecture8360 validations8361 #distribution8362 is expected to validate that :distribution cannot be empty/falsy8363 #name8364 is expected to validate that :name cannot be empty/falsy8365 is expected to allow :name to be ‹"amd64"›8366 is expected to allow :name to be ‹"kfreebsd-i386"›8367 is expected not to allow :name to be ‹"-a"›8368 is expected not to allow :name to be ‹"AMD64"›8369 scopes8370 .ordered_by_name8371 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-02-04 17:24:06.682758000 +0000", updated_at: "2022-02-04 17:24:06.682758000 +0000", distribution_id: 20, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2022-02-04 17:24:06.688210993 +0000", updated_at: "2022-02-04 17:24:06.688210993 +0000", distribution_id: 20, name: "name2">8372 .with_distribution8373 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-02-04 17:24:06.682758000 +0000", updated_at: "2022-02-04 17:24:06.682758000 +0000", distribution_id: 20, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2022-02-04 17:24:06.688210993 +0000", updated_at: "2022-02-04 17:24:06.688210993 +0000", distribution_id: 20, name: "name2">8374 .with_name8375 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-02-04 17:24:06.682758000 +0000", updated_at: "2022-02-04 17:24:06.682758000 +0000", distribution_id: 20, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 3, created_at: "2022-02-04 17:24:06.754153180 +0000", updated_at: "2022-02-04 17:24:06.754153180 +0000", distribution_id: 21, name: "name1">8376Packages::Maven::CreatePackageService8377 #execute8378 with version8379 creates a new package with metadatum8380 behaves like assigns the package creator8381 assigns the package creator8382 without version8383 creates a new package with metadatum8384 behaves like assigns the package creator8385 assigns the package creator8386 path is missing8387 raises an error8388BulkImports::NdjsonPipeline8389 marks pipeline as ndjson8390 #deep_transform_relation!8391 transforms relation hash8392 when subrelations is an array8393 transforms each element of the array8394 when subrelation is a hash8395 transforms subrelation hash8396 when subrelation is nil8397 removes subrelation8398 #transform8399 calls relation factory8400 when data is nil8401 returns8402 when relation hash is nil8403 returns8404 #load8405 when object is not persisted8406 saves the object8407 when object is missing8408 returns8409 #relation_class8410 when relation name is pluralized8411 returns constantized class8412 when relation name is singularized8413 returns constantized class8414 #relation_key_override8415 when portable is group8416 returns group relation name override8417 when portable is project8418 returns group relation name override8419 #relation_factory8420 when portable is group8421 returns group relation factory8422 when portable is project8423 returns project relation factory8424Ci::MergeRequests::AddTodoWhenBuildFailsWorker8425 #perform8426 is labeled as idempotent8427 performs multiple times sequentially without raising an exception8428 executes todo service8429 when job does not exist8430 returns nil8431 when project does not exist8432 returns nil8433 when pipeline does not exist8434 returns nil8435seed production settings8436 GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN is set in the environment8437Saved Runner Registration Token8438Saved CI JWT signing key8439 writes the token to the database8440 GITLAB_PROMETHEUS_METRICS_ENABLED is set in the environment8441 GITLAB_PROMETHEUS_METRICS_ENABLED is true8442Saved Prometheus metrics enabled flag8443Saved CI JWT signing key8444 prometheus_metrics_enabled is set to true8445 GITLAB_PROMETHEUS_METRICS_ENABLED is false8446Saved Prometheus metrics enabled flag8447Saved CI JWT signing key8448 prometheus_metrics_enabled is set to false8449 GITLAB_PROMETHEUS_METRICS_ENABLED is default8450Saved CI JWT signing key8451 prometheus_metrics_enabled is set to true8452 CI JWT signing key8453Saved CI JWT signing key8454 writes valid RSA key to the database8455Resolvers::Terraform::StatesResolver8456 is expected to have nullable GraphQL type TerraformStateConnection8457 is expected to be truthy8458 #resolve8459 returns states associated with the agent8460 user does not have permission8461 is expected to be empty8462Resolvers::Terraform::StatesResolver.single8463 is expected to be < Resolvers::Terraform::StatesResolver8464 arguments8465 name8466 is expected to be present8467Gitlab::DependencyLinker::CartfileLinker8468 .support?8469 supports Cartfile8470 supports Cartfile.private8471 does not support other files8472 #link8473 links dependencies8474 links Git repos8475 links binary-only frameworks8476Ci::PrepareBuildService8477 #execute8478 build has unmet prerequisites8479 completes each prerequisite8480 enqueues the build8481 prerequisites fail to complete8482 drops the build8483 prerequisites raise an error8484 drops the build and notifies Sentry8485 build has no prerequisites8486 enqueues the build8487ClusterErrorEntity8488 #as_json8489 when connection_error is present8490 is expected to eq {:connection_error=>:connection_error, :metrics_connection_error=>nil, :node_connection_error=>nil}8491 when metrics_connection_error is present8492 is expected to eq {:connection_error=>nil, :metrics_connection_error=>:http_error, :node_connection_error=>nil}8493 when node_connection_error is present8494 is expected to eq {:connection_error=>nil, :metrics_connection_error=>nil, :node_connection_error=>:unknown_error}8495Gitlab::Email::AttachmentUploader8496 #execute8497 uploads all attachments and returns their links8498 with a signed message8499 uploads all attachments except the signature8500 with a signed message with mixed protocol prefix8501 uploads all attachments except the signature8502 with a message with no content type8503 uploads all attachments except the signature8504environments routing8505 routing environment folders8506 when using JSON format8507 correctly matches environment name and JSON format8508 when using HTML format8509 correctly matches environment name and HTML format8510 when using implicit format8511 correctly matches environment name8512BulkImports::Groups::Graphql::GetProjectsQuery8513 has a valid query8514 with invalid variables8515 raises an error8516 #data_path8517 returns data path8518 #page_info_path8519 returns pagination information path8520Gitlab::Prometheus::Adapter8521 #prometheus_adapter8522 prometheus integration can execute queries8523 return prometheus integration as prometheus adapter8524 with cluster with prometheus available8525 returns prometheus integration8526 prometheus integration can't execute queries8527 with cluster with prometheus disabled8528 returns nil8529 with cluster with prometheus available8530 returns application handling all environments8531 with cluster without prometheus installed8532 returns nil8533ProjectCustomAttribute8534 assocations8535 is expected to belong to project required: false8536 validations8537 is expected to validate that :project cannot be empty/falsy8538 is expected to validate that :key cannot be empty/falsy8539 is expected to validate that :value cannot be empty/falsy8540 is expected to validate that :key is case-sensitively unique within the scope of :project_id8541Banzai::ReferenceParser::MentionedUserParser8542 #gather_references8543 when the link has a data-group attribute8544 using an existing group ID8545 returns empty list of users8546 when the link has a data-project attribute8547 using an existing project ID8548 returns empty list of users8549 when the link has a data-user attribute8550 returns an Array of users8551Gitlab::Ci::Config::Entry::Jobs8552 .all_types8553 is expected to include Gitlab::Ci::Config::Entry::Hidden8554 is expected to include Gitlab::Ci::Config::Entry::Job8555 is expected to include Gitlab::Ci::Config::Entry::Bridge8556 .find_type8557 name: :".hidden_job", type: Gitlab::Ci::Config::Entry::Hidden8558 is expected to eq Gitlab::Ci::Config::Entry::Hidden8559 name: :".hidden_bridge", type: Gitlab::Ci::Config::Entry::Hidden8560 is expected to eq Gitlab::Ci::Config::Entry::Hidden8561 name: :regular_job, type: Gitlab::Ci::Config::Entry::Job8562 is expected to eq Gitlab::Ci::Config::Entry::Job8563 name: :my_trigger, type: Gitlab::Ci::Config::Entry::Bridge8564 is expected to eq Gitlab::Ci::Config::Entry::Bridge8565 name: :invalid_job, type: nil8566 is expected to eq nil8567 validations8568 when entry config value is correct8569 #valid?8570 is valid8571 when entry value is not correct8572 #errors8573 incorrect config value type8574 returns error about incorrect type8575 when job is invalid8576 reports error8577 when no visible jobs present8578 returns error about no visible jobs defined8579 .compose!8580 when valid job entries composed8581 #value8582 returns key value8583 #descendants8584 creates valid descendant nodes8585 #value8586 returns value of visible jobs only8587MergeRequests::ByApprovalsFinder8588 filter by no approvals8589 returns merge requests without approvals8590 filter by any approvals8591 returns merge requests approved by at least one user8592 filter by specific user approval8593 returns merge requests approved by specific user8594 filter by multiple user approval8595 returns merge requests approved by both users8596 limiting max conditional elements8597 returns merge requests approved by both users, considering limit of 2 being defined8598 with empty params8599 returns all merge requests8600Gitlab::Email::Message::InProductMarketing::Trial8601 public methods8602 series: 08603 returns value for series8604 #progress8605 on gitlab.com8606 is expected to eq "This is email 2 of 4 in the Trial series."8607 not on gitlab.com8608 is expected to include "This is email 2 of 4 in the Trial series" and "http://localhost/-/profile/notifications"8609 series: 18610 returns value for series8611 #progress8612 on gitlab.com8613 is expected to eq "This is email 3 of 4 in the Trial series."8614 not on gitlab.com8615 is expected to include "This is email 3 of 4 in the Trial series" and "http://localhost/-/profile/notifications"8616 series: 28617 returns value for series8618 #progress8619 on gitlab.com8620 is expected to eq "This is email 4 of 4 in the Trial series."8621 not on gitlab.com8622 is expected to include "This is email 4 of 4 in the Trial series" and "http://localhost/-/profile/notifications"8623Banzai::Filter::WikiLinkFilter8624 doesn't rewrite absolute links8625 doesn't rewrite links to project uploads8626 when links are rewritable8627 stores original url in the data-canonical-src attribute8628 when links are not rewritable8629 does not store original url in the data-canonical-src attribute8630 when links point to the relative wiki path8631 does not rewrite links8632 when links point to the uploads folder8633 with an "a" html tag8634 rewrites links8635 with "img" html tag8636 inside an "a" html tag8637 rewrites links8638 outside an "a" html tag8639 rewrites links8640 with "video" html tag8641 rewrites links8642 with "audio" html tag8643 rewrites links8644 invalid links8645 doesn't rewrite invalid invalid_links like http://:80808646 doesn't rewrite invalid invalid_links like http://8647 doesn't rewrite invalid invalid_links like http://:8080/path8648admin/application_settings/general.html.haml8649 sourcegraph integration8650 when sourcegraph feature is enabled8651 show the form8652 when sourcegraph feature is disabled8653 show the form8654 prompt user about registration features8655 when service ping is enabled8656 behaves like does not render registration features prompt8657 does not render a placeholder input with registration features message8658 with no license and service ping disabled8659 behaves like renders registration features prompt8660 renders a placeholder input with registration features message8661NoteDiffFile8662 associations8663 is expected to belong to diff_note required: false8664 validations8665 is expected to validate that :diff_note cannot be empty/falsy8666 .referencing_sha8667 finds note diff files by project and sha8668 excludes note diff files with the wrong project8669 excludes note diff files with the wrong sha8670PerformanceMonitoring::PrometheusPanel8671 #new8672 accepts old schema format8673 accepts new schema format8674 .from_json8675 creates a PrometheusPanelGroup object8676 validations8677 json_content is not a hash8678 is expected to raise ActiveModel::ValidationError8679 when title is missing8680 is expected to raise ActiveModel::ValidationError8681 when metrics are missing8682 is expected to raise ActiveModel::ValidationError8683 .id8684 returns hexdigest of group_title, type and title as the panel id8685AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker8686 is labeled as low urgency8687 behaves like refreshes user's project authorizations8688 #perform8689 refreshes user's authorized projects8690 when the user is not found8691 does nothing8692 behaves like an idempotent worker8693 is labeled as idempotent8694 performs multiple times sequentially without raising an exception8695 does not change authorizations when run twice8696JiraConnect::AppDataSerializer8697 #as_json8698 uses the subscription entity8699 includes a group path with already subscribed namespaces as skip_groups8700 is expected to include {:subscriptions_path => "/-/jira_connect/subscriptions"}8701 is expected to include {:login_path => "/-/jira_connect/users"}8702 when signed in8703 is expected to include {:login_path => nil}8704Banzai::ReferenceParser::MentionedProjectParser8705 #gather_references8706 when the link has a data-project attribute8707 using an existing project ID where user does not have access8708 returns empty Array8709 using an existing project ID8710 returns an Array of referenced projects8711 using a non-existing project ID8712 returns an empty Array8713Gitlab::StaticSiteEditor::Config::FileConfig::Entry::Mounts8714 validations8715 with a valid config8716 is expected to be valid8717 #value8718 returns mounts configuration8719 with an invalid config8720 is expected not to be valid8721 reports errors about wrong type8722 .default8723 returns default mounts8724Mattermost::Team8725 #all8726 for valid request8727 returns teams8728 for error message8729 raises an error with message8730 #create8731 for a new team8732 returns the new team8733 for existing team8734 raises an error with message8735 #delete8736 for an existing team8737 returns team status8738 for an unknown team8739 raises an error with message8740Gitlab::HookData::MergeRequestBuilder8741 #build8742 includes safe attribute8743 includes additional attrs8744 source key8745 contains project data8746 target key8747 contains project data8748 when the MR has an image in the description8749 sets the image to use an absolute URL8750admin/sessions/new.html.haml8751 internal admin user8752 shows enter password form8753 warns authentication not possible if password not set8754 omniauth authentication enabled8755 shows omniauth form8756 ldap authentication8757 is shown when enabled8758 is not shown when LDAP sign in is disabled8759Gitlab::Application8760 when parameters are logged8761 rails does not leak confidential parameters8762 input_url: "/", output_query: {}8763 is expected to eq {}8764 input_url: "/?safe=1", output_query: {"safe"=>"1"}8765 is expected to eq {"safe"=>"1"}8766 input_url: "/?private_token=secret", output_query: {"private_token"=>"[FILTERED]"}8767 is expected to eq {"private_token"=>"[FILTERED]"}8768 input_url: "/?mixed=1&private_token=secret", output_query: {"mixed"=>"1", "private_token"=>"[FILTERED]"}8769 is expected to eq {"mixed"=>"1", "private_token"=>"[FILTERED]"}8770 input_url: "/?note=secret¬eable=1&prefix_note=2", output_query: {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}8771 is expected to eq {"note"=>"[FILTERED]", "noteable"=>"1", "prefix_note"=>"2"}8772 input_url: "/?note[note]=secret&target_type=1", output_query: {"note"=>"[FILTERED]", "target_type"=>"1"}8773 is expected to eq {"note"=>"[FILTERED]", "target_type"=>"1"}8774 input_url: "/?safe[note]=secret&target_type=1", output_query: {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}8775 is expected to eq {"safe"=>{"note"=>"[FILTERED]"}, "target_type"=>"1"}8776Gitlab::HealthChecks::Redis::RateLimitingCheck8777 #metrics8778 Check is passing8779 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 1})8780 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 0})8781 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})8782 Check is misbehaving8783 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 0})8784 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 0})8785 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})8786 Check is timeouting8787 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 0})8788 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 1})8789 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})8790 #readiness8791 Check returns ok8792 is expected to have attributes {:success => true}8793 Check is misbehaving8794 is expected to have attributes {:message => "unexpected Rate_limiting check result: error!", :success => false}8795 Check is timeouting8796 is expected to have attributes {:message => "Rate_limiting check timed out", :success => false}8797 Check is raising an unhandled exception8798 is expected to have attributes {:message => "unexpected Rate_limiting check result: unexpected error", :success => false}8799Gitlab::Ci::Pipeline::Chain::Create8800 when pipeline is ready to be saved8801 saves a pipeline8802 does not break the chain8803 creates stages8804 when pipeline has validation errors8805 breaks the chain8806 appends validation error8807 tags persistence8808 without tags8809 extracts an empty tag list8810 with tags8811 bulk inserts tags8812 when the feature flag is disabled8813 follows the old code path8814Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver8815 #resolve8816 when requesting project count measurements8817 as an admin user8818 returns the records, latest first8819 as a non-admin user8820 raises ResourceNotAvailable error8821 as an unauthenticated user8822 raises ResourceNotAvailable error8823 when filtering by recorded_after and recorded_before8824 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 1, count: 1000, recorded_at: "2022-02-02 17:24:56.428303507 +0000", identifier: "projects">8825 when "incorrect" values are passed8826 is expected to be empty8827 when requesting pipeline counts by pipeline status8828 filter for pipelines_succeeded8829 is expected to eq [#<Analytics::UsageTrends::Measurement id: 3, count: 1000, recorded_at: "2022-02-02 17:24:56.690320525 +0000", identifier: "pipelines_succeeded">]8830 filter for pipelines_skipped8831 is expected to eq [#<Analytics::UsageTrends::Measurement id: 4, count: 1000, recorded_at: "2022-02-02 17:24:56.697778595 +0000", identifier: "pipelines_skipped">]8832 filter for pipelines_failed8833 is expected to be empty8834 filter for pipelines_canceled8835 is expected to be empty8836Gitlab::FeatureCategories8837 #valid?8838 returns true if category is known8839 #from_request8840 returns category from request when valid, otherwise returns nil8841 when request is not verified8842 returns nil8843 #categories8844 returns a set of the given categories8845 .load_from_yaml8846 creates FeatureCategories from feature_categories.yml file8847 .default8848 returns a memoization of load_from_yaml8849AuthorizedProjectsWorker8850 behaves like refreshes user's project authorizations8851 #perform8852 refreshes user's authorized projects8853 when the user is not found8854 does nothing8855 behaves like an idempotent worker8856 is labeled as idempotent8857 performs multiple times sequentially without raising an exception8858 does not change authorizations when run twice8859JiraConnect::SyncFeatureFlagsWorker8860 behaves like worker with data consistency8861 .get_data_consistency_feature_flag_enabled?8862 returns true8863 .get_data_consistency8864 returns correct data consistency8865 #perform8866 when object exists8867 calls the Jira sync service8868 when object does not exist8869 does not call the sync service8870Mutations::Todos::Restore8871 is expected to require graphql authorizations :update_todo8872 #resolve8873 restores a single todo8874 handles a todo which is already pending as expected8875 ignores requests for todos which do not belong to the current user8876 raises error for invalid GID8877Gitlab::Middleware::CompressedJson8878 #call8879 with collector route8880 behaves like decompress middleware8881 replaces input with a decompressed content8882 with collector route under relative url8883 behaves like decompress middleware8884 replaces input with a decompressed content8885 with some other route8886 keeps the original input8887 payload is too large8888 reads only limited size8889IrkerWorker#perform8890 local requests are not allowed8891 is expected to be falsey8892 connection fails8893 is expected to be falsey8894 connection successful8895 is expected to be truthy8896 new branch8897 sends a correct message with branches url8898 deleted branch8899 sends a correct message8900 new commits to existing branch8901 sends a correct message with a compare url8902RuboCop::Cop::Scalability::FileUploads8903 with required params8904 detects File in types array8905 detects File as type argument8906 with optional params8907 detects File in types array8908 detects File as type argument8909Grafana::Validator8910 validate!8911 does not raise an error8912 when query param "from" is not specified8913 behaves like processing error8914 raises a processing error8915 when query param "to" is not specified8916 behaves like processing error8917 raises a processing error8918 when the panel is not provided8919 behaves like processing error8920 raises a processing error8921 when the panel is not a graph8922 behaves like processing error8923 raises a processing error8924 when the panel is not a line graph8925 behaves like processing error8926 raises a processing error8927 when the query dashboard includes undefined variables8928 behaves like processing error8929 raises a processing error8930 when the expression contains unsupported global variables8931 behaves like processing error8932 raises a processing error8933 when the datasource is not proxyable8934 behaves like processing error8935 raises a processing error8936 when the datasource is not provided8937 does not raise an error8938 valid?8939 with valid arguments8940 is expected to equal true8941 with invalid arguments8942 is expected to equal false8943Security::CiConfiguration::SastIacBuildAction8944 with existing .gitlab-ci.yml8945 sast iac has not been included8946 template includes are an array8947 generates the correct YML8948 template include is not an array8949 generates the correct YML8950 secret_detection has been included8951 secret_detection template include are an array8952 generates the correct YML8953 secret_detection template include is not an array8954 generates the correct YML8955 with no .gitlab-ci.yml8956 autodevops disabled8957 generates the correct YML8958 with autodevops enabled8959 generates the correct YML8960SourcegraphHelper8961 #sourcegraph_url_message8962 with .com sourcegraph url8963 is expected to have text "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."8964 with custom sourcegraph url8965 is expected to have text "Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}. This feature is experimental."8966 when not limited by feature or public only8967 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."8968 when limited by feature8969 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and currently limited to certain projects."8970 when limited by public only8971 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and limited to public projects."8972Gitlab::ImportExport::Json::LegacyReader::File8973 behaves like import/export json legacy reader8974 #consume_attributes8975 when valid path is passed8976 no excluded attributes8977 returns the whole tree from parsed JSON8978 some attributes are excluded8979 returns hash without excluded attributes and relations8980 when invalid path is passed8981 raises an exception8982 #consume_relation8983 when valid path is passed8984 key has not been consumed8985 returns an Enumerator8986 value is nil8987 yields nothing to the Enumerator8988 value is an array8989 yields every relation value to the Enumerator8990 value is not array8991 yields the value with index 0 to the Enumerator8992 key has been consumed8993 yields nothing to the Enumerator8994 when invalid path is passed8995 raises an exception8996 #exist?8997 given valid path8998 is expected to equal true8999 given invalid path9000 is expected to equal false9001Gitlab::HookData::ProjectMemberBuilder9002 #build9003 data9004 on create9005 is expected to eq "user_add_to_team"9006 behaves like includes the required attributes9007 includes the required attributes9008 on update9009 is expected to eq "user_update_for_team"9010 behaves like includes the required attributes9011 includes the required attributes9012 on destroy9013 is expected to eq "user_remove_from_team"9014 behaves like includes the required attributes9015 includes the required attributes9016RuboCop::Cop::Graphql::ResolverType9017 adds an offense when there is no type annotation9018 does not add an offense for resolvers that have a type call9019 ignores type calls on other objects9020 does not add an offense unless the class is named using the Resolver convention9021Gitlab::GithubImport::Importer::PullRequestsMergedByImporter9022 is expected to includes the Gitlab::GithubImport::ParallelScheduling module9023 #representation_class9024 is expected to eq Gitlab::GithubImport::Representation::PullRequest9025 #importer_class9026 is expected to eq Gitlab::GithubImport::Importer::PullRequestMergedByImporter9027 #collection_method9028 is expected to eq :pull_requests_merged_by9029 #id_for_already_imported_cache9030 is expected to eq 19031 #each_object_to_import9032 fetches the merged pull requests data9033 skips cached merge requests9034NullifyIfBlank9035 attribute exists9036 attribute is blank9037 is expected to be nil9038 attribute is nil9039 is expected to be nil9040 attribute is not blank9041 is expected to eq "name"9042 attribute does not exist9043 is expected to raise ActiveModel::UnknownAttributeError9044Gitlab::GithubImport::Importer::LabelLinksImporter9045 #execute9046 creates the label links9047 #create_labels9048 inserts the label links in bulk9049 does not insert label links for non-existing labels9050 #find_target_id9051 returns the ID of the issuable to create the label link for9052Graphql::FieldSelection9053 can report on the paths that are selected9054 can serialize a field selection nicely9055gitlab:terraform_states9056 gitlab:terraform_states:migrate9057 invokes the migration helper to move files to object storage9058 an error is raised while migrating9059 logs the error9060RuboCop::Cop::Gitlab::Json9061 when ::JSON is called9062 registers an offense9063 when ActiveSupport::JSON is called9064 registers an offense9065Gitlab::Tracking9066 .options9067 when feature flag is disabled9068 when destination is Snowplow9069 returns useful client options9070 behaves like delegates to destination9071 delegates to Gitlab::Tracking::Destinations::Snowplow destination9072 when destination is SnowplowMicro9073 returns useful client options9074 behaves like delegates to destination9075 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination9076 .event9077 tracks errors9078 when destination is Snowplow9079 behaves like delegates to destination9080 delegates to Gitlab::Tracking::Destinations::Snowplow destination9081 when destination is SnowplowMicro9082 behaves like delegates to destination9083 delegates to Gitlab::Tracking::Destinations::SnowplowMicro destination9084devise/shared/_signin_box9085 Crowd form9086 is shown when Crowd is enabled9087 is not shown when Crowd is disabled9088Uploads::Local9089 model with uploads9090 #keys9091 returns keys9092 #delete_keys9093 deletes multiple data9094Ci::PipelineBridgeStatusService9095 #execute9096 when pipeline has upstream bridge9097 calls inherit_status_from_downstream on upstream bridge9098 when bridge job status raises state machine errors9099 tracks the exception9100Gitlab::Middleware::QueryAnalyzer9101 the PreventCrossDatabaseModification9102 #call9103 when there is a cross modification9104 detects cross modifications and tracks exception9105 when the detect_cross_database_modification is disabled9106 does not detect cross modifications9107 when there is no cross modification9108 does not log anything9109Types::Packages::Nuget::DependencyLinkMetadatumType9110 includes nuget dependency link metadatum fields9111Ci::TriggerPresenter9112 when user is not a trigger owner9113 #token9114 exposes only short token9115 #has_token_exposed?9116 does not have token exposed9117 when user is a trigger owner and builds admin9118 #token9119 exposes full token9120 #has_token_exposed?9121 has token exposed9122Gitlab::ErrorTracking::Processor::ContextPayloadProcessor9123 .call9124 merges the context payload into event payload9125Namespace::AggregationSchedule9126 is expected to belong to namespace required: false9127 #schedule_root_storage_statistics9128 when we can't obtain the lease9129 does not schedule the workers9130 when we can obtain the lease9131 schedules a root storage statistics after create9132 does not release the lease9133 only executes the workers once9134Gitlab::GitalyClient::Diff9135 is expected to respond to #from_path9136 is expected to respond to #to_path9137 is expected to respond to #old_mode9138 is expected to respond to #new_mode9139 is expected to respond to #from_id9140 is expected to respond to #to_id9141 is expected to respond to #patch9142 is expected to respond to #collapsed9143 is expected to respond to #too_large9144 #==9145 is expected to eq #<Gitlab::GitalyClient::Diff:0x00007f3e7525bc18 @from_path=".gitmodules", @to_path=".gitmodules", @ol...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", @overflow_marker=nil, @collapsed=false, @too_large=false>9146 is expected not to eq #<Gitlab::GitalyClient::Diff:0x00007f3e74a412d0 @from_path=".gitmodules", @to_path=".gitmodules", @ol...61d36efde08bad36b43687ee6bf0", @patch="a", @overflow_marker=nil, @collapsed=false, @too_large=false>9147Constraints::AdminConstrainer9148 #matches9149 application setting :admin_mode is enabled9150 when user is a regular user9151 forbids access9152 when user is an admin9153 admin mode is disabled9154 forbids access9155 admin mode is enabled9156 allows access9157 application setting :admin_mode is disabled9158 when user is a regular user9159 forbids access9160 when user is an admin9161 allows access9162Ci::PipelineCreation::StartPipelineService9163 #execute9164 calls the pipeline process service9165ErrorTracking::Collector::PayloadValidator9166 #valid?9167 with event fixtures9168 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event.json"9169 behaves like valid payload9170 is expected to be valid9171 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event.json"9172 behaves like valid payload9173 is expected to be valid9174 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/browser_event.json"9175 behaves like valid payload9176 is expected to be valid9177 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/parsed_event_nullbytes.json"9178 behaves like valid payload9179 is expected to be valid9180 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/python_event_repl.json"9181 behaves like valid payload9182 is expected to be valid9183 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_two_exception_event.json"9184 behaves like valid payload9185 is expected to be valid9186 event_fixture: "/builds/gitlab-org/gitlab/spec/fixtures/error_tracking/go_parsed_event.json"9187 behaves like valid payload9188 is expected to be valid9189 when empty9190 behaves like invalid payload9191 is expected not to be valid9192 when invalid9193 behaves like invalid payload9194 is expected not to be valid9195Types::Clusters::AgentTokenType9196 is expected to eq "ClusterAgentToken"9197 is expected to require graphql authorizations :read_cluster9198 is expected to have graphql fields :cluster_agent, :created_at, :created_by_user, :description, :id, :last_used_at, :name, and :status9199Gitlab::SampleDataTemplate9200 .all9201 returns all templates9202 .find9203 when there is a match9204 is expected to be a kind of Gitlab::SampleDataTemplate9205 when there is no match9206 is expected to equal nil9207 .archive_directory9208 is expected to be a kind of Pathname9209 validate all templates9210 sample has a valid archive9211 with valid parameters9212 can be imported9213RuboCop::Cop::UserAdmin9214 flags a method call9215 flags a method call with safe operator9216WaitableWorker9217 .bulk_perform_and_wait9218 schedules the jobs and waits for them to complete9219 inlines workloads <= 3 jobs9220 runs > 3 jobs using sidekiq and a waiter key9221 runs > 10 * timeout jobs using sidekiq and no waiter key9222 .bulk_perform_inline9223 runs the jobs inline9224 enqueues jobs if an error is raised9225 #perform9226 when the worker takes arguments9227 behaves like perform9228 notifies the JobWaiter when done if the key is provided9229 does not notify the JobWaiter when done if no key is provided9230 when the worker takes no arguments9231 behaves like perform9232 notifies the JobWaiter when done if the key is provided9233 does not notify the JobWaiter when done if no key is provided9234Resolvers::DesignManagement::VersionResolver9235 the current user is not authorized9236 raises an error on resolution9237 the current user is authorized9238 the id parameter is provided9239 returns the specified version9240Gitlab::GithubImport::ImportPullRequestWorker9241 #import9242 imports a pull request9243ExpirePipelineCacheWorker9244 #perform9245 executes the service9246 doesn't do anything if the pipeline not exist9247 with https://gitlab.com/gitlab-org/gitlab/-/issues/325291 resolved (PENDING: No reason given)9248 behaves like worker with data consistency9249 .get_data_consistency_feature_flag_enabled?9250 returns true9251 .get_data_consistency9252 returns correct data consistency9253Gitlab::Ci::Tags::BulkInsert9254 gem version9255 is expected to eq "9.0.0"9256 #insert!9257 without tags9258 is expected to be falsey9259 with tags9260 persists tags9261 with tags for only one job9262 persists tags9263BaseCountService9264 #relation_for_count9265 raises NotImplementedError9266 #count9267 returns the number of values9268 #uncached_count9269 returns the uncached number of values9270 #refresh_cache9271 refreshes the cache9272 #delete_cache9273 deletes the cache9274 #raw?9275 returns false9276 #cache_key9277 raises NotImplementedError9278 #cache_options9279 returns the default in options9280Gitlab::SidekiqMiddleware::WorkerContext::Client9281 #call9282 applies a context for jobs scheduled in batch9283 when the feature category is set in the context_proc9284 takes the feature category from the worker, not the caller9285 takes the feature category from the caller if the worker is not owned9286 does not set any explicit feature category for mailers9287 when the feature category is already set in the surrounding block9288 takes the feature category from the worker, not the caller9289 takes the feature category from the caller if the worker is not owned9290Gitlab::GithubImport::Representation::PullRequestReview9291 .from_api_response9292 does not set the user if the response did not include a user9293 behaves like a PullRequest review9294 returns an instance of PullRequest9295 .from_json_hash9296 does not set the user if the response did not include a user9297 does not fail when submitted_at is blank9298 behaves like a PullRequest review9299 returns an instance of PullRequest9300 #github_identifiers9301 returns a hash with needed identifiers9302Gitlab::TimeTrackingFormatter9303 #parse9304 positive durations9305 is expected to eq 120009306 negative durations9307 is expected to eq -120009308 durations with months9309 uses our custom conversions9310 #output9311 time_tracking_limit_to_hours setting is true9312 is expected to eq "49h 40m"9313 time_tracking_limit_to_hours setting is false9314 is expected to eq "1w 1d 1h 40m"9315 handles negative time input9316 is expected to eq "-1w 1d 1h 40m"9317JiraConnect::ForwardEventWorker9318 #perform9319 forwards the event and deletes the installation9320 when installation does not exist9321 does nothing9322 when installation does not have an instance_url9323 forwards the event including the auth header9324RuboCop::Cop::DefaultScope9325 does not flag the use of default_scope with a send receiver9326 flags the use of default_scope with a constant receiver9327 flags the use of default_scope with a nil receiver9328 flags the use of default_scope when passing arguments9329 flags the use of default_scope when passing a block9330 ignores the use of default_scope with a local variable receiver9331Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent9332 is expected to respond to #name9333 is expected to respond to #identifier9334 is expected to respond to #object_type9335 is expected to respond to #timestamp_projection9336 is expected to respond to #apply_query_customization9337Prometheus::PidProvider9338 .worker_id9339 when running in Sidekiq server mode9340 in a clustered setup9341 is expected to eq "sidekiq_123"9342 in a single process setup9343 is expected to eq "sidekiq"9344 when running in Puma mode9345 when cluster worker id is specified in process name9346 is expected to eq "puma_1"9347 when no worker id is specified in process name9348 is expected to eq "puma_master"9349 when running in unknown mode9350 is expected to eq "process_546"9351Gitlab::Kubernetes::KubectlCmd9352 .delete9353 constructs string properly9354 .apply_file9355 without optional args9356 requires filename to be present9357 constructs string properly9358 with optional args9359 constructs command properly with many args9360 constructs command properly with single arg9361 .api_resources9362 constructs string properly9363 .delete_crds_from_group9364 constructs string properly9365RequestAwareEntity9366 includes URL helpers9367 includes method for checking abilities9368 fetches request from options9369Import::ProviderRepoSerializer9370 #represent9371 raises an error if invalid provider supplied9372 provider: :github, class_name: "Import::GithubishProviderRepoEntity"9373 uses correct entity class9374 provider: :gitea, class_name: "Import::GithubishProviderRepoEntity"9375 uses correct entity class9376 provider: :bitbucket, class_name: "Import::BitbucketProviderRepoEntity"9377 uses correct entity class9378 provider: :bitbucket_server, class_name: "Import::BitbucketServerProviderRepoEntity"9379 uses correct entity class9380 provider: :fogbugz, class_name: "Import::FogbugzProviderRepoEntity"9381 uses correct entity class9382projects/commits/show.html.haml9383 tree controls9384 renders atom feed button with matching path9385Gitlab::Ci::Status::WaitingForResource9386 #text9387 is expected to eq "waiting"9388 #label9389 is expected to eq "waiting for resource"9390 #icon9391 is expected to eq "status_pending"9392 #favicon9393 is expected to eq "favicon_pending"9394 #group9395 is expected to eq "waiting-for-resource"9396 #details_path9397 is expected to be nil9398Gitlab::Import::DatabaseHelpers9399 .insert_and_return_id9400 returns the ID returned by the query9401Gitlab::Audit::NullAuthor9402 .for9403 returns an DeletedAuthor9404 returns an UnauthenticatedAuthor when id equals -19405 returns a CiRunnerTokenAuthor when details contain runner registration token9406 #current_sign_in_ip9407 is expected to be nil9408Resolvers::UserResolver9409 #resolve9410 raises an ArgumentError when both an ID and username are provided9411 when neither an ID or a username is provided9412 raises an ArgumentError9413 by username9414 returns the correct user9415 by ID9416 returns the correct user9417Gitlab::Auth::Activity9418 .each_counter9419 has all static counters defined9420 has all static incrementers defined9421 has all counters starting with `user_`9422 yields counter method, name and description9423Packages::Debian::FindOrCreateIncomingService9424 #execute9425 run once9426 creates a new package9427 behaves like assigns the package creator9428 assigns the package creator9429 run twice9430 returns the same object9431TermAgreement9432 validations9433 is expected to validate that :term cannot be empty/falsy9434 is expected to validate that :user cannot be empty/falsy9435 .accepted9436 only includes accepted terms9437Gitlab::Git::WikiPageVersion9438 #author9439 user exists in gitlab9440 returns the user9441 user does not exist in gitlab9442 returns nil9443Ci::DailyBuildGroupReportResultEntity9444 #as_json9445 is expected to include :date9446 is expected not to include :group_name9447 is expected to include :coverage9448 when given param_type is not allowed9449 is expected not to include :coverage9450 is expected not to include :something_else9451Gitlab::EmptySearchResults9452 #objects9453 returns an empty array9454 #formatted_count9455 returns a zero9456 #highlight_map9457 returns an empty hash9458 #aggregations9459 returns an empty array9460Resolvers::GroupResolver9461 #resolve9462 batch-resolves groups by full path9463 resolves an unknown full_path to nil9464 treats group full path as case insensitive9465Import metrics on production seed9466 imports all prometheus metrics9467Types::DependencyProxy::ImageTtlGroupPolicyType9468 is expected to eq "DependencyProxyImageTtlGroupPolicy"9469 is expected to eq "Group-level Dependency Proxy TTL policy settings"9470 is expected to require graphql authorizations :read_dependency_proxy9471 includes dependency proxy image ttl policy fields9472Gitlab::SidekiqMiddleware::SizeLimiter::Server9473 yields block9474 calls the Compressor9475Gitlab::Graphql::GenericTracing9476 updates graphql histogram with expected labels9477 when labkit tracing is enabled9478 yields with labkit tracing9479 when labkit tracing is disabled9480 yields without measurement9481Gitlab::ImportFormatter9482 #comment9483 creates the correct string9484 #author_line9485 returns the correct string with provided author name9486 returns the correct string with Anonymous name if author not provided9487 #assignee_line9488 returns the correct string with provided author name9489 returns the correct string with Anonymous name if author not provided9490Types::RangeInputType9491 follows expected subtyping relationships for instances9492 follows expected subtyping relationships for classes9493 parameterized on Integer9494 accepts start and end9495 rejects inverted ranges9496Gitlab::Usage::Metrics::Instrumentations::RedisHLLMetric9497 raise exception if events options is not present9498 for 28d9499 behaves like a correct instrumented metric value9500 has correct value9501 for 7d9502 behaves like a correct instrumented metric value9503 has correct value9504Analytics::CycleAnalytics::StageEntity9505 exposes start and end event descriptions9506 exposes start_event and end_event objects9507Gitlab::RuggedInstrumentation9508 .query_time9509 increments query times9510 .increment_query_count9511 tracks query counts9512Gitlab::StringRegexMarker9513 #mark9514 with a single occurrence9515 marks the match9516 with multiple occurrences9517 marks the matches9518 with a Gitlab::UntrustedRegexp9519 marks the matches9520Gitlab::Ci::Ansi2json::Parser9521 bold?9522 returns true if style mask matches bold format9523 returns false if style mask does not match bold format9524 matching_formats9525 returns matching formats given a style mask9526 returns an empty array if no formats match the style mask9527FutureDateValidator9528 past date9529 is expected not to be valid9530 current date9531 is expected to be valid9532 future date9533 is expected to be valid9534RepositoryCheck::ClearWorker9535 clears repository check columns9536Types::Packages::PackageTagType9537 is expected to eq "PackageTag"9538 includes all the package tag fields9539Types::IssuableStateEnum9540 is expected to eq "IssuableState"9541 behaves like issuable state9542 exposes all the existing issuable states9543Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::OrderValuesLoaderStrategy9544 #initializer_columns9545 returns NULLs for each ORDER BY columns9546 when an SQL expression is given9547 when the sql_type attribute is missing9548 raises error9549 when the sql_type_attribute is present9550 returns the initializer columns9551Types::Ci::TestReportTotalType9552 is expected to eq "TestReportTotal"9553 contains attributes related to a pipeline test report summary9554InstanceMetadataPolicy9555 for any logged-in user9556 is expected to be allowed :read_instance_metadata9557 for anonymous users9558 is expected not to be allowed :read_instance_metadata9559Gitlab::Usage::Metrics::Instrumentations::HostnameMetric9560 behaves like a correct instrumented metric value9561 has correct value9562Types::CommitActionModeEnum9563 is expected to eq "CommitActionMode"9564 exposes all the existing commit actions9565Types::CustomerRelations::OrganizationType9566 is expected to eq "CustomerRelationsOrganization"9567 is expected to have graphql fields :id, :name, :default_rate, :description, :created_at, and :updated_at9568 is expected to require graphql authorizations :read_crm_organization9569Evidences::ReleaseSerializer9570 represents an Evidence::ReleaseEntity entity9571Types::BranchType9572 is expected to eq "Branch"9573 is expected to have graphql fields :name and :commit9574Types::Ci::PipelineMessageType9575 is expected to eq "PipelineMessage"9576 contains attributes related to a pipeline message9577Sidebars::MenuItem9578 includes by default aria-label attribute set to the title9579 when aria-label is overridde during initialization9580 sets the aria-label to the new attribute9581TodosDestroyer::PrivateFeaturesWorker9582 calls the Todos::Destroy::PrivateFeaturesService with the params it was given9583Types::Ci::TestSuiteSummaryType9584 is expected to eq "TestSuiteSummary"9585 contains attributes related to a pipeline test report summary9586Types::Ci::TestReportSummaryType9587 is expected to eq "TestReportSummary"9588 contains attributes related to a pipeline test report summary9589Types::Ci::PipelineStatusEnum9590 exposes all pipeline states9591CodequalityReportsComparerEntity9592 #as_json9593 when base and head report have errors9594 contains correct compared codequality report details9595Gitlab::Database::BackgroundMigration::BatchMetrics9596 #time_operation9597 tracks the duration of the operation using monotonic time9598Gitlab::Redis::Wrapper9599 .instrumentation_class9600 raises a NameError9601Types::Ci::PipelineScopeEnum9602 exposes all pipeline scopes9603Gitlab::Kubernetes::ClusterRoleBinding9604 #generate9605 builds a Kubeclient Resource9606Gitlab::SidekiqStatus::ServerMiddleware9607 #call9608 stops tracking of a job upon completion9609TrendingProjectsWorker9610 #perform9611 refreshes the trending projects9612Knapsack report was generated. Preview:9613{9614 "spec/models/application_setting_spec.rb": 177.36967393399982,9615 "spec/services/auth/container_registry_authentication_service_spec.rb": 109.42727044000003,9616 "spec/lib/gitlab/regex_spec.rb": 22.486648440999943,9617 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 83.63845160000028,9618 "spec/services/projects/fork_service_spec.rb": 87.78671782500032,9619 "spec/models/integrations/slack_spec.rb": 54.52569516299991,9620 "spec/finders/deployments_finder_spec.rb": 70.37829052300003,9621 "spec/lib/gitlab/ci/status/build/factory_spec.rb": 46.03288587099996,9622 "spec/services/issues/create_service_spec.rb": 41.18817613900001,9623 "spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb": 58.116019524999956,9624 "spec/lib/gitlab/import_export/members_mapper_spec.rb": 32.67791844000021,9625 "spec/lib/gitlab/ci/config/entry/job_spec.rb": 5.321236950000184,9626 "spec/lib/release_highlights/validator_spec.rb": 33.899166052000055,9627 "spec/helpers/groups_helper_spec.rb": 15.930220073000328,9628 "spec/services/ci/process_sync_events_service_spec.rb": 30.42662108200011,9629 "spec/models/ability_spec.rb": 19.735404816000027,9630 "spec/graphql/mutations/merge_requests/set_labels_spec.rb": 24.17070738700022,9631 "spec/services/web_hook_service_spec.rb": 13.754963558000327,9632 "spec/models/merge_request/cleanup_schedule_spec.rb": 20.098906323999927,9633 "spec/lib/gitlab/legacy_github_import/issue_formatter_spec.rb": 16.00479728900018,9634 "spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb": 13.78068256000006,9635 "spec/presenters/clusters/cluster_presenter_spec.rb": 17.734598752000238,9636 "spec/services/submodules/update_service_spec.rb": 17.14844895100032,9637 "spec/lib/gitlab/ci/runner/backoff_spec.rb": 3.3297778229998585,9638 "spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb": 18.762093550999907,9639 "spec/services/projects/operations/update_service_spec.rb": 10.499866824000037,9640 "spec/lib/gitlab/search/abuse_detection_spec.rb": 2.5537114460003068,9641 "spec/lib/gitlab/ci/trace/stream_spec.rb": 3.5867342550000103,9642 "spec/services/issuable/clone/attributes_rewriter_spec.rb": 16.069597963999968,9643 "spec/models/prometheus_metric_spec.rb": 3.991093147999891,9644 "spec/services/git/tag_hooks_service_spec.rb": 12.694045225000082,9645 "spec/lib/gitlab/usage_data_counters/package_event_counter_spec.rb": 1.9814592039997478,9646 "spec/lib/banzai/reference_parser/commit_range_parser_spec.rb": 11.255155162999927,9647 "spec/helpers/notes_helper_spec.rb": 8.048029712000243,9648 "spec/workers/packages/nuget/extraction_worker_spec.rb": 10.212878733999787,9649 "spec/lib/gitlab/ci/config/entry/environment_spec.rb": 1.8171612560004178,9650 "spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb": 2.804096098000173,9651 "spec/models/packages/conan/metadatum_spec.rb": 5.156548818999909,9652 "spec/views/groups/show.html.haml_spec.rb": 9.16140535500017,9653 "spec/lib/gitlab/multi_collection_paginator_spec.rb": 10.75360525799988,9654 "spec/graphql/mutations/namespace/package_settings/update_spec.rb": 7.988855395999963,9655 "spec/helpers/todos_helper_spec.rb": 6.275625561999732,9656 "spec/lib/api/helpers/caching_spec.rb": 5.383843673000229,9657 "spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb": 0.9676135439999598,9658 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 2.1363954949997606,9659 "spec/lib/gitlab/ci/status/build/cancelable_spec.rb": 6.98154357500016,9660 "spec/policies/issuable_policy_spec.rb": 7.29793132199984,9661 "spec/lib/gitlab/alert_management/payload/generic_spec.rb": 1.2573035450000134,9662 "spec/views/projects/merge_requests/_commits.html.haml_spec.rb": 7.386072375999902,9663 "spec/lib/gitlab/ci/build/rules_spec.rb": 1.522162205999848,9664 "spec/services/authorized_project_update/project_create_service_spec.rb": 7.951223757000207,9665 "spec/lib/gitlab/ci/config/entry/release_spec.rb": 2.6026910509999652,9666 "spec/lib/gitlab/ci/status/external/common_spec.rb": 6.257331507999879,9667 "spec/lib/gitlab/ci/pipeline/chain/ensure_resource_groups_spec.rb": 7.099597525000263,9668 "spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb": 7.456107398999848,9669 "spec/services/users/refresh_authorized_projects_service_spec.rb": 7.277356287000202,9670 "spec/lib/gitlab/diff/diff_refs_spec.rb": 5.619022865999796,9671 "spec/models/performance_monitoring/prometheus_dashboard_spec.rb": 5.354807277999953,9672 "spec/services/merge_requests/resolved_discussion_notification_service_spec.rb": 6.851274285999807,9673 "spec/services/system_notes/commit_service_spec.rb": 4.9755536550001125,9674 "spec/services/releases/destroy_service_spec.rb": 7.612321261000034,9675 "spec/views/notify/pipeline_fixed_email.text.erb_spec.rb": 7.460458437999932,9676 "spec/lib/kramdown/parser/atlassian_document_format_spec.rb": 1.1291881669999384,9677 "spec/lib/gitlab/web_hooks/recursion_detection_spec.rb": 5.003458353000042,9678 "spec/lib/gitlab/git/rugged_impl/use_rugged_spec.rb": 4.726573497000118,9679 "spec/lib/gitlab/database/load_balancing/setup_spec.rb": 2.2426014140000916,9680 "spec/models/board_project_recent_visit_spec.rb": 5.448194163000153,9681 "spec/lib/gitlab/database/background_migration/batched_job_spec.rb": 2.2537704239998675,9682 "spec/models/integrations/youtrack_spec.rb": 1.0692608990002554,9683 "spec/models/ci/unit_test_spec.rb": 3.9187521149997337,9684 "spec/services/error_tracking/issue_details_service_spec.rb": 2.792395617999773,9685 "spec/lib/gitlab/ci/config/entry/default_spec.rb": 1.0954563790000975,9686 "spec/lib/gitlab/ci/artifact_file_reader_spec.rb": 5.061008880999907,9687 "spec/lib/gitlab/import_export/shared_spec.rb": 2.92660577200013,9688 "spec/services/groups/deploy_tokens/create_service_spec.rb": 3.0644826450002256,9689 "spec/models/users_statistics_spec.rb": 4.650774510999781,9690 "spec/models/bulk_imports/file_transfer/project_config_spec.rb": 0.9710282840001128,9691 "spec/services/deployments/update_service_spec.rb": 5.436713434000012,9692 "spec/services/jira_import/cloud_users_mapper_service_spec.rb": 4.2064119309998205,9693 "spec/graphql/mutations/alert_management/create_alert_issue_spec.rb": 3.316296674000114,9694 "spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb": 3.6567240780000247,9695 "spec/lib/gitlab/api_authentication/token_locator_spec.rb": 1.6958194799999546,9696 "spec/lib/event_filter_spec.rb": 3.52301121399978,9697 "spec/lib/csv_builder_spec.rb": 0.9925517829997261,9698 "spec/lib/sidebars/groups/menus/settings_menu_spec.rb": 1.8083142049999879,9699 "spec/services/work_items/delete_service_spec.rb": 1.1905347640004038,9700 "spec/policies/terraform/state_version_policy_spec.rb": 2.590490038000098,9701 "spec/serializers/merge_request_user_entity_spec.rb": 2.5667772390006576,9702 "spec/lib/gitlab/kubernetes/helm/v2/install_command_spec.rb": 0.5873493730005066,9703 "spec/serializers/release_serializer_spec.rb": 3.932156353999744,9704 "spec/views/projects/hooks/edit.html.haml_spec.rb": 1.5083479879995139,9705 "spec/services/ci/pipeline_artifacts/coverage_report_service_spec.rb": 3.68586706699989,9706 "spec/workers/clusters/cleanup/project_namespace_worker_spec.rb": 4.258108678999633,9707 "spec/lib/gitlab/health_checks/redis/trace_chunks_check_spec.rb": 0.8246601509999891,9708 "spec/lib/gitlab/import_export/group/object_builder_spec.rb": 1.3603840960004163,9709 "spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb": 0.8077564220002387,9710 "spec/rubocop/cop/code_reuse/worker_spec.rb": 0.5161503560002529,9711 "spec/workers/concerns/worker_attributes_spec.rb": 0.5254866350005614,9712 "spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb": 3.1318967830002293,9713 "spec/lib/gitlab/graphql/known_operations_spec.rb": 0.4874876170006246,9714 "spec/lib/gitlab/global_id_spec.rb": 0.7706135639991771,9715 "spec/views/profiles/keys/_form.html.haml_spec.rb": 0.5113676359997044,9716 "spec/services/ci/after_requeue_job_service_spec.rb": 2.719406751999486,9717 "spec/workers/concerns/limited_capacity/job_tracker_spec.rb": 0.48844102600014594,9718 "spec/graphql/types/query_type_spec.rb": 0.6265341910002462,9719 "spec/services/users/reject_service_spec.rb": 2.3813194770000337,9720 "spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb": 0.822975821,9721 "spec/models/packages/debian/group_architecture_spec.rb": 1.017836482000348,9722 "spec/services/packages/maven/create_package_service_spec.rb": 3.357795441000235,9723 "spec/lib/bulk_imports/ndjson_pipeline_spec.rb": 1.3309113579998666,9724 "spec/workers/ci/merge_requests/add_todo_when_build_fails_worker_spec.rb": 1.2512611410002137,9725 "spec/db/production/settings_spec.rb": 3.542187983000076,9726 "spec/graphql/resolvers/terraform/states_resolver_spec.rb": 1.4231523129992638,9727 "spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb": 0.37298107300011907,9728 "spec/services/ci/prepare_build_service_spec.rb": 3.069521125000392,9729 "spec/serializers/cluster_error_entity_spec.rb": 2.0790154120004445,9730 "spec/lib/gitlab/email/attachment_uploader_spec.rb": 2.059479882999767,9731 "spec/routing/environments_spec.rb": 1.7756361669999023,9732 "spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb": 0.48214475700024195,9733 "spec/lib/gitlab/prometheus/adapter_spec.rb": 0.8104318920004516,9734 "spec/models/project_custom_attribute_spec.rb": 0.9449262750003982,9735 "spec/lib/banzai/reference_parser/mentioned_user_parser_spec.rb": 3.0586337660006393,9736 "spec/lib/gitlab/ci/config/entry/jobs_spec.rb": 0.754021904000183,9737 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 2.6283154760003526,9738 "spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb": 0.49845637700036605,9739 "spec/lib/banzai/filter/wiki_link_filter_spec.rb": 0.9070010469995395,9740 "spec/views/admin/application_settings/general.html.haml_spec.rb": 2.624030715999652,9741 "spec/models/note_diff_file_spec.rb": 2.85445365600026,9742 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.5177312960004201,9743 "spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb": 1.761469727000076,9744 "spec/serializers/jira_connect/app_data_serializer_spec.rb": 0.6647450680002294,9745 "spec/lib/banzai/reference_parser/mentioned_project_parser_spec.rb": 3.109485553999548,9746 "spec/lib/gitlab/static_site_editor/config/file_config/entry/mounts_spec.rb": 0.22401485899990803,9747 "spec/lib/mattermost/team_spec.rb": 0.781742683999255,9748 "spec/lib/gitlab/hook_data/merge_request_builder_spec.rb": 1.7603892360002646,9749 "spec/views/admin/sessions/new.html.haml_spec.rb": 1.3370025369995346,9750 "spec/config/application_spec.rb": 0.3018153259999963,9751 "spec/lib/gitlab/health_checks/redis/rate_limiting_check_spec.rb": 0.7817962629997055,9752 "spec/lib/gitlab/ci/pipeline/chain/create_spec.rb": 1.6682886019998477,9753 "spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb": 0.8873496490004982,9754 "spec/lib/gitlab/feature_categories_spec.rb": 0.3188987450002969,9755 "spec/workers/authorized_projects_worker_spec.rb": 1.6770948899993527,9756 "spec/workers/jira_connect/sync_feature_flags_worker_spec.rb": 0.5153153960000054,9757 "spec/graphql/mutations/todos/restore_spec.rb": 2.6758358239994777,9758 "spec/lib/gitlab/middleware/compressed_json_spec.rb": 0.37066805199992814,9759 "spec/workers/irker_worker_spec.rb": 1.5252238679995571,9760 "spec/rubocop/cop/scalability/file_uploads_spec.rb": 0.29855884600056015,9761 "spec/lib/grafana/validator_spec.rb": 0.484698336999827,9762 "spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb": 0.37616644199988514,9763 "spec/helpers/sourcegraph_helper_spec.rb": 0.2521138690008229,9764 "spec/lib/gitlab/import_export/json/legacy_reader/file_spec.rb": 0.7166146859999571,9765 "spec/lib/gitlab/hook_data/project_member_builder_spec.rb": 1.198075713000435,9766 "spec/rubocop/cop/graphql/resolver_type_spec.rb": 0.39399451200006297,9767 "spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb": 1.0115135530004409,9768 "spec/models/concerns/nullify_if_blank_spec.rb": 0.4997694860003321,9769 "spec/lib/gitlab/github_import/importer/label_links_importer_spec.rb": 2.288910582000426,9770 "spec/support_specs/graphql/field_selection_spec.rb": 0.14826462299970444,9771 "spec/tasks/gitlab/terraform/migrate_rake_spec.rb": 1.641646512999614,9772 "spec/rubocop/cop/gitlab/json_spec.rb": 0.3022763559993109,9773 "spec/lib/gitlab/tracking_spec.rb": 1.2953091989993482,9774 "spec/views/devise/shared/_signin_box.html.haml_spec.rb": 0.6120959220006625,9775 "spec/models/uploads/local_spec.rb": 1.2776069989995449,9776 "spec/services/ci/pipeline_bridge_status_service_spec.rb": 1.5730358259997956,9777 "spec/lib/gitlab/middleware/query_analyzer_spec.rb": 0.2966162960001384,9778 "spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb": 0.1522804329997598,9779 "spec/presenters/ci/trigger_presenter_spec.rb": 1.4812084200002573,9780 "spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb": 0.23163633900003333,9781 "spec/models/namespace/aggregation_schedule_spec.rb": 0.8710026989992912,9782 "spec/lib/gitlab/gitaly_client/diff_spec.rb": 0.8601123789994745,9783 "spec/lib/constraints/admin_constrainer_spec.rb": 1.1723493950003103,9784 "spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb": 0.7140448460004336,9785 "spec/lib/error_tracking/collector/payload_validator_spec.rb": 0.5853444419999505,9786 "spec/graphql/types/clusters/agent_token_type_spec.rb": 0.24268975899940415,9787 "spec/lib/gitlab/sample_data_template_spec.rb": 1.2556238710003527,9788 "spec/rubocop/cop/user_admin_spec.rb": 0.2570601679999527,9789 "spec/workers/concerns/waitable_worker_spec.rb": 0.5355474440002581,9790 "spec/graphql/resolvers/design_management/version_resolver_spec.rb": 1.1854352929995002,9791 "spec/workers/gitlab/github_import/import_pull_request_worker_spec.rb": 0.20855822999965312,9792 "spec/workers/expire_pipeline_cache_worker_spec.rb": 0.7646582440002021,9793 "spec/lib/gitlab/ci/tags/bulk_insert_spec.rb": 1.055987069999901,9794 "spec/services/base_count_service_spec.rb": 0.3878320320000057,9795 "spec/lib/gitlab/sidekiq_middleware/worker_context/client_spec.rb": 0.42908428000009735,9796 "spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb": 0.42123786000047403,9797 "spec/lib/gitlab/time_tracking_formatter_spec.rb": 0.4109898210008396,9798 "spec/workers/jira_connect/forward_event_worker_spec.rb": 0.5389486750000287,9799 "spec/rubocop/cop/default_scope_spec.rb": 0.26606148700011545,9800 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb": 0.3165296050001416,9801 "spec/lib/prometheus/pid_provider_spec.rb": 0.30810019500040653,9802 "spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb": 0.32517700500011415,9803 "spec/serializers/request_aware_entity_spec.rb": 0.31448727199949644,9804 "spec/serializers/import/provider_repo_serializer_spec.rb": 0.567189206999501,9805 "spec/views/projects/commits/show.html.haml_spec.rb": 0.980335159999413,9806 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.3840309739998702,9807 "spec/lib/gitlab/import/database_helpers_spec.rb": 0.708861054999943,9808 "spec/lib/gitlab/audit/null_author_spec.rb": 0.22096323999994638,9809 "spec/graphql/resolvers/user_resolver_spec.rb": 0.4233842909998202,9810 "spec/lib/gitlab/auth/activity_spec.rb": 0.3973186140001417,9811 "spec/services/packages/debian/find_or_create_incoming_service_spec.rb": 0.7183244430007107,9812 "spec/models/term_agreement_spec.rb": 0.6058448149997275,9813 "spec/lib/gitlab/git/wiki_page_version_spec.rb": 0.7164779540007657,9814 "spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.4459001889999854,9815 "spec/lib/gitlab/empty_search_results_spec.rb": 0.43239885000002687,9816 "spec/graphql/resolvers/group_resolver_spec.rb": 0.5023359440001514,9817 "spec/db/production/import_common_metrics_spec.rb": 0.44288549900011276,9818 "spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb": 0.2495754969995687,9819 "spec/lib/gitlab/sidekiq_middleware/size_limiter/server_spec.rb": 0.1375445169996965,9820 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.22448963899933005,9821 "spec/lib/gitlab/import_formatter_spec.rb": 0.21545008900011453,9822 "spec/graphql/types/range_input_type_spec.rb": 0.20967543000006117,9823 "spec/lib/gitlab/usage/metrics/instrumentations/redis_hll_metric_spec.rb": 0.3269788500001596,9824 "spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb": 0.3276325500000894,9825 "spec/lib/gitlab/rugged_instrumentation_spec.rb": 0.16939308400014852,9826 "spec/lib/gitlab/string_regex_marker_spec.rb": 0.2321721289999914,9827 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.28511487299965665,9828 "spec/validators/future_date_validator_spec.rb": 0.23291089899976214,9829 "spec/workers/repository_check/clear_worker_spec.rb": 0.6911787960007132,9830 "spec/graphql/types/packages/tag_type_spec.rb": 0.17049727399989933,9831 "spec/graphql/types/issuable_state_enum_spec.rb": 0.22364998899956845,9832 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/order_values_loader_strategy_spec.rb": 0.3229187609995279,9833 "spec/graphql/types/ci/test_report_total_type_spec.rb": 0.17986299299991515,9834 "spec/policies/instance_metadata_policy_spec.rb": 0.46299341800022376,9835 "spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb": 0.2303873789996942,9836 "spec/graphql/types/commit_action_mode_enum_spec.rb": 0.2657414149998658,9837 "spec/graphql/types/customer_relations/organization_type_spec.rb": 0.3310139689992866,9838 "spec/serializers/evidences/release_serializer_spec.rb": 0.24535143699995388,9839 "spec/graphql/types/branch_type_spec.rb": 0.1741523739992772,9840 "spec/graphql/types/ci/pipeline_message_type_spec.rb": 0.3250792700000602,9841 "spec/lib/sidebars/menu_item_spec.rb": 0.2529674170000362,9842 "spec/workers/todos_destroyer/private_features_worker_spec.rb": 0.14429616599954898,9843 "spec/graphql/types/ci/test_suite_summary_type_spec.rb": 0.17831446299987874,9844 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.3038448919996881,9845 "spec/graphql/types/ci/pipeline_status_enum_spec.rb": 0.13554987800034723,9846 "spec/serializers/codequality_reports_comparer_entity_spec.rb": 0.15155976599999121,9847 "spec/lib/gitlab/database/background_migration/batch_metrics_spec.rb": 0.11825601999953506,9848 "spec/lib/gitlab/redis/wrapper_spec.rb": 0.1535825749997457,9849 "spec/graphql/types/ci/pipeline_scope_enum_spec.rb": 0.12501498900019214,9850 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.18442767299984553,9851 "spec/lib/gitlab/sidekiq_status/server_middleware_spec.rb": 0.16582757500054868,9852 "spec/workers/trending_projects_worker_spec.rb": 0.137152407999565189853}9854Knapsack global time execution for tests: 24m 38s9855Pending: (Failures listed here are expected and do not affect your suite's status)9856 1) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths #upload_path behaves like matches the method pattern 9857 # No pattern provided, skipping.9858 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89859 2) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths #relative_path is relative9860 # Path not set, skipping.9861 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409862 3) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths .absolute_path behaves like matches the method pattern 9863 # No pattern provided, skipping.9864 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89865 4) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution behaves like builds correct paths .base_dir behaves like matches the method pattern 9866 # No pattern provided, skipping.9867 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89868 5) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 9869 # No pattern provided, skipping.9870 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89871 6) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths #relative_path is relative9872 # Path not set, skipping.9873 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409874 7) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 9875 # No pattern provided, skipping.9876 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89877 8) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::ProjectDistribution object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 9878 # No pattern provided, skipping.9879 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89880 9) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths #upload_path behaves like matches the method pattern 9881 # No pattern provided, skipping.9882 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89883 10) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths #relative_path is relative9884 # Path not set, skipping.9885 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409886 11) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths .absolute_path behaves like matches the method pattern 9887 # No pattern provided, skipping.9888 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89889 12) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution behaves like builds correct paths .base_dir behaves like matches the method pattern 9890 # No pattern provided, skipping.9891 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89892 13) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 9893 # No pattern provided, skipping.9894 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89895 14) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths #relative_path is relative9896 # Path not set, skipping.9897 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:409898 15) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 9899 # No pattern provided, skipping.9900 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89901 16) Packages::Debian::DistributionReleaseFileUploader Packages::Debian::GroupDistribution object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 9902 # No pattern provided, skipping.9903 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:89904 17) MergeRequestUserEntity#as_json performance is linear in the number of merge requests9906 Failure/Error:9907 expect do9908 a = described_class.new(user_a, request: request, merge_request: merge_request_b)9909 b = described_class.new(user_b, request: request, merge_request: merge_request_b)9911 a.as_json9912 b.as_json9913 end.not_to exceed_query_limit(baseline)9914 Expected a maximum of 10 queries, got 16:9915 Query Diff:9916 -----------9917 SELECT "licenses".* FROM "licenses"...9918 -- (expected: 1, got: 0)9919 ORDER BY "licenses"."id" DESC LIMIT 1009920 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...9921 -- (expected: 2, got: 0)9922 WHERE "project_authorizations"."project_id" = 884 AND "project_authorizations"."user_id" = 1486 GROUP BY "project_authorizations"."user_id"9923 -- (expected: 2, got: 0)9924 WHERE "project_authorizations"."project_id" = 884 AND "project_authorizations"."user_id" = 1484 GROUP BY "project_authorizations"."user_id"9925 -- (expected: 0, got: 2)9926 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 1486 GROUP BY "project_authorizations"."user_id"9927 -- (expected: 0, got: 2)9928 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 1484 GROUP BY "project_authorizations"."user_id"9929 -- (expected: 0, got: 2)9930 WHERE "project_authorizations"."project_id" = 885 AND "project_authorizations"."user_id" = 1487 GROUP BY "project_authorizations"."user_id"9931 SELECT "merge_requests".* FROM "merge_requests"...9932 -- (expected: 1, got: 0)9933 WHERE "merge_requests"."source_project_id" = 884 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9934 -- (expected: 0, got: 2)9935 WHERE "merge_requests"."source_project_id" = 885 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'9936 SELECT 1 AS one FROM "geo_nodes"...9937 -- (expected: 1, got: 0)9938 LIMIT 19939 SELECT 1 AS one FROM "users"...9940 -- (expected: 1, got: 0)9941 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 83 AND "users"."id" = 1484 LIMIT 19942 -- (expected: 0, got: 2)9943 INNER JOIN "merge_request_assignees" ON "users"."id" = "merge_request_assignees"."user_id" WHERE "merge_request_assignees"."merge_request_id" = 84 AND "users"."id" = 1484 LIMIT 19944 SELECT "merge_request_assignees".* FROM "merge_request_assignees"...9945 -- (expected: 2, got: 0)9946 WHERE "merge_request_assignees"."merge_request_id" = 83 AND "merge_request_assignees"."user_id" = 1486 LIMIT 19947 -- (expected: 0, got: 2)9948 WHERE "merge_request_assignees"."merge_request_id" = 84 AND "merge_request_assignees"."user_id" = 1486 LIMIT 19949 -- (expected: 0, got: 2)9950 WHERE "merge_request_assignees"."merge_request_id" = 84 AND "merge_request_assignees"."user_id" = 1487 LIMIT 19951 SELECT "protected_branches".* FROM "protected_branches"...9952 -- (expected: 0, got: 1)9953 WHERE "protected_branches"."project_id" = 8859954 SELECT "approvals".* FROM "approvals"...9955 -- (expected: 0, got: 1)9956 WHERE "approvals"."merge_request_id" = 849957 # ./spec/serializers/merge_request_user_entity_spec.rb:76:in `block (4 levels) in <top (required)>'9958 # ./spec/spec_helper.rb:408:in `block (3 levels) in <top (required)>'9959 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'9960 # ./spec/spec_helper.rb:399:in `block (2 levels) in <top (required)>'9961 # ./spec/spec_helper.rb:395:in `block (3 levels) in <top (required)>'9962 # ./lib/gitlab/application_context.rb:31:in `with_raw_context'9963 # ./spec/spec_helper.rb:395:in `block (2 levels) in <top (required)>'9964 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9965 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'9966 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9967 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9968 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9969 18) ExpirePipelineCacheWorker#perform with https://gitlab.com/gitlab-org/gitlab/-/issues/325291 resolved9970 # No reason given9971 # ./spec/workers/expire_pipeline_cache_worker_spec.rb:289972Finished in 24 minutes 44 seconds (files took 1 minute 13.29 seconds to load)99734793 examples, 0 failures, 18 pending9974RSpec exited with 0.9975No examples to retry, congrats!9977Not uploading cache ruby-gems-v1-9 due to policy9978Not uploading cache gitaly-ruby-gems-v1-9 due to policy9980Uploading artifacts...9981coverage/: found 5 matching files and directories 9982crystalball/: found 2 matching files and directories 9983deprecations/: found 4 matching files and directories 9984knapsack/: found 3 matching files and directories 9985rspec/: found 8 matching files and directories 9986WARNING: tmp/capybara/: no matching files 9987tmp/memory_test/: found 2 matching files and directories 9988log/*.log: found 18 matching files and directories 9989Uploading artifacts as "archive" to coordinator... 201 Created id=2055931402 responseStatus=201 Created token=T5r-L23D9990Uploading artifacts...9991rspec/junit_rspec.xml: found 1 matching files and directories 9992Uploading artifacts as "junit" to coordinator... 201 Created id=2055931402 responseStatus=201 Created token=T5r-L23D9994Job succeeded