rspec unit pg12 23/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on green-4.shared-gitlab-org.runners-manager.gitlab.com/default x5QiHUKw3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:31c3beb3b8968af162019219a074f3d4c1a5b1ab319ec86668229ad0a7ed0e4f for postgres:12 with digest postgres@sha256:63a045745aec8457cb208e929118b557e95e1b1327e2ad29f14174054be5d56e ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:f30aed8202b4ddc9ed0c833f7bd2b90470dc3a438a51b6567e9955adfe224051 for redis:6.0-alpine with digest redis@sha256:fcf49f0ab799e3b7217aab710606e888b190bbf3c3a81b5c912dd8ef351d1f69 ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-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.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...18Running on runner-x5qihukw-project-278964-concurrent-0 via runner-x5qihukw-shared-gitlab-org-1670487745-ef32e59c...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 163372, done. 25remote: Counting objects: 100% (163372/163372), done. 26remote: Compressing objects: 100% (94785/94785), done. 27remote: Total 163372 (delta 84810), reused 119124 (delta 63094), pack-reused 0 28Receiving objects: 100% (163372/163372), 121.93 MiB | 26.29 MiB/s, done.29Resolving deltas: 100% (84810/84810), done.31 * [new ref] refs/pipelines/716916172 -> refs/pipelines/71691617232Checking out 8f189ac6 as refs/merge-requests/106378/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3443740837)...44Downloading artifacts from coordinator... ok id=3443740837 responseStatus=200 OK token=L3WCakpN45Downloading artifacts for detect-tests (3443740849)...46Downloading artifacts from coordinator... ok id=3443740849 responseStatus=200 OK token=L3WCakpN47Downloading artifacts for retrieve-tests-metadata (3443740854)...48Downloading artifacts from coordinator... ok id=3443740854 responseStatus=200 OK token=L3WCakpN49Downloading artifacts for setup-test-env (3443740841)...50Downloading artifacts from coordinator... ok id=3443740841 responseStatus=200 OK token=L3WCakpN52Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-106-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.18-node-16.14-postgresql-12@sha256:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh687Using decomposed database config (config/database.yml.decomposed-postgresql)688$ setup_db_user_only689CREATE ROLE690GRANT691==> 'setup_db_user_only' succeeded in 0 seconds.692$ bundle exec rake db:drop db:create db:schema:load db:migrate693Dropped database 'gitlabhq_test'694Dropped database 'gitlabhq_test_ci'695Dropped database 'gitlabhq_geo_test'696Created database 'gitlabhq_test'697Created database 'gitlabhq_test_ci'698Created database 'gitlabhq_geo_test'699==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 42 seconds.700$ setup_db_praefect701SELECT pg_catalog.set_config('search_path', '', false);702CREATE DATABASE praefect_test ENCODING 'UTF8';703==> 'setup_db_praefect' succeeded in 0 seconds.704$ source ./scripts/rspec_helpers.sh705$ run_timed_command "gem install knapsack --no-document"706$ gem install knapsack --no-document707Successfully installed knapsack-4.0.07081 gem installed709==> 'gem install knapsack --no-document' succeeded in 1 seconds.710$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"820$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"821SKIP_FLAKY_TESTS_AUTOMATICALLY: true822RETRY_FAILED_TESTS_IN_NEW_PROCESS: true823KNAPSACK_GENERATE_REPORT: true824FLAKY_RSPEC_GENERATE_REPORT: true825KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb826KNAPSACK_LOG_LEVEL: debug827KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_23_28_report.json828FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json829FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_23_28_report.json830NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_23_28_report.json831SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_23_28_report.txt832RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_23_28_report.txt833CRYSTALBALL: 834Knapsack node specs:835spec/tasks/gitlab/backup_rake_spec.rb836spec/models/packages/package_spec.rb837spec/models/project_team_spec.rb838spec/policies/environment_policy_spec.rb839spec/services/projects/fork_service_spec.rb840spec/lib/gitlab/background_migration/job_coordinator_spec.rb841spec/lib/object_storage/direct_upload_spec.rb842spec/models/members/project_member_spec.rb843spec/lib/gitlab/kubernetes/kube_client_spec.rb844spec/workers/emails_on_push_worker_spec.rb845spec/models/environment_status_spec.rb846spec/lib/gitlab/ci/status/bridge/factory_spec.rb847spec/lib/gitlab/contributions_calendar_spec.rb848spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb849spec/lib/gitlab/background_migration/migrate_project_taggings_context_from_tags_to_topics_spec.rb850spec/lib/gitlab/project_template_spec.rb851spec/services/snippets/destroy_service_spec.rb852spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb853spec/models/projects/build_artifacts_size_refresh_spec.rb854spec/lib/sbom/package_url_spec.rb855spec/policies/packages/policies/project_policy_spec.rb856spec/lib/gitlab/background_migration/drop_invalid_security_findings_spec.rb857spec/models/wiki_page/meta_spec.rb858spec/finders/releases_finder_spec.rb859spec/graphql/resolvers/board_list_issues_resolver_spec.rb860spec/models/integrations/webex_teams_spec.rb861spec/views/projects/_home_panel.html.haml_spec.rb862spec/lib/gitlab/relative_positioning/range_spec.rb863spec/lib/gitlab/sql/pattern_spec.rb864spec/finders/packages/nuget/package_finder_spec.rb865spec/services/clusters/create_service_spec.rb866spec/services/metrics/dashboard/annotations/create_service_spec.rb867spec/serializers/diffs_entity_spec.rb868spec/services/search/group_service_spec.rb869spec/presenters/clusters/cluster_presenter_spec.rb870spec/finders/projects/members/effective_access_level_finder_spec.rb871spec/services/merge_requests/remove_approval_service_spec.rb872spec/graphql/mutations/issues/set_confidential_spec.rb873spec/initializers/lograge_spec.rb874spec/lib/gitlab/middleware/read_only_spec.rb875spec/views/notify/pipeline_fixed_email.text.erb_spec.rb876spec/lib/gitlab/email/receiver_spec.rb877spec/services/projects/open_issues_count_service_spec.rb878spec/models/ci/build_trace_chunks/fog_spec.rb879spec/models/packages/debian/project_component_file_spec.rb880spec/services/files/update_service_spec.rb881spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb882spec/lib/sidebars/projects/menus/settings_menu_spec.rb883spec/lib/gitlab/ci/config/entry/cache_spec.rb884spec/services/users/approve_service_spec.rb885spec/graphql/resolvers/container_repositories_resolver_spec.rb886spec/lib/gitlab/shell_spec.rb887spec/lib/sidebars/projects/menus/analytics_menu_spec.rb888spec/workers/merge_worker_spec.rb889spec/lib/gitlab/runtime_spec.rb890spec/lib/feature/definition_spec.rb891spec/models/design_management/design_collection_spec.rb892spec/lib/gitlab/ci/config/entry/policy_spec.rb893spec/lib/gitlab/slash_commands/run_spec.rb894spec/lib/gitlab/chat/output_spec.rb895spec/lib/gitlab/harbor/query_spec.rb896spec/lib/gitlab/ci/reports/test_report_spec.rb897spec/workers/ci/delete_unit_tests_worker_spec.rb898spec/services/personal_access_tokens/create_service_spec.rb899spec/graphql/mutations/issues/set_locked_spec.rb900spec/services/projects/download_service_spec.rb901spec/lib/gitlab/authorized_keys_spec.rb902spec/lib/gitlab/ci/build/step_spec.rb903spec/policies/upload_policy_spec.rb904spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb905spec/services/error_tracking/issue_details_service_spec.rb906spec/services/error_tracking/list_projects_service_spec.rb907spec/policies/personal_access_token_policy_spec.rb908spec/lib/gitlab/audit/type/definition_spec.rb909spec/lib/banzai/filter/attributes_filter_spec.rb910spec/models/ci/job_token/scope_spec.rb911spec/models/packages/debian/file_entry_spec.rb912spec/finders/merge_requests/by_approvals_finder_spec.rb913spec/uploaders/lfs_object_uploader_spec.rb914spec/lib/gitlab/fogbugz_import/importer_spec.rb915spec/graphql/resolvers/releases_resolver_spec.rb916spec/lib/bitbucket/representation/issue_spec.rb917spec/serializers/environment_status_entity_spec.rb918spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb919spec/views/projects/settings/merge_requests/show.html.haml_spec.rb920spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb921spec/finders/fork_targets_finder_spec.rb922spec/models/concerns/encrypted_user_password_spec.rb923spec/lib/gitlab/cross_project_access/check_info_spec.rb924spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb925spec/models/issue_assignee_spec.rb926spec/models/concerns/sha_attribute_spec.rb927spec/services/users/activity_service_spec.rb928spec/rubocop/cop/lint/last_keyword_argument_spec.rb929spec/lib/gitlab/popen/runner_spec.rb930spec/lib/gitlab/slash_commands/presenters/access_spec.rb931spec/lib/gitlab/utils/json_size_estimator_spec.rb932spec/finders/groups/user_groups_finder_spec.rb933spec/models/project_deploy_token_spec.rb934spec/services/security/ci_configuration/sast_parser_service_spec.rb935spec/services/ci/create_pipeline_service/include_spec.rb936spec/helpers/recaptcha_helper_spec.rb937spec/policies/custom_emoji_policy_spec.rb938spec/lib/gitlab/audit/null_author_spec.rb939spec/services/groups/merge_requests_count_service_spec.rb940spec/lib/gitlab/background_migration/disable_legacy_open_source_licence_for_recent_public_projects_spec.rb941spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb942spec/lib/gitlab/database/type/symbolized_jsonb_spec.rb943spec/services/service_desk_settings/update_service_spec.rb944spec/workers/reactive_caching_worker_spec.rb945spec/services/clusters/aws/fetch_credentials_service_spec.rb946spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb947spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb948spec/lib/bitbucket_server/connection_spec.rb949spec/rubocop/cop/rspec/top_level_describe_path_spec.rb950spec/models/project_ci_cd_setting_spec.rb951spec/lib/gitlab/background_migration/backfill_project_namespace_details_spec.rb952spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb953spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb954spec/lib/gitlab/ci/config/entry/coverage_spec.rb955spec/lib/gitlab/prometheus/internal_spec.rb956spec/models/concerns/ignorable_columns_spec.rb957spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb958spec/policies/container_expiration_policy_policy_spec.rb959spec/models/concerns/limitable_spec.rb960spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb961spec/graphql/graphql_triggers_spec.rb962spec/graphql/resolvers/group_members_resolver_spec.rb963spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb964spec/views/projects/hooks/index.html.haml_spec.rb965spec/lib/api/entities/project_import_status_spec.rb966spec/helpers/milestones_helper_spec.rb967spec/lib/gitlab/seeders/ci/daily_build_group_report_result_spec.rb968spec/graphql/types/repository_type_spec.rb969spec/workers/create_pipeline_worker_spec.rb970spec/views/projects/branches/index.html.haml_spec.rb971spec/lib/banzai/filter/image_lazy_load_filter_spec.rb972spec/graphql/resolvers/container_repository_tags_resolver_spec.rb973spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb974spec/services/bulk_imports/archive_extraction_service_spec.rb975spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb976spec/workers/namespaces/update_root_statistics_worker_spec.rb977spec/serializers/member_serializer_spec.rb978spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb979spec/presenters/releases/link_presenter_spec.rb980spec/graphql/mutations/branches/create_spec.rb981spec/lib/gitlab/database/load_balancing/configuration_spec.rb982spec/models/token_with_iv_spec.rb983spec/lib/gitlab/auth/atlassian/identity_linker_spec.rb984spec/services/ci/job_artifacts/delete_service_spec.rb985spec/serializers/web_ide_terminal_serializer_spec.rb986spec/initializers/validate_database_config_spec.rb987spec/models/cycle_analytics/project_level_stage_adapter_spec.rb988spec/lib/gitlab/hook_data/project_member_builder_spec.rb989spec/lib/gitlab/lets_encrypt/order_spec.rb990spec/graphql/resolvers/ci/template_resolver_spec.rb991spec/graphql/types/issue_sort_enum_spec.rb992spec/models/users/namespace_commit_email_spec.rb993spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb994spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb995spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb996spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb997spec/lib/gitlab/ci/templates/kaniko_gitlab_ci_yaml_spec.rb998spec/graphql/types/work_items/notes_filter_type_enum_spec.rb999spec/models/integrations/external_wiki_spec.rb1000spec/services/google_cloud/fetch_google_ip_list_service_spec.rb1001spec/workers/database/batched_background_migration/ci_execution_worker_spec.rb1002spec/validators/qualified_domain_array_validator_spec.rb1003spec/lib/gitlab/database/background_migration/health_status_spec.rb1004spec/serializers/import/provider_repo_serializer_spec.rb1005spec/lib/gitlab/github_import/markdown/attachment_spec.rb1006spec/models/concerns/nullify_if_blank_spec.rb1007spec/lib/gitlab/graphql/limit/field_call_count_spec.rb1008spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb1009spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb1010spec/lib/gitlab/health_checks/gitaly_check_spec.rb1011spec/initializers/carrierwave_patch_spec.rb1012spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb1013spec/lib/api/helpers/graphql_helpers_spec.rb1014spec/serializers/blob_entity_spec.rb1015spec/lib/banzai/filter/absolute_link_filter_spec.rb1016spec/finders/issuables/crm_contact_filter_spec.rb1017spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb1018spec/services/packages/helm/extract_file_metadata_service_spec.rb1019spec/finders/packages/group_or_project_package_finder_spec.rb1020spec/models/integrations/pivotaltracker_spec.rb1021spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb1022spec/helpers/sourcegraph_helper_spec.rb1023spec/lib/gitlab/git/diff_stats_collection_spec.rb1024spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb1025spec/graphql/types/award_emojis/award_emoji_type_spec.rb1026spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb1027spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb1028spec/models/concerns/from_except_spec.rb1029spec/lib/gitlab/config/entry/boolean_spec.rb1030spec/lib/banzai/pipeline/emoji_pipeline_spec.rb1031spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb1032spec/lib/gitlab/app_json_logger_spec.rb1033spec/lib/gitlab/usage_data_counters/search_counter_spec.rb1034spec/rubocop/cop/gitlab/bulk_insert_spec.rb1035spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb1036spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb1037spec/graphql/types/projects/topic_type_spec.rb1038spec/graphql/types/ci/job_kind_enum_spec.rb1039spec/rubocop/cop/qa/selector_usage_spec.rb1040spec/initializers/rdoc_segfault_patch_spec.rb1041spec/presenters/key_presenter_spec.rb1042spec/lib/gitlab/ci_access_spec.rb1043spec/lib/gitlab/kubernetes/pod_cmd_spec.rb1044spec/graphql/types/work_items/widget_type_enum_spec.rb1045spec/rubocop/cop/rspec/htt_party_basic_auth_spec.rb1046spec/policies/instance_metadata_policy_spec.rb1047spec/serializers/ci/codequality_mr_diff_report_serializer_spec.rb1048spec/models/namespaces/user_namespace_spec.rb1049spec/models/concerns/faster_cache_keys_spec.rb1050spec/dependencies/omniauth_saml_spec.rb1051spec/graphql/types/ci/config_variable_type_spec.rb1052spec/graphql/types/branch_protections/push_access_level_type_spec.rb1053spec/services/ci/runners/unregister_runner_service_spec.rb1054spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb1055spec/helpers/export_helper_spec.rb1056Filter specs:1057Running specs:1058Running all node tests without filter1059spec/tasks/gitlab/backup_rake_spec.rb1060spec/models/packages/package_spec.rb1061spec/models/project_team_spec.rb1062spec/policies/environment_policy_spec.rb1063spec/services/projects/fork_service_spec.rb1064spec/lib/gitlab/background_migration/job_coordinator_spec.rb1065spec/lib/object_storage/direct_upload_spec.rb1066spec/models/members/project_member_spec.rb1067spec/lib/gitlab/kubernetes/kube_client_spec.rb1068spec/workers/emails_on_push_worker_spec.rb1069spec/models/environment_status_spec.rb1070spec/lib/gitlab/ci/status/bridge/factory_spec.rb1071spec/lib/gitlab/contributions_calendar_spec.rb1072spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb1073spec/lib/gitlab/background_migration/migrate_project_taggings_context_from_tags_to_topics_spec.rb1074spec/lib/gitlab/project_template_spec.rb1075spec/services/snippets/destroy_service_spec.rb1076spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb1077spec/models/projects/build_artifacts_size_refresh_spec.rb1078spec/lib/sbom/package_url_spec.rb1079spec/policies/packages/policies/project_policy_spec.rb1080spec/lib/gitlab/background_migration/drop_invalid_security_findings_spec.rb1081spec/models/wiki_page/meta_spec.rb1082spec/finders/releases_finder_spec.rb1083spec/graphql/resolvers/board_list_issues_resolver_spec.rb1084spec/models/integrations/webex_teams_spec.rb1085spec/views/projects/_home_panel.html.haml_spec.rb1086spec/lib/gitlab/relative_positioning/range_spec.rb1087spec/lib/gitlab/sql/pattern_spec.rb1088spec/finders/packages/nuget/package_finder_spec.rb1089spec/services/clusters/create_service_spec.rb1090spec/services/metrics/dashboard/annotations/create_service_spec.rb1091spec/serializers/diffs_entity_spec.rb1092spec/services/search/group_service_spec.rb1093spec/presenters/clusters/cluster_presenter_spec.rb1094spec/finders/projects/members/effective_access_level_finder_spec.rb1095spec/services/merge_requests/remove_approval_service_spec.rb1096spec/graphql/mutations/issues/set_confidential_spec.rb1097spec/initializers/lograge_spec.rb1098spec/lib/gitlab/middleware/read_only_spec.rb1099spec/views/notify/pipeline_fixed_email.text.erb_spec.rb1100spec/lib/gitlab/email/receiver_spec.rb1101spec/services/projects/open_issues_count_service_spec.rb1102spec/models/ci/build_trace_chunks/fog_spec.rb1103spec/models/packages/debian/project_component_file_spec.rb1104spec/services/files/update_service_spec.rb1105spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb1106spec/lib/sidebars/projects/menus/settings_menu_spec.rb1107spec/lib/gitlab/ci/config/entry/cache_spec.rb1108spec/services/users/approve_service_spec.rb1109spec/graphql/resolvers/container_repositories_resolver_spec.rb1110spec/lib/gitlab/shell_spec.rb1111spec/lib/sidebars/projects/menus/analytics_menu_spec.rb1112spec/workers/merge_worker_spec.rb1113spec/lib/gitlab/runtime_spec.rb1114spec/lib/feature/definition_spec.rb1115spec/models/design_management/design_collection_spec.rb1116spec/lib/gitlab/ci/config/entry/policy_spec.rb1117spec/lib/gitlab/slash_commands/run_spec.rb1118spec/lib/gitlab/chat/output_spec.rb1119spec/lib/gitlab/harbor/query_spec.rb1120spec/lib/gitlab/ci/reports/test_report_spec.rb1121spec/workers/ci/delete_unit_tests_worker_spec.rb1122spec/services/personal_access_tokens/create_service_spec.rb1123spec/graphql/mutations/issues/set_locked_spec.rb1124spec/services/projects/download_service_spec.rb1125spec/lib/gitlab/authorized_keys_spec.rb1126spec/lib/gitlab/ci/build/step_spec.rb1127spec/policies/upload_policy_spec.rb1128spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb1129spec/services/error_tracking/issue_details_service_spec.rb1130spec/services/error_tracking/list_projects_service_spec.rb1131spec/policies/personal_access_token_policy_spec.rb1132spec/lib/gitlab/audit/type/definition_spec.rb1133spec/lib/banzai/filter/attributes_filter_spec.rb1134spec/models/ci/job_token/scope_spec.rb1135spec/models/packages/debian/file_entry_spec.rb1136spec/finders/merge_requests/by_approvals_finder_spec.rb1137spec/uploaders/lfs_object_uploader_spec.rb1138spec/lib/gitlab/fogbugz_import/importer_spec.rb1139spec/graphql/resolvers/releases_resolver_spec.rb1140spec/lib/bitbucket/representation/issue_spec.rb1141spec/serializers/environment_status_entity_spec.rb1142spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb1143spec/views/projects/settings/merge_requests/show.html.haml_spec.rb1144spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb1145spec/finders/fork_targets_finder_spec.rb1146spec/models/concerns/encrypted_user_password_spec.rb1147spec/lib/gitlab/cross_project_access/check_info_spec.rb1148spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb1149spec/models/issue_assignee_spec.rbKnapsack report generator started!1150Run options: exclude {:quarantine=>true, :level=>"migration"}1151==> Starting Gitaly set up...1152==> Starting GitLab Elasticsearch Indexer set up...1153Test environment set up in 1.14559425 seconds1154gitlab:app namespace rake task1155 lock parallel backups1156 when a process is running1157 exits the new process1158 when no processes are running1159 tasks_name: ["main_db", "ci_db"], rake_task: "gitlab:backup:db:restore"1160 locks the PID file1161 deletes the PID file and logs a message1162 tasks_name: "repositories", rake_task: "gitlab:backup:repo:restore"1163 locks the PID file1164 deletes the PID file and logs a message1165 tasks_name: "builds", rake_task: "gitlab:backup:builds:restore"1166 locks the PID file1167 deletes the PID file and logs a message1168 tasks_name: "uploads", rake_task: "gitlab:backup:uploads:restore"1169 locks the PID file1170 deletes the PID file and logs a message1171 tasks_name: "artifacts", rake_task: "gitlab:backup:artifacts:restore"1172 locks the PID file1173 deletes the PID file and logs a message1174 tasks_name: "pages", rake_task: "gitlab:backup:pages:restore"1175 locks the PID file1176 deletes the PID file and logs a message1177 tasks_name: "lfs", rake_task: "gitlab:backup:lfs:restore"1178 locks the PID file1179 deletes the PID file and logs a message1180 tasks_name: "terraform_state", rake_task: "gitlab:backup:terraform_state:restore"1181 locks the PID file1182 deletes the PID file and logs a message1183 tasks_name: "registry", rake_task: "gitlab:backup:registry:restore"1184 locks the PID file1185 deletes the PID file and logs a message1186 tasks_name: "packages", rake_task: "gitlab:backup:packages:restore"1187 locks the PID file1188 deletes the PID file and logs a message1189 backup_restore1190 with gitlab version1191 when restore matches gitlab version1192 invokes restoration on match1193 when the restore directory is not empty1194 removes stale data1195 when the backup is restored1196 restores the data1197 backup1198 with specific backup tasks1199 prints a progress message to stdout12002022-12-08 10:46:29 UTC -- Dumping main_database ... [SKIPPED]12012022-12-08 10:46:29 UTC -- Dumping ci_database ... [SKIPPED]12022022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12032022-12-08 10:46:29 UTC -- Dumping repositories ... 1204{"command":"create","gl_project_path":"namespace5/project4","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.git","storage_name":"default","time":"2022-12-08T10:46:29.215Z"}1205{"command":"create","gl_project_path":"namespace5/project4.wiki","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.wiki.git","storage_name":"default","time":"2022-12-08T10:46:29.222Z"}1206{"command":"create","error":"manager: repository empty: repository skipped","gl_project_path":"namespace5/project4.wiki","level":"warning","msg":"skipped create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.wiki.git","storage_name":"default","time":"2022-12-08T10:46:29.228Z"}1207{"command":"create","gl_project_path":"namespace5/project4","level":"info","msg":"started create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.design.git","storage_name":"default","time":"2022-12-08T10:46:29.228Z"}1208{"command":"create","error":"manager: repository empty: repository skipped","gl_project_path":"namespace5/project4","level":"warning","msg":"skipped create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.design.git","storage_name":"default","time":"2022-12-08T10:46:29.231Z"}1209{"command":"create","gl_project_path":"namespace5/project4","level":"info","msg":"completed create","relative_path":"@hashed/ef/2d/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.git","storage_name":"default","time":"2022-12-08T10:46:29.382Z"}12102022-12-08 10:46:29 UTC -- Dumping repositories ... done12112022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12122022-12-08 10:46:29 UTC -- Dumping uploads ... 12132022-12-08 10:46:29 UTC -- Dumping uploads ... done12142022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12152022-12-08 10:46:29 UTC -- Dumping builds ... 12162022-12-08 10:46:29 UTC -- Dumping builds ... done12172022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12182022-12-08 10:46:29 UTC -- Dumping artifacts ... 12192022-12-08 10:46:29 UTC -- Dumping artifacts ... done12202022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12212022-12-08 10:46:29 UTC -- Dumping pages ... 12222022-12-08 10:46:29 UTC -- Dumping pages ... done12232022-12-08 10:46:29 +0000 -- Deleting backup and restore lock file12242022-12-08 10:46:30 UTC -- Dumping lfs objects ... 12252022-12-08 10:46:30 UTC -- Dumping lfs objects ... done12262022-12-08 10:46:30 +0000 -- Deleting backup and restore lock file12272022-12-08 10:46:30 UTC -- Dumping terraform states ... 12282022-12-08 10:46:30 UTC -- Dumping terraform states ... done12292022-12-08 10:46:30 +0000 -- Deleting backup and restore lock file12302022-12-08 10:46:30 UTC -- Dumping container registry images ... 12312022-12-08 10:46:30 UTC -- Dumping container registry images ... done12322022-12-08 10:46:30 +0000 -- Deleting backup and restore lock file12332022-12-08 10:46:30 UTC -- Dumping packages ... 12342022-12-08 10:46:30 UTC -- Dumping packages ... done12352022-12-08 10:46:30 +0000 -- Deleting backup and restore lock file1236 logs the progress to log file1237 backup create fails1238 backup_class: Backup::Database, rake_task: "gitlab:backup:db:create", error: #<Backup::DatabaseBackupError: Backup::DatabaseBackupError>1239 raises an error with message1240 backup_class: Backup::Files, rake_task: "gitlab:backup:builds:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1241 raises an error with message1242 backup_class: Backup::Files, rake_task: "gitlab:backup:uploads:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1243 raises an error with message1244 backup_class: Backup::Files, rake_task: "gitlab:backup:artifacts:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1245 raises an error with message1246 backup_class: Backup::Files, rake_task: "gitlab:backup:pages:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1247 raises an error with message1248 backup_class: Backup::Files, rake_task: "gitlab:backup:lfs:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1249 raises an error with message1250 backup_class: Backup::Files, rake_task: "gitlab:backup:registry:create", error: #<Backup::FileBackupError: Backup::FileBackupError>1251 raises an error with message1252 with tar creation1253 sets correct permissions on the tar contents1254 deletes temp directories1255 with archive file permissions1256 sets correct permissions on the tar file1257 with custom archive_permissions1258 uses the custom permissions1259 when registry is disabled1260 does not create registry.tar.gz1261 with multiple repository storages1262 with no concurrency1263 behaves like includes repositories in all repository storages1264 aggregate_failures1265 with concurrency1266 behaves like includes repositories in all repository storages1267 aggregate_failures1268 when REPOSITORIES_STORAGES is set1269 includes repositories in default repository storage1270 with concurrency settings1271 passes through concurrency environment variables1272 when CRON env is set1273 does not output to stdout1274 skipping items in a backup1275 does not contain repositories and uploads1276 does not invoke restore of repositories and uploads1277 skipping tar archive creation1278 created files with backup content and no tar archive1279 those component files can be restored from1280 Human Readable Backup Name1281 name has human readable time1282Packages::Package1283 behaves like having unique enum values1284 has unique values in "package_type"1285 has unique values in "status"1286 relationships1287 is expected to belong to project required: false1288 is expected to belong to creator required: false1289 is expected to have many package_files dependent => destroy1290 is expected to have many dependency_links inverse_of => package1291 is expected to have many tags inverse_of => package1292 is expected to have many build_infos inverse_of => package1293 is expected to have one conan_metadatum inverse_of => package1294 is expected to have one maven_metadatum inverse_of => package1295 is expected to have one debian_publication class_name => Packages::Debian::Publication inverse_of => package1296 is expected to have one debian_distribution class_name => Packages::Debian::ProjectDistribution through debian_publication source => distribution inverse_of => packages1297 is expected to have one nuget_metadatum inverse_of => package1298 is expected to have one rubygems_metadatum inverse_of => package1299 is expected to have one npm_metadatum inverse_of => package1300 is expected to have one rpm_metadatum inverse_of => package1301 .with_debian_codename1302 is expected to contain exactly #<Packages::Package id: 1, project_id: 34, created_at: "2022-12-08 10:50:00.967407322 +0000", updated...ersion: "1.0-1", package_type: "debian", creator_id: 34, status: "default", last_downloaded_at: nil>1303 .with_composer_target1304 selects packages with the specified sha1305 .sort_by_attribute1306 behaves like package sorting by attribute1307 sorting by name1308 ascending order1309 is expected to eq [#<Packages::Package id: 5, project_id: 39, created_at: "2022-12-08 10:50:03.741361188 +0000", update...ersion: "1.1.1", package_type: "maven", creator_id: 39, status: "default", last_downloaded_at: nil>]1310 descending order1311 is expected to eq [#<Packages::Package id: 12, project_id: 39, created_at: "2022-12-07 10:50:04.000000000 +0000", updat... version: "3.1.0", package_type: "npm", creator_id: 39, status: "default", last_downloaded_at: nil>]1312 behaves like package sorting by attribute1313 sorting by created_at1314 ascending order1315 is expected to eq [#<Packages::Package id: 16, project_id: 39, created_at: "2022-12-07 10:50:05.000000000 +0000", updat...ersion: "2.0.4", package_type: "nuget", creator_id: 39, status: "default", last_downloaded_at: nil>]1316 descending order1317 is expected to eq [#<Packages::Package id: 18, project_id: 39, created_at: "2022-12-08 10:50:05.828948524 +0000", updat...ersion: "1.1.1", package_type: "maven", creator_id: 39, status: "default", last_downloaded_at: nil>]1318 behaves like package sorting by attribute1319 sorting by version1320 ascending order1321 is expected to eq [#<Packages::Package id: 24, project_id: 39, created_at: "2022-12-07 10:50:06.000000000 +0000", updat... version: "3.1.0", package_type: "npm", creator_id: 39, status: "default", last_downloaded_at: nil>]1322 descending order1323 is expected to eq [#<Packages::Package id: 25, project_id: 39, created_at: "2022-12-08 10:50:07.135963509 +0000", updat...ersion: "1.1.1", package_type: "maven", creator_id: 39, status: "default", last_downloaded_at: nil>]1324 behaves like package sorting by attribute1325 sorting by type1326 ascending order1327 is expected to eq [#<Packages::Package id: 32, project_id: 39, created_at: "2022-12-07 10:50:07.000000000 +0000", updat...ersion: "2.0.4", package_type: "nuget", creator_id: 39, status: "default", last_downloaded_at: nil>]1328 descending order1329 is expected to eq [#<Packages::Package id: 34, project_id: 39, created_at: "2022-12-08 10:50:08.531450822 +0000", updat...ersion: "1.1.1", package_type: "maven", creator_id: 39, status: "default", last_downloaded_at: nil>]1330 behaves like package sorting by attribute1331 sorting by project_path1332 ascending order1333 is expected to eq [#<Packages::Package id: 37, project_id: 39, created_at: "2022-12-08 10:50:09.182813815 +0000", updat... version: "3.1.0", package_type: "npm", creator_id: 49, status: "default", last_downloaded_at: nil>]1334 descending order1335 is expected to eq [#<Packages::Package id: 46, project_id: 51, created_at: "2022-12-08 10:50:11.270169150 +0000", updat... version: "3.1.0", package_type: "npm", creator_id: 39, status: "default", last_downloaded_at: nil>]1336 .for_projects1337 returns package1 and package21338 validations1339 is expected to validate that :project cannot be empty/falsy1340 is expected to validate that :name is case-sensitively unique within the scope of :project_id, :version, and :package_type1341 #name1342 is expected to allow :name to be ‹"my/domain/com/my-app"›1343 is expected to allow :name to be ‹"my.app-11.07.2018"›1344 is expected not to allow :name to be ‹"my(dom$$$ain)com.my-app"›1345 conan package1346 is expected to allow :name to be ‹"foo+bar"›1347 is expected to allow :name to be ‹"foo_bar"›1348 is expected to allow :name to be ‹"foo.bar"›1349 is expected not to allow :name to be ‹"f_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_b"›1350 is expected not to allow :name to be ‹"+foobar"›1351 is expected not to allow :name to be ‹".foobar"›1352 is expected not to allow :name to be ‹"%foo%bar"›1353 debian package1354 is expected to allow :name to be ‹"0ad"›1355 is expected to allow :name to be ‹"g++"›1356 is expected not to allow :name to be ‹"a_b"›1357 debian incoming1358 is expected to allow :name to be ‹"incoming"›1359 is expected not to allow :name to be ‹"0ad"›1360 is expected not to allow :name to be ‹"g++"›1361 is expected not to allow :name to be ‹"a_b"›1362 generic package1363 is expected to allow :name to be ‹"123"›1364 is expected to allow :name to be ‹"foo"›1365 is expected to allow :name to be ‹"foo.bar.baz-2.0-20190901.47283-1"›1366 is expected not to allow :name to be ‹"../../foo"›1367 is expected not to allow :name to be ‹"..\\..\\foo"›1368 is expected not to allow :name to be ‹"%2f%2e%2e%2f%2essh%2fauthorized_keys"›1369 is expected not to allow :name to be ‹"$foo/bar"›1370 is expected not to allow :name to be ‹"my file name"›1371 is expected not to allow :name to be ‹"!!().for(:name)().for(:name)"›1372 helm package1373 is expected to allow :name to be ‹"prometheus"›1374 is expected to allow :name to be ‹"rook-ceph"›1375 is expected not to allow :name to be ‹"a+b"›1376 is expected not to allow :name to be ‹"Hé"›1377 nuget package1378 is expected to allow :name to be ‹"My.Package"›1379 is expected to allow :name to be ‹"My.Package.Mvc"›1380 is expected to allow :name to be ‹"MyPackage"›1381 is expected to allow :name to be ‹"My.23.Package"›1382 is expected to allow :name to be ‹"My23Package"›1383 is expected to allow :name to be ‹"runtime.my-test64.runtime.package.Mvc"›1384 is expected to allow :name to be ‹"my_package"›1385 is expected not to allow :name to be ‹"My/package"›1386 is expected not to allow :name to be ‹"../../../my_package"›1387 is expected not to allow :name to be ‹"%2e%2e%2fmy_package"›1388 npm package1389 is expected to allow :name to be ‹"@group-1/package"›1390 is expected to allow :name to be ‹"@any-scope/package"›1391 is expected to allow :name to be ‹"unscoped-package"›1392 is expected not to allow :name to be ‹"@inv@lid-scope/package"›1393 is expected not to allow :name to be ‹"@scope/../../package"›1394 is expected not to allow :name to be ‹"@scope%2e%2e%fpackage"›1395 is expected not to allow :name to be ‹"@scope/sub/package"›1396 terraform module package1397 is expected to allow :name to be ‹"my-module/my-system"›1398 is expected to allow :name to be ‹"my/module"›1399 is expected not to allow :name to be ‹"my-module"›1400 is expected not to allow :name to be ‹"My-Module"›1401 is expected not to allow :name to be ‹"my_module"›1402 is expected not to allow :name to be ‹"my.module"›1403 is expected not to allow :name to be ‹"../../../my-module"›1404 is expected not to allow :name to be ‹"%2e%2e%2fmy-module"›1405 #version1406 conan package1407 is expected to allow :version to be ‹"1.2"›1408 is expected to allow :version to be ‹"1.2.3-beta"›1409 is expected to allow :version to be ‹"1.2.3-pre1+build2"›1410 is expected not to allow :version to be ‹"1"›1411 is expected not to allow :version to be ‹"1.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.2"›1412 is expected not to allow :version to be ‹"1./2.3"›1413 is expected not to allow :version to be ‹".1.2.3"›1414 is expected not to allow :version to be ‹"+1.2.3"›1415 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1416 composer package1417 is expected to allow :version to be ‹"dev-master"›1418 is expected to allow :version to be ‹"2.x-dev"›1419 behaves like validating version to be SemVer compliant for1420 for composer_package1421 is expected to allow :version to be ‹"1.2.3"›1422 is expected to allow :version to be ‹"1.2.3-beta"›1423 is expected to allow :version to be ‹"1.2.3-alpha.3"›1424 is expected not to allow :version to be ‹"1"›1425 is expected not to allow :version to be ‹"1.2"›1426 is expected not to allow :version to be ‹"1./2.3"›1427 is expected not to allow :version to be ‹"../../../../../1.2.3"›1428 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1429 debian package1430 is expected to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›1431 is expected not to allow :version to be ‹"1_0"›1432 debian incoming1433 is expected to allow :version to be ‹nil›1434 is expected not to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›1435 is expected not to allow :version to be ‹"1_0"›1436 maven package1437 is expected to allow :version to be ‹"0"›1438 is expected to allow :version to be ‹"1"›1439 is expected to allow :version to be ‹"10"›1440 is expected to allow :version to be ‹"1.0"›1441 is expected to allow :version to be ‹"1.3.350.v20200505-1744"›1442 is expected to allow :version to be ‹"1.1-beta-2"›1443 is expected to allow :version to be ‹"1.2-SNAPSHOT"›1444 is expected to allow :version to be ‹"12.1.2-2-1"›1445 is expected to allow :version to be ‹"1.2.3-beta"›1446 is expected to allow :version to be ‹"10.2.3-beta"›1447 is expected to allow :version to be ‹"2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq"›1448 is expected to allow :version to be ‹"1.2-alpha-1-20050205.060708-1"›1449 is expected to allow :version to be ‹"703220b4e2cea9592caeb9f3013f6b1e5335c293"›1450 is expected to allow :version to be ‹"RELEASE"›1451 is expected not to allow :version to be ‹"..1.2.3"›1452 is expected not to allow :version to be ‹"1.2.3..beta"›1453 is expected not to allow :version to be ‹" 1.2.3"›1454 is expected not to allow :version to be ‹"1.2.3 \r\t"›1455 is expected not to allow :version to be ‹"\r\t 1.2.3"›1456 is expected not to allow :version to be ‹"1.2.3-4/../../"›1457 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1458 is expected not to allow :version to be ‹"../../../../../1.2.3"›1459 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1460 pypi package1461 is expected to allow :version to be ‹"0.1"›1462 is expected to allow :version to be ‹"2.0"›1463 is expected to allow :version to be ‹"1.2.0"›1464 is expected to allow :version to be ‹"0100!0.0"›1465 is expected to allow :version to be ‹"00!1.2"›1466 is expected to allow :version to be ‹"1.0a"›1467 is expected to allow :version to be ‹"1.0-a"›1468 is expected to allow :version to be ‹"1.0.a1"›1469 is expected to allow :version to be ‹"1.0a1"›1470 is expected to allow :version to be ‹"1.0-a1"›1471 is expected to allow :version to be ‹"1.0alpha1"›1472 is expected to allow :version to be ‹"1.0b1"›1473 is expected to allow :version to be ‹"1.0beta1"›1474 is expected to allow :version to be ‹"1.0rc1"›1475 is expected to allow :version to be ‹"1.0pre1"›1476 is expected to allow :version to be ‹"1.0preview1"›1477 is expected to allow :version to be ‹"1.0.dev1"›1478 is expected to allow :version to be ‹"1.0.DEV1"›1479 is expected to allow :version to be ‹"1.0.post1"›1480 is expected to allow :version to be ‹"1.0.rev1"›1481 is expected to allow :version to be ‹"1.0.r1"›1482 is expected to allow :version to be ‹"1.0c2"›1483 is expected to allow :version to be ‹"2012.15"›1484 is expected to allow :version to be ‹"1.0+5"›1485 is expected to allow :version to be ‹"1.0+abc.5"›1486 is expected to allow :version to be ‹"1!1.1"›1487 is expected to allow :version to be ‹"1.0c3"›1488 is expected to allow :version to be ‹"1.0rc2"›1489 is expected to allow :version to be ‹"1.0c1"›1490 is expected to allow :version to be ‹"1.0b2-346"›1491 is expected to allow :version to be ‹"1.0b2.post345"›1492 is expected to allow :version to be ‹"1.0b2.post345.dev456"›1493 is expected to allow :version to be ‹"1.2.rev33+123456"›1494 is expected to allow :version to be ‹"1.1.dev1"›1495 is expected to allow :version to be ‹"1.0b1.dev456"›1496 is expected to allow :version to be ‹"1.0a12.dev456"›1497 is expected to allow :version to be ‹"1.0b2"›1498 is expected to allow :version to be ‹"1.0.dev456"›1499 is expected to allow :version to be ‹"1.0c1.dev456"›1500 is expected to allow :version to be ‹"1.0.post456"›1501 is expected to allow :version to be ‹"1.0.post456.dev34"›1502 is expected to allow :version to be ‹"1.2+123abc"›1503 is expected to allow :version to be ‹"1.2+abc"›1504 is expected to allow :version to be ‹"1.2+abc123"›1505 is expected to allow :version to be ‹"1.2+abc123def"›1506 is expected to allow :version to be ‹"1.2+1234.abc"›1507 is expected to allow :version to be ‹"1.2+123456"›1508 is expected to allow :version to be ‹"1.2.r32+123456"›1509 is expected to allow :version to be ‹"1!1.2.rev33+123456"›1510 is expected to allow :version to be ‹"1.0a12"›1511 is expected to allow :version to be ‹"1.2.3-45+abcdefgh"›1512 is expected to allow :version to be ‹"v1.2.3"›1513 is expected not to allow :version to be ‹"1.2.3-45-abcdefgh"›1514 is expected not to allow :version to be ‹"..1.2.3"›1515 is expected not to allow :version to be ‹" 1.2.3"›1516 is expected not to allow :version to be ‹"1.2.3 \r\t"›1517 is expected not to allow :version to be ‹"\r\t 1.2.3"›1518 is expected not to allow :version to be ‹"1./2.3"›1519 is expected not to allow :version to be ‹"1.2.3-4/../../"›1520 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1521 is expected not to allow :version to be ‹"../../../../../1.2.3"›1522 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1523 generic package1524 is expected to validate that :version cannot be empty/falsy1525 is expected to allow :version to be ‹"1.2.3"›1526 is expected to allow :version to be ‹"1.3.350"›1527 is expected to allow :version to be ‹"1.3.350-20201230123456"›1528 is expected to allow :version to be ‹"1.2.3-rc1"›1529 is expected to allow :version to be ‹"1.2.3g"›1530 is expected to allow :version to be ‹"1.2"›1531 is expected to allow :version to be ‹"1.2.bananas"›1532 is expected to allow :version to be ‹"v1.2.4-build"›1533 is expected to allow :version to be ‹"d50d836eb3de6177ce6c7a5482f27f9c2c84b672"›1534 is expected to allow :version to be ‹"this_is_a_string_only"›1535 is expected not to allow :version to be ‹"..1.2.3"›1536 is expected not to allow :version to be ‹" 1.2.3"›1537 is expected not to allow :version to be ‹"1.2.3 \r\t"›1538 is expected not to allow :version to be ‹"\r\t 1.2.3"›1539 is expected not to allow :version to be ‹"1.2.3-4/../../"›1540 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›1541 is expected not to allow :version to be ‹"../../../../../1.2.3"›1542 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1543 is expected not to allow :version to be ‹""›1544 is expected not to allow :version to be ‹nil›1545 helm package1546 is expected not to allow :version to be ‹nil›1547 is expected not to allow :version to be ‹""›1548 is expected to allow :version to be ‹"v1.2.3"›1549 is expected to allow :version to be ‹"1.2.3"›1550 is expected not to allow :version to be ‹"v1.2"›1551 behaves like validating version to be SemVer compliant for1552 for npm_package1553 is expected to allow :version to be ‹"1.2.3"›1554 is expected to allow :version to be ‹"1.2.3-beta"›1555 is expected to allow :version to be ‹"1.2.3-alpha.3"›1556 is expected not to allow :version to be ‹"1"›1557 is expected not to allow :version to be ‹"1.2"›1558 is expected not to allow :version to be ‹"1./2.3"›1559 is expected not to allow :version to be ‹"../../../../../1.2.3"›1560 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1561 behaves like validating version to be SemVer compliant for1562 for terraform_module_package1563 is expected to allow :version to be ‹"1.2.3"›1564 is expected to allow :version to be ‹"1.2.3-beta"›1565 is expected to allow :version to be ‹"1.2.3-alpha.3"›1566 is expected not to allow :version to be ‹"1"›1567 is expected not to allow :version to be ‹"1.2"›1568 is expected not to allow :version to be ‹"1./2.3"›1569 is expected not to allow :version to be ‹"../../../../../1.2.3"›1570 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1571 nuget package1572 is expected to allow :version to be ‹"1.2"›1573 is expected to allow :version to be ‹"1.2.3"›1574 is expected to allow :version to be ‹"1.2.3.4"›1575 is expected to allow :version to be ‹"1.2.3-beta"›1576 is expected to allow :version to be ‹"1.2.3-alpha.3"›1577 is expected not to allow :version to be ‹"1"›1578 is expected not to allow :version to be ‹"1./2.3"›1579 is expected not to allow :version to be ‹"../../../../../1.2.3"›1580 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›1581 #npm_package_already_taken1582 maven package1583 will allow a package of the same name1584 npm package1585 following the naming convention1586 with the second package in the project of the first package1587 with no duplicated name1588 behaves like validating the first package1589 validates the first package1590 behaves like validating the second package1591 validates the second package1592 with duplicated name1593 behaves like validating the first package1594 validates the first package1595 behaves like validating the second package1596 validates the second package1597 with duplicate name and duplicated version1598 behaves like validating the first package1599 validates the first package1600 behaves like not validating the second package1601 does not validate the second package1602 behaves like validating both if the first package is pending destruction1603 behaves like validating the first package1604 validates the first package1605 behaves like validating the second package1606 validates the second package1607 with the second package in a different project than the first package1608 with no duplicated name1609 behaves like validating the first package1610 validates the first package1611 behaves like validating the second package1612 validates the second package1613 with duplicated name1614 behaves like validating the first package1615 validates the first package1616 behaves like validating the second package1617 validates the second package1618 with duplicate name and duplicated version1619 behaves like validating the first package1620 validates the first package1621 behaves like not validating the second package1622 does not validate the second package1623 behaves like validating both if the first package is pending destruction1624 behaves like validating the first package1625 validates the first package1626 behaves like validating the second package1627 validates the second package1628 not following the naming convention1629 with the second package in the project of the first package1630 with no duplicated name1631 behaves like validating the first package1632 validates the first package1633 behaves like validating the second package1634 validates the second package1635 with duplicated name1636 behaves like validating the first package1637 validates the first package1638 behaves like validating the second package1639 validates the second package1640 with duplicate name and duplicated version1641 behaves like validating the first package1642 validates the first package1643 behaves like not validating the second package1644 does not validate the second package1645 behaves like validating both if the first package is pending destruction1646 behaves like validating the first package1647 validates the first package1648 behaves like validating the second package1649 validates the second package1650 with the second package in a different project than the first package1651 with no duplicated name1652 behaves like validating the first package1653 validates the first package1654 behaves like validating the second package1655 validates the second package1656 with duplicated name1657 behaves like validating the first package1658 validates the first package1659 behaves like validating the second package1660 validates the second package1661 with duplicate name and duplicated version1662 behaves like validating the first package1663 validates the first package1664 behaves like validating the second package1665 validates the second package1666 behaves like validating both if the first package is pending destruction1667 behaves like validating the first package1668 validates the first package1669 behaves like validating the second package1670 validates the second package1671 recipe uniqueness for conan packages1672 will allow a conan package with same project, name, version and package_type1673 will not allow a conan package with same recipe (name, version, metadatum.package_channel, metadatum.package_username, and package_type)1674 with pending destruction package1675 will allow a conan package with same recipe (name, version, metadatum.package_channel, metadatum.package_username, and package_type)1676 #valid_composer_global_name1677 with different name and different project1678 is expected to be valid1679 with same name and different project1680 will not validate second package1681 with pending destruction package1682 is expected to be valid1683 #unique_debian_package_name1684 will allow a Debian package with same project, name and version, but different distribution1685 will not allow a Debian package with same project, name, version and distribution1686 will allow a Debian package with same project, name, version, but no distribution1687 with pending_destruction package1688 will allow a Debian package with same project, name, version and distribution1689 project id, name, version and package type uniqueness for package type maven1690 will not allow a maven package with same project, name, version and package_type1691 project id, name, version and package type uniqueness for package type npm1692 will not allow a npm package with same project, name, version and package_type1693 project id, name, version and package type uniqueness for package type nuget1694 will not allow a nuget package with same project, name, version and package_type1695 project id, name, version and package type uniqueness for package type pypi1696 will not allow a pypi package with same project, name, version and package_type1697 project id, name, version and package type uniqueness for package type composer1698 will not allow a composer package with same project, name, version and package_type1699 project id, name, version and package type uniqueness for package type generic1700 will not allow a generic package with same project, name, version and package_type1701 project id, name, version and package type uniqueness for package type golang1702 will not allow a golang package with same project, name, version and package_type1703 project id, name, version and package type uniqueness for package type rubygems1704 will not allow a rubygems package with same project, name, version and package_type1705 project id, name, version and package type uniqueness for package type helm1706 will not allow a helm package with same project, name, version and package_type1707 project id, name, version and package type uniqueness for package type terraform_module1708 will not allow a terraform_module package with same project, name, version and package_type1709 project id, name, version and package type uniqueness for package type rpm1710 will not allow a rpm package with same project, name, version and package_type1711 #destroy1712 updates the project statistics1713 when packages_size_counter_attribute is disabled1714 affects project statistics1715 .by_name_and_file_name1716 finds a package with correct arguiments1717 will raise error if not found1718 .with_package_type1719 is expected to eq [#<Packages::Package id: 175, project_id: 175, created_at: "2022-12-08 10:51:34.151095076 +0000", upd....0", package_type: "terraform_module", creator_id: 175, status: "default", last_downloaded_at: nil>]1720 .without_package_type1721 is expected to eq [#<Packages::Package id: 177, project_id: 177, created_at: "2022-12-08 10:51:35.137966339 +0000", upd...ersion: "1.0.54", package_type: "npm", creator_id: 177, status: "default", last_downloaded_at: nil>]1722 version scopes1723 .last_of_each_version1724 includes only latest package per version1725 .has_version1726 includes only packages with version attribute1727 .with_version1728 includes only packages with specified version1729 .without_version_like1730 includes packages without the version pattern1731 conan scopes1732 .with_conan_channel1733 includes only packages with specified version1734 .with_conan_username1735 includes only packages with specified version1736 .without_nuget_temporary_name1737 does not include nuget temporary packages1738 .limit_recent1739 is expected to contain exactly #<Packages::Package id: 200, project_id: 200, created_at: "2022-12-08 10:51:47.291001029 +0000", upda...rsion: "1.0.25", package_type: "nuget", creator_id: 200, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 199, project_id: 199, created_at: "2022-12-08 10:51:46.797233402 +0000", upda...rsion: "1.0.24", package_type: "nuget", creator_id: 199, status: "default", last_downloaded_at: nil>1740 with several packages1741 .pluck_names1742 is expected to contain exactly "FooBar", "foobar", "@namespace388/package-35", and "@namespace389/package-36"1743 .pluck_versions1744 is expected to contain exactly "1.0.26", "1.0.27", "1.0.55", and "1.0.56"1745 .with_name_like1746 with downcase name1747 is expected to contain exactly #<Packages::Package id: 201, project_id: 201, created_at: "2022-12-08 10:51:47.671113019 +0000", upda...rsion: "1.0.26", package_type: "nuget", creator_id: 201, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 202, project_id: 202, created_at: "2022-12-08 10:51:48.007473340 +0000", upda...rsion: "1.0.27", package_type: "nuget", creator_id: 202, status: "default", last_downloaded_at: nil>1748 with prefix wildcard1749 is expected to contain exactly #<Packages::Package id: 201, project_id: 201, created_at: "2022-12-08 10:51:47.671113019 +0000", upda...rsion: "1.0.26", package_type: "nuget", creator_id: 201, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 202, project_id: 202, created_at: "2022-12-08 10:51:48.007473340 +0000", upda...rsion: "1.0.27", package_type: "nuget", creator_id: 202, status: "default", last_downloaded_at: nil>1750 with suffix wildcard1751 is expected to contain exactly #<Packages::Package id: 201, project_id: 201, created_at: "2022-12-08 10:51:47.671113019 +0000", upda...rsion: "1.0.26", package_type: "nuget", creator_id: 201, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 202, project_id: 202, created_at: "2022-12-08 10:51:48.007473340 +0000", upda...rsion: "1.0.27", package_type: "nuget", creator_id: 202, status: "default", last_downloaded_at: nil>1752 with surrounding wildcards1753 is expected to contain exactly #<Packages::Package id: 201, project_id: 201, created_at: "2022-12-08 10:51:47.671113019 +0000", upda...rsion: "1.0.26", package_type: "nuget", creator_id: 201, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 202, project_id: 202, created_at: "2022-12-08 10:51:48.007473340 +0000", upda...rsion: "1.0.27", package_type: "nuget", creator_id: 202, status: "default", last_downloaded_at: nil>1754 .search_by_name1755 is expected to contain exactly #<Packages::Package id: 201, project_id: 201, created_at: "2022-12-08 10:51:47.671113019 +0000", upda...rsion: "1.0.26", package_type: "nuget", creator_id: 201, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 202, project_id: 202, created_at: "2022-12-08 10:51:48.007473340 +0000", upda...rsion: "1.0.27", package_type: "nuget", creator_id: 202, status: "default", last_downloaded_at: nil>1756 .with_normalized_pypi_name1757 is expected to contain exactly #<Packages::Package id: 205, project_id: 205, created_at: "2022-12-08 10:51:49.518755770 +0000", upda...ersion: "1.0.64", package_type: "pypi", creator_id: 205, status: "default", last_downloaded_at: nil>1758 .with_case_insensitive_version1759 is expected to contain exactly #<Packages::Package id: 206, project_id: 206, created_at: "2022-12-08 10:51:49.956622799 +0000", upda...on: "1.0.0-ABC", package_type: "nuget", creator_id: 206, status: "default", last_downloaded_at: nil>1760 status scopes1761 .displayable1762 does not include non-displayable packages1763 .installable1764 does not include non-installable packages1765 includes installable packages1766 .with_status1767 returns packages with specified status1768 .select_distinct_name1769 returns only distinct names1770 sorting1771 orders packages by their projects name ascending1772 orders packages by their projects name descending1773 behaves like order_project_path scope1774 orders packages by their projects path asc, then package id asc1775 behaves like order_project_path_desc scope1776 orders packages by their projects path desc, then package id desc1777 .order_by_package_file1778 orders packages their associated package_file's created_at date1779 .keyset_pagination_order1780 is expected to raise NoMethodError1781 with valid params1782 ascending direction1783 is expected to eq "\"projects\".\"name\" ASC NULLS LAST, \"packages_packages\".\"id\" ASC"1784 descending direction1785 is expected to eq "\"projects\".\"name\" DESC NULLS FIRST, \"packages_packages\".\"id\" DESC"1786 #versions1787 returns other package versions of the same package name belonging to the project1788 does not return different packages1789 #pipeline1790 package without pipeline1791 returns nil if there is no pipeline1792 package with pipeline1793 returns the pipeline1794 #pipelines1795 package without pipeline1796 is expected to be empty1797 package with pipeline1798 is expected to contain exactly #<Ci::Pipeline id: 2, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...ha: nil, external_pull_request_id: nil, ci_ref_id: 2, locked: "artifacts_locked", partition_id: 100> and #<Ci::Pipeline id: 3, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...ha: nil, external_pull_request_id: nil, ci_ref_id: 3, locked: "artifacts_locked", partition_id: 100>1799 #tag_names1800 is expected to eq []1801 with tags1802 is expected to contain exactly "tag1", "tag2", and "tag3"1803 #debian_incoming?1804 is expected to eq false1805 with debian_incoming1806 is expected to eq true1807 with debian_package1808 is expected to eq false1809 #debian_package?1810 is expected to eq false1811 with debian_incoming1812 is expected to eq false1813 with debian_package1814 is expected to eq true1815 #infrastructure_package?1816 is expected to eq false1817 with generic package1818 is expected to eq false1819 with terraform module package1820 is expected to eq true1821 plan_limits1822 File size limits for maven1823 plan_limits includes column maven_max_file_size1824 File size limits for npm1825 plan_limits includes column npm_max_file_size1826 File size limits for conan1827 plan_limits includes column conan_max_file_size1828 File size limits for nuget1829 plan_limits includes column nuget_max_file_size1830 File size limits for pypi1831 plan_limits includes column pypi_max_file_size1832 File size limits for generic1833 plan_limits includes column generic_packages_max_file_size1834 File size limits for golang1835 plan_limits includes column golang_max_file_size1836 File size limits for debian1837 plan_limits includes column debian_max_file_size1838 File size limits for rubygems1839 plan_limits includes column rubygems_max_file_size1840 File size limits for helm1841 plan_limits includes column helm_max_file_size1842 File size limits for terraform_module1843 plan_limits includes column terraform_module_max_file_size1844 File size limits for rpm1845 plan_limits includes column rpm_max_file_size1846 #original_build_info1847 without build_infos1848 returns nil1849 with build_infos1850 returns the first build info1851 #package_settings1852 returns the namespace package_settings1853 #sync_maven_metadata1854 enqueues a sync worker job1855 with no user1856 behaves like not enqueuing a sync worker job1857 does not enqueue a sync worker job1858 with a versionless maven package1859 behaves like not enqueuing a sync worker job1860 does not enqueue a sync worker job1861 with a non maven package1862 behaves like not enqueuing a sync worker job1863 does not enqueue a sync worker job1864 #mark_package_files_for_destruction1865 enqueues a sync worker job1866 for a package non pending destruction1867 does not enqueues a sync worker job1868 #create_build_infos!1869 with a valid build1870 creates a build info1871 with an already existing build info1872 does not create a build info1873 with a nil build1874 does not create a build info1875 with a build without a pipeline1876 does not create a build info1877 with identical pending destruction package1878 for package format maven1879 is expected to be valid1880 for package format npm1881 is expected to be valid1882 for package format conan1883 is expected to be valid1884 for package format nuget1885 is expected to be valid1886 for package format pypi1887 is expected to be valid1888 for package format composer1889 is expected to be valid1890 for package format generic1891 is expected to be valid1892 for package format golang1893 is expected to be valid1894 for package format debian1895 is expected to be valid1896 for package format rubygems1897 is expected to be valid1898 for package format helm1899 is expected to be valid1900 for package format terraform_module1901 is expected to be valid1902 for package format rpm1903 is expected to be valid1904 #normalized_pypi_name1905 package_name: "ASDF", normalized_name: "asdf"1906 is expected to eq "asdf"1907 package_name: "a.B_c-d", normalized_name: "a-b-c-d"1908 is expected to eq "a-b-c-d"1909 package_name: "a-------b....c___d", normalized_name: "a-b-c-d"1910 is expected to eq "a-b-c-d"1911 #touch_last_downloaded_at1912 updates the downloaded_at1913ProjectTeam1914 personal project1915 members collection1916 is expected to include #<User id:298 @user8>1917 is expected not to include #<User id:304 @user13>1918 is expected not to include #<User id:307 @user15>1919 is expected not to include #<User id:313 @user20>1920 access methods1921 is expected to be truthy1922 is expected to be falsey1923 is expected to be falsey1924 is expected to be falsey1925 is expected to be falsey1926 is expected to be truthy1927 is expected to be truthy1928 is expected to be falsey1929 is expected to be falsey1930 group project1931 members collection1932 is expected to include #<User id:356 @user53>1933 is expected to include #<User id:360 @user56>1934 is expected to include #<User id:367 @user62>1935 is expected not to include #<User id:371 @user65>1936 is expected not to include #<User id:378 @user71>1937 access methods1938 is expected to be truthy1939 is expected to be truthy1940 is expected to be truthy1941 is expected to be falsey1942 is expected to be falsey1943 is expected to be falsey1944 is expected to be truthy1945 is expected to be truthy1946 is expected to be falsey1947 is expected to be falsey1948 owner methods1949 personal project1950 is expected to contain exactly #<User id:432 @namespace512>1951 is expected to be truthy1952 group project1953 is expected to contain exactly #<User id:434 @user115> and #<User id:435 @user116>1954 is expected to be truthy1955 is expected to be truthy1956 #fetch_members1957 personal project1958 returns project members1959 returns project members of a specified level1960 returns invited members of a group1961 returns invited members of a group of a specified level1962 group project1963 returns project members1964 returns project members of a specified level1965 #find_member1966 personal project1967 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1968 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1969 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1970 is expected to be nil1971 is expected to be nil1972 group project1973 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1974 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1975 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1976 is expected to be nil1977 is expected to be nil1978 #members_in_project_and_ancestors1979 group project1980 filters out users who are not members of the project1981 #members_with_access_levels1982 with access_levels1983 filters members who have given access levels1984 without access_levels1985 returns empty array1986 #add_members1987 add the given users to the team1988 when `tasks_to_be_done` and `tasks_project_id` are passed1989 creates a member_task with the correct attributes1990 #add_member1991 add the given user to the team1992 #human_max_access1993 returns Maintainer role1994 returns Owner role1995 #contributor?1996 when user is a member of project1997 is expected to equal false1998 is expected to equal false1999 is expected to equal false2000 when user has at least one merge request merged into default_branch2001 is expected to equal true2002 is expected to equal false2003 #max_member_access2004 personal project2005 when project is not shared with group2006 is expected to eq 402007 is expected to eq 202008 is expected to eq 102009 is expected to eq 02010 is expected to eq 02011 when project is shared with group2012 is expected to eq 302013 is expected to eq 202014 is expected to eq 02015 is expected to eq 02016 but share_with_group_lock is true2017 is expected to eq 02018 is expected to eq 02019 group project2020 is expected to eq 402021 is expected to eq 202022 is expected to eq 102023 is expected to eq 02024 is expected to eq 02025 #purge_member_access_cache_for_user_id2026 removes cached max access for user from store2027 #member?2028 returns false for no user2029 returns true for personal projects of the user2030 returns true for projects of groups the user is a member of2031 returns true for projects for which the user is a member of2032 returns true for projects shared on a group the user is a member of2033 checks for the correct minimum level access2034 #contribution_check_for_user_ids2035 does not perform extra queries when asked for users who have already been found2036 only requests the extra users when uncached users are passed2037 returns correct contributors2038 #max_member_access_for_user_ids2039 with RequestStore enabled2040 returns correct roles for different users2041 does not perform extra queries when asked for users who have already been found2042 only requests the extra users when uncached users are passed2043 with RequestStore disabled2044 returns correct roles for different users2045EnvironmentPolicy2046 #rules2047 when project is public2048 with stop action2049 access_level: nil, allowed?: false2050 is expected to equal false2051 access_level: :guest, allowed?: false2052 is expected to equal false2053 access_level: :reporter, allowed?: false2054 is expected to equal false2055 access_level: :developer, allowed?: true2056 is expected to equal true2057 access_level: :maintainer, allowed?: true2058 is expected to equal true2059 when an admin user2060 when admin mode is enabled2061 is expected to be allowed :stop_environment2062 when admin mode is disabled2063 is expected to be disallowed :stop_environment2064 with protected branch2065 when an admin user2066 when admin mode is enabled2067 is expected to be allowed :stop_environment2068 when admin mode is disabled2069 is expected to be disallowed :stop_environment2070 without stop action2071 access_level: nil, allowed?: false2072 is expected to equal false2073 access_level: :guest, allowed?: false2074 is expected to equal false2075 access_level: :reporter, allowed?: false2076 is expected to equal false2077 access_level: :developer, allowed?: true2078 is expected to equal true2079 access_level: :maintainer, allowed?: true2080 is expected to equal true2081 when an admin user2082 when admin mode is enabled2083 is expected to be allowed :stop_environment2084 when admin mode is disabled2085 is expected to be disallowed :stop_environment2086 #destroy_environment2087 access_level: nil, allowed?: false2088 is expected to be disallowed :destroy_environment2089 when environment is stopped2090 is expected to equal false2091 access_level: :guest, allowed?: false2092 is expected to be disallowed :destroy_environment2093 when environment is stopped2094 is expected to equal false2095 access_level: :reporter, allowed?: false2096 is expected to be disallowed :destroy_environment2097 when environment is stopped2098 is expected to equal false2099 access_level: :developer, allowed?: true2100 is expected to be disallowed :destroy_environment2101 when environment is stopped2102 is expected to equal true2103 access_level: :maintainer, allowed?: true2104 is expected to be disallowed :destroy_environment2105 when environment is stopped2106 is expected to equal true2107 when an admin user2108 is expected to be disallowed :destroy_environment2109 when environment is stopped2110 when admin mode is enabled2111 is expected to be allowed :destroy_environment2112 when admin mode is disabled2113 is expected to be disallowed :destroy_environment2114 when project is private2115 with stop action2116 access_level: nil, allowed?: false2117 is expected to equal false2118 access_level: :guest, allowed?: false2119 is expected to equal false2120 access_level: :reporter, allowed?: false2121 is expected to equal false2122 access_level: :developer, allowed?: true2123 is expected to equal true2124 access_level: :maintainer, allowed?: true2125 is expected to equal true2126 when an admin user2127 when admin mode is enabled2128 is expected to be allowed :stop_environment2129 when admin mode is disabled2130 is expected to be disallowed :stop_environment2131 with protected branch2132 when an admin user2133 when admin mode is enabled2134 is expected to be allowed :stop_environment2135 when admin mode is disabled2136 is expected to be disallowed :stop_environment2137 without stop action2138 access_level: nil, allowed?: false2139 is expected to equal false2140 access_level: :guest, allowed?: false2141 is expected to equal false2142 access_level: :reporter, allowed?: false2143 is expected to equal false2144 access_level: :developer, allowed?: true2145 is expected to equal true2146 access_level: :maintainer, allowed?: true2147 is expected to equal true2148 when an admin user2149 when admin mode is enabled2150 is expected to be allowed :stop_environment2151 when admin mode is disabled2152 is expected to be disallowed :stop_environment2153 #destroy_environment2154 access_level: nil, allowed?: false2155 is expected to be disallowed :destroy_environment2156 when environment is stopped2157 is expected to equal false2158 access_level: :guest, allowed?: false2159 is expected to be disallowed :destroy_environment2160 when environment is stopped2161 is expected to equal false2162 access_level: :reporter, allowed?: false2163 is expected to be disallowed :destroy_environment2164 when environment is stopped2165 is expected to equal false2166 access_level: :developer, allowed?: true2167 is expected to be disallowed :destroy_environment2168 when environment is stopped2169 is expected to equal true2170 access_level: :maintainer, allowed?: true2171 is expected to be disallowed :destroy_environment2172 when environment is stopped2173 is expected to equal true2174 when an admin user2175 is expected to be disallowed :destroy_environment2176 when environment is stopped2177 when admin mode is enabled2178 is expected to be allowed :destroy_environment2179 when admin mode is disabled2180 is expected to be disallowed :destroy_environment2181Projects::ForkService2182 when forking a new project2183 fork by user2184 fork project2185 when forker is a guest2186 is expected not to be persisted2187 is expected to eq ["is forbidden"]2188 does not create a fork network2189 behaves like forks count cache refresh2190 flushes the forks count cache of the source project2191 successfully creates project in the user namespace2192 is expected to be persisted2193 is expected to be empty2194 is expected to eq #<User id:838 @user396>2195 is expected to eq #<Namespaces::UserNamespace id: 1389, name: "Sidney Jones1039", path: "user398", owner_id: 840, creat...runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, traversal_ids: []>2196 is expected to be zero2197 is expected to eq "wow such project"2198 is expected to be exists2199 is expected to eq nil2200 is expected to eq "classification-label"2201 is expected to eq nil2202 is expected to eq nil2203 is expected to eq nil2204 after forking the from-project still has its avatar2205 creates a fork network with the new project and the root project set2206 imports the repository of the forked project2207 behaves like forks count cache refresh2208 flushes the forks count cache of the source project2209 creating a fork of a fork2210 sets the root of the network to the root project2211 sets the forked_from_project on the membership2212 when the forked project has higher visibility than the root project2213 successfully creates a fork of the fork with correct visibility2214 behaves like forks count cache refresh2215 flushes the forks count cache of the source project2216 project already exists2217 fails due to validation, not transaction failure2218 repository in legacy storage already exists2219 does not allow creation2220 when repository disk validation is explicitly skipped2221 allows fork project creation2222 CI/CD settings2223 when origin has git depth specified2224 inherits default_git_depth from the origin project2225 when origin does not define git depth2226 the fork has git depth set to 02227 when project has restricted visibility level2228 and only one visibility level is restricted2229 creates fork with lowest level2230 and all visibility levels are restricted2231 creates fork with private visibility levels2232 when forking is disabled2233 fails2234 fork to namespace2235 fork project for group2236 group owner successfully forks project into the group2237 fork project for group when user not owner2238 group developer fails to fork project into the group2239 project already exists in group2240 fails due to validation, not transaction failure2241 when the namespace has a lower visibility level than the project2242 creates the project with the lower visibility level2243 fork with optional attributes2244 sets optional attributes to specified values2245 sets visibility level to private if an unknown visibility is requested2246 sets visibility level to project visibility level if requested visibility is greater2247 sets visibility level to target namespace visibility level if requested visibility is greater2248 copies project features visibility settings to the fork2249 when a project is already forked2250 creates a new poolresository after the project is moved to a new shard2251 when forking with object pools2252 when no pool exists2253 creates a new object pool2254 when a pool already exists2255 joins the object pool2256 when linking fork to an existing project2257 if project is already forked2258 does not create fork relation2259 if project is not forked2260 creates fork relation2261 flushes the forks count cache of the source project2262 if the fork is not allowed2263 does not delete the LFS objects2264 #valid_fork_targets2265 returns whatever finder returns2266 #valid_fork_target?2267 when target is not passed2268 when current user is an admin2269 is expected to be truthy2270 when current_user is not an admin2271 when target namespace is in valid fork targets2272 is expected to be truthy2273 when target namespace is not in valid fork targets2274 is expected to be falsey2275 when target is passed2276 when current user is an admin2277 is expected to be truthy2278 when current user is not an admin2279 when target namespace is in valid fork targets2280 is expected to be truthy2281 when target namespace is not in valid fork targets2282 is expected to be falsey2283ObjectStorage::DirectUpload2284 #has_length2285 is known2286 maximum size is not required2287 is unknown2288 and maximum size is specified2289 does not raise an error2290 and maximum size is not specified2291 raises an error2292 #get_url2293 when AWS is used2294 calls the proper method2295 when Google is used2296 calls the proper method2297 #to_hash2298 when AWS is used2299 when length is known2300 behaves like a valid S3 upload without multipart data2301 behaves like a valid S3 upload2302 sets Workhorse client data2303 behaves like a valid upload2304 returns valid structure2305 with an object with UTF-8 characters2306 returns an escaped path2307 when no region is specified2308 defaults to us-east-12309 when V2 signatures are used2310 does not enable Workhorse client2311 when V4 signatures are used2312 enables the Workhorse client for instance profiles2313 when consolidated settings are used2314 enables the Workhorse client2315 when only server side encryption is used2316 sends server side encryption settings2317 when SSE-KMS is used2318 sends server side encryption settings2319 behaves like a valid upload without multipart data2320 returns valid structure2321 behaves like a valid upload2322 returns valid structure2323 with an object with UTF-8 characters2324 returns an escaped path2325 when path style is true2326 behaves like a valid S3 upload without multipart data2327 behaves like a valid S3 upload2328 sets Workhorse client data2329 behaves like a valid upload2330 returns valid structure2331 with an object with UTF-8 characters2332 returns an escaped path2333 when no region is specified2334 defaults to us-east-12335 when V2 signatures are used2336 does not enable Workhorse client2337 when V4 signatures are used2338 enables the Workhorse client for instance profiles2339 when consolidated settings are used2340 enables the Workhorse client2341 when only server side encryption is used2342 sends server side encryption settings2343 when SSE-KMS is used2344 sends server side encryption settings2345 behaves like a valid upload without multipart data2346 returns valid structure2347 behaves like a valid upload2348 returns valid structure2349 with an object with UTF-8 characters2350 returns an escaped path2351 when IAM profile is true2352 behaves like a valid S3 upload without multipart data2353 behaves like a valid S3 upload2354 sets Workhorse client data2355 behaves like a valid upload2356 returns valid structure2357 with an object with UTF-8 characters2358 returns an escaped path2359 when no region is specified2360 defaults to us-east-12361 when V2 signatures are used2362 does not enable Workhorse client2363 when V4 signatures are used2364 enables the Workhorse client for instance profiles2365 when consolidated settings are used2366 enables the Workhorse client2367 when only server side encryption is used2368 sends server side encryption settings2369 when SSE-KMS is used2370 sends server side encryption settings2371 behaves like a valid upload without multipart data2372 returns valid structure2373 behaves like a valid upload2374 returns valid structure2375 with an object with UTF-8 characters2376 returns an escaped path2377 when IMSDv2 is available2378 behaves like a valid S3 upload without multipart data2379 behaves like a valid S3 upload2380 sets Workhorse client data2381 behaves like a valid upload2382 returns valid structure2383 with an object with UTF-8 characters2384 returns an escaped path2385 when no region is specified2386 defaults to us-east-12387 when V2 signatures are used2388 does not enable Workhorse client2389 when V4 signatures are used2390 enables the Workhorse client for instance profiles2391 when consolidated settings are used2392 enables the Workhorse client2393 when only server side encryption is used2394 sends server side encryption settings2395 when SSE-KMS is used2396 sends server side encryption settings2397 behaves like a valid upload without multipart data2398 returns valid structure2399 behaves like a valid upload2400 returns valid structure2401 with an object with UTF-8 characters2402 returns an escaped path2403 when length is unknown2404 behaves like a valid S3 upload with multipart data2405 behaves like a valid S3 upload2406 sets Workhorse client data2407 behaves like a valid upload2408 returns valid structure2409 with an object with UTF-8 characters2410 returns an escaped path2411 when no region is specified2412 defaults to us-east-12413 when V2 signatures are used2414 does not enable Workhorse client2415 when V4 signatures are used2416 enables the Workhorse client for instance profiles2417 when consolidated settings are used2418 enables the Workhorse client2419 when only server side encryption is used2420 sends server side encryption settings2421 when SSE-KMS is used2422 sends server side encryption settings2423 behaves like a valid upload with multipart data2424 returns valid structure2425 uses only strings in query parameters2426 behaves like a valid upload2427 returns valid structure2428 with an object with UTF-8 characters2429 returns an escaped path2430 when maximum upload size is 02431 returns maximum number of parts2432 part size is minimum, 5MB2433 when maximum upload size is < 5 MB2434 returns only 1 part2435 part size is minimum, 5MB2436 when maximum upload size is 10MB2437 returns only 2 parts2438 part size is minimum, 5MB2439 when maximum upload size is 12MB2440 returns only 3 parts2441 part size is rounded-up to 5MB2442 when maximum upload size is 49GB2443 returns maximum, 100 parts2444 part size is rounded-up to 5MB2445 when Google is used2446 with google_application_default2447 when length is known2448 behaves like a valid Google upload2449 enables the Workhorse client2450 behaves like a valid upload2451 returns valid structure2452 with an object with UTF-8 characters2453 returns an escaped path2454 with workhorse_google_client disabled2455 does not set Workhorse client data2456 behaves like a valid upload without multipart data2457 returns valid structure2458 behaves like a valid upload2459 returns valid structure2460 with an object with UTF-8 characters2461 returns an escaped path2462 when length is unknown2463 behaves like a valid Google upload2464 enables the Workhorse client2465 behaves like a valid upload2466 returns valid structure2467 with an object with UTF-8 characters2468 returns an escaped path2469 with workhorse_google_client disabled2470 does not set Workhorse client data2471 behaves like a valid upload without multipart data2472 returns valid structure2473 behaves like a valid upload2474 returns valid structure2475 with an object with UTF-8 characters2476 returns an escaped path2477 with google_json_key_location2478 when length is known2479 behaves like a valid Google upload2480 enables the Workhorse client2481 behaves like a valid upload2482 returns valid structure2483 with an object with UTF-8 characters2484 returns an escaped path2485 with workhorse_google_client disabled2486 does not set Workhorse client data2487 behaves like a valid upload without multipart data2488 returns valid structure2489 behaves like a valid upload2490 returns valid structure2491 with an object with UTF-8 characters2492 returns an escaped path2493 when length is unknown2494 behaves like a valid Google upload2495 enables the Workhorse client2496 behaves like a valid upload2497 returns valid structure2498 with an object with UTF-8 characters2499 returns an escaped path2500 with workhorse_google_client disabled2501 does not set Workhorse client data2502 behaves like a valid upload without multipart data2503 returns valid structure2504 behaves like a valid upload2505 returns valid structure2506 with an object with UTF-8 characters2507 returns an escaped path2508 with google_json_key_string2509 when length is known2510 behaves like a valid Google upload2511 enables the Workhorse client2512 behaves like a valid upload2513 returns valid structure2514 with an object with UTF-8 characters2515 returns an escaped path2516 with workhorse_google_client disabled2517 does not set Workhorse client data2518 behaves like a valid upload without multipart data2519 returns valid structure2520 behaves like a valid upload2521 returns valid structure2522 with an object with UTF-8 characters2523 returns an escaped path2524 when length is unknown2525 behaves like a valid Google upload2526 enables the Workhorse client2527 behaves like a valid upload2528 returns valid structure2529 with an object with UTF-8 characters2530 returns an escaped path2531 with workhorse_google_client disabled2532 does not set Workhorse client data2533 behaves like a valid upload without multipart data2534 returns valid structure2535 behaves like a valid upload2536 returns valid structure2537 with an object with UTF-8 characters2538 returns an escaped path2539 when AzureRM is used2540 behaves like a valid AzureRM upload2541 enables the Workhorse client2542 behaves like a valid upload2543 returns valid structure2544 with an object with UTF-8 characters2545 returns an escaped path2546 behaves like a valid upload without multipart data2547 returns valid structure2548 behaves like a valid upload2549 returns valid structure2550 with an object with UTF-8 characters2551 returns an escaped path2552 when a custom storage domain is used2553 behaves like a valid AzureRM upload2554 enables the Workhorse client2555 behaves like a valid upload2556 returns valid structure2557 with an object with UTF-8 characters2558 returns an escaped path2559 #use_workhorse_google_client?2560 with consolidated_settings2561 with google_application_default2562 is expected to be truthy2563 with google_json_key_string2564 is expected to be truthy2565 with google_json_key_location2566 is expected to be truthy2567 without any google setting2568 is expected to be falsey2569 without consolidated_settings2570 is expected to be falsey2571ProjectMember2572 associations2573 is expected to belong to project required: false2574 validations2575 is expected to allow :source_type to be ‹"Project"›2576 is expected not to allow :source_type to be ‹"project"›2577 is expected to validate that :access_level is either ‹10›, ‹20›, ‹30›, or ‹40›2578 default values2579 is expected to eq "Project"2580 delegations2581 is expected to delegate #namespace_id to the #project object2582 .access_level_roles2583 returns Gitlab::Access.options2584 #permissible_access_level_roles2585 when member can manage owners2586 returns Gitlab::Access.options_with_owner2587 when member cannot manage owners2588 returns Gitlab::Access.options2589 #real_source_type2590 is expected to eq "Project"2591 #destroy2592 creates an expired event when left due to expiry2593 creates a left event when left due to leave2594 for an orphaned member2595 does not raise an error2596 #holder_of_the_personal_namespace?2597 personal_namespace_holder?: false, expected: false2598 returns expected2599 personal_namespace_holder?: true, expected: true2600 returns expected2601 .import_team2602 is expected to be truthy2603 project 2 should get user 1 as developer. user_2 should not be changed2604 is expected to include #<User id:962 @user488>2605 is expected to include #<User id:967 @user491>2606 is expected to be truthy2607 is expected to be truthy2608 project 1 should not be changed2609 is expected to include #<User id:978 @user496>2610 is expected not to include #<User id:983 @user499>2611 .add_members_to_projects2612 adds the given users to the given projects2613 .truncate_teams2614 is expected to be empty2615 is expected to be empty2616 behaves like members notifications2617 #after_create2618 sends email to user2619 #after_update2620 calls NotificationService.update_project_member2621 does not send an email when the access level has not changed2622 #after_commit2623 on creation of a member requesting access2624 calls NotificationService.new_access_request2625 #accept_request2626 calls NotificationService.new_project_member2627 #accept_invite!2628 calls NotificationService.accept_project_invite2629 #decline_invite!2630 calls NotificationService.decline_project_invite2631 access levels2632 with parent group2633 behaves like inherited access level as a member of entity2634 with root parent_entity developer member2635 is allowed to be a maintainer of the entity2636 is not allowed to be a reporter of the entity2637 is allowed to change to be a developer of the entity2638 is not allowed to change to be a guest of the entity2639 shows an error if the member can't be updated2640 allows changing the level from a non existing member2641 with parent group and a subgroup2642 behaves like inherited access level as a member of entity2643 with root parent_entity developer member2644 is allowed to be a maintainer of the entity2645 is not allowed to be a reporter of the entity2646 is allowed to change to be a developer of the entity2647 is not allowed to change to be a guest of the entity2648 shows an error if the member can't be updated2649 allows changing the level from a non existing member2650 refreshing project_authorizations2651 when the source project of the project member is destroyed2652 refreshes the authorization of user to the project in the group2653 refreshes the authorization without calling AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker2654 when the user of the project member is destroyed2655 refreshes the authorization of user to the project in the group2656 refreshes the authorization without calling UserProjectAccessChangedService2657 when importing2658 does not refresh2659 authorization refresh on addition/updation/deletion2660 on create2661 changes access level2662 behaves like calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline to recalculate authorizations2663 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline2664 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2665 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2666 on update2667 changes access level2668 behaves like calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline to recalculate authorizations2669 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline2670 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2671 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2672 on destroy2673 changes access level2674 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker to recalculate authorizations2675 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2676 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2677 #set_member_namespace_id2678 on create2679 sets the member_namespace_id2680Gitlab::Kubernetes::KubeClient2681 .graceful_request2682 successful2683 returns connected status and foo response2684 errored2685 error: SocketError, connection_status: :unreachable, error_status: :connection_error2686 returns error status2687 error: OpenSSL::X509::CertificateError, connection_status: :authentication_failure, error_status: :authentication_error2688 returns error status2689 error: StandardError, connection_status: :unknown_failure, error_status: :unknown_error2690 returns error status2691 error: #<Kubeclient::HttpError: HTTP status code 408, timed out>, connection_status: :unreachable, error_status: :http_error2692 returns error status2693 error: #<Kubeclient::HttpError: HTTP status code 408, timeout>, connection_status: :unreachable, error_status: :http_error2694 returns error status2695 error: #<Kubeclient::HttpError: HTTP status code 408, >, connection_status: :authentication_failure, error_status: :http_error2696 returns error status2697 #initialize2698 falls back to default options, but allows overriding2699 localhost address2700 behaves like local address2701 blocks local addresses2702 when local requests are allowed2703 allows local addresses2704 private network address2705 behaves like local address2706 blocks local addresses2707 when local requests are allowed2708 allows local addresses2709 when a non HTTP/HTTPS URL is provided2710 raises an error2711 #core_client2712 has the core API endpoint2713 has the api_version2714 behaves like a Kubeclient2715 is a Kubeclient::Client2716 has the kubeclient options2717 #rbac_client2718 has the RBAC API group endpoint2719 has the api_version2720 behaves like a Kubeclient2721 is a Kubeclient::Client2722 has the kubeclient options2723 #istio_client2724 has the Istio API group endpoint2725 has the api_version2726 behaves like a Kubeclient2727 is a Kubeclient::Client2728 has the kubeclient options2729 #knative_client2730 has the extensions API group endpoint2731 has the api_version2732 behaves like a Kubeclient2733 is a Kubeclient::Client2734 has the kubeclient options2735 #networking_client2736 has the networking API group endpoint2737 has the api_version2738 behaves like a Kubeclient2739 is a Kubeclient::Client2740 has the kubeclient options2741 #metrics_client2742 has the metrics API group endpoint2743 has the api_version2744 behaves like a Kubeclient2745 is a Kubeclient::Client2746 has the kubeclient options2747 core API2748 #get_nodes2749 does not allow DNS rebinding2750 delegates to the core client2751 responds to the method2752 api_url is redirected2753 does not follow redirects2754 #get_pods2755 does not allow DNS rebinding2756 delegates to the core client2757 responds to the method2758 api_url is redirected2759 does not follow redirects2760 #get_secrets2761 does not allow DNS rebinding2762 delegates to the core client2763 responds to the method2764 api_url is redirected2765 does not follow redirects2766 #get_config_map2767 does not allow DNS rebinding2768 delegates to the core client2769 responds to the method2770 api_url is redirected2771 does not follow redirects2772 #get_pod2773 does not allow DNS rebinding2774 delegates to the core client2775 responds to the method2776 api_url is redirected2777 does not follow redirects2778 #get_namespace2779 does not allow DNS rebinding2780 delegates to the core client2781 responds to the method2782 api_url is redirected2783 does not follow redirects2784 #get_secret2785 does not allow DNS rebinding2786 delegates to the core client2787 responds to the method2788 api_url is redirected2789 does not follow redirects2790 #get_service2791 does not allow DNS rebinding2792 delegates to the core client2793 responds to the method2794 api_url is redirected2795 does not follow redirects2796 #get_service_account2797 does not allow DNS rebinding2798 delegates to the core client2799 responds to the method2800 api_url is redirected2801 does not follow redirects2802 #delete_namespace2803 does not allow DNS rebinding2804 delegates to the core client2805 responds to the method2806 api_url is redirected2807 does not follow redirects2808 #delete_pod2809 does not allow DNS rebinding2810 delegates to the core client2811 responds to the method2812 api_url is redirected2813 does not follow redirects2814 #delete_service_account2815 does not allow DNS rebinding2816 delegates to the core client2817 responds to the method2818 api_url is redirected2819 does not follow redirects2820 #create_config_map2821 does not allow DNS rebinding2822 delegates to the core client2823 responds to the method2824 api_url is redirected2825 does not follow redirects2826 #create_namespace2827 does not allow DNS rebinding2828 delegates to the core client2829 responds to the method2830 api_url is redirected2831 does not follow redirects2832 #create_pod2833 does not allow DNS rebinding2834 delegates to the core client2835 responds to the method2836 api_url is redirected2837 does not follow redirects2838 #create_secret2839 does not allow DNS rebinding2840 delegates to the core client2841 responds to the method2842 api_url is redirected2843 does not follow redirects2844 #create_service_account2845 does not allow DNS rebinding2846 delegates to the core client2847 responds to the method2848 api_url is redirected2849 does not follow redirects2850 #update_config_map2851 does not allow DNS rebinding2852 delegates to the core client2853 responds to the method2854 api_url is redirected2855 does not follow redirects2856 #update_secret2857 does not allow DNS rebinding2858 delegates to the core client2859 responds to the method2860 api_url is redirected2861 does not follow redirects2862 #update_service_account2863 does not allow DNS rebinding2864 delegates to the core client2865 responds to the method2866 api_url is redirected2867 does not follow redirects2868 rbac API group2869 #create_role2870 does not allow DNS rebinding2871 delegates to the rbac client2872 responds to the method2873 api_url is redirected2874 does not follow redirects2875 #get_role2876 does not allow DNS rebinding2877 delegates to the rbac client2878 responds to the method2879 api_url is redirected2880 does not follow redirects2881 #update_role2882 does not allow DNS rebinding2883 delegates to the rbac client2884 responds to the method2885 api_url is redirected2886 does not follow redirects2887 #delete_role_binding2888 does not allow DNS rebinding2889 delegates to the rbac client2890 responds to the method2891 api_url is redirected2892 does not follow redirects2893 #update_role_binding2894 does not allow DNS rebinding2895 delegates to the rbac client2896 responds to the method2897 api_url is redirected2898 does not follow redirects2899 #update_cluster_role_binding2900 does not allow DNS rebinding2901 delegates to the rbac client2902 responds to the method2903 api_url is redirected2904 does not follow redirects2905 apps/v1 API group2906 get_deployments2907 does not allow DNS rebinding2908 delegates to the apps client2909 responds to the method2910 api_url is redirected2911 does not follow redirects2912 networking.k8s.io/v1 API group2913 #get_ingresses2914 does not allow DNS rebinding2915 delegates to the networking client2916 responds to the method2917 api_url is redirected2918 does not follow redirects2919 #patch_ingress2920 does not allow DNS rebinding2921 delegates to the networking client2922 responds to the method2923 api_url is redirected2924 does not follow redirects2925 istio API group2926 #create_gateway2927 does not allow DNS rebinding2928 delegates to the istio client2929 responds to the method2930 api_url is redirected2931 does not follow redirects2932 #get_gateway2933 does not allow DNS rebinding2934 delegates to the istio client2935 responds to the method2936 api_url is redirected2937 does not follow redirects2938 #update_gateway2939 does not allow DNS rebinding2940 delegates to the istio client2941 responds to the method2942 api_url is redirected2943 does not follow redirects2944 non-entity methods2945 does not proxy for non-entity methods2946 throws an error2947 #get_pod_log2948 is delegated to the core client2949 #watch_pod_log2950 is delegated to the core client2951 #create_or_update_cluster_role_binding2952 behaves like create_or_update method using put2953 calls the update method2954 #create_or_update_role_binding2955 behaves like create_or_update method using put2956 calls the update method2957 #create_or_update_service_account2958 behaves like create_or_update method2959 resource exists2960 calls the update method2961 resource does not exist2962 calls the create method2963 #create_or_update_secret2964 behaves like create_or_update method2965 resource exists2966 calls the update method2967 resource does not exist2968 calls the create method2969 methods that do not exist on any client2970 throws an error2971 returns false for respond_to2972EmailsOnPushWorker2973 #perform2974 when push is a new branch2975 sends a mail with the correct subject2976 sends the mail to the correct recipient2977 when push is a deleted branch2978 sends a mail with the correct subject2979 sends the mail to the correct recipient2980 when push is a force push to delete commits2981 sends a mail with the correct subject2982 mentions force pushing in the body2983 sends the mail to the correct recipient2984 when there are no errors in sending2985 sends a mail with the correct subject2986 does not mention force pushing in the body2987 sends the mail to the correct recipient2988 when there is an SMTP error2989 gracefully handles an input SMTP error2990 when there are multiple recipients2991 with mixed-case recipient2992 retains the case2993 when the recipient addresses are a list of email addresses2994 sends the mail to each of the recipients2995 only generates the mail once2996 when SMIME signing is enabled2997 does not sign the email multiple times2998 when recipients are invalid2999 ignores them3000 when the recipient addresses contains angle brackets and are separated by spaces3001 accepts emails separated by whitespace3002 when the recipient addresses contain a mix of emails with and without angle brackets3003 accepts both kind of emails3004 when the recipient addresses contains angle brackets and are separated by newlines3005 accepts emails separated by newlines3006 when the recipient addresses contains duplicates3007 deduplicates recipients while treating the domain part as case-insensitive3008EnvironmentStatus3009 is expected to delegate #id to the #environment object3010 is expected to delegate #name to the #environment object3011 is expected to delegate #deployed_at to the #deployment object3012 is expected to delegate #status to the #deployment object3013 #project3014 is expected to eq #<Project id:639 namespace744/project790>>3015 #merge_request3016 is expected to eq #<MergeRequest id:15 namespace746/project792!1>3017 #deployment3018 is expected to eq #<Deployment id: 25, iid: 1, project_id: 643, environment_id: 65, ref: "pages-deploy", tag: false, sh...shed_at: "2022-12-08 11:00:54.799154339 +0000", cluster_id: nil, deployable_id: 45, archived: false>3019 multiple deployments3020 is expected to eq #<Deployment id: 27, iid: 2, project_id: 645, environment_id: 66, ref: "master", tag: false, sha: "78...shed_at: "2022-12-08 11:00:57.459828127 +0000", cluster_id: nil, deployable_id: 47, archived: false>3021 #changes3022 contains only added and modified public pages3023 .for_merge_request3024 is based on merge_request.diff_head_sha3025 .for_deployed_merge_request3026 when a merge request has no explicitly linked deployments3027 returns the statuses based on the CI pipelines3028 when a merge request has explicitly linked deployments3029 returns the statuses based on the linked deployments3030 excludes environments the user can not see3031 excludes deployments that have the status "created"3032 .build_environments_status3033 when environment is created on a forked project3034 returns environment status3035 when environment is created on a target project3036 returns environment status3037 when the build stops an environment3038 does not return environment status3039 when user does not have a permission to see the environment3040 does not return environment status3041 when multiple deployments with the same SHA in different environments3042 returns deployments related to the head pipeline3043 when multiple deployments in the same pipeline for the same environments3044 returns unique entries3045 when there is a deployment in a child pipeline3046 returns both parent and child entries3047 when environment is stopped3048 does not return environment status3049Gitlab::Ci::Status::Bridge::Factory3050 when bridge is created3051 matches correct core status3052 fabricates status with correct details3053 when bridge is failed3054 matches correct core status3055 matches correct extended statuses3056 fabricates a failed bridge status3057 fabricates status with correct details3058 failed with downstream_pipeline_creation_failed3059 fabricates correct status_tooltip3060 when bridge is a manual action3061 matches correct core status3062 matches correct extended statuses3063 fabricates action detailed status3064 fabricates status with correct details3065 when user has ability to play action3066 fabricates status that has action3067 when user does not have ability to play action3068 fabricates status that has no action3069 when bridge is waiting for resource3070 matches correct core status3071 fabricates status with correct details3072Gitlab::ContributionsCalendar3073 #activity_dates3074 returns a hash of date => count3075 counts the diff notes on merge request3076 counts the discussions on merge requests and issues3077 when the user has opted-in for private contributions3078 shows private and public events to all users3079 still counts correct with feature access levels set to private3080 does not fail if there are no contributed projects3081 when events fall under different dates depending on the system time zone3082 renders correct event counts within the UTC timezone3083 renders correct event counts within the Sydney timezone3084 renders correct event counts within the US Central timezone3085 when events fall under different dates depending on the contributor's time zone3086 renders correct event counts within the UTC timezone3087 renders correct event counts within the Sydney timezone3088 renders correct event counts within the US Central timezone3089 #events_by_date3090 returns all events for a given date3091 only shows private events to authorized users3092 includes diff notes on merge request3093 when the user cannot read cross project3094 does not return any events3095 #starting_year3096 when the contributor's timezone is not set3097 is the start of last year in the system timezone3098 when the contributor's timezone is set to Sydney3099 is the start of last year in Sydney3100 #starting_month3101 when the contributor's timezone is not set3102 is the start of this month in the system timezone3103 when the contributor's timezone is set to Sydney3104 is the start of this month in Sydney3105Gitlab::ProjectTemplate3106 .all3107 returns all templates3108 #project_host3109 when `preview` is valid3110 is expected to eq "https://gitlab.com"3111 when `preview` is `nil`3112 is expected to eq nil3113 #project_path3114 is expected to eq "some/project/path"3115 #uri_encoded_project_path3116 is expected to eq "some%2Fproject%2Fpath"3117 .find3118 when there is a match3119 is expected to be a kind of Gitlab::ProjectTemplate3120 when there is no match3121 is expected to equal nil3122 .archive_directory3123 is expected to be a kind of Pathname3124 instance methods3125 is expected to respond to [:logo, :file, :archive_path]3126 validate all templates3127 rails has a valid archive3128 spring has a valid archive3129 express has a valid archive3130 iosswift has a valid archive3131 dotnetcore has a valid archive3132 android has a valid archive3133 gomicro has a valid archive3134 bridgetown has a valid archive3135 gatsby has a valid archive3136 hugo has a valid archive3137 pelican has a valid archive3138 jekyll has a valid archive3139 plainhtml has a valid archive3140 gitbook has a valid archive3141 hexo has a valid archive3142 middleman has a valid archive3143 gitpod_spring_petclinic has a valid archive3144 nfhugo has a valid archive3145 nfjekyll has a valid archive3146 nfplainhtml has a valid archive3147 nfgitbook has a valid archive3148 nfhexo has a valid archive3149 salesforcedx has a valid archive3150 serverless_framework has a valid archive3151 tencent_serverless_framework has a valid archive3152 jsonnet has a valid archive3153 cluster_management has a valid archive3154 kotlin_native_linux has a valid archive3155 with valid parameters3156 can be imported3157 with valid parameters3158 can be imported3159 with valid parameters3160 can be imported3161 with valid parameters3162 can be imported3163 with valid parameters3164 can be imported3165 with valid parameters3166 can be imported3167 with valid parameters3168 can be imported3169 with valid parameters3170 can be imported3171 with valid parameters3172 can be imported3173 with valid parameters3174 can be imported3175 with valid parameters3176 can be imported3177 with valid parameters3178 can be imported3179 with valid parameters3180 can be imported3181 with valid parameters3182 can be imported3183 with valid parameters3184 can be imported3185 with valid parameters3186 can be imported3187 with valid parameters3188 can be imported3189 with valid parameters3190 can be imported3191 with valid parameters3192 can be imported3193 with valid parameters3194 can be imported3195 with valid parameters3196 can be imported3197 with valid parameters3198 can be imported3199 with valid parameters3200 can be imported3201 with valid parameters3202 can be imported3203 with valid parameters3204 can be imported3205 with valid parameters3206 can be imported3207 with valid parameters3208 can be imported3209 with valid parameters3210 can be imported3211Snippets::DestroyService3212 #execute3213 when snippet is nil3214 returns a ServiceResponse error3215 when ProjectSnippet3216 when user is able to admin_project_snippet3217 behaves like a successful destroy3218 deletes the snippet3219 returns ServiceResponse success3220 behaves like deletes the snippet repository3221 removes the snippet repository3222 when the repository deletion service raises an error3223 behaves like an unsuccessful destroy3224 does not delete the snippet3225 returns ServiceResponse error3226 when a destroy error is raised3227 behaves like an unsuccessful destroy3228 does not delete the snippet3229 returns ServiceResponse error3230 when repository is nil3231 does not schedule anything and return success3232 project statistics3233 updates stats after deletion3234 schedules a namespace statistics update3235 when user is not able to admin_project_snippet3236 behaves like an unsuccessful destroy3237 does not delete the snippet3238 returns ServiceResponse error3239 when PersonalSnippet3240 when user is able to admin_personal_snippet3241 schedules a namespace statistics update3242 behaves like a successful destroy3243 deletes the snippet3244 returns ServiceResponse success3245 behaves like deletes the snippet repository3246 removes the snippet repository3247 when the repository deletion service raises an error3248 behaves like an unsuccessful destroy3249 does not delete the snippet3250 returns ServiceResponse error3251 when a destroy error is raised3252 behaves like an unsuccessful destroy3253 does not delete the snippet3254 returns ServiceResponse error3255 when repository is nil3256 does not schedule anything and return success3257 when user is not able to admin_personal_snippet3258 behaves like an unsuccessful destroy3259 does not delete the snippet3260 returns ServiceResponse error3261 when the repository does not exists3262 does not schedule anything and return success3263Projects::BuildArtifactsSizeRefresh3264 associations3265 is expected to belong to project required: false3266 validations3267 is expected to validate that :project cannot be empty/falsy3268 scopes3269 stale3270 returns records in running state and has not been updated for more than 2 hours3271 remaining3272 returns stale, created, and pending records3273 processing_queue3274 prioritizes pending -> stale -> created3275 state machine3276 initial state3277 defaults to created3278 #process!3279 when refresh state is created3280 transitions the state to running3281 sets the refresh_started_at3282 sets last_job_artifact_id_on_refresh_start3283 bumps the updated_at3284 resets the build artifacts size stats3285 resets the counter attribute to zero3286 when refresh state is pending3287 transitions the state to running3288 bumps the updated_at3289 when refresh state is running3290 keeps the state at running3291 bumps the updated_at3292 #requeue!3293 transitions refresh state from running to pending3294 bumps updated_at3295 updates last_job_artifact_id3296 .process_next_refresh!3297 picks the first record from the remaining work3298 .enqueue_refresh3299 creates refresh records for each given project, skipping duplicates3300 #next_batch3301 returns the job artifact records that were created not later than the refresh_started_at and IDs greater than the last_job_artifact_id3302 when created_at is set before artifact id is persisted3303 returns ordered job artifacts3304 #started?3305 refresh_state: :created, result: false3306 is expected to eq false3307 refresh_state: :pending, result: true3308 is expected to eq true3309 refresh_state: :running, result: true3310 is expected to eq true3311 callbacks3312 when destroyed3313 enqueues a Namespaces::ScheduleAggregationWorker3314Sbom::PackageUrl3315 # order random3316 #initialize3317 with well-formed arguments3318 valid maven purl3319 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "1.3.4"}3320 basic valid maven purl without version3321 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3322 valid go purl without version and with subpath3323 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => nil}3324 valid go purl with version and subpath3325 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => "abcdedf"}3326 bitbucket namespace and name should be lowercased3327 is expected to have attributes {:name => "pygments-main", :namespace => "birkenfeld", :qualifiers => nil, :subpath => nil, :type => "bitbucket", :version => "244fd47e07d1014f0aed9c"}3328 github namespace and name should be lowercased3329 is expected to have attributes {:name => "purl-spec", :namespace => "package-url", :qualifiers => nil, :subpath => nil, :type => "github", :version => "244fd47e07d1004f0aed9c"}3330 debian can use qualifiers3331 is expected to have attributes {:name => "curl", :namespace => "debian", :qualifiers => {"arch" => "i386", "distro" => "jessie"}, :subpath => nil, :type => "deb", :version => "7.50.3-1"}3332 docker uses qualifiers and hash image id as versions3333 is expected to have attributes {:name => "dockerimage", :namespace => "customer", :qualifiers => {"repository_url" => "gcr.io"}, :subpath => nil, :type => "docker", :version => "sha256:244fd47e07d1004f0aed9c"}3334 Java gem can use a qualifier3335 is expected to have attributes {:name => "jruby-launcher", :namespace => nil, :qualifiers => {"platform" => "java"}, :subpath => nil, :type => "gem", :version => "1.1.2"}3336 maven often uses qualifiers3337 is expected to have attributes {:name => "batik-anim", :namespace => "org.apache.xmlgraphics", :qualifiers => {"classifier" => "sources", "repository_url" => "repo.spring.io/release"}, :subpath => nil, :type => "maven", :version => "1.9.1"}3338 maven pom reference3339 is expected to have attributes {:name => "batik-anim", :namespace => "org.apache.xmlgraphics", :qualifiers => {"extension" => "pom", "repository_url" => "repo.spring.io/release"}, :subpath => nil, :type => "maven", :version => "1.9.1"}3340 maven can come with a type qualifier3341 is expected to have attributes {:name => "jacob", :namespace => "net.sf.jacob-project", :qualifiers => {"classifier" => "x86", "type" => "dll"}, :subpath => nil, :type => "maven", :version => "1.14.3"}3342 npm can be scoped3343 is expected to have attributes {:name => "animation", :namespace => "@angular", :qualifiers => nil, :subpath => nil, :type => "npm", :version => "12.3.1"}3344 nuget names are case sensitive3345 is expected to have attributes {:name => "EnterpriseLibrary.Common", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "nuget", :version => "6.0.1304"}3346 pypi names have special rules and not case sensitive3347 is expected to have attributes {:name => "django-package", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "pypi", :version => "1.11.1.dev1"}3348 rpm often use qualifiers3349 is expected to have attributes {:name => "curl", :namespace => "fedora", :qualifiers => {"arch" => "i386", "distro" => "fedora-25"}, :subpath => nil, :type => "rpm", :version => "7.50.3-1.fc25"}3350 slash / after scheme is not significant3351 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3352 double slash // after scheme is not significant3353 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3354 slash /// after type is not significant3355 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3356 valid maven purl with case sensitive namespace and name3357 is expected to have attributes {:name => "HTTPClient", :namespace => "HTTPClient", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "0.3-3"}3358 valid maven purl containing a space in the version and qualifier3359 is expected to have attributes {:name => "myartifact", :namespace => "mygroup", :qualifiers => {"mykey" => "my value"}, :subpath => nil, :type => "maven", :version => "1.0.0 Final"}3360 valid conan purl3361 is expected to have attributes {:name => "cctz", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "conan", :version => "2.3"}3362 valid conan purl with namespace and qualifier channel3363 is expected to have attributes {:name => "cctz", :namespace => "bincrafters", :qualifiers => {"channel" => "stable"}, :subpath => nil, :type => "conan", :version => "2.3"}3364 valid conda purl with qualifiers3365 is expected to have attributes {:name => "absl-py", :namespace => nil, :qualifiers => {"build" => "py36h06a4308_0", "channel" => "main", "subdir" => "linux-64", "type" => "tar.bz2"}, :subpath => nil, :type => "conda", :version => "0.4.1"}3366 valid cran purl3367 is expected to have attributes {:name => "A3", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "cran", :version => "0.9.1"}3368 valid swift purl3369 is expected to have attributes {:name => "Alamofire", :namespace => "github.com/Alamofire", :qualifiers => nil, :subpath => nil, :type => "swift", :version => "5.4.3"}3370 valid hackage purl3371 is expected to have attributes {:name => "AC-HalfInteger", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "hackage", :version => "1.2.1"}3372 when no arguments are given3373 is expected to raise ArgumentError3374 when parameters are invalid3375 a scheme is always required3376 raises an ArgumentError3377 a type is always required3378 raises an ArgumentError3379 a name is required3380 raises an ArgumentError3381 checks for invalid qualifier keys3382 raises an ArgumentError3383 invalid conan purl only namespace3384 raises an ArgumentError3385 invalid conan purl only channel qualifier3386 raises an ArgumentError3387 invalid cran purl without name3388 raises an ArgumentError3389 invalid cran purl without version3390 raises an ArgumentError3391 invalid swift purl without namespace3392 raises an ArgumentError3393 invalid swift purl without name3394 raises an ArgumentError3395 invalid swift purl without version3396 raises an ArgumentError3397 name and version are always required3398 raises an ArgumentError3399 normalization3400 downcases provided type component3401 does not down provided name component3402 #parse3403 delegates parsing to the decoder3404 #to_s3405 delegates to_s to the encoder3406 #to_h3407 valid maven purl3408 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.3.4"}3409 basic valid maven purl without version3410 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}3411 valid go purl without version and with subpath3412 is expected to eq {:name=>"genproto", :namespace=>"google.golang.org", :qualifiers=>nil, :scheme=>"pkg", :subpath=>"googleapis/api/annotations", :type=>"golang", :version=>nil}3413 valid go purl with version and subpath3414 is expected to eq {:name=>"genproto", :namespace=>"google.golang.org", :qualifiers=>nil, :scheme=>"pkg", :subpath=>"googleapis/api/annotations", :type=>"golang", :version=>"abcdedf"}3415 bitbucket namespace and name should be lowercased3416 is expected to eq {:name=>"pygments-main", :namespace=>"birkenfeld", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"bitbucket", :version=>"244fd47e07d1014f0aed9c"}3417 github namespace and name should be lowercased3418 is expected to eq {:name=>"purl-spec", :namespace=>"package-url", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"github", :version=>"244fd47e07d1004f0aed9c"}3419 debian can use qualifiers3420 is expected to eq {:name=>"curl", :namespace=>"debian", :qualifiers=>{"arch"=>"i386", "distro"=>"jessie"}, :scheme=>"pkg", :subpath=>nil, :type=>"deb", :version=>"7.50.3-1"}3421 docker uses qualifiers and hash image id as versions3422 is expected to eq {:name=>"dockerimage", :namespace=>"customer", :qualifiers=>{"repository_url"=>"gcr.io"}, :scheme=>"pkg", :subpath=>nil, :type=>"docker", :version=>"sha256:244fd47e07d1004f0aed9c"}3423 Java gem can use a qualifier3424 is expected to eq {:name=>"jruby-launcher", :namespace=>nil, :qualifiers=>{"platform"=>"java"}, :scheme=>"pkg", :subpath=>nil, :type=>"gem", :version=>"1.1.2"}3425 maven often uses qualifiers3426 is expected to eq {:name=>"batik-anim", :namespace=>"org.apache.xmlgraphics", :qualifiers=>{"classifier"=>"sources", "r...y_url"=>"repo.spring.io/release"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.9.1"}3427 maven pom reference3428 is expected to eq {:name=>"batik-anim", :namespace=>"org.apache.xmlgraphics", :qualifiers=>{"extension"=>"pom", "reposi...y_url"=>"repo.spring.io/release"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.9.1"}3429 maven can come with a type qualifier3430 is expected to eq {:name=>"jacob", :namespace=>"net.sf.jacob-project", :qualifiers=>{"classifier"=>"x86", "type"=>"dll"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.14.3"}3431 npm can be scoped3432 is expected to eq {:name=>"animation", :namespace=>"@angular", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"npm", :version=>"12.3.1"}3433 nuget names are case sensitive3434 is expected to eq {:name=>"EnterpriseLibrary.Common", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"nuget", :version=>"6.0.1304"}3435 pypi names have special rules and not case sensitive3436 is expected to eq {:name=>"django-package", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"pypi", :version=>"1.11.1.dev1"}3437 rpm often use qualifiers3438 is expected to eq {:name=>"curl", :namespace=>"fedora", :qualifiers=>{"arch"=>"i386", "distro"=>"fedora-25"}, :scheme=>"pkg", :subpath=>nil, :type=>"rpm", :version=>"7.50.3-1.fc25"}3439 slash / after scheme is not significant3440 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}3441 double slash // after scheme is not significant3442 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}3443 slash /// after type is not significant3444 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}3445 valid maven purl with case sensitive namespace and name3446 is expected to eq {:name=>"HTTPClient", :namespace=>"HTTPClient", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"0.3-3"}3447 valid maven purl containing a space in the version and qualifier3448 is expected to eq {:name=>"myartifact", :namespace=>"mygroup", :qualifiers=>{"mykey"=>"my value"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.0.0 Final"}3449 valid conan purl3450 is expected to eq {:name=>"cctz", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"conan", :version=>"2.3"}3451 valid conan purl with namespace and qualifier channel3452 is expected to eq {:name=>"cctz", :namespace=>"bincrafters", :qualifiers=>{"channel"=>"stable"}, :scheme=>"pkg", :subpath=>nil, :type=>"conan", :version=>"2.3"}3453 valid conda purl with qualifiers3454 is expected to eq {:name=>"absl-py", :namespace=>nil, :qualifiers=>{"build"=>"py36h06a4308_0", "channel"=>"main", "subd..."=>"linux-64", "type"=>"tar.bz2"}, :scheme=>"pkg", :subpath=>nil, :type=>"conda", :version=>"0.4.1"}3455 valid cran purl3456 is expected to eq {:name=>"A3", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"cran", :version=>"0.9.1"}3457 valid swift purl3458 is expected to eq {:name=>"Alamofire", :namespace=>"github.com/Alamofire", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"swift", :version=>"5.4.3"}3459 valid hackage purl3460 is expected to eq {:name=>"AC-HalfInteger", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"hackage", :version=>"1.2.1"}3461Packages::Policies::ProjectPolicy3462 deploy token access3463 when a deploy token with read_package_registry scope3464 is expected to be allowed :read_package3465 behaves like package access with repository disabled3466 is expected to be allowed :read_package3467 when a deploy token with write_package_registry scope3468 is expected to be allowed :read_package3469 behaves like package access with repository disabled3470 is expected to be allowed :read_package3471 read_package3472 project: private_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false3473 is expected to be disallowed :read_package3474 project: private_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false3475 is expected to be disallowed :read_package3476 project: private_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false3477 is expected to be disallowed :read_package3478 project: private_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false3479 is expected to be disallowed :read_package3480 project: private_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false3481 is expected to be disallowed :read_package3482 project: private_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false3483 is expected to be disallowed :read_package3484 project: private_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false3485 is expected to be disallowed :read_package3486 project: private_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false3487 is expected to be disallowed :read_package3488 project: private_project, package_registry_access_level: 10, current_user: anonymous, expect_to_be_allowed: false3489 is expected to be disallowed :read_package3490 project: private_project, package_registry_access_level: 10, current_user: non_member, expect_to_be_allowed: false3491 is expected to be disallowed :read_package3492 project: private_project, package_registry_access_level: 10, current_user: guest, expect_to_be_allowed: false3493 is expected to be disallowed :read_package3494 project: private_project, package_registry_access_level: 10, current_user: reporter, expect_to_be_allowed: true3495 is expected to be allowed :read_package3496 project: private_project, package_registry_access_level: 10, current_user: developer, expect_to_be_allowed: true3497 is expected to be allowed :read_package3498 project: private_project, package_registry_access_level: 10, current_user: maintainer, expect_to_be_allowed: true3499 is expected to be allowed :read_package3500 project: private_project, package_registry_access_level: 10, current_user: owner, expect_to_be_allowed: true3501 is expected to be allowed :read_package3502 project: private_project, package_registry_access_level: 10, current_user: admin, expect_to_be_allowed: true3503 is expected to be allowed :read_package3504 project: private_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true3505 is expected to be allowed :read_package3506 project: private_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true3507 is expected to be allowed :read_package3508 project: private_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true3509 is expected to be allowed :read_package3510 project: private_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true3511 is expected to be allowed :read_package3512 project: private_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true3513 is expected to be allowed :read_package3514 project: private_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true3515 is expected to be allowed :read_package3516 project: private_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true3517 is expected to be allowed :read_package3518 project: private_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true3519 is expected to be allowed :read_package3520 project: internal_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false3521 is expected to be disallowed :read_package3522 project: internal_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false3523 is expected to be disallowed :read_package3524 project: internal_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false3525 is expected to be disallowed :read_package3526 project: internal_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false3527 is expected to be disallowed :read_package3528 project: internal_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false3529 is expected to be disallowed :read_package3530 project: internal_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false3531 is expected to be disallowed :read_package3532 project: internal_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false3533 is expected to be disallowed :read_package3534 project: internal_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false3535 is expected to be disallowed :read_package3536 project: internal_project, package_registry_access_level: 20, current_user: anonymous, expect_to_be_allowed: false3537 is expected to be disallowed :read_package3538 project: internal_project, package_registry_access_level: 20, current_user: non_member, expect_to_be_allowed: true3539 is expected to be allowed :read_package3540 project: internal_project, package_registry_access_level: 20, current_user: guest, expect_to_be_allowed: true3541 is expected to be allowed :read_package3542 project: internal_project, package_registry_access_level: 20, current_user: reporter, expect_to_be_allowed: true3543 is expected to be allowed :read_package3544 project: internal_project, package_registry_access_level: 20, current_user: developer, expect_to_be_allowed: true3545 is expected to be allowed :read_package3546 project: internal_project, package_registry_access_level: 20, current_user: maintainer, expect_to_be_allowed: true3547 is expected to be allowed :read_package3548 project: internal_project, package_registry_access_level: 20, current_user: owner, expect_to_be_allowed: true3549 is expected to be allowed :read_package3550 project: internal_project, package_registry_access_level: 20, current_user: admin, expect_to_be_allowed: true3551 is expected to be allowed :read_package3552 project: internal_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true3553 is expected to be allowed :read_package3554 project: internal_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true3555 is expected to be allowed :read_package3556 project: internal_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true3557 is expected to be allowed :read_package3558 project: internal_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true3559 is expected to be allowed :read_package3560 project: internal_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true3561 is expected to be allowed :read_package3562 project: internal_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true3563 is expected to be allowed :read_package3564 project: internal_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true3565 is expected to be allowed :read_package3566 project: internal_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true3567 is expected to be allowed :read_package3568 project: public_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false3569 is expected to be disallowed :read_package3570 project: public_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false3571 is expected to be disallowed :read_package3572 project: public_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false3573 is expected to be disallowed :read_package3574 project: public_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false3575 is expected to be disallowed :read_package3576 project: public_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false3577 is expected to be disallowed :read_package3578 project: public_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false3579 is expected to be disallowed :read_package3580 project: public_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false3581 is expected to be disallowed :read_package3582 project: public_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false3583 is expected to be disallowed :read_package3584 project: public_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true3585 is expected to be allowed :read_package3586 project: public_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true3587 is expected to be allowed :read_package3588 project: public_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true3589 is expected to be allowed :read_package3590 project: public_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true3591 is expected to be allowed :read_package3592 project: public_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true3593 is expected to be allowed :read_package3594 project: public_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true3595 is expected to be allowed :read_package3596 project: public_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true3597 is expected to be allowed :read_package3598 project: public_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true3599 is expected to be allowed :read_package3600 with feature flag disabled3601 project: private_project, current_user: anonymous, expect_to_be_allowed: false3602 is expected to be disallowed :read_package3603 project: private_project, current_user: non_member, expect_to_be_allowed: false3604 is expected to be disallowed :read_package3605 project: private_project, current_user: guest, expect_to_be_allowed: false3606 is expected to be disallowed :read_package3607 project: internal_project, current_user: anonymous, expect_to_be_allowed: false3608 is expected to be disallowed :read_package3609 project: public_project, current_user: admin, expect_to_be_allowed: true3610 is expected to be allowed :read_package3611 project: public_project, current_user: owner, expect_to_be_allowed: true3612 is expected to be allowed :read_package3613 project: public_project, current_user: maintainer, expect_to_be_allowed: true3614 is expected to be allowed :read_package3615 project: public_project, current_user: developer, expect_to_be_allowed: true3616 is expected to be allowed :read_package3617 project: public_project, current_user: reporter, expect_to_be_allowed: true3618 is expected to be allowed :read_package3619 project: public_project, current_user: guest, expect_to_be_allowed: true3620 is expected to be allowed :read_package3621 project: public_project, current_user: non_member, expect_to_be_allowed: true3622 is expected to be allowed :read_package3623 project: public_project, current_user: anonymous, expect_to_be_allowed: true3624 is expected to be allowed :read_package3625 with admin3626 behaves like package access with repository disabled3627 is expected to be allowed :read_package3628WikiPage::Meta3629 Associations3630 is expected to belong to project required: false3631 is expected to have many slugs3632 is expected to have many events3633 can find slugs3634 Validations3635 is expected to validate that :project_id cannot be empty/falsy3636 is expected to validate that the length of :title is at most 2553637 is expected not to allow :title to be ‹nil›3638 is forbidden to have two records for the same project with the same canonical_slug3639 #canonical_slug3640 can be set on initialization3641 there are no slugs3642 is expected to have attributes {:canonical_slug => (be nil)}3643 we have some non-canonical slugs3644 is expected to have attributes {:canonical_slug => (be nil)}3645 issues at most one query3646 issues no queries if we already know the slug3647 we have a canonical slug3648 has the correct value3649 canonical_slug=3650 the slug is not known to us3651 changes it to the correct value3652 ensures the slug is in the db3653 issues at most N queries3654 issues fewer queries if we already know the current slug3655 the slug is already in the DB (but not canonical)3656 changes it to the correct value3657 ensures the slug is in the db3658 issues at most N queries3659 issues fewer queries if we already know the current slug3660 the slug is already in the DB (and canonical)3661 changes it to the correct value3662 ensures the slug is in the db3663 issues at most N queries3664 issues fewer queries if we already know the current slug3665 the slug is up to date and in the DB3666 changes it to the correct value3667 ensures the slug is in the db3668 issues at most N queries3669 issues fewer queries if we already know the current slug3670 .find_or_create3671 there are problems3672 the slug is too long3673 raises an error3674 a conflicting record exists3675 raises an error3676 the wiki page is not valid3677 raises an error3678 no existing record exists3679 establishes the correct state3680 makes a reasonable number of DB queries3681 the commit happened a day ago3682 establishes the correct state3683 makes a reasonable number of DB queries3684 the last_known_slug is the same as the current slug, as on creation3685 establishes the correct state3686 makes a reasonable number of DB queries3687 a record exists in the DB in the correct state3688 establishes the correct state3689 makes a reasonable number of DB queries3690 a record exists in the DB, but we need to update timestamps3691 establishes the correct state3692 makes a reasonable number of DB queries3693 we need to update the slug, but not the title3694 establishes the correct state3695 makes a reasonable number of DB queries3696 we need to update the title, but not the slug3697 establishes the correct state3698 makes a reasonable number of DB queries3699 we want to change the slug back to a previous version3700 establishes the correct state3701 makes a reasonable number of DB queries3702 we want to change the slug a bunch of times3703 establishes the correct state3704 makes a reasonable number of DB queries3705 we need to update the title and the slug3706 establishes the correct state3707 makes a reasonable number of DB queries3708ReleasesFinder3709 when parent is a project3710 behaves like when the user is not part of the project3711 returns no releases3712 when the user is a project guest3713 sorts by release date3714 with sorting parameters3715 by default is released_at in descending order3716 is expected to eq [#<Release id: 6, tag: "v1.1.0", description: [FILTERED], project_id: 807, created_at: "2022-12-05 11...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2022-12-06 11:03:56.993276971 +0000">]3717 released_at in ascending order3718 is expected to eq [#<Release id: 7, tag: "v1.0.0", description: [FILTERED], project_id: 808, created_at: "2022-12-08 11...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2022-12-07 11:03:59.032600294 +0000">]3719 order by created_at in descending order3720 is expected to eq [#<Release id: 9, tag: "v1.0.0", description: [FILTERED], project_id: 809, created_at: "2022-12-08 11...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2022-12-07 11:04:00.836558222 +0000">]3721 order by created_at in ascending order3722 is expected to eq [#<Release id: 12, tag: "v1.1.0", description: [FILTERED], project_id: 810, created_at: "2022-12-05 1...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2022-12-06 11:04:02.515232253 +0000">]3723 behaves like preload3724 preloads associations3725 when preload is false3726 does not preload associations3727 behaves like when a tag parameter is passed3728 only returns the release with the matching tag3729Resolvers::BoardListIssuesResolver3730 #resolve3731 when project boards3732 behaves like group and project board list issues resolver3733 when authorized3734 generates a mutually exclusive filter error when milestone wildcard and title are provided3735 returns the issues in the correct order3736 finds only issues matching filters3737 finds only issues filtered by milestone wildcard3738 finds only issues matching search param3739 filters issues by negated issue type3740 generates an error if both assignee_username and assignee_wildcard_id are present3741 accepts assignee wildcard id NONE3742 accepts assignee wildcard id ANY3743 when filtering by confidential3744 returns matching issue3745 when group boards3746 behaves like group and project board list issues resolver3747 when authorized3748 generates a mutually exclusive filter error when milestone wildcard and title are provided3749 returns the issues in the correct order3750 finds only issues matching filters3751 finds only issues filtered by milestone wildcard3752 finds only issues matching search param3753 filters issues by negated issue type3754 generates an error if both assignee_username and assignee_wildcard_id are present3755 accepts assignee wildcard id NONE3756 accepts assignee wildcard id ANY3757 when filtering by confidential3758 returns matching issue3759Integrations::WebexTeams3760 behaves like chat integration3761 Associations3762 is expected to belong to project required: false3763 Validations3764 when integration is active3765 is expected to validate that :webhook cannot be empty/falsy3766 behaves like issue tracker integration URL attribute3767 is expected to allow :webhook to be ‹"https://example.com"›3768 is expected not to allow :webhook to be ‹"example.com"›3769 is expected not to allow :webhook to be ‹"ftp://example.com"›3770 is expected not to allow :webhook to be ‹"herp-and-derp"›3771 when integration is inactive3772 is expected not to validate that :webhook cannot be empty/falsy3773 .supported_events3774 does not support deployment_events3775 #execute3776 with push events3777 behaves like triggered Webex Teams integration3778 calls Webex Teams API3779 with default branch3780 when only default branch are to be notified3781 behaves like triggered Webex Teams integration3782 calls Webex Teams API3783 when only protected branches are to be notified3784 behaves like untriggered Webex Teams integration3785 does not call Webex Teams API3786 when default and protected branches are to be notified3787 behaves like triggered Webex Teams integration3788 calls Webex Teams API3789 when all branches are to be notified3790 behaves like triggered Webex Teams integration3791 calls Webex Teams API3792 with protected branch3793 when only default branch are to be notified3794 behaves like untriggered Webex Teams integration3795 does not call Webex Teams API3796 when only protected branches are to be notified3797 behaves like triggered Webex Teams integration3798 calls Webex Teams API3799 when default and protected branches are to be notified3800 behaves like triggered Webex Teams integration3801 calls Webex Teams API3802 when all branches are to be notified3803 behaves like triggered Webex Teams integration3804 calls Webex Teams API3805 with neither default nor protected branch3806 when only default branch are to be notified3807 behaves like untriggered Webex Teams integration3808 does not call Webex Teams API3809 when only protected branches are to be notified3810 behaves like untriggered Webex Teams integration3811 does not call Webex Teams API3812 when default and protected branches are to be notified3813 behaves like untriggered Webex Teams integration3814 does not call Webex Teams API3815 when all branches are to be notified3816 behaves like triggered Webex Teams integration3817 calls Webex Teams API3818 with issue events3819 behaves like triggered Webex Teams integration3820 calls Webex Teams API3821 with merge events3822 behaves like triggered Webex Teams integration3823 calls Webex Teams API3824 with wiki page events3825 behaves like triggered Webex Teams integration3826 calls Webex Teams API3827 with note events3828 with commit comment3829 behaves like triggered Webex Teams integration3830 calls Webex Teams API3831 with merge request comment3832 behaves like triggered Webex Teams integration3833 calls Webex Teams API3834 with issue comment3835 behaves like triggered Webex Teams integration3836 calls Webex Teams API3837 with snippet comment3838 behaves like triggered Webex Teams integration3839 calls Webex Teams API3840 with pipeline events3841 with failed pipeline3842 behaves like triggered Webex Teams integration3843 calls Webex Teams API3844 with succeeded pipeline3845 with default notify_only_broken_pipelines3846 does not call Webex Teams API3847 when notify_only_broken_pipelines is false3848 behaves like triggered Webex Teams integration3849 calls Webex Teams API3850 with default branch3851 when only default branch are to be notified3852 behaves like triggered Webex Teams integration3853 calls Webex Teams API3854 when only protected branches are to be notified3855 behaves like untriggered Webex Teams integration3856 does not call Webex Teams API3857 when default and protected branches are to be notified3858 behaves like triggered Webex Teams integration3859 calls Webex Teams API3860 when all branches are to be notified3861 behaves like triggered Webex Teams integration3862 calls Webex Teams API3863 with protected branch3864 when only default branch are to be notified3865 behaves like untriggered Webex Teams integration3866 does not call Webex Teams API3867 when only protected branches are to be notified3868 behaves like triggered Webex Teams integration3869 calls Webex Teams API3870 when default and protected branches are to be notified3871 behaves like triggered Webex Teams integration3872 calls Webex Teams API3873 when all branches are to be notified3874 behaves like triggered Webex Teams integration3875 calls Webex Teams API3876 with neither default nor protected branch3877 when only default branch are to be notified3878 behaves like untriggered Webex Teams integration3879 does not call Webex Teams API3880 when only protected branches are to be notified3881 behaves like untriggered Webex Teams integration3882 does not call Webex Teams API3883 when default and protected branches are to be notified3884 behaves like untriggered Webex Teams integration3885 does not call Webex Teams API3886 when all branches are to be notified3887 behaves like triggered Webex Teams integration3888 calls Webex Teams API3889 deployment events3890 behaves like untriggered Webex Teams integration3891 does not call Webex Teams API3892projects/_home_panel3893 admin area link3894 renders admin area link for admin3895 does not render admin area link for non-admin3896 does not render admin area link for anonymous3897 notifications3898 when user is signed in3899 renders Vue app root3900 when user is signed out3901 does not render Vue app root3902 badges3903 has no badges3904 does not render any badge3905 only has group badges3906 behaves like show badges3907 renders the all badges3908 only has project badges3909 behaves like show badges3910 renders the all badges3911 has both group and project badges3912 behaves like show badges3913 renders the all badges3914 project id3915 user can read project3916 is shown3917 user cannot read project3918 is not shown3919 forks3920 user can read fork source3921 does not show the forked-from project3922 when fork_divergence_counts is disabled3923 shows the forked-from project3924 user cannot read fork source3925 shows the message that forked project is inaccessible3926 when fork_divergence_counts is disabled3927 shows the message that forked project is inaccessible3928Gitlab::RelativePositioning::Range3929 infers neighbours correctly3930 RelativePositioning.range3931 raises if lhs and rhs are nil3932 raises an error if there is no extent3933 constructs a closed range when both termini are provided3934 constructs a starting-from range when only the LHS is provided3935 constructs an ending-at range when only the RHS is provided3936 #open_on_left?3937 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false3938 is true if there is no LHS terminus3939 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false3940 is true if there is no LHS terminus3941 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false3942 is true if there is no LHS terminus3943 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: false3944 is true if there is no LHS terminus3945 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true3946 is true if there is no LHS terminus3947 #open_on_right?3948 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false3949 is true if there is no RHS terminus3950 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, expected_result: false3951 is true if there is no RHS terminus3952 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false3953 is true if there is no RHS terminus3954 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, expected_result: true3955 is true if there is no RHS terminus3956 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false3957 is true if there is no RHS terminus3958 #cover?3959 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true3960 is true when the object is within the bounds of the range3961 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true3962 is true when the object is within the bounds of the range3963 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true3964 is true when the object is within the bounds of the range3965 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false3966 is true when the object is within the bounds of the range3967 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false3968 is true when the object is within the bounds of the range3969 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false3970 is true when the object is within the bounds of the range3971 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false3972 is true when the object is within the bounds of the range3973 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false3974 is true when the object is within the bounds of the range3975 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false3976 is true when the object is within the bounds of the range3977 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true3978 is true when the object is within the bounds of the range3979 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true3980 is true when the object is within the bounds of the range3981 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true3982 is true when the object is within the bounds of the range3983 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false3984 is true when the object is within the bounds of the range3985 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false3986 is true when the object is within the bounds of the range3987 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false3988 is true when the object is within the bounds of the range3989 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false3990 is true when the object is within the bounds of the range3991 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false3992 is true when the object is within the bounds of the range3993 lhs: nil, rhs: #<struct relative_position=200, object=:y, :positioned?=true>, item: nil, expected_result: false3994 is true when the object is within the bounds of the range3995 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true3996 is true when the object is within the bounds of the range3997 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true3998 is true when the object is within the bounds of the range3999 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: true4000 is true when the object is within the bounds of the range4001 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4002 is true when the object is within the bounds of the range4003 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4004 is true when the object is within the bounds of the range4005 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4006 is true when the object is within the bounds of the range4007 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4008 is true when the object is within the bounds of the range4009 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4010 is true when the object is within the bounds of the range4011 lhs: #<struct relative_position=100, object=:x, :positioned?=true>, rhs: nil, item: nil, expected_result: false4012 is true when the object is within the bounds of the range4013 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: true4014 is true when the object is within the bounds of the range4015 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: false4016 is true when the object is within the bounds of the range4017 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false4018 is true when the object is within the bounds of the range4019 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: true4020 is true when the object is within the bounds of the range4021 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: false4022 is true when the object is within the bounds of the range4023 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4024 is true when the object is within the bounds of the range4025 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4026 is true when the object is within the bounds of the range4027 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4028 is true when the object is within the bounds of the range4029 lhs: nil, rhs: #<struct relative_position=100, object=:x, :positioned?=true>, item: nil, expected_result: false4030 is true when the object is within the bounds of the range4031 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:x, :positioned?=true>, expected_result: false4032 is true when the object is within the bounds of the range4033 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:y, :positioned?=true>, expected_result: true4034 is true when the object is within the bounds of the range4035 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=150, object=:z, :positioned?=true>, expected_result: false4036 is true when the object is within the bounds of the range4037 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=40, object=:w, :positioned?=true>, expected_result: false4038 is true when the object is within the bounds of the range4039 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=250, object=:r, :positioned?=true>, expected_result: true4040 is true when the object is within the bounds of the range4041 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=100, object=:not_x, :positioned?=true>, expected_result: false4042 is true when the object is within the bounds of the range4043 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position=200, object=:not_y, :positioned?=true>, expected_result: false4044 is true when the object is within the bounds of the range4045 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: #<struct relative_position={:positioned?=>false}, object=nil, :positioned?=nil>, expected_result: false4046 is true when the object is within the bounds of the range4047 lhs: #<struct relative_position=200, object=:y, :positioned?=true>, rhs: nil, item: nil, expected_result: false4048 is true when the object is within the bounds of the range4049Gitlab::SQL::Pattern4050 .fuzzy_search4051 query: "foo", columns: [#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f7c4f3e8910 @name="issues", @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f7c4f3e88e8 @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)>, @table_alias=nil>, name="title">], expected: [:issue1]4052 finds the expected issues4053 query: "foo", columns: [:title], expected: [:issue1]4054 finds the expected issues4055 query: "foo", columns: ["title"], expected: [:issue1]4056 finds the expected issues4057 query: "foo", columns: [:description], expected: [:issue2]4058 finds the expected issues4059 query: "foo", columns: [:title, :description], expected: [:issue1, :issue2]4060 finds the expected issues4061 query: "bar", columns: [:title, :description], expected: [:issue1]4062 finds the expected issues4063 query: "baz", columns: [:title, :description], expected: [:issue2]4064 finds the expected issues4065 query: "qux", columns: [:title, :description], expected: []4066 finds the expected issues4067 query: "oh", columns: [:title, :description], expected: [:issue3]4068 finds the expected issues4069 query: "OH", columns: [:title, :description], expected: [:issue3]4070 finds the expected issues4071 query: "ah", columns: [:title, :description], expected: [:issue3]4072 finds the expected issues4073 query: "AH", columns: [:title, :description], expected: [:issue3]4074 finds the expected issues4075 query: "oh", columns: [:title], expected: [:issue3]4076 finds the expected issues4077 query: "ah", columns: [:description], expected: [:issue3]4078 finds the expected issues4079 query: "", columns: [:title], expected: [:issue1, :issue2, :issue3]4080 finds the expected issues4081 query: ["a", "b"], columns: [:title], expected: [:issue1, :issue2, :issue3]4082 finds the expected issues4083 .to_pattern4084 when a query is shorter than 3 chars4085 returns exact matching pattern4086 and ignore_minimum_char_limit is true4087 returns partial matching pattern4088 when a query with a escape character is shorter than 3 chars4089 returns sanitized exact matching pattern4090 and ignore_minimum_char_limit is true4091 returns sanitized partial matching pattern4092 when a query is equal to 3 chars4093 returns partial matching pattern4094 when a query with a escape character is equal to 3 chars4095 returns partial matching pattern4096 when a query is longer than 3 chars4097 returns partial matching pattern4098 when a query with a escape character is longer than 3 chars4099 returns sanitized partial matching pattern4100 .select_fuzzy_terms4101 with a word equal to 3 chars4102 returns array containing a word4103 with a word shorter than 3 chars4104 returns empty array4105 with two words both equal to 3 chars4106 returns array containing two words4107 with two words divided by two spaces both equal to 3 chars4108 returns array containing two words4109 with two words equal to 3 chars and shorter than 3 chars4110 returns array containing a word4111 .split_query_to_search_terms4112 with words separated by spaces4113 returns array containing individual words4114 with a multi-word surrounded by double quote4115 returns array containing a multi-word4116 with a multi-word surrounded by double quote and two words4117 returns array containing a multi-word and two words4118 with a multi-word surrounded by double quote missing a spece before the first double quote4119 returns array containing two words with double quote4120 with a multi-word surrounded by double quote missing a spece after the second double quote4121 returns array containing two words with double quote4122 with two multi-word surrounded by double quote and two words4123 returns array containing two multi-words and two words4124 .fuzzy_arel_match4125 with a word equal to 3 chars4126 returns a single ILIKE condition4127 with a word shorter than 3 chars4128 returns a single equality condition4129 uses LOWER instead of ILIKE when LOWER is enabled4130 with two words both equal to 3 chars4131 returns a joining LIKE condition using a AND4132 with two words both shorter than 3 chars4133 returns a single ILIKE condition4134 with two words, one shorter 3 chars4135 returns a single ILIKE condition using the longer word4136 with a multi-word surrounded by double quote and two words4137 returns a joining LIKE condition using a AND4138 when passing an Arel column4139 returns a condition with the table and column name4140Packages::Nuget::PackageFinder4141 #execute!4142 with a project4143 behaves like handling all the conditions4144 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4145 with lower case package name4146 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4147 with unknown package name4148 is expected to be empty4149 with an uninstallable package4150 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4151 with valid version4152 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4153 with varying case version4154 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4155 with unknown version4156 is expected to be empty4157 with limit hit4158 is expected to contain exactly #<Packages::Package id: 302, project_id: 849, created_at: "2022-12-08 11:05:07.656635058 +0000", upda...sion: "1.0.38", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 303, project_id: 849, created_at: "2022-12-08 11:05:07.680438447 +0000", upda...sion: "1.0.39", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4159 with downcase package name4160 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4161 with prefix wildcard4162 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4163 with suffix wildcard4164 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4165 with surrounding wildcards4166 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4167 with a subgroup4168 behaves like handling all the conditions4169 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4170 with lower case package name4171 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4172 with unknown package name4173 is expected to be empty4174 with an uninstallable package4175 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4176 with valid version4177 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4178 with varying case version4179 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4180 with unknown version4181 is expected to be empty4182 with limit hit4183 is expected to contain exactly #<Packages::Package id: 305, project_id: 849, created_at: "2022-12-08 11:05:11.017319049 +0000", upda...sion: "1.0.41", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 306, project_id: 849, created_at: "2022-12-08 11:05:11.042866599 +0000", upda...sion: "1.0.42", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4184 with downcase package name4185 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4186 with prefix wildcard4187 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4188 with suffix wildcard4189 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4190 with surrounding wildcards4191 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4192 with a group4193 behaves like handling all the conditions4194 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4195 with lower case package name4196 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4197 with unknown package name4198 is expected to be empty4199 with an uninstallable package4200 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4201 with valid version4202 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4203 with varying case version4204 is expected to contain exactly #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4205 with unknown version4206 is expected to be empty4207 with limit hit4208 is expected to contain exactly #<Packages::Package id: 308, project_id: 849, created_at: "2022-12-08 11:05:14.201803605 +0000", upda...sion: "1.0.44", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 309, project_id: 849, created_at: "2022-12-08 11:05:14.225435655 +0000", upda...sion: "1.0.45", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4209 with downcase package name4210 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4211 with prefix wildcard4212 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4213 with suffix wildcard4214 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4215 with surrounding wildcards4216 is expected to contain exactly #<Packages::Package id: 296, project_id: 849, created_at: "2022-12-08 11:05:05.254634000 +0000", upda...sion: "1.0.35", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 297, project_id: 849, created_at: "2022-12-08 11:05:05.285526433 +0000", upda...n: "2.0.0-ABC", package_type: "nuget", creator_id: 1401, status: "default", last_downloaded_at: nil>4217 with nil4218 is expected to be empty4219Clusters::CreateService4220 when provider is gcp4221 when project has no clusters4222 when correct params4223 creates a cluster object and performs a worker4224 when invalid params4225 returns an error4226 when project has a cluster4227 creates another cluster4228 when another cluster exists4229 when correct params4230 creates a cluster object and performs a worker4231 when invalid params4232 returns an error4233 when params includes :management_project_id4234 management_project is non-existent4235 does not persist the cluster and adds errors4236 project cluster4237 when user is authorized to adminster manangement_project4238 persists the cluster4239 when user is not authorized to adminster manangement_project4240 does not persist the cluster and adds errors4241 when manangement_project is outside of the namespace scope4242 does not persist the cluster4243 group cluster4244 when user is authorized to adminster manangement_project4245 persists the cluster4246 when user is not authorized to adminster manangement_project4247 does not persist the cluster and adds errors4248 when manangement_project is outside of the namespace scope4249 does not persist the cluster4250 instance cluster4251 when user is authorized to adminster manangement_project4252 persists the cluster4253 when user is not authorized to adminster manangement_project4254 does not persist the cluster and adds errors4255Metrics::Dashboard::Annotations::CreateService4256 .execute4257 with environment4258 with anonymous user4259 behaves like prevented annotation creation4260 returns error response4261 does not change db state4262 with maintainer user4263 behaves like executed annotation creation4264 returns success response4265 creates annotation4266 with cluster4267 with anonymous user4268 behaves like prevented annotation creation4269 returns error response4270 does not change db state4271 with maintainer user4272 behaves like executed annotation creation4273 returns success response4274 creates annotation4275 with owner user4276 behaves like executed annotation creation4277 returns success response4278 creates annotation4279 non cluster nor environment is supplied4280 behaves like annotation creation failure4281 returns error response4282 missing dashboard_path4283 with maintainer user4284 behaves like annotation creation failure4285 returns error response4286 incorrect dashboard_path4287 with maintainer user4288 behaves like prevented annotation creation4289 returns error response4290 does not change db state4291DiffsEntity4292 as json4293 contains needed attributes4294 broken merge request4295 renders without errors4296 when a commit_id is passed4297 when the passed commit is not the first or last in the group4298 includes commit references for previous and next4299 when the passed commit is the first in the group4300 includes commit references for nil and previous commit4301 when the passed commit is the last in the group4302 includes commit references for the next and nil4303 diff_files4304 serializes diff files using DiffFileEntity4305 when merge_conflicts_in_diff is true4306 serializes diff files with conflicts4307Search::GroupService4308 basic search4309 finding projects by name4310 in parent group4311 is expected to contain exactly #<Project id:886 group153/group152/inner_project_name_1>>, #<Project id:887 group153/group152/inner_project_name_2>>, and #<Project id:888 group153/outer_project_name>>4312 in subgroup4313 is expected to contain exactly #<Project id:892 group155/group154/inner_project_name_1>> and #<Project id:893 group155/group154/inner_project_name_2>>4314 issues4315 sorting4316 sort: created_desc4317 sorts results by created_at4318 sort: created_asc4319 sorts results by created_at4320 sort: updated_desc4321 sorts results by updated_desc4322 sort: updated_asc4323 sorts results by updated_asc4324 merge requests4325 sorting4326 sort: created_desc4327 sorts results by created_at4328 sort: created_asc4329 sorts results by created_at4330 sort: updated_desc4331 sorts results by updated_desc4332 sort: updated_asc4333 sorts results by updated_asc4334Clusters::ClusterPresenter4335 inherits from Gitlab::View::Presenter::Delegated4336 #initialize4337 takes a cluster and optional params4338 exposes cluster4339 forwards missing methods to cluster4340 #provider_label4341 AWS provider4342 is expected to eq "Elastic Kubernetes Service"4343 GCP provider4344 is expected to eq "Google Kubernetes Engine"4345 #provider_management_url4346 AWS provider4347 is expected to include "us-east-1"4348 is expected to include "test-cluster"4349 GCP provider4350 is expected to include "us-central1-a"4351 is expected to include "test-cluster"4352 #show_path4353 project_type cluster4354 is expected to eq "/namespace948/project1014/-/clusters/42"4355 group_type cluster4356 is expected to eq "/groups/group161/-/clusters/45"4357 instance_type cluster4358 is expected to eq "/admin/clusters/48"4359 #read_only_kubernetes_platform_fields?4360 with a user-provided cluster4361 is expected to be falsy4362 with a GCP-provided cluster4363 is expected to be truthy4364 #health_data4365 with project cluster4366 behaves like cluster health data4367 is expected to include {:"clusters-path" => "/namespace949/project1015/-/clusters", :"dashboard-endpoint" => "/namespace949/project1015/-/clusters/51/metrics_dashboard", :"documentation-path" => "/help/user/infrastructure/clusters/manage/clusters_health", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}4368 with group cluster4369 behaves like cluster health data4370 is expected to include {:"clusters-path" => "/groups/group162/-/clusters", :"dashboard-endpoint" => "/groups/group162/-/clusters/54/metrics_dashboard", :"documentation-path" => "/help/user/infrastructure/clusters/manage/clusters_health", :"add-dashboard-documentation-path" => "/help/operations/metrics/dashboards/index.md#add-a-new-dashboard-to-your-project", :"empty-getting-started-svg-path" => (match asset path "/assets/illustrations/monitoring/getting_started.svg"), :"empty-loading-svg-path" => (match asset path "/assets/illustrations/monitoring/loading.svg"), :"empty-no-data-svg-path" => (match asset path "/assets/illustrations/monitoring/no_data.svg"), :"empty-no-data-small-svg-path" => (match asset path "illustrations/chart-empty-state-small.svg"), :"empty-unable-to-connect-svg-path" => (match asset path "/assets/illustrations/monitoring/unable_to_connect.svg"), :"settings-path" => "", :"project-path" => "", :"tags-path" => ""}4371Projects::Members::EffectiveAccessLevelFinder#execute4372 for a personal project4373 when the project owner is a member of the project4374 behaves like includes access level of the owner of the project4375 includes access level of the owner of the project as Owner4376 when the project owner is not explicitly a member of the project4377 behaves like includes access level of the owner of the project4378 includes access level of the owner of the project as Owner4379 direct members of the project4380 includes access levels of the direct members of the project4381 does not include access levels of users who have requested access to the project4382 includes access levels of users who are in non-active state4383 for a project within a group4384 project in a root group4385 includes access levels of users who are direct members of the parent group4386 when access level is developer4387 when access level is owner4388 project in a subgroup4389 includes access levels of users who are members of the ancestors of the parent group4390 user is both a member of the project and a member of the parent group4391 includes the maximum access level among project and group membership4392 members from group share4393 includes the user from the group share with the right access level4394 when the project also has the same user as a member, but with a different access level4395 includes the maximum access level among project and group membership4396 when the project's ancestor also has the same user as a member, but with a different access level4397 includes the maximum access level among project and group membership4398 for a project that is shared with other group(s)4399 includes the least among the specified access levels4400 even when the `lock_memberships_to_ldap` setting has been turned ON4401 includes the least among the specified access levels4402 when the group containing the project has forbidden group shares for any of its projects4403 does not include the users from any group shares4404 a combination of all possible avenues of membership4405 includes the highest access level from all avenues of memberships4406MergeRequests::RemoveApprovalService4407 #execute4408 with a user who has approved4409 removes the approval4410 creates an unapproval note, triggers a web hook, and sends a notification4411 tracks merge request unapprove action4412 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated4413 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:66 namespace957/project1023!1>) 1 time4414 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4415 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:67 namespace958/project1024!1>) 1 time4416 behaves like triggers GraphQL subscription mergeRequestApprovalStateUpdated4417 is expected to receive merge_request_approval_state_updated(#<MergeRequest id:68 namespace959/project1025!1>) 1 time4418 with a user who has not approved4419 does not create an unapproval note and triggers web hook4420 does not track merge request unapprove action4421 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated4422 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times4423 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4424 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4425 behaves like does not trigger GraphQL subscription mergeRequestApprovalStateUpdated4426 is expected not to receive merge_request_approval_state_updated(*(any args)) 0 times4427Mutations::Issues::SetConfidential4428 is expected to require graphql authorizations :update_issue4429 #resolve4430 behaves like permission level for issue mutation is correctly verified4431 when the user is not a project member4432 behaves like when the user does not have access to the resource4433 raises an error4434 even if assigned to the issue4435 does not modify issue4436 even if author of the issue4437 does not modify issue4438 when the user is a project member4439 with guest role4440 behaves like when the user does not have access to the resource4441 raises an error4442 even if assigned to the issue4443 does not modify issue4444 even if author of the issue4445 does not modify issue4446 when the user can update the issue4447 returns the issue as confidential4448 when passing confidential as false4449 updates the issue confidentiality to false4450 when guest user is an assignee4451 does not change issue confidentiality4452lograge4453 for API requests4454 logs to api_json log4455 limits param size4456 for Controller requests4457 logs to production_json log4458 logs cpu_s on supported platform4459 does not log cpu_s on unsupported platform4460 limits param size4461 when logging memory allocations4462 logs memory usage metrics4463 with a log subscriber4464 with an exception4465 adds exception data to log4466 with an ActiveRecord::StatementInvalid4467 adds the SQL query to the log4468 with etag_route4469 adds etag_route to log4470 with access token in url4471 strips location from sensitive information4472 leaves non-sensitive information from location4473 with db payload4474 when RequestStore is enabled4475 includes db counters4476 when RequestStore is disabled4477 does not include db counters4478 with db payload4479 when RequestStore is enabled4480 includes db counters for load balancing4481 when RequestStore is disabled4482 does not include db counters for load balancing4483Gitlab::Middleware::ReadOnly4484 when database is read-only4485 behaves like write access for a read-only GitLab instance4486 normal requests to a read-only GitLab instance4487 expects PATCH requests to be disallowed4488 expects PUT requests to be disallowed4489 expects POST requests to be disallowed4490 expects a internal POST request to be allowed after a disallowed request4491 expects DELETE requests to be disallowed4492 expects POST of new file that looks like an LFS batch url to be disallowed4493 returns last_vistited_url for disallowed request4494 allowlisted requests4495 expects a POST internal request to be allowed4496 expects a POST internal request with trailing slash to be allowed4497 expects a graphql request to be allowed4498 expects a graphql request with trailing slash to be allowed4499 relative URL is configured4500 expects a graphql request to be allowed4501 expects a graphql request with trailing slash to be allowed4502 sidekiq admin requests4503 mounted_at: ""4504 allows requests4505 allows requests with trailing slash4506 mounted_at: "/"4507 allows requests4508 allows requests with trailing slash4509 mounted_at: "/gitlab"4510 allows requests4511 allows requests with trailing slash4512 mounted_at: "/gitlab/"4513 allows requests4514 allows requests with trailing slash4515 mounted_at: "/gitlab/gitlab"4516 allows requests4517 allows requests with trailing slash4518 mounted_at: "/gitlab/gitlab/"4519 allows requests4520 allows requests with trailing slash4521 description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch"4522 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL to be allowed4523 expects a POST description: "LFS request to batch", path: "/root/rouge.git/info/lfs/objects/batch" URL with trailing slash to be allowed4524 description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack"4525 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL to be allowed4526 expects a POST description: "request to git-upload-pack", path: "/root/rouge.git/git-upload-pack" URL with trailing slash to be allowed4527 description: "user sign out", path: "/users/sign_out"4528 expects a POST description: "user sign out", path: "/users/sign_out" URL to be allowed4529 expects a POST description: "user sign out", path: "/users/sign_out" URL with trailing slash to be allowed4530 description: "admin session", path: "/admin/session"4531 expects a POST description: "admin session", path: "/admin/session" URL to be allowed4532 expects a POST description: "admin session", path: "/admin/session" URL with trailing slash to be allowed4533 description: "admin session destroy", path: "/admin/session/destroy"4534 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL to be allowed4535 expects a POST description: "admin session destroy", path: "/admin/session/destroy" URL with trailing slash to be allowed4536 description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify"4537 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL not to be allowed4538 expects a POST description: "LFS request to locks verify", path: "/root/rouge.git/info/lfs/locks/verify" URL with trailing slash not to be allowed4539 description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks"4540 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL not to be allowed4541 expects a POST description: "LFS request to locks create", path: "/root/rouge.git/info/lfs/locks" URL with trailing slash not to be allowed4542 description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock"4543 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL not to be allowed4544 expects a POST description: "LFS request to locks unlock", path: "/root/rouge.git/info/lfs/locks/1/unlock" URL with trailing slash not to be allowed4545 JSON requests to a read-only GitLab instance4546 expects PATCH requests to be disallowed4547 expects PUT requests to be disallowed4548 expects POST requests to be disallowed4549 expects DELETE requests to be disallowed4550notify/pipeline_fixed_email.text.erb4551 behaves like pipeline status changes email4552 when the pipeline contains a failed job4553 behaves like renders the pipeline status changes email correctly4554 pipeline with user4555 renders the email correctly4556 behaves like correct pipeline information for pipelines for merge requests4557 when pipeline for merge request4558 renders a source ref of the pipeline4559 pipeline without user4560 renders the email correctly4561 when the latest failed job is a bridge job4562 behaves like renders the pipeline status changes email correctly4563 pipeline with user4564 renders the email correctly4565 behaves like correct pipeline information for pipelines for merge requests4566 when pipeline for merge request4567 renders a source ref of the pipeline4568 pipeline without user4569 renders the email correctly4570Gitlab::Email::Receiver4571 requires all handlers to have a unique metric_event4572 requires all handlers to respond to #project4573 when the email contains a valid email address in a header4574 when in a Delivered-To header4575 behaves like successful receive4576 correctly finds the mail key4577 adds metric event4578 returns valid metadata4579 when in an Envelope-To header4580 behaves like successful receive4581 correctly finds the mail key4582 adds metric event4583 returns valid metadata4584 when in an X-Envelope-To header4585 behaves like successful receive4586 correctly finds the mail key4587 adds metric event4588 returns valid metadata4589 when enclosed with angle brackets in an Envelope-To header4590 behaves like successful receive4591 correctly finds the mail key4592 adds metric event4593 returns valid metadata4594 when all other headers are missing4595 it uses receive headers to find the key4596 behaves like successful receive4597 correctly finds the mail key4598 adds metric event4599 returns valid metadata4600 when we cannot find a capable handler4601 behaves like failed receive with event4602 adds metric event4603 when the email is blank4604 behaves like failed receive without event4605 adds metric event4606 when the email was auto generated with Auto-Submitted header4607 behaves like failed receive without event4608 adds metric event4609 when the email's To field is blank4610 behaves like successful receive4611 correctly finds the mail key4612 adds metric event4613 returns valid metadata4614 when the email's From field is blank4615 behaves like successful receive4616 correctly finds the mail key4617 adds metric event4618 returns valid metadata4619 when the email was auto generated with X-Autoreply header4620 behaves like failed receive without event4621 adds metric event4622 event raising via errors4623 handling errors which do not raise events4624 expected_error: Gitlab::Email::AutoGeneratedEmailError4625 behaves like failed receive without event4626 adds metric event4627 expected_error: Gitlab::Email::ProjectNotFound4628 behaves like failed receive without event4629 adds metric event4630 expected_error: Gitlab::Email::EmptyEmailError4631 behaves like failed receive without event4632 adds metric event4633 expected_error: Gitlab::Email::UserNotFoundError4634 behaves like failed receive without event4635 adds metric event4636 expected_error: Gitlab::Email::UserBlockedError4637 behaves like failed receive without event4638 adds metric event4639 expected_error: Gitlab::Email::UserNotAuthorizedError4640 behaves like failed receive without event4641 adds metric event4642 expected_error: Gitlab::Email::NoteableNotFoundError4643 behaves like failed receive without event4644 adds metric event4645 expected_error: Gitlab::Email::InvalidAttachment4646 behaves like failed receive without event4647 adds metric event4648 expected_error: Gitlab::Email::InvalidRecordError4649 behaves like failed receive without event4650 adds metric event4651 expected_error: Gitlab::Email::EmailTooLarge4652 behaves like failed receive without event4653 adds metric event4654 handling errors which do raise events4655 expected_error: Gitlab::Email::EmailUnparsableError4656 behaves like failed receive with event4657 adds metric event4658 expected_error: Gitlab::Email::UnknownIncomingEmail4659 behaves like failed receive with event4660 adds metric event4661 expected_error: ArgumentError4662 behaves like failed receive with event4663 adds metric event4664 expected_error: StandardError4665 behaves like failed receive with event4666 adds metric event4667Projects::OpenIssuesCountService4668 behaves like a counter caching service4669 #count4670 caches the count4671 #refresh_cache4672 refreshes the cache4673 #delete_cache4674 removes the cache4675 #uncached_count4676 does not cache the count4677 #count4678 when user is nil4679 does not include confidential issues in the issue count4680 when user is provided4681 when user can read confidential issues4682 returns the right count with confidential issues4683 uses total_open_issues_count cache key4684 when user cannot read confidential issues4685 does not include confidential issues4686 uses public_open_issues_count cache key4687 #refresh_cache4688 when cache is empty4689 refreshes cache keys correctly4690 when cache is outdated4691 refreshes cache keys correctly4692Ci::BuildTraceChunks::Fog4693 #available?4694 when object storage is enabled4695 is expected to be truthy4696 when object storage is disabled4697 is expected to be falsy4698 #data4699 when data exists4700 returns the data4701 when data does not exist4702 returns nil4703 #set_data4704 when data exists4705 overwrites data4706 when data does not exist4707 sets new data4708 when S3 server side encryption is enabled4709 creates a file with attributes4710 #append_data4711 appends ASCII data4712 appends UTF-8 data4713 when initial data is UTF-84714 appends ASCII data4715 #delete_data4716 when data exists4717 deletes data4718 when data does not exist4719 does nothing4720 #size4721 when data exists4722 returns data bytesize correctly4723 when data does not exist4724 returns zero4725 #keys4726 returns keys4727 #delete_keys4728 deletes multiple data4729Packages::Debian::ProjectComponentFile4730 behaves like Debian Component File4731 relationships4732 with stubbed uploader4733 is expected to belong to component class_name => Packages::Debian::ProjectComponent required: false inverse_of => files4734 with packages file_type4735 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture required: false inverse_of => files4736 with :sources file_type4737 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture inverse_of => files optional: true4738 validations4739 #component4740 is expected to validate that :component cannot be empty/falsy4741 #architecture4742 with packages file_type4743 is expected to validate that :architecture cannot be empty/falsy4744 with :sources file_type4745 is expected to validate that :architecture is empty/falsy4746 #file_type4747 is expected to validate that :file_type cannot be empty/falsy4748 is expected to allow :file_type to be ‹:packages›4749 #compression_type4750 is expected not to validate that :compression_type cannot be empty/falsy4751 is expected to allow :compression_type to be ‹nil›4752 is expected to allow :compression_type to be ‹:gz›4753 #file4754 the uploader api4755 is expected to respond to #store_dir4756 is expected to respond to #cache_dir4757 is expected to respond to #work_dir4758 #file_store4759 is expected to validate that :file_store cannot be empty/falsy4760 #file_md54761 is expected to validate that :file_md5 cannot be empty/falsy4762 #file_sha2564763 is expected to validate that :file_sha256 cannot be empty/falsy4764 scopes4765 .with_container4766 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 7, created_at: "2022-12-08 11:07:41.106258688 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4767 .with_codename_or_suite4768 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 7, created_at: "2022-12-08 11:07:41.106258688 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4769 .with_component_name4770 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 3, created_at: "2022-12-08 11:07:41.064801159 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4771 .with_file_type4772 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 8, created_at: "2022-12-08 11:07:41.116554000 +0000", up...1, file: "Sources", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4773 .with_architecture4774 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2022-12-08 11:07:41.056169029 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4775 .with_architecture_name4776 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2022-12-08 11:07:41.056169029 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4777 .with_compression_type4778 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 4, created_at: "2022-12-08 11:07:41.076829919 +0000", up..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4779 .with_file_sha2564780 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 6, created_at: "2022-12-08 11:07:41.097384318 +0000", up...ion_type: nil, file_store: 1, file: "Packages", file_md5: "12345abcde", file_sha256: "other_sha256">4781 .updated_before4782 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 10, created_at: "2022-12-08 11:07:43.022531893 +0000", u..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::ProjectComponentFile id: 11, created_at: "2022-12-08 11:07:43.033511973 +0000", u..., file: "Packages", file_md5: "12345abcde", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">4783 callbacks4784 updates metadata columns4785 #relative_path4786 with a Packages file_type4787 is expected to eq "project-component-1/binary-project-arch-1/Packages"4788 with a Source file_type4789 is expected to eq "project-component-1/source/Sources"4790 with a DI Packages file_type4791 is expected to eq "project-component-1/debian-installer/binary-project-arch-1/Packages"4792 with an xz compression_type4793 is expected to eq "project-component-1/binary-project-arch-1/Packages.xz"4794Files::UpdateService4795 #execute4796 when the file's last commit sha does not match the supplied last_commit_sha4797 returns a hash with the correct error message and a :error status4798 when the file's last commit sha does match the supplied last_commit_sha4799 returns a hash with the :success status4800 updates the file with the new contents4801 uses the commit email4802 when the last_commit_sha is not supplied4803 returns a hash with the :success status4804 updates the file with the new contents4805Gitlab::DatabaseImporters::InstanceAdministrators::CreateGroup4806 #execute4807 without application_settings4808 returns error4809 without admin users4810 returns error4811 with application settings and admin users4812 returns correct keys4813 tracks successful install4814 creates group4815 adds all admins as maintainers4816 saves the group id4817 returns error when saving group ID fails4818 when group already exists4819 returns success4820 when group cannot be created4821 returns error4822 when user cannot be added to group4823 returns error4824Sidebars::Projects::Menus::SettingsMenu4825 #render?4826 returns false when menu does not have any menu items4827 Menu items4828 General4829 behaves like access rights checks4830 is expected not to be nil4831 when the user does not have access4832 is expected to be nil4833 Integrations4834 behaves like access rights checks4835 is expected not to be nil4836 when the user does not have access4837 is expected to be nil4838 Webhooks4839 behaves like access rights checks4840 is expected not to be nil4841 when the user does not have access4842 is expected to be nil4843 Access Tokens4844 behaves like access rights checks4845 is expected not to be nil4846 when the user does not have access4847 is expected to be nil4848 Repository4849 behaves like access rights checks4850 is expected not to be nil4851 when the user does not have access4852 is expected to be nil4853 CI/CD4854 when project is archived4855 is expected to be nil4856 when project is not archived4857 is expected not to be nil4858 when the user does not have access4859 is expected to be nil4860 Monitor4861 when project is archived4862 is expected to be nil4863 when project is not archived4864 is expected not to be nil4865 is expected to eq "Monitor"4866 when the user does not have access4867 is expected to be nil4868 Pages4869 when pages are enabled4870 is expected not to be nil4871 when the user does not have access4872 is expected to be nil4873 when pages are not enabled4874 is expected to be nil4875 Merge requests4876 behaves like access rights checks4877 is expected not to be nil4878 when the user does not have access4879 is expected to be nil4880 Packages and registries4881 when container registry setting is disabled4882 is expected to be nil4883 when container registry setting is enabled4884 is expected not to be nil4885 when the user does not have access4886 is expected to be nil4887 when package registry setting is enabled4888 is expected not to be nil4889 when the user does not have access4890 is expected to be nil4891 Usage Quotas4892 is expected not to be nil4893 when the user does not have access4894 is expected to be nil4895Gitlab::Ci::Config::Entry::Cache4896 validations4897 when entry config value is correct4898 #value4899 behaves like hash key value4900 returns hash value4901 with files4902 behaves like hash key value4903 returns hash value4904 with files and prefix4905 behaves like hash key value4906 returns hash value4907 with prefix4908 key is nil4909 with `policy`4910 policy: "pull-push", result: "pull-push"4911 is expected to include {:policy => "pull-push"}4912 policy: "push", result: "push"4913 is expected to include {:policy => "push"}4914 policy: "pull", result: "pull"4915 is expected to include {:policy => "pull"}4916 policy: "unknown", result: "unknown"4917 is expected to include {:policy => "unknown"}4918 without `policy`4919 assigns policy to default4920 with `when`4921 when_config: "on_success", result: "on_success"4922 is expected to include {:when => "on_success"}4923 when_config: "on_failure", result: "on_failure"4924 is expected to include {:when => "on_failure"}4925 when_config: "always", result: "always"4926 is expected to include {:when => "always"}4927 when_config: "unknown", result: "unknown"4928 is expected to include {:when => "unknown"}4929 without `when`4930 assigns when to default4931 #valid?4932 is expected to be valid4933 with files4934 is expected to be valid4935 with `policy`4936 policy: "pull-push", valid: true4937 returns expected validity4938 policy: "push", valid: true4939 returns expected validity4940 policy: "pull", valid: true4941 returns expected validity4942 policy: "unknown", valid: false4943 returns expected validity4944 with `when`4945 when_config: "on_success", valid: true4946 returns expected validity4947 when_config: "on_failure", valid: true4948 returns expected validity4949 when_config: "always", valid: true4950 returns expected validity4951 when_config: "unknown", valid: false4952 returns expected validity4953 with key missing4954 #value4955 sets key with the default4956 when entry value is not correct4957 #errors4958 when is not a hash4959 reports errors with config value4960 when descendants are invalid4961 with invalid keys4962 reports error with descendants4963 with empty key4964 reports error with descendants4965 with invalid files4966 reports error with descendants4967 with prefix without files4968 reports error with descendants4969 when there is an unknown key present4970 reports error with descendants4971 when there is an unknown key present4972 reports error with descendants4973 when the `when` keyword is not a valid string4974 when `when` is unknown4975 returns error4976 when it is an array4977 returns error4978 when it is a boolean4979 returns error4980 when the `policy` keyword is not a valid string4981 when `policy` is unknown4982 returns error4983 when it is an array4984 returns error4985 when it is a boolean4986 returns error4987Users::ApproveService4988 #execute4989 failures4990 when the executor user is not allowed to approve users4991 returns error result4992 when the executor user is an admin not in admin mode4993 returns error result4994 when the executor user is an admin in admin mode4995 when user is not in pending approval state4996 returns error result4997 when user cannot be activated4998 returns error result4999 does not change the state of the user5000 success5001 when the executor user is an admin in admin mode5002 activates the user5003 logs approval in application logs5004 emails the user on approval5005 email confirmation status5006 user is unconfirmed5007 sends confirmation instructions5008 user is confirmed5009 does not send a confirmation email5010 audit events5011 when not licensed5012 does not log any audit event5013 pending invitations5014 user is unconfirmed5015 does not accept pending invites of the user5016 user is confirmed5017 accepts pending invites of the user5018Resolvers::ContainerRepositoriesResolver5019 #resolve5020 with authorized user5021 when the object is a project5022 behaves like returning container repositories5023 is expected to contain exactly #<ContainerRepository id: 1, project_id: 972, name: "test_image_1", created_at: "2022-12-08 11:08:15....ion_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>5024 with a named search5025 is expected to contain exactly #<ContainerRepository id: 2, project_id: 972, name: "Foobar", created_at: "2022-12-08 11:08:15.449633...ion_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>5026 with a sort argument5027 created_desc5028 is expected to eq [#<ContainerRepository id: 4, project_id: 973, name: "foo", created_at: "2022-12-08 10:08:16.44526859...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5029 updated_asc5030 is expected to eq [#<ContainerRepository id: 4, project_id: 973, name: "foo", created_at: "2022-12-08 10:08:16.44526859...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5031 name_desc5032 is expected to eq [#<ContainerRepository id: 4, project_id: 973, name: "foo", created_at: "2022-12-08 10:08:16.44526859...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5033 created_asc5034 is expected to eq [#<ContainerRepository id: 3, project_id: 973, name: "bar", created_at: "2022-12-07 11:08:16.43422704...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5035 updated_desc5036 is expected to eq [#<ContainerRepository id: 3, project_id: 973, name: "bar", created_at: "2022-12-07 11:08:16.43422704...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5037 name_asc5038 is expected to eq [#<ContainerRepository id: 3, project_id: 973, name: "bar", created_at: "2022-12-07 11:08:16.43422704...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5039 when the object is a group5040 behaves like returning container repositories5041 is expected to contain exactly #<ContainerRepository id: 1, project_id: 972, name: "test_image_1", created_at: "2022-12-08 11:08:15....ion_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>5042 with a named search5043 is expected to contain exactly #<ContainerRepository id: 5, project_id: 972, name: "Foobar", created_at: "2022-12-08 11:08:19.000545...ion_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>5044 with a sort argument5045 created_desc5046 is expected to eq [#<ContainerRepository id: 7, project_id: 974, name: "foo", created_at: "2022-12-08 10:08:19.72079601...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5047 updated_asc5048 is expected to eq [#<ContainerRepository id: 7, project_id: 974, name: "foo", created_at: "2022-12-08 10:08:19.72079601...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5049 name_desc5050 is expected to eq [#<ContainerRepository id: 7, project_id: 974, name: "foo", created_at: "2022-12-08 10:08:19.72079601...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5051 created_asc5052 is expected to eq [#<ContainerRepository id: 6, project_id: 974, name: "bar", created_at: "2022-12-07 11:08:19.71288791...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5053 updated_desc5054 is expected to eq [#<ContainerRepository id: 6, project_id: 974, name: "bar", created_at: "2022-12-07 11:08:19.71288791...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5055 name_asc5056 is expected to eq [#<ContainerRepository id: 6, project_id: 974, name: "bar", created_at: "2022-12-07 11:08:19.71288791...on_plan: nil, last_cleanup_deleted_tags_count: nil, delete_started_at: nil, status_updated_at: nil>]5057 when the object is an invalid type5058 is expected to raise Exception with "invalid subject_type"5059 with unauthorized user5060 is expected to equal nil5061Gitlab::Shell5062 is expected to respond to #remove_repository5063 .secret_token5064 memoized secret_token5065 behaves like creates and links the secret token file5066 creates and links the secret token file5067 when link_file is a broken symbolic link5068 behaves like creates and links the secret token file5069 creates and links the secret token file5070 when secret_file exists5071 reads the token from the existing file5072 behaves like creates and links the secret token file5073 creates and links the secret token file5074 projects commands5075 #remove_repository5076 returns true when the command succeeds5077 keeps the namespace directory5078 #mv_repository5079 returns true when the command succeeds5080 returns false when the command fails5081 namespace actions5082 #add_namespace5083 creates a namespace5084 #repository_exists?5085 when the repository does not exist5086 returns false5087 when the repository exists5088 returns true5089 #remove5090 removes the namespace5091 #mv_namespace5092 renames the namespace5093Sidebars::Projects::Menus::AnalyticsMenu5094 #render?5095 whe user cannot read analytics5096 returns false5097 whe user can read analytics5098 returns true5099 when menu does not have any menu items5100 returns false5101 when menu has menu items5102 returns true5103 #link5104 returns link to the value stream page5105 when Value Stream is not visible5106 returns link to the the first visible menu item5107 Menu items5108 CI/CD5109 is expected not to be nil5110 when the project repository is empty5111 is expected to be nil5112 when builds access level is DISABLED5113 is expected to be nil5114 when the user does not have access5115 is expected to be nil5116 Repository5117 is expected not to be nil5118 when the project repository is empty5119 is expected to be nil5120 when a user does not have access to repository graphs5121 is expected to be nil5122 when the user does not have access5123 is expected to be nil5124 Value Stream5125 is expected not to be nil5126 when the user does not have access5127 is expected to be nil5128 when issues are disabled5129 is expected not to be nil5130 when merge requests are disabled5131 is expected not to be nil5132 when the issues and merge requests are disabled5133 is expected to be nil5134MergeWorker5135 remove source branch5136 clears cache of source repo after removing source branch5137 behaves like an idempotent worker5138 is labeled as idempotent5139 performs multiple times sequentially without raising an exception5140 the merge request is still shown as merged5141Gitlab::Runtime5142 when unknown5143 .identify5144 raises an exception when trying to identify5145 .safe_identify5146 returns nil5147 on multiple matches5148 .identify5149 raises an exception when trying to identify5150 .safe_identify5151 returns nil5152 puma without cli_config5153 behaves like valid runtime5154 identifies itself5155 does not identify as others5156 reports its maximum concurrency5157 puma with cli_config5158 identifies as an application runtime5159 behaves like valid runtime5160 identifies itself5161 does not identify as others5162 reports its maximum concurrency5163 when ActionCable worker pool size is configured5164 behaves like valid runtime5165 identifies itself5166 does not identify as others5167 reports its maximum concurrency5168 .puma_in_clustered_mode?5169 when Puma is set up with workers > 05170 is expected to equal true5171 when Puma is set up with workers = 05172 is expected to equal false5173 sidekiq5174 identifies as an application runtime5175 behaves like valid runtime5176 identifies itself5177 does not identify as others5178 reports its maximum concurrency5179 console5180 does not identify as an application runtime5181 behaves like valid runtime5182 identifies itself5183 does not identify as others5184 reports its maximum concurrency5185 test suite5186 does not identify as an application runtime5187 behaves like valid runtime5188 identifies itself5189 does not identify as others5190 reports its maximum concurrency5191 geo log cursor5192 behaves like valid runtime5193 identifies itself5194 does not identify as others5195 reports its maximum concurrency5196 rails runner5197 does not identify as an application runtime5198 behaves like valid runtime5199 identifies itself5200 does not identify as others5201 reports its maximum concurrency5202Feature::Definition5203 #key5204 returns a symbol from name5205 #validate!5206 param: :name, value: "colon:separated", result: /Feature flag 'colon:separated' is invalid/5207 is expected to raise /Feature flag 'colon:separated' is invalid/5208 param: :name, value: "space separated", result: /Feature flag 'space separated' is invalid/5209 is expected to raise /Feature flag 'space separated' is invalid/5210 param: :name, value: "ALL_CAPS", result: /Feature flag 'ALL_CAPS' is invalid/5211 is expected to raise /Feature flag 'ALL_CAPS' is invalid/5212 param: :name, value: nil, result: /Feature flag is missing name/5213 is expected to raise /Feature flag is missing name/5214 param: :path, value: nil, result: /Feature flag 'feature_flag' is missing path/5215 is expected to raise /Feature flag 'feature_flag' is missing path/5216 param: :type, value: nil, result: /Feature flag 'feature_flag' is missing type/5217 is expected to raise /Feature flag 'feature_flag' is missing type/5218 param: :type, value: "invalid", result: /Feature flag 'feature_flag' type 'invalid' is invalid/5219 is expected to raise /Feature flag 'feature_flag' type 'invalid' is invalid/5220 param: :path, value: "development/invalid.yml", result: /Feature flag 'feature_flag' has an invalid path/5221 is expected to raise /Feature flag 'feature_flag' has an invalid path/5222 param: :path, value: "invalid/feature_flag.yml", result: /Feature flag 'feature_flag' has an invalid type/5223 is expected to raise /Feature flag 'feature_flag' has an invalid type/5224 param: :default_enabled, value: nil, result: /Feature flag 'feature_flag' is missing default_enabled/5225 is expected to raise /Feature flag 'feature_flag' is missing default_enabled/5226 #valid_usage!5227 validates type5228 raises exception for invalid type5229 .paths5230 returns at least one path5231 .load_from_file5232 properly loads a definition from file5233 for missing file5234 raises exception5235 for invalid definition5236 raises exception5237 .load_all!5238 when there's no feature flags a list of definitions is empty5239 when there's a single feature flag it properly loads them5240 when the same feature flag is stored multiple times raises exception5241 when one of the YAMLs is invalid it does raise exception5242 .for_upcoming_milestone?5243 ctx: "no milestone", milestone: nil, current_milestone: "1.0.0", expected: false5244 is expected to equal false5245 ctx: "upcoming milestone - major", milestone: "2.3", current_milestone: "1.9.999", expected: true5246 is expected to equal true5247 ctx: "upcoming milestone - minor", milestone: "2.3", current_milestone: "2.2.999", expected: true5248 is expected to equal true5249 ctx: "current milestone", milestone: "2.3", current_milestone: "2.3.999", expected: true5250 is expected to equal true5251 ctx: "past milestone - major", milestone: "1.9", current_milestone: "2.3.999", expected: false5252 is expected to equal false5253 ctx: "past milestone - minor", milestone: "2.2", current_milestone: "2.3.999", expected: false5254 is expected to equal false5255 .valid_usage!5256 when a known feature flag is used5257 validates it usage5258 when an unknown feature flag is used5259 for a type that is required to have all feature flags registered5260 raises exception5261 for a type that is optional5262 does not raise exception5263 for an unknown type5264 raises exception5265 .log_states?5266 ctx: "When flag does not exist", key: :no_flag, milestone: "0.0", log_state_change: true, expected: false5267 is expected to equal false5268 ctx: "When flag is old, and logging is not forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: false, expected: false5269 is expected to equal false5270 ctx: "When flag is old, but logging is forced", key: :enabled_feature_flag, milestone: "0.0", log_state_change: true, expected: true5271 is expected to equal true5272 ctx: "When flag is current", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true5273 is expected to equal true5274 ctx: "Flag is upcoming", key: :enabled_feature_flag, milestone: "10.0", log_state_change: true, expected: true5275 is expected to equal true5276 .default_enabled?5277 when feature flag exist5278 when default_enabled is true5279 returns the value from the definition5280 when default_enabled is false5281 returns the value from the definition5282 when feature flag does not exist5283 when passing default value5284 returns default value5285 when default value is undefined5286 when on dev or test environment5287 raises an error5288 when on production environment5289 returns false5290DesignManagement::DesignCollection5291 .find_or_create_design!5292 finds an existing design5293 creates a new design if one didn't exist5294 only queries the designs once5295 inserts the design after any existing designs5296 #copy_state5297 defaults to ready5298 persists its state changes between initializations5299 state: "ready", can_start: true, can_end: false, can_error: true, can_reset: true5300 maintains state machine transition rules5301 state: "in_progress", can_start: false, can_end: true, can_error: true, can_reset: true5302 maintains state machine transition rules5303 state: "error", can_start: false, can_end: false, can_error: false, can_reset: true5304 maintains state machine transition rules5305 clearing the redis cached state when state changes back to ready5306 clears the cached state on end_copy!5307 clears the cached state on reset_copy!5308 #empty?5309 is true when the design collection has no designs5310 is false when the design collection has designs5311 #versions5312 includes versions for all designs5313 #repository5314 builds a design repository5315 #designs_by_filename5316 finds all the designs with those filenames on this issue5317 only makes a single query5318 some are deleted5319 takes deletion into account5320Gitlab::Ci::Config::Entry::Policy5321 when using simplified policy5322 validations5323 when entry config value is valid5324 when config is a branch or tag name5325 #valid?5326 is valid5327 #value5328 returns refs hash5329 when config is a regexp5330 #valid?5331 is valid5332 when config is an empty regexp5333 #valid?5334 is valid5335 when using unsafe regexp5336 is not valid5337 when config is a special keyword5338 #valid?5339 is valid5340 when entry value is not valid5341 #errors5342 saves errors5343 when using complex policy5344 when specifying refs policy5345 is a correct configuraton5346 when using unsafe regexp5347 is not valid5348 when specifying kubernetes policy5349 is a correct configuraton5350 when specifying invalid kubernetes policy5351 reports an error about invalid policy5352 when specifying valid variables expressions policy5353 is a correct configuraton5354 when specifying variables expressions in invalid format5355 reports an error about invalid format5356 when specifying invalid variables expressions statement5357 reports an error about invalid statement5358 when specifying invalid variables expressions token5359 reports an error about invalid expression5360 when using invalid variables expressions regexp5361 reports an error about invalid expression5362 when specifying a valid changes policy5363 is a correct configuraton5364 when changes policy is invalid5365 returns errors5366 when changes policy is invalid5367 returns errors5368 when specifying unknown policy5369 returns error about invalid key5370 when policy is empty5371 is not a valid configuration5372 when policy strategy does not match5373 returns information about errors5374 #value5375 when default value has been provided5376 when user overrides default values5377 does not include default values5378 when default value has not been defined5379 includes default values5380 .default5381 does not have default policy5382Gitlab::SlashCommands::Run5383 .match5384 returns true for a run command5385 returns true for a run command with arguments5386 returns true for a command containing newlines5387 returns false for an unrelated command5388 .available?5389 returns true when builds are enabled for the project5390 returns false when builds are disabled for the project5391 returns false when chatops is not available5392 .allowed?5393 returns true when the user can create a pipeline5394 returns false when the user can not create a pipeline5395 #execute5396 when a pipeline could not be scheduled5397 returns an error5398 when a pipeline could be created but the chat service was not supported5399 returns an error5400 using a valid pipeline5401 schedules the pipeline5402Gitlab::Chat::Output5403 #to_s5404 returns the chat reply as a String5405 without the chat_reply trace section5406 falls back to using the step_script trace section5407 without the step_script trace section5408 falls back to using the build_script trace section5409 without the build_script trace section5410 raises MissingBuildSectionError5411 #without_executed_command_line5412 returns the input without the first line5413 returns an empty String when the input is empty5414 returns an empty String when the input consits of a single newline5415 #find_build_trace_section5416 returns nil when no section could be found5417 returns the trace section when it could be found5418Gitlab::Harbor::Query5419 Validations5420 page5421 with valid page5422 initialize successfully5423 with invalid page5424 initialize failed5425 limit5426 with valid limit5427 initialize successfully5428 with invalid limit5429 with limit less than 05430 initialize failed5431 with limit greater than 255432 initialize failed5433 repository_id5434 with valid repository_id5435 initialize successfully5436 with invalid repository_id5437 initialize failed5438 artifact_id5439 with valid artifact_id5440 initialize successfully5441 with invalid artifact_id5442 initialize failed5443 sort5444 with valid sort5445 initialize successfully5446 with invalid sort5447 initialize failed5448 search5449 with valid search5450 initialize successfully5451 with invalid search5452 initialize failed5453 #repositories5454 when params is {}5455 fills default params5456 when params contains options5457 fills params with standard of Harbor5458 when params contains invalid sort option5459 ignores invalid sort params5460 when client.get_repositories returns data5461 returns the right repositories data5462 #artifacts5463 when params is {}5464 fills default params5465 when params contains options5466 fills params with standard of Harbor5467 when params contains invalid sort option5468 ignores invalid sort params5469 when client.get_artifacts returns data5470 returns the right artifacts data5471 #tags5472 when params is {}5473 fills default params5474 when params contains options5475 fills params with standard of Harbor5476 when params contains invalid sort option5477 ignores invalid sort params5478 when client.get_tags returns data5479 returns the right tags data5480Gitlab::Ci::Reports::TestReport5481 #get_suite5482 when suite name is rspec5483 is expected to eq "rspec"5484 initializes a new test suite and returns it5485 when suite name is already allocated5486 does not initialize a new test suite5487 #total_time5488 returns the total time5489 #total_count5490 returns the total count5491 #total_status5492 when all test cases succeeded5493 returns correct total status5494 when there is a failed test case5495 returns correct total status5496 when there is a skipped test case5497 returns correct total status5498 when there is an error test case5499 returns correct total status5500 #with_attachment5501 when test suites do not contain an attachment5502 returns empty test suites5503 when test suites contain an attachment5504 returns test suites with attachment5505 #suite_errors5506 when a suite has normal spec errors or failures5507 is expected to be empty5508 when there is an error test case5509 is expected to eq {"junit"=>"Existential parsing error"}5510 #error_count5511 when error test case exists5512 returns the count5513 when error test case do not exist5514 returns nothing5515 #failed_count5516 when failed test case exists5517 returns the count5518 when failed test case do not exist5519 returns nothing5520 #success_count5521 when success test case exists5522 returns the count5523 when success test case do not exist5524 returns nothing5525 #skipped_count5526 when skipped test case exists5527 returns the count5528 when skipped test case do not exist5529 returns nothing5530Ci::DeleteUnitTestsWorker5531 #perform5532 executes a service5533 behaves like an idempotent worker5534 is labeled as idempotent5535 performs multiple times sequentially without raising an exception5536 only deletes old unit tests and their failures5537PersonalAccessTokens::CreateService5538 #execute5539 when current_user is an administrator5540 when admin mode is enabled5541 behaves like a successfully created token5542 creates personal access token record5543 logs the event5544 notifies the user5545 when admin mode is disabled5546 behaves like an unsuccessfully created token5547 is expected to equal false5548 is expected to eq "Not permitted to create"5549 is expected to be nil5550 when current_user is not an administrator5551 target_user is not the same as current_user5552 behaves like an unsuccessfully created token5553 is expected to equal false5554 is expected to eq "Not permitted to create"5555 is expected to be nil5556 target_user is same as current_user5557 behaves like a successfully created token5558 creates personal access token record5559 logs the event5560 notifies the user5561Mutations::Issues::SetLocked5562 is expected to require graphql authorizations :update_issue5563 #resolve5564 behaves like permission level for issue mutation is correctly verified5565 when the user is not a project member5566 behaves like when the user does not have access to the resource5567 raises an error5568 even if assigned to the issue5569 does not modify issue5570 even if author of the issue5571 does not modify issue5572 when the user is a project member5573 with guest role5574 behaves like when the user does not have access to the resource5575 raises an error5576 even if assigned to the issue5577 does not modify issue5578 even if author of the issue5579 does not modify issue5580 when the user can update the issue5581 returns the issue as discussion locked5582 when passing locked as false5583 unlocks the discussion5584Projects::DownloadService5585 File service5586 for a URL that is not on whitelist5587 is expected to eq nil5588 for URLs that are on the whitelist5589 an image file5590 is expected to have key :alt5591 is expected to have key :url5592 is expected to match "rails_sample.jpg"5593 is expected to eq "rails_sample"5594 a txt file5595 is expected to have key :alt5596 is expected to have key :url5597 is expected to match "doc_sample.txt"5598 is expected to eq "doc_sample.txt"5599Gitlab::AuthorizedKeys5600 #accessible?5601 authorized_keys file exists5602 can open file5603 is expected to be truthy5604 cannot open file5605 is expected to be falsey5606 authorized_keys file does not exist5607 is expected to be falsey5608 #create5609 authorized_keys file exists5610 is expected to be truthy5611 authorized_keys file does not exist5612 creates authorized_keys file5613 cannot create file5614 is expected to be falsey5615 #add_key5616 authorized_keys file exists5617 adds a line at the end of the file and strips trailing garbage5618 authorized_keys file does not exist5619 creates the file5620 #batch_add_keys5621 authorized_keys file exists5622 adds lines at the end of the file5623 invalid key5624 doesn't add keys5625 authorized_keys file does not exist5626 creates the file5627 #remove_key5628 authorized_keys file exists5629 removes the right line5630 authorized_keys file does not exist5631 is expected to be falsey5632 #clear5633 authorized_keys file exists5634 is expected to be truthy5635 authorized_keys file does not exist5636 is expected to be truthy5637 #list_key_ids5638 authorized_keys file exists5639 is expected to eq [1, 2, 3, 9000]5640 authorized_keys file does not exist5641 is expected to be empty5642Gitlab::Ci::Build::Step5643 #from_commands5644 when script option is specified5645 behaves like has correct script5646 fabricates an object5647 when before and script option is specified5648 behaves like has correct script5649 fabricates an object5650 when timeout option is specified in seconds5651 has job level timeout5652 behaves like has correct script5653 fabricates an object5654 #from_release5655 with release5656 returns the release-cli command line5657 when release is empty5658 does not fabricate an object5659 #from_after_script5660 when after_script is empty5661 does not fabricate an object5662 when after_script is not empty5663 fabricates an object5664UploadPolicy5665 destroy_upload5666 when deleting project upload5667 behaves like uploads policy5668 when user is guest5669 is expected to be disallowed :read_upload and :destroy_upload5670 when user is developer5671 is expected to be disallowed :read_upload and :destroy_upload5672 when user is maintainer5673 is expected to be allowed :read_upload and :destroy_upload5674 when user is owner5675 is expected to be allowed :read_upload and :destroy_upload5676 when user is admin5677 is expected to be disallowed :read_upload and :destroy_upload5678 with admin mode5679 is expected to be allowed :read_upload and :destroy_upload5680 when deleting group upload5681 behaves like uploads policy5682 when user is guest5683 is expected to be disallowed :read_upload and :destroy_upload5684 when user is developer5685 is expected to be disallowed :read_upload and :destroy_upload5686 when user is maintainer5687 is expected to be allowed :read_upload and :destroy_upload5688 when user is owner5689 is expected to be allowed :read_upload and :destroy_upload5690 when user is admin5691 is expected to be disallowed :read_upload and :destroy_upload5692 with admin mode5693 is expected to be allowed :read_upload and :destroy_upload5694 when deleting upload associated with other model5695 is expected to be disallowed :read_upload and :destroy_upload5696Gitlab::Cleanup::OrphanLfsFileReferences5697 dry run5698 prints messages and does not delete references5699 regular run5700 prints messages and deletes invalid reference5701 does nothing if the project has no LFS objects5702 LFS object is in design repository5703 is not removed5704 LFS object is in wiki repository5705 is not removed5706 LFS for project snippets5707 is disabled5708ErrorTracking::IssueDetailsService5709 #execute5710 with authorized user5711 when issue_details returns a detailed error5712 returns the detailed error5713 returns the gitlab_issue when the error has a sentry_issue5714 returns the gitlab_issue path from sentry when the error has no sentry_issue5715 when issue_details returns nil5716 result is not ready5717 when issue_details returns error5718 returns the error5719 when issue_details returns error with http_status5720 returns the error with correct http_status5721 with integrated error tracking5722 returns the error in detailed format5723 when error does not exist5724 returns the error in detailed format5725 with unauthorized user5726 returns error5727 with error tracking disabled5728 raises error5729ErrorTracking::ListProjectsService5730 #execute5731 with authorized user5732 set model attributes to new values5733 uses new api_url and token5734 masked param token5735 uses database token5736 with invalid url5737 returns error5738 when list_sentry_projects returns projects5739 returns the projects5740 with unauthorized user5741 returns error5742 with error tracking disabled5743 ignores enabled flag5744 error_tracking_setting is nil5745 builds a new error_tracking_setting5746PersonalAccessTokenPolicy5747 current_user is an administrator5748 not the owner of the token5749 is expected to be allowed :read_token5750 is expected to be allowed :revoke_token5751 owner of the token5752 is expected to be allowed :read_token5753 is expected to be allowed :revoke_token5754 current_user is not an administrator5755 not the owner of the token5756 is expected to be disallowed :read_token5757 is expected to be disallowed :revoke_token5758 owner of the token5759 is expected to be allowed :read_token5760 is expected to be allowed :revoke_token5761 subject of the impersonated token5762 is expected to be disallowed :read_token5763 is expected to be disallowed :revoke_token5764 current_user is a blocked administrator5765 owner of the token5766 is expected to be disallowed :read_token5767 is expected to be disallowed :revoke_token5768 not the owner of the token5769 is expected to be disallowed :read_token5770 is expected to be disallowed :revoke_token5771Gitlab::Audit::Type::Definition5772 # order random5773 .load_from_file5774 properly loads a definition from file5775 for missing file5776 raises exception5777 for invalid definition5778 raises exception5779 .load_all!5780 when there are no audit event types a list of definitions is empty5781 when there's a single audit event type it properly loads them5782 when the same audit event type is stored multiple times raises exception5783 when one of the YAMLs is invalid it does raise exception5784 #validate!5785 param: :path, value: "audit_event/types/invalid.yml", result: /Audit event type 'group_deploy_token_destroyed' has an invalid path/5786 is expected to raise /Audit event type 'group_deploy_token_destroyed' has an invalid path/5787 param: :name, value: nil, result: /property '\/name' is not of type: string/5788 is expected to raise /property '\/name' is not of type: string/5789 param: :description, value: nil, result: /property '\/description' is not of type: string/5790 is expected to raise /property '\/description' is not of type: string/5791 param: :introduced_by_issue, value: nil, result: /property '\/introduced_by_issue' is not of type: string/5792 is expected to raise /property '\/introduced_by_issue' is not of type: string/5793 param: :introduced_by_mr, value: nil, result: /property '\/introduced_by_mr' is not of type: string/5794 is expected to raise /property '\/introduced_by_mr' is not of type: string/5795 param: :feature_category, value: nil, result: /property '\/feature_category' is not of type: string/5796 is expected to raise /property '\/feature_category' is not of type: string/5797 param: :milestone, value: nil, result: /property '\/milestone' is not of type: string/5798 is expected to raise /property '\/milestone' is not of type: string/5799 when both saved_to_database and streamed are false5800 raises an exception5801 .paths5802 returns at least one path5803 .get5804 when audit event type is not defined5805 returns nil5806 when audit event type is defined5807 returns an instance of Gitlab::Audit::Type::Definition5808 returns the properties as defined for that audit event type5809 .event_names5810 returns names of event types as string array5811 validate that all the YAML definitions matches the audit event type schema5812 successfully loads all the YAML definitions5813 #key5814 returns a symbol from name5815 .definitions5816 loads the definitions for all the audit event types5817Banzai::Filter::AttributesFilter5818 # order random5819 does not recognize new syntax when feature flag is off5820 attribute syntax5821 when attribute syntax is valid5822 text: "<img src=\"example.jpg\">{width=100}", result: "<img src=\"example.jpg\" width=\"100\">"5823 adds them to the img5824 text: "<img src=\"example.jpg\">{ width=100 }", result: "<img src=\"example.jpg\" width=\"100\">"5825 adds them to the img5826 text: "<img src=\"example.jpg\">{width=\"100\"}", result: "<img src=\"example.jpg\" width=\"100\">"5827 adds them to the img5828 text: "<img src=\"example.jpg\">{width=100 width=200}", result: "<img src=\"example.jpg\" width=\"200\">"5829 adds them to the img5830 text: "<img src=\"example.jpg\">{.test_class width=100 style=\"width:400\"}", result: "<img src=\"example.jpg\" width=\"100\">"5831 adds them to the img5832 text: "<img src=\"example.jpg\" class=\"lazy\" />{width=100}", result: "<img src=\"example.jpg\" class=\"lazy\" width=\"100\">"5833 adds them to the img5834 when attribute syntax is invalid5835 text: "<img src=\"example.jpg\"> {width=100}", result: "<img src=\"example.jpg\"> {width=100}"5836 does not recognize as attributes5837 text: "<img src=\"example.jpg\">{width=100\nheight=100}", result: "<img src=\"example.jpg\">{width=100\nheight=100}"5838 does not recognize as attributes5839 text: "{width=100 height=100}\n<img src=\"example.jpg\">", result: "{width=100 height=100}\n<img src=\"example.jpg\">"5840 does not recognize as attributes5841 text: "<h1>header</h1>{width=100}", result: "<h1>header</h1>{width=100}"5842 does not recognize as attributes5843 height and width5844 when size attributes are valid5845 text: "<img src=\"example.jpg\">{width=100 height=200px}", result: "<img src=\"example.jpg\" width=\"100\" height=\"200px\">"5846 adds them to the img5847 text: "<img src=\"example.jpg\">{width=100}", result: "<img src=\"example.jpg\" width=\"100\">"5848 adds them to the img5849 text: "<img src=\"example.jpg\">{width=100px}", result: "<img src=\"example.jpg\" width=\"100px\">"5850 adds them to the img5851 text: "<img src=\"example.jpg\">{height=100%}", result: "<img src=\"example.jpg\" height=\"100%\">"5852 adds them to the img5853 text: "<img src=\"example.jpg\">{width=\"100%\"}", result: "<img src=\"example.jpg\" width=\"100%\">"5854 adds them to the img5855 when size attributes are invalid5856 text: "<img src=\"example.jpg\">{width=100cs}", result: "<img src=\"example.jpg\">"5857 ignores them5858 text: "<img src=\"example.jpg\">{width=auto height=200}", result: "<img src=\"example.jpg\" height=\"200\">"5859 ignores them5860Ci::JobToken::Scope5861 #all_projects5862 when no projects are added to the scope5863 returns the project defining the scope5864 when other projects are added to the scope5865 returns all projects that can be accessed from a given scope5866 #includes?5867 when param is the project defining the scope5868 is expected to be truthy5869 when param is a project in scope5870 is expected to be truthy5871 when param is a project in another scope5872 is expected to be falsey5873 when project scope setting is disabled5874 considers any project to be part of the scope5875Packages::Debian::FileEntry5876 validations5877 is expected to be valid5878 with FIPS mode5879 raises an error5880 #filename5881 is expected to validate that :filename cannot be empty/falsy5882 is expected not to allow :filename to be ‹"Hé"›5883 #size5884 is expected to validate that :size cannot be empty/falsy5885 #md5sum5886 is expected to validate that :md5sum cannot be empty/falsy5887 is expected not to allow :md5sum to be ‹"12345678901234567890123456789012"›, producing a custom validation error on failure5888 #section5889 is expected to validate that :section cannot be empty/falsy5890 #priority5891 is expected to validate that :priority cannot be empty/falsy5892 #sha1sum5893 is expected to validate that :sha1sum cannot be empty/falsy5894 is expected not to allow :sha1sum to be ‹"1234567890123456789012345678901234567890"›, producing a custom validation error on failure5895 #sha256sum5896 is expected to validate that :sha256sum cannot be empty/falsy5897 is expected not to allow :sha256sum to be ‹"1234567890123456789012345678901234567890123456789012345678901234"›, producing a custom validation error on failure5898 #package_file5899 is expected to validate that :package_file cannot be empty/falsy5900 #component5901 without section5902 is expected to eq "main"5903 with empty section5904 is expected to eq "main"5905 with ruby section5906 is expected to eq "main"5907 with contrib/ruby section5908 is expected to eq "contrib"5909MergeRequests::ByApprovalsFinder5910 filter by no approvals5911 returns merge requests without approvals5912 filter by any approvals5913 returns merge requests approved by at least one user5914 filter by specific user approval5915 returns merge requests approved by specific user5916 filter by multiple user approval5917 returns merge requests approved by both users5918 limiting max conditional elements5919 returns merge requests approved by both users, considering limit of 2 being defined5920 with empty params5921 returns all merge requests5922LfsObjectUploader5923 behaves like builds correct paths5924 #store_dir5925 behaves like matches the method pattern5926 is expected to match /\h{2}\/\h{2}/5927 #cache_dir5928 behaves like matches the method pattern5929 is expected to match /\/lfs-objects\/tmp\/cache/5930 #work_dir5931 behaves like matches the method pattern5932 is expected to match /\/lfs-objects\/tmp\/work/5933 #upload_path5934 behaves like matches the method pattern5935 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5936 #relative_path5937 is relative (PENDING: Path not set, skipping.)5938 .absolute_path5939 behaves like matches the method pattern5940 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5941 .base_dir5942 behaves like matches the method pattern5943 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5944 path traversal exploits5945 throws an exception5946 object store is REMOTE5947 behaves like builds correct paths5948 #store_dir5949 behaves like matches the method pattern5950 is expected to match /\h{2}\/\h{2}/5951 #cache_dir5952 behaves like matches the method pattern5953 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5954 #work_dir5955 behaves like matches the method pattern5956 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5957 #upload_path5958 behaves like matches the method pattern5959 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5960 #relative_path5961 is relative (PENDING: Path not set, skipping.)5962 .absolute_path5963 behaves like matches the method pattern5964 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5965 .base_dir5966 behaves like matches the method pattern5967 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5968 path traversal exploits5969 throws an exception5970 remote file5971 with object storage enabled5972 can store file remotely5973Gitlab::FogbugzImport::Importer5974 imports bugs5975 imports opened bugs5976 imports closed bugs5977 verify url5978 when host is localhost5979 does not allow localhost requests5980 when host is on local network5981 does not allow localhost requests5982 when host is ftp protocol5983 only accept http and https requests5984Resolvers::ReleasesResolver5985 #resolve5986 when the user does not have access to the project5987 returns an empty array5988 when the user has full access to the project's releases5989 returns all releases associated to the project5990 sorting behavior5991 with sort: :released_at_desc5992 returns the releases ordered by released_at in descending order5993 with sort: :released_at_asc5994 returns the releases ordered by released_at in ascending order5995 with sort: :created_desc5996 returns the releases ordered by created_at in descending order5997 with sort: :created_asc5998 returns the releases ordered by created_at in ascending order5999Bitbucket::Representation::Issue6000 #iid6001 is expected to eq 16002 #kind6003 is expected to eq "bug"6004 #milestone6005 is expected to eq "1.0"6006 is expected to be nil6007 #author6008 is expected to eq "Ben"6009 is expected to be nil6010 #description6011 is expected to eq "Text"6012 is expected to be nil6013 #state6014 is expected to eq "closed"6015 is expected to eq "closed"6016 is expected to eq "closed"6017 is expected to eq "closed"6018 is expected to eq "closed"6019 is expected to eq "opened"6020 #title6021 is expected to eq "Issue"6022 #created_at6023 is expected to eq Thu, 08 Dec 20226024 #updated_at6025 is expected to eq Thu, 08 Dec 20226026EnvironmentStatusEntity6027 # order random6028 is expected to include :status6029 is expected not to include :stop_url6030 is expected to include :id6031 is expected to include :changes6032 is expected to include :name6033 is expected to include :deployed_at6034 is expected to include :external_url6035 is expected not to include :metrics_monitoring_url6036 is expected to include :external_url_formatted6037 is expected not to include :metrics_url6038 is expected to include :deployed_at_formatted6039 is expected to include :url6040 is expected to include :details6041 when deployment has metrics6042 when deployment succeeded6043 returns metrics url6044 when deployment is running6045 does not return metrics url6046 when the user is project maintainer6047 is expected to include :stop_url6048Metrics::Dashboard::SyncDashboardsWorker6049 .perform6050 with valid dashboard hash6051 imports metrics6052 is idempotent6053 with invalid dashboard hash6054 does not import metrics6055 does not raise an error6056projects/settings/merge_requests/show6057 # order random6058 merge suggestions settings6059 displays a placeholder if none is set6060 displays the user entered value6061 squash template6062 displays default template if none is set6063 displays the user entered value6064 merge commit template6065 displays default template if none is set6066 displays the user entered value6067Ci::PipelineProcessing::AtomicProcessingService::StatusCollection6068 #set_processable_status6069 does update existing status of processable6070 ignores a missing processable6071 #status_of_all6072 returns composite status of the collection6073 #status_for_names6074 names: ["build-a"], status: "success", dag: false6075 returns composite status of given names6076 names: ["build-a", "build-b"], status: "failed", dag: false6077 returns composite status of given names6078 names: ["build-a", "test-a"], status: "running", dag: false6079 returns composite status of given names6080 names: ["build-a"], status: "success", dag: true6081 returns composite status of given names6082 names: ["build-a", "build-b"], status: "failed", dag: true6083 returns composite status of given names6084 names: ["build-a", "test-a"], status: "pending", dag: true6085 returns composite status of given names6086 #status_for_prior_stage_position6087 stage: 0, status: "success"6088 returns composite status for processables in prior stages6089 stage: 1, status: "failed"6090 returns composite status for processables in prior stages6091 stage: 2, status: "running"6092 returns composite status for processables in prior stages6093 #status_for_stage_position6094 stage: 0, status: "failed"6095 returns composite status for processables at a given stages6096 stage: 1, status: "running"6097 returns composite status for processables at a given stages6098 stage: 2, status: "created"6099 returns composite status for processables at a given stages6100 #created_processable_ids_for_stage_position6101 returns IDs of processables at a given stage position6102 #processing_processables6103 returns processables marked as processing6104ForkTargetsFinder6105 #execute6106 behaves like returns namespaces and groups6107 returns all user manageable namespaces6108 returns only groups when only_groups option is passed6109 returns groups relation when only_groups option is passed6110 when search is provided6111 filters the targets by the param6112 when searchable_fork_targets feature flag is disabled6113 behaves like returns namespaces and groups6114 returns all user manageable namespaces6115 returns only groups when only_groups option is passed6116 returns groups relation when only_groups option is passed6117 when search is provided6118 ignores the param and returns all user manageable namespaces6119User6120 # order random6121 #valid_password?6122 when the default encryption method is BCrypt6123 behaves like password validation fails when the password is encrypted using an unsupported method6124 is expected to eq false6125 when the user password PBKDF2+SHA5126126 is expected to eq true6127 re-encrypts the password as BCrypt6128 when the default encryption method is PBKDF2+SHA512 and the user password is BCrypt6129 behaves like password validation fails when the password is encrypted using an unsupported method6130 is expected to eq false6131 when the user password BCrypt6132 is expected to eq true6133 re-encrypts the password as PBKDF2+SHA5126134 #password=6135 calls default Devise encryptor and not the PBKDF2 encryptor6136 saves the password in BCrypt format6137 when FIPS mode is enabled6138 calls PBKDF2 digest and not the default Devise encryptor6139 saves the password in PBKDF2 format6140 #authenticatable_salt6141 when password is stored in BCrypt format6142 returns the first 30 characters of the encrypted_password6143 when password is stored in PBKDF2 format6144 uses the decoded password salt6145 does not use the first 30 characters of the encrypted_password6146 when the encrypted_password is an unknown type6147 returns the first 30 characters of the encrypted_password6148Gitlab::CrossProjectAccess::CheckInfo6149 #should_run?6150 runs when an action is defined6151 runs when the action is missing6152 does not run when the action is excluded6153 runs when the `if` conditional is true6154 does not run when the if condition is false6155 does not run when the `unless` check is true6156 runs when the `unless` check is false6157 returns the opposite of #should_skip? when the check is a skip6158 #should_skip?6159 skips when an action is defined6160 does not skip when the action is not defined6161 does not skip when the action is excluded6162 skips when the `if` conditional is true6163 does not skip the `if` conditional is false6164 does not skip when the `unless` check is true6165 skips when `unless` check is false6166 returns the opposite of #should_run? when the check is not a skip6167Gitlab::Issuable::Clone::CopyResourceEventsService6168 copies the resource label events6169 with existing milestone events6170 copies existing resource milestone events6171 with existing state events6172 copies existing state events as expected6173IssueAssignee6174 associations6175 is expected to belong to issue class_name => Issue required: false6176 is expected to belong to assignee class_name => User required: false6177 validations6178 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id6179 scopes6180 in_projects6181 returns issue assignees for given project6182 on_issues6183 returns issue assignees for given issues6184ShaAttribute6185 .sha_attribute6186 defines a SHA attribute with Gitlab::Database::ShaAttribute type6187 .sha256_attribute6188 defines a SHA256 attribute with Gitlab::Database::ShaAttribute type6189 .load_schema!6190 column_name: binary_column, environment: "development", expected_error: :no_error6191 with sha_attribute6192 validates column type6193 with sha256_attribute6194 validates column type6195 column_name: binary_column, environment: "production", expected_error: :no_error6196 with sha_attribute6197 validates column type6198 with sha256_attribute6199 validates column type6200 column_name: text_column, environment: "development", expected_error: :sha_mismatch_error6201 with sha_attribute6202 validates column type6203 with sha256_attribute6204 validates column type6205 column_name: text_column, environment: "production", expected_error: :no_error6206 with sha_attribute6207 validates column type6208 with sha256_attribute6209 validates column type6210 column_name: :__non_existent_column, environment: "development", expected_error: :no_error6211 with sha_attribute6212 validates column type6213 with sha256_attribute6214 validates column type6215 column_name: :__non_existent_column, environment: "production", expected_error: :no_error6216 with sha_attribute6217 validates column type6218 with sha256_attribute6219 validates column type6220Users::ActivityService6221 #execute6222 when last activity is nil6223 updates last_activity_on for the user6224 when last activity is in the past6225 updates last_activity_on for the user6226 tries to obtain ExclusiveLease6227 tracks RedisHLL event6228 when a bad object is passed6229 does not record activity6230 when last activity is today6231 does not update last_activity_on6232 does not try to obtain ExclusiveLease6233 when in GitLab read-only instance6234 does not update last_activity_on6235 when a lease could not be obtained6236 does not update last_activity_on6237 with DB Load Balancing6238 when last activity is in the past6239 database load balancing is configured6240 does not stick to primary6241 database load balancing is not configured6242 updates user without error6243RuboCop::Cop::Lint::LastKeywordArgument6244 # order random6245 deprecation files does exist6246 registers an offense for last keyword warning6247 does not register an offense for other warning types6248 registers an offense for the new method call6249 registers an offense and corrects by converting hash to kwarg6250 registers an offense on the last non-block argument6251 does not register an offense if the only argument is a block argument6252 registers an offense and corrects by converting splat to double splat6253 does not register an offense if already a kwarg6254 does not register an offense if the method name does not match6255 does not register an offense if the line number does not match6256 does not register an offense if the filename does not match6257 deprecation files does not exist6258 does not register an offense6259Gitlab::Popen::Runner6260 #run6261 runs the command and returns the result6262 #all_success_and_clean?6263 returns true when exit status is 0 and stderr is empty6264 returns false when exit status is not 06265 returns false when exit stderr has something6266 #all_success?6267 returns true when exit status is 06268 returns false when exit status is not 06269 returns true6270 #all_stderr_empty?6271 returns true when stderr is empty6272 returns true when exit status is not 06273 returns false when exit stderr has something6274 #failed_results6275 returns [] when everything is passed6276 returns the result when exit status is not 06277 returns [] when exit stderr has something6278 #warned_results6279 returns [] when everything is passed6280 returns [] when exit status is not 06281 returns the result when exit stderr has something6282Gitlab::SlashCommands::Presenters::Access6283 #access_denied6284 is expected to be a kind of Hash6285 behaves like displays an error message6286 is expected to equal :ephemeral6287 #generic_access_denied6288 is expected to be a kind of Hash6289 behaves like displays an error message6290 is expected to equal :ephemeral6291 #deactivated6292 is expected to be a kind of Hash6293 behaves like displays an error message6294 is expected to equal :ephemeral6295 #not_found6296 is expected to be a kind of Hash6297 tells the user the resource was not found6298 #authorize6299 with an authorization URL6300 is expected to be a kind of Hash6301 tells the user to authorize6302 without authorization url6303 is expected to be a kind of Hash6304 tells the user to authorize6305Gitlab::Utils::JsonSizeEstimator6306 # order random6307 is expected to match json bytesize of6308 is expected to match json bytesize of {:a=>{}}6309 is expected to match json bytesize of 1, "str", 3.14, and ["str", {:a=>-1}]6310 is expected to match json bytesize of {}6311 is expected to match json bytesize of [[[]]]6312 calls #to_s on unknown object6313 is expected to match json bytesize of {:a=>{:b=>{:c=>[1, 2, 3], :e=>2022-12-08 10:45:00.847633050 +0000, :f=>nil}}}6314 is expected to match json bytesize of {100=>500}6315 is expected to match json bytesize of nil6316 is expected to match json bytesize of {"狸"=>"狸"}6317Groups::UserGroupsFinder6318 #execute6319 returns all groups where the user is a direct member6320 when target_user is nil6321 is expected to be empty6322 when current_user is nil6323 is expected to be empty6324 when permission is :create_projects6325 is expected to contain exactly #<Group id:3193 @root-group/a-public-maintainer>, #<Group id:3194 @a-public-owner>, #<Group id:3191 @root-group/b-private-maintainer>, and #<Group id:3192 @root-group/c-public-developer>6326 behaves like user group finder searching by name or path6327 is expected to contain exactly #<Group id:3193 @root-group/a-public-maintainer> and #<Group id:3191 @root-group/b-private-maintainer>6328 when searching for a full path (including parent)6329 is expected to contain exactly #<Group id:3191 @root-group/b-private-maintainer>6330 when search keywords include the parent route6331 is expected to match [#<Group id:3193 @root-group/a-public-maintainer>, #<Group id:3192 @root-group/c-public-developer>]6332 when permission is :transfer_projects6333 is expected to contain exactly #<Group id:3193 @root-group/a-public-maintainer>, #<Group id:3194 @a-public-owner>, and #<Group id:3191 @root-group/b-private-maintainer>6334 behaves like user group finder searching by name or path6335 is expected to contain exactly #<Group id:3193 @root-group/a-public-maintainer> and #<Group id:3191 @root-group/b-private-maintainer>6336 when searching for a full path (including parent)6337 is expected to contain exactly #<Group id:3191 @root-group/b-private-maintainer>6338 when search keywords include the parent route6339 is expected to match [#<Group id:3193 @root-group/a-public-maintainer>]6340ProjectDeployToken6341 is expected to belong to project required: false6342 is expected to belong to deploy_token required: false6343 is expected to validate that :deploy_token cannot be empty/falsy6344 is expected to validate that :project cannot be empty/falsy6345 is expected to validate that :deploy_token_id is case-sensitively unique within the scope of :project_id6346Security::CiConfiguration::SastParserService6347 #configuration6348 parses the configuration for SAST6349 while populating current values of the entities6350 when .gitlab-ci.yml is present6351 populates the current values from the file6352 SAST_EXCLUDED_ANALYZERS is set6353 enables analyzers correctly6354 when .gitlab-ci.yml is absent6355 populates the current values with the default values6356 when .gitlab-ci.yml does not include the sast job6357 populates the current values with the default values6358Ci::CreatePipelineService6359 include:6360 with a local file6361 behaves like including the file6362 includes the job in the file6363 with a local file with rules with a project variable6364 when the rules matches6365 behaves like including the file6366 includes the job in the file6367 when the rules does not match6368 behaves like not including the file6369 does not include the job in the file6370 with a local file with rules with a predefined pipeline variable6371 when the rules matches6372 behaves like including the file6373 includes the job in the file6374 when the rules does not match6375 behaves like not including the file6376 does not include the job in the file6377 with a local file with rules with a run pipeline variable6378 when the rules matches6379 behaves like including the file6380 includes the job in the file6381 when the rules does not match6382 behaves like not including the file6383 does not include the job in the file6384RecaptchaHelper6385 .show_recaptcha_sign_up?6386 is expected to eq true6387 when setting is disabled6388 is expected to eq false6389 when it is a QA request6390 is expected to eq false6391 .recaptcha_enabled_on_login?6392 is expected to eq true6393 when setting is disabled6394 is expected to eq false6395 when it is a QA request6396 is expected to eq false6397CustomEmojiPolicy6398 custom emoji permissions6399 when user is6400 a developer6401 is expected to be allowed :create_custom_emoji6402 is maintainer6403 is expected to be allowed :delete_custom_emoji6404 is owner6405 is expected to be allowed :delete_custom_emoji6406 is developer and emoji creator6407 is expected to be allowed :delete_custom_emoji6408 is emoji creator but not a member of the group6409 is expected not to be allowed :delete_custom_emoji6410Gitlab::Audit::NullAuthor6411 .for6412 returns an DeletedAuthor6413 returns an UnauthenticatedAuthor when id equals -16414 returns a CiRunnerTokenAuthor when details contain runner registration token6415 returns a CiRunnerTokenAuthor when details contain runner authentication token6416 returns DeployTokenAuthor when id equals -26417 returns DeployKeyAuthor when id equals -36418 #current_sign_in_ip6419 is expected to be nil6420Groups::MergeRequestsCountService6421 #relation_for_count6422 uses the MergeRequestsFinder to scope merge requests6423 behaves like a counter caching service with threshold6424 when cache is empty6425 refreshes cache if value over threshold6426 does not refresh cache if value under threshold6427 when cached count is under the threshold value6428 does not refresh cache6429 when cached count is over the threshold value6430 does not refresh cache6431Gitlab::Prometheus::Queries::MatchedMetricQuery6432 with one group where two metrics is found6433 both metrics in the group pass requirements6434 responds with both metrics as actve6435 none of the metrics pass requirements6436 responds with both metrics missing requirements6437 no series information found about the metrics6438 responds with both metrics missing requirements6439 one of the series info was not found6440 responds with one active and one missing metric6441 with one group where only one metric is found6442 both metrics in the group pass requirements6443 responds with one metrics as active and no missing requiremens6444 no metrics in group pass requirements6445 responds with one metrics as active and no missing requiremens6446 with two groups where metrics are found in each group6447 all metrics in both groups pass requirements6448 responds with one metrics as active and no missing requiremens6449 no metrics in groups pass requirements6450 responds with one metrics as active and no missing requiremens6451Gitlab::Database::Type::SymbolizedJsonb6452 # order random6453 when used by a model6454 is expected to match {:key=>"value"}6455 ignores changes to other attributes6456 tracks changes to options6457 #deserialize6458 json: nil, value: nil6459 is expected to match nil6460 json: "{\"key\":\"value\"}", value: {:key=>"value"}6461 is expected to match {:key=>"value"}6462 json: "{\"key\":[1,2,3]}", value: {:key=>[1, 2, 3]}6463 is expected to match {:key=>[1, 2, 3]}6464 json: "{\"key\":{\"subkey\":\"value\"}}", value: {:key=>{:subkey=>"value"}}6465 is expected to match {:key=>{:subkey=>"value"}}6466 json: "{\"key\":{\"a\":[{\"b\":\"c\"},{\"d\":\"e\"}]}}", value: {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}6467 is expected to match {:key=>{:a=>[{:b=>"c"}, {:d=>"e"}]}}6468ServiceDeskSettings::UpdateService6469 #execute6470 with valid params6471 updates service desk settings6472 when project_key is an empty string6473 sets nil project_key6474 with invalid params6475 does not update service desk settings6476ReactiveCachingWorker6477 behaves like reactive cacheable worker6478 #perform6479 when reactive cache worker class is found6480 calls #exclusively_update_reactive_cache!6481 when ReactiveCaching::ExceededReactiveCacheLimit is raised6482 avoids failing the job and tracks via Gitlab::ErrorTracking6483 when reactive cache worker class is not found6484 raises no error6485 when reactive cache worker class is invalid6486 raises no error6487 worker context6488 sets the related class on the job6489 sets the related class on the job when it was passed as a class6490Clusters::Aws::FetchCredentialsService6491 #execute6492 provision role is configured6493 provider is specified6494 is expected to eq #<Double (anonymous)>6495 provider is not specifed6496 is expected to eq #<Double (anonymous)>6497 region is not specifed6498 is expected to eq #<Double (anonymous)>6499 provision role is not configured6500 raises an error6501 with an instance profile attached to an IAM role6502 provider is specified6503 returns credentials6504 provider is not specifed6505 returns credentials6506Gitlab::UsageDataCounters::SnippetCounter6507 behaves like a redis usage counter6508 .count(create)6509 increments the Snippet create counter by 16510 .read(create)6511 returns the total number of create events6512 behaves like a redis usage counter6513 .count(update)6514 increments the Snippet update counter by 16515 .read(update)6516 returns the total number of update events6517 behaves like a redis usage counter with totals6518 totals6519 can report all totals6520 unknown events6521 cannot increment6522 cannot read6523AuthorizedProjectUpdate::ProjectRecalculatePerUserService#execute6524 returns success6525 when there are no changes to be made6526 does not change authorizations6527 when there are changes to be made6528 when addition is required6529 adds a new authorization record for the specific user6530 does not add a new authorization record for the other user6531 adds a new authorization record with the correct access level for the specific user6532 when removal is required6533 removes the authorization record for the specific user6534 does not remove the authorization record for the other user6535 when an update in access level is required6536 updates the authorization of the specific user to the correct access level6537 does not update the authorization of the other user to the correct access level6538BitbucketServer::Connection6539 #get6540 returns JSON body6541 throws an exception if the response is not 2006542 throws an exception if the response is not JSON6543 throws an exception upon a network error6544 #post6545 returns JSON body6546 throws an exception if the response is not 2006547 throws an exception upon a network error6548 #delete6549 branch API6550 returns JSON body6551 throws an exception if the response is not 2006552 throws an exception upon a network error6553RuboCop::Cop::RSpec::TopLevelDescribePath6554 # order random6555 when the describe is at the top level6556 marks the describe as offending6557 when the file is a frontend fixture6558 registers no offenses6559 when the describe is in a shared example6560 with shared_examples6561 registers no offenses6562 with shared_examples_for6563 registers no offenses6564 when the file ends in _spec.rb6565 registers no offenses6566 when the describe is in a shared context6567 with shared_context6568 registers no offenses6569ProjectCiCdSetting6570 validations6571 validates default_git_depth is between 0 and 1000 or nil6572 #forward_deployment_enabled6573 is true by default6574 #separated_caches6575 is true by default6576 #default_git_depth6577 sets default value for new records6578 does not set default value if present6579 #keep_latest_artifacts_available?6580 without application setting record6581 project_enabled: false, result_keep_latest_artifact: false6582 is expected to eq false6583 project_enabled: true, result_keep_latest_artifact: true6584 is expected to eq true6585 with application setting record6586 instance_enabled: false, project_enabled: false, result_keep_latest_artifact: false6587 is expected to eq false6588 instance_enabled: false, project_enabled: true, result_keep_latest_artifact: false6589 is expected to eq false6590 instance_enabled: true, project_enabled: false, result_keep_latest_artifact: false6591 is expected to eq false6592 instance_enabled: true, project_enabled: true, result_keep_latest_artifact: true6593 is expected to eq true6594Atlassian::JiraConnect::Serializers::RepositoryEntity6595 is expected to match schema "jira_connect/repository"6596 with custom update_sequence_id6597 passes the update_sequence_id on to the nested entities6598Gitlab::GithubImport::Importer::Events::ChangedMilestone6599 #execute6600 with Issue6601 when importing a milestoned event6602 behaves like new event6603 creates a new milestone event6604 when importing demilestoned event6605 behaves like new event6606 creates a new milestone event6607 with MergeRequest6608 when importing a milestoned event6609 behaves like new event6610 creates a new milestone event6611 when importing demilestoned event6612 behaves like new event6613 creates a new milestone event6614Gitlab::Ci::Config::Entry::Coverage6615 validations6616 when entry config value doesn't have the surrounding '/'6617 #errors6618 is expected to include /coverage config must be a regular expression/6619 #valid?6620 is expected not to be valid6621 when entry config value has the surrounding '/'6622 #value6623 is expected to eq "Code coverage: \\d+\\.\\d+"6624 #errors6625 is expected to be empty6626 #valid?6627 is expected to be valid6628 when entry value is not valid6629 #errors6630 is expected to include /coverage config must be a regular expression/6631 #valid?6632 is expected not to be valid6633Gitlab::Prometheus::Internal6634 .uri6635 behaves like returns valid uri6636 is expected not to raise Exception6637 with non default prometheus address6638 behaves like returns valid uri6639 is expected not to raise Exception6640 with :9090 symbol6641 behaves like returns valid uri6642 is expected not to raise Exception6643 with 0.0.0.0:90906644 behaves like returns valid uri6645 is expected not to raise Exception6646 when server_address is nil6647 does not fail6648 when prometheus listen address is blank in gitlab.yml6649 does not configure prometheus6650 .prometheus_enabled?6651 returns correct value6652 when prometheus setting is disabled in gitlab.yml6653 returns correct value6654 when prometheus setting is not present in gitlab.yml6655 does not fail6656 .server_address6657 returns correct value6658 when prometheus setting is not present in gitlab.yml6659 does not fail6660IgnorableColumns6661 adds columns to ignored_columns6662 adds columns to ignored_columns (array version)6663 requires remove_after attribute to be set6664 requires remove_after attribute to be set6665 requires remove_with attribute to be set6666 .ignored_columns_details6667 defaults to empty Hash6668 with single column6669 behaves like storing removal information6670 storing removal information6671 with array column6672 behaves like storing removal information6673 storing removal information6674 when called on a subclass without setting the ignored columns6675 does not raise Deadlock error6676 IgnorableColumns::ColumnIgnore6677 #safe_to_remove?6678 after remove_after date has passed6679 returns true (safe to remove)6680 before remove_after date has passed6681 returns false (not safe to remove)6682Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated6683 behaves like value stream analytics event6684 is expected to be a kind of String6685 is expected to be a kind of Symbol6686 is expected to include ApplicationRecord(abstract)6687 is expected to respond to #timestamp_projection6688 is expected to respond to #html_description6689 is expected to be a kind of Array6690 #apply_query_customization6691 expects an ActiveRecord::Relation object as argument and returns a modified version of it6692 #hash_code6693 returns a hash that uniquely identifies an event6694 does not differ when the same object is built with the same params6695 behaves like LEFT JOIN-able value stream analytics event6696 can use the event as LEFT JOIN6697 when looking at the record with data6698 contains the timestamp expression6699 when looking at the record without data6700 returns nil for the timestamp expression6701ContainerExpirationPolicyPolicy6702 user_type: :anonymous, allowed_to_destroy_container_image: false6703 for user type anonymous6704 is expected not to be allowed :admin_container_image6705 user_type: :guest, allowed_to_destroy_container_image: false6706 for user type guest6707 is expected not to be allowed :admin_container_image6708 user_type: :developer, allowed_to_destroy_container_image: false6709 for user type developer6710 is expected not to be allowed :admin_container_image6711 user_type: :maintainer, allowed_to_destroy_container_image: true6712 for user type maintainer6713 is expected to be allowed :admin_container_image6714Limitable6715 is expected to eq "test_classes"6716 with scoped limit6717 is expected to eq :project6718 triggers scoped validations6719 with custom relation and feature flags6720 limit_feature_flag: nil, limit_feature_flag_value: nil, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true6721 acts according to the feature flag settings6722 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: false6723DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6724 acts according to the feature flag settings6725 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true6726DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6727 acts according to the feature flag settings6728 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: true6729DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6730DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6731 acts according to the feature flag settings6732 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: false6733DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6734DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6735 acts according to the feature flag settings6736 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false6737DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6738DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6739 acts according to the feature flag settings6740 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false6741DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6742DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)6743 acts according to the feature flag settings6744 with global limit6745 is expected to eq :limitable_global_scope6746 triggers scoped validations6747Projects::ScheduleBulkRepositoryShardMovesWorker6748 behaves like schedules bulk repository shard moves6749 #perform6750 is labeled as idempotent6751 performs multiple times sequentially without raising an exception6752 schedules container repository storage moves6753GraphqlTriggers6754 .issuable_assignees_updated6755 triggers the issuableAssigneesUpdated subscription6756 .issuable_title_updated6757 triggers the issuableTitleUpdated subscription6758 .issuable_description_updated6759 triggers the issuableDescriptionUpdated subscription6760 .issuable_labels_updated6761 triggers the issuableLabelsUpdated subscription6762 .issuable_dates_updated6763 triggers the issuableDatesUpdated subscription6764 .issuable_milestone_updated6765 triggers the issuableMilestoneUpdated subscription6766 .merge_request_reviewers_updated6767 triggers the mergeRequestReviewersUpdated subscription6768 .merge_request_merge_status_updated6769 triggers the mergeRequestMergeStatusUpdated subscription6770 .merge_request_approval_state_updated6771 triggers the mergeRequestApprovalStateUpdated subscription6772Resolvers::GroupMembersResolver6773 is expected to have nullable GraphQL type GroupMemberConnection6774 behaves like querying members with a group6775 #resolve6776 finds all resource members6777 with sort options6778 searches users by user name6779 with search6780 when the search term matches a user6781 searches users by user name6782 when the search term does not match any user6783 is empty6784 when user can not see resource members6785 generates an error6786Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog6787 is expected to be a kind of Gitlab::Database::SharedModel(abstract)6788 associations6789 is expected to belong to batched_job required: false6790 validations6791 is expected to validate that :previous_status cannot be empty/falsy6792 is expected to validate that :next_status cannot be empty/falsy6793 is expected to validate that :batched_job cannot be empty/falsy6794 is expected to validate that the length of :exception_class is at most 1006795 is expected to validate that the length of :exception_message is at most 10006796 is expected to define :previous_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true6797 is expected to define :next_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true6798projects/hooks/index6799 renders webhooks page with "Project Hooks"6800 webhook is rate limited6801 renders "Disabled" badge6802 webhook is permanently disabled6803 renders "Failed to connect" badge6804 webhook is temporarily disabled6805 renders "Fails to connect" badge6806API::Entities::ProjectImportStatus6807 #as_json6808 when no import state exists6809 includes basic fields and no failures6810 when import has not finished yet6811 includes basic fields and no failures6812 when import has finished with failed relations6813 includes basic fields with failed relations6814 when import has failed6815 includes basic fields with import error6816 when importing from github6817 exposes the import stats6818MilestonesHelper6819 # order random6820 #milestone_header_class6821 primary: true, issuables: [nil], header_color: "gl-bg-blue-500 gl-text-white", header_border: ""6822 is expected to eq "gl-bg-blue-500 gl-text-white gl-display-flex"6823 primary: true, issuables: [], header_color: "gl-bg-blue-500 gl-text-white", header_border: "gl-border-bottom-0 gl-rounded-base"6824 is expected to eq "gl-bg-blue-500 gl-text-white gl-border-bottom-0 gl-rounded-base gl-display-flex"6825 primary: false, issuables: [], header_color: "", header_border: "gl-border-bottom-0 gl-rounded-base"6826 is expected to eq " gl-border-bottom-0 gl-rounded-base gl-display-flex"6827 primary: false, issuables: [nil], header_color: "", header_border: ""6828 is expected to eq " gl-display-flex"6829 #milestone_counter_class6830 when primary is set to true6831 is expected to eq "gl-text-white"6832 when primary is set to false6833 is expected to eq "gl-text-gray-500"6834Gitlab::Seeders::Ci::DailyBuildGroupReportResult6835 #seed6836 creates daily build results for the project6837 matches project data with last report6838 does not raise error on RecordNotUnique6839Types::RepositoryType6840 is expected to eq "Repository"6841 is expected to require graphql authorizations :read_code6842 is expected to have graphql field :root_ref6843 is expected to have graphql field :tree6844 is expected to have graphql field :paginated_tree and {:calls_gitaly?=>true, :max_page_size=>100}6845 is expected to have graphql field :exists and {:calls_gitaly?=>true, :complexity=>2}6846 is expected to have graphql field :blobs6847 is expected to have graphql field :branch_names and {:calls_gitaly?=>true, :complexity=>170}6848 is expected to have graphql field :disk_path6849CreatePipelineWorker6850 #perform6851 when a project not found6852 does not call the Service6853 when a user not found6854 does not call the Service6855 when everything is ok6856 calls the Service6857projects/branches/index.html.haml6858 renders list of active and stale branches6859 when Gitaly is unavailable6860 renders an error6861Banzai::Filter::ImageLazyLoadFilter6862 adds a class attribute6863 appends to the current class attribute6864 adds a async decoding attribute6865 transforms the image src to a data-src6866 works with external images6867Resolvers::ContainerRepositoryTagsResolver6868 #resolve6869 by name6870 without sort6871 is expected to contain exactly "aaa", "bab", "bbb", "ccc", and "123"6872 with sorting and filtering6873 name_asc6874 is expected to eq ["123", "aaa", "bab", "bbb", "ccc"]6875 name_desc6876 is expected to eq ["ccc", "bbb", "bab", "aaa", "123"]6877 filter by name6878 is expected to eq ["bbb", "bab"]6879Gitlab::Analytics::CycleAnalytics::StageEvents::StageEvent6880 is expected to respond to #name6881 is expected to respond to #identifier6882 is expected to respond to #object_type6883 is expected to respond to #timestamp_projection6884 is expected to respond to #apply_query_customization6885BulkImports::ArchiveExtractionService6886 #execute6887 extracts files from archive and removes symlinks6888 when dir is not in tmpdir6889 raises an error6890 when archive file is a symlink6891 raises an error6892 when filepath is being traversed6893 raises an error6894projects/generic_commit_statuses/_generic_commit_status.html.haml6895 won't include a column with a link to its pipeline by default6896 can include a column with a link to its pipeline6897Namespaces::UpdateRootStatisticsWorker6898 enqueues ScheduleAggregationWorker6899 behaves like subscribes to event6900 consumes the published event6901 behaves like an idempotent worker6902 is labeled as idempotent6903 performs multiple times sequentially without raising an exception6904MemberSerializer6905 group member6906 handles last group owner assignment6907 behaves like members.json6908 is expected to match schema "members"6909 project member6910 does not invoke group owner assignment6911 behaves like members.json6912 is expected to match schema "members"6913Gitlab::Prometheus::Queries::DeploymentQuery6914 sends appropriate queries to prometheus6915Releases::LinkPresenter6916 #direct_asset_url6917 when filepath is provided6918 is expected to eq "http://localhost/namespace1176/project1253/-/releases/v1.1.0/downloads/bin/bigfile.exe"6919 when filepath is not provided6920 is expected to eq "https://google.com/-/jobs/140463678/artifacts/download"6921Mutations::Branches::Create6922 #resolve6923 raises an error if the resource is not accessible to the user6924 when the user can create a branch6925 when service successfully creates a new branch6926 returns a new branch6927 when service fails to create a new branch6928 is expected to be nil6929 is expected to eq ["Branch already exists"]6930Gitlab::Database::LoadBalancing::Configuration6931 .for_model6932 when load balancing is not configured6933 uses the default settings6934 when load balancing is configured6935 uses the custom configuration settings6936 when the load balancing configuration uses strings as the keys6937 uses the custom configuration settings6938 #load_balancing_enabled?6939 returns false when running inside a Rake task6940 returns true when hosts are configured6941 returns true when a service discovery record is configured6942 returns false when no hosts are configured and service discovery is disabled6943 #service_discovery_enabled?6944 returns false when running inside a Rake task6945 returns true when a record is configured6946 returns false when no record is configured6947 #pool_size6948 when a custom pool size is used6949 always reads the value from the model configuration6950 when the pool size is nil6951 returns the default pool size6952 #db_config_name6953 returns connection name as symbol6954 #db_config6955 returns exactly db_config6956TokenWithIv6957 validations6958 is expected to validate that :hashed_token cannot be empty/falsy6959 is expected to validate that :iv cannot be empty/falsy6960 is expected to validate that :hashed_plaintext_token cannot be empty/falsy6961 .find_by_hashed_token6962 only includes matching record6963 .find_by_plaintext_token6964 only includes matching record6965Gitlab::Auth::Atlassian::IdentityLinker6966 linked identity exists6967 sets #changed? to false6968 does not mark as failed6969 identity already linked to different user6970 sets #changed? to false6971 exposes error message6972 identity needs to be created6973 sets #changed? to true6974 behaves like an atlassian identity6975 sets the proper values6976Ci::JobArtifacts::DeleteService6977 # order random6978 #execute6979 is successful6980 deletes erasable artifacts6981 does not delete trace6982 when project is undergoing stats refresh6983 logs a warning6984 returns an error response with the correct message and reason6985 when an error response is received from DestroyBatchService6986 returns an error response with the correct message6987WebIdeTerminalSerializer6988 represents WebIdeTerminalEntity entities6989 accepts WebIdeTerminal as a resource6990 when resource is a build6991 transforms it into a WebIdeTerminal resource6992validate database config6993 when config/database.yml is valid6994 validates configuration without errors and warnings6995 when config/database.yml is invalid6996 uses unknown connection name6997 raises exception6998 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true6999 does not raise exception7000 uses replica configuration7001 raises exception7002 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true7003 does not raise exception7004 main is not a first entry7005 raises exception7006 behaves like with SKIP_DATABASE_CONFIG_VALIDATION=true7007 does not raise exception7008CycleAnalytics::ProjectLevelStageAdapter7009 calculates median7010 lists events7011 presents the data as json7012Gitlab::HookData::ProjectMemberBuilder7013 #build7014 data7015 on create7016 is expected to eq "user_add_to_team"7017 behaves like includes the required attributes7018 includes the required attributes7019 on update7020 is expected to eq "user_update_for_team"7021 behaves like includes the required attributes7022 includes the required attributes7023 on destroy7024 is expected to eq "user_remove_from_team"7025 behaves like includes the required attributes7026 includes the required attributes7027Gitlab::LetsEncrypt::Order7028 #url7029 delegates to Acme::Client::Resources::Order7030 #status7031 delegates to Acme::Client::Resources::Order7032 #expires7033 delegates to Acme::Client::Resources::Order7034 #new_challenge7035 returns challenge7036 #request_certificate7037 generates csr and finalizes order7038 #challenge_error7039 returns error if challenge has errors7040Resolvers::Ci::TemplateResolver7041 #resolve7042 when template exists7043 returns the found template7044 when template does not exist7045 returns nil7046Types::IssueSortEnum7047 is expected to eq "IssueSort"7048 exposes all the existing issue sort values7049 behaves like common sort values7050 exposes all the existing common sort values7051Users::NamespaceCommitEmail7052 # order random7053 is expected to be valid7054 associations7055 is expected to belong to user required: false7056 is expected to belong to namespace required: false7057 is expected to belong to email required: false7058 validations7059 is expected to validate that :user cannot be empty/falsy7060 is expected to validate that :namespace cannot be empty/falsy7061 is expected to validate that :email cannot be empty/falsy7062DependencyProxy::ImageTtlGroupPolicyWorker7063 #perform7064 when there are images to expire7065 updates the old images to pending_destruction7066 counts logging7067 logs all the counts7068 with load balancing enabled7069 reads the counts from the replica7070RuboCop::Cop::AvoidRouteRedirectLeadingSlash7071 # order random7072 registers an offense when redirect has a leading slash and corrects7073 does not register an offense when redirect does not have a leading slash7074Gitlab::Database::Partitioning::SingleNumericListPartition7075 .from_sql7076 uses specified table name7077 uses specified partition name7078 parses the definition7079 #partition_name7080 is the explicit name if provided7081 defaults to the table name followed by the partition value7082 sorting7083 is incomparable if the tables do not match7084 sorts by the value when the tables match7085 sorts by numeric value rather than text value7086Banzai::Filter::TableOfContentsTagFilter7087 table of contents7088 [[_TOC_]] as tag7089 behaves like table of contents tag7090 replaces toc tag with ToC result7091 handles an empty ToC result7092 [[_toc_]] as tag7093 behaves like table of contents tag7094 replaces toc tag with ToC result7095 handles an empty ToC result7096 [TOC] as tag7097 behaves like table of contents tag7098 replaces toc tag with ToC result7099 handles an empty ToC result7100 [toc] as tag7101 behaves like table of contents tag7102 replaces toc tag with ToC result7103 handles an empty ToC result7104Kaniko.gitlab-ci.yml7105 the created pipeline7106 creates "kaniko-build" job7107Types::WorkItems::NotesFilterTypeEnum7108 # order random7109 exposes all the existing widget type values7110 is expected to eq "NotesFilterType"7111Integrations::ExternalWiki7112 Validations7113 when integration is active7114 is expected to validate that :external_wiki_url cannot be empty/falsy7115 behaves like issue tracker integration URL attribute7116 is expected to allow :external_wiki_url to be ‹"https://example.com"›7117 is expected not to allow :external_wiki_url to be ‹"example.com"›7118 is expected not to allow :external_wiki_url to be ‹"ftp://example.com"›7119 is expected not to allow :external_wiki_url to be ‹"herp-and-derp"›7120 when integration is inactive7121 is expected not to validate that :external_wiki_url cannot be empty/falsy7122 test7123 the URL is not reachable7124 is not successful7125 the URL is reachable7126 is successful7127GoogleCloud::FetchGoogleIpListService7128 # order random7129 #execute7130 returns a list of IPAddr subnets and caches the result7131 with rate limit in effect7132Skipping ./spec/services/google_cloud/fetch_google_ip_list_service_spec.rb[1:1:2:1] 'GoogleCloud::FetchGoogleIpListService#execute with rate limit in effect returns rate limit error' because it's flaky.7133 returns rate limit error (PENDING: around hook at ./spec/support/flaky_tests.rb:21 did not execute the example)7134 when the URL returns a 4047135 behaves like IP range retrieval failure7136 does not cache the result and logs an error7137 when the URL returns too large of a payload7138 behaves like IP range retrieval failure7139 does not cache the result and logs an error7140 when the URL returns HTML7141 behaves like IP range retrieval failure7142 does not cache the result and logs an error7143 when the URL returns empty results7144 behaves like IP range retrieval failure7145 does not cache the result and logs an error7146Database::BatchedBackgroundMigration::CiExecutionWorker7147 # order random7148 behaves like batched background migrations execution worker7149 #perform7150 when the feature flag is disabled7151 does nothing7152 when the feature flag is enabled7153 when the provided database is sharing config7154 does nothing7155 when migration does not exist7156 does nothing7157 when migration exist7158 when the migration is no longer active7159 does not run the migration7160 when the interval has not elapsed7161 does not run the migration7162 when the migration is still active and the interval has elapsed7163 always cleans up the exclusive lease7164 runs the migration7165 when can not obtain lease on the table name7166 does nothing7167QualifiedDomainArrayValidator7168 validations7169 returns error when attribute is nil7170 allows when domain is valid7171 returns error when domain contains unicode7172 returns error when entry is larger than 255 chars7173 returns error when entry contains HTML tags7174 behaves like can be blank7175 allows when attribute is blank7176 when allow_nil is set to true7177 behaves like can be nil7178 allows when attribute is nil7179 behaves like can be blank7180 allows when attribute is blank7181 when allow_blank is set to true7182 behaves like can be nil7183 allows when attribute is nil7184 behaves like can be blank7185 allows when attribute is blank7186Gitlab::Database::BackgroundMigration::HealthStatus7187 .evaluate7188 returns a collection of signals7189 logs interesting signals7190 does not log signals of no interest7191 with default indicators7192 returns a collection of signals7193 on indicator error7194 does not fail7195 returns Unknown signal7196 reports the exception to error tracking7197Import::ProviderRepoSerializer7198 #represent7199 raises an error if invalid provider supplied7200 provider: :github, class_name: "Import::GithubishProviderRepoEntity"7201 uses correct entity class7202 provider: :gitea, class_name: "Import::GithubishProviderRepoEntity"7203 uses correct entity class7204 provider: :bitbucket, class_name: "Import::BitbucketProviderRepoEntity"7205 uses correct entity class7206 provider: :bitbucket_server, class_name: "Import::BitbucketServerProviderRepoEntity"7207 uses correct entity class7208 provider: :fogbugz, class_name: "Import::FogbugzProviderRepoEntity"7209 uses correct entity class7210Gitlab::GithubImport::Markdown::Attachment7211 # order random7212 #inspect7213 returns attachment basic info7214 .from_markdown7215 when it's a doc attachment7216 returns instance with attachment info7217 when type is not in whitelist7218 is expected to eq nil7219 when domain name is unknown7220 is expected to eq nil7221 when it's an image attachment7222 returns instance with attachment info7223 when type is not in whitelist7224 is expected to eq nil7225 when domain name is unknown7226 is expected to eq nil7227 when it's an inline html node7228 returns instance with attachment info7229NullifyIfBlank7230 attribute exists7231 attribute is blank7232 is expected to be nil7233 attribute is nil7234 is expected to be nil7235 attribute is not blank7236 is expected to eq "name"7237 attribute does not exist7238 is expected to raise ActiveModel::UnknownAttributeError7239Gitlab::Graphql::Limit::FieldCallCount7240 # order random7241 returns an error when the field is called multiple times7242 allows the call7243 executes the extension7244 when the field is not extended7245 allows the call7246 does not execute the extension7247 when limit is not specified7248 returns an error7249Atlassian::JiraConnect::Serializers::BranchEntity7250 sets the hash of the branch name as the id7251Gitlab::Pagination::Keyset::InOperatorOptimization::OrderByColumnData7252 #arel_column7253 delegates to column_expression7254 #column_for_projection7255 returns the expression with AS using the original column name7256 #projection7257 returns the expression with AS using the specified column lias7258Gitlab::HealthChecks::GitalyCheck7259 #readiness7260 Gitaly server is up7261 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=true, message=nil, labels={:shard=>"default"}>]7262 Gitaly server is down7263 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=false, message="Connection refused", labels={:shard=>"default"}>]7264 Gitaly server is not ready7265 is expected to contain exactly "#<struct Gitlab::HealthChecks::Result name=\"gitaly_check\", success=false, message=\"A readiness check has failed\", labels={:shard=>\"default\"}>"7266 #metrics7267 Gitaly server is up7268 provides metrics7269 Gitaly server is down7270 provides metrics7271CarrierWave::Storage::Fog::File7272 AWS7273 #copy_to7274 copies the file7275 Azure7276 #copy_to7277 copies the file7278 #authenticated_url7279 has an authenticated URL7280 with custom expire_at7281 properly sets expires param7282 with content_disposition option7283 passes options7284Gitlab::Graphql::Authorize::ObjectAuthorization7285 #ok?7286 when there are no abilities7287 is expected to be ok #<Double (anonymous)> and #<Double (anonymous)>7288 when no ability should be allowed7289 is expected not to be ok #<struct Foo x=0, y=0> and #<Double :User>7290 when go_fast should be allowed7291 is expected not to be ok #<struct Foo x=100, y=0> and #<Double :User>7292 when go_fast and go_slow should be allowed7293 is expected to be ok #<struct Foo x=100, y=100> and #<Double :User>7294 when the object delegates to another subject7295 is expected to be ok #<Double :Proxy> and #<Double :User>7296 is expected not to be ok #<Double :Proxy> and #<Double :User>7297API::Helpers::GraphqlHelpers7298 run_graphql!7299 when transform function is provided7300 returns the expected result7301 when a transform function is not provided7302 returns the expected result7303BlobEntity7304 as json7305 contains needed attributes7306Banzai::Filter::AbsoluteLinkFilter7307 with html links7308 if only_path is false7309 has the .gfm class7310 converts a relative url into absolute7311 does not change the url if it already absolute7312 if relative_url_root is set7313 joins the url without doubling the path7314 has not the .gfm class7315 does not convert a relative url into absolute7316 if only_path is not false7317 does not convert a relative url into absolute7318Issuables::CrmContactFilter7319 when a contact has issues7320 returns all contact1 issues7321 returns all contact2 issues7322 when a contact has no issues7323 returns no issues7324Gitlab::UsageDataCounters::GitLabCliActivityUniqueCounter7325 when tracking a gitlab cli request7326 behaves like a request from an extension7327 tracks when the user agent is matching7328 does not track when the user agent is not matching7329 does not track if user agent is not present7330 does not track if user is not present7331Packages::Helm::ExtractFileMetadataService7332 with a valid file7333 is expected to eq {"apiVersion"=>"v2", "description"=>"File, Block, and Object Storage Services for your Cloud-Native E...ok-logo.svg", "name"=>"rook-ceph", "sources"=>["https://github.com/rook/rook"], "version"=>"v1.5.8"}7334 without Chart.yaml7335 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7336 with Chart.yaml at root7337 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7338 with an invalid YAML7339 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1"7340Packages::GroupOrProjectPackageFinder7341 execute7342 is expected to raise NotImplementedError7343 execute!7344 is expected to raise NotImplementedError7345Integrations::Pivotaltracker7346 Validations7347 when integration is active7348 is expected to validate that :token cannot be empty/falsy7349 when integration is inactive7350 is expected not to validate that :token cannot be empty/falsy7351 Execute7352 posts correct message7353 when allowed branches is specified7354 posts message if branch is in the list7355 does not post message if branch is not in the list7356BulkImports::Projects::Pipelines::ProtectedBranchesPipeline7357 #run7358 imports protected branch information7359SourcegraphHelper7360 #sourcegraph_url_message7361 with .com sourcegraph url7362 is expected to have text "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."7363 with custom sourcegraph url7364 is expected to have text "Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}. This feature is experimental."7365 when not limited by feature or public only7366 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."7367 when limited by feature7368 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and currently limited to certain projects."7369 when limited by public only7370 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and limited to public projects."7371Gitlab::Git::DiffStatsCollection7372 #find_by_path7373 returns stats by path when found7374 returns nil when stats is not found by path7375 #paths7376 returns only modified paths7377 #real_size7378 returns the number of modified files7379 returns capped number when it is bigger than max_files7380Gitlab::Memory::Watchdog::SidekiqEventReporter7381 # order random7382 delegations7383 is expected to delegate #started to the #event_reporter object7384 is expected to delegate #stopped to the #event_reporter object7385 is expected to delegate #threshold_violated to the #event_reporter object7386 is expected to delegate #logger to the #event_reporter object7387 #strikes_exceeded7388 delegates #strikes_exceeded with correct arguments7389 increment running jobs counter7390Types::AwardEmojis::AwardEmojiType7391 is expected to eq "AwardEmoji"7392 is expected to require graphql authorizations :read_emoji7393 is expected to have graphql fields :description, :unicode_version, :emoji, :name, :unicode, and :user7394Gitlab::Usage::Metrics::Instrumentations::DormantUserPeriodSettingMetric7395 # order random7396 deactivate_dormant_users_period_value: 90, expected_value: 907397 behaves like a correct instrumented metric value7398 has correct value7399 deactivate_dormant_users_period_value: 365, expected_value: 3657400 behaves like a correct instrumented metric value7401 has correct value7402Gitlab::Email::Hook::AdditionalHeadersInterceptor7403 adds Auto-Submitted header7404 when the same mail object is sent twice7405 does not add the Auto-Submitted header twice7406FromExcept7407 behaves like from set operator7408 #from_except7409 selects from the results of the EXCEPT7410 returns empty set when passing empty array7411 supports the use of a custom alias for the sub query7412 supports keeping duplicate rows7413Gitlab::Config::Entry::Boolean7414 validations7415 when entry config value is valid7416 #value7417 returns key value7418 #valid?7419 is valid7420 when entry value is not valid7421 #errors7422 saves errors7423Banzai::Pipeline::EmojiPipeline7424 replaces emoji7425 filters out HTML tags7426MergeRequests::Mergeability::CheckBrokenStatusService7427 #execute7428 when the merge request is broken7429 returns a check result with status failed7430 when the merge request is not broken7431 returns a check result with status success7432 #skip?7433 returns false7434 #cacheable?7435 returns false7436Gitlab::AppJsonLogger7437 logs a hash as a JSON7438 logs a string as a JSON7439Gitlab::UsageDataCounters::SearchCounter7440 all_searches counter7441 behaves like usage counter with totals7442 increments counter and returns total count7443 navbar_searches counter7444 behaves like usage counter with totals7445 increments counter and returns total count7446 .fetch_supported_event7447 is expected to eq "all_searches"7448RuboCop::Cop::Gitlab::BulkInsert7449 # order random7450 flags the use of ApplicationRecord.legacy_bulk_insert7451 flags the use of ::ApplicationRecord.legacy_bulk_insert7452RuboCop::Cop::Gitlab::RSpec::AvoidSetup7453 # order random7454 when calling let_it_be7455 registers an offense7456 without readability issues7457 does not register an offense7458Packages::Rpm::RepositoryMetadata::BuildFilelistXmlService7459 # order random7460 #execute7461 adds all file nodes7462 setting type attribute7463 when all files are directories7464 set dir type attribute for directories only7465Types::Projects::TopicType7466 is expected to eq "Topic"7467 is expected to have graphql fields :id, :name, :title, :description, :description_html, and :avatar_url7468Types::Ci::JobKindEnum7469 exposes some job type values7470RuboCop::Cop::QA::SelectorUsage7471 # order random7472 outside of QA7473 data-qa-selector7474 behaves like non-qa file usage7475 reports an offense7476 qa class7477 behaves like non-qa file usage7478 reports an offense7479 in a QA file7480 has no error7481RDoc segfault patch fix7482 RDoc::Markup::ToHtml7483 #parseable?7484 returns false7485 RDoc::Markup::Verbatim7486 ruby?7487 returns false7488KeyPresenter7489 # order random7490 #humanized_error_message7491 when public key is unsupported7492 returns the custom error message7493 when key is expired7494 returns Active Record error message7495Gitlab::CiAccess7496 #can_do_action?7497 when action is :build_download_code7498 is expected to be truthy7499 when action is not :build_download_code7500 is expected to be falsey7501Gitlab::Kubernetes::PodCmd7502 .retry_command7503 constructs string properly7504Types::WorkItems::WidgetTypeEnum7505 is expected to eq "WorkItemWidgetType"7506 exposes all the existing widget type values7507RuboCop::Cop::RSpec::HTTPartyBasicAuth7508 # order random7509 when passing `basic_auth: { user: ... }`7510 registers an offense and corrects7511 when passing `basic_auth: { username: ... }`7512 does not register an offense7513InstanceMetadataPolicy7514 for any logged-in user7515 is expected to be allowed :read_instance_metadata7516 for anonymous users7517 is expected not to be allowed :read_instance_metadata7518Ci::CodequalityMrDiffReportSerializer7519 #to_json7520 when quality report has degradations7521 matches the schema7522 when quality report has no degradations7523 matches the schema7524Namespaces::UserNamespace7525 validations7526 is expected to validate that :owner cannot be empty/falsy7527 #owners7528 is expected to contain exactly #<User id: @user1075>7529FasterCacheKeys7530 #cache_key7531 returns a String7532processing of SAMLResponse in dependencies7533 can extract AuthnContextClassRef from SAMLResponse param7534Types::Ci::ConfigVariableType7535 # order random7536 is expected to have graphql fields :key, :description, and :value7537Types::BranchProtections::PushAccessLevelType7538 # order random7539 is expected to require graphql authorizations :read_protected_branch7540 is expected to have graphql fields :access_level and :access_level_description7541Ci::Runners::UnregisterRunnerService#execute7542 destroys runner7543Types::Packages::Nuget::DependencyLinkMetadatumType7544 includes nuget dependency link metadatum fields7545ExportHelper7546 #project_export_descriptions7547 includes design management7548Knapsack report was generated. Preview:7549{7550 "spec/tasks/gitlab/backup_rake_spec.rb": 293.06842558800054,7551 "spec/models/packages/package_spec.rb": 152.71562306499982,7552 "spec/models/project_team_spec.rb": 159.62842784299937,7553 "spec/policies/environment_policy_spec.rb": 74.30426710100073,7554 "spec/services/projects/fork_service_spec.rb": 100.62752966799962,7555 "spec/lib/object_storage/direct_upload_spec.rb": 31.578041016000498,7556 "spec/models/members/project_member_spec.rb": 51.90932945199893,7557 "spec/lib/gitlab/kubernetes/kube_client_spec.rb": 17.97498193699903,7558 "spec/workers/emails_on_push_worker_spec.rb": 50.8821454609988,7559 "spec/models/environment_status_spec.rb": 46.11365141799979,7560 "spec/lib/gitlab/ci/status/bridge/factory_spec.rb": 33.03934403099993,7561 "spec/lib/gitlab/contributions_calendar_spec.rb": 33.23724908700024,7562 "spec/lib/gitlab/project_template_spec.rb": 19.783798989999923,7563 "spec/services/snippets/destroy_service_spec.rb": 17.651174439999522,7564 "spec/models/projects/build_artifacts_size_refresh_spec.rb": 20.170226649999677,7565 "spec/lib/sbom/package_url_spec.rb": 3.2231635459993413,7566 "spec/policies/packages/policies/project_policy_spec.rb": 10.549821764001535,7567 "spec/models/wiki_page/meta_spec.rb": 8.524139102000845,7568 "spec/finders/releases_finder_spec.rb": 17.242152589000398,7569 "spec/graphql/resolvers/board_list_issues_resolver_spec.rb": 20.272491668998555,7570 "spec/models/integrations/webex_teams_spec.rb": 9.109609028000705,7571 "spec/views/projects/_home_panel.html.haml_spec.rb": 19.249535861999902,7572 "spec/lib/gitlab/relative_positioning/range_spec.rb": 3.4573024199999054,7573 "spec/lib/gitlab/sql/pattern_spec.rb": 3.508200657999623,7574 "spec/finders/packages/nuget/package_finder_spec.rb": 11.443089633999989,7575 "spec/services/clusters/create_service_spec.rb": 14.136288391000562,7576 "spec/services/metrics/dashboard/annotations/create_service_spec.rb": 11.821862155000417,7577 "spec/serializers/diffs_entity_spec.rb": 18.956390530000135,7578 "spec/services/search/group_service_spec.rb": 16.061612155999683,7579 "spec/presenters/clusters/cluster_presenter_spec.rb": 10.694058900999153,7580 "spec/finders/projects/members/effective_access_level_finder_spec.rb": 8.92832398199971,7581 "spec/services/merge_requests/remove_approval_service_spec.rb": 13.412001796999903,7582 "spec/graphql/mutations/issues/set_confidential_spec.rb": 11.024087173000225,7583 "spec/initializers/lograge_spec.rb": 3.552083026999753,7584 "spec/lib/gitlab/middleware/read_only_spec.rb": 3.5836472770006367,7585 "spec/views/notify/pipeline_fixed_email.text.erb_spec.rb": 11.013787554000373,7586 "spec/lib/gitlab/email/receiver_spec.rb": 3.8868763390000822,7587 "spec/services/projects/open_issues_count_service_spec.rb": 8.045006922999164,7588 "spec/models/ci/build_trace_chunks/fog_spec.rb": 9.126756147999913,7589 "spec/models/packages/debian/project_component_file_spec.rb": 3.5919664060002106,7590 "spec/services/files/update_service_spec.rb": 8.917776322999998,7591 "spec/lib/gitlab/database_importers/instance_administrators/create_group_spec.rb": 8.216162448999967,7592 "spec/lib/sidebars/projects/menus/settings_menu_spec.rb": 3.862039059999006,7593 "spec/lib/gitlab/ci/config/entry/cache_spec.rb": 3.1864003559985576,7594 "spec/services/users/approve_service_spec.rb": 5.925444351998522,7595 "spec/graphql/resolvers/container_repositories_resolver_spec.rb": 8.067476091999197,7596 "spec/lib/gitlab/shell_spec.rb": 6.930849409000075,7597 "spec/lib/sidebars/projects/menus/analytics_menu_spec.rb": 5.6559435590006615,7598 "spec/workers/merge_worker_spec.rb": 8.02575205299945,7599 "spec/lib/gitlab/runtime_spec.rb": 1.615865092000604,7600 "spec/lib/feature/definition_spec.rb": 2.113877781001065,7601 "spec/models/design_management/design_collection_spec.rb": 5.337368795999282,7602 "spec/lib/gitlab/ci/config/entry/policy_spec.rb": 1.4891065249994426,7603 "spec/lib/gitlab/slash_commands/run_spec.rb": 4.92193235600098,7604 "spec/lib/gitlab/chat/output_spec.rb": 6.405466150999928,7605 "spec/lib/gitlab/harbor/query_spec.rb": 1.8195977979994495,7606 "spec/lib/gitlab/ci/reports/test_report_spec.rb": 2.4400038330004463,7607 "spec/workers/ci/delete_unit_tests_worker_spec.rb": 6.45110676999866,7608 "spec/services/personal_access_tokens/create_service_spec.rb": 3.81701590099874,7609 "spec/graphql/mutations/issues/set_locked_spec.rb": 3.8237039310006367,7610 "spec/services/projects/download_service_spec.rb": 5.042447873000128,7611 "spec/lib/gitlab/authorized_keys_spec.rb": 1.9187846149998222,7612 "spec/lib/gitlab/ci/build/step_spec.rb": 5.53428864200032,7613 "spec/policies/upload_policy_spec.rb": 2.607957209000233,7614 "spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb": 7.378080747999775,7615 "spec/services/error_tracking/issue_details_service_spec.rb": 4.479626075999477,7616 "spec/services/error_tracking/list_projects_service_spec.rb": 3.3937999509998917,7617 "spec/policies/personal_access_token_policy_spec.rb": 1.6808430710007087,7618 "spec/lib/gitlab/audit/type/definition_spec.rb": 1.411127626999587,7619 "spec/lib/banzai/filter/attributes_filter_spec.rb": 1.8824670659996627,7620 "spec/models/ci/job_token/scope_spec.rb": 5.229587747999176,7621 "spec/models/packages/debian/file_entry_spec.rb": 2.1578096590001223,7622 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 4.424189298000783,7623 "spec/uploaders/lfs_object_uploader_spec.rb": 1.8299524470003234,7624 "spec/lib/gitlab/fogbugz_import/importer_spec.rb": 5.472271422999256,7625 "spec/graphql/resolvers/releases_resolver_spec.rb": 3.019465258999844,7626 "spec/lib/bitbucket/representation/issue_spec.rb": 1.1326915139998164,7627 "spec/serializers/environment_status_entity_spec.rb": 4.875511987000209,7628 "spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb": 3.514487387999907,7629 "spec/views/projects/settings/merge_requests/show.html.haml_spec.rb": 4.6703858809996746,7630 "spec/services/ci/pipeline_processing/atomic_processing_service/status_collection_spec.rb": 2.292580036999425,7631 "spec/finders/fork_targets_finder_spec.rb": 3.604357586000333,7632 "spec/models/concerns/encrypted_user_password_spec.rb": 2.2932402070000535,7633 "spec/lib/gitlab/cross_project_access/check_info_spec.rb": 1.470991596001113,7634 "spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb": 3.2502832840000337,7635 "spec/models/issue_assignee_spec.rb": 4.077400744999977,7636 "spec/models/concerns/sha_attribute_spec.rb": 1.5041863650003506,7637 "spec/services/users/activity_service_spec.rb": 2.4641904730015085,7638 "spec/rubocop/cop/lint/last_keyword_argument_spec.rb": 0.9388807080013066,7639 "spec/lib/gitlab/popen/runner_spec.rb": 1.1009389940008987,7640 "spec/lib/gitlab/slash_commands/presenters/access_spec.rb": 1.1549771440004406,7641 "spec/lib/gitlab/utils/json_size_estimator_spec.rb": 1.0546976460009319,7642 "spec/finders/groups/user_groups_finder_spec.rb": 2.84991691399955,7643 "spec/models/project_deploy_token_spec.rb": 3.2049039650009945,7644 "spec/services/security/ci_configuration/sast_parser_service_spec.rb": 2.876477263000197,7645 "spec/services/ci/create_pipeline_service/include_spec.rb": 3.946414617999835,7646 "spec/helpers/recaptcha_helper_spec.rb": 0.8090197010005795,7647 "spec/policies/custom_emoji_policy_spec.rb": 3.4642413100009435,7648 "spec/lib/gitlab/audit/null_author_spec.rb": 1.0752006250004342,7649 "spec/services/groups/merge_requests_count_service_spec.rb": 2.094985091000126,7650 "spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb": 0.8710353999995277,7651 "spec/lib/gitlab/database/type/symbolized_jsonb_spec.rb": 1.2879214699987642,7652 "spec/services/service_desk_settings/update_service_spec.rb": 1.4388492660000338,7653 "spec/workers/reactive_caching_worker_spec.rb": 2.657081688001199,7654 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 2.0081503219989827,7655 "spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb": 0.8024682109989953,7656 "spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb": 2.987206679999872,7657 "spec/lib/bitbucket_server/connection_spec.rb": 1.266819640999529,7658 "spec/rubocop/cop/rspec/top_level_describe_path_spec.rb": 0.8645375199994305,7659 "spec/models/project_ci_cd_setting_spec.rb": 3.2094240549995448,7660 "spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb": 3.3919552409988682,7661 "spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb": 2.607624770000257,7662 "spec/lib/gitlab/ci/config/entry/coverage_spec.rb": 0.8399128399996698,7663 "spec/lib/gitlab/prometheus/internal_spec.rb": 0.9969192469998234,7664 "spec/models/concerns/ignorable_columns_spec.rb": 0.7049544940000487,7665 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb": 1.2057443719986622,7666 "spec/policies/container_expiration_policy_policy_spec.rb": 1.4738172849993134,7667 "spec/models/concerns/limitable_spec.rb": 0.7645009819989355,7668 "spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.5921015629992326,7669 "spec/graphql/graphql_triggers_spec.rb": 2.2557755779998843,7670 "spec/graphql/resolvers/group_members_resolver_spec.rb": 3.0040626200006955,7671 "spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb": 0.9930040069993993,7672 "spec/views/projects/hooks/index.html.haml_spec.rb": 1.7223942000000534,7673 "spec/lib/api/entities/project_import_status_spec.rb": 3.0099394600001688,7674 "spec/helpers/milestones_helper_spec.rb": 0.8917132389997278,7675 "spec/lib/gitlab/seeders/ci/daily_build_group_report_result_spec.rb": 2.1931871390006563,7676 "spec/graphql/types/repository_type_spec.rb": 0.6638408139988314,7677 "spec/workers/create_pipeline_worker_spec.rb": 1.7786374679999426,7678 "spec/views/projects/branches/index.html.haml_spec.rb": 1.6957585310010472,7679 "spec/lib/banzai/filter/image_lazy_load_filter_spec.rb": 0.7268219030011096,7680 "spec/graphql/resolvers/container_repository_tags_resolver_spec.rb": 1.231254740998338,7681 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event_spec.rb": 0.685272423999777,7682 "spec/services/bulk_imports/archive_extraction_service_spec.rb": 0.654696605000936,7683 "spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb": 2.708436327000527,7684 "spec/workers/namespaces/update_root_statistics_worker_spec.rb": 0.757425992998833,7685 "spec/serializers/member_serializer_spec.rb": 2.7517582269993,7686 "spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb": 1.4651630460011802,7687 "spec/presenters/releases/link_presenter_spec.rb": 0.9369295779997628,7688 "spec/graphql/mutations/branches/create_spec.rb": 1.9879301839991967,7689 "spec/lib/gitlab/database/load_balancing/configuration_spec.rb": 0.8559142199992493,7690 "spec/models/token_with_iv_spec.rb": 0.6113706559990533,7691 "spec/lib/gitlab/auth/atlassian/identity_linker_spec.rb": 1.719146429999455,7692 "spec/services/ci/job_artifacts/delete_service_spec.rb": 1.7142553799985762,7693 "spec/serializers/web_ide_terminal_serializer_spec.rb": 1.4902216949994909,7694 "spec/initializers/validate_database_config_spec.rb": 0.9111326879992703,7695 "spec/models/cycle_analytics/project_level_stage_adapter_spec.rb": 1.9167491560001508,7696 "spec/lib/gitlab/hook_data/project_member_builder_spec.rb": 1.385503487999813,7697 "spec/lib/gitlab/lets_encrypt/order_spec.rb": 2.1030756710006244,7698 "spec/graphql/resolvers/ci/template_resolver_spec.rb": 1.7078674499989575,7699 "spec/graphql/types/issue_sort_enum_spec.rb": 0.8632836699998734,7700 "spec/models/users/namespace_commit_email_spec.rb": 0.8179904709995753,7701 "spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb": 1.0997952739999164,7702 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 1.1832998030004092,7703 "spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 0.7506800520004617,7704 "spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb": 0.8910563089993957,7705 "spec/lib/gitlab/ci/templates/kaniko_gitlab_ci_yaml_spec.rb": 1.967335634999472,7706 "spec/graphql/types/work_items/notes_filter_type_enum_spec.rb": 0.6601973950000684,7707 "spec/models/integrations/external_wiki_spec.rb": 0.8526017599997431,7708 "spec/services/google_cloud/fetch_google_ip_list_service_spec.rb": 0.927938198999982,7709 "spec/workers/database/batched_background_migration/ci_execution_worker_spec.rb": 0.8628132900012133,7710 "spec/validators/qualified_domain_array_validator_spec.rb": 1.085035105001225,7711 "spec/lib/gitlab/database/background_migration/health_status_spec.rb": 0.7317042829999991,7712 "spec/serializers/import/provider_repo_serializer_spec.rb": 0.5988461870001629,7713 "spec/lib/gitlab/github_import/markdown/attachment_spec.rb": 0.6219037749997369,7714 "spec/models/concerns/nullify_if_blank_spec.rb": 0.9050237589999597,7715 "spec/lib/gitlab/graphql/limit/field_call_count_spec.rb": 0.6615811850006139,7716 "spec/lib/atlassian/jira_connect/serializers/branch_entity_spec.rb": 1.753027528999155,7717 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/order_by_column_data_spec.rb": 0.6335771050016774,7718 "spec/lib/gitlab/health_checks/gitaly_check_spec.rb": 0.5740105669992772,7719 "spec/initializers/carrierwave_patch_spec.rb": 0.8068112809996819,7720 "spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb": 1.051886655999624,7721 "spec/lib/api/helpers/graphql_helpers_spec.rb": 0.7468381919989042,7722 "spec/serializers/blob_entity_spec.rb": 1.56948707400079,7723 "spec/lib/banzai/filter/absolute_link_filter_spec.rb": 1.0323714759997529,7724 "spec/finders/issuables/crm_contact_filter_spec.rb": 1.169605073000639,7725 "spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb": 0.8024673410000105,7726 "spec/services/packages/helm/extract_file_metadata_service_spec.rb": 0.8717565299994021,7727 "spec/finders/packages/group_or_project_package_finder_spec.rb": 0.957712666999214,7728 "spec/models/integrations/pivotaltracker_spec.rb": 1.1691059130007488,7729 "spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb": 1.1520205629985867,7730 "spec/helpers/sourcegraph_helper_spec.rb": 0.7955004519990325,7731 "spec/lib/gitlab/git/diff_stats_collection_spec.rb": 0.495069747999878,7732 "spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb": 0.8880995089984935,7733 "spec/graphql/types/award_emojis/award_emoji_type_spec.rb": 0.9362236090000806,7734 "spec/lib/gitlab/usage/metrics/instrumentations/dormant_user_period_setting_metric_spec.rb": 1.190233631999945,7735 "spec/lib/gitlab/email/hook/additional_headers_interceptor_spec.rb": 0.5473283869996521,7736 "spec/models/concerns/from_except_spec.rb": 0.6222299959990778,7737 "spec/lib/gitlab/config/entry/boolean_spec.rb": 1.0229898359993967,7738 "spec/lib/banzai/pipeline/emoji_pipeline_spec.rb": 1.0492086760004895,7739 "spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb": 0.8039784310003597,7740 "spec/lib/gitlab/app_json_logger_spec.rb": 0.6000150359996042,7741 "spec/lib/gitlab/usage_data_counters/search_counter_spec.rb": 0.9680574379999598,7742 "spec/rubocop/cop/gitlab/bulk_insert_spec.rb": 0.6986744940004428,7743 "spec/rubocop/cop/gitlab/rspec/avoid_setup_spec.rb": 0.527582478000113,7744 "spec/services/packages/rpm/repository_metadata/build_filelist_xml_service_spec.rb": 0.9256224680011655,7745 "spec/graphql/types/projects/topic_type_spec.rb": 0.8895222400005878,7746 "spec/graphql/types/ci/job_kind_enum_spec.rb": 0.5664986660012801,7747 "spec/rubocop/cop/qa/selector_usage_spec.rb": 0.48733452899978147,7748 "spec/initializers/rdoc_segfault_patch_spec.rb": 0.4549264689994743,7749 "spec/presenters/key_presenter_spec.rb": 0.6542265739990398,7750 "spec/lib/gitlab/ci_access_spec.rb": 0.6381924360011908,7751 "spec/lib/gitlab/kubernetes/pod_cmd_spec.rb": 0.506870188000903,7752 "spec/graphql/types/work_items/widget_type_enum_spec.rb": 0.8376775199994881,7753 "spec/rubocop/cop/rspec/htt_party_basic_auth_spec.rb": 0.4140020409995486,7754 "spec/policies/instance_metadata_policy_spec.rb": 0.5111594989994046,7755 "spec/serializers/ci/codequality_mr_diff_report_serializer_spec.rb": 0.6648467539998819,7756 "spec/models/namespaces/user_namespace_spec.rb": 0.898695089001194,7757 "spec/models/concerns/faster_cache_keys_spec.rb": 0.8837535900001967,7758 "spec/dependencies/omniauth_saml_spec.rb": 0.5428927869998006,7759 "spec/graphql/types/ci/config_variable_type_spec.rb": 0.3894609910003055,7760 "spec/graphql/types/branch_protections/push_access_level_type_spec.rb": 0.3993600409994542,7761 "spec/services/ci/runners/unregister_runner_service_spec.rb": 0.6203039649990387,7762 "spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb": 0.43423695000092266,7763 "spec/helpers/export_helper_spec.rb": 0.452470739999625957764}7765Knapsack global time execution for tests: 28m 23s7766Pending: (Failures listed here are expected and do not affect your suite's status)7767 1) LfsObjectUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 7768 # No pattern provided, skipping.7769 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87770 2) LfsObjectUploader behaves like builds correct paths #relative_path is relative7771 # Path not set, skipping.7772 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407773 3) LfsObjectUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 7774 # No pattern provided, skipping.7775 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87776 4) LfsObjectUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7777 # No pattern provided, skipping.7778 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87779 5) LfsObjectUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7780 # No pattern provided, skipping.7781 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87782 6) LfsObjectUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7783 # No pattern provided, skipping.7784 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87785 7) LfsObjectUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 7786 # No pattern provided, skipping.7787 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87788 8) LfsObjectUploader object store is REMOTE behaves like builds correct paths #relative_path is relative7789 # Path not set, skipping.7790 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407791 9) LfsObjectUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7792 # No pattern provided, skipping.7793 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87794 10) LfsObjectUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7795 # No pattern provided, skipping.7796 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87797 11) GoogleCloud::FetchGoogleIpListService#execute with rate limit in effect returns rate limit error7798 # around hook at ./spec/support/flaky_tests.rb:21 did not execute the example7799 # ./spec/services/google_cloud/fetch_google_ip_list_service_spec.rb:397800Finished in 28 minutes 28 seconds (files took 1 minute 18.65 seconds to load)78013199 examples, 0 failures, 11 pending7802Randomized with seed 541637803[TEST PROF INFO] Time spent in factories: 14:16.638 (49.14% of total time)7804RSpec exited with 0.7805No examples to retry, congrats!7807Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7808Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7810Uploading artifacts...7811coverage/: found 5 matching files and directories 7812crystalball/: found 2 matching files and directories 7813deprecations/: found 4 matching files and directories 7814knapsack/: found 3 matching files and directories 7815WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory 7816rspec/: found 12 matching files and directories 7817WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7818log/*.log: found 17 matching files and directories 7819WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741012/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7820WARNING: Retrying... context=artifacts-uploader error=request redirected7821Uploading artifacts as "archive" to coordinator... 201 Created id=3443741012 responseStatus=201 Created token=L3WCakpN7822Uploading artifacts...7823rspec/junit_rspec.xml: found 1 matching files and directories 7824WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741012/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7825WARNING: Retrying... context=artifacts-uploader error=request redirected7826Uploading artifacts as "junit" to coordinator... 201 Created id=3443741012 responseStatus=201 Created token=L3WCakpN7828Job succeeded