rspec unit pg12 3/22
Passed Started
by
@fguibert
Florie Guibert
1Receiving objects: 100% (107798/107798), 104.24 MiB | 29.30 MiB/s, done.2Resolving deltas: 100% (42645/42645), done.4 * [new ref] refs/pipelines/581948065 -> refs/pipelines/5819480655Checking out 5ef8e465 as refs/merge-requests/91652/merge...6Skipping Git submodules setup7$ git remote set-url origin "${CI_REPOSITORY_URL}"9Checking cache for ruby-gems-debian-bullseye-ruby-2.7-14...10Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-14 11Successfully extracted cache12Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-14...13Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-14 14Successfully extracted cache16Downloading artifacts for compile-test-assets (2688594864)...17Downloading artifacts from coordinator... ok id=2688594864 responseStatus=200 OK token=ryzEGfAU18Downloading artifacts for detect-tests (2688594870)...19Downloading artifacts from coordinator... ok id=2688594870 responseStatus=200 OK token=ryzEGfAU20Downloading artifacts for retrieve-tests-metadata (2688594877)...21Downloading artifacts from coordinator... ok id=2688594877 responseStatus=200 OK token=ryzEGfAU22Downloading artifacts for setup-test-env (2688594868)...23Downloading artifacts from coordinator... ok id=2688594868 responseStatus=200 OK token=ryzEGfAU25Using docker image sha256:fd40b0aa863019e7fe9616bf6665ba24d356a369a8b92582a8df89544e3b7544 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:fc314d19087f24a5d21b479ce7a6dc7778b8c941d21ecbe4d62760c7dc533470 ...26$ echo $FOSS_ONLY27$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb28$ export GOPATH=$CI_PROJECT_DIR/.go29$ mkdir -p $GOPATH30$ source scripts/utils.sh31$ source scripts/prepare_build.sh323.2.3333Bundler version 2.2.3334Successfully installed bundler-2.3.15351 gem installed36production:development37Settings are listed in order of priority. The top value will be used.38clean39Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true40frozen41Set via BUNDLE_FROZEN: true42install_flags43Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"44path45Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"46without47Set via BUNDLE_WITHOUT: [:production, :development]48$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check49Don't run Bundler as root. Bundler can ask for sudo if it is needed, and50installing your bundle as root will break this application for all non-root51users on this machine.52The Gemfile's dependencies are satisfied53==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.54$ bundle pristine pg55Installing pg 1.3.5 with native extensions56==> 'bundle pristine pg' succeeded in 10 seconds.57Using decomposed database config (config/database.yml.decomposed-postgresql)58$ setup_db_user_only59CREATE ROLE60GRANT61==> 'setup_db_user_only' succeeded in 0 seconds.62$ bundle exec rake db:drop db:create db:schema:load db:migrate63Dropped database 'gitlabhq_test'64Dropped database 'gitlabhq_test_ci'65Dropped database 'gitlabhq_geo_test'66Created database 'gitlabhq_test'67Created database 'gitlabhq_test_ci'68Created database 'gitlabhq_geo_test'69==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 44 seconds.70$ setup_db_praefect71SELECT pg_catalog.set_config('search_path', '', false);72CREATE DATABASE praefect_test ENCODING 'UTF8';73$ run_timed_command "gem install knapsack --no-document"74==> 'setup_db_praefect' succeeded in 0 seconds.75$ gem install knapsack --no-document76Successfully installed knapsack-4.0.0771 gem installed78==> 'gem install knapsack --no-document' succeeded in 1 seconds.79$ run_timed_command "scripts/gitaly-test-spawn"80$ scripts/gitaly-test-spawn81find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory82Don't run Bundler as root. Bundler can ask for sudo if it is needed, and83installing your bundle as root will break this application for all non-root84users on this machine.85Using abstract_type 0.0.786Using concurrent-ruby 1.1.1087Using i18n 1.10.088Using minitest 5.15.089Using tzinfo 2.0.490Using zeitwerk 2.5.491Using activesupport 6.1.4.792Using builder 3.2.493Using erubi 1.10.094Using mini_portile2 2.8.095Using racc 1.6.096Using nokogiri 1.13.6 (x86_64-linux)97Using rails-dom-testing 2.0.398Using crass 1.0.699Using loofah 2.16.0100Using rails-html-sanitizer 1.4.2101Using actionview 6.1.4.7102Using rack 2.2.3103Using rack-test 1.1.0104Using actionpack 6.1.4.7105Using ice_nine 0.11.2106Using thread_safe 0.3.6107Using memoizable 0.4.2108Using adamantium 0.2.0109Using public_suffix 4.0.6110Using addressable 2.7.0111Using ast 2.4.2112Using binding_ninja 0.2.3113Using bundler 2.3.15114Using charlock_holmes 0.7.7115Using coderay 1.1.2116Using equalizer 0.0.11117Using concord 0.1.5118Using diff-lcs 1.3119Using dotenv 2.7.6120Using escape_utils 1.2.1121Using factory_bot 5.0.2122Using multipart-post 2.1.1123Using faraday 1.0.1124Using ffi 1.15.3125Using json 2.5.1126Using gemojione 3.3.0127Using mini_mime 1.0.2128Using rugged 1.2.0129Using github-linguist 7.12.1130Using github-markup 1.7.0131Using mime-types-data 3.2020.1104132Using mime-types 3.3.1133Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1134Using rouge 3.27.0135Using sanitize 6.0.0136Using stringex 2.8.5137Using gitlab-gollum-lib 4.2.7.10.gitlab.2138Using google-protobuf 3.19.1 (x86_64-linux)139Using googleapis-common-protos-types 1.3.0140Using grpc 1.42.0 (x86_64-linux)141Using opentracing 0.5.0142Using thrift 0.15.0143Using jaeger-client 1.1.0144Using pg_query 2.1.1145Using redis 4.4.0146Using gitlab-labkit 0.23.0147Using rubyzip 2.3.2148Using thor 1.1.0149Using tomlrb 2.0.1150Using with_env 1.1.0151Using rexml 3.2.5152Using xml-simple 1.1.9153Using gitlab-license_finder 6.14.2.1154Using gitlab-markup 1.7.1155Using grpc-tools 1.42.0156Using sawyer 0.8.2157Using octokit 4.20.0158Using reverse_markdown 1.4.0159Using licensee 9.14.1160Using method_source 0.9.2161Using msgpack 1.3.3162Using optimist 3.0.1163Using parallel 1.19.2164Using parser 3.0.3.2165Using procto 0.0.3166Using unparser 0.4.7167Using proc_to_ast 0.1.0168Using pry 0.12.2169Using rainbow 3.0.0170Using rbtrace 0.4.14171Using rdoc 6.3.2172Using regexp_parser 1.8.1173Using rspec-support 3.8.0174Using rspec-core 3.8.0175Using rspec-expectations 3.8.3176Using rspec-mocks 3.8.0177Using rspec 3.8.0178Using rspec-parameterized 0.4.2179Using rubocop-ast 0.2.0180Using ruby-progressbar 1.10.1181Using unicode-display_width 1.7.0182Using rubocop 0.86.0183Using sentry-raven 3.0.4184Using timecop 0.9.1185Bundle complete! 22 Gemfile dependencies, 100 gems now installed.186Gems in the groups 'production' and 'development' were not installed.187Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`188Checking gitaly-ruby Gemfile...189Checking gitaly-ruby bundle...190The Gemfile's dependencies are satisfied191Trying to connect to gitaly: ............................................. OK192Trying to connect to gitaly2: ................................................................ OK193Starting Praefect with in-memory election strategyTrying to connect to praefect: ........ OK194$ source ./scripts/rspec_helpers.sh195==> 'scripts/gitaly-test-spawn' succeeded in 13 seconds.196$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"197SKIP_FLAKY_TESTS_AUTOMATICALLY: true198RETRY_FAILED_TESTS_IN_NEW_PROCESS: true199KNAPSACK_GENERATE_REPORT: true200FLAKY_RSPEC_GENERATE_REPORT: true201KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,db,dependencies,elastic,elastic_integration,experiments,events,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb202KNAPSACK_LOG_LEVEL: debug203KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_3_22_report.json204FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json205FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_3_22_report.json206NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_3_22_report.json207SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_3_22_report.txt208RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_3_22_report.txt209CRYSTALBALL: 210Knapsack node specs:211spec/models/project_spec.rb212spec/models/integrations/slack_spec.rb213spec/services/groups/destroy_service_spec.rb214spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb215spec/workers/post_receive_spec.rb216spec/models/milestone_spec.rb217spec/models/ci/stage_spec.rb218spec/models/integrations/hangouts_chat_spec.rb219spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb220spec/models/integrations/discord_spec.rb221spec/services/boards/lists/update_service_spec.rb222spec/finders/notes_finder_spec.rb223spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb224spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb225spec/lib/gitlab/ci/config/entry/job_spec.rb226spec/services/merge_requests/toggle_attention_requested_service_spec.rb227spec/services/merge_requests/after_create_service_spec.rb228spec/models/concerns/token_authenticatable_spec.rb229spec/lib/backup/repositories_spec.rb230spec/lib/gitlab/data_builder/build_spec.rb231spec/lib/gitlab/usage/metric_definition_spec.rb232spec/lib/gitlab/import_export/project/object_builder_spec.rb233spec/models/ability_spec.rb234spec/lib/backup/files_spec.rb235spec/models/concerns/cascading_namespace_setting_attribute_spec.rb236spec/lib/gitlab/import_export/import_export_equivalence_spec.rb237spec/models/trending_project_spec.rb238spec/uploaders/namespace_file_uploader_spec.rb239spec/models/concerns/subscribable_spec.rb240spec/finders/packages/nuget/package_finder_spec.rb241spec/lib/banzai/pipeline/gfm_pipeline_spec.rb242spec/workers/concerns/application_worker_spec.rb243spec/lib/gitlab/import_export/import_failure_service_spec.rb244spec/models/ci/resource_group_spec.rb245spec/workers/projects/after_import_worker_spec.rb246spec/lib/gitlab/email/handler/create_issue_handler_spec.rb247spec/models/ci/group_spec.rb248spec/lib/gitlab/github_import/client_spec.rb249spec/lib/gitlab/changelog/config_spec.rb250spec/models/integrations/harbor_spec.rb251spec/services/clusters/build_kubernetes_namespace_service_spec.rb252spec/lib/bulk_imports/projects/pipelines/repository_bundle_pipeline_spec.rb253spec/lib/gitlab/metrics/dashboard/url_spec.rb254spec/models/terraform/state_spec.rb255spec/services/groups/import_export/export_service_spec.rb256spec/lib/gitlab/pagination/keyset/order_spec.rb257spec/services/draft_notes/create_service_spec.rb258spec/lib/container_registry/migration_spec.rb259spec/services/container_expiration_policies/update_service_spec.rb260spec/services/ci/after_requeue_job_service_spec.rb261spec/helpers/ci/runners_helper_spec.rb262spec/policies/design_management/design_policy_spec.rb263spec/lib/gitlab/background_migration/cleanup_orphaned_routes_spec.rb264spec/lib/gitlab/encoding_helper_spec.rb265spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb266spec/lib/gitlab/redis/queues_spec.rb267spec/lib/gitlab/redis/trace_chunks_spec.rb268spec/views/notify/pipeline_success_email.text.erb_spec.rb269spec/lib/gitlab/ci/build/rules_spec.rb270spec/models/snippet_statistics_spec.rb271spec/serializers/diff_file_base_entity_spec.rb272spec/lib/gitlab/alert_management/payload/generic_spec.rb273spec/graphql/resolvers/environments_resolver_spec.rb274spec/helpers/broadcast_messages_helper_spec.rb275spec/services/metrics/dashboard/annotations/delete_service_spec.rb276spec/models/board_group_recent_visit_spec.rb277spec/lib/gitlab/background_migration/fix_merge_request_diff_commit_users_spec.rb278spec/services/clusters/gcp/provision_service_spec.rb279spec/models/customer_relations/organization_spec.rb280spec/lib/banzai/reference_redactor_spec.rb281spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb282spec/services/ci/expire_pipeline_cache_service_spec.rb283spec/lib/gitlab/ci/reports/test_case_spec.rb284spec/finders/releases/evidence_pipeline_finder_spec.rb285spec/policies/custom_emoji_policy_spec.rb286spec/workers/bulk_import_worker_spec.rb287spec/tasks/gitlab/artifacts/check_rake_spec.rb288spec/services/metrics/dashboard/transient_embed_service_spec.rb289spec/views/projects/merge_requests/edit.html.haml_spec.rb290spec/tasks/gettext_rake_spec.rb291spec/models/concerns/sanitizable_spec.rb292spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb293spec/services/clusters/agents/create_service_spec.rb294spec/lib/gitlab/ci/reports/security/scanner_spec.rb295spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb296spec/lib/gitlab/issuable_metadata_spec.rb297spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb298spec/tasks/gitlab/external_diffs_rake_spec.rb299spec/finders/projects/prometheus/alerts_finder_spec.rb300spec/services/issue_links/destroy_service_spec.rb301spec/models/loose_foreign_keys/deleted_record_spec.rb302spec/lib/api/entities/ci/job_request/dependency_spec.rb303spec/lib/gitaly/server_spec.rb304spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb305spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb306spec/workers/new_issue_worker_spec.rb307spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb308spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb309spec/graphql/mutations/terraform/state/unlock_spec.rb310spec/experiments/ios_specific_templates_experiment_spec.rb311spec/workers/external_service_reactive_caching_worker_spec.rb312spec/services/work_items/delete_task_service_spec.rb313spec/lib/gitlab/utils/delegator_override/validator_spec.rb314spec/services/users/update_canonical_email_service_spec.rb315spec/rubocop/migration_helpers_spec.rb316spec/workers/background_migration_worker_spec.rb317spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb318spec/workers/namespaces/schedule_aggregation_worker_spec.rb319spec/models/network/graph_spec.rb320spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb321spec/lib/gitlab/ci/config/entry/prefix_spec.rb322spec/lib/gitlab/github_import/representation/issue_event_spec.rb323spec/lib/gitlab/jira_import/base_importer_spec.rb324spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb325spec/initializers/net_http_patch_spec.rb326spec/lib/gitlab/redis/hll_spec.rb327spec/lib/gitlab/import_export/base/object_builder_spec.rb328spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb329spec/services/concerns/exclusive_lease_guard_spec.rb330spec/models/note_diff_file_spec.rb331spec/workers/projects/post_creation_worker_spec.rb332spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb333spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb334spec/graphql/resolvers/ci/group_runners_resolver_spec.rb335spec/lib/gitlab/access/branch_protection_spec.rb336spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb337spec/lib/gitlab/jira_import/issue_serializer_spec.rb338spec/lib/gitlab/usage_data_queries_spec.rb339spec/services/groups/auto_devops_service_spec.rb340spec/presenters/group_member_presenter_spec.rb341spec/models/webauthn_registration_spec.rb342spec/lib/gitlab/ci/config/external/file/template_spec.rb343spec/lib/gitlab/slash_commands/issue_show_spec.rb344spec/services/packages/terraform_module/create_package_service_spec.rb345spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb346spec/lib/gitlab/lograge/custom_options_spec.rb347spec/routing/uploads_routing_spec.rb348spec/rubocop/cop/migration/drop_table_spec.rb349spec/models/packages/debian/group_architecture_spec.rb350spec/models/project_ci_cd_setting_spec.rb351spec/services/protected_tags/update_service_spec.rb352spec/lib/gitlab/sample_data_template_spec.rb353spec/services/ci/create_pipeline_service/artifacts_spec.rb354spec/models/preloaders/environments/deployment_preloader_spec.rb355spec/models/clusters/agents/group_authorization_spec.rb356spec/serializers/user_entity_spec.rb357spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb358spec/lib/error_tracking/stacktrace_builder_spec.rb359spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb360spec/lib/gitlab/color_schemes_spec.rb361spec/lib/gitlab/metrics/prometheus_spec.rb362spec/graphql/types/invitation_interface_spec.rb363spec/workers/deployments/archive_in_project_worker_spec.rb364spec/services/clusters/aws/fetch_credentials_service_spec.rb365spec/models/error_tracking/client_key_spec.rb366spec/rubocop/cop/migration/background_migration_base_class_spec.rb367spec/graphql/types/alert_management/alert_type_spec.rb368spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb369spec/rubocop/cop/api/base_spec.rb370spec/models/concerns/from_union_spec.rb371spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb372spec/graphql/types/metrics/dashboard_type_spec.rb373spec/lib/gitlab/graphql/loaders/batch_commit_loader_spec.rb374spec/models/performance_monitoring/prometheus_panel_spec.rb375spec/rubocop/cop/code_reuse/serializer_spec.rb376spec/rubocop/cop/performance/active_record_subtransactions_spec.rb377spec/services/packages/debian/extract_changes_metadata_service_spec.rb378spec/lib/gitlab/background_migration_spec.rb379spec/services/projects/fetch_statistics_increment_service_spec.rb380spec/services/resource_events/change_labels_service_spec.rb381spec/lib/gitlab/language_data_spec.rb382spec/serializers/ci/downloadable_artifact_entity_spec.rb383spec/views/notify/push_to_merge_request_email.text.haml_spec.rb384spec/models/integrations/pivotaltracker_spec.rb385spec/models/concerns/from_intersect_spec.rb386spec/presenters/packages/nuget/packages_versions_presenter_spec.rb387spec/services/terraform/states/trigger_destroy_service_spec.rb388spec/lib/banzai/filter/footnote_filter_spec.rb389spec/graphql/mutations/boards/lists/create_spec.rb390spec/lib/gitlab/memory/jemalloc_spec.rb391spec/services/error_tracking/base_service_spec.rb392spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb393spec/lib/gitlab/graphql/known_operations_spec.rb394spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb395spec/views/projects/tree/show.html.haml_spec.rb396spec/lib/gitlab/build_access_spec.rb397spec/policies/clusters/agent_policy_spec.rb398spec/models/analytics/cycle_analytics/project_value_stream_spec.rb399spec/services/releases/create_evidence_service_spec.rb400spec/lib/gitlab/database/migrations/observers/query_details_spec.rb401spec/lib/system_check/sidekiq_check_spec.rb402spec/rubocop/formatter/todo_formatter_spec.rb403spec/lib/gitlab/emoji_spec.rb404spec/rubocop/cop/migration/add_reference_spec.rb405spec/initializers/sidekiq_spec.rb406spec/rubocop/cop/default_scope_spec.rb407spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb408spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb409spec/services/bulk_imports/lfs_objects_export_service_spec.rb410spec/serializers/context_commits_diff_entity_spec.rb411spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb412spec/lib/gitlab/ci/config/entry/coverage_spec.rb413spec/lib/gitlab/git/diff_stats_collection_spec.rb414spec/lib/banzai/filter/image_lazy_load_filter_spec.rb415spec/lib/gitlab/graphql/generic_tracing_spec.rb416spec/finders/issuables/crm_contact_filter_spec.rb417spec/models/releases/evidence_spec.rb418spec/lib/gitlab/instrumentation/redis_spec.rb419spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb420spec/lib/gitlab/import_export/attribute_configuration_spec.rb421spec/models/user_mentions/commit_user_mention_spec.rb422spec/graphql/types/dependency_proxy/group_setting_type_spec.rb423spec/finders/repositories/changelog_tag_finder_spec.rb424spec/lib/gitlab/import_export/import_export_spec.rb425spec/serializers/evidences/release_entity_spec.rb426spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb427spec/lib/gitlab/import_formatter_spec.rb428spec/graphql/types/notes/note_type_spec.rb429spec/lib/api/entities/ci/job_request/port_spec.rb430spec/graphql/types/ci/job_type_spec.rb431spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb432spec/models/group/crm_settings_spec.rb433spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb434spec/rubocop/cop/filename_length_spec.rb435spec/workers/database/partition_management_worker_spec.rb436spec/lib/api/entities/plan_limit_spec.rb437spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/none_spec.rb438spec/graphql/types/work_item_type_spec.rb439spec/graphql/types/customer_relations/organization_type_spec.rb440spec/graphql/types/alert_management/integration_type_spec.rb441spec/models/concerns/blocks_unsafe_serialization_spec.rb442spec/lib/gitlab/tcp_checker_spec.rb443spec/lib/gitlab/slash_commands/presenters/error_spec.rb444spec/lib/gitlab/ci/status/group/common_spec.rb445spec/lib/gitlab/webpack/graphql_known_operations_spec.rb446spec/lib/system_check/incoming_email_check_spec.rb447spec/rubocop/cop/gitlab/bulk_insert_spec.rb448spec/lib/api/validations/validators/project_portable_spec.rb449spec/lib/gitlab/cross_project_access/check_collection_spec.rb450spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb451spec/lib/gitlab/git/gitmodules_parser_spec.rb452spec/models/badges/group_badge_spec.rb453spec/helpers/git_helper_spec.rb454spec/lib/gitlab/metrics/exporter/gc_request_middleware_spec.rb455spec/lib/gitlab/auth/u2f_webauthn_converter_spec.rb456spec/lib/gitlab/database/sha_attribute_spec.rb457spec/helpers/admin/deploy_key_helper_spec.rb458spec/graphql/resolvers/ci/runner_status_resolver_spec.rb459spec/lib/gitlab/middleware/request_context_spec.rb460spec/serializers/evidences/issue_entity_spec.rb461spec/workers/todos_destroyer/private_features_worker_spec.rb462spec/serializers/evidences/evidence_serializer_spec.rb463spec/graphql/types/ci_configuration/sast/entity_input_type_spec.rb464spec/lib/gitlab/metrics/delta_spec.rb465spec/lib/gitlab/serializer/ci/variables_spec.rb466spec/serializers/detailed_status_entity_spec.rb467spec/rubocop/cop/gitlab/intersect_spec.rb468spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb469spec/models/preloaders/group_root_ancestor_preloader_spec.rb470Filter specs:471Running specs:472Running all node tests without filter473spec/models/project_spec.rb474spec/models/integrations/slack_spec.rb475spec/services/groups/destroy_service_spec.rb476spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb477spec/workers/post_receive_spec.rb478spec/models/milestone_spec.rb479spec/models/ci/stage_spec.rb480spec/models/integrations/hangouts_chat_spec.rb481spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb482spec/models/integrations/discord_spec.rb483spec/services/boards/lists/update_service_spec.rb484spec/finders/notes_finder_spec.rb485spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb486spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb487spec/lib/gitlab/ci/config/entry/job_spec.rb488spec/services/merge_requests/toggle_attention_requested_service_spec.rb489spec/services/merge_requests/after_create_service_spec.rb490spec/models/concerns/token_authenticatable_spec.rb491spec/lib/backup/repositories_spec.rb492spec/lib/gitlab/data_builder/build_spec.rb493spec/lib/gitlab/usage/metric_definition_spec.rb494spec/lib/gitlab/import_export/project/object_builder_spec.rb495spec/models/ability_spec.rb496spec/lib/backup/files_spec.rb497spec/models/concerns/cascading_namespace_setting_attribute_spec.rb498spec/lib/gitlab/import_export/import_export_equivalence_spec.rb499spec/models/trending_project_spec.rb500spec/uploaders/namespace_file_uploader_spec.rb501spec/models/concerns/subscribable_spec.rb502spec/finders/packages/nuget/package_finder_spec.rb503spec/lib/banzai/pipeline/gfm_pipeline_spec.rb504spec/workers/concerns/application_worker_spec.rb505spec/lib/gitlab/import_export/import_failure_service_spec.rb506spec/models/ci/resource_group_spec.rb507spec/workers/projects/after_import_worker_spec.rb508spec/lib/gitlab/email/handler/create_issue_handler_spec.rb509spec/models/ci/group_spec.rb510spec/lib/gitlab/github_import/client_spec.rb511spec/lib/gitlab/changelog/config_spec.rb512spec/models/integrations/harbor_spec.rb513spec/services/clusters/build_kubernetes_namespace_service_spec.rb514spec/lib/bulk_imports/projects/pipelines/repository_bundle_pipeline_spec.rb515spec/lib/gitlab/metrics/dashboard/url_spec.rb516spec/models/terraform/state_spec.rb517spec/services/groups/import_export/export_service_spec.rb518spec/lib/gitlab/pagination/keyset/order_spec.rb519spec/services/draft_notes/create_service_spec.rb520spec/lib/container_registry/migration_spec.rb521spec/services/container_expiration_policies/update_service_spec.rb522spec/services/ci/after_requeue_job_service_spec.rb523spec/helpers/ci/runners_helper_spec.rb524spec/policies/design_management/design_policy_spec.rb525spec/lib/gitlab/background_migration/cleanup_orphaned_routes_spec.rb526spec/lib/gitlab/encoding_helper_spec.rb527spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb528spec/lib/gitlab/redis/queues_spec.rb529spec/lib/gitlab/redis/trace_chunks_spec.rb530spec/views/notify/pipeline_success_email.text.erb_spec.rb531spec/lib/gitlab/ci/build/rules_spec.rb532spec/models/snippet_statistics_spec.rb533spec/serializers/diff_file_base_entity_spec.rb534spec/lib/gitlab/alert_management/payload/generic_spec.rb535spec/graphql/resolvers/environments_resolver_spec.rb536spec/helpers/broadcast_messages_helper_spec.rb537spec/services/metrics/dashboard/annotations/delete_service_spec.rb538spec/models/board_group_recent_visit_spec.rb539spec/lib/gitlab/background_migration/fix_merge_request_diff_commit_users_spec.rb540spec/services/clusters/gcp/provision_service_spec.rb541spec/models/customer_relations/organization_spec.rb542spec/lib/banzai/reference_redactor_spec.rb543spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb544spec/services/ci/expire_pipeline_cache_service_spec.rb545spec/lib/gitlab/ci/reports/test_case_spec.rb546spec/finders/releases/evidence_pipeline_finder_spec.rb547spec/policies/custom_emoji_policy_spec.rb548spec/workers/bulk_import_worker_spec.rb549spec/tasks/gitlab/artifacts/check_rake_spec.rb550spec/services/metrics/dashboard/transient_embed_service_spec.rb551spec/views/projects/merge_requests/edit.html.haml_spec.rb552spec/tasks/gettext_rake_spec.rb553spec/models/concerns/sanitizable_spec.rb554spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb555spec/services/clusters/agents/create_service_spec.rb556spec/lib/gitlab/ci/reports/security/scanner_spec.rb557spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb558spec/lib/gitlab/issuable_metadata_spec.rb559spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb560spec/tasks/gitlab/external_diffs_rake_spec.rb561spec/finders/projects/prometheus/alerts_finder_spec.rb562spec/services/issue_links/destroy_service_spec.rb563spec/models/loose_foreign_keys/deleted_record_spec.rb564spec/lib/api/entities/ci/job_request/dependency_spec.rb565spec/lib/gitaly/server_spec.rb566spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb567spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb568spec/workers/new_issue_worker_spec.rb569spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb570spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb571spec/graphql/mutations/terraform/state/unlock_spec.rb572spec/experiments/ios_specific_templates_experiment_spec.rb573spec/workers/external_service_reactive_caching_worker_spec.rb574spec/services/work_items/delete_task_service_spec.rb575spec/lib/gitlab/utils/delegator_override/validator_spec.rb576spec/services/users/update_canonical_email_service_spec.rb577spec/rubocop/migration_helpers_spec.rb578spec/workers/background_migration_worker_spec.rb579spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb580spec/workers/namespaces/schedule_aggregation_worker_spec.rb581spec/models/network/graph_spec.rb582spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb583spec/lib/gitlab/ci/config/entry/prefix_spec.rb584spec/lib/gitlab/github_import/representation/issue_event_spec.rb585spec/lib/gitlab/jira_import/base_importer_spec.rb586spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb587spec/initializers/net_http_patch_spec.rb588spec/lib/gitlab/redis/hll_spec.rb589spec/lib/gitlab/import_export/base/object_builder_spec.rb590spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb591spec/services/concerns/exclusive_lease_guard_spec.rb592spec/models/note_diff_file_spec.rb593spec/workers/projects/post_creation_worker_spec.rb594spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb595spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb596spec/graphql/resolvers/ci/group_runners_resolver_spec.rb597spec/lib/gitlab/access/branch_protection_spec.rb598spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb599spec/lib/gitlab/jira_import/issue_serializer_spec.rb600spec/lib/gitlab/usage_data_queries_spec.rb601spec/services/groups/auto_devops_service_spec.rb602spec/presenters/group_member_presenter_spec.rb603spec/models/webauthn_registration_spec.rb604spec/lib/gitlab/ci/config/external/file/template_spec.rb605spec/lib/gitlab/slash_commands/issue_show_spec.rb606spec/services/packages/terraform_module/create_package_service_spec.rb607spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb608spec/lib/gitlab/lograge/custom_options_spec.rb609spec/routing/uploads_routing_spec.rb610spec/rubocop/cop/migration/drop_table_spec.rb611spec/models/packages/debian/group_architecture_spec.rb612spec/models/project_ci_cd_setting_spec.rb613spec/services/protected_tags/update_service_spec.rb614spec/lib/gitlab/sample_data_template_spec.rb615spec/services/ci/create_pipeline_service/artifacts_spec.rb616spec/models/preloaders/environments/deployment_preloader_spec.rb617spec/models/clusters/agents/group_authorization_spec.rb618spec/serializers/user_entity_spec.rb619spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb620spec/lib/error_tracking/stacktrace_builder_spec.rb621spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb622spec/lib/gitlab/color_schemes_spec.rb623spec/lib/gitlab/metrics/prometheus_spec.rb624spec/graphql/types/invitation_interface_spec.rb625spec/workers/deployments/archive_in_project_worker_spec.rb626spec/services/clusters/aws/fetch_credentials_service_spec.rb627spec/models/error_tracking/client_key_spec.rb628spec/rubocop/cop/migration/background_migration_base_class_spec.rb629spec/graphql/types/alert_management/alert_type_spec.rb630spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb631spec/rubocop/cop/api/base_spec.rb632spec/models/concerns/from_union_spec.rb633spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb634spec/graphql/types/metrics/dashboard_type_spec.rb635spec/lib/gitlab/graphql/loaders/batch_commit_loader_spec.rb636spec/models/performance_monitoring/prometheus_panel_spec.rb637spec/rubocop/cop/code_reuse/serializer_spec.rb638spec/rubocop/cop/performance/active_record_subtransactions_spec.rb639spec/services/packages/debian/extract_changes_metadata_service_spec.rb640spec/lib/gitlab/background_migration_spec.rb641spec/services/projects/fetch_statistics_increment_service_spec.rb642spec/services/resource_events/change_labels_service_spec.rb643spec/lib/gitlab/language_data_spec.rb644spec/serializers/ci/downloadable_artifact_entity_spec.rb645spec/views/notify/push_to_merge_request_email.text.haml_spec.rb646spec/models/integrations/pivotaltracker_spec.rb647spec/models/concerns/from_intersect_spec.rb648spec/presenters/packages/nuget/packages_versions_presenter_spec.rb649spec/services/terraform/states/trigger_destroy_service_spec.rb650spec/lib/banzai/filter/footnote_filter_spec.rb651spec/graphql/mutations/boards/lists/create_spec.rb652spec/lib/gitlab/memory/jemalloc_spec.rb653spec/services/error_tracking/base_service_spec.rb654spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb655spec/lib/gitlab/graphql/known_operations_spec.rb656spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb657spec/views/projects/tree/show.html.haml_spec.rb658spec/lib/gitlab/build_access_spec.rb659spec/policies/clusters/agent_policy_spec.rb660spec/models/analytics/cycle_analytics/project_value_stream_spec.rb661spec/services/releases/create_evidence_service_spec.rb662spec/lib/gitlab/database/migrations/observers/query_details_spec.rb663spec/lib/system_check/sidekiq_check_spec.rb664spec/rubocop/formatter/todo_formatter_spec.rb665spec/lib/gitlab/emoji_spec.rb666spec/rubocop/cop/migration/add_reference_spec.rb667spec/initializers/sidekiq_spec.rb668spec/rubocop/cop/default_scope_spec.rb669spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb670spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb671spec/services/bulk_imports/lfs_objects_export_service_spec.rb672spec/serializers/context_commits_diff_entity_spec.rb673spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb674spec/lib/gitlab/ci/config/entry/coverage_spec.rb675spec/lib/gitlab/git/diff_stats_collection_spec.rb676spec/lib/banzai/filter/image_lazy_load_filter_spec.rb677spec/lib/gitlab/graphql/generic_tracing_spec.rb678spec/finders/issuables/crm_contact_filter_spec.rb679spec/models/releases/evidence_spec.rb680spec/lib/gitlab/instrumentation/redis_spec.rb681spec/lib/gitlab/ci/status/waiting_for_resource_spec.rbKnapsack report generator started!682DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call683/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here684 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)685Run options: exclude {:quarantine=>true, :level=>"migration"}686Test environment set up in 0.609866585 seconds687Project688 returns valid url to repo689 behaves like having unique enum values690 has unique values in "auto_cancel_pending_pipelines"691 associations692 is expected to belong to group required: false693 is expected to belong to namespace required: false694 is expected to belong to project_namespace class_name => Namespaces::ProjectNamespace required: false695 is expected to belong to creator class_name => User required: false696 is expected to belong to pool_repository required: false697 is expected to have many users698 is expected to have many integrations699 is expected to have many events700 is expected to have many merge_requests701 is expected to have many merge_request_metrics class_name => MergeRequest::Metrics702 is expected to have many issues703 is expected to have many incident_management_issuable_escalation_statuses class_name => IncidentManagement::IssuableEscalationStatus through issues inverse_of => project704 is expected to have many milestones705 is expected to have many iterations706 is expected to have many project_members dependent => delete_all707 is expected to have many users through project_members708 is expected to have many requesters dependent => delete_all709 is expected to have many notes dependent => destroy710 is expected to have many snippets class_name => ProjectSnippet711 is expected to have many deploy_keys_projects712 is expected to have many deploy_keys713 is expected to have many hooks714 is expected to have many protected_branches715 is expected to have many exported_protected_branches716 is expected to have one slack_integration717 is expected to have one microsoft_teams_integration718 is expected to have one mattermost_integration719 is expected to have one hangouts_chat_integration720 is expected to have one unify_circuit_integration721 is expected to have one webex_teams_integration722 is expected to have one packagist_integration723 is expected to have one pushover_integration724 is expected to have one asana_integration725 is expected to have many boards726 is expected to have one campfire_integration727 is expected to have one datadog_integration728 is expected to have one discord_integration729 is expected to have one drone_ci_integration730 is expected to have one emails_on_push_integration731 is expected to have one pipelines_email_integration732 is expected to have one irker_integration733 is expected to have one pivotaltracker_integration734 is expected to have one flowdock_integration735 is expected to have one assembla_integration736 is expected to have one slack_slash_commands_integration737 is expected to have one mattermost_slash_commands_integration738 is expected to have one buildkite_integration739 is expected to have one bamboo_integration740 is expected to have one teamcity_integration741 is expected to have one jira_integration742 is expected to have one harbor_integration743 is expected to have one redmine_integration744 is expected to have one youtrack_integration745 is expected to have one custom_issue_tracker_integration746 is expected to have one bugzilla_integration747 is expected to have one ewm_integration748 is expected to have one external_wiki_integration749 is expected to have one confluence_integration750 is expected to have one project_feature751 is expected to have one project_repository752 is expected to have one container_expiration_policy753 is expected to have one statistics class_name => ProjectStatistics754 is expected to have one import_data class_name => ProjectImportData755 is expected to have one last_event class_name => Event756 is expected to have one forked_from_project through fork_network_member757 is expected to have one auto_devops class_name => ProjectAutoDevops758 is expected to have one error_tracking_setting class_name => ErrorTracking::ProjectErrorTrackingSetting759 is expected to have one project_setting760 is expected to have one alerting_setting class_name => Alerting::ProjectAlertingSetting761 is expected to have one mock_ci_integration762 is expected to have one mock_monitoring_integration763 is expected to have many commit_statuses764 is expected to have many ci_pipelines765 is expected to have many ci_refs766 is expected to have many builds767 is expected to have many build_report_results768 is expected to have many runner_projects769 is expected to have many runners770 is expected to have many variables771 is expected to have many triggers772 is expected to have many labels class_name => ProjectLabel773 is expected to have many users_star_projects774 is expected to have many repository_languages775 is expected to have many environments776 is expected to have many deployments777 is expected to have many todos778 is expected to have many releases779 is expected to have many lfs_objects_projects780 is expected to have many project_group_links781 is expected to have many notification_settings dependent => delete_all782 is expected to have many forked_to_members class_name => ForkNetworkMember783 is expected to have many forks through forked_to_members784 is expected to have many uploads785 is expected to have many pipeline_schedules786 is expected to have many members_and_requesters787 is expected to have many clusters788 is expected to have many management_clusters class_name => Clusters::Cluster789 is expected to have many kubernetes_namespaces790 is expected to have many cluster_agents class_name => Clusters::Agent791 is expected to have many custom_attributes class_name => ProjectCustomAttribute792 is expected to have many project_badges class_name => ProjectBadge793 is expected to have many lfs_file_locks794 is expected to have many project_deploy_tokens795 is expected to have many deploy_tokens through project_deploy_tokens796 is expected to have many cycle_analytics_stages inverse_of => project797 is expected to have many value_streams inverse_of => project798 is expected to have many external_pull_requests799 is expected to have many sourced_pipelines800 is expected to have many source_pipelines801 is expected to have many prometheus_alert_events802 is expected to have many self_managed_prometheus_alert_events803 is expected to have many alert_management_alerts804 is expected to have many alert_management_http_integrations805 is expected to have many jira_imports806 is expected to have many metrics_users_starred_dashboards inverse_of => project807 is expected to have many repository_storage_moves808 is expected to have many reviews inverse_of => project809 is expected to have many packages class_name => Packages::Package810 is expected to have many package_files class_name => Packages::PackageFile811 is expected to have many debian_distributions class_name => Packages::Debian::ProjectDistribution dependent => destroy812 is expected to have one packages_cleanup_policy class_name => Packages::Cleanup::Policy inverse_of => project813 is expected to have many pipeline_artifacts dependent => restrict_with_error814 is expected to have many terraform_states class_name => Terraform::State inverse_of => project815 is expected to have many timelogs816 is expected to have many error_tracking_client_keys class_name => ErrorTracking::ClientKey817 is expected to have many pending_builds class_name => Ci::PendingBuild818 is expected to have many ci_feature_usages class_name => Projects::CiFeatureUsage819 is expected to have many bulk_import_exports class_name => BulkImports::Export820 is expected to have many job_artifacts dependent => restrict_with_error821 is expected to have many build_trace_chunks through builds dependent => restrict_with_error822 is expected to have many secure_files class_name => Ci::SecureFile dependent => restrict_with_error823 is expected to have one build_artifacts_size_refresh class_name => Projects::BuildArtifactsSizeRefresh824 is expected to have many pages_domains825 is expected to have one pages_metadatum826 is expected to have many pages_deployments827 has an inverse relationship with merge requests828 has a distinct has_many :lfs_objects relation through lfs_objects_projects829 behaves like model with repository830 container class includes HasRepository831 #commits_by832 retrieves several commits from the repository by oid833 #web_url834 when given the only_path option835 when only_path is false836 returns the full web URL for this repo837 when only_path is true838 returns the relative web URL for this repo839 when only_path is nil840 returns the full web URL for this repo841 when not given the only_path option842 returns the full web URL for this repo843 #url_to_repo844 returns the SSH URL to the repository845 #ssh_url_to_repo846 returns the SSH URL to the repository847 #http_url_to_repo848 returns the HTTP URL to the repository849 #repository850 returns valid repo851 uses the same container852 #storage853 returns valid storage854 #full_path855 returns valid full_path856 #lfs_enabled?857 returns the expected value858 #empty_repo?859 when the repo does not exist860 returns true861 when the repo exists862 returns the empty state of the repository863 #valid_repo?864 is expected to equal false865 is expected to equal true866 #repository_exists?867 is expected to equal false868 is expected to equal true869 #repo_exists?870 is expected to equal false871 is expected to equal true872 #root_ref873 is expected to equal true874 is expected to equal false875 is expected to equal false876 Respond to877 is expected to respond to #base_dir878 is expected to respond to #disk_path879 is expected to respond to #gitlab_shell880 #change_head881 delegates #change_head to repository882 #after_repository_change_head883 calls #reload_default_branch884 behaves like model with wiki885 #create_wiki886 returns true if the wiki repository already exists887 returns true if the wiki repository was created888 when the repository cannot be created889 returns false and adds a validation error890 #wiki_repository_exists?891 returns true when the wiki repository exists892 returns false when the wiki repository does not exist893 wiki path conflict894 when the new path has been used by the wiki of other Project895 has an error on the name attribute896 when the new wiki path has been used by the path of other Project897 has an error on the name attribute898 when the new path has been used by the wiki of other Group899 has an error on the name attribute900 when the new wiki path has been used by the path of other Group901 has an error on the name attribute902 behaves like can move repository storage903 #set_repository_read_only!904 makes the repository read-only905 raises an error if the project is already read-only906 raises an error when there is an existing git transfer in progress907 skip_git_transfer_check is true908 makes the project read-only when git transfers are in progress909 #set_repository_writable!910 sets repository_read_only to false911 #reference_counter912 returns a Gitlab::ReferenceCounter object913 after initialized914 has a project_feature915 when deleting project916 also deletes the associated ProjectNamespace917 when project has object storage attached to it918 when associated object storage object is not deleted before the project919 adds an error to project920 when associated object storage object is deleted before the project921 deletes the project922 when creating a new project923 automatically creates a CI/CD settings row924 automatically creates a container expiration policy row925 does not create another container expiration policy if there is already one926 automatically creates a Pages metadata row927 automatically builds a project setting row928 with project namespaces929 behaves like creates project namespace930 automatically creates a project namespace931 updating a project932 when project has an associated project namespace933 project is INVALID when trying to remove project namespace934 when same project is being updated in 2 instances935 syncs only changed attributes936 updating cd_cd_settings937 does not raise an error938 #members & #requesters939 behaves like members and requesters associations940 #members_and_requesters941 includes members and requesters942 #members943 includes members and exclude requesters944 #requesters945 does not include requesters946 ci_pipelines association947 returns only pipelines from ci_sources948 modules949 is expected to includes the Gitlab::ConfigHelper module950 is expected to includes the Gitlab::ShellAdapter module951 is expected to includes the Gitlab::VisibilityLevel module952 is expected to includes the Referable module953 is expected to includes the Sortable module954 validation955 is expected to validate that :name cannot be empty/falsy956 is expected to validate that :name is case-sensitively unique within the scope of :namespace_id957 is expected to validate that the length of :name is at most 255958 is expected not to allow :path to be ‹"colon:in:path"›959 is expected to validate that :path cannot be empty/falsy960 is expected to validate that the length of :path is at most 255961 is expected to validate that the length of :description is at most 2000962 is expected to validate that the length of :ci_config_path is at most 255963 is expected to allow :ci_config_path to be ‹""›964 is expected not to allow :ci_config_path to be ‹"test/../foo"›965 is expected not to allow :ci_config_path to be ‹"/test/foo"›966 is expected to validate that :creator cannot be empty/falsy967 is expected to validate that :namespace cannot be empty/falsy968 is expected to validate that :repository_storage cannot be empty/falsy969 is expected to validate that :max_artifacts_size looks like an integer greater than 0970 is expected to validate that the length of :suggestion_commit_message is at most 255971 validates build timeout constraints972 does not allow new projects beyond user limits973 validates the visibility974 validates presence of project_feature975 validates project namespace creation976 does not create project namespace if project is not created977 repository storages inclusion978 does not allow repository storages that don't match a label in the configuration979 import_url980 does not allow an invalid URI as import_url981 does allow a SSH URI as import_url for persisted projects982 does not allow a SSH URI as import_url for new projects983 does allow a valid URI as import_url984 allows an empty URI985 does not produce import data on an empty URI986 does not produce import data on an invalid URI987 does not allow import_url pointing to localhost988 does not allow import_url pointing to the local network989 does not allow import_url with invalid ports for new projects990 does not allow import_url with invalid ports for persisted projects991 does not allow import_url with invalid user992 does not allow URLs with unencoded CR or LF characters993 allow URLs with CR or LF characters994 project pending deletion995 contains errors related to the project being deleted996 path validation997 allows paths reserved on the root namespace998 rejects paths reserved on another level999 rejects nested paths1000 allows a reserved group name1001 rejects a path ending in '.'1002 rejects a path starting with '.'1003 rejects a path ending in '-'1004 rejects a path starting with '-'1005 rejects a path ending in '_'1006 rejects a path starting with '_'1007 path is unchanged1008 does not raise validation error for path for existing project1009 behaves like a BulkUsersByEmailLoad model1010 #users_by_emails1011 when nothing is loaded1012 preforms the yielded query and supplies the data with only emails desired1013 when store is preloaded1014 passes back loaded data and does not update the items that already exist1015 #all_pipelines1016 has all pipelines1017 when builds are disabled1018 returns .external pipelines1019 #has_packages?1020 with maven packages1021 behaves like returning true examples1022 is expected to equal true1023 with npm packages1024 behaves like returning true examples1025 is expected to equal true1026 with conan packages1027 behaves like returning true examples1028 is expected to equal true1029 with no package type1030 behaves like returning false examples1031 is expected to equal false1032 #ci_pipelines1033 excludes dangling pipelines such as :webide1034 when builds are disabled1035 returns .external pipelines1036 #personal_namespace_holder?1037 project: personal_project, user: namespace_user, result: true1038 is expected to eq true1039 project: personal_project, user: admin_user, result: false1040 is expected to eq false1041 project: personal_project, user: another_user, result: false1042 is expected to eq false1043 project: personal_project, user: nil, result: false1044 is expected to eq false1045 project: group_project, user: namespace_user, result: false1046 is expected to eq false1047 project: group_project, user: group_owner_user, result: false1048 is expected to eq false1049 project: group_project, user: another_user, result: false1050 is expected to eq false1051 project: group_project, user: nil, result: false1052 is expected to eq false1053 project: group_project, user: nil, result: false1054 is expected to eq false1055 project: group_project, user: admin_user, result: false1056 is expected to eq false1057 #default_pipeline_lock1058 keep_latest_artifact_enabled: false, result_pipeline_locked: :unlocked1059 is expected to eq :unlocked1060 keep_latest_artifact_enabled: true, result_pipeline_locked: :artifacts_locked1061 is expected to eq :artifacts_locked1062 #membership_locked?1063 returns false1064 #autoclose_referenced_issues1065 when DB entry is nil1066 returns true1067 when DB entry is true1068 returns true1069 when DB entry is false1070 returns false1071 project token1072 sets an random token if none provided1073 does not set an random token if one provided1074 Respond to1075 is expected to respond to #url_to_repo1076 is expected to respond to #execute_hooks1077 is expected to respond to #owner1078 is expected to respond to #path_with_namespace1079 is expected to respond to #full_path1080 delegation1081 is expected to delegate #add_guest to the #team object1082 is expected to delegate #add_reporter to the #team object1083 is expected to delegate #add_developer to the #team object1084 is expected to delegate #add_maintainer to the #team object1085 is expected to delegate #add_member to the #team object1086 is expected to delegate #add_members to the #team object1087 is expected to delegate #team_members to the #team object as #members1088 is expected to delegate #owner_name to the #owner object as #name, allowing #owner to return nil1089 is expected to delegate #root_ancestor to the #namespace object, allowing #namespace to return nil1090 is expected to delegate #certificate_based_clusters_enabled? to the #namespace object, allowing #namespace to return nil1091 is expected to delegate #last_pipeline to the #commit object, allowing #commit to return nil1092 is expected to delegate #container_registry_enabled? to the #project_feature object1093 is expected to delegate #container_registry_access_level to the #project_feature object1094 read project settings1095 is expected to delegate #show_default_award_emojis to the #project_setting object, allowing #project_setting to return nil1096 is expected to delegate #show_default_award_emojis? to the #project_setting object, allowing #project_setting to return nil1097 is expected to delegate #warn_about_potentially_unwanted_characters to the #project_setting object, allowing #project_setting to return nil1098 is expected to delegate #warn_about_potentially_unwanted_characters? to the #project_setting object, allowing #project_setting to return nil1099 is expected to delegate #enforce_auth_checks_on_uploads to the #project_setting object, allowing #project_setting to return nil1100 is expected to delegate #enforce_auth_checks_on_uploads? to the #project_setting object, allowing #project_setting to return nil1101 write project settings1102 is expected to delegate #show_default_award_emojis= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1103 is expected to delegate #warn_about_potentially_unwanted_characters= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1104 is expected to delegate #enforce_auth_checks_on_uploads= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1105 when ci_cd_settings is destroyed but project is not1106 allows methods delegated to ci_cd_settings to be nil1107 #ci_forward_deployment_enabled?1108 behaves like a ci_cd_settings predicate method1109 when ci_cd_settings is nil1110 returns false1111 when ci_cd_settings is not nil1112 delegated_method_return: true, subject_return: true1113 returns the expected boolean value1114 delegated_method_return: false, subject_return: false1115 returns the expected boolean value1116 #ci_job_token_scope_enabled?1117 behaves like a ci_cd_settings predicate method1118 when ci_cd_settings is nil1119 returns false1120 when ci_cd_settings is not nil1121 delegated_method_return: true, subject_return: true1122 returns the expected boolean value1123 delegated_method_return: false, subject_return: false1124 returns the expected boolean value1125 #restrict_user_defined_variables?1126 behaves like a ci_cd_settings predicate method1127 when ci_cd_settings is nil1128 returns false1129 when ci_cd_settings is not nil1130 delegated_method_return: true, subject_return: true1131 returns the expected boolean value1132 delegated_method_return: false, subject_return: false1133 returns the expected boolean value1134 #keep_latest_artifacts_available?1135 behaves like a ci_cd_settings predicate method1136 when ci_cd_settings is nil1137 returns false1138 when ci_cd_settings is not nil1139 delegated_method_return: true, subject_return: true1140 returns the expected boolean value1141 delegated_method_return: false, subject_return: false1142 returns the expected boolean value1143 #keep_latest_artifact?1144 behaves like a ci_cd_settings predicate method1145 when ci_cd_settings is nil1146 returns false1147 when ci_cd_settings is not nil1148 delegated_method_return: true, subject_return: true1149 returns the expected boolean value1150 delegated_method_return: false, subject_return: false1151 returns the expected boolean value1152 #group_runners_enabled?1153 behaves like a ci_cd_settings predicate method1154 when ci_cd_settings is nil1155 returns false1156 when ci_cd_settings is not nil1157 delegated_method_return: true, subject_return: true1158 returns the expected boolean value1159 delegated_method_return: false, subject_return: false1160 returns the expected boolean value1161 #remove_project_authorizations1162 removes the project authorizations of the specified users in the current project1163 #merge_commit_template_or_default1164 returns default merge commit template1165 when merge commit template is set and not nil1166 returns current value1167 #merge_commit_template_or_default=1168 sets template to nil when set to default value1169 sets template to nil when set to default value but with CRLF line endings1170 allows changing template1171 allows setting template to nil1172 #squash_commit_template_or_default1173 returns default squash commit template1174 when squash commit template is set and not nil1175 returns current value1176 #squash_commit_template_or_default=1177 sets template to nil when set to default value1178 allows changing template1179 allows setting template to nil1180 reference methods1181 #to_reference1182 returns the path with reference_postfix1183 returns the path with reference_postfix when arg is self1184 returns the full_path with reference_postfix when full1185 returns the full_path with reference_postfix when cross-project1186 #to_reference_base1187 when nil argument1188 returns nil1189 when full is true1190 returns complete path to the project1191 when same project argument1192 returns nil1193 when cross namespace project argument1194 returns complete path to the project1195 when same namespace / cross-project argument1196 returns path to the project1197 when different namespace / cross-project argument with same owner1198 returns full path to the project1199 when argument is a namespace1200 with same project path1201 returns path to the project1202 with different project path1203 returns full path to the project1204 when argument is a user1205 returns full path to the project1206 #to_human_reference1207 when nil argument1208 returns nil1209 when same project argument1210 returns nil1211 when cross namespace project argument1212 returns complete name with namespace of the project1213 when same namespace / cross-project argument1214 returns name of the project1215 #merge_method1216 ff: true, rebase: true, method: :ff1217 is expected to eq :ff1218 ff: true, rebase: false, method: :ff1219 is expected to eq :ff1220 ff: false, rebase: true, method: :rebase_merge1221 is expected to eq :rebase_merge1222 ff: false, rebase: false, method: :merge1223 is expected to eq :merge1224 #readme_url1225 with a non-existing repository1226 returns nil1227 with an existing repository1228 when no README exists1229 returns nil1230 when a README exists1231 returns the README1232 #new_issuable_address1233 incoming email enabled1234 returns the address to create a new issue1235 returns the address to create a new merge request1236 returns nil with invalid address type1237 incoming email disabled1238 returns nil1239 returns nil1240 last_activity methods1241 last_activity1242 alias last_activity to last_event1243 last_activity_date1244 returns the project's last update date1245 #get_issue1246 with default issues tracker1247 returns an issue1248 returns count of open issues1249 returns nil when no issue found1250 returns nil when user doesn't have access1251 with external issues tracker1252 when internal issues are enabled1253 returns interlan issue1254 returns an ExternalIssue when internal issue does not exists1255 when internal issues are disabled1256 returns always an External issues1257 returns an ExternalIssue when internal issue does not exists1258 #open_issues_count1259 provides the issue count1260 invokes the count service with current_user1261 invokes the batch count service with no current_user1262 #open_merge_requests_count1263 provides the merge request count1264 #issue_exists?1265 is truthy when issue exists1266 is falsey when issue does not exist1267 #to_param1268 with namespace1269 is expected to eq "gitlabhq"1270 with invalid path1271 returns previous path to keep project suitable for use in URLs when persisted1272 returns current path when new record1273 #default_issues_tracker?1274 is true if used internal tracker1275 is false if used other tracker1276 #has_wiki?1277 returns true if project is wiki enabled or has external wiki1278 #first_owner1279 the project does not have a group1280 is the namespace owner1281 the project is in a group1282 is the group owner1283 #external_issue_tracker1284 sets Project#has_external_issue_tracker when it is nil1285 returns nil and does not query services when there is no external issue tracker1286 retrieves external_issue_tracker querying services and cache it when there is external issue tracker1287 #has_external_issue_tracker1288 is false when external issue tracker integration is not active1289 is false when other integration is active1290 when there is an active external issue tracker integration1291 is expected to eq true1292 becomes false when external issue tracker integration is destroyed1293 becomes false when external issue tracker integration becomes inactive1294 when there are two active external issue tracker integrations1295 does not become false when external issue tracker integration is destroyed1296 does not become false when external issue tracker integration becomes inactive1297 #external_wiki1298 returns an active external wiki1299 does not return an inactive external wiki1300 sets Project#has_external_wiki when it is nil1301 #has_external_wiki1302 is expected to eq false1303 when there is an active external wiki integration1304 is expected to eq true1305 becomes false if the external wiki integration is destroyed1306 becomes false if the external wiki integration becomes inactive1307 when created as inactive1308 is false1309 #star_count1310 counts stars from multiple users1311 counts stars on the right project1312 #avatar_type1313 is true if avatar is image1314 is false if avatar is html page1315 #avatar_url1316 when avatar file is uploaded1317 shows correct url1318 when avatar file in git1319 is expected to eq "http://localhost/namespace1/project176/-/avatar"1320 when git repo is empty1321 is expected to eq nil1322 #builds_enabled1323 is expected to be truthy1324 .sort_by_attribute1325 reorders the input relation by start count desc1326 reorders the input relation by last activity desc1327 reorders the input relation by last activity asc1328 .with_shared_runners1329 when shared runners are enabled for project1330 returns a project1331 when shared runners are disabled for project1332 returns an empty array1333 .with_remote_mirrors1334 when some remote mirrors are enabled for the project1335 returns a project1336 when some remote mirrors exists but disabled for the project1337 returns a project1338 when no remote mirrors exist for the project1339 returns an empty list1340 .with_jira_dvcs_cloud1341 returns the correct project1342 .with_jira_dvcs_server1343 returns the correct project1344 .cached_count1345 returns total project count1346 .trending1347 sorts projects by the amount of notes in descending order1348 does not take system notes into account1349 .starred_by1350 returns only projects starred by the given user1351 .with_limit1352 limits the number of projects returned1353 .visible_to_user1354 when a user has access to a project1355 is expected to eq [#<Project id:152 namespace1/project201>>]1356 when a user does not have access to any projects1357 is expected to eq []1358 .with_integration1359 returns the correct projects1360 .with_active_integration1361 returns the correct projects1362 .include_integration1363 avoids n + 11364 .service_desk_enabled1365 returns the correct project1366 #service_desk_enabled?1367 is enabled1368 #service_desk_address1369 when service_desk_email is disabled1370 behaves like with incoming email address1371 when incoming email is enabled1372 uses project full path as service desk address key1373 when incoming email is disabled1374 uses project full path as service desk address key1375 when service_desk_email is enabled1376 when project_key is set1377 returns custom address including the project_key1378 when project_key is not set1379 returns custom address including the project full path1380 .with_service_desk_key1381 returns projects with given key1382 returns empty if there is no project with the key1383 .find_by_url1384 url is internal1385 path is recognised as a project path1386 is expected to eq #<Project id:169 namespace1/project219>>1387 returns nil if the path detection throws an error1388 path is not a project path1389 is expected to be nil1390 url is external1391 is expected to be nil1392 .without_integration1393 returns projects without the integration1394 repository storage by default1395 picks storage from ApplicationSetting1396 shared runners by default1397 are enabled1398 is expected to be truthy1399 are disabled1400 is expected to be falsey1401 #any_online_runners?1402 shared runners1403 for shared runners disabled1404 has no runners available1405 has a specific runner1406 has a shared runner, but they are prohibited to use1407 checks the presence of specific runner1408 returns false if match cannot be found1409 returns false if runner is offline1410 for shared runners enabled1411 has a shared runner1412 checks the presence of shared runner1413 returns false if match cannot be found1414 group runners1415 for group runners disabled1416 has no runners available1417 has a group runner, but they are prohibited to use1418 for group runners enabled1419 has a group runner1420 has an offline group runner1421 checks the presence of group runner1422 returns false if match cannot be found1423 #shared_runners1424 behaves like shared_runners1425 when shared runners are enabled for project1426 returns a list of shared runners1427 when shared runners are disabled for project1428 returns a empty list1429 #available_shared_runners1430 behaves like shared_runners1431 when shared runners are enabled for project1432 returns a list of shared runners1433 when shared runners are disabled for project1434 returns a empty list1435 #visibility_level1436 by default1437 is expected to eq 01438 when set to INTERNAL in application settings1439 is expected to eq 101440 attribute_name: :visibility, value: "public"1441 sets the visibility level1442 attribute_name: :visibility_level, value: 201443 sets the visibility level1444 attribute_name: "visibility", value: "public"1445 sets the visibility level1446 attribute_name: "visibility_level", value: 201447 sets the visibility level1448 #visibility_level_allowed?1449 when checking on non-forked project1450 is expected to be truthy1451 is expected to be truthy1452 is expected to be truthy1453 when checking on forked project1454 is expected to be truthy1455 is expected to be truthy1456 is expected to be falsey1457 #pages_show_onboarding?1458 if there is no metadata1459 is expected to be truthy1460 if onboarding is complete1461 is expected to be falsey1462 if there is metadata, but onboarding is not complete1463 is expected to be truthy1464 will return false if pages is deployed even if onboarding_complete is false1465 is expected to be falsey1466 #pages_deployed?1467 if pages are deployed1468 is expected to be truthy1469 if public folder doesn't exist1470 is expected to be falsey1471 #default_branch_protected?1472 default_branch_protection_level: 0, result: false1473 is expected to eq false1474 default_branch_protection_level: 1, result: false1475 is expected to eq false1476 default_branch_protection_level: 3, result: true1477 is expected to eq true1478 default_branch_protection_level: 2, result: true1479 is expected to eq true1480 #pages_url1481 group page1482 is expected to eq "http://group.example.com"1483 mixed case path1484 is expected to eq "http://group.example.com"1485 project page1486 is expected to eq "http://group.example.com/project"1487 mixed case path1488 is expected to eq "http://group.example.com/Project"1489 #pages_group_url1490 group page1491 is expected to eq "http://group.example.com:1234"1492 project page1493 is expected to eq "http://group.example.com:1234"1494 .search1495 returns projects with a matching name1496 returns projects with a partially matching name1497 returns projects with a matching name regardless of the casing1498 returns projects with a matching description1499 returns projects with a partially matching description1500 returns projects with a matching description regardless of the casing1501 returns projects with a matching path1502 returns projects with a partially matching path1503 returns projects with a matching path regardless of the casing1504 when include_namespace is true1505 returns projects that match the group path1506 returns projects that match the full path1507 with pending_delete project1508 shows pending deletion project1509 .optionally_search1510 searches for projects matching the query if one is given1511 returns the current relation if no search query is given1512 .eager_load_namespace_and_owner1513 eager loads the namespace and namespace owner1514 #expire_caches_before_rename1515 expires the caches of the repository and wiki1516 .search_by_title1517 returns projects with a matching name1518 returns projects with a partially matching name1519 returns projects with a matching name regardless of the casing1520 when checking projects from groups1521 when group is private project can not be internal1522 is expected to be falsey1523 when group is internal project can not be public1524 is expected to be falsey1525 #track_project_repository1526 with projects on legacy storage1527 behaves like tracks storage location1528 when a project repository entry does not exist1529 creates a new entry1530 tracks the project storage location1531 when a tracking entry exists1532 does not create a new entry in the database1533 updates the project storage location1534 with projects on hashed storage1535 behaves like tracks storage location1536 when a project repository entry does not exist1537 creates a new entry1538 tracks the project storage location1539 when a tracking entry exists1540 does not create a new entry in the database1541 updates the project storage location1542 #create_repository1543 using a regular repository1544 creates the repository1545 adds an error if the repository could not be created1546 using a forked repository1547 does nothing1548 #ensure_repository1549 creates the repository if it not exist1550 does not create the repository if it exists1551 creates the repository if it is a fork1552 handling import URL1553 returns the sanitized URL1554 saves the url credentials percent decoded1555 saves url with no credentials1556 #container_registry_url1557 for enabled registry1558 is expected not to be nil1559 for disabled registry1560 is expected to be nil1561 #container_repositories_size1562 on gitlab.com1563 no_container_repositories: true, all_migrated: nil, gitlab_api_supported: nil, returned_size: nil, expected_result: 01564 is expected to eq 01565 no_container_repositories: false, all_migrated: false, gitlab_api_supported: nil, returned_size: nil, expected_result: nil1566 is expected to eq nil1567 no_container_repositories: false, all_migrated: true, gitlab_api_supported: false, returned_size: nil, expected_result: nil1568 is expected to eq nil1569 no_container_repositories: false, all_migrated: true, gitlab_api_supported: true, returned_size: 555, expected_result: 5551570 is expected to eq 5551571 no_container_repositories: false, all_migrated: true, gitlab_api_supported: true, returned_size: nil, expected_result: nil1572 is expected to eq nil1573 not on gitlab.com1574 is expected to eq nil1575 #container_registry_enabled=1576 updates project_feature1577 #container_registry_enabled1578 delegates to project_feature1579 #has_container_registry_tags?1580 when container registry is enabled1581 when tags are present for multi-level registries1582 has image tags1583 when tags are present for root repository1584 has image tags1585 when there are no tags at all1586 does not have image tags1587 when container registry is disabled1588 does not have image tags1589 does not check root repository tags1590 iterates through container repositories1591 #ci_config_path=1592 default_ci_config_path: nil, project_ci_config_path: :notset, expected_ci_config_path: :default1593 returns the correct path1594 default_ci_config_path: nil, project_ci_config_path: nil, expected_ci_config_path: :default1595 returns the correct path1596 default_ci_config_path: nil, project_ci_config_path: "", expected_ci_config_path: :default1597 returns the correct path1598 default_ci_config_path: nil, project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"1599 returns the correct path1600 default_ci_config_path: "", project_ci_config_path: :notset, expected_ci_config_path: :default1601 returns the correct path1602 default_ci_config_path: "", project_ci_config_path: nil, expected_ci_config_path: :default1603 returns the correct path1604 default_ci_config_path: "", project_ci_config_path: "", expected_ci_config_path: :default1605 returns the correct path1606 default_ci_config_path: "", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"1607 returns the correct path1608 default_ci_config_path: "global/path", project_ci_config_path: :notset, expected_ci_config_path: "global/path"1609 returns the correct path1610 default_ci_config_path: "global/path", project_ci_config_path: nil, expected_ci_config_path: :default1611 returns the correct path1612 default_ci_config_path: "global/path", project_ci_config_path: "", expected_ci_config_path: :default1613 returns the correct path1614 default_ci_config_path: "global/path", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"1615 returns the correct path1616 #uses_default_ci_config?1617 has a custom ci config path1618 has a blank ci config path1619 does not have a custom ci config path1620 #uses_external_project_ci_config?1621 when ci_config_path is configured with external project1622 is expected to eq true1623 when ci_config_path is nil1624 is expected to eq false1625 when ci_config_path is configured with a file in the project1626 is expected to eq false1627 when ci_config_path is configured with remote file1628 is expected to eq false1629 #latest_successful_build_for_ref1630 behaves like latest successful build for sha or ref1631 with many builds1632 gives the latest builds from latest pipeline1633 with succeeded pipeline1634 standalone pipeline1635 returns builds for ref for default_branch1636 with nonexistent build1637 returns empty relation if the build cannot be found1638 with some pending pipeline1639 gives the latest build from latest pipeline1640 with pending pipeline1641 returns empty relation1642 with build belonging to a child pipeline1643 returns the child build1644 with a specified ref1645 is expected to eq #<Ci::Build status: "pending", finished_at: "2022-07-07 08:53:29.000000000 +0000", trace: nil, create...r_resource_at: nil, processed: false, scheduling_type: "stage", id: 14, stage_id: 13, tag_list: nil>1646 #latest_pipeline1647 default repository branch1648 when explicitly provided1649 is expected to eq #<Ci::Pipeline id: 14, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..._sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 6, locked: "artifacts_locked">1650 when not provided1651 is expected to eq #<Ci::Pipeline id: 17, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni..._sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 8, locked: "artifacts_locked">1652 with provided sha1653 is expected to eq #<Ci::Pipeline id: 22, ref: "master", sha: "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", before_sha: ni...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 10, locked: "artifacts_locked">1654 provided ref1655 is expected to eq #<Ci::Pipeline id: 24, ref: "add-ipython-files", sha: "4963fefc990451a8ad34289ce266b757456fc88c", bef...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 13, locked: "artifacts_locked">1656 with provided sha1657 is expected to eq #<Ci::Pipeline id: 29, ref: "add-ipython-files", sha: "4963fefc990451a8ad34289ce266b757456fc88c", bef...sha: nil, target_sha: nil, external_pull_request_id: nil, ci_ref_id: 15, locked: "artifacts_locked">1658 bad ref1659 is expected to be nil1660 on deleted ref1661 always returns nil despite a pipeline exists1662 #latest_successful_build_for_sha1663 behaves like latest successful build for sha or ref1664 with many builds1665 gives the latest builds from latest pipeline1666 with succeeded pipeline1667 standalone pipeline1668 returns builds for ref for default_branch1669 with nonexistent build1670 returns empty relation if the build cannot be found1671 with some pending pipeline1672 gives the latest build from latest pipeline1673 with pending pipeline1674 returns empty relation1675 with build belonging to a child pipeline1676 returns the child build1677 #latest_successful_build_for_ref!1678 with many builds1679 gives the latest builds from latest pipeline1680 with succeeded pipeline1681 standalone pipeline1682 returns builds for ref for default_branch1683 returns exception if the build cannot be found1684 with some pending pipeline1685 gives the latest build from latest pipeline1686 with pending pipeline1687 returns empty relation1688 #import_status1689 with import_state1690 returns the right status1691 without import_state1692 returns none1693 #jira_import_status1694 when no jira imports1695 returns none1696 when there are jira imports1697 when latest import status is initial or jira imports are mising1698 returns initial1699 when latest import status is scheduled1700 returns scheduled1701 #human_import_status_name1702 with import_state1703 returns the right human import status1704 without import_state1705 returns none1706 #add_import_job1707 forked1708 schedules a RepositoryForkWorker job1709 without repository1710 schedules RepositoryImportWorker1711 not forked1712 schedules a RepositoryImportWorker job1713 jira import1714 schedules a jira import job1715 #jira_import?1716 is expected to equal true1717 is expected to equal true1718 #github_import?1719 is expected to equal true1720 #github_enterprise_import?1721 is expected to equal true1722 is expected to equal false1723 is expected to equal true1724 is expected to equal true1725 #remove_import_data1726 when jira import1727 does remove import data1728 when neither a mirror nor a jira import1729 removes import data1730 #gitlab_project_import?1731 is expected to equal true1732 #gitea_import?1733 is expected to equal true1734 #has_remote_mirror?1735 returns true when a remote mirror is enabled1736 returns false when remote mirror is disabled1737 #update_remote_mirrors1738 syncs enabled remote mirror1739 does nothing when remote mirror is disabled globally and not overridden1740 does not sync disabled remote mirrors1741 #remote_mirror_available?1742 when remote mirror global setting is enabled1743 returns true1744 when remote mirror global setting is disabled1745 returns true when overridden1746 returns false when not overridden1747 #mark_primary_write_location1748 marks the location with project ID1749 #mark_stuck_remote_mirrors_as_failed!1750 fails stuck remote mirrors1751 #ancestors1752 with linear_project_ancestors feature flag enabled1753 group ancestory1754 behaves like project with group ancestors1755 returns all ancestors1756 behaves like project with ordered group ancestors1757 returns ancestors ordered by descending hierarchy1758 namespace ancestry1759 is expected to be empty1760 with linear_project_ancestors feature flag disabled1761 group ancestory1762 behaves like project with group ancestors1763 returns all ancestors1764 behaves like project with ordered group ancestors1765 returns ancestors ordered by descending hierarchy1766 namespace ancestry1767 is expected to be empty1768 #ancestors_upto1769 group ancestry1770DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1771and will be no longer quoted as id value in Rails 6.2.1772 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)1773 includes ancestors upto but excluding the given ancestor1774 behaves like project with group ancestors1775 returns all ancestors1776 behaves like project with ordered group ancestors1777 returns ancestors ordered by descending hierarchy1778 with hierarchy_order1779DEPRECATION WARNING: Passing an Active Record object to `quote` directly is deprecated1780and will be no longer quoted as id value in Rails 6.2.1781 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)1782 can be used with upto option1783 namespace ancestry1784 is expected to be empty1785 #root_ancestor1786 is expected to eq #<Namespaces::UserNamespace id: 1, name: "Sidney Jones2", path: "namespace1", owner_id: 1, created_at...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>1787 in a group1788 is expected to eq #<Group id:387 @group55>1789 in a nested group1790 is expected to eq #<Group id:390 @group56>1791 #emails_disabled?1792 emails disabled in group1793 returns true1794 emails enabled in group1795 returns false1796 returns true1797 #lfs_enabled?1798 LFS disabled in group1799 behaves like project overrides group1800 returns true when enabled in project1801 returns false when disabled in project1802 returns the value from the namespace, when no value is set in project1803 LFS enabled in group1804 behaves like project overrides group1805 returns true when enabled in project1806 returns false when disabled in project1807 returns the value from the namespace, when no value is set in project1808 LFS disabled globally1809 when no values are set1810 behaves like it always returns false1811 is expected to be falsey1812 when all values are set to true1813 behaves like it always returns false1814 is expected to be falsey1815 #after_repository_change_head1816 updates commit count1817 reloads the default branch1818 #after_change_head_branch_does_not_exist1819 adds an error to container if branch does not exist1820 #lfs_objects_for_repository_types1821 returns LFS objects of the specified type only1822 forks1823 #fork_network1824 includes a fork of the project1825 includes a fork of a fork1826 includes sibling forks1827 includes the base project1828 #in_fork_network_of?1829 is true for a real fork1830 is true for a fork of a fork1831 is true for sibling forks1832 is false when another project is given1833 #fork_source1834 returns the direct source if it exists1835 returns the root of the fork network when the directs source was deleted1836 returns nil if it is the root of the fork network1837 #forks1838 includes direct forks of the project1839 #lfs_object_oids_from_fork_source1840 when fork has one of two LFS objects1841 returns OIDs of owned LFS objects1842 returns empty when project is not a fork1843 behaves like can housekeep repository1844 with a clean redis state1845 #pushes_since_gc1846 without any pushes1847 returns 01848 with a number of pushes1849 returns the number of pushes1850 #increment_pushes_since_gc1851 increments the number of pushes since the last GC1852 #reset_pushes_since_gc1853 resets the number of pushes since the last GC1854 #pushes_since_gc_redis_shared_state_key1855 returns the proper redis key format1856 #git_garbage_collect_worker_klass1857 defines a git gargabe collect worker1858 #deployment_variables1859 when the deployment platform is stubbed1860 when project has a deployment platform1861 is expected to eq ["platform", "variables"]1862 when project has no deployment platform1863 is expected to eq []1864 when project has a deployment platforms1865 when environment name is review/name1866 returns variables from this service1867 when environment name is other1868 returns variables from this service1869 #default_environment1870 returns production environment when it exists1871 returns first environment when no production environment exists1872 returns nil when no available environment exists1873 #ci_variables_for1874 memoizes the result by ref and environment1875 when the ref is not protected1876 contains only the CI variables1877 when the ref is a protected branch1878 behaves like ref is protected1879 contains all the variables1880 when the ref is a protected tag1881 behaves like ref is protected1882 contains all the variables1883 when environment name is specified1884 when environment scope is exactly matched1885 is expected to contain exactly #<Ci::Variable id: 10, key: [FILTERED], value: nil, encrypted_value: "td7+x5ggt8RP8ZgUKKW+FQ==\n", en...tected: false, environment_scope: "review/name", masked: false, variable_type: "env_var", raw: true>1886 when environment scope is matched by wildcard1887 is expected to contain exactly #<Ci::Variable id: 12, key: [FILTERED], value: nil, encrypted_value: "Yp9nES7XtQp6uFkPAKtCew==\n", en...protected: false, environment_scope: "review/*", masked: false, variable_type: "env_var", raw: true>1888 when environment scope does not match1889 is expected not to contain exactly #<Ci::Variable id: 14, key: [FILTERED], value: nil, encrypted_value: "Ty5rn1YnBIROo9IqwkxWsw==\n", en...d: false, environment_scope: "review/*/special", masked: false, variable_type: "env_var", raw: true>1890 when environment scope has _1891 does not treat it as wildcard1892 when environment name contains underscore1893 matches literally for _1894 when environment scope has %1895 does not treat it as wildcard1896 when environment name contains a percent1897 matches literally for _1898 when variables with the same name have different environment scopes1899 puts variables matching environment scope more in the end1900 #any_lfs_file_locks?1901 returns false when there are no LFS file locks1902 returns a cached true when there are LFS file locks1903 #protected_for?1904 when ref is nil1905 returns false1906 when ref is ref name1907 when ref is ambiguous1908 raises an error1909 when the ref is not protected1910 behaves like ref is not protected1911 returns false1912 when the ref is a protected branch1913 behaves like ref is protected branch1914 returns true1915 when the ref is a protected tag1916 behaves like ref is protected tag1917 returns true1918 when ref does not exist1919 returns false1920 when ref is full ref1921 when the ref is not protected1922 behaves like ref is not protected1923 returns false1924 when the ref is a protected branch1925 behaves like ref is protected branch1926 returns true1927 when the ref is a protected tag1928 behaves like ref is protected tag1929 returns true1930 when branch ref name is a full tag ref1931 when ref is not protected1932 returns false1933 when ref is a protected branch1934 returns true1935 when ref does not exist1936 returns false1937 #update_project_statistics1938 is called after creation1939 copies the namespace_id1940 updates the namespace_id when changed1941 inside_path1942 returns correct project1943 #route_map_for1944 when there is a .gitlab/route-map.yml at the commit1945 when the route map is valid1946 returns a route map1947 when the route map is invalid1948 returns nil1949 when there is no .gitlab/route-map.yml at the commit1950 returns nil1951 #public_path_for_source_path1952 when there is a route map1953 returns a public path with a leading slash unmodified1954 when the source path is mapped1955 returns the public path1956 when the source path is not mapped1957 returns nil1958 when there is no route map1959 returns nil1960 #parent1961 is expected to eq #<Namespaces::UserNamespace id: 1, name: "Sidney Jones2", path: "namespace1", owner_id: 1, created_at...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>1962 #parent_id1963 is expected to eq 11964 #parent_changed?1965 is expected to be truthy1966 #default_merge_request_target1967 when mr_default_target_self is set to true1968 returns the current project1969 when merge request can not target upstream1970 returns the current project1971 when merge request can target upstream1972 returns the source project1973 #mr_can_target_upstream?1974 when forked from a more visible project1975 can not target the upstream project1976 when forked from a project with disabled merge requests1977 can not target the upstream project1978 when forked from a project with enabled merge requests1979 can target the upstream project1980 when not forked1981 can not target the upstream project1982 #pages_url1983 top-level group1984 group page1985 is expected to eq "http://group.example.com"1986 project page1987 is expected to eq "http://group.example.com/project"1988 nested group1989 group page1990 is expected to eq "http://group.example.com/group86/group.example.com"1991 project page1992 is expected to eq "http://group.example.com/group87/project"1993 #lfs_http_url_to_repo1994 when a custom HTTP clone URL root is not set1995 returns the url to the repo without a username1996 when a custom HTTP clone URL root is set1997 returns the url to the repo, with the root replaced with the custom one1998 #pipeline_status1999 builds a pipeline status2000 hase a loaded pipeline status2001 #update2002 validates the visibility2003 does not validate the visibility2004 #last_repository_updated_at2005 sets to created_at upon creation2006 .public_or_visible_to_user2007 with a user2008 includes projects the user has access to2009 includes projects the user can see2010 without a user2011 only includes public projects2012 min_access_level2013 excludes projects when user does not have required minimum access level2014 with deploy token users2015 deploy token user without project2016 is expected to eq []2017 deploy token user with project2018 is expected to include #<Project id:375 namespace1/project484>>2019 .ids_with_issuables_available_for2020 returns project ids with milestones available for user2021 .with_feature_available_for_user2022 with user2023 behaves like feature disabled2024 does not return projects with the project feature disabled2025 behaves like feature public2026 returns projects with the project feature public2027 behaves like feature enabled2028 returns projects with the project feature enabled2029 behaves like feature access level is nil2030 returns projects with the project feature access level nil2031 when feature is private2032 when user does not have access to the feature2033 does not return projects with the project feature private2034 when user has access to the feature2035 returns projects with the project feature private2036 user is an admin2037 behaves like feature disabled2038 does not return projects with the project feature disabled2039 behaves like feature public2040 returns projects with the project feature public2041 behaves like feature enabled2042 returns projects with the project feature enabled2043 behaves like feature access level is nil2044 returns projects with the project feature access level nil2045 when feature is private2046 when admin mode is enabled2047 returns projects with the project feature private2048 when admin mode is disabled2049 does not return projects with the project feature private2050 without user2051 behaves like feature disabled2052 does not return projects with the project feature disabled2053 behaves like feature public2054 returns projects with the project feature public2055 behaves like feature enabled2056 returns projects with the project feature enabled2057 behaves like feature access level is nil2058 returns projects with the project feature access level nil2059 when feature is private2060 does not return projects with the project feature private2061 .filter_by_feature_visibility2062 with reporter level access2063 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12064 behaves like filter respects visibility2065 respects visibility2066 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12067 behaves like filter respects visibility2068 respects visibility2069 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12070 behaves like filter respects visibility2071 respects visibility2072 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12073 behaves like filter respects visibility2074 respects visibility2075 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12076 behaves like filter respects visibility2077 respects visibility2078 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12079 behaves like filter respects visibility2080 respects visibility2081 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12082 behaves like filter respects visibility2083 respects visibility2084 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02085 behaves like filter respects visibility2086 respects visibility2087 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12088 behaves like filter respects visibility2089 respects visibility2090 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 02091 behaves like filter respects visibility2092 respects visibility2093 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02094 behaves like filter respects visibility2095 respects visibility2096 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02097 behaves like filter respects visibility2098 respects visibility2099 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02100 behaves like filter respects visibility2101 respects visibility2102 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02103 behaves like filter respects visibility2104 respects visibility2105 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02106 behaves like filter respects visibility2107 respects visibility2108 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02109 behaves like filter respects visibility2110 respects visibility2111 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12112 behaves like filter respects visibility2113 respects visibility2114 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12115 behaves like filter respects visibility2116 respects visibility2117 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12118 behaves like filter respects visibility2119 respects visibility2120 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12121 behaves like filter respects visibility2122 respects visibility2123 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12124 behaves like filter respects visibility2125 respects visibility2126 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02127 behaves like filter respects visibility2128 respects visibility2129 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12130 behaves like filter respects visibility2131 respects visibility2132 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02133 behaves like filter respects visibility2134 respects visibility2135 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12136 behaves like filter respects visibility2137 respects visibility2138 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 02139 behaves like filter respects visibility2140 respects visibility2141 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02142 behaves like filter respects visibility2143 respects visibility2144 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02145 behaves like filter respects visibility2146 respects visibility2147 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02148 behaves like filter respects visibility2149 respects visibility2150 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02151 behaves like filter respects visibility2152 respects visibility2153 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02154 behaves like filter respects visibility2155 respects visibility2156 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02157 behaves like filter respects visibility2158 respects visibility2159 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12160 behaves like filter respects visibility2161 respects visibility2162 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02163 behaves like filter respects visibility2164 respects visibility2165 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12166 behaves like filter respects visibility2167 respects visibility2168 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 02169 behaves like filter respects visibility2170 respects visibility2171 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02172 behaves like filter respects visibility2173 respects visibility2174 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02175 behaves like filter respects visibility2176 respects visibility2177 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02178 behaves like filter respects visibility2179 respects visibility2180 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02181 behaves like filter respects visibility2182 respects visibility2183 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02184 behaves like filter respects visibility2185 respects visibility2186 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02187 behaves like filter respects visibility2188 respects visibility2189 with feature issues2190 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12191 behaves like filter respects visibility2192 respects visibility2193 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12194 behaves like filter respects visibility2195 respects visibility2196 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12197 behaves like filter respects visibility2198 respects visibility2199 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12200 behaves like filter respects visibility2201 respects visibility2202 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12203 behaves like filter respects visibility2204 respects visibility2205 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12206 behaves like filter respects visibility2207 respects visibility2208 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12209 behaves like filter respects visibility2210 respects visibility2211 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02212 behaves like filter respects visibility2213 respects visibility2214 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12215 behaves like filter respects visibility2216 respects visibility2217 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12218 behaves like filter respects visibility2219 respects visibility2220 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02221 behaves like filter respects visibility2222 respects visibility2223 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02224 behaves like filter respects visibility2225 respects visibility2226 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02227 behaves like filter respects visibility2228 respects visibility2229 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02230 behaves like filter respects visibility2231 respects visibility2232 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02233 behaves like filter respects visibility2234 respects visibility2235 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02236 behaves like filter respects visibility2237 respects visibility2238 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12239 behaves like filter respects visibility2240 respects visibility2241 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12242 behaves like filter respects visibility2243 respects visibility2244 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12245 behaves like filter respects visibility2246 respects visibility2247 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12248 behaves like filter respects visibility2249 respects visibility2250 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12251 behaves like filter respects visibility2252 respects visibility2253 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02254 behaves like filter respects visibility2255 respects visibility2256 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12257 behaves like filter respects visibility2258 respects visibility2259 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02260 behaves like filter respects visibility2261 respects visibility2262 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12263 behaves like filter respects visibility2264 respects visibility2265 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12266 behaves like filter respects visibility2267 respects visibility2268 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02269 behaves like filter respects visibility2270 respects visibility2271 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02272 behaves like filter respects visibility2273 respects visibility2274 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02275 behaves like filter respects visibility2276 respects visibility2277 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02278 behaves like filter respects visibility2279 respects visibility2280 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02281 behaves like filter respects visibility2282 respects visibility2283 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02284 behaves like filter respects visibility2285 respects visibility2286 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12287 behaves like filter respects visibility2288 respects visibility2289 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02290 behaves like filter respects visibility2291 respects visibility2292 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12293 behaves like filter respects visibility2294 respects visibility2295 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12296 behaves like filter respects visibility2297 respects visibility2298 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02299 behaves like filter respects visibility2300 respects visibility2301 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02302 behaves like filter respects visibility2303 respects visibility2304 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02305 behaves like filter respects visibility2306 respects visibility2307 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02308 behaves like filter respects visibility2309 respects visibility2310 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02311 behaves like filter respects visibility2312 respects visibility2313 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02314 behaves like filter respects visibility2315 respects visibility2316 with feature wiki2317 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12318 behaves like filter respects visibility2319 respects visibility2320 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12321 behaves like filter respects visibility2322 respects visibility2323 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12324 behaves like filter respects visibility2325 respects visibility2326 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12327 behaves like filter respects visibility2328 respects visibility2329 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12330 behaves like filter respects visibility2331 respects visibility2332 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12333 behaves like filter respects visibility2334 respects visibility2335 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12336 behaves like filter respects visibility2337 respects visibility2338 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02339 behaves like filter respects visibility2340 respects visibility2341 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12342 behaves like filter respects visibility2343 respects visibility2344 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12345 behaves like filter respects visibility2346 respects visibility2347 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02348 behaves like filter respects visibility2349 respects visibility2350 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02351 behaves like filter respects visibility2352 respects visibility2353 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02354 behaves like filter respects visibility2355 respects visibility2356 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02357 behaves like filter respects visibility2358 respects visibility2359 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02360 behaves like filter respects visibility2361 respects visibility2362 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02363 behaves like filter respects visibility2364 respects visibility2365 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12366 behaves like filter respects visibility2367 respects visibility2368 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12369 behaves like filter respects visibility2370 respects visibility2371 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12372 behaves like filter respects visibility2373 respects visibility2374 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12375 behaves like filter respects visibility2376 respects visibility2377 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12378 behaves like filter respects visibility2379 respects visibility2380 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02381 behaves like filter respects visibility2382 respects visibility2383 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12384 behaves like filter respects visibility2385 respects visibility2386 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02387 behaves like filter respects visibility2388 respects visibility2389 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12390 behaves like filter respects visibility2391 respects visibility2392 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12393 behaves like filter respects visibility2394 respects visibility2395 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02396 behaves like filter respects visibility2397 respects visibility2398 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02399 behaves like filter respects visibility2400 respects visibility2401 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02402 behaves like filter respects visibility2403 respects visibility2404 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02405 behaves like filter respects visibility2406 respects visibility2407 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02408 behaves like filter respects visibility2409 respects visibility2410 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02411 behaves like filter respects visibility2412 respects visibility2413 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12414 behaves like filter respects visibility2415 respects visibility2416 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02417 behaves like filter respects visibility2418 respects visibility2419 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12420 behaves like filter respects visibility2421 respects visibility2422 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12423 behaves like filter respects visibility2424 respects visibility2425 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02426 behaves like filter respects visibility2427 respects visibility2428 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02429 behaves like filter respects visibility2430 respects visibility2431 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02432 behaves like filter respects visibility2433 respects visibility2434 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02435 behaves like filter respects visibility2436 respects visibility2437 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02438 behaves like filter respects visibility2439 respects visibility2440 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02441 behaves like filter respects visibility2442 respects visibility2443 with feature code2444 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12445 behaves like filter respects visibility2446 respects visibility2447 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12448 behaves like filter respects visibility2449 respects visibility2450 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12451 behaves like filter respects visibility2452 respects visibility2453 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12454 behaves like filter respects visibility2455 respects visibility2456 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12457 behaves like filter respects visibility2458 respects visibility2459 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12460 behaves like filter respects visibility2461 respects visibility2462 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12463 behaves like filter respects visibility2464 respects visibility2465 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02466 behaves like filter respects visibility2467 respects visibility2468 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12469 behaves like filter respects visibility2470 respects visibility2471 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12472 behaves like filter respects visibility2473 respects visibility2474 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02475 behaves like filter respects visibility2476 respects visibility2477 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02478 behaves like filter respects visibility2479 respects visibility2480 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02481 behaves like filter respects visibility2482 respects visibility2483 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02484 behaves like filter respects visibility2485 respects visibility2486 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02487 behaves like filter respects visibility2488 respects visibility2489 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02490 behaves like filter respects visibility2491 respects visibility2492 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12493 behaves like filter respects visibility2494 respects visibility2495 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12496 behaves like filter respects visibility2497 respects visibility2498 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12499 behaves like filter respects visibility2500 respects visibility2501 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12502 behaves like filter respects visibility2503 respects visibility2504 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12505 behaves like filter respects visibility2506 respects visibility2507 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02508 behaves like filter respects visibility2509 respects visibility2510 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12511 behaves like filter respects visibility2512 respects visibility2513 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02514 behaves like filter respects visibility2515 respects visibility2516 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12517 behaves like filter respects visibility2518 respects visibility2519 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12520 behaves like filter respects visibility2521 respects visibility2522 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02523 behaves like filter respects visibility2524 respects visibility2525 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02526 behaves like filter respects visibility2527 respects visibility2528 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02529 behaves like filter respects visibility2530 respects visibility2531 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02532 behaves like filter respects visibility2533 respects visibility2534 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02535 behaves like filter respects visibility2536 respects visibility2537 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02538 behaves like filter respects visibility2539 respects visibility2540 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12541 behaves like filter respects visibility2542 respects visibility2543 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02544 behaves like filter respects visibility2545 respects visibility2546 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12547 behaves like filter respects visibility2548 respects visibility2549 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 02550 behaves like filter respects visibility2551 respects visibility2552 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02553 behaves like filter respects visibility2554 respects visibility2555 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02556 behaves like filter respects visibility2557 respects visibility2558 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02559 behaves like filter respects visibility2560 respects visibility2561 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02562 behaves like filter respects visibility2563 respects visibility2564 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02565 behaves like filter respects visibility2566 respects visibility2567 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02568 behaves like filter respects visibility2569 respects visibility2570 .wrap_with_cte2571 wrapped query matches original2572 #pages_available?2573 when the project is in a top level namespace2574 is expected to equal true2575 when the project is in a subgroup2576 is expected to equal true2577 #remove_private_deploy_keys2578 for a private deploy key2579 when the key is not linked to another project2580 removes the key2581 when the key is linked to another project2582 does not remove the key2583 for a public deploy key2584 does not remove the key2585 #remove_export2586/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil2587 removes the export2588 with export2589 #export_file_exists? returns true2590 #export_archive_exists? returns false2591 #forks_count2592 returns the number of forks2593 #git_transfer_in_progress?2594 project_reference_counter: 0, wiki_reference_counter: 0, design_reference_counter: 0, result: false2595 is expected to equal false2596 project_reference_counter: 2, wiki_reference_counter: 0, design_reference_counter: 0, result: true2597 is expected to equal true2598 project_reference_counter: 0, wiki_reference_counter: 2, design_reference_counter: 0, result: true2599 is expected to equal true2600 project_reference_counter: 0, wiki_reference_counter: 0, design_reference_counter: 2, result: true2601 is expected to equal true2602 legacy storage2603 #base_dir2604 returns base_dir based on namespace only2605 #disk_path2606 returns disk_path based on namespace and project path2607 #legacy_storage?2608 returns true when storage_version is nil2609 returns true when the storage_version is 02610 #hashed_storage?2611 returns false2612 #pages_path2613 returns a path where pages are stored2614 #migrate_to_hashed_storage!2615 returns true2616 does not run validation2617 schedules HashedStorage::ProjectMigrateWorker with delayed start when the project repo is in use2618 schedules HashedStorage::ProjectMigrateWorker with delayed start when the wiki repo is in use2619 schedules HashedStorage::ProjectMigrateWorker2620 #rollback_to_legacy_storage!2621 returns nil2622 does not run validations2623 hashed storage2624 #legacy_storage?2625 returns false2626 #hashed_storage?2627 returns true if rolled out2628 returns false when not rolled out yet2629 #base_dir2630 returns base_dir based on hash of project id2631 #disk_path2632 returns disk_path based on hash of project id2633 #pages_path2634 returns a path where pages are stored2635 #migrate_to_hashed_storage!2636 returns nil2637 does not flag as read-only2638 when partially migrated2639 enqueues a job2640 #rollback_to_legacy_storage!2641 returns true2642 does not run validations2643 does not flag as read-only2644 enqueues a job2645 #has_ci?2646 when has .gitlab-ci.yml2647 CI is available2648 when there is no .gitlab-ci.yml2649 CI is available2650 when auto devops is disabled2651 CI is not available2652 #predefined_project_variables2653 is expected to include nil2654 when ci config path is overridden2655 is expected to include nil2656 #dependency_proxy_variables2657 when dependency_proxy is enabled2658 contains the downcased name2659 when dependency_proxy is disabled2660 is expected to be empty2661 #auto_devops_enabled?2662 when explicitly enabled2663 is expected to be truthy2664 when explicitly disabled2665 is expected to be falsey2666 when enabled in settings2667 is expected to be truthy2668 when disabled in settings2669 is expected to be falsey2670 when explicitly enabled2671 is expected to be truthy2672 when explicitly disabled2673 is expected to be falsey2674 when force_autodevops_on_by_default is enabled for the project2675 is expected to be truthy2676 with group parents2677 when enabled on parent2678 when auto devops instance enabled2679 is expected to be truthy2680 when auto devops instance disabled2681 is expected to be truthy2682 when disabled on parent2683 when auto devops instance enabled2684 is expected to be falsy2685 when auto devops instance disabled2686 is expected to be falsy2687 when enabled on root parent2688 when auto devops instance enabled2689 is expected to be truthy2690 when auto devops instance disabled2691 is expected to be truthy2692 when explicitly disabled on parent2693 is expected to be falsy2694 when disabled on root parent2695 when auto devops instance enabled2696 is expected to be falsy2697 when auto devops instance disabled2698 is expected to be falsy2699 when explicitly disabled on parent2700 is expected to be falsy2701 #has_auto_devops_implicitly_enabled?2702 when disabled in settings2703 does not have auto devops implicitly disabled2704 when enabled in settings2705 auto devops is implicitly disabled2706 when explicitly disabled2707 does not have auto devops implicitly disabled2708 when explicitly enabled2709 does not have auto devops implicitly disabled2710 when enabled on group2711 has auto devops implicitly enabled2712 when enabled on parent group2713 has auto devops implicitly enabled2714 #has_auto_devops_implicitly_disabled?2715 when explicitly disabled2716 does not have auto devops implicitly disabled2717 when explicitly enabled2718 does not have auto devops implicitly disabled2719 when enabled in settings2720 does not have auto devops implicitly disabled2721 when disabled in settings2722 auto devops is implicitly disabled2723 when force_autodevops_on_by_default is enabled for the project2724 does not have auto devops implicitly disabled2725 when disabled on group2726 has auto devops implicitly disabled2727 when disabled on parent group2728 has auto devops implicitly disabled2729 #api_variables2730 exposes API v4 URL2731 contains a URL variable for every supported API version2732 #latest_successful_builds_for2733 without a ref2734 returns a pipeline for the default branch2735 with the ref set to the default branch2736 returns a pipeline for the default branch2737 with a ref that is not the default branch2738 returns the latest successful pipeline for the given ref2739 #check_repository_path_availability2740 when the repository already exists2741 returns false when repository already exists2742 when the repository does not exist2743 returns false when repository already exists2744 skips gitlab-shell exists?2745 #latest_successful_pipeline_for_default_branch2746 memoizes and returns the latest successful pipeline for the default branch2747 #after_import2748 runs the correct hooks2749 project authorizations refresh2750 updates user authorizations2751 branch protection2752 does not protect when branch protection is disabled2753 gives developer access to push when branch protection is set to 'developers can push'2754 gives developer access to merge when branch protection is set to 'developers can merge'2755 protects default branch2756 project target platforms detection2757 calls enqueue_record_project_target_platforms2758 #update_project_counter_caches2759 updates all project counter caches2760 #set_full_path2761 writes full path in .git/config when key is missing2762 updates full path in .git/config when key is present2763 does not raise an error with an empty repository2764 #default_branch2765 with default_branch_name2766 instance_branch: "", root_group_branch: nil, project_group_branch: nil, project_branch: nil2767 is expected to eq nil2768 instance_branch: nil, root_group_branch: nil, project_group_branch: nil, project_branch: nil2769 is expected to eq nil2770 instance_branch: "main", root_group_branch: nil, project_group_branch: nil, project_branch: "main"2771 is expected to eq "main"2772 instance_branch: "main", root_group_branch: "root_branch", project_group_branch: nil, project_branch: "root_branch"2773 is expected to eq "root_branch"2774 instance_branch: "main", root_group_branch: "root_branch", project_group_branch: "group_branch", project_branch: "group_branch"2775 is expected to eq "group_branch"2776 #to_ability_name2777 returns project2778 #execute_hooks2779 executes active projects hooks with the specified scope2780 does not execute project hooks that dont match the specified scope2781 does not execute project hooks which are not active2782 executes the system hooks with the specified scope2783 executes the system hooks when inside a transaction2784 #execute_integrations2785 executes integrations with the specified scope2786 does not execute integration that don't match the specified scope2787 #has_active_hooks?2788 is expected to be falsey2789 returns true when a matching push hook exists2790 returns true when a matching system hook exists2791 returns true when a plugin exists2792 #has_active_integrations?2793 is expected to be falsey2794 returns true when a matching service exists2795 #badges2796 returns the project and the project group badges2797 with nested_groups2798 returns the project and the project nested groups badges2799 with cross internal project merge requests2800 does not endlessly loop for internal projects with MRs to each other2801 #branch_allows_collaboration?2802 when there are open merge requests that have their source/target branches point to each other2803 when user is a developer2804 behaves like successful check2805 does not go into an infinite loop2806 when user is a reporter2807 behaves like successful check2808 does not go into an infinite loop2809 when user is a guest2810 behaves like successful check2811 does not go into an infinite loop2812 with cross project merge requests2813 #merge_requests_allowing_push_to_user2814 returns open merge requests for which the user has developer access to the target project2815 does not include closed merge requests2816 does not include merge requests for guest users2817 does not include the merge request for other users2818 is empty when no user is passed2819 #any_branch_allows_collaboration?2820 allows access when there are merge requests open allowing collaboration2821 does not allow access when there are no merge requests open allowing collaboration2822 #branch_allows_collaboration?2823 allows access if the user can merge the merge request2824 does not allow guest users access2825 does not allow access to branches for which the merge request was closed2826 does not allow access if the user cannot merge the merge request2827 when the requeststore is active2828 only queries per project across instances2829 #external_authorization_classification_label2830 falls back to the default when none is configured2831 returns the classification label if it was configured on the project2832 #pages_https_only?2833 when HTTPS pages are disabled2834 is expected not to be pages https only2835 when HTTPS pages are enabled2836 is expected to be pages https only2837 #pages_https_only? validation2838 when no domains are associated2839 is expected to be valid2840 when domains including keys and certificates are associated2841 is expected to be valid2842 when domains including no keys or certificates are associated2843 is expected not to be valid2844 #toggle_ci_cd_settings!2845 toggles the value on #settings2846 #gitlab_deploy_token2847 when there is a gitlab deploy token associated2848 is expected to eq #<DeployToken id: 7, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-07...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>2849 when there is no a gitlab deploy token associated2850 is expected to be nil2851 when there is a gitlab deploy token associated but is has been revoked2852 is expected to be nil2853 when there is a gitlab deploy token associated but it is expired2854 is expected to be nil2855 when there is a deploy token associated with a different name2856 is expected to be nil2857 when there is a deploy token associated to a different project2858 is expected to be nil2859 when the project group has a gitlab deploy token associated2860 is expected to eq #<DeployToken id: 12, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>2861 when the FF ci_variable_for_group_gitlab_deploy_token is disabled2862 is expected to be nil2863 when the project and its group has a gitlab deploy token associated2864 is expected to eq #<DeployToken id: 14, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>2865 when the FF ci_variable_for_group_gitlab_deploy_token is disabled2866 is expected to eq #<DeployToken id: 16, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>2867 with uploads2868 behaves like model with uploads2869 .destroy2870 with mounted uploader2871 deletes remote uploads2872 with not mounted uploads2873 with local files2874 deletes any FileUploader uploads which are not mounted2875 deletes local files2876 with remote files2877 deletes any FileUploader uploads which are not mounted2878 deletes remote files2879 #members_among2880 when users is an Array2881 returns project members among the users2882 maintains input order2883 returns empty array if users is empty2884 when users is a relation2885 returns project members among the users2886 returns empty relation if users is empty2887 #find_or_initialize_integrations2888 avoids N+1 database queries2889 avoids N+1 database queries with more available integrations2890 with disabled integrations2891 returns only enabled integrations sorted2892 #find_or_initialize_integration2893 avoids N+1 database queries2894 returns nil if integration is disabled2895 returns nil if integration does not exist2896 with an existing integration2897 retrieves the integration2898 with an instance-level integration2899 builds the integration from the instance integration2900 without an existing integration or instance-level2901 builds the integration2902 .for_group2903 returns the projects for a given group2904 .for_group_and_its_ancestor_groups2905 returns projects for group and its ancestors2906 .deployments2907 when there is a deployment record with created status2908 does not return the record2909 when there is a deployment record with running status2910 does not return the record2911 when there is a deployment record with success status2912 returns the record2913 #snippets_visible?2914 returns true when a logged in user can read snippets2915 returns true when an anonymous user can read snippets2916 returns false when a user can not read snippets2917 #all_clusters2918 returns project level cluster2919 project belongs to a group2920 returns clusters for groups of this project2921 project is hosted on instance with integrated cluster2922 returns all available clusters for this project2923 #object_pool_params2924 when the objects cannot be pooled2925 is expected to be empty2926 when a pool is created2927 returns that pool repository2928 #git_objects_poolable?2929 when not using hashed storage2930 is expected not to be git objects poolable2931 when the project is private2932 is expected not to be git objects poolable2933 when the project is public2934 is expected to be git objects poolable2935 when the project is internal2936 is expected to be git objects poolable2937 when objects are poolable2938 is expected to be git objects poolable2939 #leave_pool_repository2940 removes the membership2941 #check_personal_projects_limit2942 when creating a project for a group2943 does nothing2944 when the user is not allowed to create a personal project2945 when the project limit is zero2946 adds a validation error2947 when the project limit is greater than zero2948 adds a validation error2949 when the user is allowed to create personal projects2950 does nothing2951 validation #changing_shared_runners_enabled_is_allowed2952 shared_runners_setting: :shared_runners_enabled, project_shared_runners_enabled: true, valid_record: true2953 validates the configuration2954 shared_runners_setting: :shared_runners_enabled, project_shared_runners_enabled: false, valid_record: true2955 validates the configuration2956 shared_runners_setting: :disabled_with_override, project_shared_runners_enabled: true, valid_record: true2957 validates the configuration2958 shared_runners_setting: :disabled_with_override, project_shared_runners_enabled: false, valid_record: true2959 validates the configuration2960 shared_runners_setting: :disabled_and_unoverridable, project_shared_runners_enabled: true, valid_record: false2961 validates the configuration2962 shared_runners_setting: :disabled_and_unoverridable, project_shared_runners_enabled: false, valid_record: true2963 validates the configuration2964 #mark_pages_onboarding_complete2965 creates new record and sets onboarding_complete to true if none exists yet2966 overrides an existing setting2967 #mark_pages_as_deployed2968 works when artifacts_archive is missing2969 creates new record and sets deployed to true if none exists yet2970 updates the existing record and sets deployed to true and records artifact archive2971 #mark_pages_as_not_deployed2972 creates new record and sets deployed to false if none exists yet2973 updates the existing record and sets deployed to false and clears artifacts_archive2974 #update_pages_deployment!2975 creates new metadata record if none exists yet and sets deployment2976 updates the existing metadara record with deployment2977 #set_first_pages_deployment!2978 creates new metadata record if none exists yet and sets deployment2979 updates the existing metadara record with deployment2980 only updates metadata for this project2981 does nothing if metadata already references some deployment2982 marks project as not deployed if deployment is nil2983 #has_pool_repsitory?2984 returns false when it does not have a pool repository2985 returns true when it has a pool repository2986 #access_request_approvers_to_be_notified2987 for a personal project2988 behaves like returns active, non_invited, non_requested owners/maintainers of the project2989 is expected to contain exactly #<ProjectMember id: 638, access_level: 40, source_id: 550, source_type: "Project", user_id: 351, noti... nil, ldap: false, override: false, state: 0, invite_email_success: true, member_namespace_id: 1057> and #<ProjectMember id: 637, access_level: 50, source_id: 550, source_type: "Project", user_id: 1, notifi... nil, ldap: false, override: false, state: 0, invite_email_success: true, member_namespace_id: 1057>2990 for a project in a group2991 returns a maximum of ten maintainers/owners of the project in recent_sign_in descending order2992 behaves like returns active, non_invited, non_requested owners/maintainers of the project2993 is expected to contain exactly #<ProjectMember id: 672, access_level: 40, source_id: 556, source_type: "Project", user_id: 370, noti... nil, ldap: false, override: false, state: 0, invite_email_success: true, member_namespace_id: 1071> and #<ProjectMember id: 649, access_level: 50, source_id: 556, source_type: "Project", user_id: 358, noti... nil, ldap: false, override: false, state: 0, invite_email_success: true, member_namespace_id: 1071>2994 #pages_lookup_path2995 returns instance of Pages::LookupPath2996 .with_pages_deployed2997 returns only projects that have pages deployed2998 .pages_metadata_not_migrated2999 returns only projects that have pages deployed3000 #pages_group_root?3001 returns returns true if pages_url is same as pages_group_url3002 returns returns false if pages_url is different than pages_group_url3003 #closest_setting3004 when setting is of non-boolean type3005 global_setting: 100, group_setting: 200, project_setting: 300, result: 3003006 behaves like fetching closest setting3007 returns closest non-nil value3008 global_setting: 100, group_setting: 200, project_setting: nil, result: 2003009 behaves like fetching closest setting3010 returns closest non-nil value3011 global_setting: 100, group_setting: nil, project_setting: nil, result: 1003012 behaves like fetching closest setting3013 returns closest non-nil value3014 global_setting: nil, group_setting: nil, project_setting: nil, result: nil3015 behaves like fetching closest setting3016 returns closest non-nil value3017 when setting is of boolean type3018 global_setting: true, group_setting: true, project_setting: false, result: false3019 behaves like fetching closest setting3020 returns closest non-nil value3021 global_setting: true, group_setting: false, project_setting: nil, result: false3022 behaves like fetching closest setting3023 returns closest non-nil value3024 global_setting: true, group_setting: nil, project_setting: nil, result: true3025 behaves like fetching closest setting3026 returns closest non-nil value3027 #drop_visibility_level!3028 when has a group3029 when the group `visibility_level` is more strict3030 sets `visibility_level` value from the group3031 when the group `visibility_level` is less strict3032 does not change the value of the `visibility_level` field3033 when `restricted_visibility_levels` of the GitLab instance exist3034 when `visibility_level` is included into `restricted_visibility_levels`3035 sets `visibility_level` value to `PRIVATE`3036 when `restricted_visibility_levels` does not include `visibility_level`3037 does not change the value of the `visibility_level` field3038 #jira_subscription_exists?3039 jira connect subscription exists3040 is expected to eq true3041 with integrations and chat names3042 removes chat names on removal3043 with_issues_or_mrs_available_for_user3044 returns correct projects3045 #limited_protected_branches3046 returns limited number of protected branches based on specified limit3047 #lfs_objects_oids3048 when project has associated LFS objects3049 returns OIDs of LFS objects3050 lfs_objects_projects associations are deleted along with project3051 lfs_objects associations are unchanged when the assicated project is removed3052 and there are specified oids3053 returns OIDs of LFS objects that match specified oids3054 when project has no associated LFS objects3055 returns empty array3056 #prometheus_integration_active?3057 when project has an activated prometheus integration3058 is expected to be truthy3059 when project has an inactive prometheus integration3060 the integration is marked as inactive3061 #self_monitoring?3062 when the project is instance self monitoring3063 is expected to equal true3064 when the project is not self monitoring3065 is expected to equal false3066 #add_export_job3067 when project storage_size does not exceed the application setting max_export_size3068 starts project export worker3069 when project storage_size exceeds the application setting max_export_size3070 raises Project::ExportLimitExceeded3071 when application setting max_export_size is not set3072 starts project export worker3073 #export_in_progress?3074 when project export is enqueued3075 is expected to equal false3076 when project export is in progress3077 is expected to equal true3078 when project export is completed3079 is expected to equal false3080 #export_status3081 when project export is enqueued3082 is expected to eq :queued3083 when project export is in progress3084 is expected to eq :started3085 when project export is completed3086 is expected to eq :finished3087 when project export is being regenerated3088 is expected to eq :regeneration_in_progress3089 #has_packages?3090 with maven packages3091 behaves like has_package3092 package of package_type exists3093 is expected to equal true3094 package of package_type does not exist3095 is expected to equal false3096 with npm packages3097 behaves like has_package3098 package of package_type exists3099 is expected to equal true3100 package of package_type does not exist3101 is expected to equal false3102 with conan packages3103 behaves like has_package3104 package of package_type exists3105 is expected to equal true3106 package of package_type does not exist3107 is expected to equal false3108 calling has_package? with nil3109 is expected to equal false3110 with Debian Distributions3111 behaves like model with Debian distributions3112 removes distribution files on removal3113 #environments_for_scope3114 retrieves all project environments when using the * wildcard3115 retrieves a specific project environment when using the name of that environment3116 #latest_jira_import3117 when no jira imports3118 returns nil3119 when single jira import3120 returns the jira import3121 when multiple jira imports3122 returns latest jira import by created_at3123 #packages_enabled3124 is expected to equal true3125 when packages_enabled is enabled3126 project_visibility: 0, expected_result: 103127 set package_registry_access_level to correct value3128 project_visibility: 10, expected_result: 203129 set package_registry_access_level to correct value3130 project_visibility: 20, expected_result: 303131 set package_registry_access_level to correct value3132 when packages_enabled is disabled3133 set package_registry_access_level to DISABLED3134 set package_registry_access_level to DISABLED3135 set package_registry_access_level to DISABLED3136 #related_group_ids3137 when associated with a namespace3138 only includes linked groups3139 when associated with a group3140 includes self, ancestors and linked groups3141 #package_already_taken?3142 within the package project3143 package_name: "@test/bar", package_version: "1.2.3", expected_result: false3144 is expected to eq false3145 package_name: "@test/bar", package_version: "5.5.5", expected_result: false3146 is expected to eq false3147 package_name: "@test/foo", package_version: "1.2.3", expected_result: false3148 is expected to eq false3149 package_name: "@test/foo", package_version: "5.5.5", expected_result: false3150 is expected to eq false3151 within a different project3152 package_name: "@test/bar", package_version: "1.2.3", expected_result: false3153 is expected to eq false3154 package_name: "@test/bar", package_version: "5.5.5", expected_result: false3155 is expected to eq false3156 package_name: "@test/foo", package_version: "1.2.3", expected_result: true3157 is expected to eq true3158 package_name: "@test/foo", package_version: "5.5.5", expected_result: false3159 is expected to eq false3160 for a different package type3161 returns false3162 with a pending_destruction package3163 package_name: "@test/bar", package_version: "1.2.3", expected_result: false3164 is expected to eq false3165 package_name: "@test/bar", package_version: "5.5.5", expected_result: false3166 is expected to eq false3167 package_name: "@test/foo", package_version: "1.2.3", expected_result: false3168 is expected to eq false3169 package_name: "@test/foo", package_version: "5.5.5", expected_result: false3170 is expected to eq false3171 #design_management_enabled?3172 lfs_enabled: false, hashed_storage_enabled: false, expectation: false3173 is expected to equal false3174 lfs_enabled: true, hashed_storage_enabled: false, expectation: false3175 is expected to equal false3176 lfs_enabled: false, hashed_storage_enabled: true, expectation: false3177 is expected to equal false3178 lfs_enabled: true, hashed_storage_enabled: true, expectation: true3179 is expected to equal true3180 #parent_loaded?3181 is false when the parent is not loaded3182 is true when the parent is loaded3183 #bots3184 is expected to contain exactly #<User id:395 @user384>3185 is expected not to include #<User id:396 @user385>3186 #metrics_setting3187 creates setting if it does not exist3188 #ci_config_external_project3189 is expected to eq #<Project id:636 namespace1/project788>>3190 #enabled_group_deploy_keys3191 when a project does not have a group3192 is expected to be empty3193 when a project has a parent group3194 and this group has a group deploy key enabled3195 is expected to contain exactly #<GroupDeployKey id: 1, user_id: 397, created_at: "2022-07-07 01:21:17.533137303 +0000", updated_at: ...7:32:c9:e2:e0:de:7d:c4:6a:d6:5c", fingerprint_sha256: "DPVHo0JMRhA4RL9xb+7MuFKC1KYkVrAJpqMuiCsHgzM">3196 and this group has parent group which also has a group deploy key enabled3197 returns both group deploy keys3198 and another group has a group deploy key enabled3199 does not return this group deploy key3200 #activity_path3201 returns the project activity_path3202 #default_branch_or_main3203 returns default branch3204 when default branch is nil3205 returns Gitlab::DefaultBranch.value3206 #increment_statistic_value3207 increments the value3208 when the project is scheduled for removal3209 does not increment the value3210 topics3211 topic_list returns correct string array3212 topics returns correct topic records3213 topic_list=3214 set topics if only the order is changed3215 does not persist topics before project is saved3216 does not update topics if project is not valid3217 does not add new topic if name is not unique (case insensitive)3218 topic_list: ["topicA", "topicB"], expected_result: ["topicA", "topicB"]3219 set topics3220 topic_list: ["topicB", "topicA"], expected_result: ["topicB", "topicA"]3221 set topics3222 topic_list: [" topicC ", " topicD "], expected_result: ["topicC", "topicD"]3223 set topics3224 topic_list: ["topicE", "topicF", "topicE"], expected_result: ["topicE", "topicF"]3225 set topics3226 topic_list: ["topicE ", "topicF", " topicE"], expected_result: ["topicE", "topicF"]3227 set topics3228 topic_list: "topicA, topicB", expected_result: ["topicA", "topicB"]3229 set topics3230 topic_list: "topicB, topicA", expected_result: ["topicB", "topicA"]3231 set topics3232 topic_list: " topicC , topicD ", expected_result: ["topicC", "topicD"]3233 set topics3234 topic_list: "topicE, topicF, topicE", expected_result: ["topicE", "topicF"]3235 set topics3236 topic_list: "topicE , topicF, topicE", expected_result: ["topicE", "topicF"]3237 set topics3238 public topics counter3239 initial_visibility: private, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [0, 0, 0]3240 increments or decrements counters of topics3241 initial_visibility: internal, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3242 increments or decrements counters of topics3243 initial_visibility: public, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3244 increments or decrements counters of topics3245 initial_visibility: private, new_visibility: public, new_topic_list: nil, expected_count_changes: [1, 1, 0]3246 increments or decrements counters of topics3247 initial_visibility: private, new_visibility: internal, new_topic_list: nil, expected_count_changes: [1, 1, 0]3248 increments or decrements counters of topics3249 initial_visibility: private, new_visibility: private, new_topic_list: nil, expected_count_changes: [0, 0, 0]3250 increments or decrements counters of topics3251 initial_visibility: internal, new_visibility: public, new_topic_list: nil, expected_count_changes: [0, 0, 0]3252 increments or decrements counters of topics3253 initial_visibility: internal, new_visibility: internal, new_topic_list: nil, expected_count_changes: [0, 0, 0]3254 increments or decrements counters of topics3255 initial_visibility: internal, new_visibility: private, new_topic_list: nil, expected_count_changes: [-1, -1, 0]3256 increments or decrements counters of topics3257 initial_visibility: public, new_visibility: public, new_topic_list: nil, expected_count_changes: [0, 0, 0]3258 increments or decrements counters of topics3259 initial_visibility: public, new_visibility: internal, new_topic_list: nil, expected_count_changes: [0, 0, 0]3260 increments or decrements counters of topics3261 initial_visibility: public, new_visibility: private, new_topic_list: nil, expected_count_changes: [-1, -1, 0]3262 increments or decrements counters of topics3263 initial_visibility: private, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [0, 1, 1]3264 increments or decrements counters of topics3265 initial_visibility: private, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [0, 1, 1]3266 increments or decrements counters of topics3267 initial_visibility: private, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [0, 0, 0]3268 increments or decrements counters of topics3269 initial_visibility: internal, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3270 increments or decrements counters of topics3271 initial_visibility: internal, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3272 increments or decrements counters of topics3273 initial_visibility: internal, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [-1, -1, 0]3274 increments or decrements counters of topics3275 initial_visibility: public, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3276 increments or decrements counters of topics3277 initial_visibility: public, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]3278 increments or decrements counters of topics3279 initial_visibility: public, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [-1, -1, 0]3280 increments or decrements counters of topics3281 #all_runners3282 behaves like all_runners3283 when shared runners are enabled for project3284 returns a list with all runners3285 when shared runners are disabled for project3286 returns a list without shared runners3287 when group runners are enabled for project3288 returns a list with all runners3289 when group runners are disabled for project3290 returns a list without group runners3291 #all_available_runners3292 behaves like all_runners3293 when shared runners are enabled for project3294 returns a list with all runners3295 when shared runners are disabled for project3296 returns a list without shared runners3297 when group runners are enabled for project3298 returns a list with all runners3299 when group runners are disabled for project3300 returns a list without group runners3301 #enforced_runner_token_expiration_interval and #effective_runner_token_expiration_interval3302 when there is no interval3303 behaves like no enforced expiration interval3304 is expected to be nil3305 behaves like no effective expiration interval3306 is expected to be nil3307 when there is a project interval3308 behaves like no enforced expiration interval3309 is expected to be nil3310 behaves like effective expiration interval3311 is expected to eq 3 days3312 when there is a site-wide enforced shared interval3313 behaves like no enforced expiration interval3314 is expected to be nil3315 behaves like no effective expiration interval3316 is expected to be nil3317 when there is a site-wide enforced group interval3318 behaves like no enforced expiration interval3319 is expected to be nil3320 behaves like no effective expiration interval3321 is expected to be nil3322 when there is a site-wide enforced project interval3323 behaves like enforced expiration interval3324 is expected to eq 5 days3325 behaves like effective expiration interval3326 is expected to eq 5 days3327 when there is a group-enforced group interval3328 behaves like no enforced expiration interval3329 is expected to be nil3330 behaves like no effective expiration interval3331 is expected to be nil3332 when there is a group-enforced subgroup interval3333 behaves like no enforced expiration interval3334 is expected to be nil3335 behaves like no effective expiration interval3336 is expected to be nil3337 when there is an owner group-enforced project interval3338 behaves like enforced expiration interval3339 is expected to eq 4 days3340 behaves like effective expiration interval3341 is expected to eq 4 days3342 when there is a grandparent group-enforced interval3343 behaves like enforced expiration interval3344 is expected to eq 3 days3345 behaves like effective expiration interval3346 is expected to eq 3 days3347 when there is a parent group-enforced interval overridden by group-enforced interval3348 behaves like enforced expiration interval3349 is expected to eq 4 days3350 behaves like effective expiration interval3351 is expected to eq 4 days3352 when site-wide enforced interval overrides project interval3353 behaves like enforced expiration interval3354 is expected to eq 3 days3355 behaves like effective expiration interval3356 is expected to eq 3 days3357 when project interval overrides site-wide enforced interval3358 has human-readable expiration intervals3359 behaves like enforced expiration interval3360 is expected to eq 5 days3361 behaves like effective expiration interval3362 is expected to eq 4 days3363 when site-wide enforced interval overrides group-enforced interval3364 behaves like enforced expiration interval3365 is expected to eq 3 days3366 behaves like effective expiration interval3367 is expected to eq 3 days3368 when group-enforced interval overrides site-wide enforced interval3369 behaves like enforced expiration interval3370 is expected to eq 4 days3371 behaves like effective expiration interval3372 is expected to eq 4 days3373 when group-enforced interval overrides project interval3374 behaves like enforced expiration interval3375 is expected to eq 3 days3376 behaves like effective expiration interval3377 is expected to eq 3 days3378 when project interval overrides group-enforced interval3379 behaves like enforced expiration interval3380 is expected to eq 5 days3381 behaves like effective expiration interval3382 is expected to eq 4 days3383 when there is an enforced project interval in an unrelated group3384 behaves like no enforced expiration interval3385 is expected to be nil3386 behaves like no effective expiration interval3387 is expected to be nil3388 when there is an enforced project interval in a subgroup3389 behaves like no enforced expiration interval3390 is expected to be nil3391 behaves like no effective expiration interval3392 is expected to be nil3393 behaves like it has loose foreign keys3394 has at least one loose foreign key definition3395 has the deletion trigger present3396 records record deletions3397 cleans up record deletions3398 Projects::SyncEvent3399 when creating the project3400 creates a projects_sync_event record3401 enqueues ProcessProjectSyncEventsWorker3402 when updating project namespace_id3403 creates a projects_sync_event record3404 enqueues ProcessProjectSyncEventsWorker3405 when updating project other attribute3406 creates a projects_sync_event record3407 in the same transaction3408 when updating different namespace_id3409 creates two projects_sync_event records3410 when updating the same namespace_id3411 creates one projects_sync_event record3412 .not_hidden3413 lists projects that are not hidden3414 #pending_delete_or_hidden?3415 pending_delete: true, hidden: false, expected_result: true3416 returns true if project is pending delete or hidden3417 pending_delete: true, hidden: true, expected_result: true3418 returns true if project is pending delete or hidden3419 pending_delete: false, hidden: true, expected_result: true3420 returns true if project is pending delete or hidden3421 pending_delete: false, hidden: false, expected_result: false3422 returns true if project is pending delete or hidden3423 #work_items_feature_flag_enabled?3424 when a project does not belong to a group3425 behaves like project checking work_items feature flag3426 when work_items FF is disabled globally3427 is expected to be falsey3428 when work_items FF is enabled for the project3429 is expected to be truthy3430 when work_items FF is enabled globally3431 is expected to be truthy3432 when project belongs to a group3433 behaves like project checking work_items feature flag3434 when work_items FF is disabled globally3435 is expected to be falsey3436 when work_items FF is enabled for the project3437 is expected to be truthy3438 when work_items FF is enabled globally3439 is expected to be truthy3440 when work_items FF is enabled for the root group3441 is expected to be truthy3442 when work_items FF is enabled for the group3443 is expected to be truthy3444 serialization3445 behaves like blocks unsafe serialization3446 blocks as_json3447 blocks to_json3448 #enqueue_record_project_target_platforms3449 enqueues a Projects::RecordTargetPlatformsWorker3450 when feature flag is disabled3451 behaves like does not enqueue a Projects::RecordTargetPlatformsWorker3452 does not enqueue a Projects::RecordTargetPlatformsWorker3453 when not in gitlab.com3454 behaves like does not enqueue a Projects::RecordTargetPlatformsWorker3455 does not enqueue a Projects::RecordTargetPlatformsWorker3456 #inactive?3457 behaves like returns true if project is inactive3458 storage_size: 1048576, last_activity_at: Tue, 07 Jun 2022 01:13:08.247577823 UTC +00:00, expected_result: false3459 returns expected result3460 storage_size: 1048576, last_activity_at: Sun, 07 Jul 2019 01:13:08.247830814 UTC +00:00, expected_result: false3461 returns expected result3462 storage_size: 8388608, last_activity_at: Tue, 07 Jun 2022 01:13:08.247896854 UTC +00:00, expected_result: false3463 returns expected result3464 storage_size: 8388608, last_activity_at: Sun, 07 Jul 2019 01:13:08.247947494 UTC +00:00, expected_result: true3465 returns expected result3466 .inactive3467 returns projects that are inactive3468 #refreshing_build_artifacts_size?3469 when project has no existing refresh record3470 is expected to be falsey3471 when project has existing refresh record3472 and refresh has not yet started3473 is expected to eq false3474 and refresh has started3475 is expected to eq true3476 #group_group_links3477 with group project3478 returns group links of group3479 with personal project3480 returns none3481 #security_training_available?3482 returns false3483Integrations::Slack3484 behaves like Integrations::SlackMattermostNotifier3485 Associations3486 is expected to belong to project required: false3487 is expected to have one service_hook3488 Validations3489 when integration is active3490 is expected to validate that :webhook cannot be empty/falsy3491 behaves like issue tracker integration URL attribute3492 is expected to allow :webhook to be ‹"https://example.com"›3493 is expected not to allow :webhook to be ‹"example.com"›3494 is expected not to allow :webhook to be ‹"ftp://example.com"›3495 is expected not to allow :webhook to be ‹"herp-and-derp"›3496 when integration is inactive3497 is expected not to validate that :webhook cannot be empty/falsy3498 #execute3499 with username for slack configured3500 uses the username as an option3501 push events3502 behaves like calls the integration API with the event message3503 is expected to request POST https://8.8.8.9/ 1 time3504 with event channel3505 uses the right channel for push event3506 tag_push events3507 behaves like calls the integration API with the event message3508 is expected to request POST https://8.8.8.9/ 1 time3509 issue events3510 behaves like calls the integration API with the event message3511 is expected to request POST https://8.8.8.9/ 1 time3512 whith event channel3513 uses the right channel for issue event3514 for confidential issues3515 falls back to issue channel3516 and confidential_issue_channel is defined3517 uses the confidential issue channel when it is defined3518 merge request events3519 behaves like calls the integration API with the event message3520 is expected to request POST https://8.8.8.9/ 1 time3521 with event channel3522 uses the right channel for merge request event3523 wiki page events3524 behaves like calls the integration API with the event message3525 is expected to request POST https://8.8.8.9/ 1 time3526 with event channel3527 uses the right channel for wiki event3528 deployment events3529 behaves like calls the integration API with the event message3530 is expected to request POST https://8.8.8.9/ 1 time3531 note event3532 behaves like calls the integration API with the event message3533 is expected to request POST https://8.8.8.9/ 1 time3534 with event channel3535 uses the right channel3536 for confidential notes3537 falls back to note channel3538 and confidential_note_channel is defined3539 uses confidential channel3540 Push events3541 on default branch3542 pushing tags3543 behaves like triggered Slack integration3544 notifies about push events3545 when the response is not successful3546 logs an error3547 notification enabled only for default branch3548 behaves like triggered Slack integration3549 notifies about push events3550 when the response is not successful3551 logs an error3552 notification enabled only for protected branches3553 behaves like untriggered Slack integration3554 does not notify about push events3555 notification enabled only for default and protected branches3556 behaves like triggered Slack integration3557 notifies about push events3558 when the response is not successful3559 logs an error3560 notification enabled for all branches3561 behaves like triggered Slack integration3562 notifies about push events3563 when the response is not successful3564 logs an error3565 on a protected branch3566 pushing tags3567 behaves like triggered Slack integration3568 notifies about push events3569 when the response is not successful3570 logs an error3571 notification enabled only for default branch3572 behaves like untriggered Slack integration3573 does not notify about push events3574 notification enabled only for protected branches3575 behaves like triggered Slack integration3576 notifies about push events3577 when the response is not successful3578 logs an error3579 notification enabled only for default and protected branches3580 behaves like triggered Slack integration3581 notifies about push events3582 when the response is not successful3583 logs an error3584 notification enabled for all branches3585 behaves like triggered Slack integration3586 notifies about push events3587 when the response is not successful3588 logs an error3589 on a protected branch with protected branches defined using wildcards3590 pushing tags3591 behaves like triggered Slack integration3592 notifies about push events3593 when the response is not successful3594 logs an error3595 notification enabled only for default branch3596 behaves like untriggered Slack integration3597 does not notify about push events3598 notification enabled only for protected branches3599 behaves like triggered Slack integration3600 notifies about push events3601 when the response is not successful3602 logs an error3603 notification enabled only for default and protected branches3604 behaves like triggered Slack integration3605 notifies about push events3606 when the response is not successful3607 logs an error3608 notification enabled for all branches3609 behaves like triggered Slack integration3610 notifies about push events3611 when the response is not successful3612 logs an error3613 on a neither protected nor default branch3614 pushing tags3615 behaves like triggered Slack integration3616 notifies about push events3617 when the response is not successful3618 logs an error3619 notification enabled only for default branch3620 behaves like untriggered Slack integration3621 does not notify about push events3622 notification enabled only for protected branches3623 behaves like untriggered Slack integration3624 does not notify about push events3625 notification enabled only for default and protected branches3626 behaves like untriggered Slack integration3627 does not notify about push events3628 notification enabled for all branches3629 behaves like triggered Slack integration3630 notifies about push events3631 when the response is not successful3632 logs an error3633 Note events3634 when commit comment event executed3635 behaves like triggered Slack integration3636 notifies about commit comment events3637 when the response is not successful3638 logs an error3639 when merge request comment event executed3640 behaves like triggered Slack integration3641 notifies about merge request comment events3642 when the response is not successful3643 logs an error3644 when issue comment event executed3645 behaves like triggered Slack integration3646 notifies about issue comment events3647 when the response is not successful3648 logs an error3649 when snippet comment event executed3650 behaves like triggered Slack integration3651 notifies about snippet comment events3652 when the response is not successful3653 logs an error3654 Pipeline events3655 with succeeded pipeline3656 with default to notify_only_broken_pipelines3657 behaves like untriggered Slack integration3658 does not notify about pipeline events3659 with setting notify_only_broken_pipelines to false3660 behaves like triggered Slack integration3661 notifies about pipeline events3662 when the response is not successful3663 logs an error3664 with failed pipeline3665 on default branch3666 notification enabled only for default branch3667 behaves like triggered Slack integration3668 notifies about pipeline events3669 when the response is not successful3670 logs an error3671 notification enabled only for protected branches3672 behaves like untriggered Slack integration3673 does not notify about pipeline events3674 notification enabled only for default and protected branches3675 behaves like triggered Slack integration3676 notifies about pipeline events3677 when the response is not successful3678 logs an error3679 notification enabled for all branches3680 behaves like triggered Slack integration3681 notifies about pipeline events3682 when the response is not successful3683 logs an error3684 on a protected branch3685 notification enabled only for default branch3686 behaves like untriggered Slack integration3687 does not notify about pipeline events3688 notification enabled only for protected branches3689 behaves like triggered Slack integration3690 notifies about pipeline events3691 when the response is not successful3692 logs an error3693 notification enabled only for default and protected branches3694 behaves like triggered Slack integration3695 notifies about pipeline events3696 when the response is not successful3697 logs an error3698 notification enabled for all branches3699 behaves like triggered Slack integration3700 notifies about pipeline events3701 when the response is not successful3702 logs an error3703 on a protected branch with protected branches defined usin wildcards3704 notification enabled only for default branch3705 behaves like untriggered Slack integration3706 does not notify about pipeline events3707 notification enabled only for protected branches3708 behaves like triggered Slack integration3709 notifies about pipeline events3710 when the response is not successful3711 logs an error3712 notification enabled only for default and protected branches3713 behaves like triggered Slack integration3714 notifies about pipeline events3715 when the response is not successful3716 logs an error3717 notification enabled for all branches3718 behaves like triggered Slack integration3719 notifies about pipeline events3720 when the response is not successful3721 logs an error3722 on a neither protected nor default branch3723 notification enabled only for default branch3724 behaves like untriggered Slack integration3725 does not notify about pipeline events3726 notification enabled only for protected branches3727 behaves like untriggered Slack integration3728 does not notify about pipeline events3729 notification enabled only for default and protected branches3730 behaves like untriggered Slack integration3731 does not notify about pipeline events3732 notification enabled for all branches3733 behaves like triggered Slack integration3734 notifies about pipeline events3735 when the response is not successful3736 logs an error3737 Deployment events3738 behaves like triggered Slack integration3739 notifies about deployment events3740 when the response is not successful3741 logs an error3742 on a protected branch3743 notification enabled only for default branch3744 behaves like untriggered Slack integration3745 does not notify about pipeline events3746 notification enabled only for protected branches3747 behaves like triggered Slack integration3748 notifies about pipeline events3749 when the response is not successful3750 logs an error3751 notification enabled only for default and protected branches3752 behaves like triggered Slack integration3753 notifies about pipeline events3754 when the response is not successful3755 logs an error3756 notification enabled for all branches3757 behaves like triggered Slack integration3758 notifies about pipeline events3759 when the response is not successful3760 logs an error3761 #execute3762 uses only known events3763 hook data includes a user object3764 event is not supported for usage log3765 does not increase the usage data counter3766 issue notification3767 behaves like increases the usage data counter3768 increases the usage data counter3769 push notification3770 behaves like increases the usage data counter3771 increases the usage data counter3772 deployment notification3773 behaves like increases the usage data counter3774 increases the usage data counter3775 wiki_page notification3776 behaves like increases the usage data counter3777 increases the usage data counter3778 merge_request notification3779 behaves like increases the usage data counter3780 increases the usage data counter3781 note notification3782 behaves like increases the usage data counter3783 increases the usage data counter3784 tag_push notification3785 behaves like increases the usage data counter3786 increases the usage data counter3787 confidential note notification3788 behaves like increases the usage data counter3789 increases the usage data counter3790 confidential issue notification3791 behaves like increases the usage data counter3792 increases the usage data counter3793 hook data does not include a user3794 does not increase the usage data counter3795Groups::DestroyService3796 asynchronous delete3797 behaves like group destruction3798 database records3799 is expected not to include #<Group id:1558 @group188>3800 is expected not to include #<Group id:1565 @group190/group191>3801 is expected not to include #<Project id:783 group192/project938>>3802 is expected not to include #<NotificationSetting id: 1046, user_id: 596, source_id: 1576, source_type: "Namespace", level: "glob...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>3803 mattermost team3804 destroys the team too3805 file system3806 Sidekiq inline3807 verifies that paths have been deleted3808 Sidekiq fake3809 verifies original paths and projects still exist3810 synchronous delete3811 behaves like group destruction3812 database records3813 is expected not to include #<Group id:1600 @group202>3814 is expected not to include #<Group id:1607 @group204/group205>3815 is expected not to include #<Project id:790 group206/project945>>3816 is expected not to include #<NotificationSetting id: 1067, user_id: 617, source_id: 1618, source_type: "Namespace", level: "glob...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>3817 mattermost team3818 destroys the team too3819 file system3820 Sidekiq inline3821 verifies that paths have been deleted3822 projects in pending_delete3823 behaves like group destruction3824 database records3825 is expected not to include #<Group id:1636 @group214>3826 is expected not to include #<Group id:1643 @group216/group217>3827 is expected not to include #<Project id:796 group218/project951>>3828 is expected not to include #<NotificationSetting id: 1085, user_id: 635, source_id: 1654, source_type: "Namespace", level: "glob...: nil, moved_project: true, change_reviewer_merge_request: nil, merge_when_pipeline_succeeds: false>3829 mattermost team3830 destroys the team too3831 file system3832 Sidekiq inline3833 verifies that paths have been deleted3834 repository removal status is taken into account3835 raises exception3836 when group owner is blocked3837 returns a more descriptive error message3838 repository removal3839 legacy storage3840 removes repository3841 hashed storage3842 removes repository3843 authorization updates3844 for solo groups3845 group is deleted3846 updates project authorization3847 does not make use of a specific service to update project_authorizations records3848 for shared groups within different hierarchies3849 when a project is shared with a group3850 and the shared group is deleted3851 updates project authorizations so group2 users no longer have access3852 calls the service to update project authorizations only with necessary user ids3853 and the group is shared with another group3854 updates project authorizations so group2 and group3 users no longer have access3855 calls the service to update project authorizations only with necessary user ids3856 when a group is shared with a group3857 and the shared group is deleted3858 updates project authorizations since the project has been deleted with the group3859 does not call the service to update project authorizations3860 the shared_with group is deleted3861 updates project authorizations so users of both groups lose access3862 calls the service to update project authorizations only with necessary user ids3863 for shared groups in the same group hierarchy3864 the shared group is deleted3865 updates project authorization3866 does not make use of a specific service to update project authorizations3867 the shared_with group is deleted3868 updates project authorization3869 makes use of a specific service to update project authorizations3870layouts/nav/sidebar/_project3871 behaves like has nav sidebar3872 has collapsed nav sidebar on mobile3873 Project context3874 has a link to the project path3875 Project information3876 has a link to the project activity path3877 Activity3878 has a link to the project activity path3879 Labels3880 has a link to the labels path3881 Members3882 has a link to the members page3883 Learn GitLab3884 has a link to the learn GitLab3885 Repository3886 has a link to the project tree path3887 Files3888 has a link to the project tree path3889 Commits3890 has a link to the project commits path3891 Branches3892 has a link to the project branches path3893 Tags3894 has a link to the project tags path3895 Contributors3896 has a link to the project contributors path3897 Graph3898 has a link to the project graph path3899 Compare3900 has a link to the project compare path3901 Issues3902 has a link to the issue list path3903 shows pill with the number of open issues3904 Issue List3905 has a link to the issue list path3906 Issue Boards3907 has a link to the issue boards path3908 Service Desk3909 has a link to the service desk path3910 Milestones3911 has a link to the milestones path3912 External Issue Tracker3913 with custom external issue tracker3914 when external issue tracker is configured and active3915 has a link to the external issue tracker3916 when external issue tracker is not configured and active3917 does not have a link to the external issue tracker3918 with Jira issue tracker3919 has a link to the Jira issue tracker3920 Merge Requests3921 has a link to the merge request list path3922 shows pill with the number of merge requests3923 CI/CD3924 has a link to pipelines page3925 Artifacts3926 has a link to the artifacts page3927 Jobs3928 has a link to the jobs page3929 Pipeline Schedules3930 has a link to the pipeline schedules page3931 Pipelines3932 has a link to the pipelines page3933 Pipeline Editor3934 with a current_ref3935 has a link to the pipeline editor3936 with the default_branch3937 has a link to the pipeline editor3938 when user cannot access pipeline editor3939 does not has a link to the pipeline editor3940 Security and Compliance3941 when user does not have permissions3942 top level navigation link is not visible3943 when user has permissions3944 top level navigation link is visible3945 security configuration link is visible3946 Deployments3947 Feature Flags3948 has a link to the feature flags page3949 when the user does not have access3950 does not have a link to the feature flags page3951 Environments3952 has a link to the environments page3953 when the user does not have access3954 does not have a link to the environments page3955 Releases3956 has a link to the project releases path3957 Monitor3958 top level navigation link is visible for user with permissions3959 Metrics Dashboard3960 has a link to the metrics dashboard page3961 when the user does not have access3962 does not have a link to the metrics page3963 Error Tracking3964 has a link to the error tracking page3965 when the user does not have access3966 does not have a link to the error tracking page3967 Alert Management3968 has a link to the alert management page3969 when the user does not have access3970 does not have a link to the alert management page3971 Incidents3972 has a link to the incidents page3973 when the user does not have access3974 does not have a link to the incidents page3975 Product Analytics3976 has a link to the product analytics page3977 when feature flag :product_analytics is disabled3978 does not have a link to the feature flags page3979 Infrastructure3980 Terraform3981 has a link to the terraform page3982 when the user does not have access3983 does not have a link to the terraform page3984 Kubernetes clusters3985 has a link to the kubernetes page3986 when the user does not have access3987 does not have a link to the kubernetes page3988 Google Cloud3989 has a link to the google cloud page3990 when the user does not have access3991 does not have a link to the google cloud page3992 Packages and Registries3993 top level navigation link is visible and points to package registry page3994 Packages Registry3995 shows link to package registry page3996 when packages config setting is not enabled3997 does not show link to package registry page3998 Container Registry3999 shows link to container registry page4000 when container config setting is not enabled4001 does not show link to package registry page4002 Infrastructure Registry4003 shows link to infrastructure registry page4004 when package registry config is disabled4005 does not show link to package registry page4006 Analytics4007 top level navigation link is visible points to the value stream page4008 CI/CD4009 has a link to the CI/CD analytics page4010 when user does not have access4011 does not have a link to the CI/CD analytics page4012 Repository4013 has a link to the repository analytics page4014 when user does not have access4015 does not have a link to the repository analytics page4016 Value stream4017 has a link to the value stream page4018 when user does not have access4019 does not have a link to the value stream page4020 Confluence4021 when the Confluence integration is active4022 shows the Confluence link4023 does not show the GitLab wiki link4024 when it is disabled4025 does not show the Confluence link4026 shows the GitLab wiki link4027 Wiki4028 when wiki is enabled4029 shows the wiki tab with the wiki internal link4030 when wiki is disabled4031 does not show the wiki link4032 External Wiki4033 when it is active4034 shows the external wiki tab with the external wiki service link4035 when it is disabled4036 does not show the external wiki link4037 Snippets4038 when user can access snippets4039 shows Snippets link4040 when user cannot access snippets4041 does not show Snippets link4042 Settings4043 General4044 has a link to the General settings4045 Integrations4046 has a link to the Integrations settings4047 WebHooks4048 has a link to the WebHooks settings4049 Access Tokens4050 self-managed instance4051 has a link to the Access Tokens settings4052 gitlab.com4053 has a link to the Access Tokens settings4054 Repository4055 has a link to the Repository settings4056 CI/CD4057 when project is archived4058 does not have a link to the CI/CD settings4059 when project is not archived4060 has a link to the CI/CD settings4061 Monitor4062 when project is archived4063 does not have a link to the Monitor settings4064 when project is not archived active4065 has a link to the Monitor settings4066 Pages4067 when pages are enabled4068 has a link to the Pages settings4069 when pages are not enabled4070 does not have a link to the Pages settings4071 Packages & Registries4072 when registry is enabled4073 has a link to the Packages & Registries settings4074 when registry is not enabled4075 does not have a link to the Packages & Registries settings4076 Usage Quotas4077 has a link to Usage Quotas4078 Hidden menus4079 has a link to the Activity page4080 has a link to the Graph page4081 has a link to the New Issue page4082 has a link to the Jobs page4083 has a link to the Commits page4084 has a link to the Issue Boards page4085 behaves like sidebar includes snowplow attributes4086 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"4087 Collapsed menu items4088 does not render the collapsed top menu as a link4089PostReceive4090 as a sidekiq worker4091 responds to #perform4092 with a non-existing project4093 returns false and logs an error4094 with PersonalSnippet4095 does not log an error4096 with ProjectSnippet4097 returns false and logs an error4098 #process_project_changes4099 with an empty project4100 expire the status cache4101 schedules a cache update for commit count and size4102 empty changes4103 does not call any PushService but runs after project hooks4104 behaves like not updating remote mirrors4105 does not schedule an update4106 unidentified user4107 returns false4108 with changes4109 branches4110 expires the branches cache4111 expires the status cache4112 calls Git::ProcessRefChangesService4113 schedules a cache update for repository size only4114 behaves like updating remote mirrors4115 schedules an update if the project had mirrors4116 with a default branch4117 schedules a cache update for commit count and size4118 tags4119 does not expire branches cache4120 only invalidates tags once4121 calls Git::ProcessRefChangesService4122 schedules a single ProjectCacheWorker update4123 behaves like updating remote mirrors4124 schedules an update if the project had mirrors4125 merge-requests4126 does not call any of the services4127 behaves like not updating remote mirrors4128 does not schedule an update4129 after project changes hooks4130 calls SystemHooksService4131 increments the usage data counter of pushes event4132 behaves like an idempotent worker4133 is labeled as idempotent4134 performs multiple times sequentially without raising an exception4135 #process_wiki_changes4136 updates project activity4137 master4138 processes the changes on the master branch4139 branches4140 expires the branches cache4141 expires the status cache4142 behaves like an idempotent worker4143 is labeled as idempotent4144 performs multiple times sequentially without raising an exception4145 webhook4146 fetches the correct project4147 does not run if the author is not in the project4148 asks the project to trigger all hooks4149 enqueues a UpdateMergeRequestsWorker job4150 #process_snippet_changes4151 with PersonalSnippet4152 behaves like snippet changes actions4153 unidentified user4154 returns false4155 with changes4156 branches4157 expires the branches cache4158 expires the status cache4159 updates snippet statistics4160 tags4161 does not expire branches cache4162 only invalidates tags once4163 behaves like an idempotent worker4164 is labeled as idempotent4165 performs multiple times sequentially without raising an exception4166 with ProjectSnippet4167 behaves like snippet changes actions4168 unidentified user4169 returns false4170 with changes4171 branches4172 expires the branches cache4173 expires the status cache4174 updates snippet statistics4175 tags4176 does not expire branches cache4177 only invalidates tags once4178 behaves like an idempotent worker4179 is labeled as idempotent4180 performs multiple times sequentially without raising an exception4181 processing design changes4182 does not do anything4183 behaves like an idempotent worker4184 is labeled as idempotent4185 performs multiple times sequentially without raising an exception4186Milestone4187 behaves like a timebox4188 modules4189 with a project4190 behaves like AtomicInternalId4191 .has_internal_id4192 Module inclusion4193 is expected to includes the AtomicInternalId module4194 Validation4195 when presence validation is required4196 when creating an object4197 raises an error if the internal id is blank4198 when updating an object4199 raises an error if the internal id is blank4200 when presence validation is not required4201 when creating an object4202 does not raise an error if the internal id is blank (PENDING: No reason given)4203 when updating an object4204 does not raise an error if the internal id is blank (PENDING: No reason given)4205 Creating an instance4206 saves a new instance properly4207 internal id generation4208 calls InternalId.generate_next and sets internal id attribute4209 does not overwrite an existing internal id4210 when the instance has an internal ID set4211 calls InternalId.update_last_value and sets the `last_value` to that of the instance4212 unsetting the instance internal id on rollback4213 when the internal id has been changed4214 when the internal id is automatically set4215 clears it on the instance4216 when the internal id is manually set4217 does not clear it on the instance4218 when the internal id has not been changed4219 preserves the value on the instance4220 supply of internal ids4221 provides a persistent supply of IID values, sensitive to the current state4222 #reset_scope_internal_id_attribute4223 rewinds the allocated IID4224 allocates the same IID4225 with a group4226 behaves like AtomicInternalId4227 .has_internal_id4228 Module inclusion4229 is expected to includes the AtomicInternalId module4230 Validation4231 when presence validation is required4232 when creating an object4233 raises an error if the internal id is blank4234 when updating an object4235 raises an error if the internal id is blank4236 when presence validation is not required4237 when creating an object4238 does not raise an error if the internal id is blank (PENDING: No reason given)4239 when updating an object4240 does not raise an error if the internal id is blank (PENDING: No reason given)4241 Creating an instance4242 saves a new instance properly4243 internal id generation4244 calls InternalId.generate_next and sets internal id attribute4245 does not overwrite an existing internal id4246 when the instance has an internal ID set4247 calls InternalId.update_last_value and sets the `last_value` to that of the instance4248 unsetting the instance internal id on rollback4249 when the internal id has been changed4250 when the internal id is automatically set4251 clears it on the instance4252 when the internal id is manually set4253 does not clear it on the instance4254 when the internal id has not been changed4255 preserves the value on the instance4256 supply of internal ids4257 provides a persistent supply of IID values, sensitive to the current state4258 #reset_scope_internal_id_attribute4259 rewinds the allocated IID4260 allocates the same IID4261 Validation4262 start_date4263 adds an error when start_date is greater then due_date4264 adds an error when start_date is greater than 9999-12-314265 due_date4266 adds an error when due_date is greater than 9999-12-314267 #timebox_type_check4268 is invalid if it has both project_id and group_id4269 Associations4270 is expected to belong to project required: false4271 is expected to belong to group required: false4272 is expected to have many issues4273 is expected to have many merge_requests4274 is expected to have many labels through issues4275 #timebox_name4276 returns the name of the model4277 #project_timebox?4278 when project_id is present4279 returns true4280 when project_id is not present4281 returns false4282 #group_timebox?4283 when group_id is present4284 returns true4285 when group_id is not present4286 returns false4287 #safe_title4288 normalizes the title for use as a slug4289 #resource_parent4290 when group is present4291 returns the group4292 when project is present4293 returns the project4294 #title4295 sanitizes title4296 #merge_requests_enabled?4297 per project4298 is true for projects with MRs enabled4299 is false for projects with MRs disabled4300 is false for projects with repository disabled4301 per group4302 is always true for groups, for performance reasons4303 #to_ability_name4304 returns timebox4305 .within_timeframe4306 can find overlapping timeboxes4307 #uniqueness_of_title4308 per project4309 does not accept the same title in a project twice4310 accepts the same title in another project4311 per group4312 does not accept the same title in a group twice4313 does not accept the same title of a child project timebox4314 MilestoneStruct#serializable_hash4315 presents the predefined milestone as a hash4316 Validation4317 title4318 is expected to validate that :title cannot be empty/falsy4319 is invalid if title would be empty after sanitation4320 milestone_releases4321 when it is tied to a release for another project4322 creates a validation error4323 when it is tied to a release for the same project4324 is valid4325 Associations4326 is expected to have many releases4327 is expected to have many milestone_releases4328 .predefined_id?4329 returns true for a predefined Milestone ID4330 returns false for a Milestone ID that is not predefined4331 .order_by_name_asc4332 sorts by name ascending4333 .reorder_by_due_date_asc4334 reorders the input relation4335 behaves like within_timeframe scope4336 .within_timeframe4337 returns resources with start_date and/or end_date between timeframe4338 returns resources which starts before the timeframe4339 returns resources which ends after the timeframe4340 #percent_complete4341 does not count open issues4342 counts closed issues4343 recovers from dividing by zero4344 #expired? and #expired4345 expired4346 returns true when due_date is in the past4347 not expired4348 returns false when due_date is in the future4349 #upcoming?4350 returns true when start_date is in the future4351 returns false when start_date is in the past4352 #can_be_closed?4353 returns true if milestone active and all nested issues closed4354 returns false if milestone active and not all nested issues closed4355 #to_ability_name4356 returns milestone4357 .search4358 returns milestones with a matching title4359 returns milestones with a partially matching title4360 returns milestones with a matching title regardless of the casing4361 returns milestones with a matching description4362 returns milestones with a partially matching description4363 returns milestones with a matching description regardless of the casing4364 #search_title4365 returns milestones with a matching title4366 returns milestones with a partially matching title4367 returns milestones with a matching title regardless of the casing4368 searches only on the title and ignores milestones with a matching description4369 behaves like #for_projects_and_groups4370 #for_projects_and_groups4371 returns no records if projects and groups are nil4372 ids as params4373 behaves like filters by projects and groups4374 returns milestones filtered by project4375 returns milestones filtered by group4376 returns milestones filtered by both project and group4377 relations as params4378 behaves like filters by projects and groups4379 returns milestones filtered by project4380 returns milestones filtered by group4381 returns milestones filtered by both project and group4382 objects as params4383 behaves like filters by projects and groups4384 returns milestones filtered by project4385 returns milestones filtered by group4386 returns milestones filtered by both project and group4387 .upcoming_ids4388 returns the next upcoming open milestone ID for each project and group4389 when the projects and groups have no open upcoming milestones4390 returns no results4391 #to_reference4392 for a project milestone4393 returns a String reference to the object4394 returns a reference by name when the format is set to :name4395 supports a cross-project reference4396 for a group milestone4397 returns a group milestone reference with a default format4398 returns a reference by name when the format is set to :name4399 does supports cross-project references within a group4400 raises an error when using iid format4401 #reference_link_text4402 returns the title with the reference prefix4403 #participants4404 returns participants without duplicates4405 .sort_with_expired_last4406 ordering by due_date ascending4407 sorts by due date in ascending order (ties broken by id in desc order)4408 ordering by due_date descending4409 sorts by due date in descending order (ties broken by id in desc order)4410 .sort_by_attribute4411 ordering by name ascending4412 sorts by title ascending4413 ordering by name descending4414 sorts by title descending4415 .states_count4416 when the projects have milestones4417 returns the quantity of milestones in each possible state4418 when the projects do not have milestones4419 returns 0 as the quantity of global milestones in each state4420 .reference_pattern4421 is expected to match "gitlab-org/gitlab-ce%123"4422 is expected to match "gitlab-org/gitlab-ce%\"my-milestone\""4423 .link_reference_pattern4424 is expected to match "http://localhost/gitlab-org/gitlab-foss/milestones/123"4425 is expected to match "http://localhost/gitlab-org/gitlab-foss/-/milestones/123"4426 is expected not to match "http://localhost/gitlab-org/gitlab-foss/issues/123"4427 is expected not to match "gitlab-org/gitlab-ce/milestones/123"4428 #parent4429 with group4430 returns the expected parent4431 with project4432 returns the expected parent4433 #subgroup_milestone4434 parent is subgroup4435 returns true4436 parent is not subgroup4437 returns false4438Ci::Stage4439 behaves like having unique enum values4440 has unique values in "status"4441 associations4442 #statuses4443 returns all commit statuses4444 #builds4445 returns only builds4446 .by_position4447 finds stages by position4448 .by_name4449 finds stages by name4450 #status4451 when stage is pending4452 has a correct status value4453 when stage is success4454 has a correct status value4455 when stage status is not defined4456 sets the default value4457 #set_status4458 from_status: :created, to_status: :waiting_for_resource4459 is expected to eq true4460 from_status: :created, to_status: :preparing4461 is expected to eq true4462 from_status: :created, to_status: :pending4463 is expected to eq true4464 from_status: :created, to_status: :running4465 is expected to eq true4466 from_status: :created, to_status: :failed4467 is expected to eq true4468 from_status: :created, to_status: :success4469 is expected to eq true4470 from_status: :created, to_status: :canceled4471 is expected to eq true4472 from_status: :created, to_status: :skipped4473 is expected to eq true4474 from_status: :created, to_status: :manual4475 is expected to eq true4476 from_status: :created, to_status: :scheduled4477 is expected to eq true4478 from_status: :waiting_for_resource, to_status: :waiting_for_resource4479 is expected to eq false4480 from_status: :waiting_for_resource, to_status: :preparing4481 is expected to eq true4482 from_status: :waiting_for_resource, to_status: :pending4483 is expected to eq true4484 from_status: :waiting_for_resource, to_status: :running4485 is expected to eq true4486 from_status: :waiting_for_resource, to_status: :failed4487 is expected to eq true4488 from_status: :waiting_for_resource, to_status: :success4489 is expected to eq true4490 from_status: :waiting_for_resource, to_status: :canceled4491 is expected to eq true4492 from_status: :waiting_for_resource, to_status: :skipped4493 is expected to eq true4494 from_status: :waiting_for_resource, to_status: :manual4495 is expected to eq true4496 from_status: :waiting_for_resource, to_status: :scheduled4497 is expected to eq true4498 from_status: :preparing, to_status: :waiting_for_resource4499 is expected to eq true4500 from_status: :preparing, to_status: :preparing4501 is expected to eq false4502 from_status: :preparing, to_status: :pending4503 is expected to eq true4504 from_status: :preparing, to_status: :running4505 is expected to eq true4506 from_status: :preparing, to_status: :failed4507 is expected to eq true4508 from_status: :preparing, to_status: :success4509 is expected to eq true4510 from_status: :preparing, to_status: :canceled4511 is expected to eq true4512 from_status: :preparing, to_status: :skipped4513 is expected to eq true4514 from_status: :preparing, to_status: :manual4515 is expected to eq true4516 from_status: :preparing, to_status: :scheduled4517 is expected to eq true4518 from_status: :pending, to_status: :waiting_for_resource4519 is expected to eq true4520 from_status: :pending, to_status: :preparing4521 is expected to eq true4522 from_status: :pending, to_status: :pending4523 is expected to eq false4524 from_status: :pending, to_status: :running4525 is expected to eq true4526 from_status: :pending, to_status: :failed4527 is expected to eq true4528 from_status: :pending, to_status: :success4529 is expected to eq true4530 from_status: :pending, to_status: :canceled4531 is expected to eq true4532 from_status: :pending, to_status: :skipped4533 is expected to eq true4534 from_status: :pending, to_status: :manual4535 is expected to eq true4536 from_status: :pending, to_status: :scheduled4537 is expected to eq true4538 from_status: :running, to_status: :waiting_for_resource4539 is expected to eq true4540 from_status: :running, to_status: :preparing4541 is expected to eq true4542 from_status: :running, to_status: :pending4543 is expected to eq true4544 from_status: :running, to_status: :running4545 is expected to eq false4546 from_status: :running, to_status: :failed4547 is expected to eq true4548 from_status: :running, to_status: :success4549 is expected to eq true4550 from_status: :running, to_status: :canceled4551 is expected to eq true4552 from_status: :running, to_status: :skipped4553 is expected to eq true4554 from_status: :running, to_status: :manual4555 is expected to eq true4556 from_status: :running, to_status: :scheduled4557 is expected to eq true4558 from_status: :failed, to_status: :waiting_for_resource4559 is expected to eq true4560 from_status: :failed, to_status: :preparing4561 is expected to eq true4562 from_status: :failed, to_status: :pending4563 is expected to eq true4564 from_status: :failed, to_status: :running4565 is expected to eq true4566 from_status: :failed, to_status: :failed4567 is expected to eq false4568 from_status: :failed, to_status: :success4569 is expected to eq true4570 from_status: :failed, to_status: :canceled4571 is expected to eq true4572 from_status: :failed, to_status: :skipped4573 is expected to eq true4574 from_status: :failed, to_status: :manual4575 is expected to eq true4576 from_status: :failed, to_status: :scheduled4577 is expected to eq true4578 from_status: :success, to_status: :waiting_for_resource4579 is expected to eq true4580 from_status: :success, to_status: :preparing4581 is expected to eq true4582 from_status: :success, to_status: :pending4583 is expected to eq true4584 from_status: :success, to_status: :running4585 is expected to eq true4586 from_status: :success, to_status: :failed4587 is expected to eq true4588 from_status: :success, to_status: :success4589 is expected to eq false4590 from_status: :success, to_status: :canceled4591 is expected to eq true4592 from_status: :success, to_status: :skipped4593 is expected to eq true4594 from_status: :success, to_status: :manual4595 is expected to eq true4596 from_status: :success, to_status: :scheduled4597 is expected to eq true4598 from_status: :canceled, to_status: :waiting_for_resource4599 is expected to eq true4600 from_status: :canceled, to_status: :preparing4601 is expected to eq true4602 from_status: :canceled, to_status: :pending4603 is expected to eq true4604 from_status: :canceled, to_status: :running4605 is expected to eq true4606 from_status: :canceled, to_status: :failed4607 is expected to eq true4608 from_status: :canceled, to_status: :success4609 is expected to eq true4610 from_status: :canceled, to_status: :canceled4611 is expected to eq false4612 from_status: :canceled, to_status: :skipped4613 is expected to eq true4614 from_status: :canceled, to_status: :manual4615 is expected to eq true4616 from_status: :canceled, to_status: :scheduled4617 is expected to eq true4618 from_status: :skipped, to_status: :waiting_for_resource4619 is expected to eq true4620 from_status: :skipped, to_status: :preparing4621 is expected to eq true4622 from_status: :skipped, to_status: :pending4623 is expected to eq true4624 from_status: :skipped, to_status: :running4625 is expected to eq true4626 from_status: :skipped, to_status: :failed4627 is expected to eq true4628 from_status: :skipped, to_status: :success4629 is expected to eq true4630 from_status: :skipped, to_status: :canceled4631 is expected to eq true4632 from_status: :skipped, to_status: :skipped4633 is expected to eq false4634 from_status: :skipped, to_status: :manual4635 is expected to eq true4636 from_status: :skipped, to_status: :scheduled4637 is expected to eq true4638 from_status: :manual, to_status: :waiting_for_resource4639 is expected to eq true4640 from_status: :manual, to_status: :preparing4641 is expected to eq true4642 from_status: :manual, to_status: :pending4643 is expected to eq true4644 from_status: :manual, to_status: :running4645 is expected to eq true4646 from_status: :manual, to_status: :failed4647 is expected to eq true4648 from_status: :manual, to_status: :success4649 is expected to eq true4650 from_status: :manual, to_status: :canceled4651 is expected to eq true4652 from_status: :manual, to_status: :skipped4653 is expected to eq true4654 from_status: :manual, to_status: :manual4655 is expected to eq false4656 from_status: :manual, to_status: :scheduled4657 is expected to eq true4658 from_status: :scheduled, to_status: :waiting_for_resource4659 is expected to eq true4660 from_status: :scheduled, to_status: :preparing4661 is expected to eq true4662 from_status: :scheduled, to_status: :pending4663 is expected to eq true4664 from_status: :scheduled, to_status: :running4665 is expected to eq true4666 from_status: :scheduled, to_status: :failed4667 is expected to eq true4668 from_status: :scheduled, to_status: :success4669 is expected to eq true4670 from_status: :scheduled, to_status: :canceled4671 is expected to eq true4672 from_status: :scheduled, to_status: :skipped4673 is expected to eq true4674 from_status: :scheduled, to_status: :manual4675 is expected to eq true4676 from_status: :scheduled, to_status: :scheduled4677 is expected to eq false4678 #update_status4679 when stage objects needs to be updated4680 updates stage status correctly4681 when stage has only created builds4682 updates status to skipped4683 when stage is skipped because of skipped builds4684 updates status to skipped4685 when stage is scheduled because of scheduled builds4686 updates status to scheduled4687 when build is waiting for resource4688 updates status to waiting for resource4689 when stage is skipped because is empty4690 updates status to skipped4691 when stage object is locked4692 retries a lock to update a stage status4693 when statuses status was not recognized4694 raises an exception4695 #detailed_status4696 statuses: ["created"], label: :created4697 has a correct label4698 statuses: ["success"], label: :passed4699 has a correct label4700 statuses: ["pending"], label: :pending4701 has a correct label4702 statuses: ["skipped"], label: :skipped4703 has a correct label4704 statuses: ["canceled"], label: :canceled4705 has a correct label4706 statuses: ["success", "failed"], label: :failed4707 has a correct label4708 statuses: ["running", "pending"], label: :running4709 has a correct label4710 when stage has warnings4711 is passed with warnings4712 #groups4713 groups stage builds by name4714 #delay4715 updates stage status4716 #position4717 when stage has been imported and does not have position index set4718 when stage has statuses4719 recalculates index before updating status4720 when stage has statuses with nil idx4721 sets index to a non-empty value4722 when stage does not have statuses4723 fallbacks to zero4724 when stage has warnings4725 #has_warnings?4726 returns true4727 #number_of_warnings4728 returns a lazy stage warnings counter4729 when stage does not have warnings4730 #has_warnings?4731 returns false4732 behaves like manual playable stage4733 #manual_playable?4734 when is manual4735 is expected to be truthy4736 when is scheduled4737 is expected to be truthy4738 when is skipped4739 is expected to be truthy4740 loose foreign key on ci_stages.project_id4741 behaves like cleanup by a loose foreign key4742 cleans up (delete or nullify) the model4743Integrations::HangoutsChat4744 behaves like chat integration4745 Associations4746 is expected to belong to project required: false4747 is expected to have one service_hook4748 Validations4749 when integration is active4750 is expected to validate that :webhook cannot be empty/falsy4751 behaves like issue tracker integration URL attribute4752 is expected to allow :webhook to be ‹"https://example.com"›4753 is expected not to allow :webhook to be ‹"example.com"›4754 is expected not to allow :webhook to be ‹"ftp://example.com"›4755 is expected not to allow :webhook to be ‹"herp-and-derp"›4756 when integration is inactive4757 is expected not to validate that :webhook cannot be empty/falsy4758 .supported_events4759 does not support deployment_events4760 #execute4761 with push events4762 behaves like triggered Hangouts Chat integration4763 calls Hangouts Chat API4764 with default branch4765 when only default branch are to be notified4766 behaves like triggered Hangouts Chat integration4767 calls Hangouts Chat API4768 when only protected branches are to be notified4769 behaves like untriggered Hangouts Chat integration4770 does not call Hangouts Chat API4771 when default and protected branches are to be notified4772 behaves like triggered Hangouts Chat integration4773 calls Hangouts Chat API4774 when all branches are to be notified4775 behaves like triggered Hangouts Chat integration4776 calls Hangouts Chat API4777 with protected branch4778 when only default branch are to be notified4779 behaves like untriggered Hangouts Chat integration4780 does not call Hangouts Chat API4781 when only protected branches are to be notified4782 behaves like triggered Hangouts Chat integration4783 calls Hangouts Chat API4784 when default and protected branches are to be notified4785 behaves like triggered Hangouts Chat integration4786 calls Hangouts Chat API4787 when all branches are to be notified4788 behaves like triggered Hangouts Chat integration4789 calls Hangouts Chat API4790 with neither default nor protected branch4791 when only default branch are to be notified4792 behaves like untriggered Hangouts Chat integration4793 does not call Hangouts Chat API4794 when only protected branches are to be notified4795 behaves like untriggered Hangouts Chat integration4796 does not call Hangouts Chat API4797 when default and protected branches are to be notified4798 behaves like untriggered Hangouts Chat integration4799 does not call Hangouts Chat API4800 when all branches are to be notified4801 behaves like triggered Hangouts Chat integration4802 calls Hangouts Chat API4803 with issue events4804 behaves like triggered Hangouts Chat integration4805 calls Hangouts Chat API4806 with merge events4807 behaves like triggered Hangouts Chat integration4808 calls Hangouts Chat API4809 with wiki page events4810 behaves like triggered Hangouts Chat integration4811 calls Hangouts Chat API4812 with note events4813 with commit comment4814 behaves like triggered Hangouts Chat integration4815 calls Hangouts Chat API4816 with merge request comment4817 behaves like triggered Hangouts Chat integration4818 calls Hangouts Chat API4819 with issue comment4820 behaves like triggered Hangouts Chat integration4821 calls Hangouts Chat API4822 with snippet comment4823 behaves like triggered Hangouts Chat integration4824 calls Hangouts Chat API4825 with pipeline events4826 with failed pipeline4827 behaves like triggered Hangouts Chat integration4828 calls Hangouts Chat API4829 with succeeded pipeline4830 with default notify_only_broken_pipelines4831 does not call Hangouts Chat API4832 when notify_only_broken_pipelines is false4833 behaves like triggered Hangouts Chat integration4834 calls Hangouts Chat API4835 with default branch4836 when only default branch are to be notified4837 behaves like triggered Hangouts Chat integration4838 calls Hangouts Chat API4839 when only protected branches are to be notified4840 behaves like untriggered Hangouts Chat integration4841 does not call Hangouts Chat API4842 when default and protected branches are to be notified4843 behaves like triggered Hangouts Chat integration4844 calls Hangouts Chat API4845 when all branches are to be notified4846 behaves like triggered Hangouts Chat integration4847 calls Hangouts Chat API4848 with protected branch4849 when only default branch are to be notified4850 behaves like untriggered Hangouts Chat integration4851 does not call Hangouts Chat API4852 when only protected branches are to be notified4853 behaves like triggered Hangouts Chat integration4854 calls Hangouts Chat API4855 when default and protected branches are to be notified4856 behaves like triggered Hangouts Chat integration4857 calls Hangouts Chat API4858 when all branches are to be notified4859 behaves like triggered Hangouts Chat integration4860 calls Hangouts Chat API4861 with neither default nor protected branch4862 when only default branch are to be notified4863 behaves like untriggered Hangouts Chat integration4864 does not call Hangouts Chat API4865 when only protected branches are to be notified4866 behaves like untriggered Hangouts Chat integration4867 does not call Hangouts Chat API4868 when default and protected branches are to be notified4869 behaves like untriggered Hangouts Chat integration4870 does not call Hangouts Chat API4871 when all branches are to be notified4872 behaves like triggered Hangouts Chat integration4873 calls Hangouts Chat API4874 deployment events4875 behaves like untriggered Hangouts Chat integration4876 does not call Hangouts Chat API4877Gitlab::LegacyGithubImport::PullRequestFormatter4878 when importing a GitHub project4879 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes4880 when pull request is open4881 returns formatted attributes4882 when pull request is closed4883 returns formatted attributes4884 when pull request is merged4885 returns formatted attributes4886 when it is assigned to someone4887 returns nil as assignee_id when is not a GitLab user4888 returns GitLab user id associated with GitHub id as assignee_id4889 returns GitLab user id associated with GitHub email as assignee_id4890 when author is a GitLab user4891 returns project creator_id as author_id when is not a GitLab user4892 returns GitLab user id associated with GitHub id as author_id4893 returns GitLab user id associated with GitHub email as author_id4894 returns description without created at tag line4895 when it has a milestone4896 returns nil when milestone does not exist4897 returns milestone when it exists4898 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number4899 returns pull request number4900 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name4901 when source branch exists4902 returns branch ref4903 when source branch does not exist4904 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4905 when source branch is from a fork4906 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4907 when source branch is from a deleted fork4908 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4909 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name4910 when target branch exists4911 returns branch ref4912 when target branch does not exist4913 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4914 when importing a Gitea project4915 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes4916 when pull request is open4917 returns formatted attributes4918 when pull request is closed4919 returns formatted attributes4920 when pull request is merged4921 returns formatted attributes4922 when it is assigned to someone4923 returns nil as assignee_id when is not a GitLab user4924 returns GitLab user id associated with GitHub id as assignee_id4925 returns GitLab user id associated with GitHub email as assignee_id4926 when author is a GitLab user4927 returns project creator_id as author_id when is not a GitLab user4928 returns GitLab user id associated with GitHub id as author_id4929 returns GitLab user id associated with GitHub email as author_id4930 returns description without created at tag line4931 when it has a milestone4932 returns nil when milestone does not exist4933 returns milestone when it exists4934 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number4935 returns pull request number4936 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name4937 when source branch exists4938 returns branch ref4939 when source branch does not exist4940 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4941 when source branch is from a fork4942 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4943 when source branch is from a deleted fork4944 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4945 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name4946 when target branch exists4947 returns branch ref4948 when target branch does not exist4949 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4950 #valid?4951 when source, and target repos are not a fork4952 returns true4953 when source repo is a fork4954 returns true4955 when target repo is a fork4956 returns true4957 #cross_project?4958 when source and target repositories are different4959 returns true4960 when source repository does not exist anymore4961 returns true4962 when source and target repositories are the same4963 returns false4964 #source_branch_exists?4965 returns false when is a cross_project4966 #url4967 return raw url4968 #opened?4969 returns true when state is "open"4970Integrations::Discord4971 behaves like chat integration4972 Associations4973 is expected to belong to project required: false4974 is expected to have one service_hook4975 Validations4976 when integration is active4977 is expected to validate that :webhook cannot be empty/falsy4978 behaves like issue tracker integration URL attribute4979 is expected to allow :webhook to be ‹"https://example.com"›4980 is expected not to allow :webhook to be ‹"example.com"›4981 is expected not to allow :webhook to be ‹"ftp://example.com"›4982 is expected not to allow :webhook to be ‹"herp-and-derp"›4983 when integration is inactive4984 is expected not to validate that :webhook cannot be empty/falsy4985 .supported_events4986 does not support deployment_events4987 #execute4988 with push events4989 behaves like triggered Discord notifications integration4990 calls Discord notifications API4991 with default branch4992 when only default branch are to be notified4993 behaves like triggered Discord notifications integration4994 calls Discord notifications API4995 when only protected branches are to be notified4996 behaves like untriggered Discord notifications integration4997 does not call Discord notifications API4998 when default and protected branches are to be notified4999 behaves like triggered Discord notifications integration5000 calls Discord notifications API5001 when all branches are to be notified5002 behaves like triggered Discord notifications integration5003 calls Discord notifications API5004 with protected branch5005 when only default branch are to be notified5006 behaves like untriggered Discord notifications integration5007 does not call Discord notifications API5008 when only protected branches are to be notified5009 behaves like triggered Discord notifications integration5010 calls Discord notifications API5011 when default and protected branches are to be notified5012 behaves like triggered Discord notifications integration5013 calls Discord notifications API5014 when all branches are to be notified5015 behaves like triggered Discord notifications integration5016 calls Discord notifications API5017 with neither default nor protected branch5018 when only default branch are to be notified5019 behaves like untriggered Discord notifications integration5020 does not call Discord notifications API5021 when only protected branches are to be notified5022 behaves like untriggered Discord notifications integration5023 does not call Discord notifications API5024 when default and protected branches are to be notified5025 behaves like untriggered Discord notifications integration5026 does not call Discord notifications API5027 when all branches are to be notified5028 behaves like triggered Discord notifications integration5029 calls Discord notifications API5030 with issue events5031 behaves like triggered Discord notifications integration5032 calls Discord notifications API5033 with merge events5034 behaves like triggered Discord notifications integration5035 calls Discord notifications API5036 with wiki page events5037 behaves like triggered Discord notifications integration5038 calls Discord notifications API5039 with note events5040 with commit comment5041 behaves like triggered Discord notifications integration5042 calls Discord notifications API5043 with merge request comment5044 behaves like triggered Discord notifications integration5045 calls Discord notifications API5046 with issue comment5047 behaves like triggered Discord notifications integration5048 calls Discord notifications API5049 with snippet comment5050 behaves like triggered Discord notifications integration5051 calls Discord notifications API5052 with pipeline events5053 with failed pipeline5054 behaves like triggered Discord notifications integration5055 calls Discord notifications API5056 with succeeded pipeline5057 with default notify_only_broken_pipelines5058 does not call Discord notifications API5059 when notify_only_broken_pipelines is false5060 behaves like triggered Discord notifications integration5061 calls Discord notifications API5062 with default branch5063 when only default branch are to be notified5064 behaves like triggered Discord notifications integration5065 calls Discord notifications API5066 when only protected branches are to be notified5067 behaves like untriggered Discord notifications integration5068 does not call Discord notifications API5069 when default and protected branches are to be notified5070 behaves like triggered Discord notifications integration5071 calls Discord notifications API5072 when all branches are to be notified5073 behaves like triggered Discord notifications integration5074 calls Discord notifications API5075 with protected branch5076 when only default branch are to be notified5077 behaves like untriggered Discord notifications integration5078 does not call Discord notifications API5079 when only protected branches are to be notified5080 behaves like triggered Discord notifications integration5081 calls Discord notifications API5082 when default and protected branches are to be notified5083 behaves like triggered Discord notifications integration5084 calls Discord notifications API5085 when all branches are to be notified5086 behaves like triggered Discord notifications integration5087 calls Discord notifications API5088 with neither default nor protected branch5089 when only default branch are to be notified5090 behaves like untriggered Discord notifications integration5091 does not call Discord notifications API5092 when only protected branches are to be notified5093 behaves like untriggered Discord notifications integration5094 does not call Discord notifications API5095 when default and protected branches are to be notified5096 behaves like untriggered Discord notifications integration5097 does not call Discord notifications API5098 when all branches are to be notified5099 behaves like triggered Discord notifications integration5100 calls Discord notifications API5101 deployment events5102 behaves like untriggered Discord notifications integration5103 does not call Discord notifications API5104 #execute5105 uses the right embed parameters5106 DNS rebind to local address5107 does not allow DNS rebinding5108 when the Discord request fails5109 logs an error and returns false5110Boards::Lists::UpdateService5111 #execute5112 when position parameter is present5113 for projects5114 behaves like moving list5115 when user can admin list5116 when the new position is valid5117 calls Lists::MoveService to update list position5118 returns a success response5119 when the new position is invalid5120 returns error response5121 when user cannot admin list5122 does not call Lists::MoveService to update list position5123 returns an error response5124 for groups5125 behaves like moving list5126 when user can admin list5127 when the new position is valid5128 calls Lists::MoveService to update list position5129 returns a success response5130 when the new position is invalid5131 returns error response5132 when user cannot admin list5133 does not call Lists::MoveService to update list position5134 returns an error response5135 when collapsed parameter is present5136 for projects5137 behaves like updating list preferences5138 when user can read list5139 updates list preference for user5140 when user cannot read list5141 does not update list preference for user5142 for groups5143 behaves like updating list preferences5144 when user can read list5145 updates list preference for user5146 when user cannot read list5147 does not update list preference for user5148 when position and collapsed are both present5149 for projects5150 behaves like moving list5151 when user can admin list5152 when the new position is valid5153 calls Lists::MoveService to update list position5154 returns a success response5155 when the new position is invalid5156 returns error response5157 when user cannot admin list5158 does not call Lists::MoveService to update list position5159 returns an error response5160 behaves like updating list preferences5161 when user can read list5162 updates list preference for user5163 when user cannot read list5164 does not update list preference for user5165 for groups5166 behaves like moving list5167 when user can admin list5168 when the new position is valid5169 calls Lists::MoveService to update list position5170 returns a success response5171 when the new position is invalid5172 returns error response5173 when user cannot admin list5174 does not call Lists::MoveService to update list position5175 returns an error response5176 behaves like updating list preferences5177 when user can read list5178 updates list preference for user5179 when user cannot read list5180 does not update list preference for user5181NotesFinder5182 #execute5183 finds notes on merge requests5184 finds notes on snippets5185 excludes notes on commits the author can't download5186 succeeds when no notes found5187 when notes filter is present5188 returns only user notes when using only_comments filter5189 returns only system notes when using only_activity filters5190 gets all notes5191 on restricted projects5192 publicly excludes notes on merge requests5193 publicly excludes notes on issues5194 publicly excludes notes on snippets5195 for target type5196 finds only notes for the selected type5197 for target5198 finds all notes5199 finds notes on merge requests5200 finds notes on snippets5201 finds notes on personal snippets5202 raises an exception for an invalid target_type5203 filters out old notes5204 confidential issue notes5205 returns notes if user can see the issue5206 raises an error if user can not see the issue5207 raises an error for project members with guest role5208 for explicit target5209 returns the expected notes5210 returns the expected notes when last_fetched_at is given5211 fails when nil is provided5212 sorting5213 allows sorting5214 defaults to sort by .fresh5215 .search5216 returns notes with matching content5217 returns notes with matching content regardless of the casing5218 returns commit notes user can access5219 confidential issues5220 returns notes with matching content if user can see the issue5221 does not return notes with matching content if user can not see the issue5222 does not return notes with matching content for project members with guest role5223 does not return notes with matching content for unauthenticated users5224 inlines SQL filters on subqueries for performance5225 project_id check5226 search filter5227 #target5228 for a issue target5229 returns the issue5230 for a merge request target5231 returns the merge_request5232 for a snippet target5233 returns the snippet5234 for a commit target5235 returns the commit5236 target_iid5237 finds issues by iid5238 finds merge requests by iid5239 returns nil if both target_id and target_iid are not given5240 prioritizes target_id over target_iid5241Banzai::Filter::References::MergeRequestReferenceFilter5242 requires project context5243 ignores valid references contained inside 'pre' element5244 ignores valid references contained inside 'code' element5245 ignores valid references contained inside 'a' element5246 ignores valid references contained inside 'style' element5247 performance5248 does not have a N+1 query problem5249 all references5250 adds merge request iid5251 adds project data attribute with project id5252 does not add `has-tooltip` class5253 internal reference5254 links to a valid reference5255 links with adjacent text5256 ignores invalid merge IDs5257 ignores out-of-bounds merge request IDs on the referenced project5258 has the MR title in the title attribute5259 escapes the title attribute5260 includes default classes, without tooltip5261 includes a data-project attribute5262 includes a data-merge-request attribute5263 includes a data-reference-format attribute5264 includes a data-reference-format attribute for URL references5265 supports an :only_path context5266 cross-project / cross-namespace complete reference5267 links to a valid reference5268 link has valid text5269 has valid text5270 has correct data attributes5271 ignores invalid merge IDs on the referenced project5272 cross-project / same-namespace complete reference5273 links to a valid reference5274 link has valid text5275 has valid text5276 ignores invalid merge IDs on the referenced project5277 cross-project shorthand reference5278 links to a valid reference5279 link has valid text5280 has valid text5281 ignores invalid merge IDs on the referenced project5282 URL reference for a commit5283 links to a valid reference5284 commit ref tag is valid5285 has valid text5286 ignores invalid commit short_ids on link text5287 cross-project URL reference5288 links to a valid reference5289 links with adjacent text5290 group context5291 links to a valid reference5292Gitlab::Ci::Config::Entry::Job5293 behaves like with inheritable CI config5294 does prepend an Inheritable mixin5295 all inheritable entries are covered5296 all entries do have inherit flag5297 for non-inheritable entries5298 entry_key: :stage5299 inheritable_class does not define entry5300 entry_key: :only5301 inheritable_class does not define entry5302 entry_key: :except5303 inheritable_class does not define entry5304 entry_key: :rules5305 inheritable_class does not define entry5306 entry_key: :variables5307 inheritable_class does not define entry5308 entry_key: :inherit5309 inheritable_class does not define entry5310 entry_key: :script5311 inheritable_class does not define entry5312 entry_key: :needs5313 inheritable_class does not define entry5314 entry_key: :environment5315 inheritable_class does not define entry5316 entry_key: :coverage5317 inheritable_class does not define entry5318 entry_key: :release5319 inheritable_class does not define entry5320 entry_key: :parallel5321 inheritable_class does not define entry5322 entry_key: :allow_failure5323 inheritable_class does not define entry5324 entry_key: :dast_configuration5325 inheritable_class does not define entry5326 entry_key: :secrets5327 inheritable_class does not define entry5328 for inheritable entries5329 entry_key: :before_script, entry_class: Gitlab::Ci::Config::Entry::Commands5330 inheritable_class does define entry5331 when is specified5332 does inherit value5333 when entry is specified5334 does not inherit value5335 when inheritable does not specify5336 does not inherit value5337 entry_key: :after_script, entry_class: Gitlab::Ci::Config::Entry::Commands5338 inheritable_class does define entry5339 when is specified5340 does inherit value5341 when entry is specified5342 does not inherit value5343 when inheritable does not specify5344 does not inherit value5345 entry_key: :cache, entry_class: Gitlab::Ci::Config::Entry::Caches5346 inheritable_class does define entry5347 when is specified5348 does inherit value5349 when entry is specified5350 does not inherit value5351 when inheritable does not specify5352 does not inherit value5353 entry_key: :image, entry_class: Gitlab::Ci::Config::Entry::Image5354 inheritable_class does define entry5355 when is specified5356 does inherit value5357 when entry is specified5358 does not inherit value5359 when inheritable does not specify5360 does not inherit value5361 entry_key: :services, entry_class: Gitlab::Ci::Config::Entry::Services5362 inheritable_class does define entry5363 when is specified5364 does inherit value5365 when entry is specified5366 does not inherit value5367 when inheritable does not specify5368 does not inherit value5369 entry_key: :interruptible, entry_class: Gitlab::Config::Entry::Boolean5370 inheritable_class does define entry5371 when is specified5372 does inherit value5373 when entry is specified5374 does not inherit value5375 when inheritable does not specify5376 does not inherit value5377 entry_key: :timeout, entry_class: Gitlab::Ci::Config::Entry::Timeout5378 inheritable_class does define entry5379 when is specified5380 does inherit value5381 when entry is specified5382 does not inherit value5383 when inheritable does not specify5384 does not inherit value5385 entry_key: :retry, entry_class: Gitlab::Ci::Config::Entry::Retry5386 inheritable_class does define entry5387 when is specified5388 does inherit value5389 when entry is specified5390 does not inherit value5391 when inheritable does not specify5392 does not inherit value5393 entry_key: :tags, entry_class: Gitlab::Ci::Config::Entry::Tags5394 inheritable_class does define entry5395 when is specified5396 does inherit value5397 when entry is specified5398 does not inherit value5399 when inheritable does not specify5400 does not inherit value5401 entry_key: :artifacts, entry_class: Gitlab::Ci::Config::Entry::Artifacts5402 inheritable_class does define entry5403 when is specified5404 does inherit value5405 when entry is specified5406 does not inherit value5407 when inheritable does not specify5408 does not inherit value5409 .nodes5410 when filtering all the entry/node names5411 is expected to include :before_script, :script, :stage, :after_script, :cache, :image, :services, :only, :except, :rules, :needs, :variables, :artifacts, :environment, :coverage, :retry, :interruptible, :timeout, :release, :tags, :inherit, and :parallel5412 .matching?5413 when config is not a hash5414 is expected to be falsey5415 when config is a regular job5416 is expected to be truthy5417 when config is a bridge job5418 is expected to be falsey5419 when config is a hidden job5420 is expected to be falsey5421 when using the default job without script5422 is expected to be falsey5423 when using the default job with script5424 is expected to be truthy5425 validations5426 when entry config value is correct5427 #valid?5428 is valid5429 when job name is empty5430 reports error5431 when config uses both "when:" and "rules:"5432 is valid5433 when delayed job5434 when start_in is specified5435 is expected to be valid5436 when has needs5437 is expected to be valid5438 returns scheduling_type as :dag5439 when has dependencies5440 is expected to be valid5441 when it is a release5442 is expected to be valid5443 when rules are used5444 is expected to be valid5445 when entry value is not correct5446 incorrect config value type5447 #errors5448 reports error about a config type5449 when config is empty5450 #valid5451 is invalid5452 when unknown keys detected5453 #valid5454 is not valid5455 when script is not provided5456 returns error about missing script entry5457 when extends key is not a string5458 returns error about wrong value type5459 when parallel value is not correct5460 when it is not a numeric value5461 returns error about invalid type5462 when it is lower than two5463 returns error about value too low5464 when it is an empty hash5465 returns error about missing matrix5466 when delayed job5467 when start_in is specified5468 is expected to be valid5469 when start_in is empty5470 returns error about invalid type5471 when start_in is not formatted as a duration5472 returns error about invalid type5473 when start_in is longer than one week5474 returns error about exceeding the limit5475 when only: is used with rules:5476 returns error about mixing only: with rules:5477 and only: is blank5478 returns error about mixing only: with rules:5479 and rules: is blank5480 returns error about mixing only: with rules:5481 when except: is used with rules:5482 returns error about mixing except: with rules:5483 and except: is blank5484 returns error about mixing except: with rules:5485 and rules: is blank5486 returns error about mixing except: with rules:5487 when only: and except: are both used with rules:5488 returns errors about mixing both only: and except: with rules:5489 when only: and except: as both blank5490 returns errors about mixing both only: and except: with rules:5491 when rules: is blank5492 returns errors about mixing both only: and except: with rules:5493 when start_in specified without delayed specification5494 returns error about invalid type5495 when it has dependencies5496 that are not a array of strings5497 returns error about invalid type5498 when the job has needs5499 and there are dependencies that are not included in needs5500 returns error about invalid data5501 and they are only cross pipeline needs5502 adds an error for dependency keyword usage5503 when timeout value is not correct5504 when it is higher than instance wide timeout5505 returns error about value too high5506 when it is not a duration5507 returns error about wrong value5508 when timeout value is correct5509 returns correct timeout5510 when it is a release5511 when `release:description` is missing5512 returns error5513 when invalid rules are used5514 with rules nested more than max allowed levels5515 is expected not to be valid5516 with rules with invalid keys5517 is expected not to be valid5518 #relevant?5519 is a relevant entry5520 #compose!5521 when job config overrides default config5522 overrides default config5523 when job config does not override default config5524 uses config from default entry5525 with workflow rules5526 name: "uses default only", has_workflow_rules?: false, only: nil, rules: nil, result: {:refs=>["branches", "tags"]}5527 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesDefaultOnlyHasWorkflowRulesFalseOnlyNilRulesNilResultRefsBranchesTags5528 name: "uses user only", has_workflow_rules?: false, only: ["branches"], rules: nil, result: {:refs=>["branches"]}5529 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesFalseOnlyBranchesRulesNilResultRefsBranches5530 name: "does not define only", has_workflow_rules?: false, only: nil, rules: [], result: nil5531 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesFalseOnlyNilRulesResultNil5532 name: "does not define only", has_workflow_rules?: true, only: nil, rules: nil, result: nil5533 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesNilResultNil5534 name: "uses user only", has_workflow_rules?: true, only: ["branches"], rules: nil, result: {:refs=>["branches"]}5535 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameUsesUserOnlyHasWorkflowRulesTrueOnlyBranchesRulesNilResultRefsBranches5536 name: "does not define only", has_workflow_rules?: true, only: nil, rules: [], result: nil5537 RSpec::ExampleGroups::GitlabCiConfigEntryJob::Compose::WithWorkflowRules::NameDoesNotDefineOnlyHasWorkflowRulesTrueOnlyNilRulesResultNil5538 when workflow rules is used5539 when rules are used5540 does not define only5541 when rules are not used5542 does not define only5543 when composed5544 #value5545 when entry is correct5546 returns correct value5547 when job is using tags5548 when limit is reached5549 returns error5550 when limit is not reached5551 returns a valid entry5552 #manual_action?5553 when job is a manual action5554 is a manual action5555 when job is not a manual action5556 is not a manual action5557 #delayed?5558 when job is a delayed5559 is a delayed5560 when job is not a delayed5561 is not a delayed5562 #ignored?5563 when job is a manual action5564 when it is not specified if job is allowed to fail5565 is an ignored job5566 when job is allowed to fail5567 is an ignored job5568 when job is not allowed to fail5569 is not an ignored job5570 when job is dynamically allowed to fail5571 is not an ignored job5572 when job is not a manual action5573 when it is not specified if job is allowed to fail5574 is not an ignored job5575 does not return allow_failure5576 when job is allowed to fail5577 is an ignored job5578 does not return allow_failure_criteria5579 when job is not allowed to fail5580 is not an ignored job5581 does not return allow_failure_criteria5582 when job is dynamically allowed to fail5583 is not an ignored job5584 returns allow_failure_criteria5585MergeRequests::ToggleAttentionRequestedService5586 #execute5587 invalid permissions5588 returns an error5589 reviewer does not exist5590 returns an error5591 reviewer exists5592 returns success5593 updates reviewers state5594 adds who toggled attention5595 creates a new todo for the reviewer5596 sends email to reviewer5597 removes attention requested state5598 invalidates cache5599 assignee exists5600 returns success5601 updates assignees state5602 creates a new todo for the reviewer5603 creates a request attention system note5604 removes attention requested state5605 behaves like invalidates attention request cache5606 invalidates the merge requests requiring attention count5607 assignee is the same as reviewer5608 updates reviewers and assignees state5609 state is attention_requested5610 toggles state to reviewed5611 does not create a new todo for the reviewer5612 creates a remove attention request system note5613MergeRequests::AfterCreateService5614 #execute5615 creates a merge request open event5616 calls the merge request activity counter5617 creates a new merge request notification5618 writes diffs to the cache5619 creates cross references5620 creates a pipeline and updates the HEAD pipeline5621 increments the usage data counter of create event5622 tracks merge request creation in usage data5623 calls MergeRequests::LinkLfsObjectsService#execute5624 behaves like records an onboarding progress action5625 is expected to receive execute({:action=>:merge_request_created}) 1 time5626 when merge request is in unchecked state5627 does not change its state5628 when merge request is in preparing state5629 checks for mergeability5630 when preparing for mergeability fails5631 does not mark the merge request as unchecked5632 when preparing merge request fails5633 still checks for mergeability5634 with a milestone5635 deletes the cache key for milestone merge request counter5636 todos5637 does not creates todos5638 when merge request is assigned to someone5639 creates a todo for new assignee5640 when reviewer is assigned5641 creates a todo for new reviewer5642 when saving references to issues that the created merge request closes5643 creates a `MergeRequestsClosingIssues` record for each issue5644User TokenAuthenticatable5645 behaves like TokenAuthenticatable5646 dynamically defined methods5647 is expected to respond to #find_by_feed_token5648 is expected to respond to #ensure_feed_token5649 is expected to respond to #set_feed_token5650 is expected to respond to #reset_feed_token!5651 SensitiveSerializableHash5652 includes the token field in list of sensitive attributes prevented from serialization5653 ensures authentication token5654 is expected to be a kind of String5655ApplicationSetting TokenAuthenticatable5656 behaves like TokenAuthenticatable5657 dynamically defined methods5658 is expected to respond to #find_by_runners_registration_token5659 is expected to respond to #ensure_runners_registration_token5660 is expected to respond to #set_runners_registration_token5661 is expected to respond to #reset_runners_registration_token!5662 SensitiveSerializableHash5663 includes the token field in list of sensitive attributes prevented from serialization5664 generating new token5665 token is not generated yet5666 token field accessor5667 is expected not to be blank5668 ensure_runners_registration_token5669 is expected to be a kind of String5670 is expected not to be blank5671 does not persist token5672 ensure_runners_registration_token!5673 persists new token as an encrypted string5674 does not persist token in a clear text5675 token is generated5676 persists a new token5677 setting new token5678 is expected to eq "0123456789"5679 multiple token fields5680 is expected to respond to #ensure_runners_registration_token5681 is expected to respond to #ensure_yet_another_token5682 setting same token field multiple times5683 raises error5684PersonalAccessToken TokenAuthenticatable5685 .find_by_token5686 finds the token5687 #set_token5688 sets new token5689 #ensure_token5690 token_digest does not exist5691 behaves like changes personal access token5692 sets new token5693 token_digest already generated5694 behaves like does not change personal access token5695 sets new token5696 #ensure_token!5697 token_digest does not exist5698 behaves like changes personal access token5699 sets new token5700 token_digest already generated5701 behaves like does not change personal access token5702 sets new token5703 #reset_token!5704 token_digest does not exist5705 behaves like changes personal access token5706 sets new token5707 token_digest already generated5708 behaves like changes personal access token5709 sets new token5710Ci::Build TokenAuthenticatable5711 behaves like TokenAuthenticatable5712 dynamically defined methods5713 is expected to respond to #find_by_token5714 is expected to respond to #ensure_token5715 is expected to respond to #set_token5716 is expected to respond to #reset_token!5717 SensitiveSerializableHash5718 includes the token field in list of sensitive attributes prevented from serialization5719 generating new token5720 token is not generated yet5721 token field accessor5722 makes it possible to access token5723 ensure_token5724 is expected to be a kind of String5725 is expected not to be blank5726 does not persist token5727 ensure_token!5728 persists a new token5729 persists new token as an encrypted string5730 does not persist a token in a clear text5731 #reset_token!5732 persists a new token5733 setting a new token5734 returns the token5735 writes a new encrypted token5736 does not write a new cleartext token5737 #token_with_expiration5738 #expirable?5739 is expected to eq false5740Ci::Runner TokenAuthenticatable5741 #token_expired?5742 when enforce_runner_token_expires_at feature flag is disabled5743 when runner has no token expiration5744 is expected to eq false5745 when runner token is not expired5746 is expected to eq false5747 when runner token is expired5748 is expected to eq false5749 when enforce_runner_token_expires_at feature flag is enabled5750 when runner has no token expiration5751 is expected to eq false5752 when runner token is not expired5753 is expected to eq false5754 when runner token is expired5755 is expected to eq true5756 #token_with_expiration5757 #token5758 is expected to eq "fv1K79xxP3sZuP5owHVJ"5759 #token_expires_at5760 is expected to eq 2022-07-07 01:36:13.380196614 +00005761 #expirable?5762 is expected to eq true5763 .find_by_token5764 when enforce_runner_token_expires_at feature flag is disabled5765 when runner has no token expiration5766 is expected to eq #<Ci::Runner id: 26, token: nil, created_at: "2022-07-07 01:36:08.360237727 +0000", updated_at: "2022..., executor_type: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], tag_list: nil>5767 when runner token is not expired5768 is expected to eq #<Ci::Runner id: 27, token: nil, created_at: "2022-07-07 01:36:08.374668915 +0000", updated_at: "2022...ote: nil, token_expires_at: "2022-07-07 01:36:13.380196614 +0000", allowed_plans: [], tag_list: nil>5769 when runner token is expired5770 is expected to eq #<Ci::Runner id: 28, token: nil, created_at: "2022-07-07 01:36:08.398180693 +0000", updated_at: "2022...ote: nil, token_expires_at: "2022-07-07 01:36:03.403529572 +0000", allowed_plans: [], tag_list: nil>5771 when enforce_runner_token_expires_at feature flag is enabled5772 when runner has no token expiration5773 is expected to eq #<Ci::Runner id: 26, token: nil, created_at: "2022-07-07 01:36:08.360237727 +0000", updated_at: "2022..., executor_type: nil, maintainer_note: nil, token_expires_at: nil, allowed_plans: [], tag_list: nil>5774 when runner token is not expired5775 is expected to eq #<Ci::Runner id: 27, token: nil, created_at: "2022-07-07 01:36:08.374668915 +0000", updated_at: "2022...ote: nil, token_expires_at: "2022-07-07 01:36:13.380196614 +0000", allowed_plans: [], tag_list: nil>5776 when runner token is expired5777 is expected to be nil5778Project TokenAuthenticatable5779 behaves like prefixed token rotation5780 ensure_runners_token5781 token is not set5782 generates a new token5783 token is set, but does not match the prefix5784 generates a new token5785 token is set and matches prefix5786 leaves the token unchanged5787 ensure_runners_token!5788 token is not set5789 generates a new token5790 token is set, but does not match the prefix5791 generates a new token5792 token is set and matches prefix5793 leaves the token unchanged5794Group TokenAuthenticatable5795 behaves like prefixed token rotation5796 ensure_runners_token5797 token is not set5798 generates a new token5799 token is set, but does not match the prefix5800 generates a new token5801 token is set and matches prefix5802 leaves the token unchanged5803 ensure_runners_token!5804 token is not set5805 generates a new token5806 token is set, but does not match the prefix5807 generates a new token5808 token is set and matches prefix5809 leaves the token unchanged5810Backup::Repositories5811 #dump5812 avoids N+1 database queries5813 hashed storage5814 behaves like creates repository bundles5815 calls enqueue for each repository type5816 legacy storage5817 behaves like creates repository bundles5818 calls enqueue for each repository type5819 command failure5820 enqueue_project raises an error5821 project query raises an error5822 storages5823 calls enqueue for all repositories on the specified storage5824 paths5825 project path5826 calls enqueue for all repositories on the specified project5827 group path5828 calls enqueue for all repositories on all descendant projects5829 #restore5830 calls enqueue for each repository type5831 restoring object pools5832 schedules restoring of the pool5833 skips pools when no source project is found5834 cleanup snippets5835 shows the appropriate error5836 removes the snippets from the DB5837 removes the repository from disk5838 storages5839 calls enqueue for all repositories on the specified storage5840 paths5841 project path5842 calls enqueue for all repositories on the specified project5843 group path5844 calls enqueue for all repositories on all descendant projects5845Gitlab::DataBuilder::Build5846 .build5847 is expected to be a kind of Hash5848 is expected to eq "master"5849 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"5850 is expected to eq false5851 is expected to eq 895852 is expected to eq "running"5853 is expected to eq 2022-07-07 08:50:29.000000000 +00005854 is expected to eq 2022-07-07 08:51:29.000000000 +00005855 is expected to eq nil5856 is expected to eq -26081.05857 is expected to eq 60.05858 is expected to eq false5859 is expected to eq "unknown_failure"5860 is expected to eq 14065861 is expected to eq "Sidney Jones1563 / project1567"5862 is expected to eq 1605863 is expected to eq {:avatar_url=>"https://www.gravatar.com/avatar/a92aac5aafd33195d268fa7848e335e1?s=80&d=identicon", :email=>"user1681@example.org", :id=>1540, :name=>"Sidney Jones1566", :username=>"user945"}5864 is expected to eq 1625865 is expected to eq 475866 is expected to contain exactly "tag-1" and "tag-2"5867 is expected to eq "My runner65"5868 is expected to eq "instance_type"5869 is expected to eq true5870 is expected to be nil5871 commit author_url5872 when no commit present5873 sets to mailing address of git_author_email5874 when commit present but has no author5875 sets to mailing address of git_author_email5876 when commit and author are present5877 sets to GitLab user url5878 with environment5879 is expected to eq "staging"5880 is expected to eq "stop"5881Gitlab::Usage::MetricDefinition5882 has all definitons valid5883 not_removed5884 includes metrics that are not removed5885 #with_instrumentation_class5886 includes definitions with instrumentation_class5887 with removed metric5888 excludes removed definitions5889 #key5890 returns a symbol from name5891 #validate5892 attribute: :description, value: nil5893 raise exception5894 with skip_validation5895 raise exception if skip_validation: false5896 does not raise exception if has skip_validation: true5897 attribute: :value_type, value: nil5898 raise exception5899 with skip_validation5900 raise exception if skip_validation: false5901 does not raise exception if has skip_validation: true5902 attribute: :value_type, value: "test"5903 raise exception5904 with skip_validation5905 raise exception if skip_validation: false5906 does not raise exception if has skip_validation: true5907 attribute: :status, value: nil5908 raise exception5909 with skip_validation5910 raise exception if skip_validation: false5911 does not raise exception if has skip_validation: true5912 attribute: :milestone, value: nil5913 raise exception5914 with skip_validation5915 raise exception if skip_validation: false5916 does not raise exception if has skip_validation: true5917 attribute: :data_category, value: nil5918 raise exception5919 with skip_validation5920 raise exception if skip_validation: false5921 does not raise exception if has skip_validation: true5922 attribute: :key_path, value: nil5923 raise exception5924 with skip_validation5925 raise exception if skip_validation: false5926 does not raise exception if has skip_validation: true5927 attribute: :product_group, value: nil5928 raise exception5929 with skip_validation5930 raise exception if skip_validation: false5931 does not raise exception if has skip_validation: true5932 attribute: :time_frame, value: nil5933 raise exception5934 with skip_validation5935 raise exception if skip_validation: false5936 does not raise exception if has skip_validation: true5937 attribute: :time_frame, value: "29d"5938 raise exception5939 with skip_validation5940 raise exception if skip_validation: false5941 does not raise exception if has skip_validation: true5942 attribute: :data_source, value: "other"5943 raise exception5944 with skip_validation5945 raise exception if skip_validation: false5946 does not raise exception if has skip_validation: true5947 attribute: :data_source, value: nil5948 raise exception5949 with skip_validation5950 raise exception if skip_validation: false5951 does not raise exception if has skip_validation: true5952 attribute: :distribution, value: nil5953 raise exception5954 with skip_validation5955 raise exception if skip_validation: false5956 does not raise exception if has skip_validation: true5957 attribute: :distribution, value: "test"5958 raise exception5959 with skip_validation5960 raise exception if skip_validation: false5961 does not raise exception if has skip_validation: true5962 attribute: :tier, value: ["test", "ee"]5963 raise exception5964 with skip_validation5965 raise exception if skip_validation: false5966 does not raise exception if has skip_validation: true5967 attribute: :name, value: "count_<adjective_describing>_boards"5968 raise exception5969 with skip_validation5970 raise exception if skip_validation: false5971 does not raise exception if has skip_validation: true5972 attribute: :repair_issue_url, value: nil5973 raise exception5974 with skip_validation5975 raise exception if skip_validation: false5976 does not raise exception if has skip_validation: true5977 attribute: :removed_by_url, value: 15978 raise exception5979 with skip_validation5980 raise exception if skip_validation: false5981 does not raise exception if has skip_validation: true5982 attribute: :instrumentation_class, value: "Metric_Class"5983 raise exception5984 with skip_validation5985 raise exception if skip_validation: false5986 does not raise exception if has skip_validation: true5987 attribute: :instrumentation_class, value: "metricClass"5988 raise exception5989 with skip_validation5990 raise exception if skip_validation: false5991 does not raise exception if has skip_validation: true5992 conditional validations5993 when metric has broken status5994 has to have repair issue url provided5995 #valid_service_ping_status?5996 when metric has active status5997 has to return true5998 when metric has removed status5999 has to return false6000 statuses6001 status: "deprecated", skip_validation?: true6002 returns true/false for skip_validation6003 status: "removed", skip_validation?: true6004 returns true/false for skip_validation6005 status: "active", skip_validation?: false6006 returns true/false for skip_validation6007 .load_all!6008 has empty list when there are no definition files6009 has one metric when there is one file6010 when the same metric is defined multiple times raises exception6011 dump_metrics_yaml6012 returns a YAML with both metrics in a sequence6013Gitlab::ImportExport::Project::ObjectBuilder6014 request store is not active6015 ignore cache initialize6016 request store is active6017 initialize cache in memory6018 cache object when first time find the object6019 read from cache when object has been cached6020 labels6021 finds the existing group label6022 finds the existing group label in root ancestor6023 creates a new label6024 milestones6025 finds the existing group milestone6026 finds the existing group milestone in root ancestor6027 creates a new milestone6028 with clashing iid6029 creates milestone and claims iid for the new milestone6030 merge_request6031 finds the existing merge_request6032 creates a new merge_request6033 merge request diff commit users6034 finds the existing user6035 creates a new user6036 merge request diff commits6037 when the "committer" object is present6038 uses this object as the committer6039 when the "committer" object is missing6040 creates one from the committer name and Email6041 when the "commit_author" object is present6042 uses this object as the author6043 when the "commit_author" object is missing6044 creates one from the author name and Email6045 #find_or_create_diff_commit_user6046 caches the results6047 when the user already exists6048 returns the existing user6049 when the user does not exist6050 creates the user6051Ability6052 using a nil subject6053 has no permissions6054 .users_that_can_read_project6055 using a public project6056 returns all the users6057 using an internal project6058 returns users that are administrators6059 returns internal users while skipping external users6060 returns external users if they are the project owner6061 returns external users if they are project members6062 returns an empty Array if all users are external users without access6063 using a private project6064 returns users that are administrators when admin mode is enabled6065 does not return users that are administrators when admin mode is disabled6066 returns external users if they are the project owner6067 returns external users if they are project members6068 returns an empty Array if all users are internal users without access6069 returns an empty Array if all users are external users without access6070 .users_that_can_read_personal_snippet6071 private snippet is readable only by its author6072 public snippet is readable by all users6073 .users_that_can_read_internal_note6074 for groups6075 behaves like filtering users that can read internal note6076 returns users that can read internal notes6077 for projects6078 behaves like filtering users that can read internal note6079 returns users that can read internal notes6080 .merge_requests_readable_by_user6081 with an admin when admin mode is enabled6082 returns all merge requests6083 with an admin when admin mode is disabled6084 returns merge_requests that are publicly visible6085 without a user6086 returns merge_requests that are publicly visible6087 with a user6088 returns projects visible to the user6089 when a user cannot read cross project and a filter is passed6090 returns only MRs of the specified project without checking access on others6091 .issues_readable_by_user6092 with an admin when admin mode is enabled6093 returns all given issues6094 with an admin when admin mode is disabled6095 returns the issues readable by the admin6096 returns no issues when not given access6097 with a regular user6098 returns the issues readable by the user6099 returns an empty Array when no issues are readable6100 without a regular user6101 returns issues that are publicly visible6102 when the user cannot read cross project6103 excludes issues from other projects whithout checking separatly when passing a scope6104 .feature_flags_readable_by_user6105 without a user6106 returns no feature flags6107 with a user6108 returns feature flags visible to the user6109 when a user cannot read cross project and a filter is passed6110 returns only feature flags of the specified project without checking access on others6111 .project_disabled_features_rules6112 wiki named abilities6113 disables wiki abilities if the project has no wiki6114 forgetting6115 allows us to discard specific values from the DeclarativePolicy cache6116 when bypassing the session6117 allows us to have re-entrant evaluation of admin-only permissions6118Backup::Files6119 #restore6120 folders with permission6121 moves all necessary files6122 raises no errors6123 calls tar command with unlink6124 raises an error on failure6125 folders without permissions6126 shows error message6127 folders that are a mountpoint6128 shows error message6129 #dump6130 raises no errors6131 excludes tmp dirs from archive6132 raises an error on failure6133 with STRATEGY=copy6134 excludes tmp dirs from rsync6135 retries if rsync fails due to vanishing files6136 raises an error and outputs an error message if rsync failed6137 #exclude_dirs6138 prepends a leading dot slash to tar excludes6139 prepends a leading slash and app_files_dir basename to rsync excludes6140 #run_pipeline!6141 executes an Open3.pipeline for cmd_list6142 returns an empty output on success pipeline6143 returns the stderr for failed pipeline6144 returns the success status list on success pipeline6145 returns the failed status in status list for failed commands in pipeline6146 #pipeline_succeeded?6147 returns true if both tar and gzip succeeeded6148 returns false if gzip failed6149 if gzip succeeded and tar failed non-critically6150 returns true6151 if gzip succeeded and tar failed in other cases6152 returns false6153 #tar_ignore_non_success?6154 if `tar` command exits with 1 exitstatus6155Ignoring tar exit status 1 'Some files differ': any_output6156 returns true6157 outputs a warning6158 if `tar` command exits with 2 exitstatus with non-critical warning6159Ignoring non-success exit status 2 due to output of non-critical warning(s): any_output6160 returns true6161 outputs a warning6162 if `tar` command exits with any other unlisted error6163 returns false6164 #noncritical_warning?6165 returns true if given text matches noncritical warnings list6166 returns false otherwize6167NamespaceSetting CascadingNamespaceSettingAttribute6168 #delayed_project_removal6169 when there is no parent6170 and the value is not nil6171 returns the local value6172 and the value is nil6173 returns the application settings value6174 when parent does not lock the attribute6175 and value is not nil6176 returns local setting when present6177 returns the parent value when local value is nil6178 returns the correct dirty value6179 does not return the application setting value when parent value is false6180 and the value is nil6181 cascades to the application settings value6182 when multiple ancestors set a value6183 returns the closest ancestor value6184 when parent locks the attribute6185 returns the parent value6186 does not allow the local value to be saved6187 when the application settings locks the attribute6188 returns the application setting value6189 does not allow the local value to be saved6190 when parent locked the attribute then the application settings locks it6191 returns the application setting value6192 #delayed_project_removal?6193 aliases the method when the attribute is a boolean6194 #delayed_project_removal=6195 does not save the value locally when it matches the cascaded value6196 #delayed_project_removal_locked?6197 when attribute is locked by self6198 is not locked by default6199 is locked when including self6200 when parent does not lock the attribute6201 behaves like not locked6202 is not locked by an ancestor6203 is not locked by application setting6204 does not return a locked namespace6205 when parent locks the attribute6206 is locked by an ancestor6207 is not locked by application setting6208 returns a locked namespace settings object6209 when not locked by application settings6210 behaves like not locked6211 is not locked by an ancestor6212 is not locked by application setting6213 does not return a locked namespace6214 when locked by application settings6215 is not locked by an ancestor6216 is locked by application setting6217 does not return a locked namespace6218 #lock_delayed_project_removal=6219 when parent locks the attribute6220 does not allow the attribute to be saved6221 when parent does not lock the attribute6222 allows the lock to be set when the attribute is not nil6223 does not allow the lock to be saved when the attribute is nil6224 copies the cascaded value when locking the attribute if the local value is nil6225 when application settings locks the attribute6226 does not allow the attribute to be saved6227 when application_settings does not lock the attribute6228 allows the attribute to be saved6229 after update callback6230 clears descendant locks6231Gitlab::ImportExport6232Elements checked:6233{:hashes=>470, :arrays=>{:direct=>0, :pairwise=>191, :fuzzy=>6}, :values=>2818}6234 yields the initial tree when importing and exporting it again6235TrendingProject6236 .refresh!6237 populates the trending projects table6238 removes existing rows before populating the table6239 stores the project IDs for every trending project6240 does not store projects that fall out of the trending time range6241 stores only public projects6242NamespaceFileUploader6243 behaves like builds correct paths6244 #store_dir6245 behaves like matches the method pattern6246 is expected to match /uploads\/-\/system\/namespace\/\d+/6247 #cache_dir6248 behaves like matches the method pattern6249 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6250 #work_dir6251 behaves like matches the method pattern6252 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6253 #upload_path6254 behaves like matches the method pattern6255 is expected to match /\h+\/\S+/6256 #relative_path6257 is relative (PENDING: Path not set, skipping.)6258 .absolute_path6259 behaves like matches the method pattern6260 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/namespace\/\d+\/(?-mix:\h+\/\S+)/6261 .base_dir6262 behaves like matches the method pattern6263 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6264 path traversal exploits6265 throws an exception6266 object_store is REMOTE6267 behaves like builds correct paths6268 #store_dir6269 behaves like matches the method pattern6270 is expected to match /namespace\/\d+\/\h+/6271 #cache_dir6272 behaves like matches the method pattern6273 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6274 #work_dir6275 behaves like matches the method pattern6276 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6277 #upload_path6278 behaves like matches the method pattern6279 is expected to match /\h+\/\S+/6280 #relative_path6281 is relative (PENDING: Path not set, skipping.)6282 .absolute_path6283 behaves like matches the method pattern6284 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6285 .base_dir6286 behaves like matches the method pattern6287 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)6288 path traversal exploits6289 throws an exception6290 .base_dir6291 returns local storage base_dir without store param6292 returns local storage base_dir when store param is Store::LOCAL6293 returns remote base_dir when store param is Store::REMOTE6294 #workhorse_local_upload_path6295 returns the correct path in uploads directory6296 #migrate!6297 behaves like migrates6298 returns corresponding file type6299 does nothing when migrating to the current store6300 migrate to the specified store6301 removes the original file after the migration6302 can access to the original file during migration6303 when migrate! is not occupied by another process6304 executes migrate!6305 executes use_file6306 when migrate! is occupied by another process6307 does not execute migrate!6308 does not execute use_file6309 migration is unsuccessful6310 when the store is not supported6311 does not update the object_store6312 does not delete the original file6313 upon a fog failure6314 does not update the object_store6315 does not delete the original file6316 upon a database failure6317 does not update the object_store6318 does not delete the original file6319 behaves like migrates6320 returns corresponding file type6321 does nothing when migrating to the current store6322 migrate to the specified store6323 removes the original file after the migration6324 can access to the original file during migration6325 when migrate! is not occupied by another process6326 executes migrate!6327 executes use_file6328 when migrate! is occupied by another process6329 does not execute migrate!6330 does not execute use_file6331 migration is unsuccessful6332 when the store is not supported6333 does not update the object_store6334 does not delete the original file6335 upon a fog failure6336 does not update the object_store6337 does not delete the original file6338 upon a database failure6339 does not update the object_store6340 does not delete the original file6341 copy_to6342 files are stored locally6343 generates a new secret6344 creates new upload correctly6345 copies the file6346 copies the file to the correct location6347 files are stored remotely6348 generates a new secret6349 creates new upload correctly6350 copies the file6351 copies the file to the correct location6352Subscribable Subscribable6353 #subscribed?6354 behaves like returns expected values6355 without user6356 returns false6357 without project6358 returns false when no subscription exists6359 returns true when a subscription exists and subscribed is true6360 returns false when a subscription exists and subscribed is false6361 with project6362 returns false when no subscription exists6363 returns true when a subscription exists and subscribed is true6364 returns false when a subscription exists and subscribed is false6365 #subscribers6366 returns [] when no subcribers exists6367 returns the subscribed users6368 #toggle_subscription6369 without project6370 toggles the current subscription state for the given user6371 with project6372 toggles the current subscription state for the given user6373 #subscribe6374 without project6375 subscribes the given user6376 with project6377 subscribes the given user6378 #unsubscribe6379 without project6380 unsubscribes the given current user6381 with project6382 unsubscribes the given current user6383 #set_subscription6384 without project6385 behaves like setting subscriptions6386 when desired_state is set to true6387 when a user is subscribed to the resource6388 keeps the user subscribed6389 when a user is not subscribed to the resource6390 subscribes the user to the resource6391 when desired_state is set to false6392 when a user is subscribed to the resource6393 unsubscribes the user from the resource6394 when a user is not subscribed to the resource6395 keeps the user unsubscribed6396 with project6397 behaves like setting subscriptions6398 when desired_state is set to true6399 when a user is subscribed to the resource6400 keeps the user subscribed6401 when a user is not subscribed to the resource6402 subscribes the user to the resource6403 when desired_state is set to false6404 when a user is subscribed to the resource6405 unsubscribes the user from the resource6406 when a user is not subscribed to the resource6407 keeps the user unsubscribed6408 #lazy_subscription6409 executes only one SQL query6410Packages::Nuget::PackageFinder6411 #execute!6412 with a project6413 behaves like handling all the conditions6414 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6415 with lower case package name6416 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6417 with unknown package name6418 is expected to be empty6419 with an uninstallable package6420 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6421 with valid version6422 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6423 with unknown version6424 is expected to be empty6425 with limit hit6426 is expected to contain exactly #<Packages::Package id: 18, project_id: 1551, created_at: "2022-07-07 01:39:48.348378399 +0000", upda...name: "NugetPackage1", version: "1.0.4", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 19, project_id: 1551, created_at: "2022-07-07 01:39:48.380549587 +0000", upda...name: "NugetPackage1", version: "1.0.5", package_type: "nuget", creator_id: 1753, status: "default">6427 with downcase package name6428 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6429 with prefix wildcard6430 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6431 with suffix wildcard6432 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6433 with surrounding wildcards6434 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6435 with a subgroup6436 behaves like handling all the conditions6437 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6438 with lower case package name6439 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6440 with unknown package name6441 is expected to be empty6442 with an uninstallable package6443 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6444 with valid version6445 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6446 with unknown version6447 is expected to be empty6448 with limit hit6449 is expected to contain exactly #<Packages::Package id: 21, project_id: 1551, created_at: "2022-07-07 01:39:51.960548915 +0000", upda...name: "NugetPackage1", version: "1.0.7", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 22, project_id: 1551, created_at: "2022-07-07 01:39:51.991506183 +0000", upda...name: "NugetPackage1", version: "1.0.8", package_type: "nuget", creator_id: 1753, status: "default">6450 with downcase package name6451 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6452 with prefix wildcard6453 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6454 with suffix wildcard6455 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6456 with surrounding wildcards6457 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6458 with a group6459 behaves like handling all the conditions6460 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6461 with lower case package name6462 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6463 with unknown package name6464 is expected to be empty6465 with an uninstallable package6466 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6467 with valid version6468 is expected to contain exactly #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6469 with unknown version6470 is expected to be empty6471 with limit hit6472 is expected to contain exactly #<Packages::Package id: 24, project_id: 1551, created_at: "2022-07-07 01:39:55.402920071 +0000", upda...ame: "NugetPackage1", version: "1.0.10", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 25, project_id: 1551, created_at: "2022-07-07 01:39:55.436929909 +0000", upda...ame: "NugetPackage1", version: "1.0.11", package_type: "nuget", creator_id: 1753, status: "default">6473 with downcase package name6474 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6475 with prefix wildcard6476 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6477 with suffix wildcard6478 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6479 with surrounding wildcards6480 is expected to contain exactly #<Packages::Package id: 12, project_id: 1551, created_at: "2022-07-07 01:39:45.998322000 +0000", upda...name: "NugetPackage1", version: "1.0.1", package_type: "nuget", creator_id: 1753, status: "default"> and #<Packages::Package id: 13, project_id: 1551, created_at: "2022-07-07 01:39:46.028904273 +0000", upda...name: "NugetPackage1", version: "2.0.0", package_type: "nuget", creator_id: 1753, status: "default">6481 with nil6482 is expected to be empty6483Banzai::Pipeline::GfmPipeline6484 integration between parsing regular and external issue references6485 when internal issue tracker is enabled6486 executes :each_node only once for first reference filter6487 allows to use long external reference syntax for Redmine6488 parses cross-project references to regular issues6489 when shorthand pattern #ISSUE_ID is used6490 links an internal issues and keep updated nodes in result[:reference_filter_nodes]6491 when shorthand pattern #ISSUE_ID is used6492 links an internal issue if it exists6493 does not link any issue if it does not exist on GitLab6494 when internal issue tracker is disabled6495 allows to use shorthand external reference syntax for Redmine6496 allows to use long external reference syntax for Redmine6497 parses cross-project references to regular issues6498 markdown link or image urls having spaces6499 rewrites links with spaces in url6500 rewrites images with spaces in url6501 sanitizes the fixed link6502 emoji in references6503 renders a label reference with emoji inside6504 renders a milestone reference with emoji inside6505 asset proxy6506 replaces a lazy loaded img src6507 autolinks images to the proxy6508 properly adds tooltips to link for IDN images6509ApplicationWorker6510 Sidekiq attributes6511 sets the queue name based on the output of the router6512 when a worker attribute is updated6513 updates the queue name afterward6514 when the worker is inherited6515 sets the queue name for the inherited worker6516 #logging_extras6517 returns extra data to be logged that was set from #log_extra_metadata_on_done6518 when nothing is set6519 returns {}6520 #structured_payload6521 adds worker related payload6522 adds labkit context6523 adds custom payload converting stringified keys6524 does not override predefined context keys with custom payload6525 .queue_namespace6526 updates the queue name from the router again6527 updates the queue_namespace options of the worker6528 .queue6529 returns the queue name6530 .data_consistency6531 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6532 when workers data consistency is6533 not to raise an exception6534 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6535 when workers data consistency is6536 not to raise an exception6537 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6538 when workers data consistency is6539 not to raise an exception6540 data_consistency: :delayed, sidekiq_option_retry: nil, expect_error: false6541 when workers data consistency is6542 not to raise an exception6543 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6544 when workers data consistency is6545 not to raise an exception6546 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6547 when workers data consistency is6548 not to raise an exception6549 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6550 when workers data consistency is6551 not to raise an exception6552 data_consistency: :sticky, sidekiq_option_retry: nil, expect_error: false6553 when workers data consistency is6554 not to raise an exception6555 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6556 when workers data consistency is6557 not to raise an exception6558 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6559 when workers data consistency is6560 not to raise an exception6561 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6562 when workers data consistency is6563 not to raise an exception6564 data_consistency: :always, sidekiq_option_retry: nil, expect_error: false6565 when workers data consistency is6566 not to raise an exception6567 .retry6568 data_consistency: :delayed, sidekiq_option_retry: false, expect_error: true6569 when retry sidekiq option is6570 not to raise an exception6571 data_consistency: :delayed, sidekiq_option_retry: 0, expect_error: true6572 when retry sidekiq option is6573 not to raise an exception6574 data_consistency: :delayed, sidekiq_option_retry: 3, expect_error: false6575 when retry sidekiq option is6576 not to raise an exception6577 data_consistency: :sticky, sidekiq_option_retry: false, expect_error: false6578 when retry sidekiq option is6579 not to raise an exception6580 data_consistency: :sticky, sidekiq_option_retry: 0, expect_error: false6581 when retry sidekiq option is6582 not to raise an exception6583 data_consistency: :sticky, sidekiq_option_retry: 3, expect_error: false6584 when retry sidekiq option is6585 not to raise an exception6586 data_consistency: :always, sidekiq_option_retry: false, expect_error: false6587 when retry sidekiq option is6588 not to raise an exception6589 data_consistency: :always, sidekiq_option_retry: 0, expect_error: false6590 when retry sidekiq option is6591 not to raise an exception6592 data_consistency: :always, sidekiq_option_retry: 3, expect_error: false6593 when retry sidekiq option is6594 not to raise an exception6595 different kinds of push_bulk6596 .bulk_perform_async6597 push_bulk in safe limit batches6598 when the number of jobs to be enqueued does not exceed the safe limit6599 behaves like enqueues jobs in one go6600 enqueues jobs in one go6601 behaves like logs bulk insertions6602 logs arguments and job IDs6603 behaves like returns job_id of all enqueued jobs6604 returns job_id of all enqueued jobs6605 behaves like does not schedule the jobs for any specific time6606 does not schedule the jobs for any specific time6607 when the number of jobs to be enqueued exceeds safe limit6608 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6609 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6610 behaves like returns job_id of all enqueued jobs6611 returns job_id of all enqueued jobs6612 behaves like does not schedule the jobs for any specific time6613 does not schedule the jobs for any specific time6614 .bulk_perform_in6615 without batches6616 when the scheduled time falls in the past6617 raises an ArgumentError exception6618 push_bulk in safe limit batches6619 when the number of jobs to be enqueued does not exceed the safe limit6620 behaves like enqueues jobs in one go6621 enqueues jobs in one go6622 behaves like returns job_id of all enqueued jobs6623 returns job_id of all enqueued jobs6624 behaves like schedules all the jobs at a specific time6625 schedules all the jobs at a specific time6626 when the number of jobs to be enqueued exceeds safe limit6627 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6628 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6629 behaves like returns job_id of all enqueued jobs6630 returns job_id of all enqueued jobs6631 behaves like schedules all the jobs at a specific time6632 schedules all the jobs at a specific time6633 with batches6634 when the `batch_size` is invalid6635 when `batch_size` is 06636 raises an ArgumentError exception6637 when `batch_size` is negative6638 raises an ArgumentError exception6639 when the `batch_delay` is invalid6640 when `batch_delay` is 06641 raises an ArgumentError exception6642 when `batch_delay` is negative6643 raises an ArgumentError exception6644 push_bulk in safe limit batches6645 when the number of jobs to be enqueued does not exceed the safe limit6646 behaves like enqueues jobs in one go6647 enqueues jobs in one go6648 behaves like returns job_id of all enqueued jobs6649 returns job_id of all enqueued jobs6650 behaves like schedules all the jobs at a specific time, per batch6651 schedules all the jobs at a specific time, per batch6652 when the number of jobs to be enqueued exceeds safe limit6653 behaves like enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6654 enqueues the jobs in a batched fashion, with each batch enqueing jobs as per the set safe limit6655 behaves like returns job_id of all enqueued jobs6656 returns job_id of all enqueued jobs6657 behaves like schedules all the jobs at a specific time, per batch6658 schedules all the jobs at a specific time, per batch6659 .with_status6660 when the worker does have status_expiration set6661 uses status_expiration from the worker6662 uses status_expiration from the worker without with_status6663 when the worker does not have status_expiration set6664 uses the default status_expiration6665 does not set status_expiration without with_status6666Gitlab::ImportExport::ImportFailureService6667 #log_import_failure6668 when importable is a group6669 behaves like log import failure6670 tracks error6671 saves data to ImportFailure6672 when importable is a project6673 behaves like log import failure6674 tracks error6675 saves data to ImportFailure6676 when ImportFailure does not support importable class6677 raise exception6678 #with_retry6679 when exceptions are retriable6680 exception: GRPC::DeadlineExceeded6681 when retry succeeds6682 retries and logs import failure once with correct params6683 when retry continues to fail with intermittent errors6684 retries the number of times allowed and raise exception6685 logs import failure each time and raise exception6686 exception: ActiveRecord::QueryCanceled6687 when retry succeeds6688 retries and logs import failure once with correct params6689 when retry continues to fail with intermittent errors6690 retries the number of times allowed and raise exception6691 logs import failure each time and raise exception6692 when exception is not retriable6693 raise the exception6694Ci::ResourceGroup6695 behaves like cleanup by a loose foreign key6696 cleans up (delete or nullify) the model6697 validation6698 valids when key includes allowed character6699 invalids when key includes invalid character6700 #ensure_resource6701 creates one resource when resource group is created6702 #assign_resource_to6703 retains resource for the processable6704 when there are no free resources6705 fails to retain resource6706 when the build has already retained a resource6707 fails to retain resource6708 #release_resource_from6709 when the build has already retained a resource6710 releases resource from the build6711 when the build has already released a resource6712 fails to release resource6713 #upcoming_processables6714 when process mode is unordered6715 returns correct jobs in an indeterministic order6716 when process mode is oldest_first6717 returns correct jobs in a specific order6718 when process mode is newest_first6719 returns correct jobs in a specific order6720 when process mode is unknown6721 returns empty6722Projects::AfterImportWorker6723 #execute6724 performs housekeeping6725 with some refs in refs/pull/**/*6726 removes refs/pull/**/*6727 with a ref in refs/heads/tmp6728 does not remove refs/heads/tmp6729 with a ref in refs/tags/tmp6730 does not remove refs/tags/tmp6731 with a ref in refs/replace/tmp6732 does not remove refs/replace/tmp6733 with a ref in refs/merge-requests/tmp6734 does not remove refs/merge-requests/tmp6735 with a ref in refs/environments/tmp6736 does not remove refs/environments/tmp6737 with a ref in refs/keep-around/tmp6738 does not remove refs/keep-around/tmp6739 with a ref in refs/pipelines/tmp6740 does not remove refs/pipelines/tmp6741 when after import action throw non-retriable exception6742 throws after import error6743 when housekeeping service lease is taken6744 logs the error message6745 when after import action throw retriable exception one time6746 removes refs/pull/**/*6747 records the failures in the database6748Gitlab::Email::Handler::CreateIssueHandler6749 behaves like reply_processing_shared_examples6750 when the user could not be found6751 raises a UserNotFoundError6752 when the user is not authorized to the project6753 raises a ProjectNotFound6754 when email key6755 matches the new format6756 matches the legacy format6757 doesn't match either format6758 when everything is fine6759 behaves like a new issue6760 creates a new issue6761 creates a new issue with legacy email address6762 behaves like a new issue6763 creates a new issue6764 when the reply is blank6765 creates a new issue6766 when there are quotes in email6767 creates a new issue6768 when all lines of email are quotes6769 creates email with correct body6770 something is wrong6771 raises a RateLimitedService::RateLimitedError6772 when the issue could not be saved6773 raises an InvalidIssueError6774 when we can't find the incoming_email_token6775 raises an UserNotFoundError6776 when project is private6777 raises a ProjectNotFound if the user is not a member6778 when project ID is invalid6779 raises a ProjectNotFound6780Ci::Group6781 is expected to includes the StaticModel module6782 is expected to respond to #stage6783 is expected to respond to #name6784 is expected to respond to #jobs6785 is expected to respond to #status6786 #size6787 returns the number of statuses in the group6788 #status6789 returns a failed status6790 #detailed_status6791 when there is only one item in the group6792 calls the status from the object itself6793 when there are more than one commit status in the group6794 fabricates a new detailed status object6795 when one of the commit statuses in the group is allowed to fail6796 fabricates a new detailed status object6797 .fabricate6798 returns an array of three groups6799 returns groups with correctly ordered statuses6800 returns groups with correct names6801 when a name is nil on legacy pipelines6802 returns an array of three groups6803Gitlab::GithubImport::Client6804 #parallel?6805 returns true when the client is running in parallel mode6806 returns false when the client is running in sequential mode6807 #user6808 returns the details for the given username6809 #pull_request_reviews6810 returns the pull request reviews6811 #repository6812 returns the details of a repository6813 #pull_request6814 returns the details of a pull_request6815 #labels6816 returns the labels6817 #milestones6818 returns the milestones6819 #releases6820 returns the releases6821 #each_page6822 without a block6823 returns an Enumerator6824 the returned Enumerator returns Page objects6825 with a block6826 yields every retrieved page to the supplied block6827 starts at the given page6828 #with_rate_limit6829 yields the supplied block when enough requests remain6830 waits before yielding if not enough requests remain6831 waits and retries the operation if all requests were consumed in the supplied block6832 increments the request count counter6833 ignores rate limiting when disabled6834 when Faraday error received from octokit6835 when rate_limiting_enabled is true6836 retries on error and succeeds6837 retries and does not succeed6838 when rate_limiting_enabled is false6839 retries on error and succeeds6840 retries and does not succeed6841 #requests_remaining?6842 when default requests limit is set6843 returns true if enough requests remain6844 returns false if not enough requests remain6845 when search requests limit is set6846 returns true if enough requests remain6847 returns false if not enough requests remain6848 #raise_or_wait_for_rate_limit6849 raises RateLimitError when running in parallel mode6850 sleeps when running in sequential mode6851 increments the rate limit counter6852 #remaining_requests6853 returns the number of remaining requests6854 #requests_limit6855 returns requests limit6856 #rate_limit_resets_in6857 returns the number of seconds after which the rate limit is reset6858 #api_endpoint6859 without a custom endpoint configured in Omniauth6860 returns the default API endpoint6861 with a custom endpoint configured in Omniauth6862 returns the custom endpoint6863 #web_endpoint6864 without a custom endpoint configured in Omniauth6865 returns the default web endpoint6866 with a custom endpoint configured in Omniauth6867 returns the custom endpoint6868 #custom_api_endpoint6869 without a custom endpoint6870 returns nil6871 with a custom endpoint6872 returns the API endpoint6873 #default_api_endpoint6874 returns the default API endpoint6875 #verify_ssl6876 without a custom configuration6877 returns true6878 with a custom configuration6879 returns the configured value6880 #github_omniauth_provider6881 without a configured provider6882 returns an empty Hash6883 with a configured provider6884 returns the provider details as a Hash6885 #rate_limiting_enabled?6886 returns true when using GitHub.com6887 returns false for GitHub enterprise installations6888 search6889 #search_repos_by_name6890 searches for repositories based on name6891 when Faraday error received from octokit6892 retries on error and succeeds6893 retries and does not succeed6894 #search_query6895 returns base search query6896 when include_collaborations is true6897 returns search query including users6898 when include_orgs is true6899 returns search query including users6900Gitlab::Changelog::Config6901 .from_git6902 retrieves the configuration from Git6903 returns the default configuration when no YAML file exists in Git6904 when changelog is empty6905 returns the default configuration6906 .from_hash6907 sets the configuration according to a Hash6908 raises Error when the categories are not a Hash6909 raises a Gitlab::Changelog::Error when the template is invalid6910 #contributor?6911 when user is a member of project6912 is expected to eq false6913 when user has at least one merge request merged into default_branch6914 is expected to eq true6915 is expected to eq false6916 #category6917 returns the name of a category6918 returns the raw category name when no alternative name is configured6919 #format_date6920 formats a date according to the configured date format6921 #always_credit_author?6922 when include_groups is defined6923 when user generating changelog has access to group6924 returns whether author should always be credited6925 when user generating changelog has no access to group6926 always returns false6927 when include_groups is not defined6928 always returns false6929Integrations::Harbor6930 masked password6931 is expected not to allow :password to be ‹"hello"›6932 is expected not to allow :password to be ‹"hello world"›6933 is expected not to allow :password to be ‹"hello$VARIABLEworld"›6934 is expected not to allow :password to be ‹"hello\\rworld"›6935 is expected to allow :password to be ‹"helloworld"›6936 #fields6937 returns custom fields6938 #test6939 gets response from Gitlab::Harbor::Client#ping6940 #help6941 renders prompt information6942 .to_param6943 returns the name of the integration6944 ci variables6945 returns vars when harbor_integration is activated6946 returns [] when harbor_integration is inactive6947 with robot username6948 returns username variable with $$6949 before_validation :reset_username_and_password6950 saves password if new url is set together with password when no password was previously set6951 when username/password was previously set6952 resets username and password if url changed6953 does not reset password if username changed6954 does not reset username if password changed6955 does not reset password if new url is set together with password, even if it's the same password6956 does not reset username if new url is set together with username, even if it's the same username6957Clusters::BuildKubernetesNamespaceService6958 initializes a new namespace and sets default values6959 sets cluster_project and environment6960 namespace per environment is disabled6961 initializes a new namespace and sets default values6962 does not set environment6963 group cluster6964 initializes a new namespace and sets default values6965 does not set cluster_project6966BulkImports::Projects::Pipelines::RepositoryBundlePipeline6967 #run6968 imports repository into destination project and removes tmpdir6969 when something goes wrong during import6970 marks entity as failed6971 #extract6972 downloads & extracts repository bundle filepath6973 #load6974 creates repository from bundle6975 when file does not exist6976 returns6977 when path is directory6978 returns6979 when path is symlink6980 returns6981 when path is not under tmpdir6982 returns6983 when path is being traversed6984 raises an error6985 #after_run6986 removes tmpdir6987 when tmpdir does not exist6988 does not attempt to remove tmpdir6989Gitlab::Metrics::Dashboard::Url6990 #metrics_regex6991 for /-/environments/:environment_id/metrics route6992 behaves like regex which matches url when expected6993 is expected to be a kind of Regexp6994 matches a metrics dashboard link with named params6995 does not match other gitlab urls that contain the term metrics6996 does not match other gitlab urls6997 does not match non-gitlab urls6998 for /-/metrics?environment=:environment_id route6999 behaves like regex which matches url when expected7000 is expected to be a kind of Regexp7001 matches a metrics dashboard link with named params7002 does not match other gitlab urls that contain the term metrics7003 does not match other gitlab urls7004 does not match non-gitlab urls7005 for metrics_dashboard route7006 behaves like regex which matches url when expected7007 is expected to be a kind of Regexp7008 matches a metrics dashboard link with named params7009 does not match other gitlab urls that contain the term metrics7010 does not match other gitlab urls7011 does not match non-gitlab urls7012 #clusters_regex7013 behaves like regex which matches url when expected7014 is expected to be a kind of Regexp7015 matches a metrics dashboard link with named params7016 does not match other gitlab urls that contain the term metrics7017 does not match other gitlab urls7018 does not match non-gitlab urls7019 for metrics_dashboard route7020 behaves like regex which matches url when expected7021 is expected to be a kind of Regexp7022 matches a metrics dashboard link with named params7023 does not match other gitlab urls that contain the term metrics7024 does not match other gitlab urls7025 does not match non-gitlab urls7026 #grafana_regex7027 behaves like regex which matches url when expected7028 is expected to be a kind of Regexp7029 matches a metrics dashboard link with named params7030 does not match other gitlab urls that contain the term metrics7031 does not match other gitlab urls7032 does not match non-gitlab urls7033 #alert_regex7034 behaves like regex which matches url when expected7035 is expected to be a kind of Regexp7036 matches a metrics dashboard link with named params7037 does not match other gitlab urls that contain the term metrics7038 does not match other gitlab urls7039 does not match non-gitlab urls7040 behaves like regex which matches url when expected7041 is expected to be a kind of Regexp7042 matches a metrics dashboard link with named params7043 does not match other gitlab urls that contain the term metrics7044 does not match other gitlab urls7045 does not match non-gitlab urls7046 #build_dashboard_url7047 builds the url for the dashboard endpoint7048Terraform::State7049 is expected to belong to project required: false7050 is expected to belong to locked_by_user class_name => User required: false7051 is expected to validate that :name cannot be empty/falsy7052 is expected to validate that :project_id cannot be empty/falsy7053 scopes7054 .ordered_by_name7055 is expected to eq ["state_a", "state_b", "state_c", "state_d"]7056 .with_name7057 is expected to contain exactly #<Terraform::State id: 9, project_id: 1713, created_at: "2022-07-07 01:42:32.150140891 +0000", update...ddf0ac5c8ba15db354620c18d304e36f", name: "matching-name", versioning_enabled: true, deleted_at: nil>7058 #latest_file7059 is expected to eq #<Terraform::StateUploader:0x00007fba5181a110 @model=#<Terraform::StateVersion id: 5, terraform_state...0x00007fba51819cd8 @uploader=#<Terraform::StateUploader:0x00007fba5181a110 ...>, @cache_called=nil>>7060 but no version exists yet7061 is expected to be nil7062 #update_file!7063 versioning is enabled7064 creates a new version7065 versioning is disabled (migration to versioned in progress)7066 creates a new version, corrects the migrated version number, and marks the state as versioned7067 the current version cannot be determined7068 uses version - 1 to correct the migrated version number7069Groups::ImportExport::ExportService7070 #async_execute7071 when the job can be successfully scheduled7072 enqueues an export job7073 returns truthy7074 when the job cannot be scheduled7075 returns falsey7076 #execute7077 saves the version7078 saves the models using ndjson tree saver7079 saves the models using legacy tree saver7080 compresses and removes tmp files7081 notifies the user7082 when saver succeeds7083 saves the group in the file system7084 when user does not have admin_group permission7085 fails7086 logs the error7087 tracks the error7088 when export fails7089 when file saver fails7090 removes the remaining exported data7091 notifies the user about failed group export7092 when file compression fails7093 removes the remaining exported data7094 notifies logger7095 when there is an existing export file7096/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil7097 removes it7098Gitlab::Pagination::Keyset::Order7099 paginate over items correctly7100 when ordering by a distinct column7101 behaves like order examples7102 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7103 when paginating forwards7104 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7105 with different page size7106 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7107 when using the conditions in an UNION query7108 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7109 when the cursor attributes are SQL literals7110 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7111 when using the conditions in an UNION query7112 is expected to eq [{"id"=>9, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>7, "month"=>0, "year"=>0}..."id"=>3, "month"=>0, "year"=>0}, {"id"=>2, "month"=>0, "year"=>0}, {"id"=>1, "month"=>0, "year"=>0}]7113 when paginating backwards7114 is expected to eq [{"id"=>2, "month"=>0, "year"=>0}, {"id"=>3, "month"=>0, "year"=>0}, {"id"=>4, "month"=>0, "year"=>0}..."id"=>7, "month"=>0, "year"=>0}, {"id"=>8, "month"=>0, "year"=>0}, {"id"=>9, "month"=>0, "year"=>0}]7115 when ordering by two non-nullable columns and a distinct column7116 uses the row comparison method7117 behaves like order examples7118 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7119 when paginating forwards7120 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7121 with different page size7122 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7123 when using the conditions in an UNION query7124 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7125 when the cursor attributes are SQL literals7126 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7127 when using the conditions in an UNION query7128 is expected to eq [{"id"=>3, "month"=>2, "year"=>2009}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>1, "month"=>2, "yea..."month"=>1, "year"=>2011}, {"id"=>8, "month"=>4, "year"=>2012}, {"id"=>9, "month"=>5, "year"=>2013}]7129 when paginating backwards7130 is expected to eq [{"id"=>8, "month"=>4, "year"=>2012}, {"id"=>5, "month"=>1, "year"=>2011}, {"id"=>4, "month"=>1, "yea..."month"=>2, "year"=>2010}, {"id"=>6, "month"=>2, "year"=>2009}, {"id"=>3, "month"=>2, "year"=>2009}]7131 when ordering by nullable columns and a distinct column7132 behaves like order examples7133 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7134 when paginating forwards7135 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7136 with different page size7137 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7138 when using the conditions in an UNION query7139 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7140 when the cursor attributes are SQL literals7141 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7142 when using the conditions in an UNION query7143 is expected to eq [{"id"=>7, "month"=>2, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>1, "month"=>nil, "...onth"=>5, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}]7144 when paginating backwards7145 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>4, "month"=>5, "year"=>nil}, {"id"=>9, "month"=>2, "yea...nth"=>nil, "year"=>2010}, {"id"=>11, "month"=>2, "year"=>2010}, {"id"=>7, "month"=>2, "year"=>2010}]7146 when ordering by nullable columns with nulls first ordering and a distinct column7147 behaves like order examples7148 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7149 when paginating forwards7150 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7151 with different page size7152 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7153 when using the conditions in an UNION query7154 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7155 when the cursor attributes are SQL literals7156 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7157 when using the conditions in an UNION query7158 is expected to eq [{"id"=>3, "month"=>nil, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>9, "month"=>2, "..."month"=>2, "year"=>2011}, {"id"=>6, "month"=>2, "year"=>2011}, {"id"=>8, "month"=>2, "year"=>2012}]7159 when paginating backwards7160 is expected to eq [{"id"=>6, "month"=>2, "year"=>2011}, {"id"=>2, "month"=>2, "year"=>2011}, {"id"=>11, "month"=>2, "ye...onth"=>2, "year"=>nil}, {"id"=>10, "month"=>nil, "year"=>nil}, {"id"=>3, "month"=>nil, "year"=>nil}]7161 when ordering by non-nullable columns with mixed directions and a distinct column7162 takes out a slice between two cursors7163 when ordering by the named function LOWER7164 uses downcased value for encoding and decoding a cursor7165 when the passed cursor values do not match with the order definition7166 when values are missing7167 raises error7168 when extra values are present7169 raises error7170 when values are missing and extra values are present7171 raises error7172 when no values are passed7173 returns empty array7174 extract and apply cursor attributes7175 when string attribute name is given7176 behaves like cursor attribute examples7177 #cursor_attributes_for_node7178 is expected to eq {"id"=>"100"}7179 #apply_cursor_conditions7180 when params with string keys are passed7181 is expected to include "\"projects\".\"id\" < 100)"7182 when params with symbol keys are passed7183 is expected to include "\"projects\".\"id\" < 100)"7184 when symbol attribute name is given7185 behaves like cursor attribute examples7186 #cursor_attributes_for_node7187 is expected to eq {"id"=>"100"}7188 #apply_cursor_conditions7189 when params with string keys are passed7190 is expected to include "\"projects\".\"id\" < 100)"7191 when params with symbol keys are passed7192 is expected to include "\"projects\".\"id\" < 100)"7193 with projections7194 when additional_projections is empty7195 has correct projections7196 when there are additional_projections7197 has correct projections7198 UNION optimization7199 when UNION optimization is off7200 returns items in the correct order7201 when UNION optimization is on7202 returns items in the correct order7203 calls Gitlab::SQL::Union7204 builds UNION query7205 #attribute_names7206 is expected to contain exactly "id" and "name"7207DraftNotes::CreateService7208 creates a simple draft note7209 tracks the start event when the draft is persisted7210 does not track the start event when the draft is not persisted7211 cannot resolve when there is nothing to resolve7212 creates a draft note with a position in a diff7213 in a thread7214 creates a draft note with discussion_id7215 creates a draft that resolves the thread7216 diff highlight cache clearing7217 when diff file is unfolded and it is not a reply7218 clears diff highlighting cache7219 when diff file is not unfolded and it is not a reply7220 clears diff highlighting cache7221ContainerRegistry::Migration7222 .enabled?7223 is expected to eq true7224 feature flag disabled7225 is expected to eq false7226 .limit_gitlab_org?7227 is expected to eq true7228 feature flag disabled7229 is expected to eq false7230 .enqueue_waiting_time7231 slow_enabled: false, fast_enabled: false, expected_result: 45 minutes7232 is expected to eq 45 minutes7233 slow_enabled: true, fast_enabled: false, expected_result: 165 minutes7234 is expected to eq 165 minutes7235 slow_enabled: false, fast_enabled: true, expected_result: 07236 is expected to eq 07237 slow_enabled: true, fast_enabled: true, expected_result: 07238 is expected to eq 07239 .capacity7240 ff_1_enabled: false, ff_2_enabled: false, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 07241 is expected to eq 07242 ff_1_enabled: true, ff_2_enabled: false, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 17243 is expected to eq 17244 ff_1_enabled: false, ff_2_enabled: true, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 27245 is expected to eq 27246 ff_1_enabled: true, ff_2_enabled: true, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 27247 is expected to eq 27248 ff_1_enabled: false, ff_2_enabled: false, ff_5_enabled: true, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 57249 is expected to eq 57250 ff_1_enabled: true, ff_2_enabled: true, ff_5_enabled: true, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: false, expected_result: 57251 is expected to eq 57252 ff_1_enabled: false, ff_2_enabled: false, ff_5_enabled: false, ff_10_enabled: true, ff_25_enabled: false, ff_40_enabled: false, expected_result: 107253 is expected to eq 107254 ff_1_enabled: true, ff_2_enabled: true, ff_5_enabled: true, ff_10_enabled: true, ff_25_enabled: false, ff_40_enabled: false, expected_result: 107255 is expected to eq 107256 ff_1_enabled: false, ff_2_enabled: false, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: true, ff_40_enabled: false, expected_result: 257257 is expected to eq 257258 ff_1_enabled: true, ff_2_enabled: true, ff_5_enabled: true, ff_10_enabled: true, ff_25_enabled: true, ff_40_enabled: false, expected_result: 257259 is expected to eq 257260 ff_1_enabled: false, ff_2_enabled: false, ff_5_enabled: false, ff_10_enabled: false, ff_25_enabled: false, ff_40_enabled: true, expected_result: 407261 is expected to eq 407262 ff_1_enabled: true, ff_2_enabled: true, ff_5_enabled: true, ff_10_enabled: true, ff_25_enabled: true, ff_40_enabled: true, expected_result: 407263 is expected to eq 407264 .max_tags_count7265 returns the matching application_setting7266 .max_retries7267 returns the matching application_setting7268 .start_max_retries7269 returns the matching application_setting7270 .max_step_duration7271 returns the matching application_setting7272 .target_plan_name7273 returns the matching application_setting7274 .created_before7275 returns the matching application_setting7276 .pre_import_timeout7277 returns the matching application_setting7278 .import_timeout7279 returns the matching application_setting7280 .pre_import_tags_rate7281 returns the matching application_setting7282 .target_plans7283 target_plan: "free", result: ["free", "early_adopter", nil]7284 is expected to eq ["free", "early_adopter", nil]7285 target_plan: "premium", result: ["premium", "bronze", "silver", "premium_trial"]7286 is expected to eq ["premium", "bronze", "silver", "premium_trial"]7287 target_plan: "ultimate", result: ["ultimate", "gold", "ultimate_trial"]7288 is expected to eq ["ultimate", "gold", "ultimate_trial"]7289 .all_plans?7290 is expected to eq true7291 feature flag disabled7292 is expected to eq false7293 .delete_container_repository_worker_support?7294 is expected to eq true7295 feature flag disabled7296 is expected to eq false7297 .dynamic_pre_import_timeout_for7298 returns the expected seconds7299ContainerExpirationPolicies::UpdateService7300 #execute7301 with existing container expiration policy7302 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"7303 behaves like updating the container expiration policy7304 behaves like updating the container expiration policy attributes7305 updates the container expiration policy7306 behaves like not creating the container expiration policy7307 doesn't create the container expiration policy7308 behaves like returning a success7309 returns a success7310 with invalid params7311 doesn't update the cadence7312 behaves like not creating the container expiration policy7313 doesn't create the container expiration policy7314 behaves like returning an error7315 returns an error7316 user_role: :developer, shared_examples_name: "denying access to container expiration policy"7317 behaves like denying access to container expiration policy7318 with existing container expiration policy7319 behaves like not creating the container expiration policy7320 doesn't create the container expiration policy7321 behaves like returning an error7322 returns an error7323 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"7324 behaves like denying access to container expiration policy7325 with existing container expiration policy7326 behaves like not creating the container expiration policy7327 doesn't create the container expiration policy7328 behaves like returning an error7329 returns an error7330 user_role: :guest, shared_examples_name: "denying access to container expiration policy"7331 behaves like denying access to container expiration policy7332 with existing container expiration policy7333 behaves like not creating the container expiration policy7334 doesn't create the container expiration policy7335 behaves like returning an error7336 returns an error7337 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"7338 behaves like denying access to container expiration policy7339 with existing container expiration policy7340 behaves like not creating the container expiration policy7341 doesn't create the container expiration policy7342 behaves like returning an error7343 returns an error7344 without existing container expiration policy7345 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"7346 behaves like creating the container expiration policy7347 behaves like updating the container expiration policy attributes7348 creates a new container expiration policy7349 updates the container expiration policy7350 behaves like returning a success7351 returns a success7352 user_role: :developer, shared_examples_name: "denying access to container expiration policy"7353 behaves like denying access to container expiration policy7354 with existing container expiration policy7355 behaves like not creating the container expiration policy7356 doesn't create the container expiration policy7357 behaves like returning an error7358 returns an error7359 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"7360 behaves like denying access to container expiration policy7361 with existing container expiration policy7362 behaves like not creating the container expiration policy7363 doesn't create the container expiration policy7364 behaves like returning an error7365 returns an error7366 user_role: :guest, shared_examples_name: "denying access to container expiration policy"7367 behaves like denying access to container expiration policy7368 with existing container expiration policy7369 behaves like not creating the container expiration policy7370 doesn't create the container expiration policy7371 behaves like returning an error7372 returns an error7373 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"7374 behaves like denying access to container expiration policy7375 with existing container expiration policy7376 behaves like not creating the container expiration policy7377 doesn't create the container expiration policy7378 behaves like returning an error7379 returns an error7380Ci::AfterRequeueJobService7381 stage-dag mixed pipeline7382 marks subsequent skipped jobs as processable7383 when executed by a different user than the original owner7384 reassigns jobs with updated statuses to the retryer7385 stage-dag mixed pipeline with some same-stage needs7386 marks subsequent skipped jobs as processable7387Ci::RunnersHelper7388 #runner_status_icon7389 returns online text7390 returns never contacted7391 returns offline text7392 returns stale text7393 returns stale text, when runner never contacted7394 #runner_contacted_at7395 without sorting7396 returns cached value7397 with sorting set to created_date7398 returns cached value7399 with sorting set to contacted_asc7400 returns stored value7401 #admin_runners_data_attributes7402 returns the data in format7403 #group_shared_runners_settings_data7404 returns group data for top level group7405 returns group data for child group7406 #group_runners_data_attributes7407 returns group data to render a runner list7408 #toggle_shared_runners_settings_data7409 when project has runners7410 returns the correct value for is_enabled7411 when project does not have runners7412 returns the correct value for is_enabled7413 for all projects7414 returns the update path for toggling the shared runners setting7415 returns false for is_disabled_and_unoverridable when project has no group7416 shared_runners_setting: :shared_runners_enabled, is_disabled_and_unoverridable: "false"7417 returns the override runner status for project with group7418 shared_runners_setting: :disabled_with_override, is_disabled_and_unoverridable: "false"7419 returns the override runner status for project with group7420 shared_runners_setting: :disabled_and_unoverridable, is_disabled_and_unoverridable: "true"7421 returns the override runner status for project with group7422DesignManagement::DesignPolicy7423 when DesignManagement is not enabled7424 behaves like design abilities not available7425 for owners7426 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7427 for admins7428 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7429 for maintainers7430 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7431 for developers7432 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7433 for reporters7434 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7435 for guests7436 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7437 for anonymous users7438 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7439 when the feature is available7440 behaves like design abilities available for members7441 for owners7442 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7443 for admins7444 when admin mode enabled7445 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7446 when admin mode disabled7447 behaves like read-only design abilities7448 is expected to be allowed :read_design7449 is expected to be disallowed :create_design, :destroy_design, and :move_design7450 for maintainers7451 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7452 for developers7453 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7454 for reporters7455 behaves like read-only design abilities7456 is expected to be allowed :read_design7457 is expected to be disallowed :create_design, :destroy_design, and :move_design7458 for guests in private projects7459 behaves like read-only design abilities7460 is expected to be allowed :read_design7461 is expected to be disallowed :create_design, :destroy_design, and :move_design7462 for anonymous users in public projects7463 behaves like read-only design abilities7464 is expected to be allowed :read_design7465 is expected to be disallowed :create_design, :destroy_design, and :move_design7466 when the issue is confidential7467 behaves like design abilities available for members7468 for owners7469 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7470 for admins7471 when admin mode enabled7472 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7473 when admin mode disabled7474 behaves like read-only design abilities7475 is expected to be allowed :read_design7476 is expected to be disallowed :create_design, :destroy_design, and :move_design7477 for maintainers7478 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7479 for developers7480 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design7481 for reporters7482 behaves like read-only design abilities7483 is expected to be allowed :read_design7484 is expected to be disallowed :create_design, :destroy_design, and :move_design7485 for guests7486 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7487 for anonymous users7488 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design7489 when the project is archived7490 behaves like read-only design abilities7491 is expected to be allowed :read_design7492 is expected to be disallowed :create_design, :destroy_design, and :move_design7493Gitlab::EncodingHelper7494 #encode!7495 nil7496 empty string7497 invalid utf-8 encoded string7498 frozen non-ascii string7499 leaves ascii only string as is7500 leaves valid utf8 string as is7501 removes invalid bytes from ASCII-8bit encoded multibyte string. This can occur when a git diff match line truncates in the middle of a multibyte character. This occurs after the second word in this example. The test string is as short as we can get while still triggering the error condition when not looking at `detect[:confidence]`.7502 string with detected encoding that is not supported in Ruby7503 leaves binary string as is7504 with corrupted diff7505 does not corrupt data but remove invalid characters7506 #encode_utf8_no_detect7507 input: "abcd", expected: "abcd"7508 drops invalid UTF-87509 input: "DzDzDz", expected: "DzDzDz"7510 drops invalid UTF-87511 input: "Dz\xC7DzDzDz", expected: "Dz�DzDzDz"7512 drops invalid UTF-87513 input: "🐤🐤🐤🐤\xF0\x9F\x90", expected: "🐤🐤🐤🐤�"7514 drops invalid UTF-87515 #encode_utf87516 nil7517 empty string7518 invalid utf-8 encoded string7519 encodes valid utf8 encoded string to utf87520 encodes valid ASCII-8BIT encoded string to utf87521 encodes valid ISO-8859-1 encoded string to utf87522 Equifax branch name7523 returns empty string on conversion errors7524 replaces invalid and undefined chars with the replace argument7525 with strings that can be forcefully encoded into utf87526 doesn't use CharlockHolmes if the encoding can be forced into utf_87527 #clean7528 leaves ascii only string as is7529 leaves valid utf8 string as is7530 removes invalid bytes from ASCII-8bit encoded multibyte string.7531 handles UTF-16BE encoded strings7532 encode_binary7533 encodes nil to ""7534 encodes "" to ""7535 encodes " " to " "7536 encodes "a1" to "a1"7537 encodes "编码" to "\xE7\xBC\x96\xE7\xA0\x81"7538 #binary_io7539 does not mutate the original string encoding7540 returns a copy of the IO with the correct encoding7541 #detect_encoding7542 detects encoding7543 is expected to be a kind of Hash7544 correctly detects the binary7545 data is nil7546 is expected to be nil7547 limit is provided7548 correctly detects the binary7549 #unquote_path7550 is expected to eq "\a\b\e\f\n\r\t\v\""7551API::Helpers::Packages::DependencyProxyHelpers7552 #redirect_registry_request7553 with npm packages7554 application_setting: true, forward_to_registry: true, example_name: "executing redirect"7555 behaves like executing redirect7556 redirects to package registry7557 application_setting: true, forward_to_registry: false, example_name: "executing fallback"7558 behaves like executing fallback7559 redirects to package registry7560 application_setting: false, forward_to_registry: true, example_name: "executing fallback"7561 behaves like executing fallback7562 redirects to package registry7563 application_setting: false, forward_to_registry: false, example_name: "executing fallback"7564 behaves like executing fallback7565 redirects to package registry7566 with pypi packages7567 application_setting: true, forward_to_registry: true, example_name: "executing redirect"7568 behaves like executing redirect7569 redirects to package registry7570 application_setting: true, forward_to_registry: false, example_name: "executing fallback"7571 behaves like executing fallback7572 redirects to package registry7573 application_setting: false, forward_to_registry: true, example_name: "executing fallback"7574 behaves like executing fallback7575 redirects to package registry7576 application_setting: false, forward_to_registry: false, example_name: "executing fallback"7577 behaves like executing fallback7578 redirects to package registry7579 with non-forwardable package type7580 maven7581 raises an error7582 conan7583 raises an error7584 nuget7585 raises an error7586 composer7587 raises an error7588 generic7589 raises an error7590 golang7591 raises an error7592 debian7593 raises an error7594 rubygems7595 raises an error7596 helm7597 raises an error7598 terraform_module7599 raises an error7600 #registry_url7601 package_type: :npm, expected_result: "https://registry.npmjs.org/test"7602 is expected to eq "https://registry.npmjs.org/test"7603 package_type: :pypi, expected_result: "https://pypi.org/simple/test/"7604 is expected to eq "https://pypi.org/simple/test/"7605 with non-forwardable package type maven7606 raises an error7607 with non-forwardable package type conan7608 raises an error7609 with non-forwardable package type nuget7610 raises an error7611 with non-forwardable package type composer7612 raises an error7613 with non-forwardable package type generic7614 raises an error7615 with non-forwardable package type golang7616 raises an error7617 with non-forwardable package type debian7618 raises an error7619 with non-forwardable package type rubygems7620 raises an error7621 with non-forwardable package type helm7622 raises an error7623 with non-forwardable package type terraform_module7624 raises an error7625Gitlab::Redis::Queues7626 .config_file_name7627 when there is no config file anywhere7628 is expected to be nil7629 but resque.yml exists7630 is expected to eq "/tmp/redis_shared_examples20220707-463-13qamal/config/resque.yml"7631 returns a path that exists7632 and there is a global env override7633 is expected to eq "global override"7634 and there is an instance specific config file7635 is expected to eq "/tmp/redis_shared_examples20220707-463-op10k2/config/redis.queues.yml"7636 returns a path that exists7637 and there is a specific env override7638 is expected to eq "instance specific override"7639 .store7640 with old format7641 behaves like redis store7642 instantiates Redis::Store7643 with the namespace7644 uses specified namespace7645 with new format7646 behaves like redis store7647 instantiates Redis::Store7648 with the namespace7649 uses specified namespace7650 .params7651 withstands mutation7652 when url contains unix socket reference7653 with old format7654 returns path key instead7655 with new format7656 returns path key instead7657 when url is host based7658 with old format7659 returns hash with host, port, db, and password7660 with new format7661 rails_env: "development", host: "development-host"7662 returns hash with host, port, db, and password7663 rails_env: "test", host: "test-host"7664 returns hash with host, port, db, and password7665 rails_env: "production", host: "production-host"7666 returns hash with host, port, db, and password7667 .url7668 withstands mutation7669 when yml file with env variable7670 reads redis url from env variable7671 .version7672 returns a version7673 ._raw_config7674 is frozen7675 returns false when the file does not exist7676 returns false when the filename can't be determined7677 .with7678 when running on single-threaded runtime7679 instantiates a connection pool with size 57680 when running on multi-threaded runtime7681 instantiates a connection pool with a size based on the concurrency of the worker7682 when there is no config at all7683 can run an empty block7684 #db7685 with old format7686 returns the correct db7687 with new format7688 returns the correct db7689 #sentinels7690 when sentinels are defined7691 rails_env: "development", hosts: ["development-replica1", "development-replica2"]7692 returns an array of hashes with host and port keys7693 rails_env: "test", hosts: ["test-replica1", "test-replica2"]7694 returns an array of hashes with host and port keys7695 rails_env: "production", hosts: ["production-replica1", "production-replica2"]7696 returns an array of hashes with host and port keys7697 when sentinels are not defined7698 returns nil7699 #sentinels?7700 when sentinels are defined7701 returns true7702 when sentinels are not defined7703 returns false7704 #raw_config_hash7705 returns old-style single url config in a hash7706 #fetch_config7707 returns false when no config file is present7708 returns false when config file is present but has invalid YAML7709 has a value for the legacy default URL7710 #raw_config_hash7711 when the config url is blank7712 has a legacy default URL7713 when the config url is present7714 sets the configured url7715Gitlab::Redis::TraceChunks7716 behaves like redis_shared_examples7717 .config_file_name7718 when there is no config file anywhere7719 is expected to be nil7720 but resque.yml exists7721 is expected to eq "/tmp/redis_shared_examples20220707-463-12g593h/config/resque.yml"7722 returns a path that exists7723 and there is a global env override7724 is expected to eq "global override"7725 and there is an instance specific config file7726 is expected to eq "/tmp/redis_shared_examples20220707-463-1udkak0/config/redis.trace_chunks.yml"7727 returns a path that exists7728 and there is a specific env override7729 is expected to eq "instance specific override"7730 .store7731 with old format7732 behaves like redis store7733 instantiates Redis::Store7734 with the namespace7735 uses specified namespace7736 with new format7737 behaves like redis store7738 instantiates Redis::Store7739 with the namespace7740 uses specified namespace7741 .params7742 withstands mutation7743 when url contains unix socket reference7744 with old format7745 returns path key instead7746 with new format7747 returns path key instead7748 when url is host based7749 with old format7750 returns hash with host, port, db, and password7751 with new format7752 rails_env: "development", host: "development-host"7753 returns hash with host, port, db, and password7754 rails_env: "test", host: "test-host"7755 returns hash with host, port, db, and password7756 rails_env: "production", host: "production-host"7757 returns hash with host, port, db, and password7758 .url7759 withstands mutation7760 when yml file with env variable7761 reads redis url from env variable7762 .version7763 returns a version7764 ._raw_config7765 is frozen7766 returns false when the file does not exist7767 returns false when the filename can't be determined7768 .with7769 when running on single-threaded runtime7770 instantiates a connection pool with size 57771 when running on multi-threaded runtime7772 instantiates a connection pool with a size based on the concurrency of the worker7773 when there is no config at all7774 can run an empty block7775 #db7776 with old format7777 returns the correct db7778 with new format7779 returns the correct db7780 #sentinels7781 when sentinels are defined7782 rails_env: "development", hosts: ["development-replica1", "development-replica2"]7783 returns an array of hashes with host and port keys7784 rails_env: "test", hosts: ["test-replica1", "test-replica2"]7785 returns an array of hashes with host and port keys7786 rails_env: "production", hosts: ["production-replica1", "production-replica2"]7787 returns an array of hashes with host and port keys7788 when sentinels are not defined7789 returns nil7790 #sentinels?7791 when sentinels are defined7792 returns true7793 when sentinels are not defined7794 returns false7795 #raw_config_hash7796 returns old-style single url config in a hash7797 #fetch_config7798 returns false when no config file is present7799 returns false when config file is present but has invalid YAML7800 has a value for the legacy default URL7801 .config_file_name7802 when there is only a resque.yml7803 is expected to eq "/tmp/redis_shared_examples20220707-463-4lf14e/config/resque.yml"7804 and there is a global env override7805 is expected to eq "global override"7806 and SharedState has a different config file7807 is expected to eq "fallback config file"7808notify/pipeline_success_email.text.erb7809 behaves like pipeline status changes email7810 when the pipeline contains a failed job7811 behaves like renders the pipeline status changes email correctly7812 pipeline with user7813 renders the email correctly7814 behaves like correct pipeline information for pipelines for merge requests7815 when pipeline for merge request7816 renders a source ref of the pipeline7817 pipeline without user7818 renders the email correctly7819 when the latest failed job is a bridge job7820 behaves like renders the pipeline status changes email correctly7821 pipeline with user7822 renders the email correctly7823 behaves like correct pipeline information for pipelines for merge requests7824 when pipeline for merge request7825 renders a source ref of the pipeline7826 pipeline without user7827 renders the email correctly7828Gitlab::Ci::Build::Rules7829 .new7830 with no rules7831 sets @rule_list to an empty array7832 sets @default_when to "on_success"7833 with one rule7834 sets @rule_list to an array of a single rule7835 sets @default_when to "on_success"7836 with multiple rules7837 sets @rule_list to an array of a single rule7838 sets @default_when to "on_success"7839 with a specified default when:7840 sets @rule_list to an array of a single rule7841 sets @default_when to "manual"7842 #evaluate7843 with nil rules7844 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil>7845 and when:manual set as the default7846 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=nil, variables=nil>7847 with no rules7848 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>7849 and when:manual set as the default7850 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>7851 with one rule without any clauses7852 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="manual", start_in=nil, allow_failure=true, variables=nil>7853 with one matching rule7854 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil>7855 with two matching rules7856 returns the value of the first matched rule in the list7857 with a non-matching and matching rule7858 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="always", start_in=nil, allow_failure=nil, variables=nil>7859 with a matching and non-matching rule7860 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="delayed", start_in="1 day", allow_failure=nil, variables=nil>7861 with non-matching rules7862 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>7863 and when:manual set as the default7864 does not return the default when:7865 with only allow_failure7866 with matching rule7867 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=true, variables=nil>7868 with non-matching rule7869 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="never", start_in=nil, allow_failure=nil, variables=nil>7870 with variables7871 with matching rule7872 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables={:MY_VAR=>"my var"}>7873 with a regexp variable matching rule7874 is expected to eq #<struct Gitlab::Ci::Build::Rules::Result when="on_success", start_in=nil, allow_failure=nil, variables=nil>7875 Gitlab::Ci::Build::Rules::Result7876 #build_attributes7877 compacts nil values7878 #pass?7879 'when' is 'never'7880 returns false7881 'when' is 'on_success'7882 returns true7883SnippetStatistics7884 is expected to belong to snippet required: false7885 is expected to validate that :snippet cannot be empty/falsy7886 #update_commit_count7887 updates the count of commits7888 when the snippet does not have a repository7889 returns 07890 #update_file_count7891 updates the count of files7892 when the snippet does not have a repository7893 returns 07894 #update_repository_size7895 updates the repository_size7896 when the snippet does not have a repository7897 returns 07898 #refresh!7899 retrieves and saves statistic data from repository7900 when the database is read-only7901 does nothing7902 with a PersonalSnippet7903 when creating7904 behaves like personal snippet statistics updates7905 schedules a namespace statistics worker7906 does not try to update project stats7907 when updating7908 behaves like personal snippet statistics updates7909 schedules a namespace statistics worker7910 does not try to update project stats7911 with a ProjectSnippet7912 does not call personal snippet callbacks7913 behaves like UpdateProjectStatistics7914 is expected to be a new record7915DiffFileBaseEntity7916 submodule information for a7917 newly added submodule7918 says it is a submodule and contains links7919 has no compare url because the submodule was newly added7920 changed submodule7921 contains a link to compare the changes7922 normal file (no submodule)7923 sets submodule to false7924 contains raw sizes for the blob7925 is expected to eq 1327926 edit_path7927 open7928 behaves like a diff file edit path to the source branch7929 is expected to eq "/namespace1099/project1922/-/edit/feature/files/ruby/feature.rb?from_merge_request_iid=1"7930 behaves like nil if removed source branch7931 is expected to eq nil7932 closed7933 behaves like a diff file edit path to the source branch7934 is expected to eq "/namespace1099/project1922/-/edit/feature/files/ruby/feature.rb?from_merge_request_iid=1"7935 removed source branch7936 is expected to eq nil7937 merged7938 is expected to eq "/namespace1099/project1922/-/edit/feature/six"7939 ide_edit_path7940 when source_project and target_project are the same7941 returns the merge_request ide route7942 behaves like nil if removed source branch7943 is expected to eq nil7944 when source_project and target_project are different7945 returns the merge_request ide route with the target_project as param7946Gitlab::AlertManagement::Payload::Generic7947 behaves like subclass has expected api7948 defines all public methods in the base class7949 #title7950 behaves like parsable alert payload field with fallback7951 without payload7952 is expected to eq "New: Alert"7953 with title7954 is expected to eq "some value"7955 #severity7956 when set7957 payload_severity: "critical", expected_severity: :critical7958 is expected to eq :critical7959 payload_severity: "high", expected_severity: :high7960 is expected to eq :high7961 payload_severity: "medium", expected_severity: :medium7962 is expected to eq :medium7963 payload_severity: "low", expected_severity: :low7964 is expected to eq :low7965 payload_severity: "info", expected_severity: :info7966 is expected to eq :info7967 payload_severity: "CRITICAL", expected_severity: :critical7968 is expected to eq :critical7969 payload_severity: "cRiTiCaL", expected_severity: :critical7970 is expected to eq :critical7971 payload_severity: "unmapped", expected_severity: nil7972 is expected to eq nil7973 payload_severity: 1, expected_severity: nil7974 is expected to eq nil7975 payload_severity: nil, expected_severity: nil7976 is expected to eq nil7977 without key7978 is expected to be nil7979 #monitoring_tool7980 behaves like parsable alert payload field7981 behaves like parsable alert payload field with fallback7982 without payload7983 is expected to eq nil7984 with monitoring_tool7985 is expected to eq "some value"7986 #service7987 behaves like parsable alert payload field7988 behaves like parsable alert payload field with fallback7989 without payload7990 is expected to eq nil7991 with service7992 is expected to eq "some value"7993 #hosts7994 behaves like parsable alert payload field7995 behaves like parsable alert payload field with fallback7996 without payload7997 is expected to eq nil7998 with hosts7999 is expected to eq "some value"8000 #starts_at8001 without start_time8002 is expected to eq 2022-07-07 01:44:23.000000000 +00008003 with start_time8004 is expected to eq 2022-07-07 01:34:23.000000000 +00008005 #runbook8006 behaves like parsable alert payload field8007 behaves like parsable alert payload field with fallback8008 without payload8009 is expected to eq nil8010 with runbook8011 is expected to eq "some value"8012 #gitlab_fingerprint8013 returns a fingerprint8014 #environment_name8015 behaves like parsable alert payload field8016 behaves like parsable alert payload field with fallback8017 without payload8018 is expected to eq nil8019 with gitlab_environment_name8020 is expected to eq "some value"8021 #description8022 behaves like parsable alert payload field8023 behaves like parsable alert payload field with fallback8024 without payload8025 is expected to eq nil8026 with description8027 is expected to eq "some value"8028 #ends_at8029 without end_time8030 is expected to be nil8031 with end_time8032 is expected to eq 2022-07-07 01:34:23.000000000 +00008033Resolvers::EnvironmentsResolver8034 with a group8035 #resolve8036 finds all environments8037 with name8038 finds a specific environment with name8039 with search8040 searches environment by name8041 when the search term does not match any environments8042 is empty8043 with states8044 searches environments by state8045 generates an error if requested state is invalid8046 when project is nil8047 is expected to be nil8048BroadcastMessagesHelper8049 current_broadcast_notification_message8050 with available broadcast notification messages8051 is expected to eq #<BroadcastMessage id: 2, message: "MyText", starts_at: "2022-07-07 01:44:33.989076007 +0000", ends_a...h: nil, broadcast_type: "notification", dismissable: nil, target_access_levels: [], theme: "indigo">8052 when last broadcast message is hidden8053 is expected to eq #<BroadcastMessage id: 3, message: "MyText", starts_at: "2022-07-06 01:44:34.091965850 +0000", ends_a...h: nil, broadcast_type: "notification", dismissable: nil, target_access_levels: [], theme: "indigo">8054 without broadcast notification messages8055 is expected to be nil8056 user access level targeted messages8057 when in a project page8058 is expected to eq #<BroadcastMessage id: 5, message: "MyText", starts_at: "2022-07-07 01:44:34.221656121 +0000", ends_a... nil, broadcast_type: "notification", dismissable: nil, target_access_levels: [30], theme: "indigo">8059 when feature flag is disabled8060 is expected to be nil8061 when in a group page8062 is expected to eq #<BroadcastMessage id: 5, message: "MyText", starts_at: "2022-07-07 01:44:34.221656121 +0000", ends_a... nil, broadcast_type: "notification", dismissable: nil, target_access_levels: [30], theme: "indigo">8063 when feature flag is disabled8064 is expected to be nil8065 when not in a project, group, or sub-group page8066 is expected to be nil8067 when feature flag is disabled8068 is expected to be nil8069 current_broadcast_banner_messages8070 user access level targeted messages8071 when in a project page8072 is expected to eq #<BroadcastMessage id: 6, message: "MyText", starts_at: "2022-07-07 01:44:35.914129706 +0000", ends_a..._path: nil, broadcast_type: "banner", dismissable: nil, target_access_levels: [30], theme: "indigo">8073 when feature flag is disabled8074 is expected to be nil8075 when in a group page8076 is expected to eq #<BroadcastMessage id: 6, message: "MyText", starts_at: "2022-07-07 01:44:35.914129706 +0000", ends_a..._path: nil, broadcast_type: "banner", dismissable: nil, target_access_levels: [30], theme: "indigo">8077 when feature flag is disabled8078 is expected to be nil8079 when not in a project, group, or sub-group page8080 is expected to be nil8081 when feature flag is disabled8082 is expected to be nil8083 broadcast_message8084 returns nil when no current message8085 includes the current message8086 broadcast_message_status8087 returns Active8088 returns Expired8089 returns Pending8090Metrics::Dashboard::Annotations::DeleteService8091 .execute8092 with specific environment8093 with anonymous user8094 behaves like prevented annotation deletion8095 returns error response8096 does not change db state8097 with maintainer user8098 behaves like executed annotation deletion8099 returns success response8100 annotation failed to delete8101 returns error response8102 with specific cluster8103 with anonymous user8104 behaves like prevented annotation deletion8105 returns error response8106 does not change db state8107 with maintainer user8108 behaves like executed annotation deletion8109 returns success response8110 with owner user8111 behaves like executed annotation deletion8112 returns success response8113BoardGroupRecentVisit8114 relationships8115 is expected to belong to user required: false8116 is expected to belong to group required: false8117 is expected to belong to board required: false8118 validations8119 is expected to validate that :user cannot be empty/falsy8120 is expected to validate that :group cannot be empty/falsy8121 is expected to validate that :board cannot be empty/falsy8122 behaves like boards recent visit8123 #visited8124 creates a visit if one does not exists8125 behaves like was visited previously8126 updates the timestamp8127 when we try to create a visit that is not unique8128 behaves like was visited previously8129 updates the timestamp8130 #latest8131 returns the most recent visited8132 returns last 3 visited boards8133Clusters::Gcp::ProvisionService8134 #execute8135 when succeeded to request provision8136 behaves like success8137 schedules a worker for status minitoring8138 when operation status is unexpected8139 behaves like error8140 sets an error to provider object8141 when selfLink is unexpected8142 behaves like error8143 sets an error to provider object8144 when Internal Server Error happened8145 behaves like error8146 sets an error to provider object8147CustomerRelations::Organization8148 associations8149 is expected to belong to group required: false8150 validations8151 is expected to validate that :group cannot be empty/falsy8152 is expected to validate that :name cannot be empty/falsy8153 is expected to validate that :name is case-insensitively unique within the scope of :group_id8154 is expected to validate that the length of :name is at most 2558155 is expected to validate that the length of :description is at most 10248156 #root_group8157 when root group8158 is expected to be valid8159 when subgroup8160 is expected to be invalid8161 #name8162 strips name8163 #find_by_name8164 strips name8165 #self.move_to_root_group8166 moves organizations with unique names and deletes the rest8167 updates contact.organization_id for dupes and leaves the rest untouched8168 .search8169 when search term is empty8170 returns all group organizations8171 when search term is not empty8172 when searching for name8173 is expected to contain exactly #<CustomerRelations::Organization id: 17, group_id: 4403, created_at: "2022-07-07 01:45:02.809902975 ...45:02.809902975 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>8174 when searching for description8175 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 4403, created_at: "2022-07-07 01:45:02.804107595 ...:45:02.804107595 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]>8176 when searching for name and description8177 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 4403, created_at: "2022-07-07 01:45:02.804107595 ...:45:02.804107595 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]> and #<CustomerRelations::Organization id: 17, group_id: 4403, created_at: "2022-07-07 01:45:02.809902975 ...45:02.809902975 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>8178 .search_by_state8179 when searching for organizations state8180 returns only inactive organizations8181 returns only active organizations8182 .sort_by_name8183 when sorting the organizations8184 sorts them by name in ascendent order8185Banzai::ReferenceRedactor8186 #redact8187 when reference not visible to user8188 redacts an array of documents8189 replaces redacted reference with inner HTML8190 when data-original attribute provided8191 replaces redacted reference with original content8192 does not replace redacted reference with original content if href is given8193 uses the original content as the link content if given8194 when project is in pending delete8195 redacts an issue attached8196 redacts an external issue8197 when reference visible to user8198 does not redact an array of documents8199 when the user cannot read cross project8200 skips links to issues within the same project8201 removes info from a cross project reference8202 #redact_nodes8203 redacts an Array of nodes8204 #nodes_visible_to_user8205 returns a Set containing the visible nodes8206 handles invalid references gracefully8207Ci::ResourceGroups::AssignResourceFromResourceGroupService8208 #execute8209 when there is an available resource8210 requests resource8211 when failed to request resource8212 has a build waiting for resource8213 when the build has already retained a resource8214 has a pending build8215 when process mode is oldest_first8216 requests resource8217 when the other job exists in the newer pipeline8218 requests resource for the job in the oldest pipeline8219 when build is not `waiting_for_resource` state8220 attempts to request a resource8221 does not change the job status8222 when process mode is newest_first8223 requests resource8224 when the other job exists in the newer pipeline8225 requests resource for the job in the newest pipeline8226 when build is not `waiting_for_resource` state8227 attempts to request a resource8228 does not change the job status8229 when there are no available resources8230 does not request resource8231 when there is a stale build assigned to a resource8232 releases the resource from the stale build and assignes to the waiting build8233Ci::ExpirePipelineCacheService8234 #execute8235 invalidates Etag caching for project pipelines path8236 invalidates Etag caching for merge request pipelines if pipeline runs on any commit of that source branch8237 updates the cached status for a project8238 does not do N+1 queries8239 destroyed pipeline8240 clears the cache8241 when the pipeline is triggered by another pipeline8242 updates the cache of dependent pipeline8243 when the pipeline triggered another pipeline8244 updates the cache of dependent pipeline8245Gitlab::Ci::Reports::TestCase8246 #initialize8247 when required params are given8248 initializes an instance8249 when suite_name is missing8250 behaves like param is missing8251 raises an error8252 when classname is missing8253 behaves like param is missing8254 raises an error8255 when name is missing8256 behaves like param is missing8257 raises an error8258 when attachment is present8259 initializes the attachment if present8260 #has_attachment?8261 #attachment_url8262 when attachment is missing8263 #has_attachment?8264 #attachment_url8265 #set_recent_failures8266 sets the recent_failures information8267Releases::EvidencePipelineFinder#execute8268 when the tag is passed8269 returns the evidence pipeline8270 when the ref is passed8271 returns the evidence pipeline8272 empty params8273 returns nil8274 params[:evidence_pipeline] is present8275 returns the passed evidence pipeline8276CustomEmojiPolicy8277 custom emoji permissions8278 when user is8279 a developer8280 is expected to be allowed :create_custom_emoji8281 is maintainer8282 is expected to be allowed :delete_custom_emoji8283 is owner8284 is expected to be allowed :delete_custom_emoji8285 is developer and emoji creator8286 is expected to be allowed :delete_custom_emoji8287 is emoji creator but not a member of the group8288 is expected not to be allowed :delete_custom_emoji8289BulkImportWorker8290 #perform8291 when no bulk import is found8292 does nothing8293 when bulk import is finished8294 does nothing8295 when bulk import is failed8296 does nothing8297 when all entities are processed8298 marks bulk import as finished8299 when all entities are failed8300 marks bulk import as failed8301 when bulk import is created8302 marks bulk import as started8303 creates all the required pipeline trackers8304 when there are created entities to process8305 marks all entities as started, enqueues EntityWorker, ExportRequestWorker and reenqueues8306 when there are project entities to process8307 enqueues ExportRequestWorker8308 when exception occurs8309 tracks the exception & marks import as failed8310gitlab:artifacts rake tasks8311 check8312 outputs the integrity check for each batch8313 errors out about missing files on the file system8314 errors out about invalid checksum8315 errors out about missing checksum8316Metrics::Dashboard::TransientEmbedService8317 .valid_params?8318 is expected to be truthy8319 missing embedded8320 is expected to be falsey8321 not embedded8322 is expected to be falsey8323 missing embed_json8324 is expected to be falsey8325 #get_dashboard8326 caches the unprocessed dashboard for subsequent calls8327 caches unique requests separately8328 behaves like valid embedded dashboard service response8329 behaves like valid dashboard service response for schema8330 returns a json representation of the dashboard8331 behaves like raises error for users with insufficient permissions8332 when the user does not have sufficient access8333 behaves like misconfigured dashboard service response8334 returns an appropriate message and status code8335 when the user is anonymous8336 behaves like misconfigured dashboard service response8337 returns an appropriate message and status code8338 when embed_json cannot be parsed as json8339 behaves like misconfigured dashboard service response8340 returns an appropriate message and status code8341projects/merge_requests/edit.html.haml8342 when a merge request without fork8343 shows editable fields8344 when a merge request with an existing source project is closed8345 shows editable fields8346gettext8347 :compile8348 creates a pot file and invokes the 'gettext:po_to_json' task8349 :regenerate8350 when the locale folder is not found8351 raises an error8352 where there are existing /**/gitlab.po files8353 does not remove that locale8354 when there are locale folders without a gitlab.po file8355 removes those folders8356 when the gitlab.pot file cannot be generated8357 prints an error8358 when gettext:find changes the revision dates8359 resets the changes8360 :lint8361 when all PO files are valid8362Linting po files: |============================================================|8363 completes without error8364 when there are invalid PO files8365Linting po files: |============================================================|8366 raises an error8367 when the .pot file is invalid8368Linting po files: |============================================================|8369 raises an error8370Sanitizable8371 behaves like a non-sanitizable field8372 id8373 has no effect8374 behaves like a non-sanitizable field8375 html_body8376 has no effect8377 behaves like a sanitizable field8378 name8379 when input is nil8380 behaves like noop8381 has no effect8382 when input does not contain any html8383 behaves like noop8384 has no effect8385 when input contains html8386 sanitizes the input8387 when input includes html entities8388 does not escape them8389 when input contains pre-escaped html entities8390 is not valid8391 behaves like noop8392 has no effect8393 behaves like a sanitizable field8394 description8395 when input is nil8396 behaves like noop8397 has no effect8398 when input does not contain any html8399 behaves like noop8400 has no effect8401 when input contains html8402 sanitizes the input8403 when input includes html entities8404 does not escape them8405 when input contains pre-escaped html entities8406 is not valid8407 behaves like noop8408 has no effect8409Gitlab::Ci::Reports::AccessibilityReports8410 #scans_count8411 when data has errors8412 returns the scans_count8413 when data has no errors8414 returns the scans_count8415 when data has no url8416 returns the scans_count8417 #passes_count8418 when data has errors8419 returns the passes_count8420 when data has no errors8421 returns the passes_count8422 when data has no url8423 returns the scans_count8424 #errors_count8425 when data has errors8426 returns the errors_count8427 when data has no errors8428 returns the errors_count8429 when data has no url8430 returns the errors_count8431 #add_url8432 when data has errors8433 adds urls and data to accessibility report8434 when data does not have errors8435 adds data to accessibility report8436 when url does not exist8437 sets error_message and decreases total8438 #set_error_message8439 when error is nil8440 returns the error8441 sets the error8442 when a error has already been set8443 overwrites the existing message8444 #all_errors8445 when data has errors8446 returns all errors8447 when data has no errors8448 returns an empty array8449 when accessibility report has no data8450 returns an empty array8451Clusters::Agents::CreateService8452 #execute8453 without user permissions8454 returns errors when user does not have permissions8455 with user permissions8456 creates a new clusters_agent8457 returns success status8458 returns agent values8459 generates an error message when name is invalid8460Gitlab::Ci::Reports::Security::Scanner8461 #initialize8462 when all params are given8463 initializes an instance8464 when attribute external_id is missing8465 raises an error8466 when attribute name is missing8467 raises an error8468 #key8469 returns external_id8470 #to_hash8471 returns expected hash8472 when vendor is not defined8473 returns expected hash8474 #==8475 when external_id is equal8476 returns true8477 when external_id is different8478 returns false8479 #<=>8480 when the `external_id` of the scanners are different8481 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -18482 is expected to eq -18483 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -18484 is expected to eq -18485 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 18486 is expected to eq 18487 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -18488 is expected to eq -18489 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -18490 is expected to eq -18491 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -18492 is expected to eq -18493 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 18494 is expected to eq 18495 when the `external_id` of the scanners are equal8496 when the `name` of the scanners are different8497 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -18498 is expected to eq -18499 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 18500 is expected to eq 18501 when the `name` of the scanners are equal8502 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 08503 is expected to eq 08504 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -18505 is expected to eq -18506 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 18507 is expected to eq 18508Gitlab::SlashCommands::Presenters::Deploy8509 #present8510 is expected to have key :text8511 is expected to have key :response_type8512 is expected to have key :status8513 is expected not to have key :attachments8514 messages the channel of the deploy8515 #action_not_found8516 is expected to have key :text8517 is expected to have key :response_type8518 is expected to have key :status8519 is expected not to have key :attachments8520 tells the user there is no action8521Gitlab::IssuableMetadata8522 returns an empty Hash if an empty collection is provided8523 raises an error when given a collection with no limit8524 issues8525 aggregates stats on issues8526 merge requests8527 aggregates stats on merge requests8528Gitlab::Database::Partitioning::SlidingListStrategy8529 #current_partitions8530 detects both partitions8531 #validate_and_fix8532 feature flag is disabled8533 does not try to fix the default partition value8534 feature flag is enabled8535 does not call change_column_default if the partitioning in a valid state8536 calls change_column_default on partition_key with the most default partition number8537 does not change the default column if it has been changed in the meanwhile by another process8538 #active_partition8539 is the partition with the largest value8540 #missing_partitions8541 when next_partition_if returns true8542 is a partition definition for the next partition in the series8543 when next_partition_if returns false8544 is empty8545 when there are no partitions for the table8546 returns a partition for value 18547 #extra_partitions8548 when some partitions are true for detach_partition_if8549 is the leading set of partitions before that value8550 when all partitions are true for detach_partition_if8551 is all but the most recent partition8552 #initial_partition8553 starts with the value 18554 #next_partition8555 is one after the active partition8556 #ensure_partitioning_column_ignored!8557 raises when the column is not ignored8558 does not raise when the column is ignored8559 redirecting inserts as the active partition changes8560 redirects to the new partition8561gitlab:external_diffs rake tasks8562 force_object_storage task8563 forces externally stored merge request diffs to object storage8564 limits batches according to BATCH_SIZE, START_ID, and END_ID8565Projects::Prometheus::AlertsFinder8566 with params8567 #execute8568 with project8569 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 59, project_id: 1850, prometheus_metric_id: 3, runbook_url: nil>]8570 with matching metric8571 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8572 with matching metric id8573 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8574 with project non-specific metric8575 is expected to be empty8576 with environment8577 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 2, runbook_url: nil>]8578 with matching metric8579 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8580 with environment non-specific metric8581 is expected to be empty8582 with matching project and environment8583 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 2, runbook_url: nil>]8584 with matching metric8585 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8586 with environment non-specific metric8587 is expected to be empty8588 with matching id8589 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8590 with a nil id8591 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 2, runbook_url: nil>]8592 with non-matching project-environment pair8593 is expected to be empty8594 with id8595 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 58, project_id: 1850, prometheus_metric_id: 1, runbook_url: nil>]8596 with multiple ids8597 is expected to eq [#<PrometheusAlert id: 1, created_at: "2022-07-07 01:46:33.829649783 +0000", updated_at: "2022-07-07 ...0, operator: "gt", environment_id: 57, project_id: 1851, prometheus_metric_id: 4, runbook_url: nil>]8598 with non-matching id8599 is expected to be empty8600 without params8601 raises an error8602IssueLinks::DestroyService8603 #execute8604 behaves like a destroyable issuable link8605 when successfully removes an issuable link8606 removes related issue8607 creates notes8608 returns success message8609 when failing to remove an issuable link8610 does not remove relation8611 does not create notes8612 returns error message8613 when target is an incident8614 behaves like an incident management tracked event8615 .track_event8616 tracks the event using redis8617LooseForeignKeys::DeletedRecord8618 class methods8619 .load_batch_for_table8620 loads records and orders them by creation date8621 supports configurable batch size8622 .mark_records_processed8623 updates all records8624 .reschedule8625 reschedules all records8626 .increment_attempts8627 increaments the cleanup_attempts column8628 sliding_list partitioning8629 next_partition_if callback8630 when the partition is empty8631 is expected to eq false8632 when the partition has records8633 is expected to eq false8634 when the first record of the partition is older than PARTITION_DURATION8635 is expected to eq true8636 when the lfk_automatic_partition_creation FF is off8637 is expected to eq false8638 detach_partition_if callback8639 when the partition contains unprocessed records8640 is expected to eq false8641 when the partition contains only processed records8642 is expected to eq true8643 when the lfk_automatic_partition_dropping FF is off8644 is expected to eq false8645 the behavior of the strategy8646 moves records to new partitions as time passes8647API::Entities::Ci::JobRequest::Dependency8648 returns the dependency id8649 returns the dependency name8650 returns the token belonging to the running job8651 returns the dependency artifacts_file8652Gitaly::Server8653 is expected to respond to #server_version8654 is expected to respond to #git_binary_version8655 is expected to respond to #up_to_date?8656 is expected to respond to #address8657 is expected to respond to #replication_factor8658 .all8659 includes all storages8660 readable?8661 when the storage is readable8662 returns true8663 when the storage is not readable8664 returns false8665 writeable?8666 when the storage is writeable8667 returns true8668 when the storage is not writeable8669 returns false8670 #filesystem_type8671 is expected to be present8672 request memoization8673 when requesting multiple properties8674 uses memoization for the info request8675 when examining disk statistics for a given server8676 #disk_available8677 is expected to be present8678 returns disk available for the storage of the instantiated server8679 #disk_used8680 is expected to be present8681 returns disk used for the storage of the instantiated server8682 #disk_stats8683 is expected to be present8684 returns the storage of the instantiated server8685 #expected_version?8686 expected_version: "1.1.1", server_version: "1.1.1", result: true8687 is expected to eq true8688 expected_version: "1.1.2", server_version: "1.1.1", result: false8689 is expected to eq false8690 expected_version: "1.73.0", server_version: "1.73.0-18-gf756ebe2", result: false8691 is expected to eq false8692 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-45-g594c3ea3", result: true8693 is expected to eq true8694 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-46-gabc123ff", result: false8695 is expected to eq false8696 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6", result: false8697 is expected to eq false8698 replication_factor8699 when examining for a given server8700 is expected to eq 28701gitlab:db:decomposition:rollback:bump_ci_sequences8702 when passing wrong argument8703 will print an error message and exit when passing no argument8704 will print an error message and exit when passing a non positive integer value8705 when bumping the ci sequences8706 changes ci sequences by the passed argument `increase_by` value on the main database8707 will still increase the value of sequences that have is_called = False8708 resets the INCREMENT value of the sequences back to 1 for the following calls to nextval()8709 does not change the sequences on the gitlab_main tables8710 when multiple databases8711 does not change ci sequences on the ci database8712Gitlab::Analytics::CycleAnalytics::StageEvents::IssueDeployedToProduction8713 behaves like value stream analytics event8714 is expected to be a kind of String8715 is expected to be a kind of Symbol8716 is expected to include ApplicationRecord(abstract)8717 is expected to respond to #timestamp_projection8718 is expected to respond to #html_description8719 is expected to be a kind of Array8720 #apply_query_customization8721 expects an ActiveRecord::Relation object as argument and returns a modified version of it8722 #hash_code8723 returns a hash that uniquely identifies an event8724 does not differ when the same object is built with the same params8725 behaves like LEFT JOIN-able value stream analytics event8726 can use the event as LEFT JOIN8727 when looking at the record with data8728 contains the timestamp expression8729 when looking at the record without data8730 returns nil for the timestamp expression8731NewIssueWorker8732 #perform8733 when an issue not found8734 does not call Services8735 logs an error8736 when a user not found8737 does not call Services8738 logs an error8739 with a user8740 when the new issue author is blocked8741 behaves like a new issue where the current_user cannot trigger notifications8742 does not create a notification for the mentioned user8743 when the new issue author is a ghost8744 behaves like a new issue where the current_user cannot trigger notifications8745 does not create a notification for the mentioned user8746 when everything is ok8747 creates a new event record8748 creates a notification for the mentioned user8749 calls Issues::AfterCreateService8750Gitlab::Pagination::OffsetHeaderBuilder8751 pagination8752 returns correct result for the first page8753 returns correct result for the second page8754 pagination heders8755 adds next page header8756 adds only the specified params to the lnk8757AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker8758 is labeled as idempotent8759 performs multiple times sequentially without raising an exception8760 does not change authorizations when run twice8761 #perform8762 does not fail if the project does not exist8763 does not fail if the user does not exist8764 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserService8765 exclusive lease8766 when exclusive lease has not been taken8767 obtains a new exclusive lease8768 when exclusive lease has already been taken8769 raises an error8770Mutations::Terraform::State::Unlock8771 is expected to eq "TerraformStateUnlock"8772 is expected to require graphql authorizations :admin_terraform_state8773 #resolve8774 user does not have permission8775 raises an error8776 user has permission8777 unlocks the state8778 state is already unlocked8779 does not modify the state8780 with invalid params8781 raises an error8782IosSpecificTemplatesExperiment8783 is expected to equal true8784 skipping the experiment8785 no actor8786 is expected to be falsey8787 actor cannot create pipelines8788 is expected to be falsey8789 targeting a non iOS platform8790 is expected to be falsey8791 project has a ci.yaml file8792 is expected to be falsey8793 project has pipelines8794 is expected to be falsey8795ExternalServiceReactiveCachingWorker8796 behaves like reactive cacheable worker8797 #perform8798 when reactive cache worker class is found8799 calls #exclusively_update_reactive_cache!8800 when ReactiveCaching::ExceededReactiveCacheLimit is raised8801 avoids failing the job and tracks via Gitlab::ErrorTracking8802 when reactive cache worker class is not found8803 raises no error8804 when reactive cache worker class is invalid8805 raises no error8806 worker context8807 sets the related class on the job8808 sets the related class on the job when it was passed as a class8809WorkItems::DeleteTaskService8810 #execute8811 when work item params are valid8812 is expected to be success8813 deletes the work item and the related issue link8814 removes the task list item with the work item reference8815 when first operation fails8816 behaves like failing WorkItems::DeleteTaskService8817 is expected to be error8818 does not remove work item or issue links8819 returns an error message8820 when last operation fails8821 behaves like failing WorkItems::DeleteTaskService8822 is expected to be error8823 does not remove work item or issue links8824 returns an error message8825Gitlab::Utils::DelegatorOverride::Validator8826 #add_allowlist8827 adds a method name to the allowlist8828 #add_target8829 adds the target class8830 adds all descendants of the target8831 #expand_on_ancestors8832 adds the allowlist in the ancestors8833 #validate_overrides!8834 does not raise an error when the overrides are allowed8835 raises an error when there is an override8836Users::UpdateCanonicalEmailService8837 #initialize8838 unsuccessful8839 raises an error if there is no user8840 raises an error if the object is not a User8841 when a user is provided8842 does not error8843 #canonicalize_email8844 when the email domain is included8845 strips out any . or anything after + in the agent for included domains8846 raw_email: "user@includeddomain.com", expected_result: "user@includeddomain.com"8847 is expected to eq "user@includeddomain.com"8848 raw_email: "u.s.e.r@includeddomain.com", expected_result: "user@includeddomain.com"8849 is expected to eq "user@includeddomain.com"8850 raw_email: "user+123@includeddomain.com", expected_result: "user@includeddomain.com"8851 is expected to eq "user@includeddomain.com"8852 raw_email: "us.er+123@includeddomain.com", expected_result: "user@includeddomain.com"8853 is expected to eq "user@includeddomain.com"8854 when the user has an existing canonical email8855 updates the user canonical email record8856 when the email domain is not included8857 returns nil8858 destroys any existing UserCanonicalEmail record8859 when the user email is not processable8860 is expected to be nil8861 preserves any existing record8862 is expected to be nil8863 preserves any existing record8864RuboCop::MigrationHelpers8865 #in_migration?8866 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8867 is expected to eq true8868 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8869 is expected to eq true8870 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true8871 is expected to eq true8872 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8873 is expected to eq true8874 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8875 is expected to eq false8876 #in_post_deployment_migration?8877 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8878 is expected to eq false8879 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8880 is expected to eq true8881 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false8882 is expected to eq false8883 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true8884 is expected to eq true8885 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false8886 is expected to eq false8887 #version8888 is expected to eq 202002101844208889BackgroundMigrationWorker8890 behaves like it runs background migration jobs8891 defining the job attributes8892 defines the data_consistency as always8893 defines the retry count in sidekiq_options8894 defines the feature_category as database8895 defines the urgency as throttled8896 defines the loggable_arguments8897 .tracking_database8898 does not raise an error8899 overrides the method to return the tracking database8900 .minimum_interval8901 returns 2 minutes8902 #perform8903 when execute_background_migrations feature flag is disabled8904 does not perform the job, reschedules it in the future, and logs a message8905 when execute_background_migrations feature flag is enabled8906 performs jobs using the coordinator for the worker8907 when lease can be obtained8908 sets up the shared connection before checking replication8909 performs a background migration8910 can run scheduled job and retried job concurrently8911 sets the class that will be executed as the caller_id8912 when lease_attempts is 18913 performs a background migration8914 when lease not obtained (migration of same class was performed recently)8915 reschedules the migration and decrements the lease_attempts8916 when lease_attempts is 18917 reschedules the migration and decrements the lease_attempts8918 when lease_attempts is 08919 gives up performing the migration8920 when database is not healthy8921 reschedules a migration if the database is not healthy8922 increments the unhealthy counter8923 when lease_attempts is 08924 gives up performing the migration8925Gitlab::Ci::Pipeline::Expression::Lexer8926 #tokens8927 returns single value8928 does ignore whitespace characters8929 returns multiple values of the same token8930 returns multiple values with different tokens8931 returns tokens and operators8932 limits statement to specified amount of tokens8933 raises syntax error in case of finding unknown tokens8934 with complex expressions8935 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8936 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8937 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]8938 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE"]8939 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]8940 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "&&", "$PRESENT_VARIABLE", "!=", "\"nope\""]8941 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]8942 is expected to eq ["$PRESENT_VARIABLE", "&&", "$EMPTY_VARIABLE"]8943 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]8944 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "$EMPTY_VARIABLE", "=~", "/nope/"]8945 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]8946 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE"]8947 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE != \"nope\"", tokens: ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]8948 is expected to eq ["$EMPTY_VARIABLE", "==", "\"\"", "||", "$PRESENT_VARIABLE", "!=", "\"nope\""]8949 expression: "$PRESENT_VARIABLE || $EMPTY_VARIABLE", tokens: ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]8950 is expected to eq ["$PRESENT_VARIABLE", "||", "$EMPTY_VARIABLE"]8951 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", tokens: ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]8952 is expected to eq ["$PRESENT_VARIABLE", "&&", "null", "||", "$EMPTY_VARIABLE", "==", "\"\""]8953 with parentheses are used8954 expression: "($PRESENT_VARIABLE =~ /my var/) && $EMPTY_VARIABLE =~ /nope/", tokens: ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8955 is expected to eq ["(", "$PRESENT_VARIABLE", "=~", "/my var/", ")", "&&", "$EMPTY_VARIABLE", "=~", "/nope/"]8956 expression: "$PRESENT_VARIABLE =~ /my var/ || ($EMPTY_VARIABLE =~ /nope/)", tokens: ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]8957 is expected to eq ["$PRESENT_VARIABLE", "=~", "/my var/", "||", "(", "$EMPTY_VARIABLE", "=~", "/nope/", ")"]8958 expression: "($PRESENT_VARIABLE && (null || $EMPTY_VARIABLE == \"\"))", tokens: ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]8959 is expected to eq ["(", "$PRESENT_VARIABLE", "&&", "(", "null", "||", "$EMPTY_VARIABLE", "==", "\"\"", ")", ")"]8960 #lexemes8961 returns an array of syntax lexemes8962Namespaces::ScheduleAggregationWorker#perform8963 when group is the root ancestor8964 when aggregation schedule exists8965 does not create a new one8966 when aggregation schedule does not exist8967 creates one8968 when group is not the root ancestor8969 creates an aggregation schedule for the root8970 when namespace does not exist8971 logs the error8972 behaves like an idempotent worker8973 is labeled as idempotent8974 performs multiple times sequentially without raising an exception8975 creates a single aggregation schedule8976Network::Graph8977 #initialize8978 #commits8979 returns a list of commits8980 sorts commits by commit date (descending)8981 sorts children before parents for commits with the same timestamp8982Preloaders::UserMaxAccessLevelInProjectsPreloader8983 without preloader8984 runs some queries8985 #execute8986 avoids N+1 queries8987 when projects is an array of IDs8988 avoids N+1 queries8989 when projects is a relation including project_authorizations8990 avoids N+1 queries8991Gitlab::Ci::Config::Entry::Prefix8992 validations8993 behaves like key entry validations8994 when entry value contains slash8995 behaves like key with slash8996 is invalid8997 reports errors with config value8998 when entry value contains URI encoded slash (%2F)8999 behaves like key with slash9000 is invalid9001 reports errors with config value9002 when entry value is a dot9003 behaves like key with only dots9004 is invalid9005 reports errors with config value9006 when entry value is two dots9007 behaves like key with only dots9008 is invalid9009 reports errors with config value9010 when entry value is a URI encoded dot (%2E)9011 behaves like key with only dots9012 is invalid9013 reports errors with config value9014 when entry value is two URI encoded dots (%2E)9015 behaves like key with only dots9016 is invalid9017 reports errors with config value9018 when entry value is one dot and one URI encoded dot9019 behaves like key with only dots9020 is invalid9021 reports errors with config value9022 when key is a string9023 #value9024 returns key value9025 #valid?9026 is valid9027 when entry value is not correct9028 #errors9029 saves errors9030 .default9031 returns default key9032Gitlab::GithubImport::Representation::IssueEvent9033 .from_api_response9034 behaves like an IssueEvent9035 returns an instance of IssueEvent9036 the returned IssueEvent9037 includes the issue event id9038 includes the issue event "event"9039 includes the issue event commit_id9040 includes the issue_db_id9041 includes the created timestamp9042 when actor data present9043 includes the actor details9044 when actor data is empty9045 does not return such info9046 #github_identifiers9047 returns a hash with needed identifiers9048 .from_json_hash9049 behaves like an IssueEvent9050 returns an instance of IssueEvent9051 the returned IssueEvent9052 includes the issue event id9053 includes the issue event "event"9054 includes the issue event commit_id9055 includes the issue_db_id9056 includes the created timestamp9057 when actor data present9058 includes the actor details9059 when actor data is empty9060 does not return such info9061 #github_identifiers9062 returns a hash with needed identifiers9063Gitlab::JiraImport::BaseImporter9064 with any inheriting class9065 when project validation is ok9066 when Jira service exists9067 when Jira import data is not present9068 raises exception9069 when import data exists9070 when #imported_items_cache_key is not implemented9071 is expected to raise NotImplementedError9072 when #imported_items_cache_key is implemented9073 #imported_items_cache_key9074 is expected to eq "dumb-importer-key"9075 #mark_as_imported9076 stores id in redis cache9077 #already_imported?9078 returns false if value is not in cache9079 returns true if value already stored in cache9080Gitlab::BranchPushMergeCommitAnalyzer9081 #get_merge_commit9082 returns correct merge commit SHA for each commit9083 when one parent has two children9084 returns correct merge commit SHA for each commit9085 when relevant_commit_ids is provided9086 returns correct merge commit9087Net::HTTP patch proxy user and password encoding9088 #proxy_user9089 is expected to eq nil9090 with http_proxy env9091 is expected to eq nil9092 and user:password authentication9093 when on multiuser safe platform9094 is expected to eq "Y\\X"9095 when not on multiuser safe platform9096 is expected to be nil9097 #proxy_pass9098 is expected to eq nil9099 with http_proxy env9100 is expected to eq nil9101 and user:password authentication9102 when on multiuser safe platform9103 is expected to eq "R%S] ?X"9104 when not on multiuser safe platform9105 is expected to be nil9106Gitlab::Redis::HLL9107 .add9108 when checking key format9109 for invalid keys9110 metric_key: "test", value: 19111 raise an error when using an invalid key format9112 metric_key: "test-{metric", value: 19113 raise an error when using an invalid key format9114 metric_key: "test-{metric}}", value: 19115 raise an error when using an invalid key format9116 for valid keys9117 metric_key: "test-{metric}", value: 19118 doesn't raise error when having correct format9119 metric_key: "test-{metric}-1", value: 19120 doesn't raise error when having correct format9121 metric_key: "test:{metric}-1", value: 19122 doesn't raise error when having correct format9123 metric_key: "2020-216-{project_action}", value: 19124 doesn't raise error when having correct format9125 metric_key: "i_{analytics}_dev_ops_score-2020-32", value: 19126 doesn't raise error when having correct format9127 when adding entries9128 supports single value9129 supports multiple values9130 .count9131 has 3 distinct users for weeks 32, 33, 349132 has 3 distinct users for weeks 32, 339133 has 2 distinct users for weeks 33, 349134 has one distinct user for week 339135 has 4 distinct users when one different user has an action on week 349136Gitlab::ImportExport::Base::ObjectBuilder9137 #build9138 when object exists9139 when where_clauses are implemented9140 finds existing object instead of creating one9141 when where_clauses are not implemented9142 raises NotImplementedError9143 when object does not exist9144 creates new object9145Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit9146 behaves like value stream analytics event9147 is expected to be a kind of String9148 is expected to be a kind of Symbol9149 is expected to include ApplicationRecord(abstract)9150 is expected to respond to #timestamp_projection9151 is expected to respond to #html_description9152 is expected to be a kind of Array9153 #apply_query_customization9154 expects an ActiveRecord::Relation object as argument and returns a modified version of it9155 #hash_code9156 returns a hash that uniquely identifies an event9157 does not differ when the same object is built with the same params9158 behaves like LEFT JOIN-able value stream analytics event9159 can use the event as LEFT JOIN9160 when looking at the record with data9161 contains the timestamp expression9162 when looking at the record without data9163 returns nil for the timestamp expression9164ExclusiveLeaseGuard9165 #try_obtain_lease9166 obtains the lease, calls internal_method and releases the lease9167 when the lease is already obtained9168 does not call internal_method but logs error9169 with overwritten lease_release?9170 does not release the lease after execution9171 #exclusive_lease9172 uses the class name as lease key9173 with overwritten lease_key9174 uses the custom lease key9175 #release_lease9176 sends a cancel message to ExclusiveLease9177 #renew_lease!9178 sends a renew message to the exclusive_lease instance9179NoteDiffFile9180 associations9181 is expected to belong to diff_note required: false9182 validations9183 is expected to validate that :diff_note cannot be empty/falsy9184 .referencing_sha9185 finds note diff files by project and sha9186 excludes note diff files with the wrong project9187 excludes note diff files with the wrong sha9188Projects::PostCreationWorker9189 behaves like an idempotent worker9190 is labeled as idempotent9191 performs multiple times sequentially without raising an exception9192 Prometheus integration9193 project is nil9194 does not create prometheus integration9195 when project has access to shared integration9196 Prometheus application is shared via group cluster9197 creates an Integrations::Prometheus record9198 Prometheus application is shared via instance cluster9199 creates an Integrations::Prometheus record9200 cleans invalid record and logs warning9201 shared Prometheus application is not available9202 does not persist an Integrations::Prometheus record9203Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated9204 behaves like value stream analytics event9205 is expected to be a kind of String9206 is expected to be a kind of Symbol9207 is expected to include ApplicationRecord(abstract)9208 is expected to respond to #timestamp_projection9209 is expected to respond to #html_description9210 is expected to be a kind of Array9211 #apply_query_customization9212 expects an ActiveRecord::Relation object as argument and returns a modified version of it9213 #hash_code9214 returns a hash that uniquely identifies an event9215 does not differ when the same object is built with the same params9216 behaves like LEFT JOIN-able value stream analytics event9217 can use the event as LEFT JOIN9218 when looking at the record with data9219 contains the timestamp expression9220 when looking at the record without data9221 returns nil for the timestamp expression9222Ci::UpdateLockedUnknownArtifactsWorker9223 #perform9224 executes an instance of Ci::JobArtifacts::UpdateUnknownLockedStatusService9225 with the ci_job_artifacts_backlog_work flag shut off9226 does not instantiate a new Ci::JobArtifacts::UpdateUnknownLockedStatusService9227 does not log any artifact counts9228 does not query the database9229Resolvers::Ci::GroupRunnersResolver9230 #resolve9231 when user cannot see runners9232 returns no runners9233 with user as group owner9234 returns all the runners9235 with membership direct9236 returns only direct runners9237 with obj set to nil9238 raises an error9239 with obj not set to group9240 raises an error9241 Allowed query arguments9242 calls RunnersFinder with expected arguments9243Gitlab::Access::BranchProtection9244 #any?9245 level: 0, result: false9246 is expected to eq false9247 level: 1, result: true9248 is expected to eq true9249 level: 3, result: true9250 is expected to eq true9251 level: 2, result: true9252 is expected to eq true9253 #developer_can_push?9254 level: 0, result: false9255 is expected to eq false9256 level: 1, result: true9257 is expected to eq true9258 level: 3, result: false9259 is expected to eq false9260 level: 2, result: false9261 is expected to eq false9262 #developer_can_merge?9263 level: 0, result: false9264 is expected to eq false9265 level: 1, result: false9266 is expected to eq false9267 level: 3, result: true9268 is expected to eq true9269 level: 2, result: false9270 is expected to eq false9271 #fully_protected?9272 level: 0, result: false9273 is expected to eq false9274 level: 1, result: false9275 is expected to eq false9276 level: 3, result: false9277 is expected to eq false9278 level: 2, result: true9279 is expected to eq true9280Gitlab::Usage::Metrics::NameSuggestion9281 #for9282 for count with nil column9283 behaves like name suggestion9284 return correct name9285 for count with column :id9286 behaves like name suggestion9287 return correct name9288 for count distinct with column defined metrics9289 behaves like name suggestion9290 return correct name9291 joined relations9292 counted attribute comes from source relation9293 behaves like name suggestion9294 return correct name9295 strips off time period constraint9296 behaves like name suggestion9297 return correct name9298 for sum metrics9299 behaves like name suggestion9300 return correct name9301 for average metrics9302 behaves like name suggestion9303 return correct name9304 for redis metrics9305 behaves like name suggestion9306 return correct name9307 for alt_usage_data metrics9308 behaves like name suggestion9309 return correct name9310Gitlab::JiraImport::IssueSerializer9311 #execute9312 attributes setting9313 sets the basic attributes9314 creates a hash for valid issue9315 labels9316 creates all missing labels (on project level)9317 when there are no new labels9318 assigns the labels to the Issue hash9319 does not create new labels9320 author9321 when reporter maps to a valid GitLab user9322 sets the issue author to the mapped user9323 when reporter does not map to a valid Gitlab user9324 defaults the issue author to project creator9325 when reporter field is empty9326 defaults the issue author to project creator9327 when reporter field is missing accountId9328 defaults the issue author to project creator9329 assignee9330 when assignee maps to a valid GitLab user9331 sets the issue assignees to the mapped user9332 when assignee does not map to a valid GitLab user9333 leaves the assignee empty9334 when assginee field is empty9335 leaves the assignee empty9336 when assginee field is missing accountId9337 leaves the assignee empty9338 with jira server response9339 when assignee maps to a valid GitLab user9340 sets the issue assignees to the mapped user9341 with done status9342 maps the status to closed9343 without the iid9344 does not set the iid9345Gitlab::UsageDataQueries9346 #add_metric9347 builds the query for given metric9348 .with_duration9349 yields passed block9350 .count9351 returns the raw SQL9352 does not mix a nil column with keyword arguments9353 .distinct_count9354 returns the raw SQL9355 does not mix a nil column with keyword arguments9356 .redis_usage_data9357 returns a stringified class for redis_usage_data with a counter call9358 returns a placeholder string for redis_usage_data with a block9359 .alt_usage_data9360 returns value when used with value9361 returns a placeholder string for alt_usage_data with a block9362 .sum9363 returns the raw SQL9364 .add9365 returns the combined raw SQL with an inner query9366 .histogram9367 returns the histogram sql9368 min/max methods9369 returns nil9370 sent_in_product_marketing_email_count9371 returns sql query that returns correct value9372 clicked_in_product_marketing_email_count9373 returns sql query that returns correct value9374Groups::AutoDevopsService#execute9375 when user does not have enough privileges9376 raises exception9377 when user has enough privileges9378 updates group auto devops enabled accordingly9379 when group has projects9380 reflects changes on projects9381 when group has subgroups9382 reflects changes on subgroups9383 when subgroups have projects9384 reflects changes on projects9385GroupMemberPresenter9386 #can_resend_invite?9387 when group_member is invited9388 and user can admin_group_member9389 is expected to eq true9390 and user cannot admin_group_member9391 is expected to eq false9392 when group_member is not invited9393 and user can admin_group_member9394 is expected to eq false9395 and user cannot admin_group_member9396 is expected to eq false9397 #can_update?9398 when user can update_group_member9399 is expected to eq true9400 when user cannot update_group_member9401 is expected to eq false9402 #can_remove?9403 when user can destroy_group_member9404 is expected to eq true9405 when user cannot destroy_group_member9406 is expected to eq false9407 #can_approve?9408 when group_member has request an invite9409 when user can update_group_member9410 is expected to eq true9411 when user cannot update_group_member9412 is expected to eq false9413 when group_member did not request an invite9414 when user can update_group_member9415 is expected to eq false9416 when user cannot update_group_member9417 is expected to eq false9418 behaves like #valid_level_roles9419 returns all roles when no parent member is present9420 returns higher roles when a parent member is present9421WebauthnRegistration9422 relations9423 is expected to belong to user required: false9424 validations9425 is expected to validate that :credential_xid cannot be empty/falsy9426 is expected to validate that :public_key cannot be empty/falsy9427 is expected to validate that :counter cannot be empty/falsy9428 is expected to validate that the length of :name is at least 09429 is expected not to allow :name to be ‹nil›9430 is expected to validate that :counter looks like an integer greater than or equal to 0 and less than or equal to 42949672959431Gitlab::Ci::Config::External::File::Template9432 #matching?9433 when a template is specified9434 returns true9435 with a missing template9436 returns false9437 with a missing template key9438 returns false9439 #valid?9440 when is a valid template name9441 is expected to be truthy9442 with invalid template name9443 returns false9444 with a non-existing template9445 returns false9446 #template_name9447 when template does end with .gitlab-ci.yml9448 returns template name9449 when template is nil9450 returns nil9451 when template does not end with .gitlab-ci.yml9452 returns nil9453 #expand_context9454 drops all parameters9455 #metadata9456 is expected to eq {:blob=>nil, :context_project=>"namespace1256/project2085", :context_sha=>"12345", :extra=>{}, :locat...gitlab-org/gitlab/-/raw/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml", :type=>:template}9457Gitlab::SlashCommands::IssueShow9458 #execute9459 the issue exists9460 returns the issue9461 when its reference is given9462 shows the issue9463 the issue does not exist9464 returns not found9465 .match9466 matches the iid9467 accepts a reference9468Packages::TerraformModule::CreatePackageService9469 #execute9470 valid package9471 behaves like creating a package9472 creates a package9473 package already exists elsewhere9474 is expected to eq 4039475 is expected to equal "Access Denied"9476 marked as pending_destruction9477 behaves like creating a package9478 creates a package9479 version already exists9480 is expected to eq 4039481 is expected to equal "Package version already exists."9482 marked as pending_destruction9483 behaves like creating a package9484 creates a package9485 with empty version9486 is expected to eq 4009487 is expected to eq "Version is empty."9488Types::Admin::Analytics::UsageTrends::MeasurementType9489 is expected to have graphql field :recorded_at9490 is expected to have graphql field :identifier9491 is expected to have graphql field :count9492 authorization9493 when the user is not admin9494 returns an error9495 does not return usageTrendsMeasurements data9496 when user is an admin9497 returns usageTrendsMeasurements data9498Gitlab::Lograge::CustomOptions9499 .call9500 ignores some parameters9501 formats the parameters9502 adds the current time9503 adds the user id9504 adds Cloudflare headers9505 adds the metadata9506 when metadata is missing9507 does not break9508 trusted payload9509 is expected to include {:remote_ip => "192.168.1.2", :user_id => "test", :ua => "Nyxt", :queue_duration_s => 0.2, :etag_route => "/etag", :request_urgency => :default, :target_duration_s => 1, :cf_ray => "7065c0a7e361ed37c53e660fa94f665e", :cf_request_id => "d16a4491f9526661f0cb9bf096fe415a"}9510 payload with rejected fields9511 is expected to include {:request_urgency => :high}9512 is expected not to include {:something => "random"}9513 is expected not to include {:username => nil}9514 when correlation_id is overridden9515 sets the overridden value9516 when feature flags are present9517 and :feature_flag_log_states is enabled9518 adds feature flag events9519 and :feature_flag_log_states is disabled9520 does not track or add feature flag events9521Uploads routing9522 allows creating uploads for personal snippets9523 allows creating uploads for users9524 allows fetching alert metric metric images9525 does not allow creating uploads for other models9526 legacy paths9527 redirects project uploads to canonical path under project namespace9528RuboCop::Cop::Migration::DropTable9529 when in deployment migration9530 with drop_table DSL method9531 when in down method9532 does not register an offense9533 when in up method9534 registers an offense9535 when in change method9536 registers an offense9537 with DROP TABLE SQL literal9538 does not register an offense9539 when in up method9540 registers an offense9541 when in change method9542 registers an offense9543 when in post-deployment migration9544 registers no offense9545 when outside of migration9546 registers no offense9547Packages::Debian::GroupArchitecture9548 behaves like Debian Distribution Architecture9549 relationships9550 is expected to belong to distribution class_name => Packages::Debian::GroupDistribution required: false inverse_of => architectures9551 is expected to have many files class_name => Packages::Debian::GroupComponentFile inverse_of => architecture9552 validations9553 #distribution9554 is expected to validate that :distribution cannot be empty/falsy9555 #name9556 is expected to validate that :name cannot be empty/falsy9557 is expected to allow :name to be ‹"amd64"›9558 is expected to allow :name to be ‹"kfreebsd-i386"›9559 is expected not to allow :name to be ‹"-a"›9560 is expected not to allow :name to be ‹"AMD64"›9561 scopes9562 .ordered_by_name9563 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-07-07 01:48:23.060453000 +0000", updated_at: "2022-07-07 01:48:23.060453000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2022-07-07 01:48:23.069279484 +0000", updated_at: "2022-07-07 01:48:23.069279484 +0000", distribution_id: 1, name: "name2">9564 .with_distribution9565 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-07-07 01:48:23.060453000 +0000", updated_at: "2022-07-07 01:48:23.060453000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 2, created_at: "2022-07-07 01:48:23.069279484 +0000", updated_at: "2022-07-07 01:48:23.069279484 +0000", distribution_id: 1, name: "name2">9566 .with_name9567 is expected to contain exactly #<Packages::Debian::GroupArchitecture id: 1, created_at: "2022-07-07 01:48:23.060453000 +0000", updated_at: "2022-07-07 01:48:23.060453000 +0000", distribution_id: 1, name: "name1"> and #<Packages::Debian::GroupArchitecture id: 3, created_at: "2022-07-07 01:48:23.189882421 +0000", updated_at: "2022-07-07 01:48:23.189882421 +0000", distribution_id: 2, name: "name1">9568ProjectCiCdSetting9569 validations9570 validates default_git_depth is between 0 and 1000 or nil9571 #forward_deployment_enabled9572 is true by default9573 #default_git_depth9574 sets default value for new records9575 does not set default value if present9576 #keep_latest_artifacts_available?9577 without application setting record9578 project_enabled: false, result_keep_latest_artifact: false9579 is expected to eq false9580 project_enabled: true, result_keep_latest_artifact: true9581 is expected to eq true9582 with application setting record9583 instance_enabled: false, project_enabled: false, result_keep_latest_artifact: false9584 is expected to eq false9585 instance_enabled: false, project_enabled: true, result_keep_latest_artifact: false9586 is expected to eq false9587 instance_enabled: true, project_enabled: false, result_keep_latest_artifact: false9588 is expected to eq false9589 instance_enabled: true, project_enabled: true, result_keep_latest_artifact: true9590 is expected to eq true9591ProtectedTags::UpdateService9592 #execute9593 updates a protected tag9594 when updating protected tag with a name that contains HTML tags9595 updates a protected tag9596 without admin_project permissions9597 raises error9598Gitlab::SampleDataTemplate9599 .all9600 returns all templates9601 .find9602 when there is a match9603 is expected to be a kind of Gitlab::SampleDataTemplate9604 when there is no match9605 is expected to equal nil9606 .archive_directory9607 is expected to be a kind of Pathname9608 validate all templates9609 sample has a valid archive9610 with valid parameters9611 can be imported9612Ci::CreatePipelineService9613 artifacts:9614 reports:9615 with valid config9616 creates pipeline with builds9617 with invalid config9618 creates pipeline with yaml errors9619Preloaders::Environments::DeploymentPreloader9620 does not trigger N+1 queries9621 batch loads the dependent associations9622 avoids scoping with IN clause during preload9623 sets environment on the associated deployment9624 does not attempt to set environment on a nil deployment9625Clusters::Agents::GroupAuthorization9626 is expected to belong to agent class_name => Clusters::Agent required: true9627 is expected to belong to group class_name => ::Group required: true9628 is expected to validate jsonb schema "config"9629 #config_project9630 is expected to eq #<Project id:1927 namespace1268/project2100>>9631UserEntity9632 exposes user name and login9633 does not expose passwords9634 does not expose tokens9635 does not expose 2FA OTPs9636 exposes user path9637projects/issues/service_desk/_service_desk_info_content9638 when service desk is disabled9639 when the logged user is at least maintainer9640 shows the info including the project settings link9641 when the logged user is at only a developer9642 shows the info without the project settings link9643 when service desk is enabled9644 when the logged user is at least reporter9645 shows the info including the email address9646 when the logged user is at only a guest9647 shows the info without the email address9648 when user is not logged in9649 shows the info without the email address9650ErrorTracking::StacktraceBuilder9651 #stacktrace9652 with full error context9653 generates a correct stacktrace in expected format9654 when error context is missing9655 generates a stacktrace without context9656 when exception payload is a list9657 extracts a stracktrace9658 with empty payload9659 is expected to eq []9660 without exception field9661 is expected to eq []9662 without exception.values field9663 is expected to eq []9664 without any exception.values[].stacktrace fields9665 is expected to eq []9666 without any exception.values[].stacktrace.frame fields9667 is expected to eq []9668Gitlab::GithubImport::RefreshImportJidWorker9669 .perform_in_the_future9670 schedules a job in the future9671 #perform9672 when the project does not exist9673 does nothing9674 when the job is running9675 refreshes the import JID and reschedules itself9676 when the job is no longer running9677 returns9678 #find_import_state9679 returns a ProjectImportState9680 returns nil for a import state for which the import process failed9681 returns nil for a non-existing find_import_state9682Gitlab::ColorSchemes9683 .body_classes9684 returns a space-separated list of class names9685 .by_id9686 returns a scheme by its ID9687 .default9688 returns the default scheme9689 .each9690 passes the block to the SCHEMES Array9691 .for_user9692 returns default when user is nil9693 returns user's preferred color scheme9694Gitlab::Metrics::Prometheus9695 #reset_registry!9696 clears existing metrics9697 #error_detected!9698 disables Prometheus metrics9699Types::InvitationInterface9700 exposes the expected fields9701 .resolve_type9702 for project member9703 is expected to equal Types::ProjectInvitationType9704 for group member9705 is expected to equal Types::GroupInvitationType9706 for an unknown type9707 raises an error9708Deployments::ArchiveInProjectWorker9709 #perform9710 executes Deployments::ArchiveInProjectService9711Clusters::Aws::FetchCredentialsService9712 #execute9713 provision role is configured9714 provider is specified9715 is expected to eq #<Double (anonymous)>9716 provider is not specifed9717 is expected to eq #<Double (anonymous)>9718 region is not specifed9719 is expected to eq #<Double (anonymous)>9720 provision role is not configured9721 raises an error9722 with an instance profile attached to an IAM role9723 provider is specified9724 returns credentials9725 provider is not specifed9726 returns credentials9727ErrorTracking::ClientKey9728 relationships9729 is expected to belong to project required: false9730 validations9731 is expected to validate that :public_key cannot be empty/falsy9732 is expected to validate that the length of :public_key is at most 2559733 #generate_key9734 is expected to be present9735 is expected to start with "glet_"9736RuboCop::Cop::Migration::BackgroundMigrationBaseClass9737 when the migration class inherits from BatchedMigrationJob9738 does not register any offenses9739 when the migration class inherits from the namespaced BatchedMigrationJob9740 does not register any offenses9741 when the migration class inherits from the top-level namespaced BatchedMigrationJob9742 does not register any offenses9743 when a nested class is used inside the job class9744 does not register any offenses9745 when the migration class inherits from another class9746 registers an offense9747 when the migration class does not inherit from anything9748 registers an offense9749Types::AlertManagement::AlertType9750 is expected to eq "AlertManagementAlert"9751 is expected to require graphql authorizations :read_alert_management_alert9752 is expected to include Types::TodoableInterface9753 exposes the expected fields9754Resolvers::Projects::GrafanaIntegrationResolver9755 #resolve9756 when object is not a project9757 is expected to eq nil9758 when object is a project9759 is expected to eq #<GrafanaIntegration id: 1, project_id: 1934, created_at: "2022-07-07 01:48:50.184326662 +0000", upda...ken_iv: "hFhR/yjUelNRUZsH\n", grafana_url: "https://grafana.example.com", enabled: true, token: nil>9760 when object is nil9761 is expected to eq nil9762RuboCop::Cop::API::Base9763 adds an offense when inheriting from Grape::API9764 adds an offense when inheriting from ::Grape::API9765 adds an offense when inheriting from Grape::API::Instance9766 adds an offense when inheriting from ::Grape::API::Instance9767 does not add an offense when inheriting from BaseAPI9768FromUnion9769 behaves like from set operator9770 #from_union9771 selects from the results of the UNION9772 returns empty set when passing empty array9773 supports the use of a custom alias for the sub query9774 supports keeping duplicate rows9775Metrics::Dashboard::ClusterMetricsEmbedService9776 .valid_params?9777 is expected to be truthy9778 returns false with missing param9779 returns false with missing param9780 returns false with missing param9781 returns false with missing param9782 returns false with missing param9783 missing all params9784 is expected to be falsy9785 #get_dashboard9786 returns one panel9787 returns panel by title and y_label9788 behaves like valid embedded dashboard service response9789 behaves like valid dashboard service response for schema9790 returns a json representation of the dashboard9791 behaves like caches the unprocessed dashboard for subsequent calls9792 is expected to receive load_raw!(*(any args)) 1 time9793Types::Metrics::DashboardType9794 is expected to eq "MetricsDashboard"9795 has the expected fields9796 annotations field9797 is expected to have graphql type #<Class:0x00007fba94625880>9798 is expected to have graphql resolver Resolvers::Metrics::Dashboards::AnnotationResolver9799Gitlab::Graphql::Loaders::BatchCommitLoader9800 #find9801 finds a commit by id9802 only queries once9803PerformanceMonitoring::PrometheusPanel9804 #new9805 accepts old schema format9806 accepts new schema format9807 .from_json9808 creates a PrometheusPanelGroup object9809 validations9810 json_content is not a hash9811 is expected to raise ActiveModel::ValidationError9812 when title is missing9813 is expected to raise ActiveModel::ValidationError9814 when metrics are missing9815 is expected to raise ActiveModel::ValidationError9816 .id9817 returns hexdigest of group_title, type and title as the panel id9818RuboCop::Cop::CodeReuse::Serializer9819 flags the use of a Serializer in a Service class9820 flags the use of a Serializer in a Finder9821 flags the use of a Serializer in a Presenter9822 flags the use of a Serializer in a Serializer9823 flags the use of a Serializer in a model instance method9824 flags the use of a Serializer in a model class method9825 flags the use of a Serializer in a worker9826RuboCop::Cop::Performance::ActiveRecordSubtransactions9827 when calling #transaction with only requires_new: true9828 registers an offense9829 when passing multiple arguments to #transaction, including requires_new: true9830 registers an offense9831 when calling #transaction with requires_new: false9832 does not register an offense9833 when calling #transaction with other options9834 does not register an offense9835 when calling #transaction with no arguments9836 does not register an offense9837Packages::Debian::ExtractChangesMetadataService9838 #execute9839 with valid package file9840 extract metadata9841 with invalid package file9842 raise ArgumentError9843 with invalid metadata9844 without Files field9845 raise ArgumentError9846 without Checksums-Sha1 field9847 raise ArgumentError9848 without Checksums-Sha256 field9849 raise ArgumentError9850 with file in Checksums-Sha1 but not in Files9851 raise ArgumentError9852 with different size in Checksums-Sha19853 raise ArgumentError9854 with file in Checksums-Sha256 but not in Files9855 raise ArgumentError9856 with different size in Checksums-Sha2569857 raise ArgumentError9858 with file in Files but not in Checksums-Sha19859 raise ArgumentError9860 with file in Files but not in Checksums-Sha2569861 raise ArgumentError9862 with invalid MD59863 raise ArgumentError9864 with invalid SHA19865 raise ArgumentError9866 with invalid SHA2569867 raise ArgumentError9868 with missing package file9869 raise ArgumentError9870Gitlab::BackgroundMigration9871 .queue9872 returns background migration worker queue9873 .steal9874 when the queue contains unprocessed jobs9875 uses the coordinator to steal jobs9876 when a custom predicate is given9877 steals jobs that match the predicate9878 does not steal jobs that do not match the predicate9879 when retry_dead_jobs is true9880 steals from the dead and retry queue9881 .perform9882 uses the coordinator to perform a background migration9883 .exists?9884 uses the coordinator to find if a job exists9885 uses the coordinator to find a job does not exist9886 .remaining9887 uses the coordinator to find the number of remaining jobs9888Projects::FetchStatisticsIncrementService9889 #execute9890 creates a new record for today with count == 19891 doesn't increment previous days statistics9892 when the record already exists for today9893 increments the today record count by 19894ResourceEvents::ChangeLabelsService9895 .change_labels9896 expires resource note etag cache9897 when adding a label9898 creates new label event9899 when removing a label9900 creates new label event9901 when both adding and removing labels9902 creates all label events in a single query9903 usage data9904 when resource is an issue9905 tracks changed labels9906 when resource is a merge request9907 does not track changed labels9908Gitlab::LanguageData9909 #extensions9910 loads the extensions once9911Ci::DownloadableArtifactEntity9912 #as_json9913 contains required fields9914 when user cannot read job artifact9915 returns only artifacts readable by user9916notify/push_to_merge_request_email.text.haml9917 behaves like renders plain text email correctly9918 renders the email without HTML links9919Integrations::Pivotaltracker9920 Validations9921 when integration is active9922 is expected to validate that :token cannot be empty/falsy9923 when integration is inactive9924 is expected not to validate that :token cannot be empty/falsy9925 Execute9926 posts correct message9927 when allowed branches is specified9928 posts message if branch is in the list9929 does not post message if branch is not in the list9930FromIntersect9931 behaves like from set operator9932 #from_intersect9933 selects from the results of the INTERSECT9934 returns empty set when passing empty array9935 supports the use of a custom alias for the sub query9936 supports keeping duplicate rows9937Packages::Nuget::PackagesVersionsPresenter9938 #versions9939 is expected to contain exactly "1.0.12", "1.0.13", "1.0.14", "1.0.15", and "1.0.16"9940Terraform::States::TriggerDestroyService9941 #execute9942 marks the state as deleted and schedules a cleanup worker9943 within a database transaction9944 does not raise an EnqueueFromTransactionError9945 user does not have permission9946 does not modify the state9947 state is locked9948 does not modify the state9949Banzai::Filter::FootnoteFilter9950 when footnotes exist9951 properly adds the necessary ids and classes9952 when GITLAB_TEST_FOOTNOTE_ID is set9953 uses the test footnote ID instead of a random number9954 when detecting footnotes9955 valid: true, markdown: "1. one[^1]\n[^1]: AbC"9956 detects valid footnotes9957 valid: true, markdown: "1. one[^abc]\n[^abc]: AbC"9958 detects valid footnotes9959 valid: false, markdown: "1. [one](#fnref-abc)"9960 detects valid footnotes9961 valid: false, markdown: "1. one[^1]\n[^abc]: AbC"9962 detects valid footnotes9963Mutations::Boards::Lists::Create9964 behaves like board lists create mutation9965 #ready?9966 raises an error if required arguments are missing9967 raises an error if too many required arguments are specified9968 #resolve9969 with proper permissions9970 backlog list9971 creates one and only one backlog9972 label list9973 creates a new label board list9974 when label not found9975 returns an error9976 without proper permissions9977 raises an error9978Gitlab::Memory::Jemalloc9979 when jemalloc is loaded9980 with JSON format9981 .stats9982 returns stats JSON9983 .dump_stats9984 writes stats JSON file9985 with text format9986 .stats9987 returns a text report9988 .dump_stats9989 writes stats text file9990 with unsupported format9991 .stats9992 raises an error9993 .dump_stats9994 raises an error9995 when jemalloc is not loaded9996 .stats9997 returns nil9998 .dump_stats9999 does nothing10000ErrorTracking::BaseService10001 #compose_response10002 returns bad_request error when response has an error key10003 returns server error when response has missing key error_type10004 returns no content when response is nil10005 when result has no errors key10006 raises NotImplementedError10007 when parse_response is implemented10008 returns successful response10009 returns successful response with changes from passed block10010 when tracking_event is provided10011 behaves like tracking unique hll events10012 tracks unique event10013TokenAuthenticatableStrategies::EncryptionHelper10014 .encrypt_token10015 when dynamic_nonce feature flag is switched on10016 adds nonce identifier on the beginning10017 adds nonce at the end10018 encrypts token10019 when dynamic_nonce feature flag is switched off10020 does not add nonce identifier on the beginning10021 does not add nonce in the end10022 encrypts token with static iv10023 .decrypt_token10024 with feature flag switched off10025 decrypts token with static iv10026 decrypts token if feature flag changed after encryption10027 decrypts token with dynamic iv10028 with feature flag switched on10029 decrypts token with dynamic iv10030 decrypts token if feature flag changed after encryption10031Gitlab::Graphql::KnownOperations10032 #from_query10033 query_string: "query { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="unknown">10034 returns known operation name from GraphQL Query10035 query_string: "query fuzzyyy { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="unknown">10036 returns known operation name from GraphQL Query10037 query_string: "query foo { helloWorld }", expected: #<struct Gitlab::Graphql::KnownOperations::Operation name="foo">10038 returns known operation name from GraphQL Query10039 #operations10040 returns array of known operations10041 Operation#to_caller_id10042 query_string: "query { helloWorld }", expected: "graphql:unknown"10043 formats operation name for caller_id metric property10044 query_string: "query foo { helloWorld }", expected: "graphql:foo"10045 formats operation name for caller_id metric property10046 Opeartion#query_urgency10047 returns the associated query urgency10048 .default10049 returns a memoization of values from webpack10050Gitlab::Ci::Build::Rules::Rule::Clause10051 .fabricate10052 when type is valid10053 type: "changes", result: Gitlab::Ci::Build::Rules::Rule::Clause::Changes10054 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Changes10055 type: "exists", result: Gitlab::Ci::Build::Rules::Rule::Clause::Exists10056 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::Exists10057 type: "if", result: Gitlab::Ci::Build::Rules::Rule::Clause::If10058 is expected to be an instance of Gitlab::Ci::Build::Rules::Rule::Clause::If10059 when type is invalid10060 is expected to be nil10061 when type is 'variables'10062 is expected to be nil10063projects/tree/show10064 for branch names ending on .json10065 displays correctly10066Gitlab::BuildAccess10067 #can_do_action10068 when the user can do an action on the project but cannot access git10069 is expected to equal true10070 when the user cannot do an action on the project10071 is expected to equal false10072Clusters::AgentPolicy10073 rules10074 when developer10075 is expected to be disallowed :admin_cluster10076 when maintainer10077 is expected to be allowed :admin_cluster10078Analytics::CycleAnalytics::ProjectValueStream10079 is not custom10080 associations10081 is expected to belong to project required: false10082 is expected to have many stages10083 validations10084 is expected to validate that :project cannot be empty/falsy10085 is expected to validate that :name cannot be empty/falsy10086 is expected to validate that the length of :name is at most 10010087 validates uniqueness of name10088 .build_default_value_stream10089 builds the default value stream10090Releases::CreateEvidenceService10091 creates evidence10092 saves evidence summary10093 saves sha10094Gitlab::Database::Migrations::Observers::QueryDetails10095 records details of executed queries10096 unsubscribes after the observation10097SystemCheck::SidekiqCheck10098 #multi_check10099 fails when no worker processes are running10100 fails when more than one cluster process is running10101 succeeds when one cluster process and one or more worker processes are running10102 when running without a cluster10103 fails when more than one worker process is running10104 succeeds when one worker process is running10105RuboCop::Formatter::TodoFormatter10106 with offenses detected10107 outputs its actions10108 creates YAML files10109 when cop previously not explicitly disabled10110 does not disable cop10111 when cop previously explicitly disabled in rubocop_todo/10112 keeps cop disabled10113 when cop previously explicitly disabled in rubocop_todo.yml10114 keeps cop disabled10115 with cop configuration in both .rubocop_todo/ and .rubocop_todo.yml10116 raises an error10117 without offenses detected10118 does not output anything10119 does not write any YAML files10120 without files to inspect10121 does not output anything10122 does not write any YAML files10123Gitlab::Emoji10124 .emoji_image_tag10125 returns emoji image tag10126 escapes emoji image attrs to prevent XSS10127 .gl_emoji_tag10128 returns gl emoji tag if emoji is found10129 returns nil if emoji is not found10130RuboCop::Cop::Migration::AddReference10131 when outside of a migration10132 does not register any offenses10133 when in a migration10134 when the table existed before10135 registers an offense when using add_reference10136 registers an offense when using add_reference with index enabled10137 registers an offense if only a different table was created10138 when creating the table at the same time10139 registers an offense when using add_reference without index10140 registers an offense when using add_reference index disabled10141 does not register an offense when using add_reference with index enabled10142 does not register an offense when the index is unique10143sidekiq10144 enable_reliable_fetch?10145 when gitlab_sidekiq_reliable_fetcher is enabled10146 is expected to be truthy10147 when gitlab_sidekiq_reliable_fetcher is disabled10148 is expected to be falsey10149 enable_semi_reliable_fetch_mode?10150 when gitlab_sidekiq_enable_semi_reliable_fetcher is enabled10151 is expected to be truthy10152 when gitlab_sidekiq_enable_semi_reliable_fetcher is disabled10153 is expected to be falsey10154RuboCop::Cop::DefaultScope10155 does not flag the use of default_scope with a send receiver10156 flags the use of default_scope with a constant receiver10157 flags the use of default_scope with a nil receiver10158 flags the use of default_scope when passing arguments10159 flags the use of default_scope when passing a block10160 ignores the use of default_scope with a local variable receiver10161Gitlab::Graphql::Representation::SubmoduleTreeEntry10162 .decorate10163 returns array of SubmoduleTreeEntry10164Gitlab::GrapeLogging::Loggers::CloudflareLogger10165 #parameters10166 with no Cloudflare headers10167 returns an empty hash10168 with Cloudflare headers10169 returns the correct duration in seconds10170BulkImports::LfsObjectsExportService10171 #execute10172 exports lfs objects and their repository types10173 when lfs object has file on disk missing10174 does not attempt to copy non-existent file10175 when lfs object is remotely stored10176 downloads lfs object from object storage10177ContextCommitsDiffEntity10178 as json10179 exposes commits_count10180 exposes showing_context_commits_diff10181 exposes diffs_path10182Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::RecordLoaderStrategy10183 #initializer_columns10184 returns a NULL table row as the result column10185 #columns10186 uses the finder query to load the row in the result column10187Gitlab::Ci::Config::Entry::Coverage10188 validations10189 when entry config value doesn't have the surrounding '/'10190 #errors10191 is expected to include /coverage config must be a regular expression/10192 #valid?10193 is expected not to be valid10194 when entry config value has the surrounding '/'10195 #value10196 is expected to eq "Code coverage: \\d+\\.\\d+"10197 #errors10198 is expected to be empty10199 #valid?10200 is expected to be valid10201 when entry value is not valid10202 #errors10203 is expected to include /coverage config must be a regular expression/10204 #valid?10205 is expected not to be valid10206Gitlab::Git::DiffStatsCollection10207 #find_by_path10208 returns stats by path when found10209 returns nil when stats is not found by path10210 #paths10211 returns only modified paths10212 #real_size10213 returns the number of modified files10214 returns capped number when it is bigger than max_files10215Banzai::Filter::ImageLazyLoadFilter10216 adds a class attribute10217 appends to the current class attribute10218 adds a async decoding attribute10219 transforms the image src to a data-src10220 works with external images10221Gitlab::Graphql::GenericTracing10222 updates graphql histogram with expected labels10223 when labkit tracing is enabled10224 yields with labkit tracing10225 when labkit tracing is disabled10226 yields without measurement10227Issuables::CrmContactFilter10228 when a contact has issues10229 returns all contact1 issues10230 returns all contact2 issues10231 when a contact has no issues10232 returns no issues10233Releases::Evidence10234 filters out issues from summary json10235 associations10236 is expected to belong to release required: false10237Gitlab::Instrumentation::Redis10238 behaves like aggregation of redis storage data10239 get_request_count sum10240 sums data from all Redis storages10241 behaves like aggregation of redis storage data10242 query_time sum10243 sums data from all Redis storages10244 behaves like aggregation of redis storage data10245 read_bytes sum10246 sums data from all Redis storages10247 behaves like aggregation of redis storage data10248 write_bytes sum10249 sums data from all Redis storages10250 .payload10251 returns payload filtering out zeroed values10252 .detail_store10253 returns a flat array of detail stores with the storage name added to each item10254Gitlab::Ci::Status::WaitingForResource10255 #text10256 is expected to eq "waiting"10257 #label10258 is expected to eq "waiting for resource"10259 #icon10260 is expected to eq "status_pending"10261 #favicon10262 is expected to eq "favicon_pending"10263 #group10264 is expected to eq "waiting-for-resource"10265 #details_path10266 is expected to be nil10267Import/Export attribute configuration10268 has no new columns10269CommitUserMention10270 associations10271 is expected to belong to note required: false10272 behaves like has user mentions10273 #has_mentions?10274 when no mentions10275 returns false10276 when mentioned_users_ids not null10277 returns true10278 when mentioned projects10279 returns true10280 when mentioned groups10281 returns true10282Types::DependencyProxy::GroupSettingType10283 includes dependency proxy blob fields10284 is expected to require graphql authorizations :admin_dependency_proxy10285 is expected to eq "DependencyProxySetting"10286 is expected to eq "Group-level Dependency Proxy settings"10287Repositories::ChangelogTagFinder10288 #execute10289 when the regular expression is invalid10290 raises Gitlab::Changelog::Error10291 when there is a previous tag10292 returns the previous tag10293 when there is no previous tag10294 returns nil10295Gitlab::ImportExport10296 export filename10297 contains the project path10298 contains the namespace path10299 does not go over a certain length10300 #snippet_repo_bundle_filename_for10301 generates the snippet bundle name10302Evidences::ReleaseEntity10303 exposes the expected fields10304 when the release has milestones10305 exposes these milestones10306 when the release has no milestone10307 exposes an empty array for milestones10308Gitlab::Ci::Pipeline::Expression::Lexeme::Equals10309 .build10310 with non-evaluable operands10311 creates a new instance of the token10312 with evaluable operands10313 creates a new instance of the token10314 .type10315 is an operator10316 .precedence10317 has a precedence10318 #evaluate10319 when left and right are equal10320 left_value: "string", right_value: "string"10321 is expected to eq true10322 when left and right are not equal10323 left_value: "one string", right_value: "two string"10324 is expected to eq false10325 left_value: "two string", right_value: "one string"10326 is expected to eq false10327Gitlab::ImportFormatter10328 #comment10329 creates the correct string10330 #author_line10331 returns the correct string with provided author name10332 returns the correct string with Anonymous name if author not provided10333 #assignee_line10334 returns the correct string with provided author name10335 returns the correct string with Anonymous name if author not provided10336Types::Notes::NoteType10337 exposes the expected fields10338 is expected to expose permissions using Types::PermissionTypes::Note10339 is expected to require graphql authorizations :read_note10340API::Entities::Ci::JobRequest::Port10341 returns the port number10342 returns if the port protocol10343 returns the port name10344Types::Ci::JobType10345 is expected to eq "CiJob"10346 is expected to expose permissions using Types::PermissionTypes::Ci::Job10347 exposes the expected fields10348Gitlab::Email::Message::InProductMarketing::Helper10349 unsubscribe_message10350 gitlab.com10351 format is HTML10352 returns the correct HTML10353 format is text10354 returns the correct string10355 self-managed10356 format is HTML10357 returns the correct HTML10358 format is text10359 returns the correct string10360Group::CrmSettings10361 associations10362 is expected to belong to group required: false10363 validations10364 is expected to validate that :group cannot be empty/falsy10365DisallowTwoFactorForSubgroupsWorker10366 schedules updating subgroups10367RuboCop::Cop::FilenameLength10368 does not flag files with names 100 characters long10369 tags files with names 101 characters long10370 tags files with names 256 characters long10371 tags files with filepath 256 characters long10372 tags files with filepath 257 characters long10373Database::PartitionManagementWorker10374 #perform10375 syncs partitions10376 reports partition metrics10377API::Entities::PlanLimit10378 exposes correct attributes10379 does not expose id and plan_id10380Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::None10381 #schedule10382 yields without checking for duplicates10383 #perform10384 does not delete any locks before executing10385Types::WorkItemType10386 is expected to eq "WorkItem"10387 is expected to require graphql authorizations :read_work_item10388 is expected to expose permissions using Types::PermissionTypes::WorkItem10389 has specific fields10390Types::CustomerRelations::OrganizationType10391 is expected to eq "CustomerRelationsOrganization"10392 is expected to have graphql fields :id, :name, :default_rate, :description, :active, :created_at, and :updated_at10393 is expected to require graphql authorizations :read_crm_organization10394Types::AlertManagement::IntegrationType10395 is expected to eq "AlertManagementIntegration"10396 exposes the expected fields10397BlocksUnsafeSerialization10398 behaves like blocks unsafe serialization10399 blocks as_json10400 blocks to_json10401Gitlab::TcpChecker10402 #check10403 can connect to an open port10404 fails to connect to a closed port10405Gitlab::SlashCommands::Presenters::Error10406 is expected to be a kind of Hash10407 shows the error message10408Gitlab::Ci::Status::Group::Common10409 does not have action10410 has details10411 has no details_path10412Gitlab::Webpack::GraphqlKnownOperations10413 .load10414 when file loader returns10415 returns memoized value10416 when file loader errors10417 returns empty array10418SystemCheck::IncomingEmailCheck10419 #multi_check10420 when incoming e-mail is disabled10421Reply by email is disabled in config/gitlab.yml10422 does not run any checks10423 when incoming e-mail is enabled for IMAP10424 runs IMAP and mailroom checks10425 when incoming e-mail is enabled for Microsoft Graph10426 runs mailroom checks10427RuboCop::Cop::Gitlab::BulkInsert10428 flags the use of ApplicationRecord.legacy_bulk_insert10429 flags the use of ::ApplicationRecord.legacy_bulk_insert10430API::Validations::Validators::ProjectPortable10431 valid portable10432 does not raise a validation error10433 empty params10434 raises a validation error10435 not portable10436 raises a validation error10437Gitlab::CrossProjectAccess::CheckCollection10438 #add_collection10439 merges the checks of 2 collections10440 #should_run?10441 returns true if one of the check says it should run10442 returns false if one of the check says it should be skipped10443RuboCop::Cop::Migration::ReferToIndexByName10444 when in migration10445 when existing indexes are referred to without an explicit name10446 registers an offense10447 when outside migration10448 registers no offenses10449Gitlab::Git::GitmodulesParser10450 parses a .gitmodules file correctly10451GroupBadge10452 associations10453 is expected to belong to group required: false10454 validations10455 is expected to validate that :group cannot be empty/falsy10456GitHelper10457 #short_sha10458 is expected to eq "d4e043f6"10459 #strip_signature10460 strips PGP SIGNATURE10461 is expected to eq "Version 1.69.0\n\n"10462 strips PGP MESSAGE10463 is expected to eq "Version 1.69.0\n\n"10464 strips SIGNED MESSAGE10465 is expected to eq "this is Roger's signed tag\n\n"10466Gitlab::Metrics::Exporter::GcRequestMiddleware10467 #call10468 runs a major GC after the next middleware is called10469Gitlab::Auth::U2fWebauthnConverter10470 converts u2f registration10471Gitlab::Database::ShaAttribute10472 #deserialize10473 converts the binary SHA to a String10474 #serialize10475 converts a SHA String to binary data10476Admin::DeployKeyHelper10477 #admin_deploy_keys_data10478 returns correct hash10479Resolvers::Ci::RunnerStatusResolver10480 #resolve10481 with legacy_mode10482 set to 14.510483 calls runner.status with specified legacy_mode10484 set to nil10485 calls runner.status with specified legacy_mode10486Gitlab::Middleware::RequestContext10487 #call10488 setting the client ip10489 with X-Forwarded-For headers10490 returns the load balancer IP10491 request10492 sets the `client_ip`10493 sets the `request_start_time`10494Evidences::IssueEntity10495 exposes the expected fields10496TodosDestroyer::PrivateFeaturesWorker10497 calls the Todos::Destroy::PrivateFeaturesService with the params it was given10498Evidences::EvidenceSerializer10499 represents an EvidenceEntity entity10500Types::CiConfiguration::Sast::EntityInputType10501 is expected to eq "SastCiConfigurationEntityInput"10502 is expected to contain exactly "field", "defaultValue", and "value"10503Gitlab::Metrics::Delta10504 #compared_with10505 returns the delta as a Numeric10506 bases the delta on a previously used value10507Gitlab::Serializer::Ci::Variables10508 converts keys into strings and symbolizes hash10509DetailedStatusEntity10510 #as_json10511 contains status details10512RuboCop::Cop::Gitlab::Intersect10513 flags the use of Gitlab::SQL::Intersect.new10514Gitlab::APIAuthentication::SentThroughBuilder10515 #sent_through10516 adds a strategy for each of locators x resolvers10517Preloaders::GroupRootAncestorPreloader10518 when the preloader is used10519 when no additional preloads are provided10520 behaves like executes N matching DB queries10521 executes the specified root_ancestor queries10522 strong_memoizes the correct root_ancestor10523 when additional preloads are provided10524 behaves like executes N matching DB queries10525 executes the specified root_ancestor queries10526 strong_memoizes the correct root_ancestor10527 when the preloader is not used10528 behaves like executes N matching DB queries10529 executes the specified root_ancestor queries10530 strong_memoizes the correct root_ancestor10531Knapsack report was generated. Preview:10533 "spec/models/project_spec.rb": 518.477777557,10534 "spec/models/integrations/slack_spec.rb": 115.98472957400008,10535 "spec/services/groups/destroy_service_spec.rb": 110.68124480000006,10536 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 72.60817522299999,10537 "spec/workers/post_receive_spec.rb": 71.13667121699996,10538 "spec/models/milestone_spec.rb": 57.128868511000064,10539 "spec/models/ci/stage_spec.rb": 44.83131026000001,10540 "spec/models/integrations/hangouts_chat_spec.rb": 44.604647689999865,10541 "spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb": 48.33685646999993,10542 "spec/models/integrations/discord_spec.rb": 49.38001154599988,10543 "spec/services/boards/lists/update_service_spec.rb": 46.09095606200026,10544 "spec/finders/notes_finder_spec.rb": 50.95535906899977,10545 "spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb": 39.697969199,10546 "spec/lib/gitlab/ci/config/entry/job_spec.rb": 14.316851882000265,10547 "spec/services/merge_requests/toggle_attention_requested_service_spec.rb": 38.26744575599969,10548 "spec/services/merge_requests/after_create_service_spec.rb": 33.90982196300001,10549 "spec/models/concerns/token_authenticatable_spec.rb": 20.5155647900001,10550 "spec/lib/backup/repositories_spec.rb": 27.83659810099971,10551 "spec/lib/gitlab/data_builder/build_spec.rb": 22.359564799000054,10552 "spec/lib/gitlab/usage/metric_definition_spec.rb": 7.329997178000212,10553 "spec/lib/gitlab/import_export/project/object_builder_spec.rb": 28.170483289000003,10554 "spec/models/ability_spec.rb": 20.82815157699997,10555 "spec/lib/backup/files_spec.rb": 16.309597444000246,10556 "spec/models/concerns/cascading_namespace_setting_attribute_spec.rb": 12.425990476999687,10557 "spec/lib/gitlab/import_export/import_export_equivalence_spec.rb": 28.046945380000125,10558 "spec/models/trending_project_spec.rb": 22.92225764900013,10559 "spec/uploaders/namespace_file_uploader_spec.rb": 7.531571780999911,10560 "spec/models/concerns/subscribable_spec.rb": 18.18253931800018,10561 "spec/finders/packages/nuget/package_finder_spec.rb": 11.797420357000192,10562 "spec/lib/banzai/pipeline/gfm_pipeline_spec.rb": 18.631998622000083,10563 "spec/workers/concerns/application_worker_spec.rb": 4.6888571079998655,10564 "spec/lib/gitlab/import_export/import_failure_service_spec.rb": 16.646482294999714,10565 "spec/models/ci/resource_group_spec.rb": 15.293027969999912,10566 "spec/workers/projects/after_import_worker_spec.rb": 12.58034102800002,10567 "spec/lib/gitlab/email/handler/create_issue_handler_spec.rb": 13.507268961000136,10568 "spec/models/ci/group_spec.rb": 12.699707180000132,10569 "spec/lib/gitlab/github_import/client_spec.rb": 4.89531034599986,10570 "spec/lib/gitlab/changelog/config_spec.rb": 9.998571165999692,10571 "spec/models/integrations/harbor_spec.rb": 9.786043974000222,10572 "spec/services/clusters/build_kubernetes_namespace_service_spec.rb": 13.049266309999894,10573 "spec/lib/bulk_imports/projects/pipelines/repository_bundle_pipeline_spec.rb": 11.847075822000079,10574 "spec/lib/gitlab/metrics/dashboard/url_spec.rb": 4.853644198999973,10575 "spec/models/terraform/state_spec.rb": 13.622550172000047,10576 "spec/services/groups/import_export/export_service_spec.rb": 12.188958528999592,10577 "spec/lib/gitlab/pagination/keyset/order_spec.rb": 5.596447619000173,10578 "spec/services/draft_notes/create_service_spec.rb": 13.05153756000027,10579 "spec/lib/container_registry/migration_spec.rb": 4.303970045999904,10580 "spec/services/container_expiration_policies/update_service_spec.rb": 8.206954930999927,10581 "spec/services/ci/after_requeue_job_service_spec.rb": 16.81713763400012,10582 "spec/helpers/ci/runners_helper_spec.rb": 6.588680720999946,10583 "spec/policies/design_management/design_policy_spec.rb": 4.688881060999847,10584 "spec/lib/gitlab/encoding_helper_spec.rb": 1.758620019999853,10585 "spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb": 1.9348510679997162,10586 "spec/lib/gitlab/redis/queues_spec.rb": 1.8107678460000898,10587 "spec/lib/gitlab/redis/trace_chunks_spec.rb": 1.6033506099997794,10588 "spec/views/notify/pipeline_success_email.text.erb_spec.rb": 9.94454535099976,10589 "spec/lib/gitlab/ci/build/rules_spec.rb": 2.485812399000224,10590 "spec/models/snippet_statistics_spec.rb": 5.261732752000171,10591 "spec/serializers/diff_file_base_entity_spec.rb": 6.303449659999842,10592 "spec/lib/gitlab/alert_management/payload/generic_spec.rb": 2.1378409249996366,10593 "spec/graphql/resolvers/environments_resolver_spec.rb": 9.144026996999855,10594 "spec/helpers/broadcast_messages_helper_spec.rb": 5.216635683999812,10595 "spec/services/metrics/dashboard/annotations/delete_service_spec.rb": 8.784795662000306,10596 "spec/models/board_group_recent_visit_spec.rb": 5.2280543940000825,10597 "spec/services/clusters/gcp/provision_service_spec.rb": 7.997522656000001,10598 "spec/models/customer_relations/organization_spec.rb": 3.0092673650001416,10599 "spec/lib/banzai/reference_redactor_spec.rb": 5.5355354130001615,10600 "spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb": 12.783623298999828,10601 "spec/services/ci/expire_pipeline_cache_service_spec.rb": 5.505897903999994,10602 "spec/lib/gitlab/ci/reports/test_case_spec.rb": 4.089519642000141,10603 "spec/finders/releases/evidence_pipeline_finder_spec.rb": 4.228270512000108,10604 "spec/policies/custom_emoji_policy_spec.rb": 3.7329762849999497,10605 "spec/workers/bulk_import_worker_spec.rb": 4.633159023999724,10606 "spec/tasks/gitlab/artifacts/check_rake_spec.rb": 5.104546242000197,10607 "spec/services/metrics/dashboard/transient_embed_service_spec.rb": 2.131738934999703,10608 "spec/views/projects/merge_requests/edit.html.haml_spec.rb": 6.512905769000099,10609 "spec/tasks/gettext_rake_spec.rb": 7.598360083999978,10610 "spec/models/concerns/sanitizable_spec.rb": 1.0494749280001088,10611 "spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb": 0.8326485200000207,10612 "spec/services/clusters/agents/create_service_spec.rb": 5.867674480000005,10613 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 1.4089284289998432,10614 "spec/lib/gitlab/slash_commands/presenters/deploy_spec.rb": 3.421410681999987,10615 "spec/lib/gitlab/issuable_metadata_spec.rb": 5.919083104999572,10616 "spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb": 1.7625330609998855,10617 "spec/tasks/gitlab/external_diffs_rake_spec.rb": 7.330621972999779,10618 "spec/finders/projects/prometheus/alerts_finder_spec.rb": 2.2713955760000317,10619 "spec/services/issue_links/destroy_service_spec.rb": 2.924737565000214,10620 "spec/models/loose_foreign_keys/deleted_record_spec.rb": 1.5313953059999221,10621 "spec/lib/api/entities/ci/job_request/dependency_spec.rb": 5.457669123999949,10622 "spec/lib/gitaly/server_spec.rb": 1.3716095330000826,10623 "spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb": 5.069555246000164,10624 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_deployed_to_production_spec.rb": 2.8130372980003813,10625 "spec/workers/new_issue_worker_spec.rb": 3.605107332999978,10626 "spec/lib/gitlab/pagination/offset_header_builder_with_controller_spec.rb": 3.1886899979999725,10627 "spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb": 2.0825140070001,10628 "spec/graphql/mutations/terraform/state/unlock_spec.rb": 2.0917399750001096,10629 "spec/experiments/ios_specific_templates_experiment_spec.rb": 2.192581235000034,10630 "spec/workers/external_service_reactive_caching_worker_spec.rb": 3.5163702919999196,10631 "spec/services/work_items/delete_task_service_spec.rb": 4.018032279000181,10632 "spec/lib/gitlab/utils/delegator_override/validator_spec.rb": 1.6805881389996102,10633 "spec/services/users/update_canonical_email_service_spec.rb": 0.8216811120000784,10634 "spec/rubocop/migration_helpers_spec.rb": 0.6930599050001547,10635 "spec/workers/background_migration_worker_spec.rb": 1.025222861000202,10636 "spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb": 0.7774527370002033,10637 "spec/workers/namespaces/schedule_aggregation_worker_spec.rb": 1.679376560000037,10638 "spec/models/network/graph_spec.rb": 5.694469858000048,10639 "spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb": 2.7874118210002052,10640 "spec/lib/gitlab/ci/config/entry/prefix_spec.rb": 1.0954146220001348,10641 "spec/lib/gitlab/github_import/representation/issue_event_spec.rb": 1.0333095490000233,10642 "spec/lib/gitlab/jira_import/base_importer_spec.rb": 2.4570692960000997,10643 "spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb": 2.5990428909999537,10644 "spec/initializers/net_http_patch_spec.rb": 0.897576473999834,10645 "spec/lib/gitlab/redis/hll_spec.rb": 1.1251471890000175,10646 "spec/lib/gitlab/import_export/base/object_builder_spec.rb": 2.8804709410001124,10647 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 1.8141269749999083,10648 "spec/services/concerns/exclusive_lease_guard_spec.rb": 0.6953854449998289,10649 "spec/models/note_diff_file_spec.rb": 3.773589444999743,10650 "spec/workers/projects/post_creation_worker_spec.rb": 4.7291017019997525,10651 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_created_spec.rb": 2.106814444000065,10652 "spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb": 2.4615762760004145,10653 "spec/graphql/resolvers/ci/group_runners_resolver_spec.rb": 1.8583825499999875,10654 "spec/lib/gitlab/access/branch_protection_spec.rb": 0.8288802510001005,10655 "spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb": 1.0146927910000159,10656 "spec/lib/gitlab/jira_import/issue_serializer_spec.rb": 2.47239347499999,10657 "spec/lib/gitlab/usage_data_queries_spec.rb": 0.94746252799996,10658 "spec/services/groups/auto_devops_service_spec.rb": 3.2414591019996806,10659 "spec/presenters/group_member_presenter_spec.rb": 2.379765423999743,10660 "spec/models/webauthn_registration_spec.rb": 0.5890861769998992,10661 "spec/lib/gitlab/ci/config/external/file/template_spec.rb": 1.1764406739998776,10662 "spec/lib/gitlab/slash_commands/issue_show_spec.rb": 2.7259735669999827,10663 "spec/services/packages/terraform_module/create_package_service_spec.rb": 1.7840380580000783,10664 "spec/graphql/types/admin/analytics/usage_trends/measurement_type_spec.rb": 1.2849786920000952,10665 "spec/lib/gitlab/lograge/custom_options_spec.rb": 1.3189808689999154,10666 "spec/routing/uploads_routing_spec.rb": 2.2166687919998367,10667 "spec/rubocop/cop/migration/drop_table_spec.rb": 0.9420470889999706,10668 "spec/models/packages/debian/group_architecture_spec.rb": 1.4621726330001366,10669 "spec/models/project_ci_cd_setting_spec.rb": 2.2630265970001346,10670 "spec/services/protected_tags/update_service_spec.rb": 1.880053418999978,10671 "spec/lib/gitlab/sample_data_template_spec.rb": 1.2053266510001777,10672 "spec/services/ci/create_pipeline_service/artifacts_spec.rb": 1.7689395600000353,10673 "spec/models/preloaders/environments/deployment_preloader_spec.rb": 2.815856518000146,10674 "spec/models/clusters/agents/group_authorization_spec.rb": 1.535496195000178,10675 "spec/serializers/user_entity_spec.rb": 1.4049712900000486,10676 "spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb": 2.302855731999898,10677 "spec/lib/error_tracking/stacktrace_builder_spec.rb": 0.766059148000295,10678 "spec/workers/gitlab/github_import/refresh_import_jid_worker_spec.rb": 2.583133572999941,10679 "spec/lib/gitlab/color_schemes_spec.rb": 0.47757388799982436,10680 "spec/lib/gitlab/metrics/prometheus_spec.rb": 1.8908314069999506,10681 "spec/graphql/types/invitation_interface_spec.rb": 0.6407473210001626,10682 "spec/workers/deployments/archive_in_project_worker_spec.rb": 1.262834075000228,10683 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 1.494819978999658,10684 "spec/models/error_tracking/client_key_spec.rb": 0.46496958999978233,10685 "spec/rubocop/cop/migration/background_migration_base_class_spec.rb": 0.3266698450001968,10686 "spec/graphql/types/alert_management/alert_type_spec.rb": 0.3765015500002846,10687 "spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb": 0.884465113999795,10688 "spec/rubocop/cop/api/base_spec.rb": 0.7092841140001838,10689 "spec/models/concerns/from_union_spec.rb": 0.3246907849998024,10690 "spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb": 2.8530944739995903,10691 "spec/graphql/types/metrics/dashboard_type_spec.rb": 0.2132606569998643,10692 "spec/lib/gitlab/graphql/loaders/batch_commit_loader_spec.rb": 1.8403878629997052,10693 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 0.3638168110001061,10694 "spec/rubocop/cop/code_reuse/serializer_spec.rb": 0.5440913719999116,10695 "spec/rubocop/cop/performance/active_record_subtransactions_spec.rb": 0.40231115699998554,10696 "spec/services/packages/debian/extract_changes_metadata_service_spec.rb": 1.5205890260003798,10697 "spec/lib/gitlab/background_migration_spec.rb": 0.6825613570003952,10698 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 2.2399259889998575,10699 "spec/services/resource_events/change_labels_service_spec.rb": 1.3823228420001215,10700 "spec/lib/gitlab/language_data_spec.rb": 0.2399893440001506,10701 "spec/serializers/ci/downloadable_artifact_entity_spec.rb": 1.9234201440003744,10702 "spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 1.5872477489997436,10703 "spec/models/integrations/pivotaltracker_spec.rb": 0.747437109999737,10704 "spec/models/concerns/from_intersect_spec.rb": 0.337653314000363,10705 "spec/presenters/packages/nuget/packages_versions_presenter_spec.rb": 2.3145967320001546,10706 "spec/services/terraform/states/trigger_destroy_service_spec.rb": 1.4235823270000765,10707 "spec/lib/banzai/filter/footnote_filter_spec.rb": 0.7594795690001774,10708 "spec/graphql/mutations/boards/lists/create_spec.rb": 1.8828615269999318,10709 "spec/lib/gitlab/memory/jemalloc_spec.rb": 0.6821500969999761,10710 "spec/services/error_tracking/base_service_spec.rb": 0.6565497289998348,10711 "spec/models/concerns/token_authenticatable_strategies/encryption_helper_spec.rb": 1.1259691499999462,10712 "spec/lib/gitlab/graphql/known_operations_spec.rb": 0.9299814890000562,10713 "spec/lib/gitlab/ci/build/rules/rule/clause_spec.rb": 0.5084398460003285,10714 "spec/views/projects/tree/show.html.haml_spec.rb": 1.900645575999988,10715 "spec/lib/gitlab/build_access_spec.rb": 1.5606999619999442,10716 "spec/policies/clusters/agent_policy_spec.rb": 1.7260662449998563,10717 "spec/models/analytics/cycle_analytics/project_value_stream_spec.rb": 0.9344993800000339,10718 "spec/services/releases/create_evidence_service_spec.rb": 1.1933334420000392,10719 "spec/lib/gitlab/database/migrations/observers/query_details_spec.rb": 0.26043325199998435,10720 "spec/lib/system_check/sidekiq_check_spec.rb": 0.48576608799976384,10721 "spec/rubocop/formatter/todo_formatter_spec.rb": 1.1011750510001548,10722 "spec/lib/gitlab/emoji_spec.rb": 0.6136631639997177,10723 "spec/rubocop/cop/migration/add_reference_spec.rb": 0.45038844199962114,10724 "spec/initializers/sidekiq_spec.rb": 0.37626178900018203,10725 "spec/rubocop/cop/default_scope_spec.rb": 0.7151040540002214,10726 "spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb": 1.4193020980001165,10727 "spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb": 0.7479991000000155,10728 "spec/services/bulk_imports/lfs_objects_export_service_spec.rb": 0.9713805350002076,10729 "spec/serializers/context_commits_diff_entity_spec.rb": 2.0071327050000036,10730 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb": 0.4275265840001339,10731 "spec/lib/gitlab/ci/config/entry/coverage_spec.rb": 0.6344595820000904,10732 "spec/lib/gitlab/git/diff_stats_collection_spec.rb": 0.8752162959999623,10733 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.6705224980000821,10734 "spec/lib/gitlab/graphql/generic_tracing_spec.rb": 0.28003922000016246,10735 "spec/finders/issuables/crm_contact_filter_spec.rb": 1.0850703329997486,10736 "spec/models/releases/evidence_spec.rb": 1.0194199600000502,10737 "spec/lib/gitlab/instrumentation/redis_spec.rb": 0.8104938129999937,10738 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.8386357899998984,10739 "spec/lib/gitlab/import_export/attribute_configuration_spec.rb": 0.5124591560002045,10740 "spec/models/user_mentions/commit_user_mention_spec.rb": 0.7047703150001325,10741 "spec/graphql/types/dependency_proxy/group_setting_type_spec.rb": 0.41789275499968426,10742 "spec/finders/repositories/changelog_tag_finder_spec.rb": 0.6295691420000367,10743 "spec/lib/gitlab/import_export/import_export_spec.rb": 0.5828112280000823,10744 "spec/serializers/evidences/release_entity_spec.rb": 0.745857831000194,10745 "spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb": 0.5521931399998721,10746 "spec/lib/gitlab/import_formatter_spec.rb": 0.4240347939999083,10747 "spec/graphql/types/notes/note_type_spec.rb": 0.8006066849998206,10748 "spec/lib/api/entities/ci/job_request/port_spec.rb": 0.3043331079998097,10749 "spec/graphql/types/ci/job_type_spec.rb": 0.24675404299978254,10750 "spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb": 0.2739537309998923,10751 "spec/models/group/crm_settings_spec.rb": 0.5690687689998413,10752 "spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb": 0.8955107940000744,10753 "spec/rubocop/cop/filename_length_spec.rb": 0.4471691609996924,10754 "spec/workers/database/partition_management_worker_spec.rb": 0.5707770989997698,10755 "spec/lib/api/entities/plan_limit_spec.rb": 0.38626264899994567,10756 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/none_spec.rb": 0.6946256950000134,10757 "spec/graphql/types/work_item_type_spec.rb": 0.593259585999931,10758 "spec/graphql/types/customer_relations/organization_type_spec.rb": 0.37165891000040574,10759 "spec/graphql/types/alert_management/integration_type_spec.rb": 0.3412381729999652,10760 "spec/models/concerns/blocks_unsafe_serialization_spec.rb": 0.25122360300019864,10761 "spec/lib/gitlab/tcp_checker_spec.rb": 0.7843124859996351,10762 "spec/lib/gitlab/slash_commands/presenters/error_spec.rb": 0.36113591200000883,10763 "spec/lib/gitlab/ci/status/group/common_spec.rb": 0.35922451099986574,10764 "spec/lib/gitlab/webpack/graphql_known_operations_spec.rb": 0.7677781279999181,10765 "spec/lib/system_check/incoming_email_check_spec.rb": 0.666526119000082,10766 "spec/rubocop/cop/gitlab/bulk_insert_spec.rb": 0.7100810840001941,10767 "spec/lib/api/validations/validators/project_portable_spec.rb": 0.25029479300019375,10768 "spec/lib/gitlab/cross_project_access/check_collection_spec.rb": 0.43323290299986184,10769 "spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb": 0.8021206039998106,10770 "spec/lib/gitlab/git/gitmodules_parser_spec.rb": 0.7288486120000925,10771 "spec/models/badges/group_badge_spec.rb": 0.2176082169999063,10772 "spec/helpers/git_helper_spec.rb": 0.5170736339996438,10773 "spec/lib/gitlab/metrics/exporter/gc_request_middleware_spec.rb": 0.23252070499984256,10774 "spec/lib/gitlab/auth/u2f_webauthn_converter_spec.rb": 0.34121564299994134,10775 "spec/lib/gitlab/database/sha_attribute_spec.rb": 0.4664298300003793,10776 "spec/helpers/admin/deploy_key_helper_spec.rb": 0.25329235300023356,10777 "spec/graphql/resolvers/ci/runner_status_resolver_spec.rb": 0.22766726500003642,10778 "spec/lib/gitlab/middleware/request_context_spec.rb": 0.23303389500006233,10779 "spec/serializers/evidences/issue_entity_spec.rb": 0.22138207599982707,10780 "spec/workers/todos_destroyer/private_features_worker_spec.rb": 0.40658439600019847,10781 "spec/serializers/evidences/evidence_serializer_spec.rb": 0.345269763000033,10782 "spec/graphql/types/ci_configuration/sast/entity_input_type_spec.rb": 0.4716567489999761,10783 "spec/lib/gitlab/metrics/delta_spec.rb": 0.30252744799963693,10784 "spec/lib/gitlab/serializer/ci/variables_spec.rb": 0.22367698700008987,10785 "spec/serializers/detailed_status_entity_spec.rb": 0.5857795860001715,10786 "spec/rubocop/cop/gitlab/intersect_spec.rb": 0.351829202999852,10787 "spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb": 0.1006908790000125,10788 "spec/models/preloaders/group_root_ancestor_preloader_spec.rb": 1.198664890999680210790Knapsack global time execution for tests: 36m 49s10791Pending: (Failures listed here are expected and do not affect your suite's status)10792 1) Milestone behaves like a timebox modules with a project behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank10793 # No reason given10794 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910795 2) Milestone behaves like a timebox modules with a project behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank10796 # No reason given10797 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710798 3) Milestone behaves like a timebox modules with a group behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank10799 # No reason given10800 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910801 4) Milestone behaves like a timebox modules with a group behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank10802 # No reason given10803 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710804 5) NamespaceFileUploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 10805 # No pattern provided, skipping.10806 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810807 6) NamespaceFileUploader behaves like builds correct paths #work_dir behaves like matches the method pattern 10808 # No pattern provided, skipping.10809 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810810 7) NamespaceFileUploader behaves like builds correct paths #relative_path is relative10811 # Path not set, skipping.10812 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010813 8) NamespaceFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 10814 # No pattern provided, skipping.10815 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810816 9) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 10817 # No pattern provided, skipping.10818 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810819 10) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 10820 # No pattern provided, skipping.10821 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810822 11) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths #relative_path is relative10823 # Path not set, skipping.10824 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:4010825 12) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 10826 # No pattern provided, skipping.10827 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810828 13) NamespaceFileUploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 10829 # No pattern provided, skipping.10830 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:810831Finished in 36 minutes 53 seconds (files took 1 minute 22.18 seconds to load)108324767 examples, 0 failures, 13 pending10833RSpec exited with 0.10834No examples to retry, congrats!10836Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-14 due to policy10837Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-14 due to policy10839Uploading artifacts...10840coverage/: found 5 matching files and directories 10841crystalball/: found 2 matching files and directories 10842deprecations/: found 3 matching files and directories 10843knapsack/: found 3 matching files and directories 10844rspec/: found 8 matching files and directories 10845WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 10846log/*.log: found 21 matching files and directories 10847WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2688594992/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10848WARNING: Retrying... context=artifacts-uploader error=request redirected10849Uploading artifacts as "archive" to coordinator... 201 Created id=2688594992 responseStatus=201 Created token=ryzEGfAU10850Uploading artifacts...10851rspec/junit_rspec.xml: found 1 matching files and directories 10852WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2688594992/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10853WARNING: Retrying... context=artifacts-uploader error=request redirected10854Uploading artifacts as "junit" to coordinator... 201 Created id=2688594992 responseStatus=201 Created token=ryzEGfAU10856Job succeeded